import java.util.List;
import java.util.Set;
import java.util.stream.Collectors;
-import org.onap.clamp.policy.PolicyService;
import org.onap.clamp.loop.Loop;
+import org.onap.clamp.policy.PolicyService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@Service
public class OperationalPolicyService implements PolicyService<OperationalPolicy> {
- private final OperationalPolicyRepository repository;
+ private final OperationalPolicyRepository operationalPolicyRepository;
@Autowired
public OperationalPolicyService(OperationalPolicyRepository repository) {
- this.repository = repository;
+ this.operationalPolicyRepository = repository;
}
@Override
public Set<OperationalPolicy> updatePolicies(Loop loop, List<OperationalPolicy> operationalPolicies) {
return operationalPolicies
- .stream()
- .map(policy ->
- repository
- .findById(policy.getName())
- .map(p -> setConfigurationJson(p, policy.getConfigurationsJson()))
- .orElse(new OperationalPolicy(policy.getName(), loop, policy.getConfigurationsJson())))
- .collect(Collectors.toSet());
+ .parallelStream()
+ .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())))
+ .collect(Collectors.toSet());
}
@Override
public boolean isExisting(String policyName) {
- return repository.existsById(policyName);
+ return operationalPolicyRepository.existsById(policyName);
}
- private OperationalPolicy setConfigurationJson(OperationalPolicy policy, JsonObject configurationsJson) {
- policy.setConfigurationsJson(configurationsJson);
+ private OperationalPolicy setConfigurationJson(OperationalPolicy policy, OperationalPolicy newPolicy) {
+ policy.setConfigurationsJson(newPolicy.getConfigurationsJson());
+ policy.setPdpGroup(newPolicy.getPdpGroup());
+ policy.setPdpSubgroup(newPolicy.getPdpSubgroup());
return policy;
}
}