Import all the stacktester stuff as-is (s/stacktester/kong/, though).
diff --git a/kong/tests/test_server_addresses.py b/kong/tests/test_server_addresses.py
new file mode 100644
index 0000000..cc18974
--- /dev/null
+++ b/kong/tests/test_server_addresses.py
@@ -0,0 +1,63 @@
+
+import json
+import os
+
+import unittest2 as unittest
+
+from kong import openstack
+from kong import exceptions
+
+
+class ServerAddressesTest(unittest.TestCase):
+
+ @classmethod
+ def setUpClass(self):
+ self.os = openstack.Manager()
+ self.image_ref = self.os.config.env.image_ref
+ self.flavor_ref = self.os.config.env.flavor_ref
+
+ def setUp(self):
+ server = {
+ 'name' : 'testserver',
+ 'imageRef' : self.image_ref,
+ 'flavorRef' : self.flavor_ref,
+ }
+
+ created_server = self.os.nova.create_server(server)
+ self.server_id = created_server['id']
+ self.os.nova.wait_for_server_status(self.server_id, 'ACTIVE')
+
+ def tearDown(self):
+ self.os.nova.delete_server(self.server_id)
+
+ def test_server_addresses(self):
+ """Retrieve server addresses information"""
+ url = '/servers/%s' % self.server_id
+ response, body = self.os.nova.request('GET', url)
+ self.assertEqual(response.status, 200)
+ body = json.loads(body)
+ self.assertTrue('addresses' in body['server'].keys())
+ server_addresses = body['server']['addresses']
+
+ url = '/servers/%s/ips' % self.server_id
+ response, body = self.os.nova.request('GET', url)
+ self.assertEqual(response.status, 200)
+ body = json.loads(body)
+ self.assertEqual(body.keys(), ['addresses'])
+ ips_addresses = body['addresses']
+
+ self.assertEqual(server_addresses, ips_addresses)
+
+ # Now validate entities within addresses containers if available
+ for (network, network_data) in ips_addresses.items():
+ # Ensure we can query for each particular network
+ url = '/servers/%s/ips/%s' % (self.server_id, network)
+ response, body = self.os.nova.request('GET', url)
+ self.assertEqual(response.status, 200)
+ body = json.loads(body)
+ self.assertEqual(body.keys(), [network])
+ self.assertEqual(body[network], network_data)
+
+ for ip_data in network_data:
+ self.assertEqual(set(ip_data.keys()),
+ set(['addr', 'version']))