Merge "The 'nova keypair-show key_name' command added."

This commit is contained in:
Jenkins 2013-06-12 23:32:43 +00:00 committed by Gerrit Code Review
commit f41b76cf1b
4 changed files with 34 additions and 0 deletions

View File

@ -875,6 +875,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

@ -2157,6 +2157,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',