summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSean Dague <sdague@linux.vnet.ibm.com>2012-09-17 16:23:46 -0400
committerVishvananda Ishaya <vishvananda@gmail.com>2012-09-18 15:15:13 -0700
commit1861cb557ecf65669a3076f59741f27a418cf893 (patch)
tree36c2907286daba37cf57340ca6f0c258436ce37e
parent516d510a6c2add4bf2a65b43b72b5aa006dcf52a (diff)
downloadnova-1861cb557ecf65669a3076f59741f27a418cf893.tar.gz
nova-1861cb557ecf65669a3076f59741f27a418cf893.tar.xz
nova-1861cb557ecf65669a3076f59741f27a418cf893.zip
sample api testing for os-floating-ips extension
API testing for negative error codes now removed so this is only sample api testing Change-Id: I144a6b69498b86be56ceecb680c5be2a51acdbb8
-rw-r--r--doc/api_samples/os-floating-ips/floating-ips-create-nopool-req.json0
-rw-r--r--doc/api_samples/os-floating-ips/floating-ips-create-nopool-req.xml0
-rw-r--r--doc/api_samples/os-floating-ips/floating-ips-create-req.json3
-rw-r--r--doc/api_samples/os-floating-ips/floating-ips-create-req.xml2
-rw-r--r--doc/api_samples/os-floating-ips/floating-ips-create-resp.json9
-rw-r--r--doc/api_samples/os-floating-ips/floating-ips-create-resp.xml2
-rw-r--r--doc/api_samples/os-floating-ips/floating-ips-list-empty-resp.json3
-rw-r--r--doc/api_samples/os-floating-ips/floating-ips-list-empty-resp.xml2
-rw-r--r--doc/api_samples/os-floating-ips/floating-ips-list-resp.json18
-rw-r--r--doc/api_samples/os-floating-ips/floating-ips-list-resp.xml5
-rw-r--r--nova/tests/integrated/api_samples/os-floating-ips/floating-ips-create-nopool-req.json.tpl0
-rw-r--r--nova/tests/integrated/api_samples/os-floating-ips/floating-ips-create-nopool-req.xml.tpl0
-rw-r--r--nova/tests/integrated/api_samples/os-floating-ips/floating-ips-create-req.json.tpl3
-rw-r--r--nova/tests/integrated/api_samples/os-floating-ips/floating-ips-create-req.xml.tpl2
-rw-r--r--nova/tests/integrated/api_samples/os-floating-ips/floating-ips-create-resp.json.tpl9
-rw-r--r--nova/tests/integrated/api_samples/os-floating-ips/floating-ips-create-resp.xml.tpl2
-rw-r--r--nova/tests/integrated/api_samples/os-floating-ips/floating-ips-get-resp.json.tpl9
-rw-r--r--nova/tests/integrated/api_samples/os-floating-ips/floating-ips-get-resp.xml.tpl2
-rw-r--r--nova/tests/integrated/api_samples/os-floating-ips/floating-ips-list-empty-resp.json.tpl3
-rw-r--r--nova/tests/integrated/api_samples/os-floating-ips/floating-ips-list-empty-resp.xml.tpl2
-rw-r--r--nova/tests/integrated/api_samples/os-floating-ips/floating-ips-list-resp.json.tpl19
-rw-r--r--nova/tests/integrated/api_samples/os-floating-ips/floating-ips-list-resp.xml.tpl5
-rw-r--r--nova/tests/integrated/test_api_samples.py95
23 files changed, 195 insertions, 0 deletions
diff --git a/doc/api_samples/os-floating-ips/floating-ips-create-nopool-req.json b/doc/api_samples/os-floating-ips/floating-ips-create-nopool-req.json
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/doc/api_samples/os-floating-ips/floating-ips-create-nopool-req.json
diff --git a/doc/api_samples/os-floating-ips/floating-ips-create-nopool-req.xml b/doc/api_samples/os-floating-ips/floating-ips-create-nopool-req.xml
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/doc/api_samples/os-floating-ips/floating-ips-create-nopool-req.xml
diff --git a/doc/api_samples/os-floating-ips/floating-ips-create-req.json b/doc/api_samples/os-floating-ips/floating-ips-create-req.json
new file mode 100644
index 000000000..511b009be
--- /dev/null
+++ b/doc/api_samples/os-floating-ips/floating-ips-create-req.json
@@ -0,0 +1,3 @@
+{
+ "pool": "nova"
+} \ No newline at end of file
diff --git a/doc/api_samples/os-floating-ips/floating-ips-create-req.xml b/doc/api_samples/os-floating-ips/floating-ips-create-req.xml
new file mode 100644
index 000000000..f77525e74
--- /dev/null
+++ b/doc/api_samples/os-floating-ips/floating-ips-create-req.xml
@@ -0,0 +1,2 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<pool>nova</pool> \ No newline at end of file
diff --git a/doc/api_samples/os-floating-ips/floating-ips-create-resp.json b/doc/api_samples/os-floating-ips/floating-ips-create-resp.json
new file mode 100644
index 000000000..fe161a7dd
--- /dev/null
+++ b/doc/api_samples/os-floating-ips/floating-ips-create-resp.json
@@ -0,0 +1,9 @@
+{
+ "floating_ip": {
+ "fixed_ip": null,
+ "id": 1,
+ "instance_id": null,
+ "ip": "10.10.10.1",
+ "pool": "nova"
+ }
+} \ No newline at end of file
diff --git a/doc/api_samples/os-floating-ips/floating-ips-create-resp.xml b/doc/api_samples/os-floating-ips/floating-ips-create-resp.xml
new file mode 100644
index 000000000..e0f68ef50
--- /dev/null
+++ b/doc/api_samples/os-floating-ips/floating-ips-create-resp.xml
@@ -0,0 +1,2 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<floating_ip instance_id="None" ip="10.10.10.1" fixed_ip="None" id="1" pool="nova"/> \ No newline at end of file
diff --git a/doc/api_samples/os-floating-ips/floating-ips-list-empty-resp.json b/doc/api_samples/os-floating-ips/floating-ips-list-empty-resp.json
new file mode 100644
index 000000000..121dbd084
--- /dev/null
+++ b/doc/api_samples/os-floating-ips/floating-ips-list-empty-resp.json
@@ -0,0 +1,3 @@
+{
+ "floating_ips": []
+} \ No newline at end of file
diff --git a/doc/api_samples/os-floating-ips/floating-ips-list-empty-resp.xml b/doc/api_samples/os-floating-ips/floating-ips-list-empty-resp.xml
new file mode 100644
index 000000000..da6f0d4ce
--- /dev/null
+++ b/doc/api_samples/os-floating-ips/floating-ips-list-empty-resp.xml
@@ -0,0 +1,2 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<floating_ips/> \ No newline at end of file
diff --git a/doc/api_samples/os-floating-ips/floating-ips-list-resp.json b/doc/api_samples/os-floating-ips/floating-ips-list-resp.json
new file mode 100644
index 000000000..4d58e0676
--- /dev/null
+++ b/doc/api_samples/os-floating-ips/floating-ips-list-resp.json
@@ -0,0 +1,18 @@
+{
+ "floating_ips": [
+ {
+ "fixed_ip": null,
+ "id": 1,
+ "instance_id": null,
+ "ip": "10.10.10.1",
+ "pool": "nova"
+ },
+ {
+ "fixed_ip": null,
+ "id": 2,
+ "instance_id": null,
+ "ip": "10.10.10.2",
+ "pool": "nova"
+ }
+ ]
+} \ No newline at end of file
diff --git a/doc/api_samples/os-floating-ips/floating-ips-list-resp.xml b/doc/api_samples/os-floating-ips/floating-ips-list-resp.xml
new file mode 100644
index 000000000..78348be55
--- /dev/null
+++ b/doc/api_samples/os-floating-ips/floating-ips-list-resp.xml
@@ -0,0 +1,5 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<floating_ips>
+ <floating_ip instance_id="None" ip="10.10.10.1" fixed_ip="None" id="1" pool="nova"/>
+ <floating_ip instance_id="None" ip="10.10.10.2" fixed_ip="None" id="2" pool="nova"/>
+</floating_ips> \ No newline at end of file
diff --git a/nova/tests/integrated/api_samples/os-floating-ips/floating-ips-create-nopool-req.json.tpl b/nova/tests/integrated/api_samples/os-floating-ips/floating-ips-create-nopool-req.json.tpl
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/nova/tests/integrated/api_samples/os-floating-ips/floating-ips-create-nopool-req.json.tpl
diff --git a/nova/tests/integrated/api_samples/os-floating-ips/floating-ips-create-nopool-req.xml.tpl b/nova/tests/integrated/api_samples/os-floating-ips/floating-ips-create-nopool-req.xml.tpl
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/nova/tests/integrated/api_samples/os-floating-ips/floating-ips-create-nopool-req.xml.tpl
diff --git a/nova/tests/integrated/api_samples/os-floating-ips/floating-ips-create-req.json.tpl b/nova/tests/integrated/api_samples/os-floating-ips/floating-ips-create-req.json.tpl
new file mode 100644
index 000000000..24129f495
--- /dev/null
+++ b/nova/tests/integrated/api_samples/os-floating-ips/floating-ips-create-req.json.tpl
@@ -0,0 +1,3 @@
+{
+ "pool": "%(pool)s"
+} \ No newline at end of file
diff --git a/nova/tests/integrated/api_samples/os-floating-ips/floating-ips-create-req.xml.tpl b/nova/tests/integrated/api_samples/os-floating-ips/floating-ips-create-req.xml.tpl
new file mode 100644
index 000000000..a80147389
--- /dev/null
+++ b/nova/tests/integrated/api_samples/os-floating-ips/floating-ips-create-req.xml.tpl
@@ -0,0 +1,2 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<pool>%(pool)s</pool> \ No newline at end of file
diff --git a/nova/tests/integrated/api_samples/os-floating-ips/floating-ips-create-resp.json.tpl b/nova/tests/integrated/api_samples/os-floating-ips/floating-ips-create-resp.json.tpl
new file mode 100644
index 000000000..10ee8d9bd
--- /dev/null
+++ b/nova/tests/integrated/api_samples/os-floating-ips/floating-ips-create-resp.json.tpl
@@ -0,0 +1,9 @@
+{
+ "floating_ip": {
+ "fixed_ip": null,
+ "id": 1,
+ "instance_id": null,
+ "ip": "10.10.10.1",
+ "pool": "nova"
+ }
+}
diff --git a/nova/tests/integrated/api_samples/os-floating-ips/floating-ips-create-resp.xml.tpl b/nova/tests/integrated/api_samples/os-floating-ips/floating-ips-create-resp.xml.tpl
new file mode 100644
index 000000000..e0f68ef50
--- /dev/null
+++ b/nova/tests/integrated/api_samples/os-floating-ips/floating-ips-create-resp.xml.tpl
@@ -0,0 +1,2 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<floating_ip instance_id="None" ip="10.10.10.1" fixed_ip="None" id="1" pool="nova"/> \ No newline at end of file
diff --git a/nova/tests/integrated/api_samples/os-floating-ips/floating-ips-get-resp.json.tpl b/nova/tests/integrated/api_samples/os-floating-ips/floating-ips-get-resp.json.tpl
new file mode 100644
index 000000000..10ee8d9bd
--- /dev/null
+++ b/nova/tests/integrated/api_samples/os-floating-ips/floating-ips-get-resp.json.tpl
@@ -0,0 +1,9 @@
+{
+ "floating_ip": {
+ "fixed_ip": null,
+ "id": 1,
+ "instance_id": null,
+ "ip": "10.10.10.1",
+ "pool": "nova"
+ }
+}
diff --git a/nova/tests/integrated/api_samples/os-floating-ips/floating-ips-get-resp.xml.tpl b/nova/tests/integrated/api_samples/os-floating-ips/floating-ips-get-resp.xml.tpl
new file mode 100644
index 000000000..e0f68ef50
--- /dev/null
+++ b/nova/tests/integrated/api_samples/os-floating-ips/floating-ips-get-resp.xml.tpl
@@ -0,0 +1,2 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<floating_ip instance_id="None" ip="10.10.10.1" fixed_ip="None" id="1" pool="nova"/> \ No newline at end of file
diff --git a/nova/tests/integrated/api_samples/os-floating-ips/floating-ips-list-empty-resp.json.tpl b/nova/tests/integrated/api_samples/os-floating-ips/floating-ips-list-empty-resp.json.tpl
new file mode 100644
index 000000000..12f118da5
--- /dev/null
+++ b/nova/tests/integrated/api_samples/os-floating-ips/floating-ips-list-empty-resp.json.tpl
@@ -0,0 +1,3 @@
+{
+ "floating_ips": []
+}
diff --git a/nova/tests/integrated/api_samples/os-floating-ips/floating-ips-list-empty-resp.xml.tpl b/nova/tests/integrated/api_samples/os-floating-ips/floating-ips-list-empty-resp.xml.tpl
new file mode 100644
index 000000000..da6f0d4ce
--- /dev/null
+++ b/nova/tests/integrated/api_samples/os-floating-ips/floating-ips-list-empty-resp.xml.tpl
@@ -0,0 +1,2 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<floating_ips/> \ No newline at end of file
diff --git a/nova/tests/integrated/api_samples/os-floating-ips/floating-ips-list-resp.json.tpl b/nova/tests/integrated/api_samples/os-floating-ips/floating-ips-list-resp.json.tpl
new file mode 100644
index 000000000..06f57451c
--- /dev/null
+++ b/nova/tests/integrated/api_samples/os-floating-ips/floating-ips-list-resp.json.tpl
@@ -0,0 +1,19 @@
+{
+ "floating_ips": [
+ {
+ "fixed_ip": null,
+ "id": 1,
+ "instance_id": null,
+ "ip": "10.10.10.1",
+ "pool": "nova"
+ },
+ {
+ "fixed_ip": null,
+ "id": 2,
+ "instance_id": null,
+ "ip": "10.10.10.2",
+ "pool": "nova"
+ }
+ ]
+}
+
diff --git a/nova/tests/integrated/api_samples/os-floating-ips/floating-ips-list-resp.xml.tpl b/nova/tests/integrated/api_samples/os-floating-ips/floating-ips-list-resp.xml.tpl
new file mode 100644
index 000000000..bbd0b117e
--- /dev/null
+++ b/nova/tests/integrated/api_samples/os-floating-ips/floating-ips-list-resp.xml.tpl
@@ -0,0 +1,5 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<floating_ips>
+ <floating_ip instance_id="None" ip="10.10.10.1" fixed_ip="None" id="1" pool="nova"/>
+ <floating_ip instance_id="None" ip="10.10.10.2" fixed_ip="None" id="2" pool="nova"/>
+</floating_ips>
diff --git a/nova/tests/integrated/test_api_samples.py b/nova/tests/integrated/test_api_samples.py
index 2ec8a912d..455debdc3 100644
--- a/nova/tests/integrated/test_api_samples.py
+++ b/nova/tests/integrated/test_api_samples.py
@@ -19,6 +19,7 @@ import uuid
from lxml import etree
+from nova import context
from nova import flags
from nova.openstack.common import importutils
from nova.openstack.common import jsonutils
@@ -741,3 +742,97 @@ class ExtendedServerAttributesJsonTest(ServersSampleBase):
class ExtendedServerAttributesXmlTest(ExtendedServerAttributesJsonTest):
ctype = 'xml'
+
+
+class FloatingIpsJsonTest(ApiSampleTestBase):
+ extension_name = "nova.api.openstack.compute.contrib." \
+ "floating_ips.Floating_ips"
+
+ def setUp(self):
+ super(FloatingIpsJsonTest, self).setUp()
+ pool = FLAGS.default_floating_pool
+ interface = FLAGS.public_interface
+
+ self.ip_pool = [
+ {
+ 'address': "10.10.10.1",
+ 'pool': pool,
+ 'interface': interface
+ },
+ {
+ 'address': "10.10.10.2",
+ 'pool': pool,
+ 'interface': interface
+ },
+ {
+ 'address': "10.10.10.3",
+ 'pool': pool,
+ 'interface': interface
+ },
+ ]
+ self.compute.db.floating_ip_bulk_create(
+ context.get_admin_context(), self.ip_pool)
+
+ def tearDown(self):
+ self.compute.db.floating_ip_bulk_destroy(
+ context.get_admin_context(), self.ip_pool)
+ super(FloatingIpsJsonTest, self).tearDown()
+
+ def test_floating_ips_list_empty(self):
+ response = self._do_get('os-floating-ips')
+
+ self.assertEqual(response.status, 200)
+ subs = self._get_regexes()
+ return self._verify_response('floating-ips-list-empty-resp',
+ subs, response)
+
+ def test_floating_ips_list(self):
+ self._do_post('os-floating-ips',
+ 'floating-ips-create-nopool-req',
+ {})
+ self._do_post('os-floating-ips',
+ 'floating-ips-create-nopool-req',
+ {})
+
+ response = self._do_get('os-floating-ips')
+ self.assertEqual(response.status, 200)
+ subs = self._get_regexes()
+ return self._verify_response('floating-ips-list-resp',
+ subs, response)
+
+ def test_floating_ips_create_nopool(self):
+ response = self._do_post('os-floating-ips',
+ 'floating-ips-create-nopool-req',
+ {})
+ self.assertEqual(response.status, 200)
+ subs = self._get_regexes()
+ self._verify_response('floating-ips-create-resp',
+ subs, response)
+
+ def test_floating_ips_create(self):
+ response = self._do_post('os-floating-ips',
+ 'floating-ips-create-req',
+ {"pool": FLAGS.default_floating_pool})
+ self.assertEqual(response.status, 200)
+ subs = self._get_regexes()
+ self._verify_response('floating-ips-create-resp',
+ subs, response)
+
+ def test_floating_ips_get(self):
+ self.test_floating_ips_create()
+ # NOTE(sdague): the first floating ip will always have 1 as an id,
+ # but it would be better if we could get this from the create
+ response = self._do_get('os-floating-ips/%d' % 1)
+ self.assertEqual(response.status, 200)
+ subs = self._get_regexes()
+ self._verify_response('floating-ips-create-resp',
+ subs, response)
+
+ def test_floating_ips_delete(self):
+ self.test_floating_ips_create()
+ response = self._do_delete('os-floating-ips/%d' % 1)
+ self.assertEqual(response.status, 202)
+
+
+class FloatingIpsXmlTest(FloatingIpsJsonTest):
+ ctype = 'xml'