Add Keypairs extension to API samples test.

NOTE: This include two samples of post request: One to create the keypair and
another to import from a public key

Change-Id: I754fd5998cf8be46a96e69e3459c91d4f767575e
This commit is contained in:
Mauro S. M. Rodrigues 2012-09-10 09:14:40 -04:00
parent 0ffff7c490
commit 894ea491dd
21 changed files with 215 additions and 0 deletions

View File

@ -0,0 +1,11 @@
{
"keypairs": [
{
"keypair": {
"fingerprint": "15:b0:f8:b3:f9:48:63:71:cf:7b:5b:38:6d:44:2d:4a",
"name": "keypair-601a2305-4f25-41ed-89c6-2a966fc8027a",
"public_key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAgQC+Eo/RZRngaGTkFs7I62ZjsIlO79KklKbMXi8F+KITD4bVQHHn+kV+4gRgkgCRbdoDqoGfpaDFs877DYX9n4z6FrAIZ4PES8TNKhatifpn9NdQYWA+IkU8CuvlEKGuFpKRi/k7JLos/gHi2hy7QUwgtRvcefvD/vgQZOVw/mGR9Q== Generated by Nova\n"
}
}
]
}

View File

@ -0,0 +1,9 @@
<?xml version='1.0' encoding='UTF-8'?>
<keypairs>
<keypair>
<public_key>ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAgQCWdUoGD7qz9kjbLoY2L0S5CdhUS8RvQ1g62OTgvmWE/bEKDLwaTIFEEpN/0huGk/nxvVZ6VOhv1eSKC3o9dZ2NDk0C4sBsrvJ41uWd1hbq72sDGzVEkJ+925CraioSAbMpRK5Ea7UPWbR8laqrY1TsKtcuxiGJ936bOPIXW12h6Q== Generated by Nova
</public_key>
<name>keypair-a4c7d228-218b-4c4c-9d99-62e7878ebb1b</name>
<fingerprint>62:32:23:67:56:ee:6f:51:4c:03:ce:b8:00:f9:41:ff</fingerprint>
</keypair>
</keypairs>

View File

@ -0,0 +1,6 @@
{
"keypair": {
"name": "keypair-dab428fe-6186-4a14-b3de-92131f76cd39",
"public_key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAgQDx8nkQv/zgGgB4rMYmIf+6A4l6Rr+o/6lHBQdW5aYd44bd8JttDCE/F/pNRr0lRE+PiqSPO8nDPHw0010JeMH9gYgnnFlyY3/OcJ02RhIPyyxYpv9FhY+2YiUkpwFOcLImyrxEsYXpD/0d3ac30bNH6Sw9JD9UZHYcpSxsIbECHw== Generated by Nova"
}
}

View File

@ -0,0 +1,4 @@
<keypair>
<name>keypair-96bbe50e-05e1-4d59-9115-4779a3ebcc2e</name>
<public_key>ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAgQDx8nkQv/zgGgB4rMYmIf+6A4l6Rr+o/6lHBQdW5aYd44bd8JttDCE/F/pNRr0lRE+PiqSPO8nDPHw0010JeMH9gYgnnFlyY3/OcJ02RhIPyyxYpv9FhY+2YiUkpwFOcLImyrxEsYXpD/0d3ac30bNH6Sw9JD9UZHYcpSxsIbECHw== Generated by Nova</public_key>
</keypair>

View File

@ -0,0 +1,8 @@
{
"keypair": {
"fingerprint": "1e:2c:9b:56:79:4b:45:77:f9:ca:7a:98:2c:b0:d5:3c",
"name": "keypair-dab428fe-6186-4a14-b3de-92131f76cd39",
"public_key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAgQDx8nkQv/zgGgB4rMYmIf+6A4l6Rr+o/6lHBQdW5aYd44bd8JttDCE/F/pNRr0lRE+PiqSPO8nDPHw0010JeMH9gYgnnFlyY3/OcJ02RhIPyyxYpv9FhY+2YiUkpwFOcLImyrxEsYXpD/0d3ac30bNH6Sw9JD9UZHYcpSxsIbECHw== Generated by Nova",
"user_id": "fake"
}
}

View File

@ -0,0 +1,7 @@
<?xml version='1.0' encoding='UTF-8'?>
<keypair>
<public_key>ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAgQDx8nkQv/zgGgB4rMYmIf+6A4l6Rr+o/6lHBQdW5aYd44bd8JttDCE/F/pNRr0lRE+PiqSPO8nDPHw0010JeMH9gYgnnFlyY3/OcJ02RhIPyyxYpv9FhY+2YiUkpwFOcLImyrxEsYXpD/0d3ac30bNH6Sw9JD9UZHYcpSxsIbECHw== Generated by Nova</public_key>
<user_id>fake</user_id>
<name>keypair-96bbe50e-05e1-4d59-9115-4779a3ebcc2e</name>
<fingerprint>1e:2c:9b:56:79:4b:45:77:f9:ca:7a:98:2c:b0:d5:3c</fingerprint>
</keypair>

View File

@ -0,0 +1,5 @@
{
"keypair": {
"name": "keypair-7d7c3650-dabe-4eb0-b904-5c464453c043"
}
}

View File

@ -0,0 +1,3 @@
<keypair>
<name>keypair-b03122a0-102b-445b-a128-dba267c7cd2a</name>
</keypair>

View File

@ -0,0 +1,9 @@
{
"keypair": {
"fingerprint": "35:9d:d0:c3:4a:80:d3:d8:86:f1:ca:f7:df:c4:f9:d8",
"name": "keypair-7d7c3650-dabe-4eb0-b904-5c464453c043",
"private_key": "-----BEGIN RSA PRIVATE KEY-----\nMIICXAIBAAKBgQC9mC3WZN9UGLxgPBpP7H5jZMc6pKwOoSgre8yun6REFktn/Kz7\nDUt9jaR1UJyRzHxITfCfAIgSxPdGqB/oF1suMyWgu5i0625vavLB5z5kC8Hq3qZJ\n9zJO1poE1kyD+htiTtPWJ88e12xuH2XB/CZN9OpEiF98hAagiOE0EnOS5QIDAQAB\nAoGAE5XO1mDhORy9COvsg+kYPUhB1GsCYxh+v88wG7HeFDKBY6KUc/Kxo6yoGn5T\nTjRjekyi2KoDZHz4VlIzyZPwFS4I1bf3oCunVoAKzgLdmnTtvRNMC5jFOGc2vUgP\n9bSyRj3S1R4ClVk2g0IDeagko/jc8zzLEYuIK+fbkds79YECQQDt3vcevgegnkga\ntF4NsDmmBPRkcSHCqrANP/7vFcBQN3czxeYYWX3DK07alu6GhH1Y4sHbdm616uU0\nll7xbDzxAkEAzAtN2IyftNygV2EGiaGgqLyo/tD9+Vui2qCQplqe4jvWh/5Sparl\nOjmKo+uAW+hLrLVMnHzRWxbWU8hirH5FNQJATO+ZxCK4etXXAnQmG41NCAqANWB2\nB+2HJbH2NcQ2QHvAHUm741JGn/KI/aBlo7KEjFRDWUVUB5ji64BbUwCsMQJBAIku\nLGcjnBf/oLk+XSPZC2eGd2Ph5G5qYmH0Q2vkTx+wtTn3DV+eNsDfgMtWAJVJ5t61\ngU1QSXyhLPVlKpnnxuUCQC+xvvWjWtsLaFtAsZywJiqLxQzHts8XLGZptYJ5tLWV\nrtmYtBcJCN48RrgQHry/xWYeA4K/AFQpXfNPgprQ96Q=\n-----END RSA PRIVATE KEY-----\n",
"public_key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAgQC9mC3WZN9UGLxgPBpP7H5jZMc6pKwOoSgre8yun6REFktn/Kz7DUt9jaR1UJyRzHxITfCfAIgSxPdGqB/oF1suMyWgu5i0625vavLB5z5kC8Hq3qZJ9zJO1poE1kyD+htiTtPWJ88e12xuH2XB/CZN9OpEiF98hAagiOE0EnOS5Q== Generated by Nova\n",
"user_id": "fake"
}
}

View File

@ -0,0 +1,24 @@
<?xml version='1.0' encoding='UTF-8'?>
<keypair>
<public_key>ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAgQDNa8e/Gfe4572GwEDXlLsCqxsMcuUiF8Fr9RSeW30EuWg8Me5HM/rzqaShmzdHZbN5dvGH15H1yMXTUg8cxcLaOU04IQi/g+BHkGzbxV3gCdODWqjF+5928Ljg6x87e5lxxB6WAoyoGuzghaJXikOihRZSzdityb3DlYuYRfaRMw== Generated by Nova
</public_key>
<private_key>-----BEGIN RSA PRIVATE KEY-----
MIICXgIBAAKBgQDNa8e/Gfe4572GwEDXlLsCqxsMcuUiF8Fr9RSeW30EuWg8Me5H
M/rzqaShmzdHZbN5dvGH15H1yMXTUg8cxcLaOU04IQi/g+BHkGzbxV3gCdODWqjF
+5928Ljg6x87e5lxxB6WAoyoGuzghaJXikOihRZSzdityb3DlYuYRfaRMwIDAQAB
AoGBAL67q4zqHJRIQDcE/W/t/jI9E3FcoRoluod12P4sbolbacgyiE7+ma1yv5T6
HLqjWKCYay05YKI5GE3dbIDHsuHnnhd1S5tE2SNY85as8zC0QT6N8eFexh5/0Px4
dVl3tXKj+Oaovb0tCKoiPVUHIZTsihNPwYqFS2kMuHnUwthxAkEA99Bw2FIWbgq9
gj37qNGP5Vm2pmK9xU0aSyG2NJKH77CrERgmqrBT41a97BdsJbzuIaAwi4RJaDqm
AsTFBw312wJBANQ02vVin5NYD4BAfMyCsoNI7pQBCkq6UeK3VAC9ozCBE5BIDqat
VTx2ijbdlfwGqQVM6g773xuuNebgZJrbrYkCQQDV4YXzfe2z7fsf1MVGMBBkn2h/
9ErbZa9i1ua+OxWt7qnGaDS/Ls5IMQ5cHN8PNx/Dz9D2KSd+GNg9HXz7mLXvAkEA
0GvZYomrEZy8HMs5x+PWUPug19ztrtew9Wv6JYAcd9dOz7b2LN6xiOEkfx7D4PTp
rTsN6AmZ6CYC6vAZ379DgQJAPMZjO9Z9KZ2t2VFu0YgK9LbQ4upbhew7YUmWA5dV
djCVjJ/0AZgQofvvUDe9FZHtSLt6IN5+jsLAi35Q3iQp9g==
-----END RSA PRIVATE KEY-----
</private_key>
<user_id>fake</user_id>
<name>keypair-b03122a0-102b-445b-a128-dba267c7cd2a</name>
<fingerprint>7f:97:1c:83:27:a3:6b:c5:a6:a2:37:90:4c:be:73:86</fingerprint>
</keypair>

View File

@ -0,0 +1,11 @@
{
"keypairs": [
{
"keypair": {
"fingerprint": "%(fingerprint)s",
"name": "%(keypair_name)s",
"public_key": "%(public_key)s"
}
}
]
}

View File

@ -0,0 +1,9 @@
<?xml version='1.0' encoding='UTF-8'?>
<keypairs>
<keypair>
<public_key>%(public_key)s
</public_key>
<name>%(keypair_name)s</name>
<fingerprint>%(fingerprint)s</fingerprint>
</keypair>
</keypairs>

View File

@ -0,0 +1,6 @@
{
"keypair": {
"name": "%(keypair_name)s",
"public_key": "%(public_key)s"
}
}

View File

@ -0,0 +1,4 @@
<keypair>
<name>%(keypair_name)s</name>
<public_key>%(public_key)s</public_key>
</keypair>

View File

@ -0,0 +1,8 @@
{
"keypair": {
"fingerprint": "%(fingerprint)s",
"name": "%(keypair_name)s",
"public_key": "%(public_key)s",
"user_id": "fake"
}
}

View File

@ -0,0 +1,7 @@
<?xml version='1.0' encoding='UTF-8'?>
<keypair>
<public_key>%(public_key)s</public_key>
<user_id>fake</user_id>
<name>%(keypair_name)s</name>
<fingerprint>%(fingerprint)s</fingerprint>
</keypair>

View File

@ -0,0 +1,5 @@
{
"keypair": {
"name": "%(keypair_name)s"
}
}

View File

@ -0,0 +1,3 @@
<keypair>
<name>%(keypair_name)s</name>
</keypair>

View File

@ -0,0 +1,9 @@
{
"keypair": {
"fingerprint": "%(fingerprint)s",
"name": "%(keypair_name)s",
"private_key": "%(private_key)s",
"public_key": "%(public_key)s",
"user_id": "fake"
}
}

View File

@ -0,0 +1,9 @@
<?xml version='1.0' encoding='UTF-8'?>
<keypair>
<public_key>%(public_key)s
</public_key>
<private_key>%(private_key)s</private_key>
<user_id>fake</user_id>
<name>%(keypair_name)s</name>
<fingerprint>%(fingerprint)s</fingerprint>
</keypair>

View File

@ -210,6 +210,16 @@ class ApiSampleTestBase(integrated_helpers._IntegratedTestBase):
'-[0-9a-f]{4}-[0-9a-f]{12})',
'uuid': '[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}'
'-[0-9a-f]{4}-[0-9a-f]{12}',
'private_key': '-----BEGIN RSA PRIVATE KEY-----'
'[a-zA-Z0-9\n/+=]*'
'-----END RSA PRIVATE KEY-----',
'public_key': 'ssh-rsa[ a-zA-Z0-9/+=]*'
'Generated by Nova',
'fingerprint': '([0-9a-f]{2}:){15}[0-9a-f]{2}',
# '[0-9a-f]{2}:[0-9a-f]{2}:[0-9a-f]{2}:[0-9a-f]{2}:'
# '[0-9a-f]{2}:[0-9a-f]{2}:[0-9a-f]{2}:[0-9a-f]{2}:'
# '[0-9a-f]{2}:[0-9a-f]{2}:[0-9a-f]{2}:[0-9a-f]{2}:'
# '[0-9a-f]{2}:[0-9a-f]{2}:[0-9a-f]{2}:[0-9a-f]{2}',
'host': self._get_host(),
'glance_host': self._get_glance_host(),
'compute_host': self.compute.host,
@ -859,3 +869,51 @@ class FloatingIpsJsonTest(ApiSampleTestBase):
class FloatingIpsXmlTest(FloatingIpsJsonTest):
ctype = 'xml'
class KeyPairsSampleJsonTest(ApiSampleTestBase):
extension_name = "nova.api.openstack.compute.contrib.keypairs.Keypairs"
def test_keypairs_post(self, public_key=None):
"""Get api sample of key pairs post request"""
key_name = 'keypair-' + str(uuid.uuid4())
response = self._do_post('os-keypairs', 'keypairs-post-req',
{'keypair_name': key_name})
subs = self._get_regexes()
subs['keypair_name'] = '(%s)' % key_name
self.assertEqual(response.status, 200)
self._verify_response('keypairs-post-resp', subs, response)
# NOTE(maurosr): return the key_name is necessary cause the
# verification returns the label of the last compared information in
# the response, not necessarily the key name.
return key_name
def test_keypairs_import_key_post(self):
"""Get api sample of key pairs post to import user's key"""
key_name = 'keypair-' + str(uuid.uuid4())
subs = {
'keypair_name': key_name,
'public_key': "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAgQDx8nkQv/zgGg"
"B4rMYmIf+6A4l6Rr+o/6lHBQdW5aYd44bd8JttDCE/F/pNRr0l"
"RE+PiqSPO8nDPHw0010JeMH9gYgnnFlyY3/OcJ02RhIPyyxYpv"
"9FhY+2YiUkpwFOcLImyrxEsYXpD/0d3ac30bNH6Sw9JD9UZHYc"
"pSxsIbECHw== Generated by Nova"
}
response = self._do_post('os-keypairs', 'keypairs-import-post-req',
subs)
subs = self._get_regexes()
subs['keypair_name'] = '(%s)' % key_name
self.assertEqual(response.status, 200)
self._verify_response('keypairs-import-post-resp', subs, response)
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')
subs = self._get_regexes()
subs['keypair_name'] = '(%s)' % key_name
return self._verify_response('keypairs-get-resp', subs, response)
class KeyPairsSampleXmlTest(KeyPairsSampleJsonTest):
ctype = 'xml'