summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorIlya Alekseyev <ialekseev@griddynamics.com>2011-06-25 02:42:27 +0400
committerIlya Alekseyev <ialekseev@griddynamics.com>2011-06-25 02:42:27 +0400
commita770864d308242bfcfa8dadb210595785d8fa71f (patch)
tree9b4ffb8535a5a7faf0fbe4014481b829aa4f475a
parentff173245f0284f5f24cdfbe92704785a85dd1cb9 (diff)
downloadnova-a770864d308242bfcfa8dadb210595785d8fa71f.tar.gz
nova-a770864d308242bfcfa8dadb210595785d8fa71f.tar.xz
nova-a770864d308242bfcfa8dadb210595785d8fa71f.zip
tests
-rw-r--r--nova/api/openstack/contrib/floating_ips.py14
-rw-r--r--nova/tests/api/openstack/contrib/test_floating_ips.py29
2 files changed, 27 insertions, 16 deletions
diff --git a/nova/api/openstack/contrib/floating_ips.py b/nova/api/openstack/contrib/floating_ips.py
index c6bc85c61..95502a5c5 100644
--- a/nova/api/openstack/contrib/floating_ips.py
+++ b/nova/api/openstack/contrib/floating_ips.py
@@ -104,10 +104,10 @@ class FloatingIPController(object):
"id": ip['id'],
"floating_ip": ip['address']}}
- def associate(self, req, id_ip, body):
+ def associate(self, req, id, body):
""" /floating_ips/{id}/associate fixed ip in body """
context = req.environ['nova.context']
- floating_ip = self._get_ip_by_id(context, id_ip)
+ floating_ip = self._get_ip_by_id(context, id)
fixed_ip = body['associate_address']['fixed_ip']
@@ -117,13 +117,17 @@ class FloatingIPController(object):
except rpc.RemoteError:
raise
- return {'associated': [floating_ip, fixed_ip]}
+ return {'associated':
+ {
+ "floating_ip_id": id,
+ "floating_ip": floating_ip,
+ "fixed_ip": fixed_ip}}
- def disassociate(self, req, id_ip, body):
+ def disassociate(self, req, id, body):
""" POST /floating_ips/{id}/disassociate """
context = req.environ['nova.context']
- floating_ip = self._get_ip_by_id(context, id_ip)
+ floating_ip = self._get_ip_by_id(context, id)
try:
self.network_api.disassociate_floating_ip(context, floating_ip)
diff --git a/nova/tests/api/openstack/contrib/test_floating_ips.py b/nova/tests/api/openstack/contrib/test_floating_ips.py
index efdfdcf74..1f2012ec7 100644
--- a/nova/tests/api/openstack/contrib/test_floating_ips.py
+++ b/nova/tests/api/openstack/contrib/test_floating_ips.py
@@ -28,7 +28,7 @@ from nova.api.openstack.contrib.floating_ips import FloatingIPController
from nova.api.openstack.contrib.floating_ips import _translate_floating_ip_view
def network_api_get(self, context, id):
- return {'id': id, 'address': '10.10.10.10'}
+ return {'id': 1, 'address': '10.10.10.10'}
def network_api_list(self, context):
@@ -47,7 +47,7 @@ def network_api_allocate(self, context):
def network_api_release(self, context, address):
pass
-def network_api_associate():
+def network_api_associate(self, context,floating_ip, fixed_ip):
pass
@@ -97,12 +97,6 @@ class FloatingIpTest(test.TestCase):
self._delete_floating_ip()
super(FloatingIpTest, self).tearDown()
- def test_get_ip_by_id(self):
- ip = self.controller._get_ip_by_id(self.context, '10.10.10.10')
- self.assertEqual(ip, '10.10.10.10')
- ip = self.controller._get_ip_by_id(self.context, '1')
- self.assertEqual(ip, '10.10.10.10')
-
def test_translate_floating_ip_view(self):
floating_ip_address = self._create_floating_ip()
floating_ip = db.floating_ip_get_by_address(self.context,
@@ -154,15 +148,28 @@ class FloatingIpTest(test.TestCase):
req.method = 'DELETE'
res = req.get_response(fakes.wsgi_app())
self.assertEqual(res.status_int, 200)
- ip = json.loads(res.body)['released']
+ actual = json.loads(res.body)['released']
expected = {
"id": 1,
"floating_ip": '10.10.10.10'
}
- self.assertEqual(ip, expected)
+ self.assertEqual(actual, expected)
def test_floating_ip_associate(self):
- pass
+ body = dict(associate_address=dict(fixed_ip='1.2.3.4'))
+ req = webob.Request.blank('/v1.1/floating_ips/1/associate')
+ req.method = 'POST'
+ req.body = json.dumps(body)
+ req.headers["content-type"] = "application/json"
+
+ res = req.get_response(fakes.wsgi_app())
+ self.assertEqual(res.status_int, 200)
+ actual = json.loads(res.body)['associated']
+ expected = {
+ "floating_ip_id": '1',
+ "floating_ip": "10.10.10.10",
+ "fixed_ip": "1.2.3.4"}
+ self.assertEqual(actual, expected)
def test_floating_ip_disassociate(self):
pass \ No newline at end of file