Browse Source

HPCC-9262 Allow user to optionally set the pacakgeMap id

Default behavior will be to use the filename (without the directory)

Signed-off-by: Stuart Ort <stuart.ort@lexisnexis.com>
Stuart Ort 12 years ago
parent
commit
1745a48bf1
1 changed files with 14 additions and 1 deletions
  1. 14 1
      ecl/ecl-package/ecl-package.cpp

+ 14 - 1
ecl/ecl-package/ecl-package.cpp

@@ -28,6 +28,8 @@
 #include "eclcmd_common.hpp"
 #include "eclcmd_core.hpp"
 
+#define ECLOPT_PACKAGEMAPID "--pkgId"
+
 //=========================================================================================
 
 IClientWsPackageProcess *getWsPackageSoapService(const char *server, const char *port, const char *username, const char *password)
@@ -507,6 +509,8 @@ public:
                 }
                 continue;
             }
+            if (iter.matchOption(optPackageId, ECLOPT_PACKAGEMAPID))
+                continue;
             if (iter.matchOption(optDaliIP, ECLOPT_DALIIP))
                 continue;
             if (iter.matchFlag(optActivate, ECLOPT_ACTIVATE)||iter.matchFlag(optActivate, ECLOPT_ACTIVATE_S))
@@ -541,6 +545,13 @@ public:
         if (optProcess.isEmpty())
             optProcess.set("*");
 
+        if (optPackageId.isEmpty())
+        {
+            StringBuffer name;
+            splitFilename(optFileName.get(), NULL, NULL, &name, &name);
+            optPackageId.set(name.str());
+        }
+        optPackageId.toLowerCase();
         return true;
     }
     virtual int processCMD()
@@ -555,7 +566,7 @@ public:
         request->setActivate(optActivate);
         request->setInfo(pkgInfo);
         request->setTarget(optTarget);
-        request->setPackageMap(optFileName);
+        request->setPackageMap(optPackageId);
         request->setProcess(optProcess);
         request->setDaliIp(optDaliIP);
         request->setOverWrite(optOverWrite);
@@ -578,6 +589,7 @@ public:
                     "   -O, --overwrite             overwrite existing information\n"
                     "   -A, --activate              activate the package information\n"
                     "   --daliip=<ip>               ip of the remote dali to use for logical file lookups\n"
+                   "   --pkgId                      id of package map - will default to filename if not specified."
 // NOT-YET          "  --packageprocessname         if not set use this package process name for all clusters"
                     "   <target>                    name of target to use when adding package map information\n"
                     "   <filename>                  name of file containing package map information\n",
@@ -593,6 +605,7 @@ private:
     bool optOverWrite;
     StringBuffer pkgInfo;
     StringAttr optDaliIP;
+    StringAttr optPackageId;
 };
 
 class EclCmdPackageValidate : public EclCmdCommon