Beispiel #1
0
    def on_get(self, req, resp, tenant_id, keypair_name):
        client = req.env['sl_client']
        mgr = SshKeyManager(client)
        keys = mgr.list_keys(label=keypair_name)
        if len(keys) == 0:
            return not_found(resp, 'KeyPair not found')

        keypair = mgr.get_key(keys[0]['id'])

        resp.body = {'keypair': format_keypair(keypair)}
    def execute(self, args):
        mgr = SshKeyManager(self.client)

        key_id = resolve_id(mgr.resolve_ids,
                            args.get('<identifier>'), 'SshKey')

        key = mgr.get_key(key_id)

        if args.get('--file'):
            with open(expanduser(args['--file']), 'w') as pub_file:
                pub_file.write(key['key'])

        table = KeyValueTable(['Name', 'Value'])
        table.add_row(['id', key['id']])
        table.add_row(['label', key['label']])
        table.add_row(['notes', key.get('notes', '-')])
        return table
Beispiel #3
0
    def execute(self, args):
        mgr = SshKeyManager(self.client)

        key_id = resolve_id(mgr.resolve_ids, args.get("<identifier>"), "SshKey")

        key = mgr.get_key(key_id)

        if args.get("--file"):
            f = open(expanduser(args["--file"]), "w")
            f.write(key["key"])
            f.close()

        t = KeyValueTable(["Name", "Value"])
        t.add_row(["id", key["id"]])
        t.add_row(["label", key["label"]])
        t.add_row(["notes", key.get("notes", "-")])
        return t
    def execute(client, args):
        mgr = SshKeyManager(client)

        key_id = resolve_id(mgr.resolve_ids,
                            args.get('<identifier>'), 'SshKey')

        key = mgr.get_key(key_id)

        if args.get('--file'):
            f = open(expanduser(args['--file']), 'w')
            f.write(key['key'])
            f.close()

        t = KeyValueTable(['Name', 'Value'])
        t.add_row(['id', key['id']])
        t.add_row(['label', key['label']])
        t.add_row(['notes', key.get('notes', '-')])
        return t
class SshKeyTests(unittest.TestCase):

    def setUp(self):
        self.client = FixtureClient()
        self.sshkey = SshKeyManager(self.client)

    def test_add_key(self):
        key = 'pretend this is a public SSH key'
        label = 'Test label'
        notes = 'My notes'

        data = {
            'key': key,
            'label': label,
            'notes': notes,
        }
        mcall = call(data)
        service = self.client['Security_Ssh_Key']

        self.sshkey.add_key(key=key, label=label, notes=notes)
        service.createObject.assert_has_calls(mcall)

    def test_delete_key(self):
        id = 1234
        mcall = call(id=id)
        service = self.client['Security_Ssh_Key']

        self.sshkey.delete_key(id)
        service.deleteObject.assert_has_calls(mcall)

    def test_edit_key(self):
        id = 1234
        label = 'Test label'
        notes = 'My notes'

        data = {
            'label': label,
            'notes': notes,
        }
        mcall = call(data, id=id)
        service = self.client['Security_Ssh_Key']

        self.sshkey.edit_key(id, label=label, notes=notes)
        service.editObject.assert_has_calls(mcall)

    def test_get_key(self):
        id = 1234
        mcall = call(id=id)
        service = self.client['Security_Ssh_Key']

        self.sshkey.get_key(id)
        service.getObject.assert_has_calls(mcall)

    def test_list_keys(self):
        service = self.client['Account']
        self.sshkey.list_keys(label='some label')
        service.getSshKeys.assert_called_with(
            filter={'sshKeys': {'label': {'operation': '_= some label'}}})

    def test_resolve_ids_label(self):
        _id = self.sshkey._get_ids_from_label('Test 1')
        self.assertEqual(_id, ['100'])

        _id = self.sshkey._get_ids_from_label('nope')
        self.assertEqual(_id, [])