Esempio n. 1
0
 def index(self, req, server_id):
     context = req.environ["nova.context"]
     instance = common.get_instance(self._compute_api, context, server_id)
     context.can(ips_policies.POLICY_ROOT % 'index',
                 target={'project_id': instance.project_id})
     networks = common.get_networks_for_instance(context, instance)
     return self._view_builder.index(networks)
 def _get_instance_ips(context, instance):
     ret = []
     for network in common.get_networks_for_instance(
             context, instance).values():
         all_ips = itertools.chain(network["ips"], network["floating_ips"])
         ret += [ip["address"] for ip in all_ips]
     return ret
Esempio n. 3
0
 def _get_instance_ips(context, instance):
     ret = []
     for network in common.get_networks_for_instance(context,
                                                     instance).values():
         all_ips = itertools.chain(network["ips"], network["floating_ips"])
         ret += [ip["address"] for ip in all_ips]
     return ret
Esempio n. 4
0
    def _build_detail(self, inst):
        """Returns a detailed model of a server."""
        vm_state = inst.get('vm_state', vm_states.BUILDING)
        task_state = inst.get('task_state')

        inst_dict = {
            'id': inst['id'],
            'name': inst['display_name'],
            'user_id': inst.get('user_id', ''),
            'tenant_id': inst.get('project_id', ''),
            'status': common.status_from_state(vm_state, task_state)}

        # Return the metadata as a dictionary
        metadata = {}
        for item in inst.get('metadata', []):
            metadata[item['key']] = str(item['value'])
        inst_dict['metadata'] = metadata

        inst_dict['hostId'] = ''
        if inst.get('host'):
            inst_dict['hostId'] = hashlib.sha224(inst['host']).hexdigest()

        self._build_image(inst_dict, inst)
        self._build_flavor(inst_dict, inst)
        networks = common.get_networks_for_instance(self.context, inst)
        self._build_addresses(inst_dict, networks)

        return dict(server=inst_dict)
 def _get_addresses(self, request, instance, extend_address=False):
     # Hide server addresses while the server is building.
     if instance.vm_state == vm_states.BUILDING:
         return {}
     context = request.environ["nova.context"]
     networks = common.get_networks_for_instance(context, instance)
     return self._address_builder.index(networks,
                                        extend_address)["addresses"]
Esempio n. 6
0
 def _get_addresses(self, request, instance, extend_address=False):
     # Hide server addresses while the server is building.
     if instance.vm_state == vm_states.BUILDING:
         return {}
     context = request.environ["nova.context"]
     networks = common.get_networks_for_instance(context, instance)
     return self._address_builder.index(networks,
                                        extend_address)["addresses"]
Esempio n. 7
0
 def index(self, req, server_id):
     context = req.environ["nova.context"]
     instance = common.get_instance(self._compute_api,
                                    context,
                                    server_id,
                                    want_objects=True)
     networks = common.get_networks_for_instance(context, instance)
     return self._view_builder.index(networks)
Esempio n. 8
0
    def show(self, req, server_id, id):
        context = req.environ["nova.context"]
        instance = common.get_instance(self._compute_api, context, server_id)
        networks = common.get_networks_for_instance(context, instance)
        if id not in networks:
            msg = _("Instance is not a member of specified network")
            raise exc.HTTPNotFound(explanation=msg)

        return self._view_builder.show(networks[id], id)
Esempio n. 9
0
File: ips.py Progetto: B-Rich/nova-1
    def show(self, req, server_id, id):
        context = req.environ["nova.context"]
        instance = self._get_instance(context, server_id)
        networks = common.get_networks_for_instance(context, instance)
        if id not in networks:
            msg = _("Instance is not a member of specified network")
            raise exc.HTTPNotFound(explanation=msg)

        return self._view_builder.show(networks[id], id)
Esempio n. 10
0
    def test_get_networks_for_instance_handles_instance_not_found(self):

        def raise_not_found(*args, **kwargs):
            raise exception.InstanceNotFound(instance_id='abcd')

        self.stubs.Set(network.API, 'get_instance_nw_info', raise_not_found)

        networks = common.get_networks_for_instance(context={}, instance={})
        self.assertEqual(networks, {})
Esempio n. 11
0
    def show(self, req, server_id, id):
        context = req.environ["nova.context"]
        context.can(ips_policies.POLICY_ROOT % 'show')
        instance = common.get_instance(self._compute_api, context, server_id)
        networks = common.get_networks_for_instance(context, instance)
        if id not in networks:
            msg = _("Instance is not a member of specified network")
            raise exc.HTTPNotFound(explanation=msg)

        return self._view_builder.show(networks[id], id)
Esempio n. 12
0
    def show(self, req, server_id, id):
        context = req.environ["nova.context"]
        instance = common.get_instance(self._compute_api, context, server_id)
        context.can(ips_policies.POLICY_ROOT % 'show',
                    target={'project_id': instance.project_id})
        networks = common.get_networks_for_instance(context, instance)
        if id not in networks:
            msg = _("Instance is not a member of specified network")
            raise exc.HTTPNotFound(explanation=msg)

        return self._view_builder.show(networks[id], id)
Esempio n. 13
0
File: ips.py Progetto: blamarvt/nova
    def show(self, req, server_id, id):
        context = req.environ['nova.context']
        instance = self._get_instance(context, server_id)
        networks = common.get_networks_for_instance(context, instance)
        network = self._get_view_builder(req).build_network(networks, id)

        if network is None:
            msg = _("Instance is not a member of specified network")
            raise exc.HTTPNotFound(explanation=msg)

        return network
Esempio n. 14
0
 def _extend_server(self, context, server, instance):
     key = "%s:mac_addr" % Extended_ips_mac.alias
     networks = common.get_networks_for_instance(context, instance)
     for label, network in networks.items():
         # NOTE(vish): ips are hidden in some states via the
         #             hide_server_addresses extension.
         if label in server['addresses']:
             all_ips = itertools.chain(network["ips"],
                                       network["floating_ips"])
             for i, ip in enumerate(all_ips):
                 server['addresses'][label][i][key] = ip['mac_address']
Esempio n. 15
0
File: ips.py Progetto: Oneiroi/nova
    def show(self, req, server_id, id):
        context = req.environ['nova.context']
        instance = self._get_instance(context, server_id)
        networks = common.get_networks_for_instance(context, instance)
        builder = self._get_view_builder(req)
        if id == 'private':
            view = builder.build_private_parts(networks)
        elif id == 'public':
            view = builder.build_public_parts(networks)
        else:
            msg = _("Only private and public networks available")
            raise exc.HTTPNotFound(explanation=msg)

        return {id: view}
Esempio n. 16
0
    def _build_detail(self, inst):
        """Returns a detailed model of a server."""
        vm_state = inst.get('vm_state', vm_states.BUILDING)
        task_state = inst.get('task_state')

        inst_dict = {
            'id': inst['uuid'],
            'name': inst['display_name'],
            'user_id': inst.get('user_id', ''),
            'tenant_id': inst.get('project_id', ''),
            'status': common.status_from_state(vm_state, task_state)}

        # Return the metadata as a dictionary
        metadata = {}
        for item in inst.get('metadata', []):
            metadata[item['key']] = str(item['value'])
        inst_dict['metadata'] = metadata

        inst_dict['hostId'] = ''
        if inst.get('host'):
            inst_dict['hostId'] = hashlib.sha224(inst['host']).hexdigest()

        self._build_image(inst_dict, inst)
        self._build_flavor(inst_dict, inst)
        networks = common.get_networks_for_instance(self.context, inst)
        self._build_addresses(inst_dict, networks)

        inst_dict['created'] = utils.isotime(inst['created_at'])
        inst_dict['updated'] = utils.isotime(inst['updated_at'])

        status = inst_dict.get('status')
        if status in ('ACTIVE', 'BUILD', 'REBUILD', 'RESIZE',
                      'VERIFY_RESIZE'):
            inst_dict['progress'] = inst['progress'] or 0

        inst_dict['accessIPv4'] = inst.get('access_ip_v4') or ""
        inst_dict['accessIPv6'] = inst.get('access_ip_v6') or ""
        inst_dict['key_name'] = inst.get('key_name', '')
        inst_dict['config_drive'] = inst.get('config_drive')

        return dict(server=inst_dict)
Esempio n. 17
0
    def _build_detail(self, inst):
        """Returns a detailed model of a server."""
        vm_state = inst.get("vm_state", vm_states.BUILDING)
        task_state = inst.get("task_state")

        inst_dict = {
            "id": inst["id"],
            "name": inst["display_name"],
            "user_id": inst.get("user_id", ""),
            "tenant_id": inst.get("project_id", ""),
            "status": common.status_from_state(vm_state, task_state),
        }

        # Return the metadata as a dictionary
        metadata = {}
        for item in inst.get("metadata", []):
            metadata[item["key"]] = str(item["value"])
        inst_dict["metadata"] = metadata

        inst_dict["hostId"] = ""
        if inst.get("host"):
            inst_dict["hostId"] = hashlib.sha224(inst["host"]).hexdigest()

        self._build_image(inst_dict, inst)
        self._build_flavor(inst_dict, inst)
        networks = common.get_networks_for_instance(self.context, inst)
        self._build_addresses(inst_dict, networks)

        inst_dict["created"] = utils.isotime(inst["created_at"])
        inst_dict["updated"] = utils.isotime(inst["updated_at"])

        status = inst_dict.get("status")
        if status in ("ACTIVE", "BUILD", "REBUILD", "RESIZE", "VERIFY_RESIZE"):
            inst_dict["progress"] = inst["progress"] or 0

        inst_dict["accessIPv4"] = inst.get("access_ip_v4") or ""
        inst_dict["accessIPv6"] = inst.get("access_ip_v6") or ""
        inst_dict["key_name"] = inst.get("key_name", "")
        inst_dict["config_drive"] = inst.get("config_drive")

        return dict(server=inst_dict)
Esempio n. 18
0
 def _get_addresses(self, request, instance, extend_address=False):
     context = request.environ["nova.context"]
     networks = common.get_networks_for_instance(context, instance)
     return self._address_builder.index(networks,
                                        extend_address)["addresses"]
Esempio n. 19
0
File: ips.py Progetto: B-Rich/nova-1
 def index(self, req, server_id):
     context = req.environ["nova.context"]
     instance = self._get_instance(context, server_id)
     networks = common.get_networks_for_instance(context, instance)
     return self._view_builder.index(networks)
Esempio n. 20
0
 def _get_addresses(self, request, instance):
     context = request.environ["nova.context"]
     networks = common.get_networks_for_instance(context, instance)
     return self._address_builder.index(networks)["addresses"]
Esempio n. 21
0
 def index(self, req, server_id):
     context = req.environ["nova.context"]
     context.can(ips_policies.POLICY_ROOT % 'index')
     instance = common.get_instance(self._compute_api, context, server_id)
     networks = common.get_networks_for_instance(context, instance)
     return self._view_builder.index(networks)
Esempio n. 22
0
File: ips.py Progetto: blamarvt/nova
 def index(self, req, server_id):
     context = req.environ['nova.context']
     instance = self._get_instance(context, server_id)
     networks = common.get_networks_for_instance(context, instance)
     return {'addresses': self._get_view_builder(req).build(networks)}
Esempio n. 23
0
 def index(self, req, server_id):
     context = req.environ["nova.context"]
     authorize(context, action='index')
     instance = common.get_instance(self._compute_api, context, server_id)
     networks = common.get_networks_for_instance(context, instance)
     return self._view_builder.index(networks)
Esempio n. 24
0
 def index(self, req, server_id):
     context = req.environ["nova.context"]
     instance = self._get_instance(context, server_id)
     networks = common.get_networks_for_instance(context, instance)
     return self._view_builder.index(networks)