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 private static convertOldModel(serviceModel ) {
184 let convertedAsdcModel = {
185 "service": serviceModel.service,
188 "pnfs": serviceModel.pnfs,
189 "serviceProxies": serviceModel.serviceProxies,
190 "completeDisplayInputs": {},
193 let completeResources = new Array();
194 for (let networkCustomizationName in serviceModel.networks) {
195 let networkModel = serviceModel.networks[networkCustomizationName];
196 convertedAsdcModel.networks[networkModel.invariantUuid] = {};
197 convertedAsdcModel.networks[networkModel.uuid] = {
198 "uuid": networkModel.uuid,
199 "invariantUuid": networkModel.invariantUuid,
200 "version": networkModel.version,
201 "name": networkModel.name,
202 "modelCustomizationName": networkModel.modelCustomizationName,
203 "customizationUuid": networkModel.customizationUuid,
205 "description": networkModel.description,
210 "name": networkModel.modelCustomizationName,
211 "description": networkModel.description
213 completeResources.push (resource);
216 _.forEach(serviceModel.configurations, function(element) {
217 element.isConfig = true;
219 _.forEach(serviceModel.pnfs, function(element, key) {
221 element.modelCustomizationName= key;
223 let mergedVnfs = Object.assign(serviceModel.vnfs, serviceModel.configurations, serviceModel.pnfs);
225 for (let vnfCustomizationName in mergedVnfs) {
226 let vnfModel = mergedVnfs[vnfCustomizationName];
227 convertedAsdcModel.vnfs[vnfModel.uuid] = {
228 "uuid": vnfModel.uuid,
229 "invariantUuid": vnfModel.invariantUuid,
230 "version": vnfModel.version,
231 "name": vnfModel.name,
232 "modelCustomizationName": vnfModel.modelCustomizationName,
233 "customizationUuid": vnfModel.customizationUuid,
235 "description": vnfModel.description,
240 "sourceNodes": vnfModel.sourceNodes,
241 "collectorNodes": vnfModel.collectorNodes,
242 "isConfigurationByPolicy": vnfModel.configurationByPolicy ? vnfModel.configurationByPolicy : false,
243 "isConfig": vnfModel.isConfig ? vnfModel.isConfig : false,
244 "isPnf": vnfModel.isPnf ? vnfModel.isPnf : false
247 "name": vnfModel.modelCustomizationName,
248 "description": vnfModel.description
250 completeResources.push (resource);
252 for (let vfModuleCustomizationName in serviceModel.vnfs[vnfCustomizationName].vfModules) {
253 let vfModuleModel = serviceModel.vnfs[vnfCustomizationName].vfModules[vfModuleCustomizationName];
254 convertedAsdcModel.vnfs[vnfModel.uuid].vfModules[vfModuleModel.uuid] = vfModuleModel;
257 for (let volumeGroupCustomizationName in serviceModel.vnfs[vnfCustomizationName].volumeGroups) {
258 let volumeGroupModel = serviceModel.vnfs[vnfCustomizationName].volumeGroups[volumeGroupCustomizationName];
259 convertedAsdcModel.vnfs[vnfModel.uuid].volumeGroups[volumeGroupModel.uuid] = volumeGroupModel;
263 let completeDisplayInputs = {};
265 return (convertedAsdcModel);