openbmctool deprecated code support removal

Changes:
   - Remove openbmctool related codes from repository

Tested:
  - For sanity, ran from sandbox HW CI test bucket

Change-Id: I0a5e3db2bcbcdbc9680dfd69743f1d397a1f08b3
Signed-off-by: George Keishing <gkeishin@in.ibm.com>
diff --git a/lib/gen_call_robot.py b/lib/gen_call_robot.py
index e873c52..91231bf 100755
--- a/lib/gen_call_robot.py
+++ b/lib/gen_call_robot.py
@@ -164,22 +164,10 @@
                 # 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 + "openbmctool/"
-    JSON_CHECKER_TOOLS_DIR_PATH = (
-        OBMC_TOOLS_BASE_DIR_PATH + "expectedJsonChecker/"
-    )
-
     gv.valid_value(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,
-        JSON_CHECKER_TOOLS_DIR_PATH,
     )
     gv.valid_dir_path(ROBOT_TEST_BASE_DIR_PATH)
 
@@ -190,17 +178,6 @@
     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(JSON_CHECKER_TOOLS_DIR_PATH)
-    os.environ["JSON_CHECKER_TOOLS_DIR_PATH"] = str(
-        JSON_CHECKER_TOOLS_DIR_PATH
-    )
-
 
 raw_robot_file_search_path = (
     "${ROBOT_TEST_BASE_DIR_PATH}:"
@@ -467,7 +444,6 @@
     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:
@@ -511,7 +487,6 @@
                 "/usr/bin",
                 "/sbin",
                 "/bin",
-                OPENBMCTOOL_DIR_PATH.rstrip("/"),
             ]
         )
         PATH = ":".join(NEW_PATH_LIST)
@@ -523,12 +498,7 @@
             + "lib"
         )
         PATH = (
-            os.environ.get("PATH", "")
-            + ":"
-            + ROBOT_TEST_BASE_DIR_PATH
-            + "bin"
-            + ":"
-            + OPENBMCTOOL_DIR_PATH.rstrip("/")
+            os.environ.get("PATH", "") + ":" + ROBOT_TEST_BASE_DIR_PATH + "bin"
         )
 
     os.environ["PYTHONPATH"] = PYTHONPATH
diff --git a/lib/openbmctool_utils.py b/lib/openbmctool_utils.py
deleted file mode 100755
index f89683d..0000000
--- a/lib/openbmctool_utils.py
+++ /dev/null
@@ -1,625 +0,0 @@
-#!/usr/bin/env python3
-
-r"""
-This module provides many valuable openbmctool.py functions such as
-openbmctool_execute_command.
-"""
-
-import collections
-import json
-import re
-import tempfile
-
-import gen_cmd as gc
-import gen_misc as gm
-import gen_print as gp
-import gen_valid as gv
-import utils as utils
-import var_funcs as vf
-from robot.libraries.BuiltIn import BuiltIn
-
-
-def openbmctool_execute_command(command_string, *args, **kwargs):
-    r"""
-    Run the command string as an argument to the openbmctool.py program and
-    return the stdout and the return code.
-
-    This function provides several benefits versus calling shell_cmd directly:
-    - This function will obtain the global values for OPENBMC_HOST,
-      OPENBMC_USERNAME, etc.
-    - This function will compose the openbmctool.py command string which
-      includes the caller's command_string.
-    - The openbmctool.py produces additional text that clutters the output.
-      This function will remove such text.  Example:
-        Attempting login...
-        <actual output>
-        User root has been logged out
-
-    NOTE: If you have pipe symbols in your command_string, they must be
-    surrounded by a single space on each side (see example below).
-
-    Example code:
-    ${rc}  ${output}=  Openbmctool Execute Command  fru status | head -n 2
-
-    Example output:
-    #(CDT) 2018/09/19 15:16:58 - Issuing: set -o pipefail ; openbmctool.py -H hostname -U root -P ********
-    ...  fru status | tail -n +1 | egrep -v 'Attempting login|User [^ ]+ hasbeen logged out' | head -n 2
-    Component     | Is a FRU  | Present  | Functional  | Has Logs
-    cpu0          | Yes       | Yes      | Yes         | No
-
-    Description of arguments:
-    command_string                  The command string to be passed to the
-                                    openbmctool.py program.
-    All remaining arguments are passed directly to shell_cmd.  See the
-    shell_cmd prolog for details on allowable arguments.  The caller may code
-    them directly as in this example:
-    openbmctool_execute_command("my command", quiet=1, max_attempts=2).
-    Python will do the work of putting these values into args/kwargs.
-    """
-
-    if not gv.valid_value(command_string):
-        return "", "", 1
-
-    # Get global BMC variable values.
-    openbmc_host = BuiltIn().get_variable_value("${OPENBMC_HOST}", default="")
-    https_port = BuiltIn().get_variable_value("${HTTPS_PORT}", default="443")
-    openbmc_username = BuiltIn().get_variable_value(
-        "${OPENBMC_USERNAME}", default=""
-    )
-    openbmc_password = BuiltIn().get_variable_value(
-        "${OPENBMC_PASSWORD}", default=""
-    )
-    if not gv.valid_value(openbmc_host):
-        return "", "", 1
-    if not gv.valid_value(openbmc_username):
-        return "", "", 1
-    if not gv.valid_value(openbmc_password):
-        return "", "", 1
-    if not gv.valid_value(https_port):
-        return "", "", 1
-
-    # Break the caller's command up into separate piped commands.  For
-    # example, the user may have specified "fru status | head -n 2" which
-    # would be broken into 2 list elements.  We will also break on ">"
-    # (re-direct).
-    pipeline = list(
-        map(str.strip, re.split(r" ([\|>]) ", str(command_string)))
-    )
-    # The "tail" command below prevents a "egrep: write error: Broken pipe"
-    # error if the user is piping the output to a sub-process.
-    # Use "egrep -v" to get rid of editorial output from openbmctool.py.
-    pipeline.insert(
-        1,
-        (
-            "| tail -n +1 | egrep -v 'Attempting login|User [^ ]+"
-            " has been logged out'"
-        ),
-    )
-
-    command_string = (
-        "set -o pipefail ; python3 $(which openbmctool.py) -H "
-        + openbmc_host
-        + ":"
-        + https_port
-        + " -U "
-        + openbmc_username
-        + " -P "
-        + openbmc_password
-        + " "
-        + " ".join(pipeline)
-    )
-
-    return gc.shell_cmd(command_string, *args, **kwargs)
-
-
-def openbmctool_execute_command_json(command_string, *args, **kwargs):
-    r"""
-    Run the command string as an argument to the openbmctool.py program, parse
-    the JSON output into a dictionary and return the dictionary.
-
-    This function is a wrapper for openbmctool_execute_command (defined
-    above).  The caller may provide any command string where the output will
-    be JSON data.  This function will convert the JSON data to a python
-    object, verify that the 'status' field = "ok" and return the 'data'
-    sub-field to the caller.
-
-    See openbmctool_execute_command (above) for all field descriptions.
-    """
-
-    rc, output = openbmctool_execute_command(command_string, *args, **kwargs)
-    try:
-        json_object = utils.to_json_ordered(output)
-    except json.JSONDecodeError:
-        BuiltIn().fail(gp.sprint_error(output))
-
-    if json_object["status"] != "ok":
-        err_msg = "Error found in JSON data returned by the openbmctool.py "
-        err_msg += "command. Expected a 'status' field value of \"ok\":\n"
-        err_msg += gp.sprint_var(json_object, 1)
-        BuiltIn().fail(gp.sprint_error(err_msg))
-
-    return json_object["data"]
-
-
-def get_fru_status():
-    r"""
-    Get the fru status and return as a list of dictionaries.
-
-    Example robot code:
-
-    ${fru_status}=  Get Fru Status
-    Rprint Vars  fru_status  fmt=1
-
-    Example result (excerpt):
-
-    fru_status:
-      fru_status[0]:
-        [component]:             cpu0
-        [is_a]:                  Yes
-        [fru]:                   Yes
-        [present]:               Yes
-        [functional]:            No
-      fru_status[1]:
-        [component]:             cpu0-core0
-        [is_a]:                  No
-        [fru]:                   Yes
-        [present]:               Yes
-        [functional]:            No
-    ...
-    """
-    rc, output = openbmctool_execute_command(
-        "fru status", print_output=False, ignore_err=False
-    )
-    # Example value for output (partial):
-    # Component     | Is a FRU  | Present  | Functional  | Has Logs
-    # cpu0          | Yes       | Yes      | Yes         | No
-    # cpu0-core0    | No        | Yes      | Yes         | No
-    # ...
-
-    # Replace spaces with underscores in field names (e.g. "Is a FRU" becomes
-    # "Is_a_FRU").
-    output = re.sub("([^ \\|])[ ]([^ ])", "\\1_\\2", output)
-    output = re.sub("([^ \\|])[ ]([^ ])", "\\1_\\2", output)
-
-    return vf.outbuf_to_report(output, field_delim="|")
-
-
-def get_fru_print(parse_json=True):
-    r"""
-    Get the output of the fru print command and return it either as raw JSON
-    data or as a list of dictionaries.
-
-    Example robot code:
-
-    ${fru_print}=  Get Fru Print  parse_json=${False}
-    Log to Console  ${fru_print}
-
-    Example result (excerpt):
-
-    {
-      "data": {
-        "/xyz/openbmc_project/inventory/system": {
-          "AssetTag": "",
-          "BuildDate": "",
-          "Cached": false,
-          "FieldReplaceable": false,
-          "Manufacturer": "",
-          "Model": "xxxxxxxx",
-          "PartNumber": "",
-          "Present": true,
-          "PrettyName": "",
-          "SerialNumber": "13183FA"
-        },
-        "/xyz/openbmc_project/inventory/system/chassis": {
-          "AirCooled": true,
-          "WaterCooled": false
-        },
-    ...
-
-    Example robot code:
-
-    ${fru_print}=  Get Fru Print
-    Rprint Vars  fru_print  fmt=1
-
-    Example result (excerpt):
-
-    fru_print:
-      fru_print[0]:
-        [data]:
-          [/xyz/openbmc_project/inventory/system]:
-            [AssetTag]:          <blank>
-            [BuildDate]:         <blank>
-            [Cached]:            False
-            [FieldReplaceable]:  False
-            [Manufacturer]:      <blank>
-            [Model]:             xxxxxxxx
-            [PartNumber]:        <blank>
-            [Present]:           True
-            [PrettyName]:        <blank>
-            [SerialNumber]:      13183FA
-          [/xyz/openbmc_project/inventory/system/chassis]:
-            [AirCooled]:         True
-            [WaterCooled]:       False
-    ...
-
-    Description of argument(s):
-    parse_json                      Indicates that the raw JSON data should
-                                    parsed into a list of dictionaries.
-    """
-
-    rc, output = openbmctool_execute_command(
-        "fru print", print_output=False, ignore_err=False
-    )
-    if parse_json:
-        return gm.json_loads_multiple(output)
-    else:
-        return output
-
-
-def get_fru_list(parse_json=True):
-    r"""
-    Get the output of the fru list command and return it either as raw JSON
-    data or as a list of dictionaries.
-
-    Example robot code:
-
-    ${fru_list}=  Get Fru List  parse_json=${False}
-    Log to Console  ${fru_list}
-
-    Example result (excerpt):
-
-    {
-      "data": {
-        "/xyz/openbmc_project/inventory/system": {
-          "AssetTag": "",
-          "BuildDate": "",
-          "Cached": false,
-          "FieldReplaceable": false,
-          "Manufacturer": "",
-          "Model": "xxxxxxxx",
-          "PartNumber": "",
-          "Present": true,
-          "PrettyName": "",
-          "SerialNumber": "13183FA"
-        },
-        "/xyz/openbmc_project/inventory/system/chassis": {
-          "AirCooled": true,
-          "WaterCooled": false
-        },
-    ...
-
-    Example robot code:
-
-    ${fru_list}=  Get Fru List
-    Rprint Vars  fru_list  fmt=1
-
-    Example result (excerpt):
-
-    fru_list:
-      fru_list[0]:
-        [data]:
-          [/xyz/openbmc_project/inventory/system]:
-            [AssetTag]:          <blank>
-            [BuildDate]:         <blank>
-            [Cached]:            False
-            [FieldReplaceable]:  False
-            [Manufacturer]:      <blank>
-            [Model]:             xxxxxxxx
-            [PartNumber]:        <blank>
-            [Present]:           True
-            [PrettyName]:        <blank>
-            [SerialNumber]:      13183FA
-          [/xyz/openbmc_project/inventory/system/chassis]:
-            [AirCooled]:         True
-            [WaterCooled]:       False
-    ...
-
-    Description of argument(s):
-    parse_json                      Indicates that the raw JSON data should
-                                    parsed into a list of dictionaries.
-    """
-
-    rc, output = openbmctool_execute_command(
-        "fru list", print_output=False, ignore_err=False
-    )
-    if parse_json:
-        return gm.json_loads_multiple(output)
-    else:
-        return output
-
-
-def get_sensors_print():
-    r"""
-    Get the output of the sensors print command and return as a list of
-    dictionaries.
-
-    Example robot code:
-
-    ${sensors_print}=  Get Sensors Print
-    Rprint Vars  sensors_print  fmt=1
-
-    Example result (excerpt):
-
-    sensors_print:
-      sensors_print[0]:
-        [sensor]:                OCC0
-        [type]:                  Discrete
-        [units]:                 N/A
-        [value]:                 Active
-        [target]:                Active
-      sensors_print[1]:
-        [sensor]:                OCC1
-        [type]:                  Discrete
-        [units]:                 N/A
-        [value]:                 Active
-        [target]:                Active
-    ...
-    """
-    rc, output = openbmctool_execute_command(
-        "sensors print", print_output=False, ignore_err=False
-    )
-    # Example value for output (partial):
-    # sensor                 | type         | units     | value    | target
-    # OCC0                   | Discrete     | N/A       | Active   | Active
-    # OCC1                   | Discrete     | N/A       | Active   | Active
-
-    return vf.outbuf_to_report(output, field_delim="|")
-
-
-def get_sensors_list():
-    r"""
-    Get the output of the sensors list command and return as a list of
-    dictionaries.
-
-    Example robot code:
-
-    ${sensors_list}=  Get Sensors List
-    Rprint Vars  sensors_list  fmt=1
-
-    Example result (excerpt):
-
-    sensors_list:
-      sensors_list[0]:
-        [sensor]:                OCC0
-        [type]:                  Discrete
-        [units]:                 N/A
-        [value]:                 Active
-        [target]:                Active
-      sensors_list[1]:
-        [sensor]:                OCC1
-        [type]:                  Discrete
-        [units]:                 N/A
-        [value]:                 Active
-        [target]:                Active
-    ...
-    """
-    rc, output = openbmctool_execute_command(
-        "sensors list", print_output=False, ignore_err=False
-    )
-    # Example value for output (partial):
-    # sensor                 | type         | units     | value    | target
-    # OCC0                   | Discrete     | N/A       | Active   | Active
-    # OCC1                   | Discrete     | N/A       | Active   | Active
-
-    return vf.outbuf_to_report(output, field_delim="|")
-
-
-def get_openbmctool_version():
-    r"""
-    Get the openbmctool.py version and return it.
-
-    Example robot code:
-    ${openbmctool_version}=  Get Openbmctool Version
-    Rprint Vars  openbmctool_version
-
-    Example result (excerpt):
-    openbmctool_version:         1.06
-    """
-    rc, output = openbmctool_execute_command(
-        "-V | cut -f 2 -d ' '", print_output=False, ignore_err=False
-    )
-    return output
-
-
-def service_data_files():
-    r"""
-    Return a complete list of file names that are expected to be created by
-    the collect_service_data command.
-    """
-
-    return [
-        "inventory.txt",
-        "sensorReadings.txt",
-        "ledStatus.txt",
-        "SELshortlist.txt",
-        "parsedSELs.txt",
-        "bmcFullRaw.txt",
-    ]
-
-
-def collect_service_data(verify=False):
-    r"""
-    Run the collect_service_data command and return a list of files generated
-    by the command.
-
-    Description of argument(s):
-    verify                          If set, verify that all files which can be
-                                    created by collect_service_data did, in
-                                    fact, get created.
-    """
-
-    # Route the output of collect_service_data to a file for easier parsing.
-    temp = tempfile.NamedTemporaryFile()
-    temp_file_path = temp.name
-    openbmctool_execute_command(
-        "collect_service_data > " + temp_file_path, ignore_err=False
-    )
-    # Isolate the file paths in the collect_service_data output.  We're
-    # looking for output lines like this from which to extract the file paths:
-    # Inventory collected and stored in /tmp/dummy--2018-09-26_17.59.18/inventory.txt
-    rc, file_paths = gc.shell_cmd(
-        "egrep 'collected and' " + temp_file_path
-        # + " | sed -re 's#.*/tmp#/tmp#g'",
-        + " | sed -re 's#[^/]*/#/#'",
-        quiet=1,
-        print_output=0,
-    )
-    # Example file_paths value:
-    # /tmp/dummy--2018-09-26_17.59.18/inventory.txt
-    # /tmp/dummy--2018-09-26_17.59.18/sensorReadings.txt
-    # etc.
-    # Convert from output to list.
-    collect_service_data_file_paths = list(
-        filter(None, file_paths.split("\n"))
-    )
-    if int(verify):
-        # Create a list of files by stripping the dir names from the elements
-        # of collect_service_data_file_paths.
-        files_obtained = [
-            re.sub(r".*/", "", file_path)
-            for file_path in collect_service_data_file_paths
-        ]
-        files_expected = service_data_files()
-        files_missing = list(set(files_expected) - set(files_obtained))
-        if len(files_missing) > 0:
-            gp.printn(
-                "collect_service_data output:\n"
-                + gm.file_to_str(temp_file_path)
-            )
-            err_msg = "The following files are missing from the list of files"
-            err_msg += " returned by collect_service_data:\n"
-            err_msg += gp.sprint_var(files_missing)
-            err_msg += gp.sprint_var(collect_service_data_file_paths)
-            BuiltIn().fail(gp.sprint_error(err_msg))
-
-    return collect_service_data_file_paths
-
-
-def health_check_fields():
-    r"""
-    Return a complete list of field names returned by the health_check command.
-    """
-
-    return ["hardware_status", "performance"]
-
-
-def get_health_check(verify=False):
-    r"""
-    Get the health_check information and return as a dictionary.
-
-    Example robot code:
-
-    ${health_check}=  Get Health Check
-    Rprint Vars  health_check  fmt=1
-
-    Example result:
-
-    health_check:
-      [hardware_status]:         OK
-      [performance]:             OK
-
-    Description of argument(s):
-    verify                          If set, verify that all all expected
-                                    field_names are generated by the
-                                    health_check command.
-    """
-
-    rc, output = openbmctool_execute_command(
-        "health_check", print_output=False, ignore_err=False
-    )
-    health_check = vf.key_value_outbuf_to_dict(output, delim=":")
-    if int(verify):
-        err_msg = gv.valid_dict(health_check, health_check_fields())
-        if err_msg != "":
-            BuiltIn().fail(gp.sprint_error(err_msg))
-
-    return health_check
-
-
-def remote_logging_view_fields():
-    r"""
-    Return a complete list of field names returned by the logging
-    remote_logging view command.
-    """
-
-    return ["Address", "Port"]
-
-
-def get_remote_logging_view(verify=False):
-    r"""
-    Get the remote_logging view information and return as a dictionary.
-
-    Example robot code:
-
-    ${remote_logging_view}=  Get Remote Logging View
-    Rprint Vars  remote_logging_view  fmt=1
-
-    Example result:
-
-    remote_logging_view:
-      [Address]:                 <blank>
-      [AddressFamily]:           xyz.openbmc_project.Network.Client.IPProtocol.IPv4
-      [Port]:                    0
-
-    Description of argument(s):
-    verify                          If set, verify that all all expected field
-                                    names are generated by the 'logging
-                                    remote_logging view' command.
-    """
-
-    remote_logging_view = openbmctool_execute_command_json(
-        "logging remote_logging view", print_output=False, ignore_err=False
-    )
-
-    if int(verify):
-        err_msg = gv.valid_dict(
-            remote_logging_view, remote_logging_view_fields()
-        )
-        if err_msg != "":
-            BuiltIn().fail(gp.sprint_error(err_msg))
-
-    return remote_logging_view
-
-
-def network(sub_command, **options):
-    r"""
-    Run an openbmctool.py network command and return the results as a dictionary.
-
-    Note that any valid network argument may be specified as a function argument.
-
-    Example robot code:
-
-    ${ip_records}=  Network  getIP  I=eth0
-    Rprint Vars  ip_records
-
-    Resulting output:
-
-    ip_records:
-      [/xyz/openbmc_project/network/eth0/ipv4/23d41d48]:
-        [Address]:                  n.n.n.n
-        [Gateway]:
-        [Origin]:                   xyz.openbmc_project.Network.IP.AddressOrigin.Static
-        [PrefixLength]:             24
-        [Type]:                     xyz.openbmc_project.Network.IP.Protocol.IPv4
-      [/xyz/openbmc_project/network/eth0/ipv4/24ba5feb]:
-        [Address]:                  n.n.n.n
-      (etc.)
-
-    Description of argument(s):
-    sub_command                     The sub-command accepted by the network
-                                    command (e.g. "view-config", "getIP",
-                                    etc.).
-    options                         Zero or more options accepted by the network command.
-    """
-
-    if gm.python_version < gm.ordered_dict_version:
-        new_options = collections.OrderedDict(options)
-    else:
-        new_options = options
-
-    command_string = gc.create_command_string(
-        "network " + sub_command, new_options
-    )
-    return openbmctool_execute_command_json(
-        command_string, print_output=False, ignore_err=False
-    )