net = self.quantum().create_network({'network': props})['network']
self.resource_id_set(net['id'])
+ def _show_resource(self):
+ return self.quantum().show_network(
+ self.resource_id)['network']
+
+ def check_create_complete(self, *args):
+ attributes = self._show_resource()
+ return self.is_built(attributes)
+
def handle_delete(self):
from quantumclient.common.exceptions import QuantumClientException
raise ex
def FnGetAtt(self, key):
- attributes = self.quantum().show_network(
- self.resource_id)['network']
+ attributes = self._show_resource()
return self.handle_get_attributes(self.name, key, attributes)
port = self.quantum().create_port({'port': props})['port']
self.resource_id_set(port['id'])
+ def _show_resource(self):
+ return self.quantum().show_port(
+ self.resource_id)['port']
+
+ def check_create_complete(self, *args):
+ attributes = self._show_resource()
+ return self.is_built(attributes)
+
def handle_delete(self):
from quantumclient.common.exceptions import QuantumClientException
raise ex
def FnGetAtt(self, key):
- attributes = self.quantum().show_port(
- self.resource_id)['port']
+ attributes = self._show_resource()
return self.handle_get_attributes(self.name, key, attributes)
def handle_update(self, json_snippet):
return self.UPDATE_REPLACE
+ @staticmethod
+ def is_built(attributes):
+ if attributes['status'] == 'BUILD':
+ return False
+ if attributes['status'] in ('ACTIVE', 'DOWN'):
+ return True
+ else:
+ raise exception.Error('%s resource[%s] status[%s]' %
+ ('quantum reported unexpected',
+ attributes['name'], attributes['status']))
+
def FnGetRefId(self):
return unicode(self.resource_id)
router = self.quantum().create_router({'router': props})['router']
self.resource_id_set(router['id'])
+ def _show_resource(self):
+ return self.quantum().show_router(
+ self.resource_id)['router']
+
+ def check_create_complete(self, *args):
+ attributes = self._show_resource()
+ return self.is_built(attributes)
+
def handle_delete(self):
client = self.quantum()
try:
raise ex
def FnGetAtt(self, key):
- attributes = self.quantum().show_router(
- self.resource_id)['router']
+ attributes = self._show_resource()
return self.handle_get_attributes(self.name, key, attributes)
'router:external': True,
'admin_state_up': False}, props)
+ def test_is_built(self):
+ self.assertTrue(qr.is_built({
+ 'name': 'the_net',
+ 'status': 'ACTIVE'
+ }))
+ self.assertTrue(qr.is_built({
+ 'name': 'the_net',
+ 'status': 'DOWN'
+ }))
+ self.assertFalse(qr.is_built({
+ 'name': 'the_net',
+ 'status': 'BUILD'
+ }))
+ self.assertRaises(exception.Error, qr.is_built, {
+ 'name': 'the_net',
+ 'status': 'FROBULATING'
+ })
+
@skipIf(quantumclient is None, 'quantumclient unavailable')
class QuantumNetTest(HeatTestCase):
"id": "fc68ea2c-b60b-4b4f-bd82-94ec81110766"
}})
+ quantumclient.Client.show_network(
+ 'fc68ea2c-b60b-4b4f-bd82-94ec81110766'
+ ).AndReturn({"network": {
+ "status": "BUILD",
+ "subnets": [],
+ "name": "name",
+ "admin_state_up": False,
+ "shared": False,
+ "tenant_id": "c1210485b2424d48804aad5d39c61b8f",
+ "id": "fc68ea2c-b60b-4b4f-bd82-94ec81110766"
+ }})
+
quantumclient.Client.show_network(
'fc68ea2c-b60b-4b4f-bd82-94ec81110766'
).MultipleTimes().AndReturn({"network": {
'name': u'test_stack.port_floating',
'admin_state_up': True}}
).AndReturn({'port': {
- "status": "ACTIVE",
+ "status": "BUILD",
+ "id": "fc68ea2c-b60b-4b4f-bd82-94ec81110766"
+ }})
+ quantumclient.Client.show_port(
+ 'fc68ea2c-b60b-4b4f-bd82-94ec81110766'
+ ).AndReturn({'port': {
+ "status": "BUILD",
"id": "fc68ea2c-b60b-4b4f-bd82-94ec81110766"
}})
quantumclient.Client.show_port(
],
'name': u'test_stack.port_floating',
'admin_state_up': True}}
+ ).AndReturn({'port': {
+ "status": "BUILD",
+ "id": "fc68ea2c-b60b-4b4f-bd82-94ec81110766"
+ }})
+ quantumclient.Client.show_port(
+ 'fc68ea2c-b60b-4b4f-bd82-94ec81110766'
).AndReturn({'port': {
"status": "ACTIVE",
"id": "fc68ea2c-b60b-4b4f-bd82-94ec81110766"
}})
-
quantumclient.Client.update_floatingip(
'fc68ea2c-b60b-4b4f-bd82-94ec81110766',
{