Ejemplo n.º 1
0
    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__
Ejemplo n.º 2
0
 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
     """