예제 #1
0
파일: utils.py 프로젝트: vutuong/tacker
    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
예제 #2
0
파일: utils.py 프로젝트: shuwenCai/tacker
    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
예제 #3
0
파일: utils.py 프로젝트: shuwenCai/tacker
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
예제 #4
0
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
예제 #5
0
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
예제 #6
0
파일: utils.py 프로젝트: shuwenCai/tacker
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
예제 #7
0
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
예제 #8
0
파일: utils.py 프로젝트: shuwenCai/tacker
    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
예제 #9
0
파일: utils.py 프로젝트: shuwenCai/tacker
    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
예제 #10
0
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
예제 #11
0
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