146 lines
5.7 KiB
Python
146 lines
5.7 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.
|
|
|
|
from oslo_utils import uuidutils
|
|
|
|
|
|
def vnf_package_obj(attrs=None, onboarded_state=False):
|
|
"""Create a fake vnf package.
|
|
|
|
:param Dictionary attrs:
|
|
A dictionary with all attributes
|
|
:return:
|
|
A FakeVnfPackage dict
|
|
"""
|
|
attrs = attrs or {}
|
|
|
|
# Set default attributes.
|
|
fake_vnf_package = {"id": "60a6ac16-b50d-4e92-964b-b3cf98c7cf5c",
|
|
"_links": {"self": {"href": "string"},
|
|
"packageContent": {"href": "string"}
|
|
},
|
|
"onboardingState": "CREATED",
|
|
"operationalState": "DISABLED",
|
|
"usageState": "NOT_IN_USE",
|
|
"userDefinedData": None}
|
|
|
|
if onboarded_state:
|
|
fake_vnf_package = {"id": "60a6ac16-b50d-4e92-964b-b3cf98c7cf5c",
|
|
"vnfdId": "string",
|
|
"vnfProvider": "string",
|
|
"vnfProductName": "string",
|
|
"vnfSoftwareVersion": "string",
|
|
"vnfdVersion": "string",
|
|
"softwareImages": [
|
|
{
|
|
"id": "string",
|
|
"name": "string",
|
|
"provider": "string",
|
|
"version": "string",
|
|
"checksum": {
|
|
"algorithm": "string",
|
|
"hash": "string"
|
|
},
|
|
"containerFormat": "AKI",
|
|
"diskFormat": "AKI",
|
|
"createdAt": "2015-06-03T18:49:19.000000",
|
|
"minDisk": '0',
|
|
"minRam": '0',
|
|
"size": '0',
|
|
"userMetadata": {},
|
|
"imagePath": "string"
|
|
}
|
|
],
|
|
"checksum": {
|
|
"algorithm": "string",
|
|
"hash": "string"
|
|
},
|
|
"onboardingState": "ONBOARDED",
|
|
"operationalState": "ENABLED",
|
|
"usageState": "IN_USE",
|
|
"userDefinedData": None,
|
|
"_links": {
|
|
"self": {
|
|
"href": "string"
|
|
},
|
|
"vnfd": {
|
|
"href": "string"
|
|
},
|
|
"packageContent": {
|
|
"href": "string"
|
|
}
|
|
}}
|
|
|
|
# Overwrite default attributes.
|
|
fake_vnf_package.update(attrs)
|
|
return fake_vnf_package
|
|
|
|
|
|
def get_vnf_package_data(vnf_package, **kwargs):
|
|
"""Get the vnf package data from a FakeVnfPackage dict object.
|
|
|
|
:param vnf_package:
|
|
A FakeVnfPackage dict object
|
|
:return:
|
|
A list which may include the following values:
|
|
[{'packageContent': {'href': 'string'}, 'self': {'href': 'string'},
|
|
'vnfd': {'href': 'string'}}, '60a6ac16-b50d-4e92-964b-b3cf98c7cf5c',
|
|
'CREATED', 'DISABLED', 'NOT_IN_USE', {'Test_key': 'Test_value'}]
|
|
"""
|
|
|
|
if kwargs.get('list_action'):
|
|
# In case of List VNF packages we get empty string as data for
|
|
# 'vnfProductName' if onboardingState is CREATED. Hence to match
|
|
# up with actual data we are adding here empty string.
|
|
if not vnf_package.get('vnfProductName'):
|
|
vnf_package['vnfProductName'] = ''
|
|
|
|
# return the list of data as per column order
|
|
if kwargs.get('columns'):
|
|
return tuple([vnf_package[key] for key in kwargs.get('columns')])
|
|
|
|
return tuple([vnf_package[key] for key in sorted(vnf_package.keys())])
|
|
|
|
|
|
def create_vnf_packages(count=2, onboarded_vnf_package=False):
|
|
"""Create multiple fake vnf packages.
|
|
|
|
:param Dictionary attrs:
|
|
A dictionary with all attributes
|
|
:param int count:
|
|
The number of vnf_packages to fake
|
|
:return:
|
|
A list of fake vnf packages dictionary
|
|
"""
|
|
vnf_packages = []
|
|
for i in range(0, count):
|
|
unique_id = uuidutils.generate_uuid()
|
|
vnf_packages.append(vnf_package_obj(
|
|
attrs={'id': unique_id}, onboarded_state=onboarded_vnf_package))
|
|
return {'vnf_packages': vnf_packages}
|
|
|
|
|
|
def get_fake_update_vnf_package_obj(arglist):
|
|
fake_update_vnf_package_dict = {}
|
|
if '--user-data' in arglist:
|
|
fake_update_vnf_package_dict.update(
|
|
{"userDefinedData": {'Test_key': 'Test_value'}})
|
|
if '--operational-state' in arglist:
|
|
fake_update_vnf_package_dict.update({
|
|
"operationalState": "DISABLED",
|
|
})
|
|
|
|
return fake_update_vnf_package_dict
|