aboutsummaryrefslogtreecommitdiffstats
path: root/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/main/java/org/openecomp/sdc/enrichment/impl/tosca/CeilometerEnricher.java
diff options
context:
space:
mode:
Diffstat (limited to 'openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/main/java/org/openecomp/sdc/enrichment/impl/tosca/CeilometerEnricher.java')
-rw-r--r--openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/main/java/org/openecomp/sdc/enrichment/impl/tosca/CeilometerEnricher.java112
1 files changed, 112 insertions, 0 deletions
diff --git a/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/main/java/org/openecomp/sdc/enrichment/impl/tosca/CeilometerEnricher.java b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/main/java/org/openecomp/sdc/enrichment/impl/tosca/CeilometerEnricher.java
new file mode 100644
index 0000000000..eb79787b59
--- /dev/null
+++ b/openecomp-be/lib/openecomp-sdc-enrichment-lib/openecomp-sdc-enrichment-impl/src/main/java/org/openecomp/sdc/enrichment/impl/tosca/CeilometerEnricher.java
@@ -0,0 +1,112 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * Copyright (C) 2017 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=========================================================
+ */
+
+package org.openecomp.sdc.enrichment.impl.tosca;
+
+import org.apache.commons.collections4.MapUtils;
+import org.openecomp.core.enrichment.types.CeilometerInfo;
+import org.openecomp.sdc.datatypes.error.ErrorMessage;
+import org.openecomp.sdc.enrichment.EnrichmentInfo;
+import org.openecomp.sdc.tosca.datatypes.ToscaCapabilityType;
+import org.openecomp.sdc.tosca.datatypes.ToscaElementTypes;
+import org.openecomp.sdc.tosca.datatypes.ToscaServiceModel;
+import org.openecomp.sdc.tosca.datatypes.model.CapabilityDefinition;
+import org.openecomp.sdc.tosca.datatypes.model.CapabilityType;
+import org.openecomp.sdc.tosca.datatypes.model.NodeType;
+import org.openecomp.sdc.tosca.services.ToscaAnalyzerService;
+import org.openecomp.sdc.tosca.services.ToscaUtil;
+import org.openecomp.sdc.tosca.services.impl.ToscaAnalyzerServiceImpl;
+import org.openecomp.sdc.translator.services.heattotosca.globaltypes.CommonGlobalTypes;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+public class CeilometerEnricher {
+ /**
+ * Enrich map.
+ *
+ * @param toscaModel the tosca model
+ * @param modelNodeType the model node type
+ * @param input the input
+ * @return the map
+ */
+ public static Map<String, List<ErrorMessage>> enrich(ToscaServiceModel toscaModel,
+ Map<String, List<NodeType>> modelNodeType,
+ EnrichmentInfo input) {
+ Map<String, List<ErrorMessage>> errors = new HashMap<>();
+ input.getEntityInfo().entrySet().stream().forEach(
+ entry -> enrichNodeType(toscaModel, (ComponentInfo) entry.getValue(),
+ modelNodeType.get(entry.getKey())));
+
+ return errors;
+ }
+
+ private static void enrichNodeType(ToscaServiceModel toscaModel, ComponentInfo componentInfo,
+ List<NodeType> nodeTypes) {
+
+ for (CeilometerInfo ceilometerInfo : componentInfo.getCeilometerInfo()
+ .getCeilometerInfoList()) {
+ String capabilityId = ceilometerInfo.getName();
+
+ Map<String, Object> properties = getCeilometerProperties(ceilometerInfo);
+
+ //CapabilityType capabilityType = CommonGlobalTypes.createServiceTemplate()
+ // .getCapability_types().
+ // get(ToscaCapabilityType.METRIC_CEILOMETER.getDisplayName());
+ //CapabilityType metricCapabilityType = CommonGlobalTypes.createServiceTemplate().
+ // getCapability_types().get(ToscaCapabilityType.METRIC.getDisplayName());
+ ToscaAnalyzerService toscaAnalyzerService = new ToscaAnalyzerServiceImpl();
+ CapabilityType capabilityType = (CapabilityType) toscaAnalyzerService
+ .getFlatEntity(ToscaElementTypes.CAPABILITY_TYPE,
+ ToscaCapabilityType.METRIC_CEILOMETER.getDisplayName(),
+ CommonGlobalTypes.createServiceTemplate(), toscaModel);
+
+
+ nodeTypes.stream().forEach(nodeType ->
+ addCapability(nodeType, capabilityId, ToscaUtil
+ .convertTypeToDefinition(ToscaCapabilityType.METRIC_CEILOMETER.getDisplayName(),
+ capabilityType, properties, ceilometerInfo.getDescription())));
+ }
+ }
+
+ private static Map<String, Object> getCeilometerProperties(CeilometerInfo ceilometerInfo) {
+ Map<String, Object> properties = new HashMap<>();
+ properties.put("name", ceilometerInfo.getName());
+ properties.put("type", ceilometerInfo.getType());
+ properties.put("unit", ceilometerInfo.getUnit());
+ if (ceilometerInfo.getCategory() != null) {
+ properties.put("category", ceilometerInfo.getCategory());
+ }
+ return properties;
+ }
+
+ private static void addCapability(NodeType nodeType, String capabilityId,
+ CapabilityDefinition capabilityDefinition) {
+ if (MapUtils.isEmpty(nodeType.getCapabilities())) {
+ nodeType.setCapabilities(new HashMap<>());
+ }
+ //clean unnecessary info
+ capabilityDefinition.setAttributes(null);
+ capabilityDefinition.setOccurrences(null);
+
+ nodeType.getCapabilities().put(capabilityId, capabilityDefinition);
+ }
+}