def get_available_environments(request): envs = [] for env in env_api.environments_list(request): obj = DictToObj(id=env.id, name=env.name, status=env.status) envs.append(obj) return envs
def get_available_networks(request, include_subnets=True, filter=None, murano_networks=None): if murano_networks: env_names = [e.name for e in env_api.environments_list(request)] def get_net_env(name): for env_name in env_names: if name.startswith(env_name + '-network'): return env_name network_choices = [] tenant_id = request.user.tenant_id try: networks = neutron.network_list_for_tenant(request, tenant_id=tenant_id) except exceptions.ServiceCatalogException: LOG.warn("Neutron not found. Assuming Nova Network usage") return None # Remove external networks networks = [ network for network in networks if network.router__external is False ] if filter: networks = [ network for network in networks if re.match(filter, network.name) is not None ] for net in networks: env = None netname = None if murano_networks and len(net.subnets) == 1: env = get_net_env(net.name) if env: if murano_networks == 'exclude': continue else: netname = _("Network of '%s'") % env if include_subnets: for subnet in net.subnets: if not netname: full_name = "%(net)s: %(cidr)s" % dict(net=net.name, cidr=subnet.cidr) if subnet.name: full_name += " (%s)" % subnet.name network_choices.append(((net.id, subnet.id), netname or full_name)) else: netname = netname or net.name network_choices.append(((net.id, None), netname)) return network_choices
def get_available_networks(request, include_subnets=True, filter=None, murano_networks=None, exclude_ext_net=True): if murano_networks: env_names = [e.name for e in env_api.environments_list(request)] def get_net_env(name): for env_name in env_names: if name.startswith(env_name + '-network'): return env_name network_choices = [] tenant_id = request.user.tenant_id try: networks = neutron.network_list_for_tenant(request, tenant_id=tenant_id) except exceptions.ServiceCatalogException: LOG.warning("Neutron not found. Assuming Nova Network usage") return None # Remove external networks if exclude_ext_net: networks = [network for network in networks if network.router__external is False] if filter: networks = [network for network in networks if re.match(filter, network.name) is not None] for net in networks: env = None netname = None if murano_networks and len(net.subnets) == 1: env = get_net_env(net.name) if env: if murano_networks == 'exclude': continue else: netname = _("Network of '%s'") % env if include_subnets: for subnet in net.subnets: if not netname: full_name = ( "%(net)s: %(cidr)s %(subnet)s" % dict(net=net.name_or_id, cidr=subnet.cidr, subnet=subnet.name_or_id)) network_choices.append( ((net.id, subnet.id), netname or full_name)) else: netname = netname or net.name_or_id network_choices.append(((net.id, None), netname)) return network_choices
def get_next_quick_environment_name(request): quick_env_prefix = 'quick-env-' quick_env_re = re.compile('^' + quick_env_prefix + '([\d]+)$') def parse_number(env): match = re.match(quick_env_re, env.name) return int(match.group(1)) if match else 0 numbers = [parse_number(e) for e in env_api.environments_list(request)] new_env_number = 1 if numbers: numbers.sort() new_env_number = numbers[-1] + 1 return quick_env_prefix + str(new_env_number)
def get_data(self): environments = [] try: environments = api.environments_list(self.request) except exc.CommunicationError: exceptions.handle(self.request, 'Could not connect to Murano API \ Service, check connection details') except exc.HTTPInternalServerError: exceptions.handle(self.request, 'Murano API Service is not responding. \ Try again later') except exc.HTTPUnauthorized: exceptions.handle(self.request, ignore=True, escalate=True) return environments
def create_quick_environment(request): quick_env_prefix = 'quick-env-' quick_env_re = re.compile('^' + quick_env_prefix + '([\d]+)$') def parse_number(env): match = re.match(quick_env_re, env.name) return int(match.group(1)) if match else 0 numbers = [parse_number(e) for e in api.environments_list(request)] new_env_number = 1 if numbers: numbers.sort() new_env_number = numbers[-1] + 1 params = {'name': quick_env_prefix + str(new_env_number)} return api.environment_create(request, params)
def get_all(self, request): env_list = api.environments_list(request) stats = [] LOG.debug('Got env list: {0}'.format(env_list)) for env in env_list: env_entry = utils.Bunch(name=env.name, id=env.id) services = self.build_service_list(request, env) LOG.debug('Processing env: {0}'.format(env)) env_stats = self.get_stats_for_env(request, env.id) stats_list = [] for entry in env_stats: instance_id = entry.instance_id service = services[instance_id] stat_entry = utils.Bunch(**entry.to_dict()) stat_entry.service = service['name'] stat_entry.service_type = service['type'] stats_list.append(stat_entry) env_entry.instances = stats_list stats.append(env_entry) LOG.debug('Created statistics: {0}'.format(stats)) return stats
def test_environment_list(self, mock_api): env_api.environments_list(self.mock_request) env_api.api.muranoclient.assert_called_with(self.mock_request) env_api.api.handled_exceptions.assert_called_with(self.mock_request)