The 'nova keypair-show key_name' command added.

* 'os-keypairs' api extension used.

Change-Id: Idbb529135b6629f02306c49d8095b5fcf94770cc
This commit is contained in:
Sergey Lukjanov 2013-06-02 19:37:01 +04:00
parent e476179c65
commit 87bd54ff13
4 changed files with 34 additions and 0 deletions

View File

@ -848,6 +848,9 @@ class FakeHTTPClient(base_client.HTTPClient):
#
# Keypairs
#
def get_os_keypairs_test(self, *kw):
return (200, {}, {'keypair': self.get_os_keypairs()[2]['keypairs'][0]})
def get_os_keypairs(self, *kw):
return (200, {}, {"keypairs": [
{'fingerprint': 'FAKE_KEYPAIR', 'name': 'test'}

View File

@ -8,6 +8,12 @@ cs = fakes.FakeClient()
class KeypairsTest(utils.TestCase):
def test_get_keypair(self):
kp = cs.keypairs.get('test')
cs.assert_called('GET', '/os-keypairs/test')
self.assertTrue(isinstance(kp, keypairs.Keypair))
self.assertEqual(kp.name, 'test')
def test_list_keypairs(self):
kps = cs.keypairs.list()
cs.assert_called('GET', '/os-keypairs')

View File

@ -45,6 +45,15 @@ class Keypair(base.Resource):
class KeypairManager(base.ManagerWithFind):
resource_class = Keypair
def get(self, keypair):
"""
Get a keypair.
:param keypair: The ID of the keypair to get.
:rtype: :class:`Keypair`
"""
return self._get("/os-keypairs/%s" % base.getid(keypair), "keypair")
def create(self, name, public_key=None):
"""
Create a keypair

View File

@ -2137,6 +2137,22 @@ def do_keypair_list(cs, args):
utils.print_list(keypairs, columns)
def _print_keypair(keypair):
kp = keypair._info.copy()
pk = kp.pop('public_key')
utils.print_dict(kp)
print "Public key: %s" % pk
@utils.arg('keypair',
metavar='<keypair>',
help="Name or ID of keypair")
def do_keypair_show(cs, args):
"""Show details about the given keypair."""
keypair = cs.keypairs.get(args.keypair)
_print_keypair(keypair)
@utils.arg('--reserved',
dest='reserved',
action='store_true',