/*-
* ============LICENSE_START=======================================================
* Copyright (C) 2019-2020 Nordix Foundation.
- * Copyright (C) 2019 AT&T Intellectual Property. All rights reserved.
+ * Copyright (C) 2019-2020,2022 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.
import org.onap.policy.common.utils.coder.YamlJsonTranslator;
import org.onap.policy.common.utils.resources.ResourceUtils;
import org.onap.policy.models.base.PfConceptKey;
-import org.onap.policy.models.base.PfValidationResult;
import org.onap.policy.models.tosca.authorative.concepts.ToscaServiceTemplate;
import org.onap.policy.models.tosca.simple.concepts.JpaToscaPolicy;
import org.onap.policy.models.tosca.simple.concepts.JpaToscaServiceTemplate;
private static final String TOPOLOGY_TEMPLATE = "topology_template";
- private static final String TCA_POLICY = "tca_policy";
+ private static final String TCA_POLICY = "tca.policy";
private static final String PROPERTIES2 = "properties";
private static final String POLICY1 = "onap.restart.tca";
- private static final String TYPE1 = "onap.policies.monitoring.cdap.tca.hi.lo.app";
+ private static final String TYPE1 = "onap.policies.monitoring.tcagen2";
private static final String METADATA = "metadata";
private static final String VERSION_100 = "1.0.0";
+ private static final String VERSION_200 = "2.0.0";
private static final Logger LOGGER = LoggerFactory.getLogger(MonitoringPolicySerializationTest.class);
private static final String VDNS_MON_INPUT_YAML = "policies/vDNS.policy.monitoring.input.tosca.yaml";
private static final String VFW_MON_INPUT_JSON = "policies/vFirewall.policy.monitoring.input.tosca.json";
private static final String VFW_MON_INPUT_YAML = "policies/vFirewall.policy.monitoring.input.tosca.yaml";
+ private static final String VFW_MON_INPUT_V2_JSON = "policies/vFirewall.policy.monitoring.input.tosca.v2.json";
+ private static final String VFW_MON_INPUT_V2_YAML = "policies/vFirewall.policy.monitoring.input.tosca.v2.yaml";
- private StandardCoder standardCoder = new StandardCoder();
- private YamlJsonTranslator yamlJsonTranslator = new YamlJsonTranslator();
+ private final StandardCoder standardCoder = new StandardCoder();
+ private final YamlJsonTranslator yamlJsonTranslator = new YamlJsonTranslator();
@Test
public void testDeserialization() throws Exception {
String policyTypeInputJson =
- ResourceUtils.getResourceAsString("policytypes/onap.policies.monitoring.cdap.tca.hi.lo.app.yaml");
+ ResourceUtils.getResourceAsString("policytypes/onap.policies.monitoring.tcagen2.yaml");
ToscaServiceTemplate plainPolicyTypes =
yamlJsonTranslator.fromYaml(policyTypeInputJson, ToscaServiceTemplate.class);
ToscaServiceTemplateUtils.addFragment(policyTypeServiceTemplate, serviceTemplateFromJson);
verifyVcpeMonitoringInputDeserialization(mergedServiceTemplate);
JpaToscaServiceTemplate serviceTemplateFromYaml = deserializeMonitoringInputYaml(VCPE_MON_INPUT_YAML);
- assertTrue(serviceTemplateFromJson.compareTo(serviceTemplateFromYaml) == 0);
+ assertEquals(0, serviceTemplateFromJson.compareTo(serviceTemplateFromYaml));
// vDNS
serviceTemplateFromJson = deserializeMonitoringInputJson(VDNS_MON_INPUT_JSON);
ToscaServiceTemplateUtils.addFragment(policyTypeServiceTemplate, serviceTemplateFromJson);
verifyVdnsMonitoringInputDeserialization(mergedServiceTemplate);
serviceTemplateFromYaml = deserializeMonitoringInputYaml(VDNS_MON_INPUT_YAML);
- assertTrue(serviceTemplateFromJson.compareTo(serviceTemplateFromYaml) == 0);
+ assertEquals(0, serviceTemplateFromJson.compareTo(serviceTemplateFromYaml));
// vFirewall
serviceTemplateFromJson = deserializeMonitoringInputJson(VFW_MON_INPUT_JSON);
mergedServiceTemplate =
ToscaServiceTemplateUtils.addFragment(policyTypeServiceTemplate, serviceTemplateFromJson);
- verifyVfwMonitoringInputDeserialization(mergedServiceTemplate);
+ verifyVfwMonitoringInputDeserialization(mergedServiceTemplate, VERSION_100);
serviceTemplateFromYaml = deserializeMonitoringInputYaml(VFW_MON_INPUT_YAML);
- assertTrue(serviceTemplateFromJson.compareTo(serviceTemplateFromYaml) == 0);
+ assertEquals(0, serviceTemplateFromJson.compareTo(serviceTemplateFromYaml));
+
+ testDeserializationMonitoringV2();
}
@Test
// vFirewall
serviceTemplate = deserializeMonitoringInputJson(VFW_MON_INPUT_JSON);
serializedServiceTemplate = serializeMonitoringServiceTemplate(serviceTemplate);
- verifyVfwMonitoringOutputserialization(serializedServiceTemplate);
+ verifyVfwMonitoringOutputserialization(serializedServiceTemplate, VERSION_100);
+ // vFirewall v2
+ serviceTemplate = deserializeMonitoringInputJson(VFW_MON_INPUT_V2_JSON);
+ serializedServiceTemplate = serializeMonitoringServiceTemplate(serviceTemplate);
+ verifyVfwMonitoringOutputserialization(serializedServiceTemplate, VERSION_200);
}).as("No exception should be thrown").doesNotThrowAnyException();
}
- private JpaToscaServiceTemplate deserializeMonitoringInputJson(String resourcePath) throws Exception {
+ private void testDeserializationMonitoringV2() throws Exception {
+ String policyTypeInputJson =
+ ResourceUtils.getResourceAsString("policytypes/onap.policies.monitoring.tcagen2.v2.yaml");
+ ToscaServiceTemplate plainPolicyTypes =
+ yamlJsonTranslator.fromYaml(policyTypeInputJson, ToscaServiceTemplate.class);
+
+ JpaToscaServiceTemplate policyTypeServiceTemplate = new JpaToscaServiceTemplate();
+ policyTypeServiceTemplate.fromAuthorative(plainPolicyTypes);
+
+ JpaToscaServiceTemplate serviceTemplateFromJson = deserializeMonitoringInputJson(VFW_MON_INPUT_V2_JSON);
+ JpaToscaServiceTemplate mergedServiceTemplate =
+ ToscaServiceTemplateUtils.addFragment(policyTypeServiceTemplate, serviceTemplateFromJson);
+ verifyVfwMonitoringInputDeserialization(mergedServiceTemplate, VERSION_200);
+ JpaToscaServiceTemplate serviceTemplateFromYaml = deserializeMonitoringInputYaml(VFW_MON_INPUT_V2_YAML);
+ assertEquals(0, serviceTemplateFromJson.compareTo(serviceTemplateFromYaml));
+ }
+
+ private JpaToscaServiceTemplate deserializeMonitoringInputJson(String resourcePath) throws Exception {
String policyJson = ResourceUtils.getResourceAsString(resourcePath);
ToscaServiceTemplate serviceTemplate = standardCoder.decode(policyJson, ToscaServiceTemplate.class);
JpaToscaServiceTemplate jpaToscaServiceTemplate = new JpaToscaServiceTemplate();
// Sanity check the entire structure
assertNotNull(serviceTemplate);
- LOGGER.info(serviceTemplate.validate(new PfValidationResult()).toString());
- assertTrue(serviceTemplate.validate(new PfValidationResult()).isValid());
+ LOGGER.info(serviceTemplate.validate("").toString());
+ assertTrue(serviceTemplate.validate("").isValid());
// Check tosca_definitions_version
assertEquals(YAML_VERSION, serviceTemplate.getToscaDefinitionsVersion());
serviceTemplate.getTopologyTemplate().getPolicies().getConceptMap();
// Check policies
- assertTrue(policiesConceptMap.size() == 1);
+ assertEquals(1, policiesConceptMap.size());
assertEquals(POLICY1, policiesConceptMap.keySet().iterator().next().getName());
assertEquals("onap.restart.tca:1.0.0",
serviceTemplate.getTopologyTemplate().getPolicies().get(POLICY1).getId());
JpaToscaPolicy policyVal = policiesConceptMap.values().iterator().next();
// Check metadata
- assertTrue(policyVal.getMetadata().size() == 2);
+ assertEquals(2, policyVal.getMetadata().size());
assertEquals(POLICY_ID, policyVal.getMetadata().entrySet().iterator().next().getKey());
assertEquals(POLICY1, policyVal.getMetadata().entrySet().iterator().next().getValue());
// Check properties
- assertTrue(policiesConceptMap.values().iterator().next().getProperties().size() == 1);
+ assertEquals(1, policiesConceptMap.values().iterator().next().getProperties().size());
assertEquals(TCA_POLICY, policyVal.getProperties().keySet().iterator().next());
assertNotNull(policyVal.getProperties().values().iterator().next());
}
// Sanity check the entire structure
assertNotNull(serviceTemplate);
- LOGGER.info(serviceTemplate.validate(new PfValidationResult()).toString());
- assertTrue(serviceTemplate.validate(new PfValidationResult()).isValid());
+ LOGGER.info(serviceTemplate.validate("").toString());
+ assertTrue(serviceTemplate.validate("").isValid());
// Check tosca_definitions_version
assertEquals(YAML_VERSION, serviceTemplate.getToscaDefinitionsVersion());
serviceTemplate.getTopologyTemplate().getPolicies().getConceptMap();
// Check policies
- assertTrue(policiesConceptMap.size() == 1);
+ assertEquals(1, policiesConceptMap.size());
assertEquals(POLICY2, policiesConceptMap.keySet().iterator().next().getName());
assertEquals("onap.scaleout.tca:1.0.0",
serviceTemplate.getTopologyTemplate().getPolicies().get(POLICY2).getId());
JpaToscaPolicy policyVal = policiesConceptMap.values().iterator().next();
// Check metadata
- assertTrue(policyVal.getMetadata().size() == 2);
+ assertEquals(2, policyVal.getMetadata().size());
assertEquals(POLICY_ID, policyVal.getMetadata().entrySet().iterator().next().getKey());
assertEquals(POLICY2, policyVal.getMetadata().entrySet().iterator().next().getValue());
// Check properties
- assertTrue(policiesConceptMap.values().iterator().next().getProperties().size() == 1);
+ assertEquals(1, policiesConceptMap.values().iterator().next().getProperties().size());
assertEquals(TCA_POLICY, policyVal.getProperties().keySet().iterator().next());
assertNotNull(policyVal.getProperties().values().iterator().next());
}
- private void verifyVfwMonitoringInputDeserialization(JpaToscaServiceTemplate serviceTemplate) {
+ private void verifyVfwMonitoringInputDeserialization(JpaToscaServiceTemplate serviceTemplate, String version) {
// Sanity check the entire structure
assertNotNull(serviceTemplate);
- LOGGER.info(serviceTemplate.validate(new PfValidationResult()).toString());
- assertTrue(serviceTemplate.validate(new PfValidationResult()).isValid());
+ LOGGER.info(serviceTemplate.validate("").toString());
+ assertTrue(serviceTemplate.validate("").isValid());
// Check tosca_definitions_version
assertEquals(YAML_VERSION, serviceTemplate.getToscaDefinitionsVersion());
serviceTemplate.getTopologyTemplate().getPolicies().getConceptMap();
// Check policies
- assertTrue(policiesConceptMap.size() == 1);
+ assertEquals(1, policiesConceptMap.size());
assertEquals(POLICY3, policiesConceptMap.keySet().iterator().next().getName());
- assertEquals("onap.vfirewall.tca:1.0.0",
+ assertEquals("onap.vfirewall.tca:" + version,
serviceTemplate.getTopologyTemplate().getPolicies().get(POLICY3).getId());
JpaToscaPolicy policyVal = policiesConceptMap.values().iterator().next();
// Check metadata
- assertTrue(policyVal.getMetadata().size() == 2);
+ assertEquals(2, policyVal.getMetadata().size());
assertEquals(POLICY_ID, policyVal.getMetadata().entrySet().iterator().next().getKey());
assertEquals(POLICY3, policyVal.getMetadata().entrySet().iterator().next().getValue());
// Check properties
- assertTrue(policiesConceptMap.values().iterator().next().getProperties().size() == 1);
+ assertEquals(1, policiesConceptMap.values().iterator().next().getProperties().size());
assertEquals(TCA_POLICY, policyVal.getProperties().keySet().iterator().next());
assertNotNull(policyVal.getProperties().values().iterator().next());
}
assertEquals(YAML_VERSION, serviceTemplateJsonObject.get(DEFINITION_VERSION).getAsString());
JsonObject topologyTemplateJsonObject = serviceTemplateJsonObject.get(TOPOLOGY_TEMPLATE).getAsJsonObject();
JsonArray policiesJsonArray = topologyTemplateJsonObject.get(POLICIES).getAsJsonArray();
- assertTrue(policiesJsonArray.size() == 1);
+ assertEquals(1, policiesJsonArray.size());
JsonObject policy = policiesJsonArray.iterator().next().getAsJsonObject();
assertNotNull(policy.get(POLICY1));
JsonObject policyVal = policy.get(POLICY1).getAsJsonObject();
assertEquals(YAML_VERSION, serviceTemplateJsonObject.get(DEFINITION_VERSION).getAsString());
JsonObject topologyTemplateJsonObject = serviceTemplateJsonObject.get(TOPOLOGY_TEMPLATE).getAsJsonObject();
JsonArray policiesJsonArray = topologyTemplateJsonObject.get(POLICIES).getAsJsonArray();
- assertTrue(policiesJsonArray.size() == 1);
+ assertEquals(1, policiesJsonArray.size());
JsonObject policy = policiesJsonArray.iterator().next().getAsJsonObject();
assertNotNull(policy.get(POLICY2));
JsonObject policyVal = policy.get(POLICY2).getAsJsonObject();
assertNotNull(properties.get(TCA_POLICY));
}
- private void verifyVfwMonitoringOutputserialization(String serializedServiceTemplate) {
+ private void verifyVfwMonitoringOutputserialization(String serializedServiceTemplate, String version) {
JsonObject serviceTemplateJsonObject = JsonParser.parseString(serializedServiceTemplate).getAsJsonObject();
assertEquals(YAML_VERSION, serviceTemplateJsonObject.get(DEFINITION_VERSION).getAsString());
JsonObject topologyTemplateJsonObject = serviceTemplateJsonObject.get(TOPOLOGY_TEMPLATE).getAsJsonObject();
JsonArray policiesJsonArray = topologyTemplateJsonObject.get(POLICIES).getAsJsonArray();
- assertTrue(policiesJsonArray.size() == 1);
+ assertEquals(1, policiesJsonArray.size());
JsonObject policy = policiesJsonArray.iterator().next().getAsJsonObject();
assertNotNull(policy.get(POLICY3));
JsonObject policyVal = policy.get(POLICY3).getAsJsonObject();
assertEquals(TYPE1, policyVal.get("type").getAsString());
- assertEquals(VERSION_100, policyVal.get(VERSION).getAsString());
+ assertEquals(version, policyVal.get(VERSION).getAsString());
assertEquals(POLICY3, policyVal.get(METADATA).getAsJsonObject().get(POLICY_ID).getAsString());
JsonObject properties = policyVal.get(PROPERTIES2).getAsJsonObject();
assertNotNull(properties.get(TCA_POLICY));