package org.onap.clamp.policy.operational;
-import com.google.gson.JsonObject;
+import com.att.eelf.configuration.EELFLogger;
+import com.att.eelf.configuration.EELFManager;
import java.util.List;
import java.util.Set;
import java.util.stream.Collectors;
+import org.onap.clamp.clds.tosca.update.ToscaConverterWithDictionarySupport;
import org.onap.clamp.loop.Loop;
+import org.onap.clamp.loop.template.PolicyModelsRepository;
import org.onap.clamp.policy.PolicyService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
private final OperationalPolicyRepository operationalPolicyRepository;
+ private final PolicyModelsRepository policyModelsRepository;
+
+ private static final EELFLogger logger = EELFManager.getInstance().getLogger(OperationalPolicyService.class);
+
@Autowired
- public OperationalPolicyService(OperationalPolicyRepository repository) {
+ public OperationalPolicyService(OperationalPolicyRepository repository,
+ PolicyModelsRepository policyModelsRepository) {
this.operationalPolicyRepository = repository;
+ this.policyModelsRepository = policyModelsRepository;
}
@Override
.map(policy ->
operationalPolicyRepository
.findById(policy.getName())
- .map(p -> setConfigurationJson(p, policy))
- .orElse(new OperationalPolicy(policy.getName(), loop,
- policy.getConfigurationsJson(),
- policy.getPolicyModel(), null, policy.getPdpGroup(), policy.getPdpSubgroup())))
+ .map(p -> setConfiguration(p, policy))
+ .orElse(initializeMissingFields(loop, policy)))
.collect(Collectors.toSet());
}
return operationalPolicyRepository.existsById(policyName);
}
- private OperationalPolicy setConfigurationJson(OperationalPolicy policy, OperationalPolicy newPolicy) {
+ private OperationalPolicy initializeMissingFields(Loop loop, OperationalPolicy policy) {
+ policy.setLoop(loop);
+ return policy;
+ }
+
+ private OperationalPolicy setConfiguration(OperationalPolicy policy, OperationalPolicy newPolicy) {
policy.setConfigurationsJson(newPolicy.getConfigurationsJson());
policy.setPdpGroup(newPolicy.getPdpGroup());
policy.setPdpSubgroup(newPolicy.getPdpSubgroup());
return policy;
}
+
+ /**
+ * Api to refresh the Operational Policy UI window.
+ *
+ * @param operationalPolicy The operational policy object
+ * @param toscaConverter the tosca converter required to convert the tosca model to json schema
+ */
+ public void refreshOperationalPolicyJsonRepresentation(OperationalPolicy operationalPolicy,
+ ToscaConverterWithDictionarySupport toscaConverter) {
+ operationalPolicy.updateJsonRepresentation(toscaConverter, operationalPolicy.getLoop().getModelService());
+ this.operationalPolicyRepository.saveAndFlush(operationalPolicy);
+ }
}