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
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
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"]
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)
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)
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)
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, {})
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)
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)
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
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']
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}
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)
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)
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"]
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)
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"]
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)
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)}
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)