1 import { Injectable } from '@angular/core';
2 import * as _ from 'lodash';
3 import { createVFModuleInstance, updateVNFInstance } from '../../../service.actions';
4 import { NgRedux } from '@angular-redux/store';
5 import { AppState } from '../../../store/reducers';
8 export class DefaultDataGeneratorService {
9 static controlsFieldsStatus = {};
11 constructor(private store: NgRedux<AppState>) { }
13 updateReduxOnFirstSet(serviceId: string, formServiceValues: any): void {
14 const serviceHierarchy = this.store.getState().service.serviceHierarchy[serviceId];
15 if (serviceHierarchy && !_.isEmpty(serviceHierarchy.vnfs)) {
16 for (let vnfUUID in serviceHierarchy.vnfs) {
17 for (let vnfModuleUUID in serviceHierarchy.vnfs[vnfUUID].vfModules) {
18 if (serviceHierarchy.vnfs[vnfUUID].vfModules[vnfModuleUUID].properties.minCountInstances > 0) {
20 let vfModule = this.generateVFModule(serviceHierarchy, vnfUUID, vnfModuleUUID);
21 this.updateVNFInstanceRedux(
22 serviceHierarchy.vnfs[vnfUUID].modelName,
24 serviceHierarchy.vnfs[vnfUUID].vfModules[vnfModuleUUID].properties.initialCount,
26 this.generateVNFData(serviceHierarchy, vnfUUID, vnfModuleUUID, formServiceValues),
35 updateVNFInstanceRedux(vnfModelName: string, serviceId: string, numberOfVfModules: number, vfModuleData: any, vnfData: any, vfModuleName : string): void {
36 if (numberOfVfModules > 0) {
37 this.store.dispatch(updateVNFInstance(vnfData, vnfData.modelInfo.modelCustomizationName, serviceId));
38 for (let i = 0; i < numberOfVfModules; i++) {
39 this.store.dispatch(createVFModuleInstance(vfModuleData, vfModuleName, serviceId));
45 generateVFModule(serviceHierarchy: any, vnfUUID: string, vnfModuleUUID: string) {
47 'sdncPreReload': null,
49 'modelType': 'VFmodule',
50 'modelInvariantId': serviceHierarchy.vnfs[vnfUUID].vfModules[vnfModuleUUID].invariantUuid,
51 'modelVersionId': serviceHierarchy.vnfs[vnfUUID].vfModules[vnfModuleUUID].uuid,
52 'modelName': serviceHierarchy.vnfs[vnfUUID].vfModules[vnfModuleUUID].name,
53 'modelVersion': serviceHierarchy.vnfs[vnfUUID].vfModules[vnfModuleUUID].version,
54 'modelCustomizationId': serviceHierarchy.vnfs[vnfUUID].vfModules[vnfModuleUUID].customizationUuid,
55 'modelCustomizationName': serviceHierarchy.vnfs[vnfUUID].vfModules[vnfModuleUUID].modelCustomizationName
63 generateVNFData(serviceHierarchy: any, vnfName: string, vnfUUID: string, formValues: any) {
65 'productFamilyId': formValues.productFamilyId,
66 'lcpCloudRegionId': null,
68 'lineOfBusiness': null,
72 'modelInvariantId': serviceHierarchy.vnfs[vnfName].invariantUuid,
73 'modelVersionId': formValues.modelInfo.modelVersionId,
74 'modelName': serviceHierarchy.vnfs[vnfName].name,
75 'modelVersion': serviceHierarchy.vnfs[vnfName].version,
76 'modelCustomizationId': serviceHierarchy.vnfs[vnfName].modelCustomizationId,
77 'modelCustomizationName': serviceHierarchy.vnfs[vnfName].modelCustomizationName
79 'isUserProvidedNaming': null