/*-
* ============LICENSE_START=======================================================
* Copyright (C) 2019-2020 Nordix Foundation.
- * Copyright (C) 2019-2020 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.StandardCoder;
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.JpaToscaConstraintLogical;
import org.onap.policy.models.tosca.simple.concepts.JpaToscaConstraintValidValues;
private static final String THRESHOLDS = "onap.datatypes.monitoring.thresholds";
- private static final String TCA = "onap.datatypes.monitoring.tca_policy";
+ private static final String TCA_V1 = "onap.datatypes.monitoring.tca_policy";
+ private static final String TCA_V2 = "list";
private static final String METRICS = "onap.datatypes.monitoring.metricsPerEventName";
- private static final String VERSION_100 = "1.0.0";
-
private static final String VERSION_000 = "0.0.0";
+ 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(MonitoringPolicyTypeSerializationTest.class);
private static final String MONITORING_TCA_YAML = "policytypes/onap.policies.monitoring.tcagen2.yaml";
+ private static final String MONITORING_TCA_V2_YAML = "policytypes/onap.policies.monitoring.tcagen2.v2.yaml";
+
private static final String MONITORING_COLLECTORS_YAML =
"policytypes/onap.policies.monitoring.dcaegen2.collectors.datafile.datafile-app-server.yaml";
@Test
public void testDeserialization() throws Exception {
- // TCA
+ // TCA v1
JpaToscaServiceTemplate serviceTemplateFromYaml = deserializeMonitoringInputYaml(MONITORING_TCA_YAML);
- verifyTcaInputDeserialization(serviceTemplateFromYaml);
+ verifyTcaInputDeserialization(serviceTemplateFromYaml, VERSION_100, TCA_V1);
+
+ // TCA v2
+ serviceTemplateFromYaml = deserializeMonitoringInputYaml(MONITORING_TCA_V2_YAML);
+ verifyTcaInputDeserialization(serviceTemplateFromYaml, VERSION_200, TCA_V2);
// Collector
serviceTemplateFromYaml = deserializeMonitoringInputYaml(MONITORING_COLLECTORS_YAML);
@Test
public void testSerialization() throws Exception {
- // TCA
+ // TCA v1
JpaToscaServiceTemplate tcaServiceTemplateFromYaml = deserializeMonitoringInputYaml(MONITORING_TCA_YAML);
String serializedServiceTemplateTca = serializeMonitoringServiceTemplate(tcaServiceTemplateFromYaml);
String serializedServiceTemplateTcaOut = serializeMonitoringServiceTemplate(serviceTemplateFromJsonTca);
assertEquals(serializedServiceTemplateTca, serializedServiceTemplateTcaOut);
+ // TCA v2
+ tcaServiceTemplateFromYaml = deserializeMonitoringInputYaml(MONITORING_TCA_V2_YAML);
+ serializedServiceTemplateTca = serializeMonitoringServiceTemplate(tcaServiceTemplateFromYaml);
+
+ toscaServiceTemplateFromJsonTca =
+ coder.decode(serializedServiceTemplateTca, ToscaServiceTemplate.class);
+
+ serviceTemplateFromJsonTca = new JpaToscaServiceTemplate();
+ serviceTemplateFromJsonTca.fromAuthorative(toscaServiceTemplateFromJsonTca);
+ serializedServiceTemplateTcaOut = serializeMonitoringServiceTemplate(serviceTemplateFromJsonTca);
+ assertEquals(serializedServiceTemplateTca, serializedServiceTemplateTcaOut);
+
// Collector
JpaToscaServiceTemplate collectorServiceTemplateFromYaml =
deserializeMonitoringInputYaml(MONITORING_COLLECTORS_YAML);
}
private JpaToscaServiceTemplate deserializeMonitoringInputYaml(String resourcePath) throws Exception {
-
Yaml yaml = new Yaml();
String policyTypeYaml = ResourceUtils.getResourceAsString(resourcePath);
Object yamlObject = yaml.load(policyTypeYaml);
return jpaToscaServiceTemplate;
}
- private void verifyTcaInputDeserialization(JpaToscaServiceTemplate serviceTemplate) {
+ private void verifyTcaInputDeserialization(JpaToscaServiceTemplate serviceTemplate, String version, String tca) {
// 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("tosca_simple_yaml_1_1_0", serviceTemplate.getToscaDefinitionsVersion());
Entry<PfConceptKey, JpaToscaPolicyType> secondPolicyType = policyTypesIter.next();
assertEquals("onap.policies.monitoring.tcagen2", secondPolicyType.getKey().getName());
- assertEquals(VERSION_100, secondPolicyType.getKey().getVersion());
+ assertEquals(version, secondPolicyType.getKey().getVersion());
assertEquals(MONITORING, secondPolicyType.getValue().getDerivedFrom().getName());
assertEquals(1, secondPolicyType.getValue().getProperties().size());
JpaToscaProperty property = secondPolicyType.getValue().getProperties().values().iterator().next();
assertEquals("onap.policies.monitoring.tcagen2", property.getKey().getParentKeyName());
- assertEquals(VERSION_100, property.getKey().getParentKeyVersion());
+ assertEquals(version, property.getKey().getParentKeyVersion());
assertEquals("tca.policy", property.getKey().getLocalName());
- assertEquals(TCA, property.getType().getName());
+ assertEquals(tca, property.getType().getName());
assertEquals("TCA Policy JSON", property.getDescription());
// Check data_types
assertEquals(THRESHOLDS, firstDataTypeSixthProperty.getEntrySchema().getType().getName());
Entry<PfConceptKey, JpaToscaDataType> secondDataType = dataTypesIter.next();
- assertEquals(TCA, secondDataType.getKey().getName());
+ assertEquals(TCA_V1, secondDataType.getKey().getName());
JpaToscaDataType secondDataTypeVal = secondDataType.getValue();
assertEquals(DATATYPE_ROOT, secondDataTypeVal.getDerivedFrom().getName());
assertEquals(VERSION_000, secondDataTypeVal.getDerivedFrom().getVersion());
Iterator<JpaToscaProperty> secondDataTypePropertiesIter = secondDataTypeVal.getProperties().values().iterator();
JpaToscaProperty secondDataTypeFirstProperty = secondDataTypePropertiesIter.next();
- assertEquals(TCA, secondDataTypeFirstProperty.getKey().getParentKeyName());
+ assertEquals(TCA_V1, secondDataTypeFirstProperty.getKey().getParentKeyName());
assertEquals("domain", secondDataTypeFirstProperty.getKey().getLocalName());
assertEquals(STRING_TEXT, secondDataTypeFirstProperty.getType().getName());
assertTrue(secondDataTypeFirstProperty.isRequired());
.getCompareTo());
JpaToscaProperty secondDataTypeSecondProperty = secondDataTypePropertiesIter.next();
- assertEquals(TCA, secondDataTypeSecondProperty.getKey().getParentKeyName());
+ assertEquals(TCA_V1, secondDataTypeSecondProperty.getKey().getParentKeyName());
assertEquals("metricsPerEventName", secondDataTypeSecondProperty.getKey().getLocalName());
assertEquals("list", secondDataTypeSecondProperty.getType().getName());
assertTrue(secondDataTypeSecondProperty.isRequired());
assertEquals(5,
((JpaToscaConstraintValidValues) (thirdDataTypeFifthProperty.getConstraints().iterator().next()))
.getValidValues().size());
- ;
JpaToscaProperty thirdDataTypeSixthProperty = thirdDataTypePropertiesIter.next();
assertEquals(THRESHOLDS, thirdDataTypeSixthProperty.getKey().getParentKeyName());
// 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("tosca_simple_yaml_1_1_0", serviceTemplate.getToscaDefinitionsVersion());