* Copyright (C) 2017-2018 AT&T Intellectual Property. All rights
* reserved.
* ================================================================================
+ * Modifications Copyright (c) 2019 Samsung
+ * ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
import org.apache.camel.Exchange;
import org.apache.camel.Handler;
+import org.onap.clamp.clds.client.req.policy.GuardPolicyAttributesConstructor;
import org.onap.clamp.clds.client.req.policy.PolicyClient;
import org.onap.clamp.clds.model.CldsEvent;
import org.onap.clamp.clds.model.properties.ModelProperties;
import org.onap.clamp.clds.model.properties.Policy;
import org.onap.clamp.clds.model.properties.PolicyChain;
+import org.onap.clamp.clds.model.properties.PolicyItem;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
public class GuardPolicyDeleteDelegate {
protected static final EELFLogger logger = EELFManager.getInstance()
- .getLogger(GuardPolicyDeleteDelegate.class);
+ .getLogger(GuardPolicyDeleteDelegate.class);
protected static final EELFLogger metricsLogger = EELFManager.getInstance().getMetricsLogger();
+ private final PolicyClient policyClient;
+
@Autowired
- private PolicyClient policyClient;
+ public GuardPolicyDeleteDelegate(PolicyClient policyClient) {
+ this.policyClient = policyClient;
+ }
/**
* Perform activity. Delete Operational Policy via policy api.
*
- * @param camelExchange
- * The Camel Exchange object containing the properties
+ * @param camelExchange The Camel Exchange object containing the properties
*/
@Handler
public void execute(Exchange camelExchange) {
ModelProperties prop = ModelProperties.create(camelExchange);
Policy policy = prop.getType(Policy.class);
- prop.setCurrentModelElementId(policy.getId());
+
String eventAction = (String) camelExchange.getProperty("eventAction");
- String responseMessage = "";
if (!eventAction.equalsIgnoreCase(CldsEvent.ACTION_CREATE) && policy.isFound()) {
- for (PolicyChain policyChain : policy.getPolicyChains()) {
- prop.setPolicyUniqueId(policyChain.getPolicyId());
- responseMessage = policyClient.deleteBrms(prop);
- }
- if (responseMessage != null) {
- camelExchange.setProperty("operationalPolicyDeleteResponseMessage", responseMessage.getBytes());
+ for (PolicyChain policyChain : prop.getType(Policy.class).getPolicyChains()) {
+ for (PolicyItem policyItem : GuardPolicyAttributesConstructor
+ .getAllPolicyGuardsFromPolicyChain(policyChain)) {
+ prop.setCurrentModelElementId(policy.getId());
+ prop.setPolicyUniqueId(policyChain.getPolicyId());
+ prop.setGuardUniqueId(policyItem.getId());
+ policyClient.deleteGuard(prop);
+ }
}
}
}