Browse Source

Merge pull request #8413 from richardkchapman/wutool-options

HPCC-15247 Workunit tool wutool should handle cassandra username and password

Reviewed-by: Gavin Halliday <ghalliday@hpccsystems.com>
Gavin Halliday 9 years ago
parent
commit
74b06fb6d9
1 changed files with 17 additions and 2 deletions
  1. 17 2
      tools/wutool/wutool.cpp

+ 17 - 2
tools/wutool/wutool.cpp

@@ -57,7 +57,12 @@ void usage()
            "   validate [fix=1]    - Check contents of workunit repository for errors\n"
            "   clear               - Delete entire workunit repository (requires entire=1 repository=1)\n"
            "   initialize          - Initialize new workunit repository\n"
-            "\n"
+           "\n"
+           "If CASSANDRASERVER is specified, you can specify some connection options including:\n"
+           "   CASSANDRA_KEYSPACE  - default is hpcc\n"
+           "   CASSANDRA_USER\n"
+           "   CASSANDRA_PASSWORD\n"
+           "   TRACELEVEL\n"
            "<workunits> can be specified on commandline, or can be specified using a filter owner=XXXX. If ommitted,\n"
            "all workunits will be selected.\n"
             );
@@ -164,12 +169,22 @@ int main(int argc, const char *argv[])
                     "<Option name='randomWuidSuffix' value='4'/>"
                     "<Option name='traceLevel' value='0'/>"
                     "<Option name='keyspace' value='hpcc'/>"
+                    "<Option name='user' value=''/>"
+                    "<Option name='password' value=''/>"
                   "</WorkUnitsServer>");
             pluginInfo->setProp("Option[@name='server']/@value", cassandraServer.str());
             pluginInfo->setPropInt("Option[@name='traceLevel']/@value", globals->getPropInt("tracelevel", 0));
-            StringBuffer keySpace;
+            StringBuffer keySpace,user,password;
             if (globals->getProp("CASSANDRA_KEYSPACE", keySpace))
                 pluginInfo->setProp("Option[@name='keyspace']/@value", keySpace.str());
+            if (globals->getProp("CASSANDRA_USER", user))
+                pluginInfo->setProp("Option[@name='user']/@value", user.str());
+            else
+                pluginInfo->removeProp("Option[@name='user']");
+            if (globals->getProp("CASSANDRA_PASSWORD", password))
+                pluginInfo->setProp("Option[@name='password']/@value", password.str());
+            else
+                pluginInfo->removeProp("Option[@name='password']");
             setWorkUnitFactory((IWorkUnitFactory *) loadPlugin(pluginInfo));
             serverSpecified = true;
         }