- ToscaServiceTemplate createdPolicyTypes = databaseProvider.createPolicyTypes(serviceTemplate);
- if (createdPolicyTypes == null) {
- throw new PolicyApiException("Error preloading policy types: " + serviceTemplate);
- } else {
- LOGGER.debug("Created initial policy types in DB - {}", createdPolicyTypes);
+
+ ToscaServiceTemplate singleEntity =
+ coder.decode(entityAsStringYaml, ToscaServiceTemplate.class);
+ if (singleEntity == null) {
+ throw new PolicyApiException("Error deserializaing entity from file: " + entity);
+ }
+
+ // Consolidate data types and policy types
+ if (singleEntity.getDataTypes() != null) {
+ serviceTemplate.getDataTypes().putAll(singleEntity.getDataTypes());
+ }
+ if (singleEntity.getPolicyTypes() != null) {
+ serviceTemplate.getPolicyTypes().putAll(singleEntity.getPolicyTypes());
+ }
+
+ // Consolidate policies
+ ToscaTopologyTemplate topologyTemplate = singleEntity.getToscaTopologyTemplate();
+ if (topologyTemplate != null && topologyTemplate.getPolicies() != null) {
+ serviceTemplate.setToscaTopologyTemplate(new ToscaTopologyTemplate());
+ serviceTemplate.getToscaTopologyTemplate().setPolicies(new LinkedList<>());
+ serviceTemplate.getToscaTopologyTemplate().getPolicies()
+ .addAll(singleEntity.getToscaTopologyTemplate().getPolicies());