1 # Copyright 2016-2018 ZTE Corporation.
3 # Licensed under the Apache License, Version 2.0 (the "License");
4 # you may not use this file except in compliance with the License.
5 # You may obtain a copy of the License at
7 # http://www.apache.org/licenses/LICENSE-2.0
9 # Unless required by applicable law or agreed to in writing, software
10 # distributed under the License is distributed on an "AS IS" BASIS,
11 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 # See the License for the specific language governing permissions and
13 # limitations under the License.
17 from django.test import TestCase
18 from lcm.pub.database.models import NSInstModel
19 from lcm.pub.database.models import NfInstModel
20 from lcm.pub.utils.timeutil import now_time
21 from lcm.pub.utils import fileutil
24 class TestScaleAspect(TestCase):
27 self.cur_path = os.path.dirname(os.path.abspath(__file__))
28 self.scaling_map_json = fileutil.read_json_file(self.cur_path + '/data/scalemapping.json')
29 self.vnfd_model_json = fileutil.read_json_file(self.cur_path + '/data/vnfd_model.json')
32 self.init_scale_ns_data()
34 self.vnf_scale_info_list = [
36 "vnfd_id": "nf_zte_cscf",
37 "vnf_scaleAspectId": "mpu",
41 "vnfd_id": "nf_zte_hss",
42 "vnf_scaleAspectId": "gsu",
47 def init_scale_ns_data(self):
48 self.ns_scale_aspect = "TIC_EDGE_IMS"
49 self.ns_scale_steps = "1"
50 self.ns_scale_direction = "SCALE_IN"
52 "scaleNsByStepsData": [
54 "aspectId": self.ns_scale_aspect,
55 "numberOfSteps": self.ns_scale_steps,
56 "scalingDirection": self.ns_scale_direction
61 self.ns_scale_aspect2 = "TIC_EDGE_HW"
62 self.ns_scale_steps2 = "4"
63 self.scaleNsData2 = [{
64 "scaleNsByStepsData": [
66 "aspectId": self.ns_scale_aspect2,
67 "numberOfSteps": self.ns_scale_steps2,
68 "scalingDirection": self.ns_scale_direction
73 def initInstModel(self):
77 self.ns_package_id = "ns_zte"
78 self.description = "ns_zte"
79 self.global_customer_id = "global_customer_id"
80 self.service_type = "service_role"
82 NSInstModel(id=self.ns_inst_id,
84 nspackage_id=self.ns_package_id,
86 description=self.description,
88 lastuptime=now_time(),
89 global_customer_id=self.global_customer_id,
90 service_type=self.service_type).save()
92 self.nf_inst_id = "231"
94 self.nf_name = "name_1"
96 self.vnfm_inst_id = "1"
97 self.package_id = "nf_zte_cscf"
98 self.nf_uuid = "abc34-345a-de13-ab85-ijs9"
100 NfInstModel.objects.create(
101 nfinstid=self.nf_inst_id,
102 nf_name=self.nf_name,
104 vnfm_inst_id=self.vnfm_inst_id,
105 ns_inst_id=self.ns_inst_id,
112 mnfinstid=self.nf_uuid,
113 package_id=self.package_id,
114 vnfd_model=json.dumps(self.vnfd_model_json))
116 # Create a second vnf instance
117 self.nf_inst_id = "232"
118 self.package_id = "nf_zte_hss"
119 self.nf_uuid = "abc34-3g5a-de13-ab85-ijs3"
121 NfInstModel.objects.create(
122 nfinstid=self.nf_inst_id,
123 nf_name=self.nf_name,
125 vnfm_inst_id=self.vnfm_inst_id,
126 ns_inst_id=self.ns_inst_id,
133 mnfinstid=self.nf_uuid,
134 package_id=self.package_id,
135 vnfd_model=json.dumps(self.vnfd_model_json))
137 def add_another_nf_instance(self):
138 # Create a third vnf instance
140 package_id = "nf_zte_hss"
141 nf_uuid = "ab34-3g5j-de13-ab85-ij93"
143 NfInstModel.objects.create(
145 nf_name=self.nf_name,
147 vnfm_inst_id=self.vnfm_inst_id,
148 ns_inst_id=self.ns_inst_id,
156 package_id=package_id,
157 vnfd_model=json.dumps(self.vnfd_model_json))
159 def add_new_vnf_instance(self):
160 # Create a third vnf instance
162 package_id = "nf_hw_cscf"
163 nf_uuid = "ab34-3g5j-de13-aa85-ij93"
165 NfInstModel.objects.create(
167 nf_name=self.nf_name,
169 vnfm_inst_id=self.vnfm_inst_id,
170 ns_inst_id=self.ns_inst_id,
178 package_id=package_id,
179 vnfd_model=json.dumps(self.vnfd_model_json))
181 # Create a third vnf instance
183 package_id = "nf_hw_hss"
184 nf_uuid = "ab34-3g5j-de13-aa85-id93"
186 NfInstModel.objects.create(
188 nf_name=self.nf_name,
190 vnfm_inst_id=self.vnfm_inst_id,
191 ns_inst_id=self.ns_inst_id,
199 package_id=package_id,
200 vnfd_model=json.dumps(self.vnfd_model_json))
203 NSInstModel().clean()
204 NfInstModel().clean()