diff --git a/doc/api_samples/os-keypairs/keypairs-get-resp.json b/doc/api_samples/os-keypairs/keypairs-get-resp.json new file mode 100644 index 000000000000..6c1c5d3f2435 --- /dev/null +++ b/doc/api_samples/os-keypairs/keypairs-get-resp.json @@ -0,0 +1,13 @@ +{ + "keypair": { + "created_at": "2014-05-07T12:06:13.681238", + "deleted": false, + "deleted_at": null, + "fingerprint": "9d:00:f4:d7:26:6e:52:06:4c:c1:d3:1d:fd:06:66:01", + "id": 1, + "name": "keypair-3582d8b7-e588-4aad-b7f7-f4e76f0e4314", + "public_key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDYJrTVpcMwFqQy/oMvtUSRofZdSRHEwrsX8AYkRvn2ZnCXM+b6+GZ2NQuuWj+ocznlnwiGFQDsL/yeE+/kurqcPJFKKp60mToXIMyzioFxW88fJtwEWawHKAclbHWpR1t4fQ4DS+/sIbX/Yd9btlVQ2tpQjodGDbM9Tr9/+/3i6rcR+EoLqmbgCgAiGiVV6VbM2Zx79yUwd+GnQejHX8BlYZoOjCnt3NREsITcmWE9FVFy6TnLmahs3FkEO/QGgWGkaohAJlsgaVvSWGgDn2AujKYwyDokK3dXyeX3m2Vmc3ejiqPa/C4nRrCOlko5nSgV/9IXRx1ERImsqZnE9usB Generated by Nova\n", + "updated_at": null, + "user_id": "fake" + } +} \ No newline at end of file diff --git a/doc/api_samples/os-keypairs/keypairs-get-resp.xml b/doc/api_samples/os-keypairs/keypairs-get-resp.xml new file mode 100644 index 000000000000..76eba36bb2a7 --- /dev/null +++ b/doc/api_samples/os-keypairs/keypairs-get-resp.xml @@ -0,0 +1,13 @@ + + + ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDTWIBcXl7SSxGWOmzryHuYFYFQajo7uZXACg2juI92lRnQt1yy8aJ1710QZWaBlfluJYaOqBMccYXGxAR1vmZTONuW+lpBjRMqYgNG6ZC46p6z+Akp7Okbf1w1aqZ2rF2kq9OsjpU1x1SuB+xwC9stDv5MXEW2Gt/VPVcl3fVQLgvIoANhQPA5UJU5fRoeWgq0F/GCQtEGo7cQOQO3PC6IOshUPWAI/vRHt1dFGKnJjKJTkTbAuQkH2AnkMEWn6DvFFy8frBl3PwCYWnrResmOuPLvL5MG+Q5c1IrXpQm9ifTpEAstMalLJfHA0h5amQvIeWsj2y2yWyttcHoHg9K5 Generated by Nova + + fake + keypair-8cabfb98-b13f-48cb-af1a-068b585eaaf5 + False + 2014-05-07 12:06:00.402696+00:00 + None + ee:f5:79:02:69:af:ee:07:0f:ce:79:37:fd:5d:94:25 + None + 1 + \ No newline at end of file diff --git a/doc/v3/api_samples/keypairs/keypairs-get-resp.json b/doc/v3/api_samples/keypairs/keypairs-get-resp.json new file mode 100644 index 000000000000..6b6e5eabd480 --- /dev/null +++ b/doc/v3/api_samples/keypairs/keypairs-get-resp.json @@ -0,0 +1,7 @@ +{ + "keypair": { + "fingerprint": "44:fe:29:6e:23:14:b9:53:5b:65:82:58:1c:fe:5a:c3", + "name": "keypair-6638abdb-c4e8-407c-ba88-c8dd7cc3c4f1", + "public_key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC1HTrHCbb9NawNLSV8N6tSa8i637+EC2dA+lsdHHfQlT54t+N0nHhJPlKWDLhc579j87vp6RDFriFJ/smsTnDnf64O12z0kBaJpJPH2zXrBkZFK6q2rmxydURzX/z0yLSCP77SFJ0fdXWH2hMsAusflGyryHGX20n+mZK6mDrxVzGxEz228dwQ5G7Az5OoZDWygH2pqPvKjkifRw0jwUKf3BbkP0QvANACOk26cv16mNFpFJfI1N3OC5lUsZQtKGR01ptJoWijYKccqhkAKuo902tg/qup58J5kflNm7I61sy1mJon6SGqNUSfoQagqtBH6vd/tU1jnlwZ03uUroAL Generated by Nova\n" + } +} \ No newline at end of file diff --git a/nova/tests/integrated/api_samples/os-keypairs/keypairs-get-resp.json.tpl b/nova/tests/integrated/api_samples/os-keypairs/keypairs-get-resp.json.tpl new file mode 100644 index 000000000000..3a188cfc817a --- /dev/null +++ b/nova/tests/integrated/api_samples/os-keypairs/keypairs-get-resp.json.tpl @@ -0,0 +1,13 @@ +{ + "keypair": { + "public_key": "%(public_key)s", + "name": "%(keypair_name)s", + "fingerprint": "%(fingerprint)s", + "user_id": "fake", + "deleted": false, + "created_at": "%(timestamp)s", + "updated_at": null, + "deleted_at": null, + "id": 1 + } +} diff --git a/nova/tests/integrated/api_samples/os-keypairs/keypairs-get-resp.xml.tpl b/nova/tests/integrated/api_samples/os-keypairs/keypairs-get-resp.xml.tpl new file mode 100644 index 000000000000..bdaebc47d6db --- /dev/null +++ b/nova/tests/integrated/api_samples/os-keypairs/keypairs-get-resp.xml.tpl @@ -0,0 +1,13 @@ + + + %(public_key)s + + %(keypair_name)s + %(fingerprint)s + fake + False + %(timestamp)s + None + None + 1 + diff --git a/nova/tests/integrated/api_samples_test_base.py b/nova/tests/integrated/api_samples_test_base.py index e8bf32b33b46..a1e94baffd79 100644 --- a/nova/tests/integrated/api_samples_test_base.py +++ b/nova/tests/integrated/api_samples_test_base.py @@ -271,7 +271,8 @@ class ApiSampleTestBase(integrated_helpers._IntegratedTestBase): # shouldn't be an issue for this case. timestamp_re = ('\d{4}-[0,1]\d-[0-3]\d[ ,T]' '\d{2}:\d{2}:\d{2}' - '(Z|(\+|-)\d{2}:\d{2}|\.\d{6}|)') + '(Z|(\+|-)\d{2}:\d{2}|\.\d{6}|' + '\.\d{6}(Z|(\+|-)\d{2}:\d{2})|)') return { 'isotime': isotime_re, 'timestamp': timestamp_re, diff --git a/nova/tests/integrated/test_api_samples.py b/nova/tests/integrated/test_api_samples.py index 9e412a7c9a5d..fd13d4f7246f 100644 --- a/nova/tests/integrated/test_api_samples.py +++ b/nova/tests/integrated/test_api_samples.py @@ -1118,6 +1118,14 @@ class KeyPairsSampleJsonTest(ApiSampleTestBaseV2): subs['keypair_name'] = '(%s)' % key_name self._verify_response('keypairs-list-resp', subs, response, 200) + def test_keypairs_get(self): + # Get api sample of key pairs get request. + key_name = self.test_keypairs_post() + response = self._do_get('os-keypairs/%s' % key_name) + subs = self._get_regexes() + subs['keypair_name'] = '(%s)' % key_name + self._verify_response('keypairs-get-resp', subs, response, 200) + class KeyPairsSampleXmlTest(KeyPairsSampleJsonTest): ctype = 'xml' diff --git a/nova/tests/integrated/v3/api_samples/keypairs/keypairs-get-resp.json.tpl b/nova/tests/integrated/v3/api_samples/keypairs/keypairs-get-resp.json.tpl new file mode 100644 index 000000000000..228c8412a99d --- /dev/null +++ b/nova/tests/integrated/v3/api_samples/keypairs/keypairs-get-resp.json.tpl @@ -0,0 +1,7 @@ +{ + "keypair": { + "public_key": "%(public_key)s", + "name": "%(keypair_name)s", + "fingerprint": "%(fingerprint)s" + } +} diff --git a/nova/tests/integrated/v3/test_keypairs.py b/nova/tests/integrated/v3/test_keypairs.py index 8f71aff34d74..b78112d6368b 100644 --- a/nova/tests/integrated/v3/test_keypairs.py +++ b/nova/tests/integrated/v3/test_keypairs.py @@ -62,3 +62,11 @@ class KeyPairsSampleJsonTest(api_sample_base.ApiSampleTestBaseV3): subs = self._get_regexes() subs['keypair_name'] = '(%s)' % key_name self._verify_response('keypairs-list-resp', subs, response, 200) + + def test_keypairs_get(self): + # Get api sample of key pairs get request. + key_name = self.test_keypairs_post() + response = self._do_get('keypairs/%s' % key_name) + subs = self._get_regexes() + subs['keypair_name'] = '(%s)' % key_name + self._verify_response('keypairs-get-resp', subs, response, 200)