import pywbem # TODO rewrite this scripton using lmishell # https://fedorahosted.org/openlmi/ticket/109 cliconn = pywbem.WBEMConnection('https://localhost', ('root', 'secret')) NS='root/cimv2' FS='Unknown' # return a list of files in a directory def cmd_ls(path='/', ns=None): _ns = ns if ns else NS cop = pywbem.CIMInstanceName(classname='LMI_UnixDirectory', namespace=_ns, keybindings={ 'CSCreationClassName':'Linux_ComputerSystem', 'CSName':'rawhide-virt', 'CreationClassName':'LMI_UnixDirectory', 'FSCreationClassName':'LMI_LocalFileSystem', 'FSName':FS, 'Name':path }) assocs = cliconn.Associators(cop, AssocClass='LMI_DirectoryContainsFile') return [a['Name'] for a in assocs] def cmd_cd(path, ns=None): # change directory to path? # have a global current path variable and use it somehow for something? pass def cmd_mkdir(path, ns=None): _ns = ns if ns else NS cop = pywbem.CIMInstanceName(classname='LMI_UnixDirectory', namespace=_ns, keybindings={ 'CSCreationClassName':'Linux_ComputerSystem', 'CSName':'rawhide-virt', 'CreationClassName':'LMI_UnixDirectory', 'FSCreationClassName':'LMI_LocalFileSystem', 'FSName':FS, 'Name':path }) inst = pywbem.CIMInstance('LMI_UnixDirectory') inst['CSCreationClassName'] = 'Linux_ComputerSystem' inst['CSName'] = 'rawhide-virt' inst['CreationClassName'] = 'LMI_UnixDirectory' inst['FSCreationClassName'] = 'LMI_LocalFileSystem' inst['FSName'] = 'Unknown' inst['Name'] = path inst.path = cop cliconn.CreateInstance(inst) def cmd_rmdir(path, ns=None): _ns = ns if ns else NS cop = pywbem.CIMInstanceName(classname='LMI_UnixDirectory', namespace=_ns, keybindings={ 'CSCreationClassName':'Linux_ComputerSystem', 'CSName':'rawhide-virt', 'CreationClassName':'LMI_UnixDirectory', 'FSCreationClassName':'LMI_LocalFileSystem', 'FSName':FS, 'Name':path }) cliconn.DeleteInstance(cop)