/*-
* ============LICENSE_START=======================================================
- * Copyright (C) 2019 Nordix Foundation.
+ * Copyright (C) 2019-2020 Nordix Foundation.
+ * Modifications Copyright (C) 2020 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.models.base.PfConceptKey;
import org.onap.policy.models.base.PfModelRuntimeException;
import org.onap.policy.models.tosca.legacy.concepts.LegacyOperationalPolicy;
-import org.onap.policy.models.tosca.simple.concepts.ToscaPolicies;
-import org.onap.policy.models.tosca.simple.concepts.ToscaPolicy;
-import org.onap.policy.models.tosca.simple.concepts.ToscaServiceTemplate;
-import org.onap.policy.models.tosca.simple.concepts.ToscaTopologyTemplate;
-import org.onap.policy.models.tosca.simple.mapping.ToscaServiceTemplateMapper;
+import org.onap.policy.models.tosca.simple.concepts.JpaToscaPolicies;
+import org.onap.policy.models.tosca.simple.concepts.JpaToscaPolicy;
+import org.onap.policy.models.tosca.simple.concepts.JpaToscaServiceTemplate;
+import org.onap.policy.models.tosca.simple.concepts.JpaToscaTopologyTemplate;
+import org.onap.policy.models.tosca.simple.mapping.JpaToscaServiceTemplateMapper;
import org.onap.policy.models.tosca.utils.ToscaUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
* @author Liam Fallon (liam.fallon@est.tech)
*/
public class LegacyOperationalPolicyMapper
- implements ToscaServiceTemplateMapper<LegacyOperationalPolicy, LegacyOperationalPolicy> {
+ implements JpaToscaServiceTemplateMapper<LegacyOperationalPolicy, LegacyOperationalPolicy> {
+
+ // Property name for the operational policy content
+ private static final String CONTENT_PROPERTY = "content";
+ private static final String CONTROLLER_PROPERTY = "controllerName";
+
private static final Logger LOGGER = LoggerFactory.getLogger(LegacyOperationalPolicyMapper.class);
private static final PfConceptKey LEGACY_OPERATIONAL_TYPE =
new PfConceptKey("onap.policies.controlloop.Operational", "1.0.0");
@Override
- public ToscaServiceTemplate toToscaServiceTemplate(final LegacyOperationalPolicy legacyOperationalPolicy) {
+ public JpaToscaServiceTemplate toToscaServiceTemplate(final LegacyOperationalPolicy legacyOperationalPolicy) {
String incomingVersion = legacyOperationalPolicy.getPolicyVersion();
if (incomingVersion == null) {
incomingVersion = "1";
PfConceptKey policyKey = new PfConceptKey(legacyOperationalPolicy.getPolicyId(), incomingVersion + ".0.0");
- final ToscaPolicy toscaPolicy = new ToscaPolicy(policyKey);
+ final JpaToscaPolicy toscaPolicy = new JpaToscaPolicy(policyKey);
toscaPolicy.setType(LEGACY_OPERATIONAL_TYPE);
final Map<String, String> propertyMap = new HashMap<>();
toscaPolicy.setProperties(propertyMap);
- toscaPolicy.getProperties().put("Content", legacyOperationalPolicy.getContent());
+ toscaPolicy.getProperties().put(CONTENT_PROPERTY, legacyOperationalPolicy.getContent());
+ if (legacyOperationalPolicy.getControllerName() != null) {
+ toscaPolicy.getProperties().put(CONTROLLER_PROPERTY, legacyOperationalPolicy.getControllerName());
+ }
- final ToscaServiceTemplate serviceTemplate = new ToscaServiceTemplate();
- serviceTemplate.setToscaDefinitionsVersion("tosca_simple_yaml_1_0");
+ final JpaToscaServiceTemplate serviceTemplate = new JpaToscaServiceTemplate();
+ serviceTemplate.setToscaDefinitionsVersion("tosca_simple_yaml_1_1_0");
- serviceTemplate.setTopologyTemplate(new ToscaTopologyTemplate());
+ serviceTemplate.setTopologyTemplate(new JpaToscaTopologyTemplate());
- serviceTemplate.getTopologyTemplate().setPolicies(new ToscaPolicies());
+ serviceTemplate.getTopologyTemplate().setPolicies(new JpaToscaPolicies());
serviceTemplate.getTopologyTemplate().getPolicies().getConceptMap().put(policyKey, toscaPolicy);
return serviceTemplate;
}
@Override
- public LegacyOperationalPolicy fromToscaServiceTemplate(final ToscaServiceTemplate serviceTemplate) {
+ public LegacyOperationalPolicy fromToscaServiceTemplate(final JpaToscaServiceTemplate serviceTemplate) {
ToscaUtils.assertPoliciesExist(serviceTemplate);
if (serviceTemplate.getTopologyTemplate().getPolicies().getConceptMap().size() > 1) {
}
// Get the policy
- final ToscaPolicy toscaPolicy =
+ final JpaToscaPolicy toscaPolicy =
serviceTemplate.getTopologyTemplate().getPolicies().getAll(null).iterator().next();
final LegacyOperationalPolicy legacyOperationalPolicy = new LegacyOperationalPolicy();
throw new PfModelRuntimeException(Response.Status.BAD_REQUEST, errorMessage);
}
- final String content = toscaPolicy.getProperties().get("Content");
- if (toscaPolicy.getProperties() == null) {
- String errorMessage = "property \"Content\" not defined on TOSCA policy";
+ String content = toscaPolicy.getProperties().get(CONTENT_PROPERTY);
+
+ if (content == null) {
+ String errorMessage = "property \"content\" not defined on TOSCA policy";
LOGGER.warn(errorMessage);
throw new PfModelRuntimeException(Response.Status.BAD_REQUEST, errorMessage);
}
legacyOperationalPolicy.setContent(content);
+ String controllerName = toscaPolicy.getProperties().get(CONTROLLER_PROPERTY);
+ if (controllerName != null) {
+ legacyOperationalPolicy.setControllerName(controllerName);
+ }
+
return legacyOperationalPolicy;
}
}