Neutron use ClientPlugin.ignore_not_found etc
Change-Id: Ie1e75ac1537a8c0d800e4e381eac9f866576bb9d
This commit is contained in:
parent
98003258a8
commit
93c8dc9b54
@ -16,8 +16,6 @@ from heat.common import exception
|
|||||||
from heat.engine import properties
|
from heat.engine import properties
|
||||||
from heat.engine.resources.neutron import neutron
|
from heat.engine.resources.neutron import neutron
|
||||||
|
|
||||||
from neutronclient.common.exceptions import NeutronClientException
|
|
||||||
|
|
||||||
|
|
||||||
class ExtraRoute(neutron.NeutronResource):
|
class ExtraRoute(neutron.NeutronResource):
|
||||||
|
|
||||||
@ -90,8 +88,8 @@ class ExtraRoute(neutron.NeutronResource):
|
|||||||
return
|
return
|
||||||
self.neutron().update_router(router_id, {'router':
|
self.neutron().update_router(router_id, {'router':
|
||||||
{'routes': routes}})
|
{'routes': routes}})
|
||||||
except NeutronClientException as ex:
|
except Exception as ex:
|
||||||
self._handle_not_found_exception(ex)
|
self.client_plugin().ignore_not_found(ex)
|
||||||
|
|
||||||
|
|
||||||
def resource_mapping():
|
def resource_mapping():
|
||||||
|
@ -21,8 +21,6 @@ from heat.openstack.common import excutils
|
|||||||
from heat.openstack.common.gettextutils import _
|
from heat.openstack.common.gettextutils import _
|
||||||
from heat.openstack.common import log as logging
|
from heat.openstack.common import log as logging
|
||||||
|
|
||||||
from neutronclient.common.exceptions import NeutronClientException
|
|
||||||
|
|
||||||
LOG = logging.getLogger(__name__)
|
LOG = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
|
||||||
@ -71,9 +69,9 @@ class ElasticIp(resource.Resource):
|
|||||||
if self.properties[self.DOMAIN]:
|
if self.properties[self.DOMAIN]:
|
||||||
try:
|
try:
|
||||||
ips = self.neutron().show_floatingip(self.resource_id)
|
ips = self.neutron().show_floatingip(self.resource_id)
|
||||||
except NeutronClientException as e:
|
except Exception as ex:
|
||||||
if e.status_code == 404:
|
self.client_plugin('neutron').ignore_not_found(ex)
|
||||||
LOG.warn(_("Floating IPs not found: %s") % e)
|
LOG.warn(_("Floating IPs not found"))
|
||||||
else:
|
else:
|
||||||
self.ipaddress = ips['floatingip']['floating_ip_address']
|
self.ipaddress = ips['floatingip']['floating_ip_address']
|
||||||
else:
|
else:
|
||||||
@ -134,9 +132,8 @@ class ElasticIp(resource.Resource):
|
|||||||
if self.properties[self.DOMAIN]:
|
if self.properties[self.DOMAIN]:
|
||||||
try:
|
try:
|
||||||
self.neutron().delete_floatingip(self.resource_id)
|
self.neutron().delete_floatingip(self.resource_id)
|
||||||
except NeutronClientException as e:
|
except Exception as ex:
|
||||||
if e.status_code != 404:
|
self.client_plugin('neutron').ignore_not_found(ex)
|
||||||
raise e
|
|
||||||
else:
|
else:
|
||||||
try:
|
try:
|
||||||
self.nova().floating_ips.delete(self.resource_id)
|
self.nova().floating_ips.delete(self.resource_id)
|
||||||
@ -249,9 +246,8 @@ class ElasticIpAssociation(resource.Resource):
|
|||||||
try:
|
try:
|
||||||
self.neutron().update_floatingip(
|
self.neutron().update_floatingip(
|
||||||
float_id, {'floatingip': {'port_id': None}})
|
float_id, {'floatingip': {'port_id': None}})
|
||||||
except NeutronClientException as e:
|
except Exception as ex:
|
||||||
if e.status_code != 404:
|
self.client_plugin('neutron').ignore_not_found(ex)
|
||||||
raise e
|
|
||||||
|
|
||||||
|
|
||||||
def resource_mapping():
|
def resource_mapping():
|
||||||
|
@ -97,6 +97,8 @@ class VPCGatewayAttachment(resource.Resource):
|
|||||||
),
|
),
|
||||||
}
|
}
|
||||||
|
|
||||||
|
default_client_name = 'neutron'
|
||||||
|
|
||||||
def _vpc_route_tables(self):
|
def _vpc_route_tables(self):
|
||||||
for resource in self.stack.itervalues():
|
for resource in self.stack.itervalues():
|
||||||
if (resource.has_interface('AWS::EC2::RouteTable') and
|
if (resource.has_interface('AWS::EC2::RouteTable') and
|
||||||
@ -121,15 +123,12 @@ class VPCGatewayAttachment(resource.Resource):
|
|||||||
'network_id': external_network_id})
|
'network_id': external_network_id})
|
||||||
|
|
||||||
def handle_delete(self):
|
def handle_delete(self):
|
||||||
from neutronclient.common.exceptions import NeutronClientException
|
|
||||||
|
|
||||||
client = self.neutron()
|
client = self.neutron()
|
||||||
for router in self._vpc_route_tables():
|
for router in self._vpc_route_tables():
|
||||||
try:
|
try:
|
||||||
client.remove_gateway_router(router.resource_id)
|
client.remove_gateway_router(router.resource_id)
|
||||||
except NeutronClientException as ex:
|
except Exception as ex:
|
||||||
if ex.status_code != 404:
|
self.client_plugin().ignore_not_found(ex)
|
||||||
raise ex
|
|
||||||
|
|
||||||
|
|
||||||
def resource_mapping():
|
def resource_mapping():
|
||||||
|
@ -11,8 +11,6 @@
|
|||||||
# License for the specific language governing permissions and limitations
|
# License for the specific language governing permissions and limitations
|
||||||
# under the License.
|
# under the License.
|
||||||
|
|
||||||
from neutronclient.common.exceptions import NeutronClientException
|
|
||||||
|
|
||||||
from heat.engine import attributes
|
from heat.engine import attributes
|
||||||
from heat.engine import properties
|
from heat.engine import properties
|
||||||
from heat.engine import resource
|
from heat.engine import resource
|
||||||
@ -90,6 +88,8 @@ class NetworkInterface(resource.Resource):
|
|||||||
),
|
),
|
||||||
}
|
}
|
||||||
|
|
||||||
|
default_client_name = 'neutron'
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def network_id_from_subnet_id(neutronclient, subnet_id):
|
def network_id_from_subnet_id(neutronclient, subnet_id):
|
||||||
subnet_info = neutronclient.show_subnet(subnet_id)
|
subnet_info = neutronclient.show_subnet(subnet_id)
|
||||||
@ -127,9 +127,8 @@ class NetworkInterface(resource.Resource):
|
|||||||
client = self.neutron()
|
client = self.neutron()
|
||||||
try:
|
try:
|
||||||
client.delete_port(self.resource_id)
|
client.delete_port(self.resource_id)
|
||||||
except NeutronClientException as ex:
|
except Exception as ex:
|
||||||
if ex.status_code != 404:
|
self.client_plugin().ignore_not_found(ex)
|
||||||
raise ex
|
|
||||||
|
|
||||||
def _get_fixed_ip_address(self, ):
|
def _get_fixed_ip_address(self, ):
|
||||||
if self.fixed_ip_address is None:
|
if self.fixed_ip_address is None:
|
||||||
@ -138,9 +137,8 @@ class NetworkInterface(resource.Resource):
|
|||||||
port = client.show_port(self.resource_id)['port']
|
port = client.show_port(self.resource_id)['port']
|
||||||
if port['fixed_ips'] and len(port['fixed_ips']) > 0:
|
if port['fixed_ips'] and len(port['fixed_ips']) > 0:
|
||||||
self.fixed_ip_address = port['fixed_ips'][0]['ip_address']
|
self.fixed_ip_address = port['fixed_ips'][0]['ip_address']
|
||||||
except NeutronClientException as ex:
|
except Exception as ex:
|
||||||
if ex.status_code != 404:
|
self.client_plugin().ignore_not_found(ex)
|
||||||
raise ex
|
|
||||||
|
|
||||||
return self.fixed_ip_address
|
return self.fixed_ip_address
|
||||||
|
|
||||||
|
@ -16,8 +16,6 @@ from heat.engine import constraints
|
|||||||
from heat.engine import properties
|
from heat.engine import properties
|
||||||
from heat.engine.resources.neutron import neutron
|
from heat.engine.resources.neutron import neutron
|
||||||
|
|
||||||
from neutronclient.common.exceptions import NeutronClientException
|
|
||||||
|
|
||||||
|
|
||||||
class Firewall(neutron.NeutronResource):
|
class Firewall(neutron.NeutronResource):
|
||||||
"""
|
"""
|
||||||
@ -111,8 +109,8 @@ class Firewall(neutron.NeutronResource):
|
|||||||
client = self.neutron()
|
client = self.neutron()
|
||||||
try:
|
try:
|
||||||
client.delete_firewall(self.resource_id)
|
client.delete_firewall(self.resource_id)
|
||||||
except NeutronClientException as ex:
|
except Exception as ex:
|
||||||
self._handle_not_found_exception(ex)
|
self.client_plugin().ignore_not_found(ex)
|
||||||
else:
|
else:
|
||||||
return self._delete_task()
|
return self._delete_task()
|
||||||
|
|
||||||
@ -213,8 +211,8 @@ class FirewallPolicy(neutron.NeutronResource):
|
|||||||
client = self.neutron()
|
client = self.neutron()
|
||||||
try:
|
try:
|
||||||
client.delete_firewall_policy(self.resource_id)
|
client.delete_firewall_policy(self.resource_id)
|
||||||
except NeutronClientException as ex:
|
except Exception as ex:
|
||||||
self._handle_not_found_exception(ex)
|
self.client_plugin().ignore_not_found(ex)
|
||||||
else:
|
else:
|
||||||
return self._delete_task()
|
return self._delete_task()
|
||||||
|
|
||||||
@ -384,8 +382,8 @@ class FirewallRule(neutron.NeutronResource):
|
|||||||
client = self.neutron()
|
client = self.neutron()
|
||||||
try:
|
try:
|
||||||
client.delete_firewall_rule(self.resource_id)
|
client.delete_firewall_rule(self.resource_id)
|
||||||
except NeutronClientException as ex:
|
except Exception as ex:
|
||||||
self._handle_not_found_exception(ex)
|
self.client_plugin().ignore_not_found(ex)
|
||||||
else:
|
else:
|
||||||
return self._delete_task()
|
return self._delete_task()
|
||||||
|
|
||||||
|
@ -18,8 +18,6 @@ from heat.engine.resources.neutron import neutron_utils
|
|||||||
from heat.engine.resources.neutron import router
|
from heat.engine.resources.neutron import router
|
||||||
from heat.engine import support
|
from heat.engine import support
|
||||||
|
|
||||||
from neutronclient.common.exceptions import NeutronClientException
|
|
||||||
|
|
||||||
|
|
||||||
class FloatingIP(neutron.NeutronResource):
|
class FloatingIP(neutron.NeutronResource):
|
||||||
PROPERTIES = (
|
PROPERTIES = (
|
||||||
@ -132,8 +130,8 @@ class FloatingIP(neutron.NeutronResource):
|
|||||||
client = self.neutron()
|
client = self.neutron()
|
||||||
try:
|
try:
|
||||||
client.delete_floatingip(self.resource_id)
|
client.delete_floatingip(self.resource_id)
|
||||||
except NeutronClientException as ex:
|
except Exception as ex:
|
||||||
self._handle_not_found_exception(ex)
|
self.client_plugin().ignore_not_found(ex)
|
||||||
|
|
||||||
|
|
||||||
class FloatingIPAssociation(neutron.NeutronResource):
|
class FloatingIPAssociation(neutron.NeutronResource):
|
||||||
@ -182,8 +180,8 @@ class FloatingIPAssociation(neutron.NeutronResource):
|
|||||||
client.update_floatingip(
|
client.update_floatingip(
|
||||||
floatingip_id,
|
floatingip_id,
|
||||||
{'floatingip': {'port_id': None}})
|
{'floatingip': {'port_id': None}})
|
||||||
except NeutronClientException as ex:
|
except Exception as ex:
|
||||||
self._handle_not_found_exception(ex)
|
self.client_plugin().ignore_not_found(ex)
|
||||||
|
|
||||||
def handle_update(self, json_snippet, tmpl_diff, prop_diff):
|
def handle_update(self, json_snippet, tmpl_diff, prop_diff):
|
||||||
if prop_diff:
|
if prop_diff:
|
||||||
@ -196,8 +194,8 @@ class FloatingIPAssociation(neutron.NeutronResource):
|
|||||||
neutron_client.update_floatingip(
|
neutron_client.update_floatingip(
|
||||||
floatingip_id,
|
floatingip_id,
|
||||||
{'floatingip': {'port_id': None}})
|
{'floatingip': {'port_id': None}})
|
||||||
except NeutronClientException as ex:
|
except Exception as ex:
|
||||||
self._handle_not_found_exception(ex)
|
self.client_plugin().ignore_not_found(ex)
|
||||||
|
|
||||||
# associate the floatingip with the new port
|
# associate the floatingip with the new port
|
||||||
floatingip_id = (prop_diff.get(self.FLOATINGIP_ID) or
|
floatingip_id = (prop_diff.get(self.FLOATINGIP_ID) or
|
||||||
|
@ -22,8 +22,6 @@ from heat.engine.resources import nova_utils
|
|||||||
from heat.engine import scheduler
|
from heat.engine import scheduler
|
||||||
from heat.engine import support
|
from heat.engine import support
|
||||||
|
|
||||||
from neutronclient.common.exceptions import NeutronClientException
|
|
||||||
|
|
||||||
|
|
||||||
class HealthMonitor(neutron.NeutronResource):
|
class HealthMonitor(neutron.NeutronResource):
|
||||||
"""
|
"""
|
||||||
@ -162,8 +160,8 @@ class HealthMonitor(neutron.NeutronResource):
|
|||||||
def handle_delete(self):
|
def handle_delete(self):
|
||||||
try:
|
try:
|
||||||
self.neutron().delete_health_monitor(self.resource_id)
|
self.neutron().delete_health_monitor(self.resource_id)
|
||||||
except NeutronClientException as ex:
|
except Exception as ex:
|
||||||
self._handle_not_found_exception(ex)
|
self.client_plugin().ignore_not_found(ex)
|
||||||
else:
|
else:
|
||||||
return self._delete_task()
|
return self._delete_task()
|
||||||
|
|
||||||
@ -463,8 +461,8 @@ class Pool(neutron.NeutronResource):
|
|||||||
try:
|
try:
|
||||||
yield
|
yield
|
||||||
client.show_vip(self.metadata_get()['vip'])
|
client.show_vip(self.metadata_get()['vip'])
|
||||||
except NeutronClientException as ex:
|
except Exception as ex:
|
||||||
self._handle_not_found_exception(ex)
|
self.client_plugin().ignore_not_found(ex)
|
||||||
break
|
break
|
||||||
|
|
||||||
def handle_delete(self):
|
def handle_delete(self):
|
||||||
@ -472,14 +470,14 @@ class Pool(neutron.NeutronResource):
|
|||||||
if self.metadata_get():
|
if self.metadata_get():
|
||||||
try:
|
try:
|
||||||
self.neutron().delete_vip(self.metadata_get()['vip'])
|
self.neutron().delete_vip(self.metadata_get()['vip'])
|
||||||
except NeutronClientException as ex:
|
except Exception as ex:
|
||||||
self._handle_not_found_exception(ex)
|
self.client_plugin().ignore_not_found(ex)
|
||||||
else:
|
else:
|
||||||
checkers.append(scheduler.TaskRunner(self._confirm_vip_delete))
|
checkers.append(scheduler.TaskRunner(self._confirm_vip_delete))
|
||||||
try:
|
try:
|
||||||
self.neutron().delete_pool(self.resource_id)
|
self.neutron().delete_pool(self.resource_id)
|
||||||
except NeutronClientException as ex:
|
except Exception as ex:
|
||||||
self._handle_not_found_exception(ex)
|
self.client_plugin().ignore_not_found(ex)
|
||||||
else:
|
else:
|
||||||
checkers.append(scheduler.TaskRunner(self._confirm_delete))
|
checkers.append(scheduler.TaskRunner(self._confirm_delete))
|
||||||
return checkers
|
return checkers
|
||||||
@ -607,8 +605,8 @@ class PoolMember(neutron.NeutronResource):
|
|||||||
client = self.neutron()
|
client = self.neutron()
|
||||||
try:
|
try:
|
||||||
client.delete_member(self.resource_id)
|
client.delete_member(self.resource_id)
|
||||||
except NeutronClientException as ex:
|
except Exception as ex:
|
||||||
self._handle_not_found_exception(ex)
|
self.client_plugin().ignore_not_found(ex)
|
||||||
else:
|
else:
|
||||||
return self._delete_task()
|
return self._delete_task()
|
||||||
|
|
||||||
@ -644,6 +642,8 @@ class LoadBalancer(resource.Resource):
|
|||||||
),
|
),
|
||||||
}
|
}
|
||||||
|
|
||||||
|
default_client_name = 'neutron'
|
||||||
|
|
||||||
def handle_create(self):
|
def handle_create(self):
|
||||||
pool = self.properties[self.POOL_ID]
|
pool = self.properties[self.POOL_ID]
|
||||||
client = self.neutron()
|
client = self.neutron()
|
||||||
@ -669,9 +669,8 @@ class LoadBalancer(resource.Resource):
|
|||||||
member_id = rd_members[member]
|
member_id = rd_members[member]
|
||||||
try:
|
try:
|
||||||
client.delete_member(member_id)
|
client.delete_member(member_id)
|
||||||
except NeutronClientException as ex:
|
except Exception as ex:
|
||||||
if ex.status_code != 404:
|
self.client_plugin().ignore_not_found(ex)
|
||||||
raise ex
|
|
||||||
self.data_delete(member)
|
self.data_delete(member)
|
||||||
pool = self.properties[self.POOL_ID]
|
pool = self.properties[self.POOL_ID]
|
||||||
nova_client = self.nova()
|
nova_client = self.nova()
|
||||||
@ -691,9 +690,8 @@ class LoadBalancer(resource.Resource):
|
|||||||
member_id = self.data().get(member)
|
member_id = self.data().get(member)
|
||||||
try:
|
try:
|
||||||
client.delete_member(member_id)
|
client.delete_member(member_id)
|
||||||
except NeutronClientException as ex:
|
except Exception as ex:
|
||||||
if ex.status_code != 404:
|
self.client_plugin().ignore_not_found(ex)
|
||||||
raise ex
|
|
||||||
self.data_delete(member)
|
self.data_delete(member)
|
||||||
|
|
||||||
|
|
||||||
|
@ -16,8 +16,6 @@ from heat.engine import constraints
|
|||||||
from heat.engine import properties
|
from heat.engine import properties
|
||||||
from heat.engine.resources.neutron import neutron
|
from heat.engine.resources.neutron import neutron
|
||||||
|
|
||||||
from neutronclient.common.exceptions import NeutronClientException
|
|
||||||
|
|
||||||
|
|
||||||
class MeteringLabel(neutron.NeutronResource):
|
class MeteringLabel(neutron.NeutronResource):
|
||||||
"""
|
"""
|
||||||
@ -73,8 +71,8 @@ class MeteringLabel(neutron.NeutronResource):
|
|||||||
def handle_delete(self):
|
def handle_delete(self):
|
||||||
try:
|
try:
|
||||||
self.neutron().delete_metering_label(self.resource_id)
|
self.neutron().delete_metering_label(self.resource_id)
|
||||||
except NeutronClientException as ex:
|
except Exception as ex:
|
||||||
self._handle_not_found_exception(ex)
|
self.client_plugin().ignore_not_found(ex)
|
||||||
else:
|
else:
|
||||||
return self._delete_task()
|
return self._delete_task()
|
||||||
|
|
||||||
@ -159,8 +157,8 @@ class MeteringRule(neutron.NeutronResource):
|
|||||||
def handle_delete(self):
|
def handle_delete(self):
|
||||||
try:
|
try:
|
||||||
self.neutron().delete_metering_label_rule(self.resource_id)
|
self.neutron().delete_metering_label_rule(self.resource_id)
|
||||||
except NeutronClientException as ex:
|
except Exception as ex:
|
||||||
self._handle_not_found_exception(ex)
|
self.client_plugin().ignore_not_found(ex)
|
||||||
else:
|
else:
|
||||||
return self._delete_task()
|
return self._delete_task()
|
||||||
|
|
||||||
|
@ -15,8 +15,6 @@ from heat.engine import attributes
|
|||||||
from heat.engine import properties
|
from heat.engine import properties
|
||||||
from heat.engine.resources.neutron import neutron
|
from heat.engine.resources.neutron import neutron
|
||||||
|
|
||||||
import neutronclient.common.exceptions as neutron_exp
|
|
||||||
|
|
||||||
|
|
||||||
class Net(neutron.NeutronResource):
|
class Net(neutron.NeutronResource):
|
||||||
PROPERTIES = (
|
PROPERTIES = (
|
||||||
@ -124,8 +122,8 @@ class Net(neutron.NeutronResource):
|
|||||||
client = self.neutron()
|
client = self.neutron()
|
||||||
try:
|
try:
|
||||||
client.delete_network(self.resource_id)
|
client.delete_network(self.resource_id)
|
||||||
except neutron_exp.NeutronClientException as ex:
|
except Exception as ex:
|
||||||
self._handle_not_found_exception(ex)
|
self.client_plugin().ignore_not_found(ex)
|
||||||
else:
|
else:
|
||||||
return self._delete_task()
|
return self._delete_task()
|
||||||
|
|
||||||
@ -147,12 +145,6 @@ class Net(neutron.NeutronResource):
|
|||||||
attributes = self._show_resource()
|
attributes = self._show_resource()
|
||||||
return self.is_built(attributes)
|
return self.is_built(attributes)
|
||||||
|
|
||||||
def _handle_not_found_exception(self, ex):
|
|
||||||
# raise any exception which is not for a not found network
|
|
||||||
if not (ex.status_code == 404 or
|
|
||||||
isinstance(ex, neutron_exp.NetworkNotFoundClient)):
|
|
||||||
raise ex
|
|
||||||
|
|
||||||
def _replace_dhcp_agents(self, dhcp_agent_ids):
|
def _replace_dhcp_agents(self, dhcp_agent_ids):
|
||||||
ret = self.neutron().list_dhcp_agent_hosting_networks(
|
ret = self.neutron().list_dhcp_agent_hosting_networks(
|
||||||
self.resource_id)
|
self.resource_id)
|
||||||
@ -163,21 +155,22 @@ class Net(neutron.NeutronResource):
|
|||||||
try:
|
try:
|
||||||
self.neutron().add_network_to_dhcp_agent(
|
self.neutron().add_network_to_dhcp_agent(
|
||||||
dhcp_agent_id, {'network_id': self.resource_id})
|
dhcp_agent_id, {'network_id': self.resource_id})
|
||||||
except neutron_exp.NeutronClientException as ex:
|
except Exception as ex:
|
||||||
# if 409 is happened, the agent is already associated.
|
# if 409 is happened, the agent is already associated.
|
||||||
if ex.status_code != 409:
|
if not self.client_plugin().is_conflict(ex):
|
||||||
raise ex
|
raise
|
||||||
|
|
||||||
for dhcp_agent_id in old - new:
|
for dhcp_agent_id in old - new:
|
||||||
try:
|
try:
|
||||||
self.neutron().remove_network_from_dhcp_agent(
|
self.neutron().remove_network_from_dhcp_agent(
|
||||||
dhcp_agent_id, self.resource_id)
|
dhcp_agent_id, self.resource_id)
|
||||||
except neutron_exp.NeutronClientException as ex:
|
except Exception as ex:
|
||||||
# assume 2 patterns about status_code following:
|
# assume 2 patterns about status_code following:
|
||||||
# 404: the network or agent is already gone
|
# 404: the network or agent is already gone
|
||||||
# 409: the network isn't scheduled by the dhcp_agent
|
# 409: the network isn't scheduled by the dhcp_agent
|
||||||
if ex.status_code not in (404, 409):
|
if not (self.client_plugin().is_conflict(ex) or
|
||||||
raise ex
|
self.client_plugin().is_not_found(ex)):
|
||||||
|
raise
|
||||||
|
|
||||||
|
|
||||||
def resource_mapping():
|
def resource_mapping():
|
||||||
|
@ -22,8 +22,6 @@ from heat.engine.resources.neutron import neutron
|
|||||||
from heat.engine.resources.neutron import neutron_utils
|
from heat.engine.resources.neutron import neutron_utils
|
||||||
from heat.engine import support
|
from heat.engine import support
|
||||||
|
|
||||||
from neutronclient.common.exceptions import NeutronClientException
|
|
||||||
|
|
||||||
|
|
||||||
class NetworkGateway(neutron.NeutronResource):
|
class NetworkGateway(neutron.NeutronResource):
|
||||||
'''
|
'''
|
||||||
@ -199,13 +197,13 @@ class NetworkGateway(neutron.NeutronResource):
|
|||||||
client.disconnect_network_gateway(
|
client.disconnect_network_gateway(
|
||||||
self.resource_id, connection
|
self.resource_id, connection
|
||||||
)
|
)
|
||||||
except NeutronClientException as ex:
|
except Exception as ex:
|
||||||
self._handle_not_found_exception(ex)
|
self.client_plugin().ignore_not_found(ex)
|
||||||
|
|
||||||
try:
|
try:
|
||||||
client.delete_network_gateway(self.resource_id)
|
client.delete_network_gateway(self.resource_id)
|
||||||
except NeutronClientException as ex:
|
except Exception as ex:
|
||||||
self._handle_not_found_exception(ex)
|
self.client_plugin().ignore_not_found(ex)
|
||||||
else:
|
else:
|
||||||
return self._delete_task()
|
return self._delete_task()
|
||||||
|
|
||||||
@ -235,8 +233,8 @@ class NetworkGateway(neutron.NeutronResource):
|
|||||||
self.neutron().disconnect_network_gateway(
|
self.neutron().disconnect_network_gateway(
|
||||||
self.resource_id, connection
|
self.resource_id, connection
|
||||||
)
|
)
|
||||||
except NeutronClientException as ex:
|
except Exception as ex:
|
||||||
self._handle_not_found_exception(ex)
|
self.client_plugin().ignore_not_found(ex)
|
||||||
for connection in connections:
|
for connection in connections:
|
||||||
neutron_utils.resolve_network(
|
neutron_utils.resolve_network(
|
||||||
self.neutron(), connection, self.NETWORK, 'network_id')
|
self.neutron(), connection, self.NETWORK, 'network_id')
|
||||||
|
@ -11,8 +11,6 @@
|
|||||||
# License for the specific language governing permissions and limitations
|
# License for the specific language governing permissions and limitations
|
||||||
# under the License.
|
# under the License.
|
||||||
|
|
||||||
from neutronclient.common.exceptions import NeutronClientException
|
|
||||||
|
|
||||||
from heat.common import exception
|
from heat.common import exception
|
||||||
from heat.engine import resource
|
from heat.engine import resource
|
||||||
from heat.engine import scheduler
|
from heat.engine import scheduler
|
||||||
@ -24,6 +22,8 @@ LOG = logging.getLogger(__name__)
|
|||||||
|
|
||||||
class NeutronResource(resource.Resource):
|
class NeutronResource(resource.Resource):
|
||||||
|
|
||||||
|
default_client_name = 'neutron'
|
||||||
|
|
||||||
def validate(self):
|
def validate(self):
|
||||||
'''
|
'''
|
||||||
Validate any of the provided params
|
Validate any of the provided params
|
||||||
@ -117,7 +117,8 @@ class NeutronResource(resource.Resource):
|
|||||||
def _resolve_attribute(self, name):
|
def _resolve_attribute(self, name):
|
||||||
try:
|
try:
|
||||||
attributes = self._show_resource()
|
attributes = self._show_resource()
|
||||||
except NeutronClientException as ex:
|
except Exception as ex:
|
||||||
|
self.client_plugin().ignore_not_found(ex)
|
||||||
LOG.warn(_("failed to fetch resource attributes: %s") % ex)
|
LOG.warn(_("failed to fetch resource attributes: %s") % ex)
|
||||||
return None
|
return None
|
||||||
if name == 'show':
|
if name == 'show':
|
||||||
@ -130,14 +131,10 @@ class NeutronResource(resource.Resource):
|
|||||||
try:
|
try:
|
||||||
yield
|
yield
|
||||||
self._show_resource()
|
self._show_resource()
|
||||||
except NeutronClientException as ex:
|
except Exception as ex:
|
||||||
self._handle_not_found_exception(ex)
|
self.client_plugin().ignore_not_found(ex)
|
||||||
return
|
return
|
||||||
|
|
||||||
def _handle_not_found_exception(self, ex):
|
|
||||||
if ex.status_code != 404:
|
|
||||||
raise ex
|
|
||||||
|
|
||||||
def FnGetRefId(self):
|
def FnGetRefId(self):
|
||||||
return unicode(self.resource_id)
|
return unicode(self.resource_id)
|
||||||
|
|
||||||
|
@ -19,8 +19,6 @@ from heat.engine.resources.neutron import subnet
|
|||||||
from heat.engine import support
|
from heat.engine import support
|
||||||
from heat.openstack.common import log as logging
|
from heat.openstack.common import log as logging
|
||||||
|
|
||||||
import neutronclient.common.exceptions as neutron_exp
|
|
||||||
|
|
||||||
LOG = logging.getLogger(__name__)
|
LOG = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
|
||||||
@ -269,17 +267,11 @@ class Port(neutron.NeutronResource):
|
|||||||
client = self.neutron()
|
client = self.neutron()
|
||||||
try:
|
try:
|
||||||
client.delete_port(self.resource_id)
|
client.delete_port(self.resource_id)
|
||||||
except neutron_exp.NeutronClientException as ex:
|
except Exception as ex:
|
||||||
self._handle_not_found_exception(ex)
|
self.client_plugin().ignore_not_found(ex)
|
||||||
else:
|
else:
|
||||||
return self._delete_task()
|
return self._delete_task()
|
||||||
|
|
||||||
def _handle_not_found_exception(self, ex):
|
|
||||||
# raise any exception which is not for a not found port
|
|
||||||
if not (ex.status_code == 404 or
|
|
||||||
isinstance(ex, neutron_exp.PortNotFoundClient)):
|
|
||||||
raise ex
|
|
||||||
|
|
||||||
def handle_update(self, json_snippet, tmpl_diff, prop_diff):
|
def handle_update(self, json_snippet, tmpl_diff, prop_diff):
|
||||||
props = self.prepare_update_properties(json_snippet)
|
props = self.prepare_update_properties(json_snippet)
|
||||||
|
|
||||||
|
@ -19,8 +19,6 @@ from heat.engine.resources.neutron import neutron_utils
|
|||||||
from heat.engine.resources.neutron import subnet
|
from heat.engine.resources.neutron import subnet
|
||||||
from heat.engine import support
|
from heat.engine import support
|
||||||
|
|
||||||
from neutronclient.common.exceptions import NeutronClientException
|
|
||||||
|
|
||||||
|
|
||||||
class Router(neutron.NeutronResource):
|
class Router(neutron.NeutronResource):
|
||||||
|
|
||||||
@ -163,8 +161,8 @@ class Router(neutron.NeutronResource):
|
|||||||
client = self.neutron()
|
client = self.neutron()
|
||||||
try:
|
try:
|
||||||
client.delete_router(self.resource_id)
|
client.delete_router(self.resource_id)
|
||||||
except NeutronClientException as ex:
|
except Exception as ex:
|
||||||
self._handle_not_found_exception(ex)
|
self.client_plugin().ignore_not_found(ex)
|
||||||
else:
|
else:
|
||||||
return self._delete_task()
|
return self._delete_task()
|
||||||
|
|
||||||
@ -275,8 +273,8 @@ class RouterInterface(neutron.NeutronResource):
|
|||||||
client.remove_interface_router(
|
client.remove_interface_router(
|
||||||
router_id,
|
router_id,
|
||||||
{key: value})
|
{key: value})
|
||||||
except NeutronClientException as ex:
|
except Exception as ex:
|
||||||
self._handle_not_found_exception(ex)
|
self.client_plugin().ignore_not_found(ex)
|
||||||
|
|
||||||
|
|
||||||
class RouterGateway(neutron.NeutronResource):
|
class RouterGateway(neutron.NeutronResource):
|
||||||
@ -360,8 +358,8 @@ class RouterGateway(neutron.NeutronResource):
|
|||||||
(router_id, network_id) = self.resource_id.split(':')
|
(router_id, network_id) = self.resource_id.split(':')
|
||||||
try:
|
try:
|
||||||
client.remove_gateway_router(router_id)
|
client.remove_gateway_router(router_id)
|
||||||
except NeutronClientException as ex:
|
except Exception as ex:
|
||||||
self._handle_not_found_exception(ex)
|
self.client_plugin().ignore_not_found(ex)
|
||||||
|
|
||||||
|
|
||||||
def resource_mapping():
|
def resource_mapping():
|
||||||
|
@ -16,8 +16,6 @@ from heat.engine import constraints
|
|||||||
from heat.engine import properties
|
from heat.engine import properties
|
||||||
from heat.engine.resources.neutron import neutron
|
from heat.engine.resources.neutron import neutron
|
||||||
|
|
||||||
import neutronclient.common.exceptions as neutron_exp
|
|
||||||
|
|
||||||
|
|
||||||
class SecurityGroup(neutron.NeutronResource):
|
class SecurityGroup(neutron.NeutronResource):
|
||||||
|
|
||||||
@ -188,24 +186,23 @@ class SecurityGroup(neutron.NeutronResource):
|
|||||||
try:
|
try:
|
||||||
self.neutron().create_security_group_rule(
|
self.neutron().create_security_group_rule(
|
||||||
{'security_group_rule': rule})
|
{'security_group_rule': rule})
|
||||||
except neutron_exp.NeutronClientException as ex:
|
except Exception as ex:
|
||||||
# ignore error if rule already exists
|
if not self.client_plugin().is_conflict(ex):
|
||||||
if ex.status_code != 409:
|
|
||||||
raise
|
raise
|
||||||
|
|
||||||
def _delete_rules(self, to_delete=None):
|
def _delete_rules(self, to_delete=None):
|
||||||
try:
|
try:
|
||||||
sec = self.neutron().show_security_group(
|
sec = self.neutron().show_security_group(
|
||||||
self.resource_id)['security_group']
|
self.resource_id)['security_group']
|
||||||
except neutron_exp.NeutronClientException as ex:
|
except Exception as ex:
|
||||||
self._handle_not_found_exception(ex)
|
self.client_plugin().ignore_not_found(ex)
|
||||||
else:
|
else:
|
||||||
for rule in sec['security_group_rules']:
|
for rule in sec['security_group_rules']:
|
||||||
if to_delete is None or to_delete(rule):
|
if to_delete is None or to_delete(rule):
|
||||||
try:
|
try:
|
||||||
self.neutron().delete_security_group_rule(rule['id'])
|
self.neutron().delete_security_group_rule(rule['id'])
|
||||||
except neutron_exp.NeutronClientException as ex:
|
except Exception as ex:
|
||||||
self._handle_not_found_exception(ex)
|
self.client_plugin().ignore_not_found(ex)
|
||||||
|
|
||||||
def handle_delete(self):
|
def handle_delete(self):
|
||||||
|
|
||||||
@ -215,8 +212,8 @@ class SecurityGroup(neutron.NeutronResource):
|
|||||||
self._delete_rules()
|
self._delete_rules()
|
||||||
try:
|
try:
|
||||||
self.neutron().delete_security_group(self.resource_id)
|
self.neutron().delete_security_group(self.resource_id)
|
||||||
except neutron_exp.NeutronClientException as ex:
|
except Exception as ex:
|
||||||
self._handle_not_found_exception(ex)
|
self.client_plugin().ignore_not_found(ex)
|
||||||
self.resource_id_set(None)
|
self.resource_id_set(None)
|
||||||
|
|
||||||
def handle_update(self, json_snippet, tmpl_diff, prop_diff):
|
def handle_update(self, json_snippet, tmpl_diff, prop_diff):
|
||||||
|
@ -18,8 +18,6 @@ from heat.engine.resources.neutron import neutron
|
|||||||
from heat.engine.resources.neutron import neutron_utils
|
from heat.engine.resources.neutron import neutron_utils
|
||||||
from heat.engine import support
|
from heat.engine import support
|
||||||
|
|
||||||
from neutronclient.common.exceptions import NeutronClientException
|
|
||||||
|
|
||||||
|
|
||||||
class Subnet(neutron.NeutronResource):
|
class Subnet(neutron.NeutronResource):
|
||||||
|
|
||||||
@ -217,8 +215,8 @@ class Subnet(neutron.NeutronResource):
|
|||||||
client = self.neutron()
|
client = self.neutron()
|
||||||
try:
|
try:
|
||||||
client.delete_subnet(self.resource_id)
|
client.delete_subnet(self.resource_id)
|
||||||
except NeutronClientException as ex:
|
except Exception as ex:
|
||||||
self._handle_not_found_exception(ex)
|
self.client_plugin().ignore_not_found(ex)
|
||||||
else:
|
else:
|
||||||
return self._delete_task()
|
return self._delete_task()
|
||||||
|
|
||||||
|
@ -18,8 +18,6 @@ from heat.engine.resources.neutron import neutron
|
|||||||
from heat.engine.resources.neutron import neutron_utils
|
from heat.engine.resources.neutron import neutron_utils
|
||||||
from heat.engine import support
|
from heat.engine import support
|
||||||
|
|
||||||
from neutronclient.common.exceptions import NeutronClientException
|
|
||||||
|
|
||||||
|
|
||||||
class VPNService(neutron.NeutronResource):
|
class VPNService(neutron.NeutronResource):
|
||||||
"""
|
"""
|
||||||
@ -136,8 +134,8 @@ class VPNService(neutron.NeutronResource):
|
|||||||
client = self.neutron()
|
client = self.neutron()
|
||||||
try:
|
try:
|
||||||
client.delete_vpnservice(self.resource_id)
|
client.delete_vpnservice(self.resource_id)
|
||||||
except NeutronClientException as ex:
|
except Exception as ex:
|
||||||
self._handle_not_found_exception(ex)
|
self.client_plugin().ignore_not_found(ex)
|
||||||
else:
|
else:
|
||||||
return self._delete_task()
|
return self._delete_task()
|
||||||
|
|
||||||
@ -358,8 +356,8 @@ class IPsecSiteConnection(neutron.NeutronResource):
|
|||||||
client = self.neutron()
|
client = self.neutron()
|
||||||
try:
|
try:
|
||||||
client.delete_ipsec_site_connection(self.resource_id)
|
client.delete_ipsec_site_connection(self.resource_id)
|
||||||
except NeutronClientException as ex:
|
except Exception as ex:
|
||||||
self._handle_not_found_exception(ex)
|
self.client_plugin().ignore_not_found(ex)
|
||||||
else:
|
else:
|
||||||
return self._delete_task()
|
return self._delete_task()
|
||||||
|
|
||||||
@ -518,8 +516,8 @@ class IKEPolicy(neutron.NeutronResource):
|
|||||||
client = self.neutron()
|
client = self.neutron()
|
||||||
try:
|
try:
|
||||||
client.delete_ikepolicy(self.resource_id)
|
client.delete_ikepolicy(self.resource_id)
|
||||||
except NeutronClientException as ex:
|
except Exception as ex:
|
||||||
self._handle_not_found_exception(ex)
|
self.client_plugin().ignore_not_found(ex)
|
||||||
else:
|
else:
|
||||||
return self._delete_task()
|
return self._delete_task()
|
||||||
|
|
||||||
@ -680,8 +678,8 @@ class IPsecPolicy(neutron.NeutronResource):
|
|||||||
client = self.neutron()
|
client = self.neutron()
|
||||||
try:
|
try:
|
||||||
client.delete_ipsecpolicy(self.resource_id)
|
client.delete_ipsecpolicy(self.resource_id)
|
||||||
except NeutronClientException as ex:
|
except Exception as ex:
|
||||||
self._handle_not_found_exception(ex)
|
self.client_plugin().ignore_not_found(ex)
|
||||||
else:
|
else:
|
||||||
return self._delete_task()
|
return self._delete_task()
|
||||||
|
|
||||||
|
@ -16,8 +16,6 @@ from heat.engine import resource
|
|||||||
from heat.engine.resources.neutron import neutron
|
from heat.engine.resources.neutron import neutron
|
||||||
from heat.engine.resources.vpc import VPC
|
from heat.engine.resources.vpc import VPC
|
||||||
|
|
||||||
from neutronclient.common.exceptions import NeutronClientException
|
|
||||||
|
|
||||||
|
|
||||||
class RouteTable(resource.Resource):
|
class RouteTable(resource.Resource):
|
||||||
|
|
||||||
@ -89,16 +87,14 @@ class RouteTable(resource.Resource):
|
|||||||
router_id = self.resource_id
|
router_id = self.resource_id
|
||||||
try:
|
try:
|
||||||
client.delete_router(router_id)
|
client.delete_router(router_id)
|
||||||
except NeutronClientException as ex:
|
except Exception as ex:
|
||||||
if ex.status_code != 404:
|
self.client_plugin('neutron').ignore_not_found(ex)
|
||||||
raise ex
|
|
||||||
|
|
||||||
# just in case this router has been added to a gateway, remove it
|
# just in case this router has been added to a gateway, remove it
|
||||||
try:
|
try:
|
||||||
client.remove_gateway_router(router_id)
|
client.remove_gateway_router(router_id)
|
||||||
except NeutronClientException as ex:
|
except Exception as ex:
|
||||||
if ex.status_code != 404:
|
self.client_plugin('neutron').ignore_not_found(ex)
|
||||||
raise ex
|
|
||||||
|
|
||||||
|
|
||||||
class SubnetRouteTableAssociation(resource.Resource):
|
class SubnetRouteTableAssociation(resource.Resource):
|
||||||
@ -135,9 +131,8 @@ class SubnetRouteTableAssociation(resource.Resource):
|
|||||||
client.remove_interface_router(
|
client.remove_interface_router(
|
||||||
previous_router['id'],
|
previous_router['id'],
|
||||||
{'subnet_id': subnet_id})
|
{'subnet_id': subnet_id})
|
||||||
except NeutronClientException as ex:
|
except Exception as ex:
|
||||||
if ex.status_code != 404:
|
self.client_plugin('neutron').ignore_not_found(ex)
|
||||||
raise ex
|
|
||||||
|
|
||||||
client.add_interface_router(
|
client.add_interface_router(
|
||||||
router_id, {'subnet_id': subnet_id})
|
router_id, {'subnet_id': subnet_id})
|
||||||
@ -158,9 +153,8 @@ class SubnetRouteTableAssociation(resource.Resource):
|
|||||||
try:
|
try:
|
||||||
client.remove_interface_router(router_id, {
|
client.remove_interface_router(router_id, {
|
||||||
'subnet_id': subnet_id})
|
'subnet_id': subnet_id})
|
||||||
except NeutronClientException as ex:
|
except Exception as ex:
|
||||||
if ex.status_code != 404:
|
self.client_plugin('neutron').ignore_not_found(ex)
|
||||||
raise ex
|
|
||||||
|
|
||||||
# add back the default router
|
# add back the default router
|
||||||
try:
|
try:
|
||||||
@ -168,9 +162,8 @@ class SubnetRouteTableAssociation(resource.Resource):
|
|||||||
if default_router:
|
if default_router:
|
||||||
client.add_interface_router(
|
client.add_interface_router(
|
||||||
default_router['id'], {'subnet_id': subnet_id})
|
default_router['id'], {'subnet_id': subnet_id})
|
||||||
except NeutronClientException as ex:
|
except Exception as ex:
|
||||||
if ex.status_code != 404:
|
self.client_plugin('neutron').ignore_not_found(ex)
|
||||||
raise ex
|
|
||||||
|
|
||||||
|
|
||||||
def resource_mapping():
|
def resource_mapping():
|
||||||
|
@ -111,7 +111,6 @@ class SecurityGroup(resource.Resource):
|
|||||||
}
|
}
|
||||||
|
|
||||||
def _handle_create_neutron(self):
|
def _handle_create_neutron(self):
|
||||||
from neutronclient.common.exceptions import NeutronClientException
|
|
||||||
client = self.neutron()
|
client = self.neutron()
|
||||||
|
|
||||||
sec = client.create_security_group({'security_group': {
|
sec = client.create_security_group({'security_group': {
|
||||||
@ -140,8 +139,8 @@ class SecurityGroup(resource.Resource):
|
|||||||
'security_group_rule':
|
'security_group_rule':
|
||||||
self._convert_to_neutron_rule('ingress', i)
|
self._convert_to_neutron_rule('ingress', i)
|
||||||
})
|
})
|
||||||
except NeutronClientException as ex:
|
except Exception as ex:
|
||||||
if ex.status_code == 409:
|
if self.client_plugin('neutron').is_conflict(ex):
|
||||||
# no worries, the rule is already there
|
# no worries, the rule is already there
|
||||||
pass
|
pass
|
||||||
else:
|
else:
|
||||||
@ -160,8 +159,8 @@ class SecurityGroup(resource.Resource):
|
|||||||
'security_group_rule':
|
'security_group_rule':
|
||||||
self._convert_to_neutron_rule('egress', i)
|
self._convert_to_neutron_rule('egress', i)
|
||||||
})
|
})
|
||||||
except NeutronClientException as ex:
|
except Exception as ex:
|
||||||
if ex.status_code == 409:
|
if self.client_plugin('neutron').is_conflict(ex):
|
||||||
# no worries, the rule is already there
|
# no worries, the rule is already there
|
||||||
pass
|
pass
|
||||||
else:
|
else:
|
||||||
@ -237,29 +236,25 @@ class SecurityGroup(resource.Resource):
|
|||||||
self.resource_id_set(None)
|
self.resource_id_set(None)
|
||||||
|
|
||||||
def _handle_delete_neutron(self):
|
def _handle_delete_neutron(self):
|
||||||
from neutronclient.common.exceptions import NeutronClientException
|
|
||||||
client = self.neutron()
|
client = self.neutron()
|
||||||
|
|
||||||
if self.resource_id is not None:
|
if self.resource_id is not None:
|
||||||
try:
|
try:
|
||||||
sec = client.show_security_group(
|
sec = client.show_security_group(
|
||||||
self.resource_id)['security_group']
|
self.resource_id)['security_group']
|
||||||
except NeutronClientException as ex:
|
except Exception as ex:
|
||||||
if ex.status_code != 404:
|
self.client_plugin('neutron').ignore_not_found(ex)
|
||||||
raise
|
|
||||||
else:
|
else:
|
||||||
for rule in sec['security_group_rules']:
|
for rule in sec['security_group_rules']:
|
||||||
try:
|
try:
|
||||||
client.delete_security_group_rule(rule['id'])
|
client.delete_security_group_rule(rule['id'])
|
||||||
except NeutronClientException as ex:
|
except Exception as ex:
|
||||||
if ex.status_code != 404:
|
self.client_plugin('neutron').ignore_not_found(ex)
|
||||||
raise
|
|
||||||
|
|
||||||
try:
|
try:
|
||||||
client.delete_security_group(self.resource_id)
|
client.delete_security_group(self.resource_id)
|
||||||
except NeutronClientException as ex:
|
except Exception as ex:
|
||||||
if ex.status_code != 404:
|
self.client_plugin('neutron').ignore_not_found(ex)
|
||||||
raise
|
|
||||||
self.resource_id_set(None)
|
self.resource_id_set(None)
|
||||||
|
|
||||||
def FnGetRefId(self):
|
def FnGetRefId(self):
|
||||||
|
@ -77,6 +77,8 @@ class Subnet(resource.Resource):
|
|||||||
),
|
),
|
||||||
}
|
}
|
||||||
|
|
||||||
|
default_client_name = 'neutron'
|
||||||
|
|
||||||
def handle_create(self):
|
def handle_create(self):
|
||||||
client = self.neutron()
|
client = self.neutron()
|
||||||
# TODO(sbaker) Verify that this CidrBlock is within the vpc CidrBlock
|
# TODO(sbaker) Verify that this CidrBlock is within the vpc CidrBlock
|
||||||
@ -98,8 +100,6 @@ class Subnet(resource.Resource):
|
|||||||
self.resource_id_set(subnet['id'])
|
self.resource_id_set(subnet['id'])
|
||||||
|
|
||||||
def handle_delete(self):
|
def handle_delete(self):
|
||||||
from neutronclient.common.exceptions import NeutronClientException
|
|
||||||
|
|
||||||
client = self.neutron()
|
client = self.neutron()
|
||||||
network_id = self.properties.get(self.VPC_ID)
|
network_id = self.properties.get(self.VPC_ID)
|
||||||
subnet_id = self.resource_id
|
subnet_id = self.resource_id
|
||||||
@ -110,15 +110,13 @@ class Subnet(resource.Resource):
|
|||||||
client.remove_interface_router(
|
client.remove_interface_router(
|
||||||
router['id'],
|
router['id'],
|
||||||
{'subnet_id': subnet_id})
|
{'subnet_id': subnet_id})
|
||||||
except NeutronClientException as ex:
|
except Exception as ex:
|
||||||
if ex.status_code != 404:
|
self.client_plugin().ignore_not_found(ex)
|
||||||
raise ex
|
|
||||||
|
|
||||||
try:
|
try:
|
||||||
client.delete_subnet(subnet_id)
|
client.delete_subnet(subnet_id)
|
||||||
except NeutronClientException as ex:
|
except Exception as ex:
|
||||||
if ex.status_code != 404:
|
self.client_plugin().ignore_not_found(ex)
|
||||||
raise ex
|
|
||||||
|
|
||||||
def _resolve_attribute(self, name):
|
def _resolve_attribute(self, name):
|
||||||
if name == self.AVAILABILITY_ZONE:
|
if name == self.AVAILABILITY_ZONE:
|
||||||
|
@ -69,6 +69,8 @@ class VPC(resource.Resource):
|
|||||||
),
|
),
|
||||||
}
|
}
|
||||||
|
|
||||||
|
default_client_name = 'neutron'
|
||||||
|
|
||||||
def handle_create(self):
|
def handle_create(self):
|
||||||
client = self.neutron()
|
client = self.neutron()
|
||||||
# The VPC's net and router are associated by having identical names.
|
# The VPC's net and router are associated by having identical names.
|
||||||
@ -107,20 +109,17 @@ class VPC(resource.Resource):
|
|||||||
return neutron.NeutronResource.is_built(router)
|
return neutron.NeutronResource.is_built(router)
|
||||||
|
|
||||||
def handle_delete(self):
|
def handle_delete(self):
|
||||||
from neutronclient.common.exceptions import NeutronClientException
|
|
||||||
client = self.neutron()
|
client = self.neutron()
|
||||||
router = self.router_for_vpc(client, self.resource_id)
|
router = self.router_for_vpc(client, self.resource_id)
|
||||||
try:
|
try:
|
||||||
client.delete_router(router['id'])
|
client.delete_router(router['id'])
|
||||||
except NeutronClientException as ex:
|
except Exception as ex:
|
||||||
if ex.status_code != 404:
|
self.client_plugin().ignore_not_found(ex)
|
||||||
raise ex
|
|
||||||
|
|
||||||
try:
|
try:
|
||||||
client.delete_network(self.resource_id)
|
client.delete_network(self.resource_id)
|
||||||
except NeutronClientException as ex:
|
except Exception as ex:
|
||||||
if ex.status_code != 404:
|
self.client_plugin().ignore_not_found(ex)
|
||||||
raise ex
|
|
||||||
|
|
||||||
|
|
||||||
def resource_mapping():
|
def resource_mapping():
|
||||||
|
@ -14,6 +14,7 @@
|
|||||||
import copy
|
import copy
|
||||||
import six
|
import six
|
||||||
|
|
||||||
|
from neutronclient.common import exceptions
|
||||||
from neutronclient.v2_0 import client as neutronclient
|
from neutronclient.v2_0 import client as neutronclient
|
||||||
|
|
||||||
from heat.common import exception
|
from heat.common import exception
|
||||||
@ -118,7 +119,7 @@ class FirewallTest(HeatTestCase):
|
|||||||
'firewall': {
|
'firewall': {
|
||||||
'name': 'test-firewall', 'admin_state_up': True,
|
'name': 'test-firewall', 'admin_state_up': True,
|
||||||
'firewall_policy_id': 'policy-id'}}
|
'firewall_policy_id': 'policy-id'}}
|
||||||
).AndRaise(firewall.NeutronClientException())
|
).AndRaise(exceptions.NeutronClientException())
|
||||||
self.m.ReplayAll()
|
self.m.ReplayAll()
|
||||||
|
|
||||||
snippet = template_format.parse(firewall_template)
|
snippet = template_format.parse(firewall_template)
|
||||||
@ -138,7 +139,7 @@ class FirewallTest(HeatTestCase):
|
|||||||
def test_delete(self):
|
def test_delete(self):
|
||||||
neutronclient.Client.delete_firewall('5678')
|
neutronclient.Client.delete_firewall('5678')
|
||||||
neutronclient.Client.show_firewall('5678').AndRaise(
|
neutronclient.Client.show_firewall('5678').AndRaise(
|
||||||
firewall.NeutronClientException(status_code=404))
|
exceptions.NeutronClientException(status_code=404))
|
||||||
|
|
||||||
rsrc = self.create_firewall()
|
rsrc = self.create_firewall()
|
||||||
self.m.ReplayAll()
|
self.m.ReplayAll()
|
||||||
@ -149,7 +150,7 @@ class FirewallTest(HeatTestCase):
|
|||||||
|
|
||||||
def test_delete_already_gone(self):
|
def test_delete_already_gone(self):
|
||||||
neutronclient.Client.delete_firewall('5678').AndRaise(
|
neutronclient.Client.delete_firewall('5678').AndRaise(
|
||||||
firewall.NeutronClientException(status_code=404))
|
exceptions.NeutronClientException(status_code=404))
|
||||||
|
|
||||||
rsrc = self.create_firewall()
|
rsrc = self.create_firewall()
|
||||||
self.m.ReplayAll()
|
self.m.ReplayAll()
|
||||||
@ -160,7 +161,7 @@ class FirewallTest(HeatTestCase):
|
|||||||
|
|
||||||
def test_delete_failed(self):
|
def test_delete_failed(self):
|
||||||
neutronclient.Client.delete_firewall('5678').AndRaise(
|
neutronclient.Client.delete_firewall('5678').AndRaise(
|
||||||
firewall.NeutronClientException(status_code=400))
|
exceptions.NeutronClientException(status_code=400))
|
||||||
|
|
||||||
rsrc = self.create_firewall()
|
rsrc = self.create_firewall()
|
||||||
self.m.ReplayAll()
|
self.m.ReplayAll()
|
||||||
@ -245,7 +246,7 @@ class FirewallPolicyTest(HeatTestCase):
|
|||||||
'firewall_policy': {
|
'firewall_policy': {
|
||||||
'name': 'test-firewall-policy', 'shared': True,
|
'name': 'test-firewall-policy', 'shared': True,
|
||||||
'audited': True, 'firewall_rules': ['rule-id-1', 'rule-id-2']}}
|
'audited': True, 'firewall_rules': ['rule-id-1', 'rule-id-2']}}
|
||||||
).AndRaise(firewall.NeutronClientException())
|
).AndRaise(exceptions.NeutronClientException())
|
||||||
self.m.ReplayAll()
|
self.m.ReplayAll()
|
||||||
|
|
||||||
snippet = template_format.parse(firewall_policy_template)
|
snippet = template_format.parse(firewall_policy_template)
|
||||||
@ -265,7 +266,7 @@ class FirewallPolicyTest(HeatTestCase):
|
|||||||
def test_delete(self):
|
def test_delete(self):
|
||||||
neutronclient.Client.delete_firewall_policy('5678')
|
neutronclient.Client.delete_firewall_policy('5678')
|
||||||
neutronclient.Client.show_firewall_policy('5678').AndRaise(
|
neutronclient.Client.show_firewall_policy('5678').AndRaise(
|
||||||
firewall.NeutronClientException(status_code=404))
|
exceptions.NeutronClientException(status_code=404))
|
||||||
|
|
||||||
rsrc = self.create_firewall_policy()
|
rsrc = self.create_firewall_policy()
|
||||||
self.m.ReplayAll()
|
self.m.ReplayAll()
|
||||||
@ -276,7 +277,7 @@ class FirewallPolicyTest(HeatTestCase):
|
|||||||
|
|
||||||
def test_delete_already_gone(self):
|
def test_delete_already_gone(self):
|
||||||
neutronclient.Client.delete_firewall_policy('5678').AndRaise(
|
neutronclient.Client.delete_firewall_policy('5678').AndRaise(
|
||||||
firewall.NeutronClientException(status_code=404))
|
exceptions.NeutronClientException(status_code=404))
|
||||||
|
|
||||||
rsrc = self.create_firewall_policy()
|
rsrc = self.create_firewall_policy()
|
||||||
self.m.ReplayAll()
|
self.m.ReplayAll()
|
||||||
@ -287,7 +288,7 @@ class FirewallPolicyTest(HeatTestCase):
|
|||||||
|
|
||||||
def test_delete_failed(self):
|
def test_delete_failed(self):
|
||||||
neutronclient.Client.delete_firewall_policy('5678').AndRaise(
|
neutronclient.Client.delete_firewall_policy('5678').AndRaise(
|
||||||
firewall.NeutronClientException(status_code=400))
|
exceptions.NeutronClientException(status_code=400))
|
||||||
|
|
||||||
rsrc = self.create_firewall_policy()
|
rsrc = self.create_firewall_policy()
|
||||||
self.m.ReplayAll()
|
self.m.ReplayAll()
|
||||||
@ -373,7 +374,7 @@ class FirewallRuleTest(HeatTestCase):
|
|||||||
'name': 'test-firewall-rule', 'shared': True,
|
'name': 'test-firewall-rule', 'shared': True,
|
||||||
'action': 'allow', 'protocol': 'tcp', 'enabled': True,
|
'action': 'allow', 'protocol': 'tcp', 'enabled': True,
|
||||||
'ip_version': "4"}}
|
'ip_version': "4"}}
|
||||||
).AndRaise(firewall.NeutronClientException())
|
).AndRaise(exceptions.NeutronClientException())
|
||||||
self.m.ReplayAll()
|
self.m.ReplayAll()
|
||||||
|
|
||||||
snippet = template_format.parse(firewall_rule_template)
|
snippet = template_format.parse(firewall_rule_template)
|
||||||
@ -393,7 +394,7 @@ class FirewallRuleTest(HeatTestCase):
|
|||||||
def test_delete(self):
|
def test_delete(self):
|
||||||
neutronclient.Client.delete_firewall_rule('5678')
|
neutronclient.Client.delete_firewall_rule('5678')
|
||||||
neutronclient.Client.show_firewall_rule('5678').AndRaise(
|
neutronclient.Client.show_firewall_rule('5678').AndRaise(
|
||||||
firewall.NeutronClientException(status_code=404))
|
exceptions.NeutronClientException(status_code=404))
|
||||||
|
|
||||||
rsrc = self.create_firewall_rule()
|
rsrc = self.create_firewall_rule()
|
||||||
self.m.ReplayAll()
|
self.m.ReplayAll()
|
||||||
@ -404,7 +405,7 @@ class FirewallRuleTest(HeatTestCase):
|
|||||||
|
|
||||||
def test_delete_already_gone(self):
|
def test_delete_already_gone(self):
|
||||||
neutronclient.Client.delete_firewall_rule('5678').AndRaise(
|
neutronclient.Client.delete_firewall_rule('5678').AndRaise(
|
||||||
firewall.NeutronClientException(status_code=404))
|
exceptions.NeutronClientException(status_code=404))
|
||||||
|
|
||||||
rsrc = self.create_firewall_rule()
|
rsrc = self.create_firewall_rule()
|
||||||
self.m.ReplayAll()
|
self.m.ReplayAll()
|
||||||
@ -415,7 +416,7 @@ class FirewallRuleTest(HeatTestCase):
|
|||||||
|
|
||||||
def test_delete_failed(self):
|
def test_delete_failed(self):
|
||||||
neutronclient.Client.delete_firewall_rule('5678').AndRaise(
|
neutronclient.Client.delete_firewall_rule('5678').AndRaise(
|
||||||
firewall.NeutronClientException(status_code=400))
|
exceptions.NeutronClientException(status_code=400))
|
||||||
|
|
||||||
rsrc = self.create_firewall_rule()
|
rsrc = self.create_firewall_rule()
|
||||||
self.m.ReplayAll()
|
self.m.ReplayAll()
|
||||||
|
@ -16,6 +16,7 @@ import mox
|
|||||||
from oslo.config import cfg
|
from oslo.config import cfg
|
||||||
import six
|
import six
|
||||||
|
|
||||||
|
from neutronclient.common import exceptions
|
||||||
from neutronclient.v2_0 import client as neutronclient
|
from neutronclient.v2_0 import client as neutronclient
|
||||||
|
|
||||||
from heat.common import exception
|
from heat.common import exception
|
||||||
@ -254,7 +255,7 @@ class HealthMonitorTest(HeatTestCase):
|
|||||||
'health_monitor': {
|
'health_monitor': {
|
||||||
'delay': 3, 'max_retries': 5, 'type': u'HTTP',
|
'delay': 3, 'max_retries': 5, 'type': u'HTTP',
|
||||||
'timeout': 10, 'admin_state_up': True}}
|
'timeout': 10, 'admin_state_up': True}}
|
||||||
).AndRaise(loadbalancer.NeutronClientException())
|
).AndRaise(exceptions.NeutronClientException())
|
||||||
self.m.ReplayAll()
|
self.m.ReplayAll()
|
||||||
|
|
||||||
snippet = template_format.parse(health_monitor_template)
|
snippet = template_format.parse(health_monitor_template)
|
||||||
@ -273,7 +274,7 @@ class HealthMonitorTest(HeatTestCase):
|
|||||||
def test_delete(self):
|
def test_delete(self):
|
||||||
neutronclient.Client.delete_health_monitor('5678')
|
neutronclient.Client.delete_health_monitor('5678')
|
||||||
neutronclient.Client.show_health_monitor('5678').AndRaise(
|
neutronclient.Client.show_health_monitor('5678').AndRaise(
|
||||||
loadbalancer.NeutronClientException(status_code=404))
|
exceptions.NeutronClientException(status_code=404))
|
||||||
|
|
||||||
rsrc = self.create_health_monitor()
|
rsrc = self.create_health_monitor()
|
||||||
self.m.ReplayAll()
|
self.m.ReplayAll()
|
||||||
@ -284,7 +285,7 @@ class HealthMonitorTest(HeatTestCase):
|
|||||||
|
|
||||||
def test_delete_already_gone(self):
|
def test_delete_already_gone(self):
|
||||||
neutronclient.Client.delete_health_monitor('5678').AndRaise(
|
neutronclient.Client.delete_health_monitor('5678').AndRaise(
|
||||||
loadbalancer.NeutronClientException(status_code=404))
|
exceptions.NeutronClientException(status_code=404))
|
||||||
|
|
||||||
rsrc = self.create_health_monitor()
|
rsrc = self.create_health_monitor()
|
||||||
self.m.ReplayAll()
|
self.m.ReplayAll()
|
||||||
@ -295,7 +296,7 @@ class HealthMonitorTest(HeatTestCase):
|
|||||||
|
|
||||||
def test_delete_failed(self):
|
def test_delete_failed(self):
|
||||||
neutronclient.Client.delete_health_monitor('5678').AndRaise(
|
neutronclient.Client.delete_health_monitor('5678').AndRaise(
|
||||||
loadbalancer.NeutronClientException(status_code=400))
|
exceptions.NeutronClientException(status_code=400))
|
||||||
|
|
||||||
rsrc = self.create_health_monitor()
|
rsrc = self.create_health_monitor()
|
||||||
self.m.ReplayAll()
|
self.m.ReplayAll()
|
||||||
@ -563,7 +564,7 @@ class PoolTest(HeatTestCase):
|
|||||||
'subnet_id': 'sub123', 'protocol': u'HTTP',
|
'subnet_id': 'sub123', 'protocol': u'HTTP',
|
||||||
'name': utils.PhysName('test_stack', 'pool'),
|
'name': utils.PhysName('test_stack', 'pool'),
|
||||||
'lb_method': 'ROUND_ROBIN', 'admin_state_up': True}}
|
'lb_method': 'ROUND_ROBIN', 'admin_state_up': True}}
|
||||||
).AndRaise(loadbalancer.NeutronClientException())
|
).AndRaise(exceptions.NeutronClientException())
|
||||||
self.m.ReplayAll()
|
self.m.ReplayAll()
|
||||||
|
|
||||||
snippet = template_format.parse(pool_template)
|
snippet = template_format.parse(pool_template)
|
||||||
@ -694,10 +695,10 @@ class PoolTest(HeatTestCase):
|
|||||||
rsrc = self.create_pool()
|
rsrc = self.create_pool()
|
||||||
neutronclient.Client.delete_vip('xyz')
|
neutronclient.Client.delete_vip('xyz')
|
||||||
neutronclient.Client.show_vip('xyz').AndRaise(
|
neutronclient.Client.show_vip('xyz').AndRaise(
|
||||||
loadbalancer.NeutronClientException(status_code=404))
|
exceptions.NeutronClientException(status_code=404))
|
||||||
neutronclient.Client.delete_pool('5678')
|
neutronclient.Client.delete_pool('5678')
|
||||||
neutronclient.Client.show_pool('5678').AndRaise(
|
neutronclient.Client.show_pool('5678').AndRaise(
|
||||||
loadbalancer.NeutronClientException(status_code=404))
|
exceptions.NeutronClientException(status_code=404))
|
||||||
self.m.ReplayAll()
|
self.m.ReplayAll()
|
||||||
scheduler.TaskRunner(rsrc.create)()
|
scheduler.TaskRunner(rsrc.create)()
|
||||||
scheduler.TaskRunner(rsrc.delete)()
|
scheduler.TaskRunner(rsrc.delete)()
|
||||||
@ -706,9 +707,9 @@ class PoolTest(HeatTestCase):
|
|||||||
|
|
||||||
def test_delete_already_gone(self):
|
def test_delete_already_gone(self):
|
||||||
neutronclient.Client.delete_vip('xyz').AndRaise(
|
neutronclient.Client.delete_vip('xyz').AndRaise(
|
||||||
loadbalancer.NeutronClientException(status_code=404))
|
exceptions.NeutronClientException(status_code=404))
|
||||||
neutronclient.Client.delete_pool('5678').AndRaise(
|
neutronclient.Client.delete_pool('5678').AndRaise(
|
||||||
loadbalancer.NeutronClientException(status_code=404))
|
exceptions.NeutronClientException(status_code=404))
|
||||||
|
|
||||||
rsrc = self.create_pool()
|
rsrc = self.create_pool()
|
||||||
self.m.ReplayAll()
|
self.m.ReplayAll()
|
||||||
@ -719,7 +720,7 @@ class PoolTest(HeatTestCase):
|
|||||||
|
|
||||||
def test_delete_vip_failed(self):
|
def test_delete_vip_failed(self):
|
||||||
neutronclient.Client.delete_vip('xyz').AndRaise(
|
neutronclient.Client.delete_vip('xyz').AndRaise(
|
||||||
loadbalancer.NeutronClientException(status_code=400))
|
exceptions.NeutronClientException(status_code=400))
|
||||||
|
|
||||||
rsrc = self.create_pool()
|
rsrc = self.create_pool()
|
||||||
self.m.ReplayAll()
|
self.m.ReplayAll()
|
||||||
@ -734,9 +735,9 @@ class PoolTest(HeatTestCase):
|
|||||||
|
|
||||||
def test_delete_failed(self):
|
def test_delete_failed(self):
|
||||||
neutronclient.Client.delete_vip('xyz').AndRaise(
|
neutronclient.Client.delete_vip('xyz').AndRaise(
|
||||||
loadbalancer.NeutronClientException(status_code=404))
|
exceptions.NeutronClientException(status_code=404))
|
||||||
neutronclient.Client.delete_pool('5678').AndRaise(
|
neutronclient.Client.delete_pool('5678').AndRaise(
|
||||||
loadbalancer.NeutronClientException(status_code=400))
|
exceptions.NeutronClientException(status_code=400))
|
||||||
|
|
||||||
rsrc = self.create_pool()
|
rsrc = self.create_pool()
|
||||||
self.m.ReplayAll()
|
self.m.ReplayAll()
|
||||||
@ -923,7 +924,7 @@ class PoolMemberTest(HeatTestCase):
|
|||||||
rsrc = self.create_member()
|
rsrc = self.create_member()
|
||||||
neutronclient.Client.delete_member(u'member5678')
|
neutronclient.Client.delete_member(u'member5678')
|
||||||
neutronclient.Client.show_member(u'member5678').AndRaise(
|
neutronclient.Client.show_member(u'member5678').AndRaise(
|
||||||
loadbalancer.NeutronClientException(status_code=404))
|
exceptions.NeutronClientException(status_code=404))
|
||||||
|
|
||||||
self.m.ReplayAll()
|
self.m.ReplayAll()
|
||||||
scheduler.TaskRunner(rsrc.create)()
|
scheduler.TaskRunner(rsrc.create)()
|
||||||
@ -934,7 +935,7 @@ class PoolMemberTest(HeatTestCase):
|
|||||||
def test_delete_missing_member(self):
|
def test_delete_missing_member(self):
|
||||||
rsrc = self.create_member()
|
rsrc = self.create_member()
|
||||||
neutronclient.Client.delete_member(u'member5678').AndRaise(
|
neutronclient.Client.delete_member(u'member5678').AndRaise(
|
||||||
loadbalancer.NeutronClientException(status_code=404))
|
exceptions.NeutronClientException(status_code=404))
|
||||||
|
|
||||||
self.m.ReplayAll()
|
self.m.ReplayAll()
|
||||||
scheduler.TaskRunner(rsrc.create)()
|
scheduler.TaskRunner(rsrc.create)()
|
||||||
@ -995,7 +996,7 @@ class LoadBalancerTest(HeatTestCase):
|
|||||||
def test_update_missing_member(self):
|
def test_update_missing_member(self):
|
||||||
rsrc = self.create_load_balancer()
|
rsrc = self.create_load_balancer()
|
||||||
neutronclient.Client.delete_member(u'member5678').AndRaise(
|
neutronclient.Client.delete_member(u'member5678').AndRaise(
|
||||||
loadbalancer.NeutronClientException(status_code=404))
|
exceptions.NeutronClientException(status_code=404))
|
||||||
|
|
||||||
self.m.ReplayAll()
|
self.m.ReplayAll()
|
||||||
scheduler.TaskRunner(rsrc.create)()
|
scheduler.TaskRunner(rsrc.create)()
|
||||||
@ -1020,7 +1021,7 @@ class LoadBalancerTest(HeatTestCase):
|
|||||||
def test_delete_missing_member(self):
|
def test_delete_missing_member(self):
|
||||||
rsrc = self.create_load_balancer()
|
rsrc = self.create_load_balancer()
|
||||||
neutronclient.Client.delete_member(u'member5678').AndRaise(
|
neutronclient.Client.delete_member(u'member5678').AndRaise(
|
||||||
loadbalancer.NeutronClientException(status_code=404))
|
exceptions.NeutronClientException(status_code=404))
|
||||||
|
|
||||||
self.m.ReplayAll()
|
self.m.ReplayAll()
|
||||||
scheduler.TaskRunner(rsrc.create)()
|
scheduler.TaskRunner(rsrc.create)()
|
||||||
|
@ -11,6 +11,7 @@
|
|||||||
# License for the specific language governing permissions and limitations
|
# License for the specific language governing permissions and limitations
|
||||||
# under the License.
|
# under the License.
|
||||||
|
|
||||||
|
from neutronclient.common import exceptions
|
||||||
from neutronclient.v2_0 import client as neutronclient
|
from neutronclient.v2_0 import client as neutronclient
|
||||||
import six
|
import six
|
||||||
|
|
||||||
@ -89,7 +90,7 @@ class MeteringLabelTest(HeatTestCase):
|
|||||||
'metering_label': {
|
'metering_label': {
|
||||||
'name': 'TestLabel',
|
'name': 'TestLabel',
|
||||||
'description': 'Description of TestLabel'}
|
'description': 'Description of TestLabel'}
|
||||||
}).AndRaise(metering.NeutronClientException())
|
}).AndRaise(exceptions.NeutronClientException())
|
||||||
self.m.ReplayAll()
|
self.m.ReplayAll()
|
||||||
|
|
||||||
snippet = template_format.parse(metering_template)
|
snippet = template_format.parse(metering_template)
|
||||||
@ -108,7 +109,7 @@ class MeteringLabelTest(HeatTestCase):
|
|||||||
def test_delete(self):
|
def test_delete(self):
|
||||||
neutronclient.Client.delete_metering_label('1234')
|
neutronclient.Client.delete_metering_label('1234')
|
||||||
neutronclient.Client.show_metering_label('1234').AndRaise(
|
neutronclient.Client.show_metering_label('1234').AndRaise(
|
||||||
metering.NeutronClientException(status_code=404))
|
exceptions.NeutronClientException(status_code=404))
|
||||||
|
|
||||||
rsrc = self.create_metering_label()
|
rsrc = self.create_metering_label()
|
||||||
self.m.ReplayAll()
|
self.m.ReplayAll()
|
||||||
@ -119,7 +120,7 @@ class MeteringLabelTest(HeatTestCase):
|
|||||||
|
|
||||||
def test_delete_already_gone(self):
|
def test_delete_already_gone(self):
|
||||||
neutronclient.Client.delete_metering_label('1234').AndRaise(
|
neutronclient.Client.delete_metering_label('1234').AndRaise(
|
||||||
metering.NeutronClientException(status_code=404))
|
exceptions.NeutronClientException(status_code=404))
|
||||||
|
|
||||||
rsrc = self.create_metering_label()
|
rsrc = self.create_metering_label()
|
||||||
self.m.ReplayAll()
|
self.m.ReplayAll()
|
||||||
@ -130,7 +131,7 @@ class MeteringLabelTest(HeatTestCase):
|
|||||||
|
|
||||||
def test_delete_failed(self):
|
def test_delete_failed(self):
|
||||||
neutronclient.Client.delete_metering_label('1234').AndRaise(
|
neutronclient.Client.delete_metering_label('1234').AndRaise(
|
||||||
metering.NeutronClientException(status_code=400))
|
exceptions.NeutronClientException(status_code=400))
|
||||||
|
|
||||||
rsrc = self.create_metering_label()
|
rsrc = self.create_metering_label()
|
||||||
self.m.ReplayAll()
|
self.m.ReplayAll()
|
||||||
@ -202,7 +203,7 @@ class MeteringRuleTest(HeatTestCase):
|
|||||||
'remote_ip_prefix': '10.0.3.0/24',
|
'remote_ip_prefix': '10.0.3.0/24',
|
||||||
'direction': 'ingress',
|
'direction': 'ingress',
|
||||||
'excluded': False}
|
'excluded': False}
|
||||||
}).AndRaise(metering.NeutronClientException())
|
}).AndRaise(exceptions.NeutronClientException())
|
||||||
self.m.ReplayAll()
|
self.m.ReplayAll()
|
||||||
|
|
||||||
snippet = template_format.parse(metering_template)
|
snippet = template_format.parse(metering_template)
|
||||||
@ -221,7 +222,7 @@ class MeteringRuleTest(HeatTestCase):
|
|||||||
def test_delete(self):
|
def test_delete(self):
|
||||||
neutronclient.Client.delete_metering_label_rule('5678')
|
neutronclient.Client.delete_metering_label_rule('5678')
|
||||||
neutronclient.Client.show_metering_label_rule('5678').AndRaise(
|
neutronclient.Client.show_metering_label_rule('5678').AndRaise(
|
||||||
metering.NeutronClientException(status_code=404))
|
exceptions.NeutronClientException(status_code=404))
|
||||||
|
|
||||||
rsrc = self.create_metering_label_rule()
|
rsrc = self.create_metering_label_rule()
|
||||||
self.m.ReplayAll()
|
self.m.ReplayAll()
|
||||||
@ -232,7 +233,7 @@ class MeteringRuleTest(HeatTestCase):
|
|||||||
|
|
||||||
def test_delete_already_gone(self):
|
def test_delete_already_gone(self):
|
||||||
neutronclient.Client.delete_metering_label_rule('5678').AndRaise(
|
neutronclient.Client.delete_metering_label_rule('5678').AndRaise(
|
||||||
metering.NeutronClientException(status_code=404))
|
exceptions.NeutronClientException(status_code=404))
|
||||||
|
|
||||||
rsrc = self.create_metering_label_rule()
|
rsrc = self.create_metering_label_rule()
|
||||||
self.m.ReplayAll()
|
self.m.ReplayAll()
|
||||||
@ -243,7 +244,7 @@ class MeteringRuleTest(HeatTestCase):
|
|||||||
|
|
||||||
def test_delete_failed(self):
|
def test_delete_failed(self):
|
||||||
neutronclient.Client.delete_metering_label_rule('5678').AndRaise(
|
neutronclient.Client.delete_metering_label_rule('5678').AndRaise(
|
||||||
metering.NeutronClientException(status_code=400))
|
exceptions.NeutronClientException(status_code=400))
|
||||||
|
|
||||||
rsrc = self.create_metering_label_rule()
|
rsrc = self.create_metering_label_rule()
|
||||||
self.m.ReplayAll()
|
self.m.ReplayAll()
|
||||||
|
@ -444,7 +444,7 @@ class NeutronNetworkGatewayTest(HeatTestCase):
|
|||||||
'interface_name': u'breth1'}]
|
'interface_name': u'breth1'}]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
).AndRaise(network_gateway.NeutronClientException)
|
).AndRaise(qe.NeutronClientException)
|
||||||
|
|
||||||
self.m.ReplayAll()
|
self.m.ReplayAll()
|
||||||
|
|
||||||
|
@ -13,6 +13,7 @@
|
|||||||
|
|
||||||
import copy
|
import copy
|
||||||
import mox
|
import mox
|
||||||
|
from neutronclient.common import exceptions
|
||||||
from neutronclient.v2_0 import client as neutronclient
|
from neutronclient.v2_0 import client as neutronclient
|
||||||
import six
|
import six
|
||||||
|
|
||||||
@ -212,7 +213,7 @@ class VPNServiceTest(HeatTestCase):
|
|||||||
).AndReturn('sub123')
|
).AndReturn('sub123')
|
||||||
|
|
||||||
neutronclient.Client.create_vpnservice(self.VPN_SERVICE_CONF).AndRaise(
|
neutronclient.Client.create_vpnservice(self.VPN_SERVICE_CONF).AndRaise(
|
||||||
vpnservice.NeutronClientException())
|
exceptions.NeutronClientException())
|
||||||
self.m.ReplayAll()
|
self.m.ReplayAll()
|
||||||
snippet = template_format.parse(vpnservice_template)
|
snippet = template_format.parse(vpnservice_template)
|
||||||
self.stack = utils.parse_stack(snippet)
|
self.stack = utils.parse_stack(snippet)
|
||||||
@ -231,7 +232,7 @@ class VPNServiceTest(HeatTestCase):
|
|||||||
def test_delete(self):
|
def test_delete(self):
|
||||||
neutronclient.Client.delete_vpnservice('vpn123')
|
neutronclient.Client.delete_vpnservice('vpn123')
|
||||||
neutronclient.Client.show_vpnservice('vpn123').AndRaise(
|
neutronclient.Client.show_vpnservice('vpn123').AndRaise(
|
||||||
vpnservice.NeutronClientException(status_code=404))
|
exceptions.NeutronClientException(status_code=404))
|
||||||
rsrc = self.create_vpnservice()
|
rsrc = self.create_vpnservice()
|
||||||
self.m.ReplayAll()
|
self.m.ReplayAll()
|
||||||
scheduler.TaskRunner(rsrc.create)()
|
scheduler.TaskRunner(rsrc.create)()
|
||||||
@ -241,7 +242,7 @@ class VPNServiceTest(HeatTestCase):
|
|||||||
|
|
||||||
def test_delete_already_gone(self):
|
def test_delete_already_gone(self):
|
||||||
neutronclient.Client.delete_vpnservice('vpn123').AndRaise(
|
neutronclient.Client.delete_vpnservice('vpn123').AndRaise(
|
||||||
vpnservice.NeutronClientException(status_code=404))
|
exceptions.NeutronClientException(status_code=404))
|
||||||
rsrc = self.create_vpnservice()
|
rsrc = self.create_vpnservice()
|
||||||
self.m.ReplayAll()
|
self.m.ReplayAll()
|
||||||
scheduler.TaskRunner(rsrc.create)()
|
scheduler.TaskRunner(rsrc.create)()
|
||||||
@ -251,7 +252,7 @@ class VPNServiceTest(HeatTestCase):
|
|||||||
|
|
||||||
def test_delete_failed(self):
|
def test_delete_failed(self):
|
||||||
neutronclient.Client.delete_vpnservice('vpn123').AndRaise(
|
neutronclient.Client.delete_vpnservice('vpn123').AndRaise(
|
||||||
vpnservice.NeutronClientException(status_code=400))
|
exceptions.NeutronClientException(status_code=400))
|
||||||
rsrc = self.create_vpnservice()
|
rsrc = self.create_vpnservice()
|
||||||
self.m.ReplayAll()
|
self.m.ReplayAll()
|
||||||
scheduler.TaskRunner(rsrc.create)()
|
scheduler.TaskRunner(rsrc.create)()
|
||||||
@ -358,7 +359,7 @@ class IPsecSiteConnectionTest(HeatTestCase):
|
|||||||
def test_create_failed(self):
|
def test_create_failed(self):
|
||||||
neutronclient.Client.create_ipsec_site_connection(
|
neutronclient.Client.create_ipsec_site_connection(
|
||||||
self.IPSEC_SITE_CONNECTION_CONF).AndRaise(
|
self.IPSEC_SITE_CONNECTION_CONF).AndRaise(
|
||||||
vpnservice.NeutronClientException())
|
exceptions.NeutronClientException())
|
||||||
self.m.ReplayAll()
|
self.m.ReplayAll()
|
||||||
snippet = template_format.parse(ipsec_site_connection_template)
|
snippet = template_format.parse(ipsec_site_connection_template)
|
||||||
self.stack = utils.parse_stack(snippet)
|
self.stack = utils.parse_stack(snippet)
|
||||||
@ -378,7 +379,7 @@ class IPsecSiteConnectionTest(HeatTestCase):
|
|||||||
def test_delete(self):
|
def test_delete(self):
|
||||||
neutronclient.Client.delete_ipsec_site_connection('con123')
|
neutronclient.Client.delete_ipsec_site_connection('con123')
|
||||||
neutronclient.Client.show_ipsec_site_connection('con123').AndRaise(
|
neutronclient.Client.show_ipsec_site_connection('con123').AndRaise(
|
||||||
vpnservice.NeutronClientException(status_code=404))
|
exceptions.NeutronClientException(status_code=404))
|
||||||
rsrc = self.create_ipsec_site_connection()
|
rsrc = self.create_ipsec_site_connection()
|
||||||
self.m.ReplayAll()
|
self.m.ReplayAll()
|
||||||
scheduler.TaskRunner(rsrc.create)()
|
scheduler.TaskRunner(rsrc.create)()
|
||||||
@ -388,7 +389,7 @@ class IPsecSiteConnectionTest(HeatTestCase):
|
|||||||
|
|
||||||
def test_delete_already_gone(self):
|
def test_delete_already_gone(self):
|
||||||
neutronclient.Client.delete_ipsec_site_connection('con123').AndRaise(
|
neutronclient.Client.delete_ipsec_site_connection('con123').AndRaise(
|
||||||
vpnservice.NeutronClientException(status_code=404))
|
exceptions.NeutronClientException(status_code=404))
|
||||||
rsrc = self.create_ipsec_site_connection()
|
rsrc = self.create_ipsec_site_connection()
|
||||||
self.m.ReplayAll()
|
self.m.ReplayAll()
|
||||||
scheduler.TaskRunner(rsrc.create)()
|
scheduler.TaskRunner(rsrc.create)()
|
||||||
@ -398,7 +399,7 @@ class IPsecSiteConnectionTest(HeatTestCase):
|
|||||||
|
|
||||||
def test_delete_failed(self):
|
def test_delete_failed(self):
|
||||||
neutronclient.Client.delete_ipsec_site_connection('con123').AndRaise(
|
neutronclient.Client.delete_ipsec_site_connection('con123').AndRaise(
|
||||||
vpnservice.NeutronClientException(status_code=400))
|
exceptions.NeutronClientException(status_code=400))
|
||||||
rsrc = self.create_ipsec_site_connection()
|
rsrc = self.create_ipsec_site_connection()
|
||||||
self.m.ReplayAll()
|
self.m.ReplayAll()
|
||||||
scheduler.TaskRunner(rsrc.create)()
|
scheduler.TaskRunner(rsrc.create)()
|
||||||
@ -504,7 +505,7 @@ class IKEPolicyTest(HeatTestCase):
|
|||||||
def test_create_failed(self):
|
def test_create_failed(self):
|
||||||
neutronclient.Client.create_ikepolicy(
|
neutronclient.Client.create_ikepolicy(
|
||||||
self.IKE_POLICY_CONF).AndRaise(
|
self.IKE_POLICY_CONF).AndRaise(
|
||||||
vpnservice.NeutronClientException())
|
exceptions.NeutronClientException())
|
||||||
self.m.ReplayAll()
|
self.m.ReplayAll()
|
||||||
snippet = template_format.parse(ikepolicy_template)
|
snippet = template_format.parse(ikepolicy_template)
|
||||||
self.stack = utils.parse_stack(snippet)
|
self.stack = utils.parse_stack(snippet)
|
||||||
@ -524,7 +525,7 @@ class IKEPolicyTest(HeatTestCase):
|
|||||||
def test_delete(self):
|
def test_delete(self):
|
||||||
neutronclient.Client.delete_ikepolicy('ike123')
|
neutronclient.Client.delete_ikepolicy('ike123')
|
||||||
neutronclient.Client.show_ikepolicy('ike123').AndRaise(
|
neutronclient.Client.show_ikepolicy('ike123').AndRaise(
|
||||||
vpnservice.NeutronClientException(status_code=404))
|
exceptions.NeutronClientException(status_code=404))
|
||||||
rsrc = self.create_ikepolicy()
|
rsrc = self.create_ikepolicy()
|
||||||
self.m.ReplayAll()
|
self.m.ReplayAll()
|
||||||
scheduler.TaskRunner(rsrc.create)()
|
scheduler.TaskRunner(rsrc.create)()
|
||||||
@ -534,7 +535,7 @@ class IKEPolicyTest(HeatTestCase):
|
|||||||
|
|
||||||
def test_delete_already_gone(self):
|
def test_delete_already_gone(self):
|
||||||
neutronclient.Client.delete_ikepolicy('ike123').AndRaise(
|
neutronclient.Client.delete_ikepolicy('ike123').AndRaise(
|
||||||
vpnservice.NeutronClientException(status_code=404))
|
exceptions.NeutronClientException(status_code=404))
|
||||||
rsrc = self.create_ikepolicy()
|
rsrc = self.create_ikepolicy()
|
||||||
self.m.ReplayAll()
|
self.m.ReplayAll()
|
||||||
scheduler.TaskRunner(rsrc.create)()
|
scheduler.TaskRunner(rsrc.create)()
|
||||||
@ -544,7 +545,7 @@ class IKEPolicyTest(HeatTestCase):
|
|||||||
|
|
||||||
def test_delete_failed(self):
|
def test_delete_failed(self):
|
||||||
neutronclient.Client.delete_ikepolicy('ike123').AndRaise(
|
neutronclient.Client.delete_ikepolicy('ike123').AndRaise(
|
||||||
vpnservice.NeutronClientException(status_code=400))
|
exceptions.NeutronClientException(status_code=400))
|
||||||
rsrc = self.create_ikepolicy()
|
rsrc = self.create_ikepolicy()
|
||||||
self.m.ReplayAll()
|
self.m.ReplayAll()
|
||||||
scheduler.TaskRunner(rsrc.create)()
|
scheduler.TaskRunner(rsrc.create)()
|
||||||
@ -645,7 +646,7 @@ class IPsecPolicyTest(HeatTestCase):
|
|||||||
def test_create_failed(self):
|
def test_create_failed(self):
|
||||||
neutronclient.Client.create_ipsecpolicy(
|
neutronclient.Client.create_ipsecpolicy(
|
||||||
self.IPSEC_POLICY_CONF).AndRaise(
|
self.IPSEC_POLICY_CONF).AndRaise(
|
||||||
vpnservice.NeutronClientException())
|
exceptions.NeutronClientException())
|
||||||
self.m.ReplayAll()
|
self.m.ReplayAll()
|
||||||
snippet = template_format.parse(ipsecpolicy_template)
|
snippet = template_format.parse(ipsecpolicy_template)
|
||||||
self.stack = utils.parse_stack(snippet)
|
self.stack = utils.parse_stack(snippet)
|
||||||
@ -665,7 +666,7 @@ class IPsecPolicyTest(HeatTestCase):
|
|||||||
def test_delete(self):
|
def test_delete(self):
|
||||||
neutronclient.Client.delete_ipsecpolicy('ips123')
|
neutronclient.Client.delete_ipsecpolicy('ips123')
|
||||||
neutronclient.Client.show_ipsecpolicy('ips123').AndRaise(
|
neutronclient.Client.show_ipsecpolicy('ips123').AndRaise(
|
||||||
vpnservice.NeutronClientException(status_code=404))
|
exceptions.NeutronClientException(status_code=404))
|
||||||
rsrc = self.create_ipsecpolicy()
|
rsrc = self.create_ipsecpolicy()
|
||||||
self.m.ReplayAll()
|
self.m.ReplayAll()
|
||||||
scheduler.TaskRunner(rsrc.create)()
|
scheduler.TaskRunner(rsrc.create)()
|
||||||
@ -675,7 +676,7 @@ class IPsecPolicyTest(HeatTestCase):
|
|||||||
|
|
||||||
def test_delete_already_gone(self):
|
def test_delete_already_gone(self):
|
||||||
neutronclient.Client.delete_ipsecpolicy('ips123').AndRaise(
|
neutronclient.Client.delete_ipsecpolicy('ips123').AndRaise(
|
||||||
vpnservice.NeutronClientException(status_code=404))
|
exceptions.NeutronClientException(status_code=404))
|
||||||
rsrc = self.create_ipsecpolicy()
|
rsrc = self.create_ipsecpolicy()
|
||||||
self.m.ReplayAll()
|
self.m.ReplayAll()
|
||||||
scheduler.TaskRunner(rsrc.create)()
|
scheduler.TaskRunner(rsrc.create)()
|
||||||
@ -685,7 +686,7 @@ class IPsecPolicyTest(HeatTestCase):
|
|||||||
|
|
||||||
def test_delete_failed(self):
|
def test_delete_failed(self):
|
||||||
neutronclient.Client.delete_ipsecpolicy('ips123').AndRaise(
|
neutronclient.Client.delete_ipsecpolicy('ips123').AndRaise(
|
||||||
vpnservice.NeutronClientException(status_code=400))
|
exceptions.NeutronClientException(status_code=400))
|
||||||
rsrc = self.create_ipsecpolicy()
|
rsrc = self.create_ipsecpolicy()
|
||||||
self.m.ReplayAll()
|
self.m.ReplayAll()
|
||||||
scheduler.TaskRunner(rsrc.create)()
|
scheduler.TaskRunner(rsrc.create)()
|
||||||
|
Loading…
Reference in New Issue
Block a user