/*- * ============LICENSE_START======================================================= * ONAP CLAMP * ================================================================================ * Copyright (C) 2019 AT&T Intellectual Property. 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. * ============LICENSE_END============================================ * =================================================================== * */ export default class LoopCache { loopJsonCache; constructor(loopJson) { this.loopJsonCache=loopJson; } updateMicroServiceProperties(name, newMsProperties) { for (var policy in this.loopJsonCache["microServicePolicies"]) { if (this.loopJsonCache["microServicePolicies"][policy]["name"] === name) { this.loopJsonCache["microServicePolicies"][policy]["configurationsJson"] = newMsProperties; } } } updateMicroServicePdpGroup(name, pdpGroup, pdpSubgroup) { for (var policy in this.loopJsonCache["microServicePolicies"]) { if (this.loopJsonCache["microServicePolicies"][policy]["name"] === name) { this.loopJsonCache["microServicePolicies"][policy]["pdpGroup"] = pdpGroup; this.loopJsonCache["microServicePolicies"][policy]["pdpSubgroup"] = pdpSubgroup; } } } updateGlobalProperties(newGlobalProperties) { this.loopJsonCache["globalPropertiesJson"] = newGlobalProperties; } updateOperationalPolicyProperties(name, newOpProperties) { for (var policy in this.loopJsonCache["operationalPolicies"]) { if (this.loopJsonCache["operationalPolicies"][policy]["name"] === name) { this.loopJsonCache["operationalPolicies"][policy]["configurationsJson"] = newOpProperties; } } } updateOperationalPolicyPdpGroup(name, pdpGroup, pdpSubgroup) { for (var policy in this.loopJsonCache["operationalPolicies"]) { if (this.loopJsonCache["operationalPolicies"][policy]["name"] === name) { this.loopJsonCache["operationalPolicies"][policy]["pdpGroup"] = pdpGroup; this.loopJsonCache["operationalPolicies"][policy]["pdpSubgroup"] = pdpSubgroup; } } } getLoopName() { return this.loopJsonCache["name"]; } getOperationalPolicyJsonSchema() { return this.loopJsonCache["operationalPolicies"]["0"]["jsonRepresentation"]; } getOperationalPolicies() { return this.loopJsonCache["operationalPolicies"]; } getOperationalPoliciesNoJsonSchema() { var operationalPolicies = JSON.parse(JSON.stringify(this.loopJsonCache["operationalPolicies"])); delete operationalPolicies[0]["jsonRepresentation"]; return operationalPolicies; } getGlobalProperties() { return this.loopJsonCache["globalPropertiesJson"]; } getDcaeDeploymentProperties() { return this.loopJsonCache["globalPropertiesJson"]["dcaeDeployParameters"]; } getMicroServicePolicies() { return this.loopJsonCache["microServicePolicies"]; } getOperationalPolicyForName(name) { var opProperties=this.getOperationalPolicies(); for (var policy in opProperties) { if (opProperties[policy]["name"] === name) { return opProperties[policy]; } } return null; } getOperationalPolicyPropertiesForName(name) { var opConfig = this.getOperationalPolicyForName(name); if (opConfig !== null) { return opConfig["configurationsJson"]; } return null; } getOperationalPolicyJsonRepresentationForName(name) { var opConfig = this.getOperationalPolicyForName(name); if (opConfig !== null) { return opConfig["jsonRepresentation"]; } return null; } getOperationalPolicySupportedPdpGroup(name) { var opConfig=this.getOperationalPolicyForName(name); if (opConfig !== null) { if (opConfig["policyModel"]["policyPdpGroup"] !== undefined && opConfig["policyModel"]["policyPdpGroup"]["supportedPdpGroups"] !== undefined) { return opConfig["policyModel"]["policyPdpGroup"]["supportedPdpGroups"]; } } return []; } getOperationalPolicyPdpGroup(name) { var opConfig=this.getOperationalPolicyForName(name); if (opConfig !== null) { return opConfig["pdpGroup"]; } return null; } getOperationalPolicyPdpSubgroup(name) { var opConfig=this.getOperationalPolicyForName(name); if (opConfig !== null) { return opConfig["pdpSubgroup"]; } return null; } getMicroServiceSupportedPdpGroup(name) { var microService=this.getMicroServiceForName(name); if (microService !== null) { if (microService["policyModel"]["policyPdpGroup"] !== undefined && microService["policyModel"]["policyPdpGroup"]["supportedPdpGroups"] !== undefined) { return microService["policyModel"]["policyPdpGroup"]["supportedPdpGroups"]; } } return []; } getMicroServicePdpGroup(name) { var microService=this.getMicroServiceForName(name); if (microService !== null) { return microService["pdpGroup"]; } return null; } getMicroServicePdpSubgroup(name) { var microService=this.getMicroServiceForName(name); if (microService !== null) { return microService["pdpSubgroup"]; } return null; } getMicroServiceForName(name) { var msProperties=this.getMicroServicePolicies(); for (var policy in msProperties) { if (msProperties[policy]["name"] === name) { return msProperties[policy]; } } return null; } getMicroServicePropertiesForName(name) { var msConfig = this.getMicroServiceForName(name); if (msConfig !== null) { return msConfig["configurationsJson"]; } return null; } getMicroServiceJsonRepresentationForName(name) { var msConfig = this.getMicroServiceForName(name); if (msConfig !== null) { return msConfig["jsonRepresentation"]; } return null; } getResourceDetailsVfProperty() { return this.loopJsonCache["modelService"]["resourceDetails"]["VF"]; } getResourceDetailsVfModuleProperty() { return this.loopJsonCache["modelService"]["resourceDetails"]["VFModule"]; } getLoopLogsArray() { return this.loopJsonCache.loopLogs; } getComputedState() { return this.loopJsonCache.lastComputedState; } getComponentStates() { return this.loopJsonCache.components; } getTemplateName() { if (this.getLoopTemplate() !== undefined) { return this.getLoopTemplate().name; } return null; } getLoopTemplate() { return this.loopJsonCache["loopTemplate"]; } isOpenLoopTemplate() { var loopTemplate = this.getLoopTemplate(); if(loopTemplate != null && loopTemplate["allowedLoopType"] === "OPEN") { return true; } return false; } getAllLoopElementModels() { var loopTemplate = this.getLoopTemplate(); var loopElementModels = []; if(loopTemplate != null) { for (var element of loopTemplate['loopElementModelsUsed']) { loopElementModels.push(element['loopElementModel']) } } return loopElementModels; } }