示例#1
0
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
示例#2
0
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
示例#3
0
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
示例#4
0
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
示例#5
0
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)
示例#6
0
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)
示例#7
0
    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
示例#8
0
文件: views.py 项目: mssumanth/Temp
    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
示例#9
0
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)
示例#10
0
    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
示例#11
0
 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)
示例#12
0
 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)