package org.onap.policy.controlloop.actor.sdnc;
-import java.util.UUID;
+import java.util.List;
import org.apache.commons.lang3.StringUtils;
-import org.onap.policy.controlloop.actorserviceprovider.controlloop.ControlLoopEventContext;
+import org.onap.policy.controlloop.actorserviceprovider.OperationProperties;
import org.onap.policy.controlloop.actorserviceprovider.parameters.ControlLoopOperationParams;
import org.onap.policy.controlloop.actorserviceprovider.parameters.HttpConfig;
import org.onap.policy.sdnc.SdncHealRequest;
import org.onap.policy.sdnc.SdncRequest;
public class BandwidthOnDemandOperation extends SdncOperation {
- public static final String NAME = "BandwidthOnDemand";
- public static final String URI = "/GENERIC-RESOURCE-API:vf-module-topology-operation";
+ public static final String NAME = "BandwidthOnDemand";
// fields in the enrichment data
public static final String SERVICE_ID_KEY = "service-instance.service-instance-id";
+ public static final String BANDWIDTH = "bandwidth";
+ public static final String BANDWIDTH_CHANGE_TIME = "bandwidth-change-time";
public static final String VNF_ID = "vnfId";
+ // @formatter:off
+ private static final List<String> PROPERTY_NAMES = List.of(
+ OperationProperties.ENRICHMENT_SERVICE_ID,
+ OperationProperties.ENRICHMENT_BANDWIDTH,
+ OperationProperties.ENRICHMENT_BANDWIDTH_CHANGE_TIME,
+ OperationProperties.ENRICHMENT_VNF_ID);
+ // @formatter:on
+
/**
* Constructs the object.
*
* @param config configuration for this operation
*/
public BandwidthOnDemandOperation(ControlLoopOperationParams params, HttpConfig config) {
- super(params, config);
+ super(params, config, PROPERTY_NAMES);
}
@Override
protected SdncRequest makeRequest(int attempt) {
- ControlLoopEventContext context = params.getContext();
-
- String serviceInstance = context.getEnrichment().get(SERVICE_ID_KEY);
+ String serviceInstance = getOptProperty(OperationProperties.ENRICHMENT_SERVICE_ID, SERVICE_ID_KEY);
if (StringUtils.isBlank(serviceInstance)) {
throw new IllegalArgumentException("missing enrichment data, " + SERVICE_ID_KEY);
}
SdncHealVfModuleParameter bandwidth = new SdncHealVfModuleParameter();
- bandwidth.setName("bandwidth");
- bandwidth.setValue(context.getEnrichment().get("bandwidth"));
+ bandwidth.setName(BANDWIDTH);
+ bandwidth.setValue(getOptProperty(OperationProperties.ENRICHMENT_BANDWIDTH, BANDWIDTH));
SdncHealVfModuleParameter timeStamp = new SdncHealVfModuleParameter();
- timeStamp.setName("bandwidth-change-time");
- timeStamp.setValue(context.getEnrichment().get("bandwidth-change-time"));
+ timeStamp.setName(BANDWIDTH_CHANGE_TIME);
+ timeStamp.setValue(getOptProperty(OperationProperties.ENRICHMENT_BANDWIDTH_CHANGE_TIME, BANDWIDTH_CHANGE_TIME));
SdncHealVfModuleParametersInfo vfParametersInfo = new SdncHealVfModuleParametersInfo();
vfParametersInfo.addParameters(bandwidth);
SdncHealRequestHeaderInfo headerInfo = new SdncHealRequestHeaderInfo();
headerInfo.setSvcAction("update");
- headerInfo.setSvcRequestId(UUID.randomUUID().toString());
+ headerInfo.setSvcRequestId(getSubRequestId());
SdncRequest request = new SdncRequest();
request.setNsInstanceId(serviceInstance);
- request.setRequestId(context.getRequestId());
- request.setUrl(URI);
+ request.setRequestId(params.getRequestId());
+ request.setUrl("/" + getPath());
SdncHealVnfInfo vnfInfo = new SdncHealVnfInfo();
- vnfInfo.setVnfId(context.getEnrichment().get(VNF_ID));
+ vnfInfo.setVnfId(getOptProperty(OperationProperties.ENRICHMENT_VNF_ID, VNF_ID));
SdncHealVfModuleInfo vfModuleInfo = new SdncHealVfModuleInfo();
vfModuleInfo.setVfModuleId("");