Move OBMC_TOOLS_BASE_DIR_PATH assignment

- Move OBMC_TOOLS_BASE_DIR_PATH from robot_cmd_fnc to
  init_robot_test_base_dir_path.  This is a more appropriate place for
  the assignment as it can now be used by callers who don't necessarily
  need robot_cmd_fnc.

- Change openbmctool_dir_path to OPENBMCTOOL_DIR_PATH to indicate that
  it is a global variable.

- Set MSBARTH_TOOLS_DIR_PATH.

Change-Id: Id39a977ab2d133bfc00598c03f7888295bd2ded6
Signed-off-by: Michael Walsh <micwalsh@us.ibm.com>
diff --git a/lib/gen_call_robot.py b/lib/gen_call_robot.py
index bce7c79..84e6f06 100755
--- a/lib/gen_call_robot.py
+++ b/lib/gen_call_robot.py
@@ -134,9 +134,17 @@
                 # Use to the apollo dir path.
                 ROBOT_TEST_BASE_DIR_PATH = apollo_dir_path + suffix
 
+    OBMC_TOOLS_BASE_DIR_PATH = \
+        os.path.dirname(ROBOT_TEST_BASE_DIR_PATH.rstrip("/")) \
+        + "/openbmc-tools/"
+    OPENBMCTOOL_DIR_PATH = OBMC_TOOLS_BASE_DIR_PATH + "thalerj/"
+    MSBARTH_TOOLS_DIR_PATH = OBMC_TOOLS_BASE_DIR_PATH + "msbarth/"
+
     gv.valid_value(ROBOT_TEST_BASE_DIR_PATH)
-    gp.dprint_vars(ROBOT_TEST_RUNNING_FROM_SB, ROBOT_TEST_BASE_DIR_PATH)
+    gp.dprint_vars(ROBOT_TEST_RUNNING_FROM_SB, ROBOT_TEST_BASE_DIR_PATH, OBMC_TOOLS_BASE_DIR_PATH,
+                   OPENBMCTOOL_DIR_PATH, MSBARTH_TOOLS_DIR_PATH)
     gv.valid_dir_path(ROBOT_TEST_BASE_DIR_PATH)
+    gv.valid_dir_path(OPENBMCTOOL_DIR_PATH)
 
     ROBOT_TEST_BASE_DIR_PATH = gm.add_trailing_slash(ROBOT_TEST_BASE_DIR_PATH)
     gm.set_mod_global(ROBOT_TEST_BASE_DIR_PATH)
@@ -145,6 +153,15 @@
     gm.set_mod_global(ROBOT_TEST_RUNNING_FROM_SB)
     os.environ['ROBOT_TEST_RUNNING_FROM_SB'] = str(ROBOT_TEST_RUNNING_FROM_SB)
 
+    gm.set_mod_global(OBMC_TOOLS_BASE_DIR_PATH)
+    os.environ['OBMC_TOOLS_BASE_DIR_PATH'] = str(OBMC_TOOLS_BASE_DIR_PATH)
+
+    gm.set_mod_global(OPENBMCTOOL_DIR_PATH)
+    os.environ['OPENBMCTOOL_DIR_PATH'] = str(OPENBMCTOOL_DIR_PATH)
+
+    gm.set_mod_global(MSBARTH_TOOLS_DIR_PATH)
+    os.environ['MSBARTH_TOOLS_DIR_PATH'] = str(MSBARTH_TOOLS_DIR_PATH)
+
 
 raw_robot_file_search_path = "${ROBOT_TEST_BASE_DIR_PATH}:" +\
     "${ROBOT_TEST_BASE_DIR_PATH}tests:${ROBOT_TEST_BASE_DIR_PATH}extended:" +\
@@ -357,7 +374,7 @@
 
 
 def robot_cmd_fnc(robot_cmd_buf,
-                  robot_jail=os.environ.get('ROBOT_JAIL', '')):
+                  robot_jail=os.environ.get('ROBOT_JAIL', ''), test_mode=0):
     r"""
     Run the robot command string.
 
@@ -368,6 +385,7 @@
     robot_cmd_buf                   The complete robot command string.
     robot_jail                      Indicates that this is to run in "robot jail" meaning without visibility
                                     to any apolloxxx import files, programs, etc.
+    test_mode                       If test_mode is set, this function will not actually run the command.
     """
 
     gv.valid_value(robot_cmd_buf)
@@ -385,8 +403,8 @@
         init_robot_test_base_dir_path()
         ROBOT_TEST_BASE_DIR_PATH = getattr(module, "ROBOT_TEST_BASE_DIR_PATH")
 
-    ROBOT_TEST_RUNNING_FROM_SB = \
-        gm.get_mod_global("ROBOT_TEST_RUNNING_FROM_SB")
+    ROBOT_TEST_RUNNING_FROM_SB = gm.get_mod_global("ROBOT_TEST_RUNNING_FROM_SB")
+    OPENBMCTOOL_DIR_PATH = gm.get_mod_global("OPENBMCTOOL_DIR_PATH")
 
     if robot_jail == "":
         if ROBOT_TEST_RUNNING_FROM_SB:
@@ -399,11 +417,6 @@
     gp.dprint_vars(ROBOT_TEST_BASE_DIR_PATH, ROBOT_TEST_RUNNING_FROM_SB,
                    ROBOT_JAIL, robot_jail)
 
-    OBMC_TOOLS_BASE_DIR_PATH = \
-        os.path.dirname(ROBOT_TEST_BASE_DIR_PATH.rstrip("/")) \
-        + "/openbmc-tools/"
-    openbmctool_dir_path = OBMC_TOOLS_BASE_DIR_PATH + "thalerj"
-
     # Save PATH and PYTHONPATH to be restored later.
     os.environ["SAVED_PYTHONPATH"] = os.environ.get("PYTHONPATH", "")
     os.environ["SAVED_PATH"] = os.environ.get("PATH", "")
@@ -422,13 +435,13 @@
         NEW_PATH_LIST.extend(list(set(out_buf.rstrip("\n").split("\n"))))
         NEW_PATH_LIST.extend(["/usr/local/sbin", "/usr/local/bin", "/usr/sbin",
                               "/usr/bin", "/sbin", "/bin",
-                              openbmctool_dir_path])
+                              OPENBMCTOOL_DIR_PATH.rstrip('/')])
         PATH = ":".join(NEW_PATH_LIST)
     else:
         PYTHONPATH = os.environ.get('PYTHONPATH', '') + ":" +\
             ROBOT_TEST_BASE_DIR_PATH + "lib"
         PATH = os.environ.get('PATH', '') + ":" + ROBOT_TEST_BASE_DIR_PATH +\
-            "bin" + ":" + openbmctool_dir_path
+            "bin" + ":" + OPENBMCTOOL_DIR_PATH.rstrip('/')
 
     os.environ['PYTHONPATH'] = PYTHONPATH
     os.environ['PATH'] = PATH
@@ -436,8 +449,6 @@
 
     os.environ['FFDC_DIR_PATH_STYLE'] = os.environ.get('FFDC_DIR_PATH_STYLE',
                                                        '1')
-    test_mode = getattr(module, "test_mode")
-
     gp.qpissuing(robot_cmd_buf, test_mode)
     if test_mode:
         os.environ["PATH"] = os.environ.get("SAVED_PATH", "")