1 import * as _ from 'lodash'
5 public static clampNumber = (number, min, max) => {
6 return Math.max(min, Math.min(number, max));
9 public static hasContents(object: Object): boolean {
10 if (object === undefined || object === null || object === "") {
16 public static convertModel(serviceModel) {
18 let isNewFlow:boolean = false;
20 for (let networkCustomizationName in serviceModel.networks) {
21 let networkModel = serviceModel.networks[networkCustomizationName];
22 if ( networkModel.customizationUuid != null ) {
28 for (let vnfCustomizationName in serviceModel.vnfs) {
29 let vnfModel = serviceModel.vnfs[vnfCustomizationName];
30 if ( vnfModel.customizationUuid != null ) {
37 return (Utils.convertNewModel (serviceModel) );
40 return (Utils.convertOldModel (serviceModel) );
44 private static convertNewModel (serviceModel ) {
45 let completeResources = new Array();
47 let convertedAsdcModel = {
48 "service": serviceModel.service,
51 "pnfs": serviceModel.pnfs,
52 "serviceProxies": serviceModel.serviceProxies,
53 "completeDisplayInputs": {},
57 for(let key in serviceModel.service.inputs) {
58 if(_.includes(["instance_node_target", "naming_policy", "vf_instance_name"], key)) {
59 delete convertedAsdcModel.service.inputs[key];
63 for (let networkCustomizationName in serviceModel.networks) {
64 let networkModel = serviceModel.networks[networkCustomizationName];
66 convertedAsdcModel.networks[networkModel.customizationUuid] = {
67 "uuid": networkModel.uuid,
68 "invariantUuid": networkModel.invariantUuid,
69 "version": networkModel.version,
70 "name": networkModel.name,
71 "modelCustomizationName": networkModel.modelCustomizationName,
72 "customizationUuid": networkModel.customizationUuid,
74 "description": networkModel.description,
80 "name": networkModel.modelCustomizationName,
81 "description": networkModel.description
84 completeResources.push (resource);
88 _.forEach(serviceModel.configurations, function(element) {
89 element.isConfig = true;
91 _.forEach(serviceModel.pnfs, function(element, key) {
93 element.modelCustomizationName= key;
95 let mergedVnfs = Object.assign(serviceModel.vnfs, serviceModel.configurations, serviceModel.pnfs);
97 for (let vnfCustomizationName in mergedVnfs) {
98 let vnfModel = mergedVnfs[vnfCustomizationName];
99 let vnfCustomizationUuid = vnfModel.customizationUuid;
100 convertedAsdcModel.vnfs[vnfModel.customizationUuid] = {
101 "uuid": vnfModel.uuid,
102 "invariantUuid": vnfModel.invariantUuid,
103 "version": vnfModel.version,
104 "name": vnfModel.name,
105 "modelCustomizationName": vnfModel.modelCustomizationName,
106 "customizationUuid": vnfModel.customizationUuid,
108 "description": vnfModel.description,
116 "sourceNodes": vnfModel.sourceNodes,
117 "collectorNodes": vnfModel.collectorNodes,
118 "isConfigurationByPolicy": vnfModel.configurationByPolicy ? vnfModel.configurationByPolicy : false,
119 "isConfig": vnfModel.isConfig ? vnfModel.isConfig : false,
120 "isPnf": vnfModel.isPnf ? vnfModel.isPnf : false
124 "name": vnfModel.modelCustomizationName,
125 "description": vnfModel.description
127 completeResources.push (resource);
129 if (vnfModel.commands != null) {
132 * internal_net_param_ntu: {
133 * command: get_input,
134 * displaName: internal_net_param_ntu,
135 * inputName: vccfd1_internal_net_param_ntu // pointer to input key
137 * If the input name (ptr) is one of instance_node_target, naming_policy or vf_instance_name
142 convertedAsdcModel.vnfs[vnfCustomizationUuid].properties=vnfModel.properties;
146 let vnf_function = "";
148 if ( !( _.isEmpty(vnfModel.properties) ) ) {
149 if (this.hasContents (vnfModel.properties.nf_type) ) {
150 vnf_type = vnfModel.properties.nf_type;
152 if (this.hasContents (vnfModel.properties.nf_role) ) {
153 vnf_role = vnfModel.properties.nf_role;
155 if (this.hasContents (vnfModel.properties.nf_function) ) {
156 vnf_function = vnfModel.properties.nf_function;
158 if (this.hasContents (vnfModel.properties.nf_naming_code) ) {
159 vnf_code = vnfModel.properties.nf_naming_code;
162 convertedAsdcModel.vnfs[vnfCustomizationUuid]["nfType"] = vnf_type;
163 convertedAsdcModel.vnfs[vnfCustomizationUuid]["nfRole"] = vnf_role;
164 convertedAsdcModel.vnfs[vnfCustomizationUuid]["nfFunction"] = vnf_function;
165 convertedAsdcModel.vnfs[vnfCustomizationUuid]["nfCode"] = vnf_code;
167 for (let vfModuleCustomizationName in serviceModel.vnfs[vnfCustomizationName].vfModules) {
168 let vfModuleModel = serviceModel.vnfs[vnfCustomizationName].vfModules[vfModuleCustomizationName];
169 convertedAsdcModel.vnfs[vnfCustomizationUuid].vfModules[vfModuleModel.customizationUuid] = vfModuleModel;
172 for (let volumeGroupCustomizationName in serviceModel.vnfs[vnfCustomizationName].volumeGroups) {
173 let volumeGroupModel = serviceModel.vnfs[vnfCustomizationName].volumeGroups[volumeGroupCustomizationName];
174 convertedAsdcModel.vnfs[vnfCustomizationUuid].volumeGroups[volumeGroupModel.customizationUuid] = volumeGroupModel;
179 return (convertedAsdcModel);
182 public static isALaCarte(instantiationType) {
183 return instantiationType !== 'Macro';
186 private static convertOldModel(serviceModel ) {
188 let convertedAsdcModel = {
189 "service": serviceModel.service,
192 "pnfs": serviceModel.pnfs,
193 "serviceProxies": serviceModel.serviceProxies,
194 "completeDisplayInputs": {},
197 let completeResources = new Array();
198 for (let networkCustomizationName in serviceModel.networks) {
199 let networkModel = serviceModel.networks[networkCustomizationName];
200 convertedAsdcModel.networks[networkModel.invariantUuid] = {};
201 convertedAsdcModel.networks[networkModel.uuid] = {
202 "uuid": networkModel.uuid,
203 "invariantUuid": networkModel.invariantUuid,
204 "version": networkModel.version,
205 "name": networkModel.name,
206 "modelCustomizationName": networkModel.modelCustomizationName,
207 "customizationUuid": networkModel.customizationUuid,
209 "description": networkModel.description,
214 "name": networkModel.modelCustomizationName,
215 "description": networkModel.description
217 completeResources.push (resource);
220 _.forEach(serviceModel.configurations, function(element) {
221 element.isConfig = true;
223 _.forEach(serviceModel.pnfs, function(element, key) {
225 element.modelCustomizationName= key;
227 let mergedVnfs = Object.assign(serviceModel.vnfs, serviceModel.configurations, serviceModel.pnfs);
229 for (let vnfCustomizationName in mergedVnfs) {
230 let vnfModel = mergedVnfs[vnfCustomizationName];
231 convertedAsdcModel.vnfs[vnfModel.uuid] = {
232 "uuid": vnfModel.uuid,
233 "invariantUuid": vnfModel.invariantUuid,
234 "version": vnfModel.version,
235 "name": vnfModel.name,
236 "modelCustomizationName": vnfModel.modelCustomizationName,
237 "customizationUuid": vnfModel.customizationUuid,
239 "description": vnfModel.description,
244 "sourceNodes": vnfModel.sourceNodes,
245 "collectorNodes": vnfModel.collectorNodes,
246 "isConfigurationByPolicy": vnfModel.configurationByPolicy ? vnfModel.configurationByPolicy : false,
247 "isConfig": vnfModel.isConfig ? vnfModel.isConfig : false,
248 "isPnf": vnfModel.isPnf ? vnfModel.isPnf : false
251 "name": vnfModel.modelCustomizationName,
252 "description": vnfModel.description
254 completeResources.push (resource);
256 for (let vfModuleCustomizationName in serviceModel.vnfs[vnfCustomizationName].vfModules) {
257 let vfModuleModel = serviceModel.vnfs[vnfCustomizationName].vfModules[vfModuleCustomizationName];
258 convertedAsdcModel.vnfs[vnfModel.uuid].vfModules[vfModuleModel.uuid] = vfModuleModel;
261 for (let volumeGroupCustomizationName in serviceModel.vnfs[vnfCustomizationName].volumeGroups) {
262 let volumeGroupModel = serviceModel.vnfs[vnfCustomizationName].volumeGroups[volumeGroupCustomizationName];
263 convertedAsdcModel.vnfs[vnfModel.uuid].volumeGroups[volumeGroupModel.uuid] = volumeGroupModel;
267 let completeDisplayInputs = {};
269 return (convertedAsdcModel);