示例#1
0
def test_find_in_path(mock_os_path_exists):
    """Test find_in_path()."""
    # Test with absolute path.
    mock_os_path_exists.return_value = True
    path = cli.find_in_path('/does/not/exist')
    assert path == '/does/not/exist'

    # Test with relative path.
    with mock.patch.dict('os.environ', {'PATH': '/:/tmp'}):
        path = cli.find_in_path('foo')
        assert path == '/foo'

    # Test with non-existing file.
    mock_os_path_exists.return_value = False
    path = cli.find_in_path('/tmp/foo')
    assert path is None
示例#2
0
    def __init__(self, binary_path='storcli'):
        """ Constructor

        :param binary_path: Location (relative, in shell path, or absolute) of storcli binary
        """
        self.storecli_path = cli.find_in_path(binary_path)
        if not self.storecli_path:
            raise StorcliException('storcli binary is missing')
示例#3
0
    def __init__(self, path='racadm'):
        """

        :param path:
        """
        self.racadm_path = cli.find_in_path(path)
        if not self.racadm_path:
            raise SimpleRACException('Could not find racadm binary')
示例#4
0
    def __init__(self, ipmitool_path=DEFAULT_IPMITOOL_PATH):
        self.ipmitool_path = cli.find_in_path(ipmitool_path)

        if not self.ipmitool_path:
            raise OSError("%s does not exist" % ipmitool_path)

        self.net_info = {}
        self.parse_network_info()
示例#5
0
    def __init__(self, hpasmcli_path='hpasmcli'):
        """
        A class interface for the hpasmcli utility
        :param hpasmcli_path:
        """
        self.hpasmcli = cli.find_in_path(hpasmcli_path)

        if not self.hpasmcli:
            raise HPAsmException('Could not find hpasmcli binary')
示例#6
0
def query_mcelog_daemon(mcelog_path='mcelog'):
    """
    Used to expose memory error counts
    :param mcelog_path:
    :return:
    """
    mcelog = cli.find_in_path(mcelog_path)
    if not mcelog:
        raise MercuryGeneralException('Could not find mcelog')

    result = cli.run(f'{mcelog} --client', raise_exception=False)
    return result.stdout
示例#7
0
    def __init__(self,
                 device_info,
                 backend_client,
                 lldplite_path=LLDPLITE_DEFAULT_PATH):
        self.device_info = device_info
        self.backend_client = backend_client
        self.lldplite_path = lldplite_path
        self.lldplite = cli.find_in_path(lldplite_path)
        if not self.lldplite:
            raise MercuryGeneralException('Could not find lldplite binary')

        self.pids = {}
示例#8
0
    def __init__(self, megacli_path=DEFAULT_MEGACLI_PATH, adapter=0):

        self.clear = False
        self.adapter = adapter
        self.megacli_bin = find_in_path(megacli_path)
        if not self.megacli_bin:
            raise LSIRaidException('megacli binary is missing.')

        self.vdisks = None
        self.pdisks = None
        self.enclosure = None
        self.raw_adapter_info = None
        self.refresh()
示例#9
0
 def __init__(self, dcmitool_path='/usr/local/sbin/Qdcmitool'):
     self.dcmitool_path = cli.find_in_path(dcmitool_path)
     super(DCMITool, self).__init__(ipmitool_path=dcmitool_path)
示例#10
0
 def __init__(self, path='ip'):
     self.ip_path = cli.find_in_path(path)
     self.raw_table = self.get_table()
     self.table = []
     self.parse_table()