You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@trafficserver.apache.org by jp...@apache.org on 2016/01/13 02:01:35 UTC

trafficserver git commit: TS-4060: add JSON support consistently for traffic_layout

Repository: trafficserver
Updated Branches:
  refs/heads/master 8e0f81454 -> 8261460fc


TS-4060: add JSON support consistently for traffic_layout

This closes #417.


Project: http://git-wip-us.apache.org/repos/asf/trafficserver/repo
Commit: http://git-wip-us.apache.org/repos/asf/trafficserver/commit/8261460f
Tree: http://git-wip-us.apache.org/repos/asf/trafficserver/tree/8261460f
Diff: http://git-wip-us.apache.org/repos/asf/trafficserver/diff/8261460f

Branch: refs/heads/master
Commit: 8261460fc1e3483a3581d5318b14033f0c986b0e
Parents: 8e0f814
Author: Leif Hedstrom <zw...@apache.org>
Authored: Mon Dec 7 20:39:14 2015 -0700
Committer: James Peach <jp...@apache.org>
Committed: Tue Jan 12 16:59:43 2016 -0800

----------------------------------------------------------------------
 cmd/traffic_layout/traffic_layout.cc | 59 +++++++++++++++++++------------
 1 file changed, 36 insertions(+), 23 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/trafficserver/blob/8261460f/cmd/traffic_layout/traffic_layout.cc
----------------------------------------------------------------------
diff --git a/cmd/traffic_layout/traffic_layout.cc b/cmd/traffic_layout/traffic_layout.cc
index b561132..f5dabac 100644
--- a/cmd/traffic_layout/traffic_layout.cc
+++ b/cmd/traffic_layout/traffic_layout.cc
@@ -126,38 +126,51 @@ produce_features(bool json)
 
 
 static void
-print_var(const char *name, char *val)
+print_var(const char *name, char *value, bool json, bool free = true, bool last = false)
 {
-  printf("%s: %s\n", name, val);
-  ats_free(val);
+  if (json) {
+    printf("    \"%s\": \"%s\"%s", name, value, last ? "\n" : ",\n");
+  } else {
+    printf("%s: %s\n", name, value);
+  }
+
+  if (free) {
+    ats_free(value);
+  }
 }
 
 static void
-produce_layout()
+produce_layout(bool json)
 {
   Layout::create();
 
   RecProcessInit(RECM_STAND_ALONE, NULL /* diags */);
   LibRecordsConfigInit();
 
-  printf("%s: %s\n", "PREFIX", Layout::get()->prefix);
-  print_var("BINDIR", RecConfigReadBinDir());
-  print_var("SYSCONFDIR", RecConfigReadConfigDir());
-  print_var("LIBDIR", Layout::get()->libdir);
-  print_var("LOGDIR", RecConfigReadLogDir());
-  print_var("RUNTIMEDIR", RecConfigReadRuntimeDir());
-  print_var("PLUGINDIR", RecConfigReadPrefixPath("proxy.config.plugin.plugin_dir"));
-  print_var("INCLUDEDIR", Layout::get()->includedir);
-  print_var("SNAPSHOTDIR", RecConfigReadSnapshotDir());
-
-  print_var("records.config", RecConfigReadConfigPath(NULL, REC_CONFIG_FILE));
-  print_var("remap.config", RecConfigReadConfigPath("proxy.config.url_remap.filename"));
-  print_var("plugin.config", RecConfigReadConfigPath(NULL, "plugin.config"));
-  print_var("ssl_multicert.config", RecConfigReadConfigPath("proxy.config.ssl.server.multicert.filename"));
-  print_var("storage.config", RecConfigReadConfigPath("proxy.config.cache.storage_filename"));
-  print_var("hosting.config", RecConfigReadConfigPath("proxy.config.cache.hosting_filename"));
-  print_var("volume.config", RecConfigReadConfigPath("proxy.config.cache.volume_filename"));
-  print_var("ip_allow.config", RecConfigReadConfigPath("proxy.config.cache.ip_allow.filename"));
+  if (json) {
+    printf("{\n");
+  }
+  print_var("PREFIX", Layout::get()->prefix, json, false); // Don't free this
+  print_var("BINDIR", RecConfigReadBinDir(), json);
+  print_var("SYSCONFDIR", RecConfigReadConfigDir(), json);
+  print_var("LIBDIR", Layout::get()->libdir, json, false); // Don't free this
+  print_var("LOGDIR", RecConfigReadLogDir(), json);
+  print_var("RUNTIMEDIR", RecConfigReadRuntimeDir(), json);
+  print_var("PLUGINDIR", RecConfigReadPrefixPath("proxy.config.plugin.plugin_dir"), json);
+  print_var("INCLUDEDIR", Layout::get()->includedir, json, false); // Dont' free this
+  print_var("SNAPSHOTDIR", RecConfigReadSnapshotDir(), json);
+
+  print_var("records.config", RecConfigReadConfigPath(NULL, REC_CONFIG_FILE), json);
+  print_var("remap.config", RecConfigReadConfigPath("proxy.config.url_remap.filename"), json);
+  print_var("plugin.config", RecConfigReadConfigPath(NULL, "plugin.config"), json);
+  print_var("ssl_multicert.config", RecConfigReadConfigPath("proxy.config.ssl.server.multicert.filename"), json);
+  print_var("storage.config", RecConfigReadConfigPath("proxy.config.cache.storage_filename"), json);
+  print_var("hosting.config", RecConfigReadConfigPath("proxy.config.cache.hosting_filename"), json);
+  print_var("volume.config", RecConfigReadConfigPath("proxy.config.cache.volume_filename"), json);
+  print_var("ip_allow.config", RecConfigReadConfigPath("proxy.config.cache.ip_allow.filename"), json, true, true);
+  if (json) {
+    printf("}\n");
+  }
 }
 
 int
@@ -173,7 +186,7 @@ main(int /* argc ATS_UNUSED */, const char **argv)
   if (cl.features) {
     produce_features(0 != cl.json);
   } else {
-    produce_layout();
+    produce_layout(0 != cl.json);
   }
   exit(0);
 }