Files
python-tackerclient/tackerclient/tests/unit/osc/v1/vnflcm_fakes.py
Shubham Potale eae2c896cd OSC support to instantiate and show vnf
Added new commands ``openstack vnflcm instantiate`` and
``openstack vnflcm show``.

Blueprint: support-etsi-nfv-specs
Change-Id: I528e20be6ec01c61b5ca6d646972a9ae22f1c158
2020-03-31 12:01:28 +00:00

118 lines
4.5 KiB
Python

# Copyright (C) 2020 NTT DATA
# All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
from oslo_utils.fixture import uuidsentinel
def vnf_instance_response(attrs=None, instantiation_state='NOT_INSTANTIATED'):
"""Create a fake vnf instance.
:param Dictionary attrs:
A dictionary with all attributes
:return:
A vnf instance dict
"""
attrs = attrs or {}
# Set default attributes.
dummy_vnf_instance = {
"id": uuidsentinel.vnf_instance_id,
"vnfInstanceName": "Fake-VNF-Instance",
"vnfInstanceDescription": "Fake VNF",
"vnfdId": uuidsentinel.vnf_package_vnfd_id,
"vnfProvider": "NTT NS lab",
"vnfProductName": "Sample VNF",
"vnfSoftwareVersion": "1.0",
"vnfdVersion": "1.0",
"_links": "vnflcm/v1/vnf_instances/" + uuidsentinel.vnf_instance_id +
"/instantiate",
"instantiationState": instantiation_state}
if instantiation_state == 'INSTANTIATED':
dummy_vnf_instance.update({
"vimConnectionInfo": [{
'id': uuidsentinel.uuid,
'vimId': uuidsentinel.vimId,
'vimType': 'openstack',
'interfaceInfo': {'k': 'v'},
'accessInfo': {'k': 'v'},
'extra': {'k': 'v'}
}],
"instantiatedVnfInfo": {
"flavourId": uuidsentinel.flavourId,
"vnfState": "STARTED",
"extCpInfo": [{
'id': uuidsentinel.extCpInfo_uuid,
'cpdId': uuidsentinel.cpdId_uuid,
'cpProtocolInfo': [{
'layerProtocol': 'IP_OVER_ETHERNET',
'ipOverEthernet': '{}'
}],
'extLinkPortId': uuidsentinel.extLinkPortId_uuid,
'metadata': {'k': 'v'},
'associatedVnfcCpId': uuidsentinel.associatedVnfcCpId_uuid
}],
"extVirtualLinkInfo": [{
'id': uuidsentinel.extVirtualLinkInfo_uuid,
'resourceHandle': {},
'extLinkPorts': []
}],
"extManagedVirtualLinkInfo": [{
"id": uuidsentinel.extManagedVirtualLinkInfo_uuid,
'vnfVirtualLinkDescId': {},
'networkResource': {},
'vnfLinkPorts': []
}],
"vnfcResourceInfo": [{
'id': uuidsentinel.vnfcResourceInfo_uuid,
'vduId': uuidsentinel.vduId_uuid,
'computeResource': {},
'storageResourceIds': [],
'reservationId': uuidsentinel.reservationId,
}],
"vnfVirtualLinkResourceInfo": [{
'id': uuidsentinel.vnfVirtualLinkResourceInfo,
'vnfVirtualLinkDescId': 'VL4',
'networkResource': {},
'reservationId': uuidsentinel.reservationId,
'vnfLinkPorts': [],
'metadata': {'k': 'v'}
}],
"virtualStorageResourceInfo": [{
'id': uuidsentinel.virtualStorageResourceInfo,
'virtualStorageDescId': uuidsentinel.virtualStorageDescId,
'storageResource': {},
'reservationId': uuidsentinel.reservationId,
'metadata': {'k': 'v'}
}]
},
"_links": {
'self': 'self_link',
'indicators': None,
'instantiate': 'instantiate_link'
}
})
return dummy_vnf_instance
def get_vnflcm_data(vnf_instance):
"""Get the vnf instance data.
:return:
A tuple object sorted based on the name of the columns.
"""
# return the list of data as per column order
return tuple([vnf_instance[key] for key in sorted(vnf_instance.keys())])