tacker/tacker/tests/unit/objects/fakes.py

360 lines
12 KiB
Python

# Copyright (C) 2019 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.
import copy
import datetime
import iso8601
from tacker.db.db_sqlalchemy import models
from tacker.tests import constants
from tacker.tests import uuidsentinel
vnf_package_data = {'algorithm': None, 'hash': None,
'location_glance_store': None,
'onboarding_state': 'CREATED',
'operational_state': 'DISABLED',
'tenant_id': uuidsentinel.tenant_id,
'usage_state': 'NOT_IN_USE',
'user_data': {'abc': 'xyz'},
'created_at': datetime.datetime(
2019, 8, 8, 0, 0, 0, tzinfo=iso8601.UTC),
'deleted': False,
'size': 0
}
software_image = {
'software_image_id': uuidsentinel.software_image_id,
'name': 'test', 'provider': 'test', 'version': 'test',
'algorithm': 'sha-256',
'hash': 'b9c3036539fd7a5f87a1bf38eb05fdde8b556a1'
'a7e664dbeda90ed3cd74b4f9d',
'container_format': 'test', 'disk_format': 'qcow2', 'min_disk': 1,
'min_ram': 2, 'size': 1, 'image_path': 'test',
'metadata': {'key1': 'value1'}
}
artifacts = {
'json_data': 'test data',
'type': 'tosca.artifacts.nfv.SwImage',
'algorithm': 'sha512', 'hash': uuidsentinel.hash}
fake_vnf_package_response = copy.deepcopy(vnf_package_data)
fake_vnf_package_response.pop('user_data')
fake_vnf_package_response.update({'id': uuidsentinel.package_uuid})
vnf_deployment_flavour = {'flavour_id': 'simple',
'flavour_description': 'simple flavour description',
'instantiation_levels': {
'levels': {
'instantiation_level_1': {
'description': 'Smallest size',
'scale_info': {
'worker_instance': {
'scale_level': 0
}
}
},
'instantiation_level_2': {
'description': 'Largest size',
'scale_info': {
'worker_instance': {
'scale_level': 2
}
}
}
},
'default_level': 'instantiation_level_1'
},
'created_at': datetime.datetime(
2019, 8, 8, 0, 0, 0, tzinfo=iso8601.UTC),
}
vnf_artifacts = {
'artifact_path': 'scripts/install.sh',
'_metadata': {},
'algorithm': 'sha-256',
'hash': 'd0e7828293355a07c2dccaaa765c80b507e60e6167067c950dc2e6b0da0dbd8b',
'created_at': datetime.datetime(2020, 6, 29, 0, 0, 0, tzinfo=iso8601.UTC),
}
def get_vnf_package_vnfd_data(vnf_package_id, vnfd_id):
return {
'package_uuid': vnf_package_id,
'vnfd_id': vnfd_id,
'vnf_provider': 'test vnf provider',
'vnf_product_name': 'Sample VNF',
'vnf_software_version': '1.0',
'vnfd_version': '1.0',
}
def get_vnf_instance_data(vnfd_id):
return {
"vnf_software_version": "1.0",
"vnf_product_name": "Sample VNF",
"vnf_instance_name": 'Sample VNF Instance',
"vnf_instance_description": 'Sample vnf_instance_description',
"instantiation_state": "NOT_INSTANTIATED",
"vnf_provider": "test vnf provider",
"vnfd_id": vnfd_id,
"vnfd_version": "1.0",
"tenant_id": uuidsentinel.tenant_id,
"vnf_pkg_id": uuidsentinel.vnf_pkg_id,
"vnf_metadata": {"key": "value"}
}
def get_vnf_instance_data_with_id(vnfd_id):
return {
"id": uuidsentinel.tenant_id,
"vnf_software_version": "1.0",
"vnf_product_name": "Sample VNF",
"vnf_instance_name": 'Sample VNF Instance',
"vnf_instance_description": 'Sample vnf_instance_description',
"instantiation_state": "NOT_INSTANTIATED",
"vnf_provider": "test vnf provider",
"vnfd_id": vnfd_id,
"vnfd_version": "1.0",
"tenant_id": uuidsentinel.tenant_id,
"vnf_pkg_id": uuidsentinel.vnf_pkg_id,
"vnf_metadata": {"key": "value"}
}
def fake_vnf_instance_model_dict(**updates):
vnf_instance = {
'deleted': False,
'deleted_at': None,
'updated_at': None,
'created_at': datetime.datetime(1900, 1, 1, 1, 1, 1,
tzinfo=iso8601.UTC),
'vnf_product_name': 'Sample VNF',
'vnf_instance_name': 'Sample VNF',
'vnf_instance_description': None,
'vnf_provider': 'test vnf provider',
'vnf_software_version': '1.0',
'vnfd_id': uuidsentinel.vnfd_id,
'vnfd_version': '1.0',
'instantiation_state': 'NOT_INSTANTIATED',
'vim_connection_info': [],
'tenant_id': '33f8dbdae36142eebf214c1869eb4e4c',
'id': constants.UUID,
'vnf_pkg_id': uuidsentinel.vnf_pkg_id,
'vnf_metadata': {'key': 'value'}
}
if updates:
vnf_instance.update(updates)
return vnf_instance
def fake_vnf_resource_data(instance_id):
return {
'vnf_instance_id': instance_id,
'resource_name': "test",
'resource_type': "image",
'resource_identifier': uuidsentinel.image_id,
'resource_status': "status"
}
def vnf_pack_vnfd_data(vnf_pack_id):
return {
'package_uuid': vnf_pack_id,
'vnfd_id': uuidsentinel.vnfd_id,
'vnf_provider': 'test_provider',
'vnf_product_name': 'test_product_name',
'vnf_software_version': 'test_version',
'vnfd_version': 'test_vnfd_version',
}
def vnf_pack_artifact_data(vnf_pack_id):
return {
'package_uuid': vnf_pack_id,
'artifact_path': 'scripts/install.sh',
'algorithm': 'sha-256',
'hash': 'd0e7828293355a07c2dccaaa765c80b507e'
'60e6167067c950dc2e6b0da0dbd8b',
'_metadata': {}
}
ip_address = [{
'type': 'IPV4',
'is_dynamic': True
}]
ip_over_ethernet_address_info = {
'mac_address': 'fake_mac',
'ip_addresses': ip_address,
}
cp_protocol_info = {
'layer_protocol': 'IP_OVER_ETHERNET',
'ip_over_ethernet': ip_over_ethernet_address_info,
}
vnf_external_cp_info = {
'id': uuidsentinel.external_cp_id,
'cpd_id': uuidsentinel.cpd_id,
'ext_link_port_id': uuidsentinel.ext_link_port_id
}
resource_handle_info = {
'resource_id': uuidsentinel.resource_id,
'vim_level_resource_type': 'TEST'
}
ext_link_port_info = {
'id': uuidsentinel.ext_link_port_id,
'resource_handle': resource_handle_info,
'cp_instance_id': uuidsentinel.cp_instance_id,
}
ext_virtual_link_info = {
'id': uuidsentinel.virtual_link_id,
'resource_handle': resource_handle_info,
'ext_link_ports': [ext_link_port_info],
}
vnf_link_ports = {
'id': uuidsentinel.vnf_link_ports_id,
'resource_handle': resource_handle_info,
'cp_instance_id': uuidsentinel.cp_instance_id
}
ext_managed_virtual_link_info = {
'id': uuidsentinel.ext_managed_virtual_link_id,
'vnf_virtual_link_desc_id': uuidsentinel.vnf_virtual_link_desc_id,
'network_resource': resource_handle_info,
'vnf_link_ports': [vnf_link_ports],
}
vnfc_resource_info = {
'id': uuidsentinel.resource_info_id,
'vdu_id': 'vdu1',
'compute_resource': None,
'storage_resource_ids': [uuidsentinel.id1, uuidsentinel.id2],
'reservation_id': uuidsentinel.reservation_id,
'vnfc_cp_info': None,
'metadata': {'key': 'value'}
}
vnfc_cp_info = {
'id': uuidsentinel.cp_instance_id,
'cpd_id': uuidsentinel.cpd_id,
'vnf_ext_cp_id': uuidsentinel.vnf_ext_cp_id,
'cp_protocol_info': [cp_protocol_info],
'vnf_link_port_id': uuidsentinel.vnf_link_port_id,
}
vnfc_resource_info = {
'id': uuidsentinel.resource_info_id,
'vdu_id': uuidsentinel.vdu_id,
'compute_resource': resource_handle_info,
'storage_resource_ids': [uuidsentinel.id1, uuidsentinel.id2],
'reservation_id': uuidsentinel.reservation_id,
'vnfc_cp_info': [vnfc_cp_info],
'metadata': {'key': 'value'}
}
ip_address_info = {
'type': 'IPV4',
'subnet_id': uuidsentinel.subnet_id,
'is_dynamic': False,
'addresses': ['10.10.1', '10.10.2'],
}
vnf_virtual_link_resource_info = {
'id': uuidsentinel.virtual_link_resource_id,
'vnf_virtual_link_desc_id': uuidsentinel.vnf_virtual_link_desc_id,
'network_resource': resource_handle_info,
'vnf_link_ports': vnf_link_ports,
}
virtual_storage_resource_info = {
'id': uuidsentinel.virtual_storage_resource_id,
'virtual_storage_desc_id': uuidsentinel.virtual_storage_desc_id,
'storage_resource': resource_handle_info,
}
vnf_ext_cp_info = {
'id': uuidsentinel.id,
'cpd_id': 'CP1',
'cp_protocol_info': [cp_protocol_info],
'associated_vnfc_cp_id': uuidsentinel.associated_vnfc_cp_id
}
def get_instantiated_vnf_info():
instantiated_vnf_info = {
'flavour_id': uuidsentinel.flavour_id,
'vnf_state': 'STARTED',
'instance_id': uuidsentinel.instance_id
}
return instantiated_vnf_info
instantiated_vnf_info = {
'ext_cp_info': [vnf_ext_cp_info],
'flavour_id': uuidsentinel.flavour_id,
'vnf_state': 'STARTED',
'vnf_instance_id': uuidsentinel.vnf_instance_id
}
def vnf_resource_model_object(vnf_resource):
resource_dict = {
'id': vnf_resource.id,
'vnf_instance_id': vnf_resource.vnf_instance_id,
'resource_name': vnf_resource.resource_name,
'resource_type': vnf_resource.resource_type,
'resource_identifier': vnf_resource.resource_identifier,
'resource_status': vnf_resource.resource_status
}
vnf_resource_db_obj = models.VnfResource()
vnf_resource_db_obj.update(resource_dict)
return vnf_resource_db_obj
def vnf_instance_model_object(vnf_instance):
instance_dict = {
'id': vnf_instance.id,
'vnf_instance_name': vnf_instance.vnf_instance_name,
'vnf_instance_description': vnf_instance.vnf_instance_description,
'instantiation_state': vnf_instance.instantiation_state,
'task_state': vnf_instance.task_state,
'vnfd_id': vnf_instance.vnfd_id,
'vnf_provider': vnf_instance.vnf_provider,
'vnf_product_name': vnf_instance.vnf_product_name,
'vnf_software_version': vnf_instance.vnf_software_version,
'vnfd_version': vnf_instance.vnfd_version,
'vim_connection_info': vnf_instance.vim_connection_info,
'tenant_id': vnf_instance.tenant_id,
'created_at': vnf_instance.created_at,
'vnf_pkg_id': vnf_instance.vnf_pkg_id,
'vnf_metadata': vnf_instance.vnf_metadata
}
vnf_instance_db_obj = models.VnfInstance()
vnf_instance_db_obj.update(instance_dict)
return vnf_instance_db_obj