def get_from_git(self, username): """ :param username: the github username :return: an array of public keys :rtype: list """ uri = 'https://github.com/{:}.keys'.format(username) content = requests.get(uri).text.split("\n") for key in range(0, len(content)): value = content[key] sshkey = SSHkey(None) sshkey.__key__ = { 'uri': uri, 'string': value } (sshkey.__key__['type'], sshkey.__key__['key'], sshkey.__key__['comment']) = sshkey._parse(sshkey.__key__['string']) sshkey.__key__['fingerprint'] = sshkey._fingerprint(sshkey.__key__['string']) name = "github-" + str(key) sshkey.__key__['comment'] = name sshkey.__key__['Id'] = name self.__keys__[name] = sshkey.__key__
def get_from_yaml(self, filename=None, load_order=None): """ :param filename: name of the yaml file :return: a SSHKeyManager (dict of keys) """ config = None if filename is None: # default = Config.path_expand(os.path.join("~", ".cloudmesh", "cloudmesh.yaml")) # config = ConfigDict("cloudmesh.yaml") filename = "cloudmesh.yaml" config = ConfigDict(filename) elif load_order: config = ConfigDict(filename, load_order) else: Console.error("Wrong arguments") return config_keys = config["cloudmesh"]["keys"] default = config_keys["default"] keylist = config_keys["keylist"] sshmanager = SSHKeyManager() for key in list(keylist.keys()): keyname = key value = keylist[key] if os.path.isfile(Config.path_expand(value)): path = Config.path_expand(value) sshmanager.add_from_file(path, keyname) else: sshkey = SSHkey() uri = Config.path_expand(os.path.join("~", ".cloudmesh", filename)) sshkey.__key__['uri'] = 'yaml://{}'.format(uri) sshkey.__key__['string'] = value (sshkey.__key__['type'], sshkey.__key__['key'], sshkey.__key__['comment']) = sshkey._parse(sshkey.__key__['string']) sshkey.__key__['fingerprint'] = sshkey._fingerprint(sshkey.__key__['string']) sshkey.__key__['name'] = keyname sshkey.__key__['filename'] = filename sshmanager.add_from_object(sshkey) return sshmanager """