summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--doc/api_samples/os-keypairs/keypairs-get-resp.json11
-rw-r--r--doc/api_samples/os-keypairs/keypairs-get-resp.xml9
-rw-r--r--doc/api_samples/os-keypairs/keypairs-import-post-req.json6
-rw-r--r--doc/api_samples/os-keypairs/keypairs-import-post-req.xml4
-rw-r--r--doc/api_samples/os-keypairs/keypairs-import-post-resp.json8
-rw-r--r--doc/api_samples/os-keypairs/keypairs-import-post-resp.xml7
-rw-r--r--doc/api_samples/os-keypairs/keypairs-post-req.json5
-rw-r--r--doc/api_samples/os-keypairs/keypairs-post-req.xml3
-rw-r--r--doc/api_samples/os-keypairs/keypairs-post-resp.json9
-rw-r--r--doc/api_samples/os-keypairs/keypairs-post-resp.xml24
-rw-r--r--nova/tests/integrated/api_samples/os-keypairs/keypairs-get-resp.json.tpl11
-rw-r--r--nova/tests/integrated/api_samples/os-keypairs/keypairs-get-resp.xml.tpl9
-rw-r--r--nova/tests/integrated/api_samples/os-keypairs/keypairs-import-post-req.json.tpl6
-rw-r--r--nova/tests/integrated/api_samples/os-keypairs/keypairs-import-post-req.xml.tpl4
-rw-r--r--nova/tests/integrated/api_samples/os-keypairs/keypairs-import-post-resp.json.tpl8
-rw-r--r--nova/tests/integrated/api_samples/os-keypairs/keypairs-import-post-resp.xml.tpl7
-rw-r--r--nova/tests/integrated/api_samples/os-keypairs/keypairs-post-req.json.tpl5
-rw-r--r--nova/tests/integrated/api_samples/os-keypairs/keypairs-post-req.xml.tpl3
-rw-r--r--nova/tests/integrated/api_samples/os-keypairs/keypairs-post-resp.json.tpl9
-rw-r--r--nova/tests/integrated/api_samples/os-keypairs/keypairs-post-resp.xml.tpl9
-rw-r--r--nova/tests/integrated/test_api_samples.py58
21 files changed, 215 insertions, 0 deletions
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 000000000..85e8ea894
--- /dev/null
+++ b/doc/api_samples/os-keypairs/keypairs-get-resp.json
@@ -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"
+ }
+ }
+ ]
+} \ 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 000000000..a38e3c525
--- /dev/null
+++ b/doc/api_samples/os-keypairs/keypairs-get-resp.xml
@@ -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> \ No newline at end of file
diff --git a/doc/api_samples/os-keypairs/keypairs-import-post-req.json b/doc/api_samples/os-keypairs/keypairs-import-post-req.json
new file mode 100644
index 000000000..660efe6fd
--- /dev/null
+++ b/doc/api_samples/os-keypairs/keypairs-import-post-req.json
@@ -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"
+ }
+} \ No newline at end of file
diff --git a/doc/api_samples/os-keypairs/keypairs-import-post-req.xml b/doc/api_samples/os-keypairs/keypairs-import-post-req.xml
new file mode 100644
index 000000000..98a038c30
--- /dev/null
+++ b/doc/api_samples/os-keypairs/keypairs-import-post-req.xml
@@ -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> \ No newline at end of file
diff --git a/doc/api_samples/os-keypairs/keypairs-import-post-resp.json b/doc/api_samples/os-keypairs/keypairs-import-post-resp.json
new file mode 100644
index 000000000..56d0ca00e
--- /dev/null
+++ b/doc/api_samples/os-keypairs/keypairs-import-post-resp.json
@@ -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"
+ }
+} \ No newline at end of file
diff --git a/doc/api_samples/os-keypairs/keypairs-import-post-resp.xml b/doc/api_samples/os-keypairs/keypairs-import-post-resp.xml
new file mode 100644
index 000000000..be96abc70
--- /dev/null
+++ b/doc/api_samples/os-keypairs/keypairs-import-post-resp.xml
@@ -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> \ No newline at end of file
diff --git a/doc/api_samples/os-keypairs/keypairs-post-req.json b/doc/api_samples/os-keypairs/keypairs-post-req.json
new file mode 100644
index 000000000..3ef7dd1f3
--- /dev/null
+++ b/doc/api_samples/os-keypairs/keypairs-post-req.json
@@ -0,0 +1,5 @@
+{
+ "keypair": {
+ "name": "keypair-7d7c3650-dabe-4eb0-b904-5c464453c043"
+ }
+} \ No newline at end of file
diff --git a/doc/api_samples/os-keypairs/keypairs-post-req.xml b/doc/api_samples/os-keypairs/keypairs-post-req.xml
new file mode 100644
index 000000000..4dc4ce483
--- /dev/null
+++ b/doc/api_samples/os-keypairs/keypairs-post-req.xml
@@ -0,0 +1,3 @@
+<keypair>
+ <name>keypair-b03122a0-102b-445b-a128-dba267c7cd2a</name>
+</keypair> \ No newline at end of file
diff --git a/doc/api_samples/os-keypairs/keypairs-post-resp.json b/doc/api_samples/os-keypairs/keypairs-post-resp.json
new file mode 100644
index 000000000..cba62170b
--- /dev/null
+++ b/doc/api_samples/os-keypairs/keypairs-post-resp.json
@@ -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"
+ }
+} \ No newline at end of file
diff --git a/doc/api_samples/os-keypairs/keypairs-post-resp.xml b/doc/api_samples/os-keypairs/keypairs-post-resp.xml
new file mode 100644
index 000000000..388ce95bd
--- /dev/null
+++ b/doc/api_samples/os-keypairs/keypairs-post-resp.xml
@@ -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> \ 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 000000000..29ba63c00
--- /dev/null
+++ b/nova/tests/integrated/api_samples/os-keypairs/keypairs-get-resp.json.tpl
@@ -0,0 +1,11 @@
+{
+ "keypairs": [
+ {
+ "keypair": {
+ "fingerprint": "%(fingerprint)s",
+ "name": "%(keypair_name)s",
+ "public_key": "%(public_key)s"
+ }
+ }
+ ]
+}
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 000000000..493bfa316
--- /dev/null
+++ b/nova/tests/integrated/api_samples/os-keypairs/keypairs-get-resp.xml.tpl
@@ -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>
diff --git a/nova/tests/integrated/api_samples/os-keypairs/keypairs-import-post-req.json.tpl b/nova/tests/integrated/api_samples/os-keypairs/keypairs-import-post-req.json.tpl
new file mode 100644
index 000000000..2301fa05b
--- /dev/null
+++ b/nova/tests/integrated/api_samples/os-keypairs/keypairs-import-post-req.json.tpl
@@ -0,0 +1,6 @@
+{
+ "keypair": {
+ "name": "%(keypair_name)s",
+ "public_key": "%(public_key)s"
+ }
+}
diff --git a/nova/tests/integrated/api_samples/os-keypairs/keypairs-import-post-req.xml.tpl b/nova/tests/integrated/api_samples/os-keypairs/keypairs-import-post-req.xml.tpl
new file mode 100644
index 000000000..0516de303
--- /dev/null
+++ b/nova/tests/integrated/api_samples/os-keypairs/keypairs-import-post-req.xml.tpl
@@ -0,0 +1,4 @@
+<keypair>
+ <name>%(keypair_name)s</name>
+ <public_key>%(public_key)s</public_key>
+</keypair>
diff --git a/nova/tests/integrated/api_samples/os-keypairs/keypairs-import-post-resp.json.tpl b/nova/tests/integrated/api_samples/os-keypairs/keypairs-import-post-resp.json.tpl
new file mode 100644
index 000000000..ca7192d5d
--- /dev/null
+++ b/nova/tests/integrated/api_samples/os-keypairs/keypairs-import-post-resp.json.tpl
@@ -0,0 +1,8 @@
+{
+ "keypair": {
+ "fingerprint": "%(fingerprint)s",
+ "name": "%(keypair_name)s",
+ "public_key": "%(public_key)s",
+ "user_id": "fake"
+ }
+}
diff --git a/nova/tests/integrated/api_samples/os-keypairs/keypairs-import-post-resp.xml.tpl b/nova/tests/integrated/api_samples/os-keypairs/keypairs-import-post-resp.xml.tpl
new file mode 100644
index 000000000..ed2543c10
--- /dev/null
+++ b/nova/tests/integrated/api_samples/os-keypairs/keypairs-import-post-resp.xml.tpl
@@ -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>
diff --git a/nova/tests/integrated/api_samples/os-keypairs/keypairs-post-req.json.tpl b/nova/tests/integrated/api_samples/os-keypairs/keypairs-post-req.json.tpl
new file mode 100644
index 000000000..68e2f0348
--- /dev/null
+++ b/nova/tests/integrated/api_samples/os-keypairs/keypairs-post-req.json.tpl
@@ -0,0 +1,5 @@
+{
+ "keypair": {
+ "name": "%(keypair_name)s"
+ }
+}
diff --git a/nova/tests/integrated/api_samples/os-keypairs/keypairs-post-req.xml.tpl b/nova/tests/integrated/api_samples/os-keypairs/keypairs-post-req.xml.tpl
new file mode 100644
index 000000000..e14935d31
--- /dev/null
+++ b/nova/tests/integrated/api_samples/os-keypairs/keypairs-post-req.xml.tpl
@@ -0,0 +1,3 @@
+<keypair>
+ <name>%(keypair_name)s</name>
+</keypair>
diff --git a/nova/tests/integrated/api_samples/os-keypairs/keypairs-post-resp.json.tpl b/nova/tests/integrated/api_samples/os-keypairs/keypairs-post-resp.json.tpl
new file mode 100644
index 000000000..aace6f5cc
--- /dev/null
+++ b/nova/tests/integrated/api_samples/os-keypairs/keypairs-post-resp.json.tpl
@@ -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"
+ }
+}
diff --git a/nova/tests/integrated/api_samples/os-keypairs/keypairs-post-resp.xml.tpl b/nova/tests/integrated/api_samples/os-keypairs/keypairs-post-resp.xml.tpl
new file mode 100644
index 000000000..4f041e0c9
--- /dev/null
+++ b/nova/tests/integrated/api_samples/os-keypairs/keypairs-post-resp.xml.tpl
@@ -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>
diff --git a/nova/tests/integrated/test_api_samples.py b/nova/tests/integrated/test_api_samples.py
index 487048c92..a1304c55a 100644
--- a/nova/tests/integrated/test_api_samples.py
+++ b/nova/tests/integrated/test_api_samples.py
@@ -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'