def _get_network_resource(vl_node): resource_handle = objects.ResourceHandle() found = False for ext_mg_vl in instantiate_vnf_req.ext_managed_virtual_links: if ext_mg_vl.vnf_virtual_link_desc_id == vl_node: resource_handle.resource_id = ext_mg_vl.resource_id resource_handle.vim_connection_id = \ ext_mg_vl.vim_connection_id # TODO(tpatil): This cannot be set here. resource_handle.vim_level_resource_type = \ 'OS::Neutron::Net' found = True break if not found: # check if it exists in the ext_virtual_links for ext_virt_link in instantiate_vnf_req.ext_virtual_links: if ext_virt_link.id == vl_node: resource_handle.resource_id = ext_virt_link.resource_id resource_handle.vim_connection_id = \ ext_virt_link.vim_connection_id # TODO(tpatil): This cannot be set here. resource_handle.vim_level_resource_type = \ 'OS::Neutron::Net' found = True break return resource_handle
def _network_resource(ext_managed_vl): resource_handle = objects.ResourceHandle( resource_id=ext_managed_vl.resource_id) # TODO(tpatil): Remove hard coding of resource type as # OS::Neutron::Net resource type is specific to OpenStack infra # driver. It could be different for other infra drivers like # Kubernetes. resource_handle.vim_level_resource_type = 'OS::Neutron::Net' return resource_handle
def _build_virtual_storage_info(virtual_storages): for storage_node in virtual_storages: virtual_storage = objects.VirtualStorageResourceInfo() virtual_storage.id = uuidutils.generate_uuid() virtual_storage.virtual_storage_desc_id = storage_node virtual_storage.storage_resource = objects.ResourceHandle() yield virtual_storage
def _get_ext_virtual_link_port(ext_v_l_port_id, cp_instance_id, set_resource_id=False): if set_resource_id: resource_id = uuidsentinel.ext_virtual_link_port_resource_id else: resource_id = "" resource_handle = objects.ResourceHandle( resource_id=resource_id, vim_level_resource_type="OS::Neutron::Port") ext_v_l_port = objects.VnfLinkPortInfo(id=ext_v_l_port_id, cp_instance_id=cp_instance_id, resource_handle=resource_handle) return ext_v_l_port
def get_virtual_storage_resource_info(desc_id="VirtualStorage", set_resource_id=True): if set_resource_id: resource_id = uuidsentinel.storage_resource_id else: resource_id = "" resource_handle = objects.ResourceHandle( resource_id=resource_id, vim_level_resource_type="OS::Cinder::Volume") storage_resource_info = objects.VirtualStorageResourceInfo( id=uuidsentinel.storage_id, virtual_storage_desc_id=desc_id, storage_resource=resource_handle) return storage_resource_info
def _set_ext_virtual_link_info(instantiate_vnf_req, ext_cp_info): ext_virtual_link_list = [] if not instantiate_vnf_req.ext_virtual_links: return ext_virtual_link_list for ext_virtual_link in instantiate_vnf_req.ext_virtual_links: res_handle = objects.ResourceHandle() res_handle.resource_id = ext_virtual_link.resource_id ext_virtual_link_info = objects.ExtVirtualLinkInfo( id=ext_virtual_link.id, resource_handle=res_handle, ext_link_ports=_set_ext_link_port(ext_virtual_link, ext_cp_info)) ext_virtual_link_list.append(ext_virtual_link_info) return ext_virtual_link_list
def get_ext_managed_virtual_link_resource_info(virtual_link_port_id, cp_instance_id, desc_id="externalVL1", set_resource_id=True): network_resource = objects.ResourceHandle( resource_id=uuidsentinel.ext_managed_virtual_link_resource_id) ext_v_l_link_port = _get_ext_virtual_link_port( virtual_link_port_id, cp_instance_id=cp_instance_id, set_resource_id=set_resource_id) ext_managed_v_l_resource_info = objects.ExtManagedVirtualLinkInfo( id=uuidsentinel.v_l_resource_info_id, vnf_virtual_link_desc_id=desc_id, network_resource=network_resource, vnf_link_ports=[ext_v_l_link_port]) return ext_managed_v_l_resource_info
def _build_vnfc_resource_info(vdu, vdu_resource): vnfc_resource_info = objects.VnfcResourceInfo() vnfc_resource_info.id = uuidutils.generate_uuid() vnfc_resource_info.vdu_id = vdu vnfc_resource_info.compute_resource = objects.ResourceHandle() vnfc_cp_info_list = _build_vnf_cp_info(instantiate_vnf_req, vdu_resource.get("CP")) vnfc_resource_info.vnfc_cp_info = vnfc_cp_info_list virtual_storages = vdu_resource.get("VIRTUAL_STORAGE") vdu_storages = [] for storage in _build_virtual_storage_info(virtual_storages): vdu_storages.append(storage) virtual_storage_resource_info_list.append(storage) storage_resource_ids = [info.id for info in vdu_storages] vnfc_resource_info.storage_resource_ids = storage_resource_ids return vnfc_resource_info
def _get_vnf_link_port_info(cp): vnf_link_port_info = objects.VnfLinkPortInfo() vnf_link_port_info.id = uuidutils.generate_uuid() resource_handle = objects.ResourceHandle() for ext_virt_link in instantiate_vnf_req.ext_virtual_links: for extcp in ext_virt_link.ext_cps: if extcp.cpd_id == cp: for cpconfig in extcp.cp_config: if cpconfig.link_port_id: resource_handle.resource_id = \ cpconfig.link_port_id # TODO(tpatil): This shouldn't be set here. resource_handle.vim_level_resource_type = \ 'OS::Neutron::Port' break vnf_link_port_info.resource_handle = resource_handle return vnf_link_port_info
def get_virtual_link_resource_info(virtual_link_port_id, cp_instance_id, desc_id="internalVL1", set_resource_id=True): network_resource = objects.ResourceHandle( resource_id=uuidsentinel.virtual_link_resource_id, vim_level_resource_type="OS::Neutron::Network") v_l_link_port = _get_virtual_link_port(virtual_link_port_id, cp_instance_id=cp_instance_id, set_resource_id=set_resource_id) v_l_resource_info = objects.VnfVirtualLinkResourceInfo( id=uuidsentinel.v_l_resource_info_id, vnf_virtual_link_desc_id=desc_id, network_resource=network_resource, vnf_link_ports=[v_l_link_port]) return v_l_resource_info
def get_vnfc_resource_info(vdu_id="VDU1", storage_resource_ids=None, set_resource_id=True): storage_resource_ids = storage_resource_ids or [] if set_resource_id: resource_id = uuidsentinel.vdu_resource_id else: resource_id = "" resource_handle = objects.ResourceHandle( resource_id=resource_id, vim_level_resource_type="OS::Nova::Server") vnfc_cp_info = _get_vnfc_cp_info(uuidsentinel.virtual_link_port_id) vnfc_resource_info = objects.VnfcResourceInfo( id=uuidsentinel.vnfc_resource_id, vdu_id=vdu_id, compute_resource=resource_handle, vnfc_cp_info=[vnfc_cp_info], storage_resource_ids=storage_resource_ids) return vnfc_resource_info