def network_exists_optionally_contains_subnet(network_id, subnet_id=None): """Raises an exception when a network does not exist. If a subnet is provided, also validate the network contains that subnet. """ network_driver = utils.get_network_driver() try: network = network_driver.get_network(network_id) except Exception: raise exceptions.InvalidSubresource(resource='Network', id=network_id) if subnet_id: if not network.subnets or subnet_id not in network.subnets: raise exceptions.InvalidSubresource(resource='Subnet', id=subnet_id) return network
def qos_policy_exists(qos_policy_id): network_driver = utils.get_network_driver() try: qos_policy = network_driver.get_qos_policy(qos_policy_id) except Exception: raise exceptions.InvalidSubresource(resource='qos_policy', id=qos_policy_id) return qos_policy
def subnet_exists(subnet_id): """Raises an exception when a subnet does not exist.""" network_driver = utils.get_network_driver() try: subnet = network_driver.get_subnet(subnet_id) except Exception: raise exceptions.InvalidSubresource(resource='Subnet', id=subnet_id) return subnet
def port_exists(port_id): """Raises an exception when a port does not exist.""" network_driver = utils.get_network_driver() try: port = network_driver.get_port(port_id) except Exception: raise exceptions.InvalidSubresource(resource='Port', id=port_id) return port
def qos_policy_exists(qos_policy_id): network_driver = utils.get_network_driver() qos_extension_enabled(network_driver) try: qos_policy = network_driver.get_qos_policy(qos_policy_id) except Exception as e: raise exceptions.InvalidSubresource(resource='qos_policy', id=qos_policy_id) from e return qos_policy
def validate_flavor(self, flavor_id): """Validates that a flavor exists in nova. :param flavor_id: ID of the flavor to lookup in nova. :raises: NotFound :returns: None """ try: self.flavor_manager.get(flavor_id) except nova_exceptions.NotFound: LOG.info('Flavor %s was not found in nova.', flavor_id) raise exceptions.InvalidSubresource(resource='Nova flavor', id=flavor_id) except Exception as e: LOG.exception('Nova reports a failure getting flavor details for ' 'flavor ID %s: %s', flavor_id, e) raise
def validate_availability_zone(self, availability_zone): """Validates that an availability zone exists in nova. :param availability_zone: Name of the availability zone to lookup. :raises: NotFound :returns: None """ try: compute_zones = [ a.zoneName for a in self.availability_zone_manager.list( detailed=False)] if availability_zone not in compute_zones: LOG.info('Availability zone %s was not found in nova. %s', availability_zone, compute_zones) raise exceptions.InvalidSubresource( resource='Nova availability zone', id=availability_zone) except Exception as e: LOG.exception('Nova reports a failure getting listing ' 'availability zones: %s', e) raise