Actor redesign.
[policy/models.git] / models-interactions / model-actors / actor.sdnc / src / main / java / org / onap / policy / controlloop / actor / sdnc / SdncActorServiceProvider.java
index 24d019f..13276f9 100644 (file)
@@ -4,7 +4,7 @@
  * ================================================================================
  * 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.
@@ -26,10 +26,14 @@ import com.google.common.collect.ImmutableList;
 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;
@@ -45,10 +49,13 @@ import org.onap.policy.sdnc.SdncRequest;
 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";
 
@@ -62,8 +69,36 @@ public class SdncActorServiceProvider implements Actor {
     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() {
@@ -93,16 +128,15 @@ public class SdncActorServiceProvider implements 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;
         }
     }
@@ -199,4 +233,6 @@ public class SdncActorServiceProvider implements Actor {
         request.setHealRequest(healRequest);
         return request;
     }
+
+    // **HERE**
 }