* ================================================================================
* Copyright (C) 2018-2019 Huawei Intellectual Property. All rights reserved.
* Modifications Copyright (C) 2019 Nordix Foundation.
- * Modifications Copyright (C) 2019 AT&T Intellectual Property.
+ * Modifications Copyright (C) 2019-2020 AT&T Intellectual Property.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
import com.google.common.collect.ImmutableMap;
import java.util.Collections;
import java.util.List;
+import java.util.Map;
import java.util.UUID;
+import java.util.function.Function;
import org.onap.policy.controlloop.ControlLoopOperation;
import org.onap.policy.controlloop.VirtualControlLoopEvent;
-import org.onap.policy.controlloop.actorserviceprovider.spi.Actor;
+import org.onap.policy.controlloop.actorserviceprovider.Util;
+import org.onap.policy.controlloop.actorserviceprovider.impl.ActorImpl;
+import org.onap.policy.controlloop.actorserviceprovider.parameters.HttpActorParams;
import org.onap.policy.controlloop.policy.Policy;
import org.onap.policy.sdnc.SdncHealNetworkInfo;
import org.onap.policy.sdnc.SdncHealRequest;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-
-public class SdncActorServiceProvider implements Actor {
+public class SdncActorServiceProvider extends ActorImpl {
private static final Logger logger = LoggerFactory.getLogger(SdncActorServiceProvider.class);
+ public static final String NAME = "SDNC";
+
+ // TODO old code: remove lines down to **HERE**
+
// Strings for Sdnc Actor
private static final String SDNC_ACTOR = "SDNC";
private static final String RECIPE_BW_ON_DEMAND = "BandwidthOnDemand";
private static final ImmutableList<String> recipes = ImmutableList.of(RECIPE_REROUTE);
- private static final ImmutableMap<String, List<String>> targets =
- new ImmutableMap.Builder<String, List<String>>().put(RECIPE_REROUTE, ImmutableList.of(TARGET_VM)).build();
+ private static final ImmutableMap<String, List<String>> targets = new ImmutableMap.Builder<String, List<String>>()
+ .put(RECIPE_REROUTE, ImmutableList.of(TARGET_VM)).build();
+
+ // **HERE**
+
+ /**
+ * Constructs the object.
+ */
+ public SdncActorServiceProvider() {
+ // @formatter:off
+ super(NAME,
+ new RerouteOperator(NAME),
+ new BandwidthOnDemandOperator(NAME));
+
+ // @formatter:on
+ }
+
+ @Override
+ protected Function<String, Map<String, Object>> makeOperatorParameters(Map<String, Object> actorParameters) {
+ String actorName = getName();
+
+ // @formatter:off
+ return Util.translate(actorName, actorParameters, HttpActorParams.class)
+ .doValidation(actorName)
+ .makeOperationParameters(actorName);
+ // @formatter:on
+ }
+
+
+ // TODO old code: remove lines down to **HERE**
@Override
public String actor() {
* @param policy the policy
* @return the constructed request
*/
- public SdncRequest constructRequest(VirtualControlLoopEvent onset, ControlLoopOperation operation,
- Policy policy) {
+ public SdncRequest constructRequest(VirtualControlLoopEvent onset, ControlLoopOperation operation, Policy policy) {
switch (policy.getRecipe()) {
case RECIPE_REROUTE:
return constructReOptimizeRequest(onset);
case RECIPE_BW_ON_DEMAND:
- logger.info("Construct request for receipe {}" , RECIPE_BW_ON_DEMAND);
+ logger.info("Construct request for receipe {}", RECIPE_BW_ON_DEMAND);
return constructBwOnDemandRequest(onset);
default:
- logger.info("Unsupported recipe {} " + policy.getRecipe());
+ logger.info("Unsupported recipe {}", policy.getRecipe());
return null;
}
}
request.setHealRequest(healRequest);
return request;
}
+
+ // **HERE**
}