Remove legacy actor code from models 26/108826/3
authorJim Hahn <jrh3@att.com>
Mon, 13 Jul 2020 20:06:57 +0000 (16:06 -0400)
committerJim Hahn <jrh3@att.com>
Mon, 13 Jul 2020 20:07:54 +0000 (16:07 -0400)
Deleted legacy actor code.  That includes deleting most of the
XxxManager classes.

Issue-ID: POLICY-2559
Change-Id: I1ef1b900ca1d23e88da64b2c95a18986feb1b765
Signed-off-by: Jim Hahn <jrh3@att.com>
24 files changed:
models-interactions/model-actors/actor.appc/src/main/java/org/onap/policy/controlloop/actor/appc/AppcActor.java
models-interactions/model-actors/actor.appc/src/test/java/org/onap/policy/controlloop/actor/appc/AppcActorTest.java
models-interactions/model-actors/actor.appclcm/src/main/java/org/onap/policy/controlloop/actor/appclcm/AppcLcmActor.java
models-interactions/model-actors/actor.appclcm/src/test/java/org/onap/policy/controlloop/actor/appclcm/AppcLcmActorTest.java
models-interactions/model-actors/actor.cds/src/main/java/org/onap/policy/controlloop/actor/cds/CdsActor.java
models-interactions/model-actors/actor.cds/src/test/java/org/onap/policy/controlloop/actor/cds/CdsActorTest.java
models-interactions/model-actors/actor.sdnc/src/main/java/org/onap/policy/controlloop/actor/sdnc/SdncActor.java
models-interactions/model-actors/actor.sdnc/src/test/java/org/onap/policy/controlloop/actor/sdnc/SdncActorTest.java
models-interactions/model-actors/actor.sdnr/src/main/java/org/onap/policy/controlloop/actor/sdnr/SdnrActor.java
models-interactions/model-actors/actor.sdnr/src/test/java/org/onap/policy/controlloop/actor/sdnr/SdnrActorTest.java
models-interactions/model-actors/actor.so/src/main/java/org/onap/policy/controlloop/actor/so/SoActor.java
models-interactions/model-actors/actor.so/src/test/java/org/onap/policy/controlloop/actor/so/SoActorTest.java
models-interactions/model-actors/actor.vfc/src/main/java/org/onap/policy/controlloop/actor/vfc/VfcActor.java
models-interactions/model-actors/actor.vfc/src/test/java/org/onap/policy/controlloop/actor/vfc/VfcActorTest.java
models-interactions/model-actors/actorServiceProvider/src/main/java/org/onap/policy/controlloop/actorserviceprovider/impl/ActorImpl.java
models-interactions/model-actors/actorServiceProvider/src/main/java/org/onap/policy/controlloop/actorserviceprovider/spi/Actor.java
models-interactions/model-actors/actorServiceProvider/src/test/java/org/onap/policy/controlloop/actorserviceprovider/ActorServiceProviderTest.java [deleted file]
models-interactions/model-actors/actorServiceProvider/src/test/java/org/onap/policy/controlloop/actorserviceprovider/DummyActor.java
models-interactions/model-impl/sdnc/src/main/java/org/onap/policy/sdnc/SdncManager.java [deleted file]
models-interactions/model-impl/sdnc/src/test/java/org/onap/policy/sdnc/SdncManagerTest.java [deleted file]
models-interactions/model-impl/so/src/main/java/org/onap/policy/so/SoManager.java [deleted file]
models-interactions/model-impl/so/src/test/java/org/onap/policy/so/SoManagerTest.java [deleted file]
models-interactions/model-impl/vfc/src/main/java/org/onap/policy/vfc/VfcManager.java [deleted file]
models-interactions/model-impl/vfc/src/test/java/org/onap/policy/vfc/VfcManagerTest.java [deleted file]

index 8634fbf..72309b0 100644 (file)
 
 package org.onap.policy.controlloop.actor.appc;
 
-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.Map.Entry;
-import org.onap.policy.appc.CommonHeader;
-import org.onap.policy.appc.Request;
-import org.onap.policy.common.utils.coder.CoderException;
-import org.onap.policy.common.utils.coder.StandardCoder;
-import org.onap.policy.controlloop.ControlLoopOperation;
-import org.onap.policy.controlloop.VirtualControlLoopEvent;
 import org.onap.policy.controlloop.actorserviceprovider.impl.BidirectionalTopicActor;
 import org.onap.policy.controlloop.actorserviceprovider.impl.BidirectionalTopicOperator;
 import org.onap.policy.controlloop.actorserviceprovider.parameters.BidirectionalTopicActorParams;
-import org.onap.policy.controlloop.policy.Policy;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 
 
 public class AppcActor extends BidirectionalTopicActor<BidirectionalTopicActorParams> {
     public static final String NAME = "APPC";
 
-    private static final Logger logger = LoggerFactory.getLogger(AppcActor.class);
-
-    // TODO old code: remove lines down to **HERE**
-
-    private static final StandardCoder coder = new StandardCoder();
-
-    // Strings for targets
-    private static final String TARGET_VM = "VM";
-    private static final String TARGET_VNF = "VNF";
-
-    // Strings for recipes
-    private static final String RECIPE_RESTART = "Restart";
-    private static final String RECIPE_REBUILD = "Rebuild";
-    private static final String RECIPE_MIGRATE = "Migrate";
-    private static final String RECIPE_MODIFY = "ModifyConfig";
-
-    private static final ImmutableList<String> recipes =
-                    ImmutableList.of(RECIPE_RESTART, RECIPE_REBUILD, RECIPE_MIGRATE, RECIPE_MODIFY);
-    private static final ImmutableMap<String, List<String>> targets = new ImmutableMap.Builder<String, List<String>>()
-                    .put(RECIPE_RESTART, ImmutableList.of(TARGET_VM)).put(RECIPE_REBUILD, ImmutableList.of(TARGET_VM))
-                    .put(RECIPE_MIGRATE, ImmutableList.of(TARGET_VM)).put(RECIPE_MODIFY, ImmutableList.of(TARGET_VNF))
-                    .build();
-    private static final ImmutableMap<String, List<String>> payloads = new ImmutableMap.Builder<String, List<String>>()
-                    .put(RECIPE_MODIFY, ImmutableList.of("generic-vnf.vnf-id")).build();
-
-    // **HERE**
-
     /**
      * Constructs the object.
      */
@@ -80,86 +38,4 @@ public class AppcActor extends BidirectionalTopicActor<BidirectionalTopicActorPa
         addOperator(new BidirectionalTopicOperator(NAME, ModifyConfigOperation.NAME, this, AppcOperation.SELECTOR_KEYS,
                         ModifyConfigOperation::new));
     }
-
-    // TODO old code: remove lines down to **HERE**
-
-    @Override
-    public String actor() {
-        return NAME;
-    }
-
-    @Override
-    public List<String> recipes() {
-        return ImmutableList.copyOf(recipes);
-    }
-
-    @Override
-    public List<String> recipeTargets(String recipe) {
-        return ImmutableList.copyOf(targets.getOrDefault(recipe, Collections.emptyList()));
-    }
-
-    @Override
-    public List<String> recipePayloads(String recipe) {
-        return ImmutableList.copyOf(payloads.getOrDefault(recipe, Collections.emptyList()));
-    }
-
-    /**
-     * Constructs an APPC request conforming to the legacy API. The legacy API will be
-     * deprecated in future releases as all legacy functionality is moved into the LCM
-     * API.
-     *
-     * @param onset the event that is reporting the alert for policy to perform an action
-     * @param operation the control loop operation specifying the actor, operation,
-     *        target, etc.
-     * @param policy the policy the was specified from the yaml generated by CLAMP or
-     *        through the Policy GUI/API
-     * @return an APPC request conforming to the legacy API
-     */
-    public static Request constructRequest(VirtualControlLoopEvent onset, ControlLoopOperation operation, Policy policy,
-                    String targetVnf) {
-        /*
-         * Construct an APPC request
-         */
-        Request request = new Request();
-        request.setCommonHeader(new CommonHeader());
-        request.getCommonHeader().setRequestId(onset.getRequestId());
-        request.getCommonHeader().setSubRequestId(operation.getSubRequestId());
-        request.setAction(policy.getRecipe().substring(0, 1).toUpperCase() + policy.getRecipe().substring(1));
-
-        // convert policy payload strings to objects
-        if (policy.getPayload() == null) {
-            logger.info("no APPC payload specified for policy {}", policy.getName());
-        } else {
-            convertPayload(policy.getPayload(), request.getPayload());
-        }
-
-        // add/replace specific values
-        request.getPayload().put("generic-vnf.vnf-id", targetVnf);
-
-        /*
-         * Return the request
-         */
-
-        return request;
-    }
-
-    /**
-     * Converts a payload. The original value is assumed to be a JSON string, which is
-     * decoded into an object.
-     *
-     * @param source source from which to get the values
-     * @param target where to place the decoded values
-     */
-    private static void convertPayload(Map<String, String> source, Map<String, Object> target) {
-        for (Entry<String, String> ent : source.entrySet()) {
-            try {
-                target.put(ent.getKey(), coder.decode(ent.getValue(), Object.class));
-
-            } catch (CoderException e) {
-                logger.warn("cannot decode JSON value {}: {}", ent.getKey(), ent.getValue(), e);
-            }
-        }
-    }
-
-    // **HERE**
 }
index 47773f2..f40cc68 100644 (file)
 package org.onap.policy.controlloop.actor.appc;
 
 import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertTrue;
 
-import java.time.Instant;
 import java.util.Arrays;
-import java.util.HashMap;
-import java.util.UUID;
 import java.util.stream.Collectors;
-import org.junit.AfterClass;
-import org.junit.BeforeClass;
 import org.junit.Test;
-import org.onap.policy.appc.Request;
-import org.onap.policy.appc.Response;
-import org.onap.policy.appc.ResponseCode;
-import org.onap.policy.appc.ResponseStatus;
-import org.onap.policy.appc.util.Serialization;
-import org.onap.policy.common.endpoints.http.server.HttpServletServerFactoryInstance;
-import org.onap.policy.controlloop.ControlLoopEventStatus;
-import org.onap.policy.controlloop.ControlLoopOperation;
-import org.onap.policy.controlloop.ControlLoopTargetType;
-import org.onap.policy.controlloop.VirtualControlLoopEvent;
 import org.onap.policy.controlloop.actor.test.BasicActor;
-import org.onap.policy.controlloop.policy.Policy;
-import org.onap.policy.controlloop.policy.Target;
-import org.onap.policy.controlloop.policy.TargetType;
-import org.onap.policy.simulators.Util;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 
 public class AppcActorTest extends BasicActor {
 
-    private static final String GENERIC_VNF_ID = "generic-vnf.vnf-id";
-
-    private static final String MODIFY_CONFIG = "ModifyConfig";
-
-    private static final String JSON_OUTPUT = "JSON Output: \n";
-
-    private static final Logger logger = LoggerFactory.getLogger(AppcActorTest.class);
-
-    private static final VirtualControlLoopEvent onsetEvent;
-    private static final ControlLoopOperation operation;
-    private static final Policy policy;
-
-    private static final String KEY1 = "my-keyA";
-    private static final String KEY2 = "my-keyB";
-    private static final String SUBKEY = "sub-key";
-
-    private static final String VALUE1 = "'my-value'".replace('\'', '"');
-    private static final String VALUE2 = "{'sub-key':20}".replace('\'', '"');
-    private static final String SUBVALUE = "20";
-
-    static {
-        /*
-         * Construct an onset with an AAI subtag containing generic-vnf.vnf-id and a
-         * target type of VM.
-         */
-        onsetEvent = new VirtualControlLoopEvent();
-        onsetEvent.setClosedLoopControlName("closedLoopControlName-Test");
-        onsetEvent.setRequestId(UUID.randomUUID());
-        onsetEvent.setClosedLoopEventClient("tca.instance00001");
-        onsetEvent.setTargetType(ControlLoopTargetType.VNF);
-        onsetEvent.setTarget("generic-vnf.vnf-name");
-        onsetEvent.setFrom("DCAE");
-        onsetEvent.setClosedLoopAlarmStart(Instant.now());
-        onsetEvent.setAai(new HashMap<>());
-        onsetEvent.getAai().put("generic-vnf.vnf-name", "fw0001vm001fw001");
-        onsetEvent.setClosedLoopEventStatus(ControlLoopEventStatus.ONSET);
-
-        /* Construct an operation with an APPC actor and ModifyConfig operation. */
-        operation = new ControlLoopOperation();
-        operation.setActor("APPC");
-        operation.setOperation(MODIFY_CONFIG);
-        operation.setTarget("VNF");
-        operation.setEnd(Instant.now());
-        operation.setSubRequestId("1");
-
-        /* Construct a policy specifying to modify configuration. */
-        policy = new Policy();
-        policy.setName("Modify Packet Generation Config");
-        policy.setDescription("Upon getting the trigger event, modify packet gen config");
-        policy.setActor("APPC");
-        policy.setTarget(new Target(TargetType.VNF));
-        policy.getTarget().setResourceID("Eace933104d443b496b8.nodes.heat.vpg");
-        policy.setRecipe(MODIFY_CONFIG);
-        policy.setPayload(null);
-        policy.setRetry(2);
-        policy.setTimeout(300);
-
-    }
-
-    /**
-     * Set up before test class.
-     *
-     * @throws Exception if the A&AI simulator cannot be started
-     */
-    @BeforeClass
-    public static void setUpSimulator() throws Exception {
-        Util.buildAaiSim();
-    }
-
-    /**
-     * Tear down after test class.
-     */
-    @AfterClass
-    public static void tearDownSimulator() {
-        HttpServletServerFactoryInstance.getServerFactory().destroy();
-    }
-
     @Test
     public void testConstructor() {
         AppcActor prov = new AppcActor();
@@ -148,112 +47,4 @@ public class AppcActorTest extends BasicActor {
         // verify that it all plugs into the ActorService
         verifyActorService(AppcActor.NAME, "service.yaml");
     }
-
-    @Test
-    public void testConstructModifyConfigRequest() {
-        policy.setPayload(new HashMap<>());
-        policy.getPayload().put(KEY1, VALUE1);
-        policy.getPayload().put(KEY2, VALUE2);
-
-        Request appcRequest;
-        appcRequest = AppcActor.constructRequest(onsetEvent, operation, policy, "vnf01");
-
-        /* The service provider must return a non null APPC request */
-        assertNotNull(appcRequest);
-
-        /* A common header is required and cannot be null */
-        assertNotNull(appcRequest.getCommonHeader());
-        assertEquals(appcRequest.getCommonHeader().getRequestId(), onsetEvent.getRequestId());
-
-        /* An action is required and cannot be null */
-        assertNotNull(appcRequest.getAction());
-        assertEquals(MODIFY_CONFIG, appcRequest.getAction());
-
-        /* A payload is required and cannot be null */
-        assertNotNull(appcRequest.getPayload());
-        assertTrue(appcRequest.getPayload().containsKey(GENERIC_VNF_ID));
-        assertNotNull(appcRequest.getPayload().get(GENERIC_VNF_ID));
-        assertTrue(appcRequest.getPayload().containsKey(KEY1));
-        assertTrue(appcRequest.getPayload().containsKey(KEY2));
-
-        logger.debug("APPC Request: \n" + appcRequest.toString());
-
-        /* Print out request as json to make sure serialization works */
-        String jsonRequest = Serialization.gsonPretty.toJson(appcRequest);
-        logger.debug(JSON_OUTPUT + jsonRequest);
-
-        /* The JSON string must contain the following fields */
-        assertTrue(jsonRequest.contains("CommonHeader"));
-        assertTrue(jsonRequest.contains("Action"));
-        assertTrue(jsonRequest.contains(MODIFY_CONFIG));
-        assertTrue(jsonRequest.contains("Payload"));
-        assertTrue(jsonRequest.contains(GENERIC_VNF_ID));
-        assertTrue(jsonRequest.contains(KEY1));
-        assertTrue(jsonRequest.contains(KEY2));
-        assertTrue(jsonRequest.contains(SUBKEY));
-        assertTrue(jsonRequest.contains(SUBVALUE));
-        assertFalse(jsonRequest.contains(SUBVALUE + ".0"));
-
-        Response appcResponse = new Response(appcRequest);
-        appcResponse.setStatus(new ResponseStatus());
-        appcResponse.getStatus().setCode(ResponseCode.SUCCESS.getValue());
-        appcResponse.getStatus().setDescription("AppC success");
-        /* Print out request as json to make sure serialization works */
-        String jsonResponse = Serialization.gsonPretty.toJson(appcResponse);
-        logger.debug(JSON_OUTPUT + jsonResponse);
-    }
-
-    @Test
-    public void testConstructModifyConfigRequest_NullPayload() {
-
-        Request appcRequest;
-        appcRequest = AppcActor.constructRequest(onsetEvent, operation, policy, "vnf01");
-
-        /* The service provider must return a non null APPC request */
-        assertNotNull(appcRequest);
-
-        /* A common header is required and cannot be null */
-        assertNotNull(appcRequest.getCommonHeader());
-        assertEquals(appcRequest.getCommonHeader().getRequestId(), onsetEvent.getRequestId());
-
-        /* An action is required and cannot be null */
-        assertNotNull(appcRequest.getAction());
-        assertEquals(MODIFY_CONFIG, appcRequest.getAction());
-
-        /* A payload is required and cannot be null */
-        assertNotNull(appcRequest.getPayload());
-        assertTrue(appcRequest.getPayload().containsKey(GENERIC_VNF_ID));
-        assertNotNull(appcRequest.getPayload().get(GENERIC_VNF_ID));
-
-        logger.debug("APPC Request: \n" + appcRequest.toString());
-
-        /* Print out request as json to make sure serialization works */
-        String jsonRequest = Serialization.gsonPretty.toJson(appcRequest);
-        logger.debug(JSON_OUTPUT + jsonRequest);
-
-        /* The JSON string must contain the following fields */
-        assertTrue(jsonRequest.contains("CommonHeader"));
-        assertTrue(jsonRequest.contains("Action"));
-        assertTrue(jsonRequest.contains(MODIFY_CONFIG));
-        assertTrue(jsonRequest.contains("Payload"));
-        assertTrue(jsonRequest.contains(GENERIC_VNF_ID));
-
-        Response appcResponse = new Response(appcRequest);
-        appcResponse.setStatus(new ResponseStatus());
-        appcResponse.getStatus().setCode(ResponseCode.SUCCESS.getValue());
-        appcResponse.getStatus().setDescription("AppC success");
-        /* Print out request as json to make sure serialization works */
-        String jsonResponse = Serialization.gsonPretty.toJson(appcResponse);
-        logger.debug(JSON_OUTPUT + jsonResponse);
-    }
-
-    @Test
-    public void testMethods() {
-        AppcActor sp = new AppcActor();
-
-        assertEquals("APPC", sp.actor());
-        assertEquals(4, sp.recipes().size());
-        assertEquals("VM", sp.recipeTargets("Restart").get(0));
-        assertEquals(0, sp.recipePayloads("Restart").size());
-    }
 }
index 04ef55a..cfb7f63 100644 (file)
 
 package org.onap.policy.controlloop.actor.appclcm;
 
-import com.google.common.collect.ImmutableList;
-import com.google.common.collect.ImmutableMap;
-import java.util.AbstractMap;
-import java.util.AbstractMap.SimpleEntry;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-import org.onap.policy.appclcm.AppcLcmBody;
-import org.onap.policy.appclcm.AppcLcmCommonHeader;
-import org.onap.policy.appclcm.AppcLcmDmaapWrapper;
-import org.onap.policy.appclcm.AppcLcmInput;
-import org.onap.policy.appclcm.AppcLcmOutput;
-import org.onap.policy.appclcm.AppcLcmResponseCode;
-import org.onap.policy.controlloop.ControlLoopOperation;
-import org.onap.policy.controlloop.VirtualControlLoopEvent;
 import org.onap.policy.controlloop.actor.appc.AppcOperation;
 import org.onap.policy.controlloop.actor.appc.ModifyConfigOperation;
 import org.onap.policy.controlloop.actorserviceprovider.impl.BidirectionalTopicActor;
 import org.onap.policy.controlloop.actorserviceprovider.impl.BidirectionalTopicOperator;
 import org.onap.policy.controlloop.actorserviceprovider.parameters.BidirectionalTopicActorParams;
-import org.onap.policy.controlloop.policy.Policy;
-import org.onap.policy.controlloop.policy.PolicyResult;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 
 public class AppcLcmActor extends BidirectionalTopicActor<BidirectionalTopicActorParams> {
 
@@ -59,33 +38,6 @@ public class AppcLcmActor extends BidirectionalTopicActor<BidirectionalTopicActo
      */
     public static final String NAME = "APPC";
 
-    private static final Logger logger = LoggerFactory.getLogger(AppcLcmActor.class);
-
-    /* To be used in future releases to restart a single vm */
-    private static final String APPC_VM_ID = "vm-id";
-
-    // Strings for targets
-    private static final String TARGET_VM = "VM";
-    private static final String TARGET_VNF = "VNF";
-
-    // Strings for recipes
-    private static final String RECIPE_RESTART = AppcLcmConstants.OPERATION_RESTART;
-    private static final String RECIPE_REBUILD = AppcLcmConstants.OPERATION_REBUILD;
-    private static final String RECIPE_MIGRATE = AppcLcmConstants.OPERATION_MIGRATE;
-    private static final String RECIPE_MODIFY = AppcLcmConstants.OPERATION_CONFIG_MODIFY;
-
-    /* To be used in future releases when LCM ConfigModify is used */
-    private static final String APPC_REQUEST_PARAMS = "request-parameters";
-    private static final String APPC_CONFIG_PARAMS = "configuration-parameters";
-
-    private static final Set<String> recipes = AppcLcmConstants.OPERATION_NAMES;
-    private static final ImmutableMap<String, List<String>> targets = new ImmutableMap.Builder<String, List<String>>()
-            .put(RECIPE_RESTART, ImmutableList.of(TARGET_VM)).put(RECIPE_REBUILD, ImmutableList.of(TARGET_VM))
-            .put(RECIPE_MIGRATE, ImmutableList.of(TARGET_VM)).put(RECIPE_MODIFY, ImmutableList.of(TARGET_VNF)).build();
-    private static final ImmutableMap<String, List<String>> payloads =
-            new ImmutableMap.Builder<String, List<String>>().put(RECIPE_RESTART, ImmutableList.of(APPC_VM_ID))
-                    .put(RECIPE_MODIFY, ImmutableList.of(APPC_REQUEST_PARAMS, APPC_CONFIG_PARAMS)).build();
-
     /**
      * Constructs the object.
      */
@@ -110,201 +62,4 @@ public class AppcLcmActor extends BidirectionalTopicActor<BidirectionalTopicActo
     public int getSequenceNumber() {
         return -1;
     }
-
-    @Override
-    public String actor() {
-        return NAME;
-    }
-
-    @Override
-    public List<String> recipes() {
-        return ImmutableList.copyOf(recipes);
-    }
-
-    @Override
-    public List<String> recipeTargets(String recipe) {
-        return ImmutableList.copyOf(targets.getOrDefault(recipe, Collections.emptyList()));
-    }
-
-    @Override
-    public List<String> recipePayloads(String recipe) {
-        return ImmutableList.copyOf(payloads.getOrDefault(recipe, Collections.emptyList()));
-    }
-
-    /**
-     * Constructs an APPC request conforming to the lcm API. The actual request is constructed and
-     * then placed in a wrapper object used to send through DMAAP.
-     *
-     * @param onset the event that is reporting the alert for policy to perform an action
-     * @param operation the control loop operation specifying the actor, operation, target, etc.
-     * @param policy the policy the was specified from the yaml generated by CLAMP or through the
-     *        Policy GUI/API
-     * @return an APPC request conforming to the lcm API using the DMAAP wrapper
-     */
-    public static AppcLcmDmaapWrapper constructRequest(VirtualControlLoopEvent onset, ControlLoopOperation operation,
-            Policy policy, String targetVnf) {
-
-        /* Construct an APPC request using LCM Model */
-
-        /*
-         * The actual LCM request is placed in a wrapper used to send through dmaap. The current
-         * version is 2.0 as of R1.
-         */
-        AppcLcmRecipeFormatter lcmRecipeFormatter = new AppcLcmRecipeFormatter(policy.getRecipe());
-
-        AppcLcmDmaapWrapper dmaapRequest = new AppcLcmDmaapWrapper();
-        dmaapRequest.setVersion("2.0");
-        dmaapRequest.setCorrelationId(onset.getRequestId() + "-" + operation.getSubRequestId());
-        dmaapRequest.setRpcName(lcmRecipeFormatter.getUrlRecipe());
-        dmaapRequest.setType("request");
-
-        /* This is the actual request that is placed in the dmaap wrapper. */
-        final AppcLcmInput appcRequest = new AppcLcmInput();
-
-        /* The common header is a required field for all APPC requests. */
-        AppcLcmCommonHeader requestCommonHeader = new AppcLcmCommonHeader();
-        requestCommonHeader.setOriginatorId(onset.getRequestId().toString());
-        requestCommonHeader.setRequestId(onset.getRequestId());
-        requestCommonHeader.setSubRequestId(operation.getSubRequestId());
-
-        appcRequest.setCommonHeader(requestCommonHeader);
-
-        /*
-         * Action Identifiers are required for APPC LCM requests. For R1, the recipes supported by
-         * Policy only require a vnf-id.
-         */
-        HashMap<String, String> requestActionIdentifiers = new HashMap<>();
-        requestActionIdentifiers.put("vnf-id", targetVnf);
-
-        appcRequest.setActionIdentifiers(requestActionIdentifiers);
-
-        /*
-         * An action is required for all APPC requests, this will be the recipe specified in the
-         * policy.
-         */
-        appcRequest.setAction(lcmRecipeFormatter.getBodyRecipe());
-
-        /*
-         * For R1, the payloads will not be required for the Restart, Rebuild, or Migrate recipes.
-         * APPC will populate the payload based on A&AI look up of the vnd-id provided in the action
-         * identifiers.
-         */
-        if (recipeSupportsPayload(policy.getRecipe()) && payloadSupplied(policy.getPayload())) {
-            appcRequest.setPayload(parsePayload(policy.getPayload()));
-        } else {
-            appcRequest.setPayload(null);
-        }
-
-        /*
-         * The APPC request must be wrapped in an input object.
-         */
-        AppcLcmBody body = new AppcLcmBody();
-        body.setInput(appcRequest);
-
-        /*
-         * Once the LCM request is constructed, add it into the body of the dmaap wrapper.
-         */
-        dmaapRequest.setBody(body);
-
-        /* Return the request to be sent through dmaap. */
-        return dmaapRequest;
-    }
-
-    private static boolean payloadSupplied(Map<String, String> payload) {
-        return payload != null && !payload.isEmpty();
-    }
-
-    private static boolean recipeSupportsPayload(String recipe) {
-        return !RECIPE_RESTART.equalsIgnoreCase(recipe) && !RECIPE_REBUILD.equalsIgnoreCase(recipe)
-                && !RECIPE_MIGRATE.equalsIgnoreCase(recipe);
-    }
-
-    private static String parsePayload(Map<String, String> payload) {
-        StringBuilder payloadString = new StringBuilder("{");
-        payload.forEach(
-            (key, value) -> payloadString.append("\"").append(key).append("\": ").append(value).append(","));
-        return payloadString.substring(0, payloadString.length() - 1) + "}";
-    }
-
-    /**
-     * Parses the operation attempt using the subRequestId of APPC response.
-     *
-     * @param subRequestId the sub id used to send to APPC, Policy sets this using the operation
-     *        attempt
-     *
-     * @return the current operation attempt
-     */
-    public static Integer parseOperationAttempt(String subRequestId) {
-        Integer operationAttempt;
-        try {
-            operationAttempt = Integer.parseInt(subRequestId);
-        } catch (NumberFormatException e) {
-            logger.debug("A NumberFormatException was thrown due to error in parsing the operation attempt");
-            return null;
-        }
-        return operationAttempt;
-    }
-
-    /**
-     * Processes the APPC LCM response sent from APPC. Determines if the APPC operation was
-     * successful/unsuccessful and maps this to the corresponding Policy result.
-     *
-     * @param dmaapResponse the dmaap wrapper message that contains the actual APPC reponse inside
-     *        the body field
-     *
-     * @return an key-value pair that contains the Policy result and APPC response message
-     */
-    public static SimpleEntry<PolicyResult, String> processResponse(AppcLcmDmaapWrapper dmaapResponse) {
-        AppcLcmBody appcBody = dmaapResponse.getBody();
-        if (appcBody == null) {
-            throw new NullPointerException("APPC Body is null");
-        }
-
-        /* The actual APPC response is inside the dmaap wrapper's body.input field. */
-        AppcLcmOutput appcResponse = appcBody.getOutput();
-        if (appcResponse == null) {
-            throw new NullPointerException("APPC Response is null");
-        }
-
-        /* The message returned in the APPC response. */
-        String message;
-
-        /* The Policy result determined from the APPC Response. */
-        PolicyResult result;
-
-        /* If there is no status, Policy cannot determine if the request was successful. */
-        if (appcResponse.getStatus() == null) {
-            message = "Policy was unable to parse APP-C response status field (it was null).";
-            return new AbstractMap.SimpleEntry<>(PolicyResult.FAILURE_EXCEPTION, message);
-        }
-
-        /* If there is no code, Policy cannot determine if the request was successful. */
-        String responseValue = AppcLcmResponseCode.toResponseValue(appcResponse.getStatus().getCode());
-        if (responseValue == null) {
-            message = "Policy was unable to parse APP-C response status code field.";
-            return new AbstractMap.SimpleEntry<>(PolicyResult.FAILURE_EXCEPTION, message);
-        }
-
-        /* Save the APPC response's message for Policy notification message. */
-        message = appcResponse.getStatus().getMessage();
-
-        /* Maps the APPC response result to a Policy result. */
-        switch (responseValue) {
-            case AppcLcmResponseCode.ACCEPTED:
-                /* Nothing to do if code is accept, continue processing */
-                result = null;
-                break;
-            case AppcLcmResponseCode.SUCCESS:
-                result = PolicyResult.SUCCESS;
-                break;
-            case AppcLcmResponseCode.FAILURE:
-                result = PolicyResult.FAILURE;
-                break;
-            case AppcLcmResponseCode.REJECT:
-            case AppcLcmResponseCode.ERROR:
-            default:
-                result = PolicyResult.FAILURE_EXCEPTION;
-        }
-        return new AbstractMap.SimpleEntry<>(result, message);
-    }
 }
index e2bbb10..3ac5760 100644 (file)
 package org.onap.policy.controlloop.actor.appclcm;
 
 import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertNull;
 
-import java.time.Instant;
-import java.util.AbstractMap;
-import java.util.HashMap;
-import java.util.UUID;
 import java.util.stream.Collectors;
-import org.junit.AfterClass;
-import org.junit.BeforeClass;
 import org.junit.Test;
-import org.onap.policy.appclcm.AppcLcmBody;
-import org.onap.policy.appclcm.AppcLcmCommonHeader;
-import org.onap.policy.appclcm.AppcLcmDmaapWrapper;
-import org.onap.policy.appclcm.AppcLcmInput;
-import org.onap.policy.appclcm.AppcLcmOutput;
-import org.onap.policy.common.endpoints.http.server.HttpServletServerFactoryInstance;
-import org.onap.policy.controlloop.ControlLoopEventStatus;
-import org.onap.policy.controlloop.ControlLoopOperation;
-import org.onap.policy.controlloop.ControlLoopTargetType;
-import org.onap.policy.controlloop.VirtualControlLoopEvent;
-import org.onap.policy.controlloop.policy.Policy;
-import org.onap.policy.controlloop.policy.PolicyResult;
-import org.onap.policy.controlloop.policy.Target;
-import org.onap.policy.controlloop.policy.TargetType;
-import org.onap.policy.simulators.Util;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 
 public class AppcLcmActorTest {
 
-    private static final String VNF01 = "vnf01";
-
-    private static final String VNF_ID_KEY = "vnf-id";
-
-    private static final String REJECT = "REJECT";
-
-    private static final String PARTIAL_FAILURE = "PARTIAL FAILURE";
-
-    private static final String FAILURE = "FAILURE";
-
-    private static final Logger logger = LoggerFactory.getLogger(AppcLcmActorTest.class);
-
-    private static final VirtualControlLoopEvent onsetEvent;
-    private static final ControlLoopOperation operation;
-    private static final Policy policy;
-    private static final AppcLcmDmaapWrapper dmaapResponse;
-
-    private static final String RECIPE_RESTART = "Restart";
-    private static final String RECIPE_REBUILD = "Rebuild";
-    private static final String RECIPE_MIGRATE = "Migrate";
-
-    static {
-        /*
-         * Construct an onset with an AAI subtag containing generic-vnf.vnf-id and a
-         * target type of VM.
-         */
-        onsetEvent = new VirtualControlLoopEvent();
-        onsetEvent.setClosedLoopControlName("closedLoopControlName-Test");
-        onsetEvent.setRequestId(UUID.randomUUID());
-        onsetEvent.setClosedLoopEventClient("tca.instance00001");
-        onsetEvent.setTargetType(ControlLoopTargetType.VM);
-        onsetEvent.setTarget("generic-vnf.vnf-name");
-        onsetEvent.setFrom("DCAE");
-        onsetEvent.setClosedLoopAlarmStart(Instant.now());
-        onsetEvent.setAai(new HashMap<>());
-        onsetEvent.getAai().put("generic-vnf.vnf-name", "fw0001vm001fw001");
-        onsetEvent.setClosedLoopEventStatus(ControlLoopEventStatus.ONSET);
-
-        /* Construct an operation with an APPC actor and restart operation. */
-        operation = new ControlLoopOperation();
-        operation.setActor("APPC");
-        operation.setOperation(RECIPE_RESTART);
-        operation.setTarget("VM");
-        operation.setEnd(Instant.now());
-        operation.setSubRequestId("1");
-
-        /* Construct a policy specifying to restart vm. */
-        policy = new Policy();
-        policy.setName("Restart the VM");
-        policy.setDescription("Upon getting the trigger event, restart the VM");
-        policy.setActor("APPC");
-        policy.setTarget(new Target(TargetType.VNF));
-        policy.setRecipe(RECIPE_RESTART);
-        policy.setPayload(null);
-        policy.setRetry(2);
-        policy.setTimeout(300);
-
-        /* A sample DMAAP request wrapper. */
-        AppcLcmDmaapWrapper dmaapRequest = new AppcLcmDmaapWrapper();
-        dmaapRequest.setCorrelationId(onsetEvent.getRequestId().toString() + "-" + "1");
-        dmaapRequest.setRpcName(policy.getRecipe().toLowerCase());
-        dmaapRequest.setType("request");
-
-        /* A sample DMAAP response wrapper */
-        dmaapResponse = new AppcLcmDmaapWrapper();
-        dmaapResponse.setCorrelationId(onsetEvent.getRequestId().toString() + "-" + "1");
-        dmaapResponse.setRpcName(policy.getRecipe().toLowerCase());
-        dmaapResponse.setType("response");
-
-        /* A sample APPC LCM request. */
-        AppcLcmInput appcRequest = new AppcLcmInput();
-
-        /* The following code constructs a sample APPC LCM Request */
-        appcRequest.setAction("restart");
-
-        HashMap<String, String> actionIdentifiers = new HashMap<>();
-        actionIdentifiers.put(VNF_ID_KEY, "trial-vnf-003");
-
-        appcRequest.setActionIdentifiers(actionIdentifiers);
-
-        AppcLcmCommonHeader commonHeader = new AppcLcmCommonHeader();
-        commonHeader.setRequestId(onsetEvent.getRequestId());
-        commonHeader.setSubRequestId("1");
-        commonHeader.setOriginatorId(onsetEvent.getRequestId().toString());
-
-        appcRequest.setCommonHeader(commonHeader);
-
-        appcRequest.setPayload(null);
-
-        AppcLcmBody appcBody = new AppcLcmBody();
-        appcBody.setInput(appcRequest);
-
-        dmaapRequest.setBody(appcBody);
-
-        /* The following code constructs a sample APPC LCM Response */
-        AppcLcmOutput appcResponse = new AppcLcmOutput(appcRequest);
-        appcResponse.getStatus().setCode(400);
-        appcResponse.getStatus().setMessage("Restart Successful");
-
-        appcBody.setOutput(appcResponse);
-
-        dmaapResponse.setBody(appcBody);
-    }
-
-    /**
-     * Set up before test class.
-     *
-     * @throws Exception if an error occurs
-     */
-    @BeforeClass
-    public static void setUpSimulator() throws Exception {
-        Util.buildAaiSim();
-    }
-
-    /**
-     * Tear down after test class.
-     */
-    @AfterClass
-    public static void tearDownSimulator() {
-        HttpServletServerFactoryInstance.getServerFactory().destroy();
-    }
-
     @Test
     public void testConstructor() {
         AppcLcmActor prov = new AppcLcmActor();
@@ -186,272 +39,4 @@ public class AppcLcmActorTest {
 
         assertEquals(expected.toString(), actual.toString());
     }
-
-    /**
-     * A test to construct an APPC LCM restart request.
-     */
-    @Test
-    public void constructRestartRequestTest() {
-
-        AppcLcmDmaapWrapper dmaapRequest =
-                        AppcLcmActor.constructRequest(onsetEvent, operation, policy, VNF01);
-
-        /* The service provider must return a non null DMAAP request wrapper */
-        assertNotNull(dmaapRequest);
-
-        /* The DMAAP wrapper's type field must be request */
-        assertEquals("request", dmaapRequest.getType());
-
-        /* The DMAAP wrapper's body field cannot be null */
-        assertNotNull(dmaapRequest.getBody());
-
-        AppcLcmInput appcRequest = dmaapRequest.getBody().getInput();
-
-        /* A common header is required and cannot be null */
-        assertNotNull(appcRequest.getCommonHeader());
-        assertEquals(appcRequest.getCommonHeader().getRequestId(), onsetEvent.getRequestId());
-
-        /* An action is required and cannot be null */
-        assertNotNull(appcRequest.getAction());
-        assertEquals(RECIPE_RESTART, appcRequest.getAction());
-
-        /* Action Identifiers are required and cannot be null */
-        assertNotNull(appcRequest.getActionIdentifiers());
-        assertNotNull(appcRequest.getActionIdentifiers().get(VNF_ID_KEY));
-        assertEquals(VNF01, appcRequest.getActionIdentifiers().get(VNF_ID_KEY));
-
-        logger.debug("APPC Request: \n" + appcRequest.toString());
-    }
-
-    /**
-     * A test to process a successful APPC restart response.
-     */
-    @Test
-    public void processRestartResponseSuccessTest() {
-        AbstractMap.SimpleEntry<PolicyResult, String> result =
-                        AppcLcmActor.processResponse(dmaapResponse);
-        assertEquals(PolicyResult.SUCCESS, result.getKey());
-        assertEquals("Restart Successful", result.getValue());
-    }
-
-    /**
-     * A test to assert that a null pointer exception is thrown if the APPC response body
-     * is null.
-     */
-    @Test(expected = NullPointerException.class)
-    public void processNullBodyResponseTest() {
-        AppcLcmActor.processResponse(new AppcLcmDmaapWrapper());
-    }
-
-    /**
-     * A test to assert that a null pointer exception is thrown if the APPC response
-     * output is null.
-     */
-    @Test(expected = NullPointerException.class)
-    public void processNullOutputResponseTest() {
-        AppcLcmDmaapWrapper dmaapWrapper = new AppcLcmDmaapWrapper();
-        dmaapWrapper.setBody(new AppcLcmBody());
-        AppcLcmActor.processResponse(dmaapWrapper);
-    }
-
-    /**
-     * A test to map APPC response results to corresponding Policy results.
-     */
-    @Test
-    public void appcToPolicyResultTest() {
-
-        AbstractMap.SimpleEntry<PolicyResult, String> result;
-
-        /* If APPC accepts, PolicyResult is null */
-        dmaapResponse.getBody().getOutput().getStatus().setCode(100);
-        dmaapResponse.getBody().getOutput().getStatus().setMessage("ACCEPTED");
-        result = AppcLcmActor.processResponse(dmaapResponse);
-        assertNull(result.getKey());
-
-        /* If APPC is successful, PolicyResult is success */
-        dmaapResponse.getBody().getOutput().getStatus().setCode(400);
-        dmaapResponse.getBody().getOutput().getStatus().setMessage("SUCCESS");
-        result = AppcLcmActor.processResponse(dmaapResponse);
-        assertEquals(PolicyResult.SUCCESS, result.getKey());
-
-        /* If APPC returns an error, PolicyResult is failure exception */
-        dmaapResponse.getBody().getOutput().getStatus().setCode(200);
-        dmaapResponse.getBody().getOutput().getStatus().setMessage("ERROR");
-        result = AppcLcmActor.processResponse(dmaapResponse);
-        assertEquals(PolicyResult.FAILURE_EXCEPTION, result.getKey());
-
-        /* If APPC rejects, PolicyResult is failure exception */
-        dmaapResponse.getBody().getOutput().getStatus().setCode(300);
-        dmaapResponse.getBody().getOutput().getStatus().setMessage(REJECT);
-        result = AppcLcmActor.processResponse(dmaapResponse);
-        assertEquals(PolicyResult.FAILURE_EXCEPTION, result.getKey());
-
-        /* Test multiple reject codes */
-        dmaapResponse.getBody().getOutput().getStatus().setCode(306);
-        dmaapResponse.getBody().getOutput().getStatus().setMessage(REJECT);
-        result = AppcLcmActor.processResponse(dmaapResponse);
-        assertEquals(PolicyResult.FAILURE_EXCEPTION, result.getKey());
-
-        dmaapResponse.getBody().getOutput().getStatus().setCode(313);
-        dmaapResponse.getBody().getOutput().getStatus().setMessage(REJECT);
-        result = AppcLcmActor.processResponse(dmaapResponse);
-        assertEquals(PolicyResult.FAILURE_EXCEPTION, result.getKey());
-
-        /* If APPC returns failure, PolicyResult is failure */
-        dmaapResponse.getBody().getOutput().getStatus().setCode(401);
-        dmaapResponse.getBody().getOutput().getStatus().setMessage(FAILURE);
-        result = AppcLcmActor.processResponse(dmaapResponse);
-        assertEquals(PolicyResult.FAILURE, result.getKey());
-
-        /* Test multiple failure codes */
-        dmaapResponse.getBody().getOutput().getStatus().setCode(406);
-        dmaapResponse.getBody().getOutput().getStatus().setMessage(FAILURE);
-        result = AppcLcmActor.processResponse(dmaapResponse);
-        assertEquals(PolicyResult.FAILURE, result.getKey());
-
-        dmaapResponse.getBody().getOutput().getStatus().setCode(450);
-        dmaapResponse.getBody().getOutput().getStatus().setMessage(FAILURE);
-        result = AppcLcmActor.processResponse(dmaapResponse);
-        assertEquals(PolicyResult.FAILURE, result.getKey());
-
-        /* If APPC returns partial success, PolicyResult is failure exception */
-        dmaapResponse.getBody().getOutput().getStatus().setCode(500);
-        dmaapResponse.getBody().getOutput().getStatus().setMessage("PARTIAL SUCCESS");
-        result = AppcLcmActor.processResponse(dmaapResponse);
-        assertEquals(PolicyResult.FAILURE_EXCEPTION, result.getKey());
-
-        /* If APPC returns partial failure, PolicyResult is failure exception */
-        dmaapResponse.getBody().getOutput().getStatus().setCode(501);
-        dmaapResponse.getBody().getOutput().getStatus().setMessage(PARTIAL_FAILURE);
-        result = AppcLcmActor.processResponse(dmaapResponse);
-        assertEquals(PolicyResult.FAILURE_EXCEPTION, result.getKey());
-
-        /* Test multiple partial failure codes */
-        dmaapResponse.getBody().getOutput().getStatus().setCode(599);
-        dmaapResponse.getBody().getOutput().getStatus().setMessage(PARTIAL_FAILURE);
-        result = AppcLcmActor.processResponse(dmaapResponse);
-        assertEquals(PolicyResult.FAILURE_EXCEPTION, result.getKey());
-
-        dmaapResponse.getBody().getOutput().getStatus().setCode(550);
-        dmaapResponse.getBody().getOutput().getStatus().setMessage(PARTIAL_FAILURE);
-        result = AppcLcmActor.processResponse(dmaapResponse);
-        assertEquals(PolicyResult.FAILURE_EXCEPTION, result.getKey());
-
-        /* If APPC code is unknown to Policy, PolicyResult is failure exception */
-        dmaapResponse.getBody().getOutput().getStatus().setCode(700);
-        dmaapResponse.getBody().getOutput().getStatus().setMessage("UNKNOWN");
-        result = AppcLcmActor.processResponse(dmaapResponse);
-        assertEquals(PolicyResult.FAILURE_EXCEPTION, result.getKey());
-    }
-
-    /*
-     * This test exercises getters not exercised in other tests.
-     */
-    @Test
-    public void testMethods() {
-        AppcLcmActor sp = new AppcLcmActor();
-
-        assertEquals("APPC", sp.actor());
-        assertEquals(4, sp.recipes().size());
-        assertEquals("VM", sp.recipeTargets(RECIPE_RESTART).get(0));
-        assertEquals("vm-id", sp.recipePayloads(RECIPE_RESTART).get(0));
-    }
-
-    @Test
-    public void testPayloadNotPassedWhenNotSupportedByRecipe() {
-        // given
-        Policy migratePolicy = constructPolicyWithRecipe(RECIPE_MIGRATE);
-        Policy rebuildPolicy = constructPolicyWithRecipe(RECIPE_REBUILD);
-        Policy restartPolicy = constructPolicyWithRecipe(RECIPE_RESTART);
-
-        // when
-        AppcLcmDmaapWrapper migrateRequest =
-                        AppcLcmActor.constructRequest(onsetEvent, operation, migratePolicy, VNF01);
-        AppcLcmDmaapWrapper rebuildRequest =
-                        AppcLcmActor.constructRequest(onsetEvent, operation, rebuildPolicy, VNF01);
-        AppcLcmDmaapWrapper restartRequest =
-                        AppcLcmActor.constructRequest(onsetEvent, operation, restartPolicy, VNF01);
-
-        // then
-        assertNull(migrateRequest.getBody().getInput().getPayload());
-        assertNull(rebuildRequest.getBody().getInput().getPayload());
-        assertNull(restartRequest.getBody().getInput().getPayload());
-    }
-
-    @Test
-    public void testPayloadNotPassedWhenNotSuppliedOrEmpty() {
-        // given
-        Policy noPayloadPolicy = constructHealthCheckPolicyWithPayload(null);
-        Policy emptyPayloadPolicy = constructHealthCheckPolicyWithPayload(new HashMap<>());
-
-        // when
-        AppcLcmDmaapWrapper noPayloadRequest =
-                        AppcLcmActor.constructRequest(onsetEvent, operation, noPayloadPolicy, VNF01);
-        AppcLcmDmaapWrapper emptyPayloadRequest =
-                        AppcLcmActor.constructRequest(onsetEvent, operation, emptyPayloadPolicy, VNF01);
-
-        // then
-        assertNull(noPayloadRequest.getBody().getInput().getPayload());
-        assertNull(emptyPayloadRequest.getBody().getInput().getPayload());
-    }
-
-    @Test
-    public void testPayloadParsedProperlyForSinglePayloadParameter() {
-        // given
-        HashMap<String, String> payload = new HashMap<>();
-        payload.put("requestParameters", "{\"host-ip-address\":\"10.183.37.25\"}");
-        Policy otherPolicy = constructHealthCheckPolicyWithPayload(payload);
-
-        // when
-        AppcLcmDmaapWrapper dmaapRequest =
-                        AppcLcmActor.constructRequest(onsetEvent, operation, otherPolicy, VNF01);
-
-        // then
-        assertEquals("{\"requestParameters\": {\"host-ip-address\":\"10.183.37.25\"}}",
-                        dmaapRequest.getBody().getInput().getPayload());
-    }
-
-    @Test
-    public void testPayloadParsedProperlyForMultiplePayloadParameters() {
-        // given
-        HashMap<String, String> payload = new HashMap<>();
-        payload.put("requestParameters", "{\"host-ip-address\":\"10.183.37.25\"}");
-        payload.put("configurationParameters",
-                        "[{\"ip-addr\":\"$.vf-module-topology.vf-module-parameters.param[9]\","
-                                        + "\"oam-ip-addr\":\"$.vf-module-topology.vf-module-parameters.param[16]\","
-                                        + "\"enabled\":\"$.vf-module-topology.vf-module-parameters.param[23]\"}]");
-        Policy otherPolicy = constructHealthCheckPolicyWithPayload(payload);
-
-        // when
-        AppcLcmDmaapWrapper dmaapRequest =
-                        AppcLcmActor.constructRequest(onsetEvent, operation, otherPolicy, VNF01);
-
-        // then
-        assertEquals(dmaapRequest.getBody().getInput().getPayload(), "{\"requestParameters\": "
-                        + "{\"host-ip-address\":\"10.183.37.25\"}," + "\"configurationParameters\": "
-                        + "[{\"ip-addr\":\"$.vf-module-topology.vf-module-parameters.param[9]\","
-                        + "\"oam-ip-addr\":\"$.vf-module-topology.vf-module-parameters.param[16]\","
-                        + "\"enabled\":\"$.vf-module-topology.vf-module-parameters.param[23]\"}]" + "}");
-    }
-
-    private Policy constructHealthCheckPolicyWithPayload(HashMap<String, String> payload) {
-        return constructHealthCheckPolicyWithPayloadAndRecipe(payload, "Health-Check");
-    }
-
-    private Policy constructPolicyWithRecipe(String recipe) {
-        return constructHealthCheckPolicyWithPayloadAndRecipe(null, recipe);
-    }
-
-    private Policy constructHealthCheckPolicyWithPayloadAndRecipe(HashMap<String, String> payload, String recipe) {
-        Policy otherPolicy = new Policy();
-        otherPolicy.setName("Perform health check");
-        otherPolicy.setDescription("Upon getting the trigger event, perform health check");
-        otherPolicy.setActor("APPC");
-        otherPolicy.setTarget(new Target(TargetType.VNF));
-        otherPolicy.setRecipe(recipe);
-        otherPolicy.setPayload(payload);
-        otherPolicy.setRetry(2);
-        otherPolicy.setTimeout(300);
-        return otherPolicy;
-    }
 }
index d630d18..2a49c81 100644 (file)
 
 package org.onap.policy.controlloop.actor.cds;
 
-import com.google.common.base.Preconditions;
-import com.google.common.base.Strings;
-import com.google.protobuf.InvalidProtocolBufferException;
-import com.google.protobuf.Struct;
-import com.google.protobuf.Struct.Builder;
-import com.google.protobuf.util.JsonFormat;
-import io.grpc.Status;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
-import java.util.Optional;
-import java.util.UUID;
-import java.util.concurrent.CountDownLatch;
-import java.util.concurrent.TimeUnit;
-import java.util.concurrent.atomic.AtomicReference;
-import org.onap.ccsdk.cds.controllerblueprints.common.api.ActionIdentifiers;
-import org.onap.ccsdk.cds.controllerblueprints.common.api.CommonHeader;
-import org.onap.ccsdk.cds.controllerblueprints.common.api.EventType;
-import org.onap.ccsdk.cds.controllerblueprints.processing.api.ExecutionServiceInput;
-import org.onap.ccsdk.cds.controllerblueprints.processing.api.ExecutionServiceOutput;
-import org.onap.policy.cds.CdsResponse;
-import org.onap.policy.cds.api.CdsProcessorListener;
-import org.onap.policy.cds.client.CdsProcessorGrpcClient;
-import org.onap.policy.cds.properties.CdsServerProperties;
-import org.onap.policy.common.utils.coder.CoderException;
-import org.onap.policy.controlloop.ControlLoopOperation;
-import org.onap.policy.controlloop.VirtualControlLoopEvent;
 import org.onap.policy.controlloop.actor.cds.constants.CdsActorConstants;
-import org.onap.policy.controlloop.actor.cds.request.CdsActionRequest;
 import org.onap.policy.controlloop.actorserviceprovider.Operator;
 import org.onap.policy.controlloop.actorserviceprovider.impl.ActorImpl;
-import org.onap.policy.controlloop.policy.Policy;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 
 /**
  * CDS is an unusual actor in that it uses a single, generic operator to initiate all
@@ -61,8 +30,6 @@ import org.slf4j.LoggerFactory;
 public class CdsActor extends ActorImpl {
     public static final String NAME = CdsActorConstants.CDS_ACTOR;
 
-    private static final Logger LOGGER = LoggerFactory.getLogger(CdsActor.class);
-
     /**
      * Constructs the object.
      */
@@ -79,210 +46,4 @@ public class CdsActor extends ActorImpl {
          */
         return super.getOperator(GrpcOperation.NAME);
     }
-
-    // TODO old code: remove lines down to **HERE**
-
-    /**
-     * {@inheritDoc}.
-     */
-    @Override
-    public String actor() {
-        return CdsActorConstants.CDS_ACTOR;
-    }
-
-    /**
-     * {@inheritDoc}. Note: This is a placeholder for now.
-     */
-    @Override
-    public List<String> recipes() {
-        return new ArrayList<>();
-    }
-
-    /**
-     * {@inheritDoc}. Note: This is a placeholder for now.
-     */
-    @Override
-    public List<String> recipeTargets(final String recipe) {
-        return new ArrayList<>();
-    }
-
-    /**
-     * {@inheritDoc}. Note: This is a placeholder for now.
-     */
-    @Override
-    public List<String> recipePayloads(final String recipe) {
-        return new ArrayList<>();
-    }
-
-    /**
-     * Build the CDS ExecutionServiceInput request from the policy object and the AAI
-     * enriched parameters. TO-DO: Avoid leaking Exceptions to the Kie Session thread. TBD
-     * item for Frankfurt release.
-     *
-     * @param onset the event that is reporting the alert for policy to perform an action.
-     * @param operation the control loop operation specifying the actor, operation,
-     *        target, etc.
-     * @param policy the policy specified from the yaml generated by CLAMP or through
-     *        Policy API.
-     * @param aaiParams Map of enriched AAI attributes in node.attribute notation.
-     * @return an Optional ExecutionServiceInput instance if valid else an Optional empty
-     *         object is returned.
-     */
-    public Optional<ExecutionServiceInput> constructRequest(VirtualControlLoopEvent onset,
-                    ControlLoopOperation operation, Policy policy, Map<String, String> aaiParams) {
-
-        // For the current operational TOSCA policy model (yaml) CBA name and version are
-        // embedded in the payload
-        // section, with the new policy type model being proposed in Frankfurt we will be
-        // able to move it out.
-        Map<String, String> payload = policy.getPayload();
-        if (!validateCdsMandatoryParams(policy)) {
-            return Optional.empty();
-        }
-        String cbaName = payload.get(CdsActorConstants.KEY_CBA_NAME);
-        String cbaVersion = payload.get(CdsActorConstants.KEY_CBA_VERSION);
-
-        // Retain only the payload by removing CBA name and version once they are
-        // extracted
-        // to be put in CDS request header.
-        payload.remove(CdsActorConstants.KEY_CBA_NAME);
-        payload.remove(CdsActorConstants.KEY_CBA_VERSION);
-
-        // Embed payload from policy to ConfigDeployRequest object, serialize and inject
-        // into grpc request.
-        String cbaActionName = policy.getRecipe();
-        CdsActionRequest request = new CdsActionRequest();
-        request.setPolicyPayload(payload);
-        request.setActionName(cbaActionName);
-        request.setResolutionKey(UUID.randomUUID().toString());
-
-        // Inject AAI properties into payload map. Offer flexibility to the usecase
-        // implementation to inject whatever AAI parameters are of interest to them.
-        // E.g. For vFW usecase El-Alto inject service-instance-id, generic-vnf-id as
-        // needed by CDS.
-        request.setAaiProperties(aaiParams);
-
-        // Inject any additional event parameters that may be present in the onset event
-        if (onset.getAdditionalEventParams() != null) {
-            request.setAdditionalEventParams(onset.getAdditionalEventParams());
-        }
-
-        Builder struct = Struct.newBuilder();
-        try {
-            String requestStr = request.generateCdsPayload();
-            Preconditions.checkState(!Strings.isNullOrEmpty(requestStr),
-                            "Unable to build " + "config-deploy-request from payload parameters: {}", payload);
-            JsonFormat.parser().merge(requestStr, struct);
-        } catch (InvalidProtocolBufferException | CoderException e) {
-            LOGGER.error("Failed to embed CDS payload string into the input request. blueprint({}:{}) for action({})",
-                            cbaName, cbaVersion, cbaActionName, e);
-            return Optional.empty();
-        }
-
-        // Build CDS gRPC request common-header
-        CommonHeader commonHeader = CommonHeader.newBuilder().setOriginatorId(CdsActorConstants.ORIGINATOR_ID)
-                        .setRequestId(onset.getRequestId().toString()).setSubRequestId(operation.getSubRequestId())
-                        .build();
-
-        // Build CDS gRPC request action-identifier
-        ActionIdentifiers actionIdentifiers =
-                        ActionIdentifiers.newBuilder().setBlueprintName(cbaName).setBlueprintVersion(cbaVersion)
-                                        .setActionName(cbaActionName).setMode(CdsActorConstants.CDS_MODE).build();
-
-        // Finally build the ExecutionServiceInput gRPC request object.
-        ExecutionServiceInput executionServiceInput = ExecutionServiceInput.newBuilder().setCommonHeader(commonHeader)
-                        .setActionIdentifiers(actionIdentifiers).setPayload(struct.build()).build();
-        return Optional.of(executionServiceInput);
-    }
-
-    private boolean validateCdsMandatoryParams(Policy policy) {
-        if (policy == null || policy.getPayload() == null) {
-            return false;
-        }
-        Map<String, String> payload = policy.getPayload();
-        String cbaName = payload.get(CdsActorConstants.KEY_CBA_NAME);
-        String cbaVersion = payload.get(CdsActorConstants.KEY_CBA_VERSION);
-        String cbaActionName = policy.getRecipe();
-        return !Strings.isNullOrEmpty(cbaName) && !Strings.isNullOrEmpty(cbaVersion)
-                        && !Strings.isNullOrEmpty(cbaActionName);
-    }
-
-    public class CdsActorServiceManager implements CdsProcessorListener {
-
-        private final AtomicReference<String> cdsStatus = new AtomicReference<>();
-
-        /**
-         * {@inheritDoc}.
-         */
-        @Override
-        public void onMessage(final ExecutionServiceOutput message) {
-            LOGGER.info("Received notification from CDS: {}", message);
-            EventType eventType = message.getStatus().getEventType();
-            switch (eventType) {
-                case EVENT_COMPONENT_FAILURE:
-                    cdsStatus.compareAndSet(null, CdsActorConstants.FAILED);
-                    break;
-                case EVENT_COMPONENT_PROCESSING:
-                    cdsStatus.compareAndSet(null, CdsActorConstants.PROCESSING);
-                    break;
-                case EVENT_COMPONENT_EXECUTED:
-                    cdsStatus.compareAndSet(null, CdsActorConstants.SUCCESS);
-                    break;
-                default:
-                    cdsStatus.compareAndSet(null, CdsActorConstants.FAILED);
-                    break;
-            }
-        }
-
-        /**
-         * {@inheritDoc}.
-         */
-        @Override
-        public void onError(final Throwable throwable) {
-            Status status = Status.fromThrowable(throwable);
-            cdsStatus.compareAndSet(null, CdsActorConstants.ERROR);
-            LOGGER.error("Failed processing blueprint {}", status, throwable);
-        }
-
-        /**
-         * Send gRPC request to CDS to execute the blueprint.
-         *
-         * @param cdsClient CDS grpc client object.
-         * @param cdsProps CDS properties.
-         * @param executionServiceInput a valid CDS grpc request object.
-         * @return the cds response.
-         */
-        public CdsResponse sendRequestToCds(CdsProcessorGrpcClient cdsClient, CdsServerProperties cdsProps,
-                        ExecutionServiceInput executionServiceInput) {
-            try {
-                LOGGER.trace("Start CdsActorServiceProvider.executeCdsBlueprintProcessor {}.", executionServiceInput);
-                // TO-DO: Handle requests asynchronously once the callback support is
-                // added to actors.
-                CountDownLatch countDownLatch = cdsClient.sendRequest(executionServiceInput);
-                boolean status = countDownLatch.await(cdsProps.getTimeout(), TimeUnit.SECONDS);
-                if (!status) {
-                    cdsStatus.compareAndSet(null, CdsActorConstants.TIMED_OUT);
-                }
-                LOGGER.info("CDS status response {}", getCdsStatus());
-            } catch (InterruptedException ex) {
-                LOGGER.error("Caught exception in executeCdsBlueprintProcessor in CdsActorServiceProvider: ", ex);
-                cdsStatus.compareAndSet(null, CdsActorConstants.INTERRUPTED);
-                Thread.currentThread().interrupt();
-            }
-            LOGGER.info("Status of the CDS gRPC request is: {}", getCdsStatus());
-
-            CdsResponse response = new CdsResponse();
-            response.setRequestId(executionServiceInput != null && executionServiceInput.getCommonHeader() != null
-                            ? executionServiceInput.getCommonHeader().getRequestId()
-                            : null);
-            response.setStatus(this.getCdsStatus());
-            return response;
-        }
-
-        String getCdsStatus() {
-            return cdsStatus.get();
-        }
-    }
-
-    // **HERE**
 }
index 706f170..1d84e1c 100644 (file)
 
 package org.onap.policy.controlloop.actor.cds;
 
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertSame;
-import static org.junit.Assert.assertTrue;
-import static org.mockito.ArgumentMatchers.any;
-import static org.mockito.ArgumentMatchers.anyLong;
-import static org.mockito.Mockito.doThrow;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.when;
 
-import com.google.common.collect.ImmutableMap;
-import com.google.protobuf.Struct;
-import java.util.HashMap;
-import java.util.Map;
-import java.util.Optional;
-import java.util.UUID;
-import java.util.concurrent.CountDownLatch;
-import java.util.concurrent.TimeUnit;
-import org.junit.Before;
 import org.junit.Test;
-import org.mockito.Mock;
-import org.mockito.MockitoAnnotations;
-import org.onap.ccsdk.cds.controllerblueprints.common.api.ActionIdentifiers;
-import org.onap.ccsdk.cds.controllerblueprints.common.api.CommonHeader;
-import org.onap.ccsdk.cds.controllerblueprints.common.api.EventType;
-import org.onap.ccsdk.cds.controllerblueprints.common.api.Status;
-import org.onap.ccsdk.cds.controllerblueprints.processing.api.ExecutionServiceInput;
-import org.onap.ccsdk.cds.controllerblueprints.processing.api.ExecutionServiceOutput;
-import org.onap.policy.cds.CdsResponse;
-import org.onap.policy.cds.client.CdsProcessorGrpcClient;
-import org.onap.policy.cds.properties.CdsServerProperties;
-import org.onap.policy.controlloop.ControlLoopOperation;
-import org.onap.policy.controlloop.VirtualControlLoopEvent;
-import org.onap.policy.controlloop.actor.cds.CdsActor.CdsActorServiceManager;
 import org.onap.policy.controlloop.actor.cds.constants.CdsActorConstants;
 import org.onap.policy.controlloop.actor.test.BasicActor;
 import org.onap.policy.controlloop.actorserviceprovider.Operator;
-import org.onap.policy.controlloop.policy.Policy;
 
 public class CdsActorTest extends BasicActor {
 
-    private static final String CDS_BLUEPRINT_NAME = "vfw-cds";
-    private static final String CDS_BLUEPRINT_VERSION = "1.0.0";
-    private static final UUID REQUEST_ID = UUID.randomUUID();
-    private static final String SUBREQUEST_ID = "123456";
-    private static final String CDS_RECIPE = "test-cds-recipe";
-
-    @Mock
-    private CdsProcessorGrpcClient cdsClient;
-    private CdsActor cdsActor;
-    private Policy policy;
-    private CdsServerProperties cdsProps;
-    private Map<String, String> aaiParams;
-    private VirtualControlLoopEvent onset;
-    private ControlLoopOperation operation;
-
-    /**
-     * Test setup.
-     */
-    @Before
-    public void setup() {
-        MockitoAnnotations.initMocks(this);
-
-        // Setup policy
-        policy = new Policy();
-        Map<String, String> payloadMap = new HashMap<String, String>() {
-            private static final long serialVersionUID = 1L;
-
-            {
-                put(CdsActorConstants.KEY_CBA_NAME, CDS_BLUEPRINT_NAME);
-                put(CdsActorConstants.KEY_CBA_VERSION, CDS_BLUEPRINT_VERSION);
-                put("data", "{\"mapInfo\":{\"key\":\"val\"},\"arrayInfo\":[\"one\",\"two\"],\"paramInfo\":\"val\"}");
-            }
-        };
-        policy.setPayload(payloadMap);
-        policy.setRecipe(CDS_RECIPE);
-
-        // Setup the CDS properties
-        cdsProps = new CdsServerProperties();
-        cdsProps.setHost("10.10.10.10");
-        cdsProps.setPort(2000);
-        cdsProps.setUsername("testUser");
-        cdsProps.setPassword("testPassword");
-        cdsProps.setTimeout(1);
-
-        // Setup aaiParams
-        aaiParams = ImmutableMap.of("service-instance-id", "1234", "generic-vnf-id", "5678");
-
-        // Setup cdsClient
-        when(cdsClient.sendRequest(any(ExecutionServiceInput.class))).thenReturn(mock(CountDownLatch.class));
-
-        // Setup the cdsActor
-        cdsActor = new CdsActor();
-
-        // Setup onset event
-        onset = new VirtualControlLoopEvent();
-        onset.setRequestId(REQUEST_ID);
-
-        // Setup controlloop operation object
-        operation = new ControlLoopOperation();
-        operation.setSubRequestId(SUBREQUEST_ID);
-    }
-
-    @Test
-    public void testActor() {
-        assertEquals(CdsActorConstants.CDS_ACTOR, cdsActor.actor());
-    }
-
     @Test
     public void testActorService() {
         // verify that it all plugs into the ActorService
@@ -145,118 +45,4 @@ public class CdsActorTest extends BasicActor {
         assertNotNull(oper);
         assertSame(oper, sp.getOperator("another"));
     }
-
-    @Test
-    public void testConstructRequestWhenMissingCdsParamsInPolicyPayload() {
-        policy.setPayload(new HashMap<>());
-        Optional<ExecutionServiceInput> cdsRequestOpt = cdsActor.constructRequest(onset, operation, policy, aaiParams);
-
-        assertFalse(cdsRequestOpt.isPresent());
-    }
-
-    @Test
-    public void testConstructRequest() {
-        Optional<ExecutionServiceInput> cdsRequestOpt = cdsActor.constructRequest(onset, operation, policy, aaiParams);
-
-        assertTrue(cdsRequestOpt.isPresent());
-        final ExecutionServiceInput cdsRequest = cdsRequestOpt.get();
-
-        assertTrue(cdsRequest.hasCommonHeader());
-        CommonHeader commonHeader = cdsRequest.getCommonHeader();
-        assertEquals(commonHeader.getRequestId(), REQUEST_ID.toString());
-        assertEquals(SUBREQUEST_ID, commonHeader.getSubRequestId());
-
-        assertTrue(cdsRequest.hasPayload());
-        Struct cdsPayload = cdsRequest.getPayload();
-        assertTrue(cdsPayload.containsFields(CDS_RECIPE + "-request"));
-
-        assertTrue(cdsRequest.hasActionIdentifiers());
-        ActionIdentifiers actionIdentifiers = cdsRequest.getActionIdentifiers();
-        assertEquals(CDS_RECIPE, actionIdentifiers.getActionName());
-        assertEquals(CDS_BLUEPRINT_NAME, actionIdentifiers.getBlueprintName());
-        assertEquals(CDS_BLUEPRINT_VERSION, actionIdentifiers.getBlueprintVersion());
-    }
-
-    @Test
-    public void testRecipePayloads() {
-        assertEquals(0, cdsActor.recipePayloads("").size());
-    }
-
-    @Test
-    public void testRecipes() {
-        assertEquals(0, cdsActor.recipes().size());
-    }
-
-    @Test
-    public void testRecipeTargets() {
-        assertEquals(0, cdsActor.recipeTargets("").size());
-    }
-
-    @Test
-    public void testSendRequestToCdsSuccess() {
-        sendRequestToCds();
-        verify(cdsClient).sendRequest(any(ExecutionServiceInput.class));
-    }
-
-    @Test
-    public void testSendRequestToCdsLatchInterrupted() throws InterruptedException {
-        // Reset cdsClient
-        CountDownLatch countDownLatch = mock(CountDownLatch.class);
-        doThrow(new InterruptedException("Test latch interrupted failure")).when(countDownLatch).await(anyLong(),
-            any(TimeUnit.class));
-        when(cdsClient.sendRequest(any(ExecutionServiceInput.class))).thenReturn(countDownLatch);
-
-        CdsActor.CdsActorServiceManager cdsActorSvcMgr = cdsActor.new CdsActorServiceManager();
-        CdsResponse response =
-            cdsActorSvcMgr.sendRequestToCds(cdsClient, cdsProps, ExecutionServiceInput.newBuilder().build());
-        assertTrue(Thread.interrupted());
-        assertNotNull(response);
-        assertEquals(CdsActorConstants.INTERRUPTED, response.getStatus());
-    }
-
-    @Test
-    public void testSendRequestToCdsLatchTimedOut() {
-        CdsActor.CdsActorServiceManager cdsActorSvcMgr = cdsActor.new CdsActorServiceManager();
-        CdsResponse response =
-            cdsActorSvcMgr.sendRequestToCds(cdsClient, cdsProps, ExecutionServiceInput.newBuilder().build());
-        assertNotNull(response);
-        assertEquals(CdsActorConstants.TIMED_OUT, response.getStatus());
-    }
-
-    @Test
-    public void testOnMessage() throws InterruptedException {
-        ExecutionServiceOutput message = ExecutionServiceOutput.newBuilder()
-            .setStatus(Status.newBuilder().setEventType(EventType.EVENT_COMPONENT_FAILURE).build()).build();
-
-        // Test "no timeout" scenarios
-        CountDownLatch latch = mock(CountDownLatch.class);
-        when(latch.await(anyLong(), any(TimeUnit.class))).thenReturn(true);
-        when(cdsClient.sendRequest(any(ExecutionServiceInput.class))).thenReturn(latch);
-
-        CdsActorServiceManager cdsActorSvcMgr = sendRequestToCds();
-
-        // #1: Failure test
-        cdsActorSvcMgr.onMessage(message);
-        assertEquals(CdsActorConstants.FAILED, cdsActorSvcMgr.getCdsStatus());
-
-        // #2: Success test
-        cdsActorSvcMgr = sendRequestToCds();
-        message = ExecutionServiceOutput.newBuilder()
-            .setStatus(Status.newBuilder().setEventType(EventType.EVENT_COMPONENT_EXECUTED).build()).build();
-        cdsActorSvcMgr.onMessage(message);
-        assertEquals(CdsActorConstants.SUCCESS, cdsActorSvcMgr.getCdsStatus());
-
-        // #3: Processing test
-        cdsActorSvcMgr = sendRequestToCds();
-        message = ExecutionServiceOutput.newBuilder()
-            .setStatus(Status.newBuilder().setEventType(EventType.EVENT_COMPONENT_PROCESSING).build()).build();
-        cdsActorSvcMgr.onMessage(message);
-        assertEquals(CdsActorConstants.PROCESSING, cdsActorSvcMgr.getCdsStatus());
-    }
-
-    private CdsActorServiceManager sendRequestToCds() {
-        CdsActorServiceManager cdsActorSvcMgr = cdsActor.new CdsActorServiceManager();
-        cdsActorSvcMgr.sendRequestToCds(cdsClient, cdsProps, ExecutionServiceInput.newBuilder().build());
-        return cdsActorSvcMgr;
-    }
 }
index a5cf65f..c67b58b 100644 (file)
 
 package org.onap.policy.controlloop.actor.sdnc;
 
-import com.google.common.collect.ImmutableList;
-import com.google.common.collect.ImmutableMap;
-import java.util.Collections;
-import java.util.List;
-import java.util.UUID;
-import org.onap.policy.controlloop.ControlLoopOperation;
-import org.onap.policy.controlloop.VirtualControlLoopEvent;
 import org.onap.policy.controlloop.actorserviceprovider.impl.HttpActor;
 import org.onap.policy.controlloop.actorserviceprovider.impl.HttpOperator;
 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.onap.policy.sdnc.SdncHealRequestHeaderInfo;
-import org.onap.policy.sdnc.SdncHealRequestInfo;
-import org.onap.policy.sdnc.SdncHealServiceInfo;
-import org.onap.policy.sdnc.SdncHealVfModuleInfo;
-import org.onap.policy.sdnc.SdncHealVfModuleParameter;
-import org.onap.policy.sdnc.SdncHealVfModuleParametersInfo;
-import org.onap.policy.sdnc.SdncHealVfModuleRequestInput;
-import org.onap.policy.sdnc.SdncHealVnfInfo;
-import org.onap.policy.sdnc.SdncRequest;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 
 public class SdncActor extends HttpActor<HttpActorParams> {
-    private static final Logger logger = LoggerFactory.getLogger(SdncActor.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";
-
-    // Strings for targets
-    private static final String TARGET_VM = "VM";
-
-    // Strings for recipes
-    private static final String RECIPE_REROUTE = "Reroute";
-
-    // Strings for recipes
-    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();
-
-    // **HERE**
-
     /**
      * Constructs the object.
      */
@@ -81,143 +38,4 @@ public class SdncActor extends HttpActor<HttpActorParams> {
         addOperator(new HttpOperator(NAME, RerouteOperation.NAME, RerouteOperation::new));
         addOperator(new HttpOperator(NAME, BandwidthOnDemandOperation.NAME, BandwidthOnDemandOperation::new));
     }
-
-
-    // TODO old code: remove lines down to **HERE**
-
-    @Override
-    public String actor() {
-        return SDNC_ACTOR;
-    }
-
-    @Override
-    public List<String> recipes() {
-        return ImmutableList.copyOf(recipes);
-    }
-
-    @Override
-    public List<String> recipeTargets(String recipe) {
-        return ImmutableList.copyOf(targets.getOrDefault(recipe, Collections.emptyList()));
-    }
-
-    @Override
-    public List<String> recipePayloads(String recipe) {
-        return Collections.emptyList();
-    }
-
-    /**
-     * Construct a request.
-     *
-     * @param onset the onset event
-     * @param operation the control loop operation
-     * @param policy the policy
-     * @return the constructed request
-     */
-    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);
-                return constructBwOnDemandRequest(onset);
-            default:
-                logger.info("Unsupported recipe {}", policy.getRecipe());
-                return null;
-        }
-    }
-
-    private SdncRequest constructBwOnDemandRequest(VirtualControlLoopEvent onset) {
-        // Construct an Sdnc request
-        String serviceInstance = onset.getAai().get("service-instance.service-instance-id");
-        if (serviceInstance == null || serviceInstance.isEmpty()) {
-            // This indicates that AAI Enrichment needs to be done by event producer.
-            return null;
-        }
-        SdncHealVfModuleParameter bandwidth = new SdncHealVfModuleParameter();
-        bandwidth.setName("bandwidth");
-        bandwidth.setValue(onset.getAai().get("bandwidth"));
-
-        SdncHealVfModuleParameter timeStamp = new SdncHealVfModuleParameter();
-        timeStamp.setName("bandwidth-change-time");
-        timeStamp.setValue(onset.getAai().get("bandwidth-change-time"));
-
-        SdncHealVfModuleParametersInfo vfParametersInfo = new SdncHealVfModuleParametersInfo();
-        vfParametersInfo.addParameters(bandwidth);
-        vfParametersInfo.addParameters(timeStamp);
-
-        SdncHealVfModuleRequestInput vfRequestInfo = new SdncHealVfModuleRequestInput();
-        vfRequestInfo.setVfModuleParametersInfo(vfParametersInfo);
-
-        SdncHealServiceInfo serviceInfo = new SdncHealServiceInfo();
-        serviceInfo.setServiceInstanceId(serviceInstance);
-
-        SdncHealRequestInfo requestInfo = new SdncHealRequestInfo();
-        requestInfo.setRequestAction("SdwanBandwidthChange");
-
-        SdncHealRequestHeaderInfo headerInfo = new SdncHealRequestHeaderInfo();
-        headerInfo.setSvcAction("update");
-        headerInfo.setSvcRequestId(UUID.randomUUID().toString());
-
-        SdncRequest request = new SdncRequest();
-        request.setNsInstanceId(serviceInstance);
-        request.setRequestId(onset.getRequestId());
-        request.setUrl("/GENERIC-RESOURCE-API:vf-module-topology-operation");
-
-        SdncHealVnfInfo vnfInfo = new SdncHealVnfInfo();
-        vnfInfo.setVnfId(onset.getAai().get("vnfId"));
-
-        SdncHealVfModuleInfo vfModuleInfo = new SdncHealVfModuleInfo();
-        vfModuleInfo.setVfModuleId("");
-
-        SdncHealRequest healRequest = new SdncHealRequest();
-        healRequest.setVnfInfo(vnfInfo);
-        healRequest.setVfModuleInfo(vfModuleInfo);
-        healRequest.setRequestHeaderInfo(headerInfo);
-        healRequest.setVfModuleRequestInput(vfRequestInfo);
-        healRequest.setRequestInfo(requestInfo);
-        healRequest.setServiceInfo(serviceInfo);
-        request.setHealRequest(healRequest);
-        return request;
-    }
-
-    private SdncRequest constructReOptimizeRequest(VirtualControlLoopEvent onset) {
-        // Construct an Sdnc request
-        String serviceInstance = onset.getAai().get("service-instance.service-instance-id");
-        if (serviceInstance == null || serviceInstance.isEmpty()) {
-            // This indicates that AAI Enrichment needs to be done by event producer.
-            return null;
-        }
-        SdncHealServiceInfo serviceInfo = new SdncHealServiceInfo();
-        serviceInfo.setServiceInstanceId(serviceInstance);
-
-        String networkId = onset.getAai().get("network-information.network-id");
-        if (networkId == null || networkId.isEmpty()) {
-            // This indicates that AAI Enrichment needs to be done by event producer.
-            return null;
-        }
-        SdncHealNetworkInfo networkInfo = new SdncHealNetworkInfo();
-        networkInfo.setNetworkId(networkId);
-
-        SdncHealRequestInfo requestInfo = new SdncHealRequestInfo();
-        requestInfo.setRequestAction("ReoptimizeSOTNInstance");
-
-        SdncHealRequestHeaderInfo headerInfo = new SdncHealRequestHeaderInfo();
-        headerInfo.setSvcAction("reoptimize");
-        headerInfo.setSvcRequestId(UUID.randomUUID().toString());
-
-        SdncRequest request = new SdncRequest();
-        request.setNsInstanceId(serviceInstance);
-        request.setRequestId(onset.getRequestId());
-        request.setUrl("/GENERIC-RESOURCE-API:network-topology-operation");
-
-        SdncHealRequest healRequest = new SdncHealRequest();
-        healRequest.setRequestHeaderInfo(headerInfo);
-        healRequest.setNetworkInfo(networkInfo);
-        healRequest.setRequestInfo(requestInfo);
-        healRequest.setServiceInfo(serviceInfo);
-        request.setHealRequest(healRequest);
-        return request;
-    }
-
-    // **HERE**
 }
index 020b09e..f0f280c 100644 (file)
 package org.onap.policy.controlloop.actor.sdnc;
 
 import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertNull;
 
 import java.util.Arrays;
-import java.util.Objects;
-import java.util.UUID;
 import java.util.stream.Collectors;
-import org.junit.AfterClass;
-import org.junit.BeforeClass;
 import org.junit.Test;
-import org.onap.policy.common.endpoints.http.server.HttpServletServerFactoryInstance;
-import org.onap.policy.controlloop.ControlLoopOperation;
-import org.onap.policy.controlloop.VirtualControlLoopEvent;
 import org.onap.policy.controlloop.actor.test.BasicActor;
-import org.onap.policy.controlloop.policy.Policy;
-import org.onap.policy.sdnc.SdncRequest;
 
 public class SdncActorTest extends BasicActor {
 
-    private static final String REROUTE = RerouteOperation.NAME;
-
-    /**
-     * Set up before test class.
-     *
-     * @throws Exception if the A&AI simulator cannot be started
-     */
-    @BeforeClass
-    public static void setUpSimulator() throws Exception {
-        org.onap.policy.simulators.Util.buildAaiSim();
-    }
-
-    @AfterClass
-    public static void tearDownSimulator() {
-        HttpServletServerFactoryInstance.getServerFactory().destroy();
-    }
-
     @Test
-    public void testSdncActorServiceProvider() {
+    public void testSdncActor() {
         final SdncActor prov = new SdncActor();
 
         // verify that it has the operators we expect
@@ -73,52 +45,4 @@ public class SdncActorTest extends BasicActor {
         // verify that it all plugs into the ActorService
         verifyActorService(SdncActor.NAME, "service.yaml");
     }
-
-    @Test
-    public void testConstructRequest() {
-        VirtualControlLoopEvent onset = new VirtualControlLoopEvent();
-        ControlLoopOperation operation = new ControlLoopOperation();
-
-        Policy policy = new Policy();
-        policy.setRecipe(REROUTE);
-
-        SdncActor provider = new SdncActor();
-        assertNull(provider.constructRequest(onset, operation, policy));
-
-        onset.getAai().put("network-information.network-id", "network-5555");
-        assertNull(provider.constructRequest(onset, operation, policy));
-
-        assertNull(provider.constructRequest(onset, operation, policy));
-
-        UUID requestId = UUID.randomUUID();
-        onset.setRequestId(requestId);
-        assertNull(provider.constructRequest(onset, operation, policy));
-
-        assertNull(provider.constructRequest(onset, operation, policy));
-
-        onset.getAai().put("service-instance.service-instance-id", "service-instance-01");
-        assertNotNull(provider.constructRequest(onset, operation, policy));
-
-        policy.setRecipe(REROUTE);
-        assertNotNull(provider.constructRequest(onset, operation, policy));
-
-        SdncRequest request = provider.constructRequest(onset, operation, policy);
-
-        assertEquals(requestId, Objects.requireNonNull(request).getRequestId());
-        assertEquals("reoptimize", request.getHealRequest().getRequestHeaderInfo().getSvcAction());
-        assertEquals("ReoptimizeSOTNInstance", request.getHealRequest().getRequestInfo().getRequestAction());
-        assertEquals("network-5555", request.getHealRequest().getNetworkInfo().getNetworkId());
-        assertEquals("service-instance-01", request.getHealRequest().getServiceInfo().getServiceInstanceId());
-    }
-
-    @Test
-    public void testMethods() {
-        SdncActor sp = new SdncActor();
-
-        assertEquals("SDNC", sp.actor());
-        assertEquals(1, sp.recipes().size());
-        assertEquals(REROUTE, sp.recipes().get(0));
-        assertEquals("VM", sp.recipeTargets(REROUTE).get(0));
-        assertEquals(0, sp.recipePayloads(REROUTE).size());
-    }
 }
index b9f477d..de7691e 100644 (file)
 
 package org.onap.policy.controlloop.actor.sdnr;
 
-import com.google.common.collect.ImmutableList;
-import com.google.common.collect.ImmutableMap;
-import java.util.Collections;
-import java.util.List;
-import org.apache.commons.lang3.tuple.Pair;
-import org.onap.policy.controlloop.ControlLoopOperation;
-import org.onap.policy.controlloop.ControlLoopResponse;
-import org.onap.policy.controlloop.VirtualControlLoopEvent;
 import org.onap.policy.controlloop.actorserviceprovider.Operator;
 import org.onap.policy.controlloop.actorserviceprovider.impl.BidirectionalTopicActor;
 import org.onap.policy.controlloop.actorserviceprovider.impl.BidirectionalTopicOperator;
 import org.onap.policy.controlloop.actorserviceprovider.parameters.BidirectionalTopicActorParams;
-import org.onap.policy.controlloop.policy.Policy;
-import org.onap.policy.controlloop.policy.PolicyResult;
-import org.onap.policy.sdnr.PciCommonHeader;
-import org.onap.policy.sdnr.PciRequest;
-import org.onap.policy.sdnr.PciRequestWrapper;
-import org.onap.policy.sdnr.PciResponse;
-import org.onap.policy.sdnr.PciResponseCode;
-import org.onap.policy.sdnr.PciResponseWrapper;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 
 /**
  * SDNR is an unusual actor in that it uses a single, generic operator to initiate all
@@ -52,28 +34,6 @@ public class SdnrActor extends BidirectionalTopicActor<BidirectionalTopicActorPa
 
     public static final String NAME = "SDNR";
 
-    // TODO old code: remove lines down to **HERE**
-
-    private static final Logger logger = LoggerFactory.getLogger(SdnrActor.class);
-
-    // Strings for targets
-    private static final String TARGET_VNF = "VNF";
-
-    // Strings for recipes
-    private static final String RECIPE_MODIFY = "ModifyConfig";
-
-    /* To be used in future releases when pci ModifyConfig is used */
-    private static final String SDNR_REQUEST_PARAMS = "request-parameters";
-    private static final String SDNR_CONFIG_PARAMS = "configuration-parameters";
-
-    private static final ImmutableList<String> recipes = ImmutableList.of(RECIPE_MODIFY);
-    private static final ImmutableMap<String, List<String>> targets = new ImmutableMap.Builder<String, List<String>>()
-            .put(RECIPE_MODIFY, ImmutableList.of(TARGET_VNF)).build();
-    private static final ImmutableMap<String, List<String>> payloads = new ImmutableMap.Builder<String, List<String>>()
-            .put(RECIPE_MODIFY, ImmutableList.of(SDNR_REQUEST_PARAMS, SDNR_CONFIG_PARAMS)).build();
-
-    // **HERE**
-
     /**
      * Constructor.
      */
@@ -91,214 +51,4 @@ public class SdnrActor extends BidirectionalTopicActor<BidirectionalTopicActorPa
          */
         return super.getOperator(SdnrOperation.NAME);
     }
-
-    // TODO old code: remove lines down to **HERE**
-
-    @Override
-    public String actor() {
-        return NAME;
-    }
-
-    @Override
-    public List<String> recipes() {
-        return ImmutableList.copyOf(recipes);
-    }
-
-    @Override
-    public List<String> recipeTargets(String recipe) {
-        return ImmutableList.copyOf(targets.getOrDefault(recipe, Collections.emptyList()));
-    }
-
-    @Override
-    public List<String> recipePayloads(String recipe) {
-        return ImmutableList.copyOf(payloads.getOrDefault(recipe, Collections.emptyList()));
-    }
-
-    /**
-     * Constructs an SDNR request conforming to the pci API. The actual request is
-     * constructed and then placed in a wrapper object used to send through DMAAP.
-     *
-     * @param onset
-     *            the event that is reporting the alert for policy to perform an
-     *            action
-     * @param operation
-     *            the control loop operation specifying the actor, operation,
-     *            target, etc.
-     * @param policy
-     *            the policy the was specified from the yaml generated by CLAMP or
-     *            through the Policy GUI/API
-     * @return an SDNR request conforming to the pci API using the DMAAP wrapper
-     */
-
-    public static PciRequestWrapper constructRequest(VirtualControlLoopEvent onset, ControlLoopOperation operation,
-            Policy policy) {
-
-        /* Construct an SDNR request using pci Model */
-
-        /*
-         * The actual pci request is placed in a wrapper used to send through dmaap. The
-         * current version is 2.0 as of R1.
-         */
-        PciRequestWrapper dmaapRequest = new PciRequestWrapper();
-        dmaapRequest.setVersion("1.0");
-        dmaapRequest.setCorrelationId(onset.getRequestId() + "-" + operation.getSubRequestId());
-        dmaapRequest.setRpcName(policy.getRecipe().toLowerCase());
-        dmaapRequest.setType("request");
-
-        /* This is the actual request that is placed in the dmaap wrapper. */
-        final PciRequest sdnrRequest = new PciRequest();
-
-        /* The common header is a required field for all SDNR requests. */
-        PciCommonHeader requestCommonHeader = new PciCommonHeader();
-        requestCommonHeader.setRequestId(onset.getRequestId());
-        requestCommonHeader.setSubRequestId(operation.getSubRequestId());
-
-        sdnrRequest.setCommonHeader(requestCommonHeader);
-        sdnrRequest.setPayload(onset.getPayload());
-
-        /*
-         * An action is required for all SDNR requests, this will be the recipe
-         * specified in the policy.
-         */
-        sdnrRequest.setAction(policy.getRecipe());
-
-        /*
-         * Once the pci request is constructed, add it into the body of the dmaap
-         * wrapper.
-         */
-        dmaapRequest.setBody(sdnrRequest);
-        logger.info("SDNR Request to be sent is {}", dmaapRequest);
-
-        /* Return the request to be sent through dmaap. */
-        return dmaapRequest;
-    }
-
-    /**
-     * Parses the operation attempt using the subRequestId of SDNR response.
-     *
-     * @param subRequestId
-     *            the sub id used to send to SDNR, Policy sets this using the
-     *            operation attempt
-     *
-     * @return the current operation attempt
-     */
-    public static Integer parseOperationAttempt(String subRequestId) {
-        Integer operationAttempt;
-        try {
-            operationAttempt = Integer.parseInt(subRequestId);
-        } catch (NumberFormatException e) {
-            logger.debug("A NumberFormatException was thrown in parsing the operation attempt {}", subRequestId);
-            return null;
-        }
-        return operationAttempt;
-    }
-
-    /**
-     * Processes the SDNR pci response sent from SDNR. Determines if the SDNR
-     * operation was successful/unsuccessful and maps this to the corresponding
-     * Policy result.
-     *
-     * @param dmaapResponse
-     *            the dmaap wrapper message that contains the actual SDNR reponse
-     *            inside the body field
-     *
-     * @return an key-value pair that contains the Policy result and SDNR response
-     *         message
-     */
-    public static Pair<PolicyResult, String> processResponse(
-            PciResponseWrapper dmaapResponse) {
-
-        logger.info("SDNR processResponse called : {}", dmaapResponse);
-
-        /* The actual SDNR response is inside the wrapper's body field. */
-        PciResponse sdnrResponse = dmaapResponse.getBody();
-
-        /* The message returned in the SDNR response. */
-        String message;
-
-        /* The Policy result determined from the SDNR Response. */
-        PolicyResult result;
-
-        /*
-         * If there is no status, Policy cannot determine if the request was successful.
-         */
-        if (sdnrResponse.getStatus() == null) {
-            message = "Policy was unable to parse SDN-R response status field (it was null).";
-            return Pair.of(PolicyResult.FAILURE_EXCEPTION, message);
-        }
-
-        /*
-         * If there is no code, Policy cannot determine if the request was successful.
-         */
-        String responseValue = PciResponseCode.toResponseValue(sdnrResponse.getStatus().getCode());
-        if (responseValue == null) {
-            message = "Policy was unable to parse SDN-R response status code field.";
-            return Pair.of(PolicyResult.FAILURE_EXCEPTION, message);
-        }
-        logger.info("SDNR Response Code is {}", responseValue);
-
-        /* Save the SDNR response's message for Policy notification message. */
-        message = sdnrResponse.getStatus().getValue();
-        logger.info("SDNR Response Message is {}", message);
-
-        /*
-         * Response and Payload are just printed and no further action needed in
-         * casablanca release
-         */
-        String rspPayload = sdnrResponse.getPayload();
-        logger.info("SDNR Response Payload is {}", rspPayload);
-
-        /* Maps the SDNR response result to a Policy result. */
-        switch (responseValue) {
-            case PciResponseCode.ACCEPTED:
-                /* Nothing to do if code is accept, continue processing */
-                result = null;
-                break;
-            case PciResponseCode.SUCCESS:
-                result = PolicyResult.SUCCESS;
-                break;
-            case PciResponseCode.FAILURE:
-                result = PolicyResult.FAILURE;
-                break;
-            case PciResponseCode.REJECT:
-            case PciResponseCode.ERROR:
-            default:
-                result = PolicyResult.FAILURE_EXCEPTION;
-        }
-        return Pair.of(result, message);
-    }
-
-    /**
-     * Converts the SDNR response to ControlLoopResponse object.
-     *
-     * @param dmaapResponse
-     *            the dmaap wrapper message that contains the actual SDNR reponse
-     *            inside the body field
-     *
-     * @return a ControlLoopResponse object to send to DCAE_CL_RSP topic
-     */
-    public static ControlLoopResponse getControlLoopResponse(PciResponseWrapper dmaapResponse,
-            VirtualControlLoopEvent event) {
-
-        logger.info("SDNR getClosedLoopResponse called : {} {}", dmaapResponse, event);
-
-        /* The actual SDNR response is inside the wrapper's body field. */
-        PciResponse sdnrResponse = dmaapResponse.getBody();
-
-        /* The ControlLoop response determined from the SDNR Response and input event. */
-        ControlLoopResponse clRsp = new ControlLoopResponse();
-        clRsp.setPayload(sdnrResponse.getPayload());
-        clRsp.setFrom(NAME);
-        clRsp.setTarget("DCAE");
-        clRsp.setClosedLoopControlName(event.getClosedLoopControlName());
-        clRsp.setPolicyName(event.getPolicyName());
-        clRsp.setPolicyVersion(event.getPolicyVersion());
-        clRsp.setRequestId(event.getRequestId());
-        clRsp.setVersion(event.getVersion());
-        logger.info("SDNR getClosedLoopResponse clRsp : {}", clRsp);
-
-        return clRsp;
-    }
-
-    // **HERE**
 }
index 48c16d0..0f023ff 100644 (file)
@@ -23,80 +23,15 @@ package org.onap.policy.controlloop.actor.sdnr;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertSame;
-import static org.junit.Assert.assertTrue;
 
-import java.time.Instant;
 import java.util.Arrays;
-import java.util.HashMap;
-import java.util.UUID;
 import java.util.stream.Collectors;
 import org.junit.Test;
-import org.onap.policy.controlloop.ControlLoopEventStatus;
-import org.onap.policy.controlloop.ControlLoopOperation;
-import org.onap.policy.controlloop.ControlLoopResponse;
-import org.onap.policy.controlloop.ControlLoopTargetType;
-import org.onap.policy.controlloop.VirtualControlLoopEvent;
 import org.onap.policy.controlloop.actor.test.BasicActor;
 import org.onap.policy.controlloop.actorserviceprovider.Operator;
-import org.onap.policy.controlloop.policy.Policy;
-import org.onap.policy.controlloop.policy.Target;
-import org.onap.policy.controlloop.policy.TargetType;
-import org.onap.policy.sdnr.PciRequest;
-import org.onap.policy.sdnr.PciResponse;
-import org.onap.policy.sdnr.PciResponseWrapper;
-import org.onap.policy.sdnr.util.Serialization;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 
 public class SdnrActorTest extends BasicActor {
 
-    private static final String MODIFY_CONFIG = "ModifyConfig";
-
-    private static final Logger logger = LoggerFactory.getLogger(SdnrActorTest.class);
-
-    private static final VirtualControlLoopEvent onsetEvent;
-    private static final ControlLoopOperation operation;
-    private static final Policy policy;
-
-    static {
-        /*
-         * Construct an onset. Using dummy AAI details since the code mandates AAI details.
-         */
-        onsetEvent = new VirtualControlLoopEvent();
-        onsetEvent.setClosedLoopControlName("closedLoopControlName-Test");
-        onsetEvent.setRequestId(UUID.randomUUID());
-        onsetEvent.setClosedLoopEventClient("tca.instance00001");
-        onsetEvent.setTargetType(ControlLoopTargetType.VNF);
-        onsetEvent.setTarget("generic-vnf.vnf-name");
-        onsetEvent.setFrom("DCAE");
-        onsetEvent.setClosedLoopAlarmStart(Instant.now());
-        onsetEvent.setAai(new HashMap<>());
-        onsetEvent.getAai().put("generic-vnf.vnf-name", "notused");
-        onsetEvent.setClosedLoopEventStatus(ControlLoopEventStatus.ONSET);
-        onsetEvent.setPayload("some payload");
-
-        /* Construct an operation with an SDNR actor and ModifyConfig operation. */
-        operation = new ControlLoopOperation();
-        operation.setActor("SDNR");
-        operation.setOperation(MODIFY_CONFIG);
-        operation.setTarget("VNF");
-        operation.setEnd(Instant.now());
-        operation.setSubRequestId("1");
-
-        /* Construct a policy specifying to modify configuration. */
-        policy = new Policy();
-        policy.setName("Modify PCI Config");
-        policy.setDescription("Upon getting the trigger event, modify pci config");
-        policy.setActor("SDNR");
-        policy.setTarget(new Target(TargetType.VNF));
-        policy.getTarget().setResourceID("Eace933104d443b496b8.nodes.heat.vpg");
-        policy.setRecipe(MODIFY_CONFIG);
-        policy.setPayload(null);
-        policy.setRetry(2);
-        policy.setTimeout(300);
-
-    }
-
     @Test
     public void testConstructor() {
         SdnrActor prov = new SdnrActor();
@@ -124,80 +59,4 @@ public class SdnrActorTest extends BasicActor {
         assertNotNull(oper);
         assertSame(oper, sp.getOperator("another"));
     }
-
-    @Test
-    public void testGetControlLoopResponse() {
-        PciRequest sdnrRequest;
-        sdnrRequest = SdnrActor.constructRequest(onsetEvent, operation, policy).getBody();
-        PciResponse sdnrResponse = new PciResponse(sdnrRequest);
-        sdnrResponse.getStatus().setCode(200);
-        sdnrResponse.getStatus().setValue("SDNR success");
-        sdnrResponse.setPayload("sdnr payload ");
-        /* Print out request as json to make sure serialization works */
-        String jsonResponse = Serialization.gsonPretty.toJson(sdnrResponse);
-        logger.info(jsonResponse);
-        PciResponseWrapper pciResponseWrapper = new PciResponseWrapper();
-        pciResponseWrapper.setBody(sdnrResponse);
-
-        ControlLoopResponse clRsp = SdnrActor.getControlLoopResponse(pciResponseWrapper, onsetEvent);
-        assertEquals(clRsp.getClosedLoopControlName(), onsetEvent.getClosedLoopControlName());
-        assertEquals(clRsp.getRequestId(), onsetEvent.getRequestId());
-        assertEquals(clRsp.getPolicyName(), onsetEvent.getPolicyName());
-        assertEquals(clRsp.getPolicyVersion(), onsetEvent.getPolicyVersion());
-        assertEquals(clRsp.getVersion(), onsetEvent.getVersion());
-        assertEquals("SDNR", clRsp.getFrom());
-        assertEquals("DCAE", clRsp.getTarget());
-        assertEquals(clRsp.getPayload(), sdnrResponse.getPayload());
-    }
-
-    @Test
-    public void testConstructModifyConfigRequest() {
-
-        PciRequest sdnrRequest;
-        sdnrRequest = SdnrActor.constructRequest(onsetEvent, operation, policy).getBody();
-
-        /* The service provider must return a non null SDNR request */
-        assertNotNull(sdnrRequest);
-
-        /* A common header is required and cannot be null */
-        assertNotNull(sdnrRequest.getCommonHeader());
-        assertEquals(sdnrRequest.getCommonHeader().getRequestId(), onsetEvent.getRequestId());
-
-        /* An action is required and cannot be null */
-        assertNotNull(sdnrRequest.getAction());
-        assertEquals(MODIFY_CONFIG, sdnrRequest.getAction());
-
-        /* A payload is required and cannot be null */
-        assertNotNull(sdnrRequest.getPayload());
-        assertEquals("some payload", sdnrRequest.getPayload());
-
-        logger.debug("SDNR Request: \n" + sdnrRequest.toString());
-
-        /* Print out request as json to make sure serialization works */
-        String jsonRequest = Serialization.gsonPretty.toJson(sdnrRequest);
-        logger.debug("JSON Output: \n" + jsonRequest);
-
-        /* The JSON string must contain the following fields */
-        assertTrue(jsonRequest.contains("CommonHeader"));
-        assertTrue(jsonRequest.contains("Action"));
-        assertTrue(jsonRequest.contains(MODIFY_CONFIG));
-        assertTrue(jsonRequest.contains("payload"));
-
-        PciResponse sdnrResponse = new PciResponse(sdnrRequest);
-        sdnrResponse.getStatus().setCode(200);
-        sdnrResponse.getStatus().setValue("SDNR success");
-        /* Print out request as json to make sure serialization works */
-        String jsonResponse = Serialization.gsonPretty.toJson(sdnrResponse);
-        logger.debug("JSON Output: \n" + jsonResponse);
-    }
-
-    @Test
-    public void testMethods() {
-        SdnrActor sp = new SdnrActor();
-
-        assertEquals("SDNR", sp.actor());
-        assertEquals(1, sp.recipes().size());
-        assertEquals("VNF", sp.recipeTargets(MODIFY_CONFIG).get(0));
-        assertEquals(2, sp.recipePayloads(MODIFY_CONFIG).size());
-    }
 }
index 2b2fdde..a661971 100644 (file)
 
 package org.onap.policy.controlloop.actor.so;
 
-import com.google.common.collect.ImmutableList;
-import com.google.common.collect.ImmutableMap;
-import com.google.gson.reflect.TypeToken;
-import java.lang.reflect.Type;
-import java.util.Collections;
-import java.util.List;
-import java.util.Map;
-import org.onap.aai.domain.yang.CloudRegion;
-import org.onap.aai.domain.yang.GenericVnf;
-import org.onap.aai.domain.yang.ServiceInstance;
-import org.onap.aai.domain.yang.Tenant;
-import org.onap.policy.aai.AaiCqResponse;
-import org.onap.policy.controlloop.ControlLoopOperation;
-import org.onap.policy.controlloop.VirtualControlLoopEvent;
 import org.onap.policy.controlloop.actorserviceprovider.impl.HttpActor;
 import org.onap.policy.controlloop.actorserviceprovider.impl.HttpPollingOperator;
 import org.onap.policy.controlloop.actorserviceprovider.parameters.HttpPollingActorParams;
-import org.onap.policy.controlloop.policy.Policy;
-import org.onap.policy.so.SoCloudConfiguration;
-import org.onap.policy.so.SoManager;
-import org.onap.policy.so.SoModelInfo;
-import org.onap.policy.so.SoOperationType;
-import org.onap.policy.so.SoRelatedInstance;
-import org.onap.policy.so.SoRelatedInstanceListElement;
-import org.onap.policy.so.SoRequest;
-import org.onap.policy.so.SoRequestDetails;
-import org.onap.policy.so.SoRequestInfo;
-import org.onap.policy.so.SoRequestParameters;
-import org.onap.policy.so.util.Serialization;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 
 public class SoActor extends HttpActor<HttpPollingActorParams> {
-    private static final Logger logger = LoggerFactory.getLogger(SoActor.class);
-
     public static final String NAME = "SO";
 
-    // TODO old code: remove lines down to **HERE**
-
-    private static final String TENANT_NOT_FOUND = "Tenant Item not found in AAI response {}";
-    private static final String CONSTRUCTED_SO_MSG = "Constructed SO request: {}";
-
-    // Strings for targets
-    private static final String TARGET_VFC = "VFC";
-
-    // Strings for recipes
-    private static final String RECIPE_VF_MODULE_CREATE = "VF Module Create";
-    private static final String RECIPE_VF_MODULE_DELETE = "VF Module Delete";
-
-    private static final ImmutableList<String> recipes =
-            ImmutableList.of(RECIPE_VF_MODULE_CREATE, RECIPE_VF_MODULE_DELETE);
-    private static final ImmutableMap<String, List<String>> targets =
-            new ImmutableMap.Builder<String, List<String>>().put(RECIPE_VF_MODULE_CREATE, ImmutableList.of(TARGET_VFC))
-                    .put(RECIPE_VF_MODULE_DELETE, ImmutableList.of(TARGET_VFC)).build();
-
-    // name of request parameters within policy payload
-    public static final String REQ_PARAM_NM = "requestParameters";
-
-    // name of configuration parameters within policy payload
-    public static final String CONFIG_PARAM_NM = "configurationParameters";
-
-    // used to decode configuration parameters via gson
-    private static final Type CONFIG_TYPE = new TypeToken<List<Map<String, String>>>() {}.getType();
-
-    // Static variables required to hold the IDs of the last service item, VNF item and VF Module.
-    // Note that in
-    // a multithreaded deployment this WILL break
-    private static String lastVNFItemVnfId;
-    private static String lastServiceItemServiceInstanceId;
-    private static String lastVfModuleItemVfModuleInstanceId;
-
-    // **HERE**
-
     /**
      * Constructs the object.
      */
@@ -103,360 +37,4 @@ public class SoActor extends HttpActor<HttpPollingActorParams> {
         addOperator(new HttpPollingOperator(NAME, VfModuleCreate.NAME, VfModuleCreate::new));
         addOperator(new HttpPollingOperator(NAME, VfModuleDelete.NAME, VfModuleDelete::new));
     }
-
-    // TODO old code: remove lines down to **HERE**
-
-    @Override
-    public String actor() {
-        return NAME;
-    }
-
-    @Override
-    public List<String> recipes() {
-        return ImmutableList.copyOf(recipes);
-    }
-
-    @Override
-    public List<String> recipeTargets(String recipe) {
-        return ImmutableList.copyOf(targets.getOrDefault(recipe, Collections.emptyList()));
-    }
-
-    @Override
-    public List<String> recipePayloads(String recipe) {
-        return Collections.emptyList();
-    }
-
-    private SoModelInfo prepareSoModelInfo(Policy policy) {
-
-        if (policy.getTarget() == null || policy.getTarget().getModelCustomizationId() == null
-                        || policy.getTarget().getModelInvariantId() == null) {
-            return null;
-        }
-
-        if (policy.getTarget().getModelName() == null || policy.getTarget().getModelVersion() == null
-                        || policy.getTarget().getModelVersionId() == null) {
-            return null;
-        }
-
-        SoModelInfo soModelInfo = new SoModelInfo();
-        soModelInfo.setModelCustomizationId(policy.getTarget().getModelCustomizationId());
-        soModelInfo.setModelInvariantId(policy.getTarget().getModelInvariantId());
-        soModelInfo.setModelName(policy.getTarget().getModelName());
-        soModelInfo.setModelVersion(policy.getTarget().getModelVersion());
-        soModelInfo.setModelVersionId(policy.getTarget().getModelVersionId());
-        soModelInfo.setModelType("vfModule");
-        return soModelInfo;
-    }
-
-    /**
-     * Construct requestInfo for the SO requestDetails.
-     *
-     * @return SO request information
-     */
-    private SoRequestInfo constructRequestInfo() {
-        SoRequestInfo soRequestInfo = new SoRequestInfo();
-        soRequestInfo.setSource("POLICY");
-        soRequestInfo.setSuppressRollback(false);
-        soRequestInfo.setRequestorId("policy");
-        return soRequestInfo;
-    }
-
-    /**
-     * This method is needed to get the serviceInstanceId and vnfInstanceId which is used in the asyncSORestCall.
-     *
-     * @param requestId the request Id
-     * @param callback callback method
-     * @param request the request
-     * @param url SO REST URL
-     * @param user username
-     * @param password password
-     */
-    public static void sendRequest(String requestId, SoManager.SoCallback callback, Object request, String url,
-            String user, String password) {
-        SoManager soManager = new SoManager(url, user, password);
-        soManager.asyncSoRestCall(requestId, callback, lastServiceItemServiceInstanceId, lastVNFItemVnfId,
-                lastVfModuleItemVfModuleInstanceId, (SoRequest) request);
-    }
-
-
-    /**
-     * Builds the request parameters from the policy payload.
-     *
-     * @param policy the policy
-     * @param request request into which to stick the request parameters
-     */
-    private void buildRequestParameters(Policy policy, SoRequestDetails request) {
-        // assume null until proven otherwise
-        request.setRequestParameters(null);
-
-        if (policy.getPayload() == null) {
-            return;
-        }
-
-        String json = policy.getPayload().get(REQ_PARAM_NM);
-        if (json == null) {
-            return;
-        }
-
-        request.setRequestParameters(Serialization.gsonPretty.fromJson(json, SoRequestParameters.class));
-    }
-
-    /**
-     * Builds the configuration parameters from the policy payload.
-     *
-     * @param policy the policy
-     * @param request request into which to stick the configuration parameters
-     */
-    private void buildConfigurationParameters(Policy policy, SoRequestDetails request) {
-        // assume null until proven otherwise
-        request.setConfigurationParameters(null);
-
-        if (policy.getPayload() == null) {
-            return;
-        }
-
-        String json = policy.getPayload().get(CONFIG_PARAM_NM);
-        if (json == null) {
-            return;
-        }
-
-        request.setConfigurationParameters(Serialization.gsonPretty.fromJson(json, CONFIG_TYPE));
-    }
-
-    /**
-     * This method is called to remember the last service instance ID, VNF Item VNF ID and vf module ID. Note these
-     * fields are static, beware for multithreaded deployments
-     *
-     * @param vnfInstanceId update the last VNF instance ID to this value
-     * @param serviceInstanceId update the last service instance ID to this value
-     * @param vfModuleId update the vfModule instance ID to this value
-     */
-    private static void preserveInstanceIds(final String vnfInstanceId, final String serviceInstanceId,
-            final String vfModuleId) {
-        lastVNFItemVnfId = vnfInstanceId;
-        lastServiceItemServiceInstanceId = serviceInstanceId;
-        lastVfModuleItemVfModuleInstanceId = vfModuleId;
-    }
-
-    /**
-     * Constructs a SO request conforming to the lcm API. The actual request is constructed and then placed in a wrapper
-     * object used to send through DMAAP.
-     *
-     * @param onset the event that is reporting the alert for policy to perform an action
-     * @param operation the control loop operation specifying the actor, operation, target, etc.
-     * @param policy the policy the was specified from the yaml generated by CLAMP or through the Policy GUI/API
-     * @param aaiCqResponse response from A&AI custom query
-     * @return a SO request conforming to the lcm API using the DMAAP wrapper
-     */
-    public SoRequest constructRequestCq(VirtualControlLoopEvent onset, ControlLoopOperation operation, Policy policy,
-            AaiCqResponse aaiCqResponse) {
-        if (!NAME.equals(policy.getActor()) || !recipes().contains(policy.getRecipe())) {
-            return null;
-        }
-
-        // A&AI named query should have been performed by now. If not, return null
-        if (aaiCqResponse == null) {
-            return null;
-        }
-
-        SoModelInfo soModelInfo = prepareSoModelInfo(policy);
-
-        // Report the error vf module is not found
-        if (soModelInfo == null) {
-            logger.error("vf module is not found.");
-            return null;
-        }
-
-        GenericVnf vnfItem;
-        ServiceInstance vnfServiceItem;
-        Tenant tenantItem;
-        CloudRegion cloudRegionItem;
-
-        // Extract the items we're interested in from the response
-        try {
-            vnfItem = aaiCqResponse.getGenericVnfByVfModuleModelInvariantId(soModelInfo.getModelInvariantId());
-            //Report VNF not found
-            if (vnfItem == null) {
-                logger.error("Generic Vnf is not found.");
-                return null;
-            }
-        } catch (Exception e) {
-            logger.error("VNF Item not found in AAI response {}", Serialization.gsonPretty.toJson(aaiCqResponse), e);
-            return null;
-        }
-
-        try {
-            vnfServiceItem = aaiCqResponse.getServiceInstance();
-        } catch (Exception e) {
-            logger.error("VNF Service Item not found in AAI response {}",
-                    Serialization.gsonPretty.toJson(aaiCqResponse), e);
-            return null;
-        }
-
-        try {
-            tenantItem = aaiCqResponse.getDefaultTenant();
-        } catch (Exception e) {
-            logger.error(TENANT_NOT_FOUND, Serialization.gsonPretty.toJson(aaiCqResponse), e);
-            return null;
-        }
-
-        try {
-            cloudRegionItem = aaiCqResponse.getDefaultCloudRegion();
-        } catch (Exception e) {
-            logger.error(TENANT_NOT_FOUND, Serialization.gsonPretty.toJson(aaiCqResponse), e);
-            return null;
-        }
-
-
-
-        // Construct SO Request for a policy's recipe
-        if (RECIPE_VF_MODULE_CREATE.equals(policy.getRecipe())) {
-            return constructCreateRequestCq(aaiCqResponse, policy, tenantItem, vnfItem, vnfServiceItem, soModelInfo,
-                    cloudRegionItem);
-        } else if (RECIPE_VF_MODULE_DELETE.equals(policy.getRecipe())) {
-            return constructDeleteRequestCq(tenantItem, vnfItem, vnfServiceItem, policy, cloudRegionItem);
-        } else {
-            return null;
-        }
-    }
-
-    /**
-     * Construct the So request, based on Custom Query response from A&AI.
-     *
-     * @param aaiCqResponse Custom query response from A&AI
-     * @param policy policy information
-     * @param tenantItem Tenant from CQ response
-     * @param vnfItem Generic VNF from CQ response
-     * @param vnfServiceItem Service Instance from CQ response
-     * @param vfModuleItem VF Module from CustomQuery response
-     * @param cloudRegionItem Cloud Region from Custom query response
-     * @return SoRequest well formed So Request
-     */
-    private SoRequest constructCreateRequestCq(AaiCqResponse aaiCqResponse, Policy policy, Tenant tenantItem,
-            GenericVnf vnfItem, ServiceInstance vnfServiceItem, SoModelInfo vfModuleItem, CloudRegion cloudRegionItem) {
-        SoRequest request = new SoRequest();
-        request.setOperationType(SoOperationType.SCALE_OUT);
-        //
-        //
-        // Do NOT send So the requestId, they do not support this field
-        //
-        request.setRequestDetails(new SoRequestDetails());
-        request.getRequestDetails().setRequestParameters(new SoRequestParameters());
-        request.getRequestDetails().getRequestParameters().setUserParams(null);
-
-        // cloudConfiguration
-        request.getRequestDetails().setCloudConfiguration(constructCloudConfigurationCq(tenantItem, cloudRegionItem));
-        // modelInfo
-        request.getRequestDetails().setModelInfo(vfModuleItem);
-
-
-        // requestInfo
-        request.getRequestDetails().setRequestInfo(constructRequestInfo());
-        request.getRequestDetails().getRequestInfo().setInstanceName("vfModuleName");
-
-        // relatedInstanceList
-        SoRelatedInstanceListElement relatedInstanceListElement1 = new SoRelatedInstanceListElement();
-        SoRelatedInstanceListElement relatedInstanceListElement2 = new SoRelatedInstanceListElement();
-        relatedInstanceListElement1.setRelatedInstance(new SoRelatedInstance());
-        relatedInstanceListElement2.setRelatedInstance(new SoRelatedInstance());
-
-        // Service Item
-        relatedInstanceListElement1.getRelatedInstance().setInstanceId(vnfServiceItem.getServiceInstanceId());
-        relatedInstanceListElement1.getRelatedInstance().setModelInfo(new SoModelInfo());
-        relatedInstanceListElement1.getRelatedInstance().getModelInfo().setModelType("service");
-        relatedInstanceListElement1.getRelatedInstance().getModelInfo()
-                .setModelInvariantId(vnfServiceItem.getModelInvariantId());
-        relatedInstanceListElement1.getRelatedInstance().getModelInfo()
-                .setModelVersionId(vnfServiceItem.getModelVersionId());
-        relatedInstanceListElement1.getRelatedInstance().getModelInfo()
-                .setModelName(aaiCqResponse.getModelVerByVersionId(vnfServiceItem.getModelVersionId()).getModelName());
-        relatedInstanceListElement1.getRelatedInstance().getModelInfo().setModelVersion(
-                aaiCqResponse.getModelVerByVersionId(vnfServiceItem.getModelVersionId()).getModelVersion());
-
-
-        // VNF Item
-        relatedInstanceListElement2.getRelatedInstance().setInstanceId(vnfItem.getVnfId());
-        relatedInstanceListElement2.getRelatedInstance().setModelInfo(new SoModelInfo());
-        relatedInstanceListElement2.getRelatedInstance().getModelInfo().setModelType("vnf");
-        relatedInstanceListElement2.getRelatedInstance().getModelInfo()
-                .setModelInvariantId(vnfItem.getModelInvariantId());
-        relatedInstanceListElement2.getRelatedInstance().getModelInfo().setModelVersionId(vnfItem.getModelVersionId());
-
-        relatedInstanceListElement2.getRelatedInstance().getModelInfo()
-                .setModelName(aaiCqResponse.getModelVerByVersionId(vnfItem.getModelVersionId()).getModelName());
-        relatedInstanceListElement2.getRelatedInstance().getModelInfo().setModelVersion(
-                aaiCqResponse.getModelVerByVersionId(vnfItem.getModelVersionId()).getModelVersion());
-
-
-        relatedInstanceListElement2.getRelatedInstance().getModelInfo()
-                .setModelCustomizationId(vnfItem.getModelCustomizationId());
-
-
-        // Insert the Service Item and VNF Item
-        request.getRequestDetails().getRelatedInstanceList().add(relatedInstanceListElement1);
-        request.getRequestDetails().getRelatedInstanceList().add(relatedInstanceListElement2);
-
-        // Request Parameters
-        buildRequestParameters(policy, request.getRequestDetails());
-
-        // Configuration Parameters
-        buildConfigurationParameters(policy, request.getRequestDetails());
-        // Save the instance IDs for the VNF and service to static fields
-        // vfModuleId is not required for the create vf-module
-        preserveInstanceIds(vnfItem.getVnfId(), vnfServiceItem.getServiceInstanceId(), null);
-        if (logger.isDebugEnabled()) {
-            logger.debug(CONSTRUCTED_SO_MSG, Serialization.gsonPretty.toJson(request));
-        }
-        return request;
-    }
-
-    /**
-     * constructs delete request for So.
-     *
-     * @param tenantItem Tenant from A&AI CQ request
-     * @param vnfItem Generic VNF from A&AI CQ request
-     * @param vnfServiceItem ServiceInstance from A&AI CQ request
-     * @param policy policy information
-     * @param cloudRegionItem CloudRegion from A&AI CQ request
-     * @return SoRequest deleted
-     */
-    private SoRequest constructDeleteRequestCq(Tenant tenantItem, GenericVnf vnfItem, ServiceInstance vnfServiceItem,
-            Policy policy, CloudRegion cloudRegionItem) {
-        SoRequest request = new SoRequest();
-        request.setOperationType(SoOperationType.DELETE_VF_MODULE);
-        request.setRequestDetails(new SoRequestDetails());
-        request.getRequestDetails().setRelatedInstanceList(null);
-        request.getRequestDetails().setConfigurationParameters(null);
-
-        // cloudConfiguration
-        request.getRequestDetails().setCloudConfiguration(constructCloudConfigurationCq(tenantItem, cloudRegionItem));
-        // modelInfo
-        request.getRequestDetails().setModelInfo(prepareSoModelInfo(policy));
-        // requestInfo
-        request.getRequestDetails().setRequestInfo(constructRequestInfo());
-        // Save the instance IDs for the VNF, service and vfModule to static fields
-        preserveInstanceIds(vnfItem.getVnfId(), vnfServiceItem.getServiceInstanceId(), null);
-
-        if (logger.isDebugEnabled()) {
-            logger.debug(CONSTRUCTED_SO_MSG, Serialization.gsonPretty.toJson(request));
-        }
-        return request;
-    }
-
-
-    /**
-     * Construct cloudConfiguration for the SO requestDetails. Overridden for custom query.
-     *
-     * @param tenantItem tenant item from A&AI named-query response
-     * @return SO cloud configuration
-     */
-    private SoCloudConfiguration constructCloudConfigurationCq(Tenant tenantItem, CloudRegion cloudRegionItem) {
-        SoCloudConfiguration cloudConfiguration = new SoCloudConfiguration();
-        cloudConfiguration.setTenantId(tenantItem.getTenantId());
-        cloudConfiguration.setLcpCloudRegionId(cloudRegionItem.getCloudRegionId());
-        return cloudConfiguration;
-    }
-
-    // **HERE**
-
 }
index 7833808..b42b3f8 100644 (file)
 
 package org.onap.policy.controlloop.actor.so;
 
-import static org.assertj.core.api.Assertions.assertThatCode;
 import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertNull;
 
-import java.io.IOException;
-import java.nio.charset.StandardCharsets;
 import java.util.Arrays;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.Map;
-import java.util.TreeMap;
-import java.util.UUID;
 import java.util.stream.Collectors;
-import org.apache.commons.io.IOUtils;
 import org.junit.Test;
-import org.onap.policy.aai.AaiCqResponse;
-import org.onap.policy.controlloop.ControlLoopOperation;
-import org.onap.policy.controlloop.VirtualControlLoopEvent;
 import org.onap.policy.controlloop.actor.test.BasicActor;
-import org.onap.policy.controlloop.policy.Policy;
-import org.onap.policy.controlloop.policy.Target;
-import org.onap.policy.so.SoOperationType;
-import org.onap.policy.so.SoRequest;
-import org.onap.policy.so.SoRequestParameters;
-import org.onap.policy.so.util.Serialization;
 
 public class SoActorTest extends BasicActor {
 
-    private static final String C_VALUE = "cvalue";
-    private static final String A_VALUE = "avalue";
-    private static final String VF_MODULE_CREATE = "VF Module Create";
-    private static final String VF_MODULE_DELETE = "VF Module Delete";
-
-    private void instantiateTargetCq(Policy policy) {
-
-        Target target = new Target();
-        target.setModelCustomizationId("47958575-138f-452a-8c8d-d89b595f8164");
-        target.setModelInvariantId("e6130d03-56f1-4b0a-9a1d-e1b2ebc30e0e");
-        target.setModelName("VfwclVfwsnkBbefb8ce2bde..base_vfw..module-0");
-        target.setModelVersion("1");
-        target.setModelVersionId("94b18b1d-cc91-4f43-911a-e6348665f292");
-
-        policy.setTarget(target);
-    }
-
     @Test
     public void testConstructor() {
         SoActor prov = new SoActor();
@@ -85,168 +48,4 @@ public class SoActorTest extends BasicActor {
         // verify that it all plugs into the ActorService
         verifyActorService(SoActor.NAME, "service.yaml");
     }
-
-    @Test
-    public void testSendRequest() {
-        assertThatCode(() -> SoActor.sendRequest(UUID.randomUUID().toString(), null, null, null, null,
-                        null)).doesNotThrowAnyException();
-    }
-
-    @Test
-    public void testMethods() {
-        SoActor sp = new SoActor();
-
-        assertEquals("SO", sp.actor());
-        assertEquals(2, sp.recipes().size());
-        assertEquals(VF_MODULE_CREATE, sp.recipes().get(0));
-        assertEquals(VF_MODULE_DELETE, sp.recipes().get(1));
-        assertEquals(0, sp.recipePayloads(VF_MODULE_CREATE).size());
-        assertEquals(0, sp.recipeTargets("unknown recipe").size());
-        assertEquals(1, sp.recipeTargets(VF_MODULE_CREATE).size());
-    }
-
-    @Test
-    public void testConstructRequestCq() throws Exception {
-        VirtualControlLoopEvent onset = new VirtualControlLoopEvent();
-        final ControlLoopOperation operation = new ControlLoopOperation();
-        final AaiCqResponse aaiCqResp = loadAaiResponseCq("aai/AaiCqResponseFull.json");
-        final AaiCqResponse aaiCqRespMissing = loadAaiResponseCq("aai/AaiCqResponseMissing.json");
-        final UUID requestId = UUID.randomUUID();
-        onset.setRequestId(requestId);
-
-        Policy policy = new Policy();
-        policy.setActor("Dorothy");
-        policy.setRecipe("GoToOz");
-
-        instantiateTargetCq(policy);
-
-        assertNull(new SoActor().constructRequestCq(onset, operation, policy, aaiCqResp));
-
-        policy.setActor("SO");
-
-        assertNull(new SoActor().constructRequestCq(onset, operation, policy, aaiCqRespMissing));
-
-        policy.setRecipe(VF_MODULE_CREATE);
-
-        // empty policy payload
-        SoRequest request = new SoActor().constructRequestCq(onset, operation, policy, aaiCqResp);
-        assertNotNull(request);
-
-        assertEquals("vfModuleName", request.getRequestDetails().getRequestInfo().getInstanceName());
-        assertEquals("policy", request.getRequestDetails().getRequestInfo().getRequestorId());
-        assertEquals("RegionOne", request.getRequestDetails().getCloudConfiguration().getLcpCloudRegionId());
-
-        // non-empty policy payload
-        policy.setPayload(makePayload());
-        request = new SoActor().constructRequestCq(onset, operation, policy, aaiCqResp);
-        assertNotNull(request);
-        assertEquals(true, request.getRequestDetails().getRequestParameters().isUsePreload());
-        assertEquals(A_VALUE, request.getRequestDetails().getRequestParameters().getUserParams().get(0).get("akey"));
-        assertEquals(1, request.getRequestDetails().getConfigurationParameters().size());
-        assertEquals(C_VALUE, request.getRequestDetails().getConfigurationParameters().get(0).get("ckey"));
-
-        // payload with config, but no request params
-        policy.setPayload(makePayload());
-        policy.getPayload().remove(SoActor.REQ_PARAM_NM);
-        request = new SoActor().constructRequestCq(onset, operation, policy, aaiCqResp);
-        assertNotNull(request);
-        assertNull(request.getRequestDetails().getRequestParameters());
-        assertNotNull(request.getRequestDetails().getConfigurationParameters());
-
-        // payload with request, but no config params
-        policy.setPayload(makePayload());
-        policy.getPayload().remove(SoActor.CONFIG_PARAM_NM);
-        request = new SoActor().constructRequestCq(onset, operation, policy, aaiCqResp);
-        assertNotNull(request);
-        assertNotNull(request.getRequestDetails().getRequestParameters());
-        assertNull(request.getRequestDetails().getConfigurationParameters());
-
-        // null response
-        assertNull(new SoActor().constructRequestCq(onset, operation, policy, null));
-
-        instantiateTargetCq(policy);
-        policy.setRecipe(VF_MODULE_DELETE);
-        SoRequest deleteRequest = new SoActor().constructRequestCq(onset, operation, policy, aaiCqResp);
-        assertNotNull(deleteRequest);
-        assertEquals(SoOperationType.DELETE_VF_MODULE, deleteRequest.getOperationType());
-
-        /*
-         * NOTE: The remaining tests must be done in order
-         */
-
-        policy.setRecipe(VF_MODULE_CREATE);
-
-        // null tenant
-        assertNull(new SoActor().constructRequestCq(onset, operation, policy, aaiCqRespMissing));
-
-        // null service item
-        assertNull(new SoActor().constructRequestCq(onset, operation, policy, aaiCqRespMissing));
-
-        assertNull(new SoActor().constructRequestCq(onset, operation, policy, null));
-    }
-
-    /**
-     * Reads an AAI vserver named-query response from a file.
-     *
-     * @param fileName name of the file containing the JSON response
-     * @return output from the AAI vserver named-query
-     * @throws IOException if the file cannot be read
-     */
-    private AaiCqResponse loadAaiResponseCq(String fileName) throws IOException {
-        String resp = IOUtils.toString(getClass().getResource(fileName), StandardCharsets.UTF_8);
-        return new AaiCqResponse(resp);
-    }
-
-
-
-    /**
-     * Creates a policy payload containing request & configuration parameters.
-     *
-     * @return the payload
-     */
-    private Map<String, String> makePayload() {
-        Map<String, String> payload = new TreeMap<>();
-
-        payload.put(SoActor.REQ_PARAM_NM, makeReqParams());
-        payload.put(SoActor.CONFIG_PARAM_NM, makeConfigParams());
-
-        return payload;
-    }
-
-    /**
-     * Creates request parameters.
-     *
-     * @return request parameters, encoded as JSON
-     */
-    private String makeReqParams() {
-        SoRequestParameters params = new SoRequestParameters();
-
-        params.setUsePreload(true);
-
-        Map<String, String> map = new TreeMap<>();
-        map.put("akey", A_VALUE);
-
-        List<Map<String, String>> lst = new LinkedList<>();
-        lst.add(map);
-
-        params.setUserParams(lst);
-
-        return Serialization.gsonPretty.toJson(params);
-    }
-
-    /**
-     * Creates configuration parameters.
-     *
-     * @return configuration parameters, encoded as JSON
-     */
-    private String makeConfigParams() {
-        Map<String, String> map = new TreeMap<>();
-        map.put("ckey", C_VALUE);
-
-        List<Map<String, String>> lst = new LinkedList<>();
-        lst.add(map);
-
-        return Serialization.gsonPretty.toJson(lst);
-    }
-
 }
index cf41731..c3b9028 100644 (file)
 
 package org.onap.policy.controlloop.actor.vfc;
 
-import com.google.common.collect.ImmutableList;
-import com.google.common.collect.ImmutableMap;
-import java.util.Collections;
-import java.util.List;
-import org.onap.policy.aai.AaiCqResponse;
-import org.onap.policy.controlloop.ControlLoopOperation;
-import org.onap.policy.controlloop.VirtualControlLoopEvent;
 import org.onap.policy.controlloop.actorserviceprovider.impl.HttpActor;
 import org.onap.policy.controlloop.actorserviceprovider.impl.HttpPollingOperator;
 import org.onap.policy.controlloop.actorserviceprovider.parameters.HttpPollingActorParams;
-import org.onap.policy.controlloop.policy.Policy;
-import org.onap.policy.vfc.VfcHealActionVmInfo;
-import org.onap.policy.vfc.VfcHealAdditionalParams;
-import org.onap.policy.vfc.VfcHealRequest;
-import org.onap.policy.vfc.VfcRequest;
 
 public class VfcActor extends HttpActor<HttpPollingActorParams> {
-    private static final String GENERIC_VNF_ID = "generic-vnf.vnf-id";
-
-    // TODO old code: remove lines down to **HERE**
-
-    // Strings for VFC Actor
-    private static final String VFC_ACTOR = "VFC";
-
-    public static final String NAME = VFC_ACTOR;
-
-    // Strings for targets
-    private static final String TARGET_VM = "VM";
-
-    // Strings for recipes
-    private static final String RECIPE_RESTART = "Restart";
-
-    private static final ImmutableList<String> recipes = ImmutableList.of(RECIPE_RESTART);
-    private static final ImmutableMap<String, List<String>> targets =
-            new ImmutableMap.Builder<String, List<String>>().put(RECIPE_RESTART, ImmutableList.of(TARGET_VM)).build();
-
-    // **HERE**
+    public static final String NAME = "VFC";
 
     /**
      * Constructor.
@@ -66,76 +35,4 @@ public class VfcActor extends HttpActor<HttpPollingActorParams> {
 
         addOperator(new HttpPollingOperator(NAME, Restart.NAME, Restart::new));
     }
-
-    // TODO old code: remove lines down to **HERE**
-
-    @Override
-    public String actor() {
-        return VFC_ACTOR;
-    }
-
-    @Override
-    public List<String> recipes() {
-        return ImmutableList.copyOf(recipes);
-    }
-
-    @Override
-    public List<String> recipeTargets(String recipe) {
-        return ImmutableList.copyOf(targets.getOrDefault(recipe, Collections.emptyList()));
-    }
-
-    @Override
-    public List<String> recipePayloads(String recipe) {
-        return Collections.emptyList();
-    }
-
-    /**
-     * This method constructs the VFC request.
-     *
-     * @param onset onset object
-     * @param operation operation object
-     * @param policy policy object
-     * @param aaiCqResponse response from aai custom query
-     * @return VfcRequest
-     */
-    public static VfcRequest constructRequestCq(VirtualControlLoopEvent onset, ControlLoopOperation operation,
-            Policy policy, AaiCqResponse aaiCqResponse) {
-
-        // Construct an VFC request
-        VfcRequest request = new VfcRequest();
-        String serviceInstance = onset.getAai().get("service-instance.service-instance-id");
-        if (serviceInstance == null || "".equals(serviceInstance)) {
-            // get service instance from AaiCqResponse
-            if (aaiCqResponse == null) {
-                return null;
-            }
-            serviceInstance = aaiCqResponse.getServiceInstance().getServiceInstanceId();
-            // If the serviceInstanceId returned is null then return null
-            if (serviceInstance == null) {
-                return null;
-            }
-
-        }
-        request.setNsInstanceId(serviceInstance);
-        request.setRequestId(onset.getRequestId());
-        request.setHealRequest(new VfcHealRequest());
-        request.getHealRequest().setVnfInstanceId(onset.getAai().get(GENERIC_VNF_ID));
-        request.getHealRequest().setCause(operation.getMessage());
-        request.getHealRequest().setAdditionalParams(new VfcHealAdditionalParams());
-
-        if (policy.getRecipe().toLowerCase().equalsIgnoreCase(RECIPE_RESTART)) {
-            request.getHealRequest().getAdditionalParams().setAction("restartvm");
-            request.getHealRequest().getAdditionalParams().setActionInfo(new VfcHealActionVmInfo());
-            request.getHealRequest().getAdditionalParams().getActionInfo()
-                    .setVmid(onset.getAai().get("vserver.vserver-id"));
-            request.getHealRequest().getAdditionalParams().getActionInfo()
-                    .setVmname(onset.getAai().get("vserver.vserver-name"));
-        } else {
-            return null;
-        }
-        return request;
-    }
-
-    // **HERE**
-
 }
index bd4bb09..08ce8e1 100644 (file)
 package org.onap.policy.controlloop.actor.vfc;
 
 import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertNull;
 
-import java.io.IOException;
-import java.nio.charset.StandardCharsets;
 import java.util.Arrays;
-import java.util.Objects;
-import java.util.UUID;
 import java.util.stream.Collectors;
-import org.apache.commons.io.IOUtils;
-import org.junit.AfterClass;
-import org.junit.BeforeClass;
 import org.junit.Test;
-import org.onap.policy.aai.AaiCqResponse;
-import org.onap.policy.common.endpoints.http.server.HttpServletServerFactoryInstance;
-import org.onap.policy.controlloop.ControlLoopOperation;
-import org.onap.policy.controlloop.VirtualControlLoopEvent;
 import org.onap.policy.controlloop.actor.test.BasicActor;
-import org.onap.policy.controlloop.policy.Policy;
-import org.onap.policy.simulators.Util;
-import org.onap.policy.vfc.VfcRequest;
 
 public class VfcActorTest extends BasicActor {
 
-    private static final String DOROTHY_GALE_1939 = "dorothy.gale.1939";
-    private static final String CQ_RESPONSE_JSON = "aai/AaiCqResponse.json";
-    private static final String RESTART = "Restart";
-
-    /**
-     * Set up before test class.
-     * @throws Exception if the A&AI simulator cannot be started
-     */
-    @BeforeClass
-    public static void setUpSimulator() throws Exception {
-        Util.buildAaiSim();
-    }
-
-    @AfterClass
-    public static void tearDownSimulator() {
-        HttpServletServerFactoryInstance.getServerFactory().destroy();
-    }
-
     @Test
     public void testConstructor() {
         VfcActor prov = new VfcActor();
@@ -82,68 +48,4 @@ public class VfcActorTest extends BasicActor {
         // verify that it all plugs into the ActorService
         verifyActorService(VfcActor.NAME, "service.yaml");
     }
-
-    @Test
-    public void testMethods() {
-        VfcActor sp = new VfcActor();
-
-        assertEquals("VFC", sp.actor());
-        assertEquals(1, sp.recipes().size());
-        assertEquals(RESTART, sp.recipes().get(0));
-        assertEquals("VM", sp.recipeTargets(RESTART).get(0));
-        assertEquals(0, sp.recipePayloads(RESTART).size());
-    }
-
-    @Test
-    public void testConstructRequestCq() throws IOException {
-        VirtualControlLoopEvent onset = new VirtualControlLoopEvent();
-        ControlLoopOperation operation = new ControlLoopOperation();
-
-        Policy policy = new Policy();
-        policy.setRecipe("GoToOz");
-
-        assertNull(VfcActor.constructRequestCq(onset, operation, policy, null));
-
-        onset.getAai().put("generic-vnf.vnf-id", DOROTHY_GALE_1939);
-        assertNull(VfcActor.constructRequestCq(onset, operation, policy, null));
-
-
-        UUID requestId = UUID.randomUUID();
-        onset.setRequestId(requestId);
-        assertNull(VfcActor.constructRequestCq(onset, operation, policy, null));
-
-        onset.getAai().put("generic-vnf.vnf-name", "Dorothy");
-        assertNull(VfcActor.constructRequestCq(onset, operation, policy, null));
-
-
-        onset.getAai().put("service-instance.service-instance-id", "");
-        assertNull(VfcActor.constructRequestCq(onset, operation, policy, null));
-
-        assertNull(VfcActor.constructRequestCq(onset, operation, policy,
-                loadAaiResponse(CQ_RESPONSE_JSON)));
-
-        policy.setRecipe(RESTART);
-        assertNotNull(VfcActor.constructRequestCq(onset, operation, policy,
-                loadAaiResponse(CQ_RESPONSE_JSON)));
-
-        VfcRequest request = VfcActor.constructRequestCq(onset, operation, policy,
-                loadAaiResponse(CQ_RESPONSE_JSON));
-
-        assertEquals(requestId, Objects.requireNonNull(request).getRequestId());
-        assertEquals(DOROTHY_GALE_1939, request.getHealRequest().getVnfInstanceId());
-        assertEquals("restartvm", request.getHealRequest().getAdditionalParams().getAction());
-    }
-
-    /**
-     * Reads an AAI vserver named-query response from a file.
-     *
-     * @param fileName name of the file containing the JSON response
-     * @return output from the AAI vserver named-query
-     * @throws IOException if the file cannot be read
-     */
-    private AaiCqResponse loadAaiResponse(String fileName) throws IOException {
-        String resp = IOUtils.toString(getClass().getResource(fileName), StandardCharsets.UTF_8);
-        return new AaiCqResponse(resp);
-    }
-
 }
index c3c815e..336860e 100644 (file)
@@ -21,8 +21,6 @@
 package org.onap.policy.controlloop.actorserviceprovider.impl;
 
 import java.util.Collection;
-import java.util.Collections;
-import java.util.List;
 import java.util.Map;
 import java.util.Set;
 import java.util.concurrent.ConcurrentHashMap;
@@ -220,28 +218,4 @@ public class ActorImpl extends StartConfigPartial<Map<String, Object>> implement
                         "failed to shutdown operation {}.{}", actorName, oper.getName()));
         // @formatter:on
     }
-
-    // TODO old code: remove lines down to **HERE**
-
-    @Override
-    public String actor() {
-        return null;
-    }
-
-    @Override
-    public List<String> recipes() {
-        return Collections.emptyList();
-    }
-
-    @Override
-    public List<String> recipeTargets(String recipe) {
-        return Collections.emptyList();
-    }
-
-    @Override
-    public List<String> recipePayloads(String recipe) {
-        return Collections.emptyList();
-    }
-
-    // **HERE**
 }
index 52d1a5a..ff1ed17 100644 (file)
@@ -22,7 +22,6 @@
 package org.onap.policy.controlloop.actorserviceprovider.spi;
 
 import java.util.Collection;
-import java.util.List;
 import java.util.Map;
 import java.util.Set;
 import org.onap.policy.common.capabilities.Configurable;
@@ -75,17 +74,4 @@ public interface Actor extends Startable, Configurable<Map<String, Object>> {
      * @return the actor sequence number
      */
     public int getSequenceNumber();
-
-
-    // TODO old code: remove lines down to **HERE**
-
-    String actor();
-
-    List<String> recipes();
-
-    List<String> recipeTargets(String recipe);
-
-    List<String> recipePayloads(String recipe);
-
-    // **HERE**
 }
diff --git a/models-interactions/model-actors/actorServiceProvider/src/test/java/org/onap/policy/controlloop/actorserviceprovider/ActorServiceProviderTest.java b/models-interactions/model-actors/actorServiceProvider/src/test/java/org/onap/policy/controlloop/actorserviceprovider/ActorServiceProviderTest.java
deleted file mode 100644 (file)
index abf156b..0000000
+++ /dev/null
@@ -1,61 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * TestActorServiceProvider
- * ================================================================================
- * Copyright (C) 2018 Ericsson. All rights reserved.
- * Modifications Copyright (C) 2019 Nordix Foundation.
- * Modifications Copyright (C) 2019-2020 AT&T Intellectual Property. All rights reserved.
- * ================================================================================
- * 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
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END=========================================================
- */
-
-package org.onap.policy.controlloop.actorserviceprovider;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertNotSame;
-import static org.junit.Assert.assertTrue;
-
-import org.junit.Test;
-import org.onap.policy.controlloop.actorserviceprovider.spi.Actor;
-
-// TODO combine this with ActorServiceTest
-
-public class ActorServiceProviderTest {
-
-    private static final String DOROTHY = "Dorothy";
-
-    @Test
-    public void testActorServiceProvider() {
-        ActorService actorService = new ActorService();
-
-        assertTrue(actorService.getActors().size() >= 1);
-
-        Actor dummyActor = actorService.getActor(DummyActor.class.getSimpleName());
-
-        assertEquals("DummyActor", dummyActor.actor());
-
-        assertEquals(2, dummyActor.recipes().size());
-        assertEquals(DOROTHY, dummyActor.recipes().get(0));
-        assertEquals("Wizard", dummyActor.recipes().get(1));
-
-        assertEquals(2, dummyActor.recipeTargets(DOROTHY).size());
-        assertEquals(2, dummyActor.recipePayloads(DOROTHY).size());
-
-        // verify that we get a new actor object if we create a new service
-        Actor dummyActor2 = new ActorService().getActor(DummyActor.class.getSimpleName());
-        assertNotNull(dummyActor2);
-        assertNotSame(dummyActor, dummyActor2);
-    }
-}
index 76cadff..f10694d 100644 (file)
@@ -22,8 +22,6 @@
 
 package org.onap.policy.controlloop.actorserviceprovider;
 
-import java.util.ArrayList;
-import java.util.List;
 import org.onap.policy.controlloop.actorserviceprovider.impl.ActorImpl;
 
 public class DummyActor extends ActorImpl {
@@ -31,36 +29,4 @@ public class DummyActor extends ActorImpl {
     public DummyActor() {
         super(DummyActor.class.getSimpleName());
     }
-
-    @Override
-    public String actor() {
-        return this.getClass().getSimpleName();
-    }
-
-    @Override
-    public List<String> recipes() {
-        List<String> recipeList = new ArrayList<>();
-        recipeList.add("Dorothy");
-        recipeList.add("Wizard");
-
-        return recipeList;
-    }
-
-    @Override
-    public List<String> recipeTargets(String recipe) {
-        List<String> recipeTargetList = new ArrayList<>();
-        recipeTargetList.add("Wicked Witch");
-        recipeTargetList.add("Wizard of Oz");
-
-        return recipeTargetList;
-    }
-
-    @Override
-    public List<String> recipePayloads(String recipe) {
-        List<String> recipePayloadList = new ArrayList<>();
-        recipePayloadList.add("Dorothy");
-        recipePayloadList.add("Toto");
-
-        return recipePayloadList;
-    }
 }
diff --git a/models-interactions/model-impl/sdnc/src/main/java/org/onap/policy/sdnc/SdncManager.java b/models-interactions/model-impl/sdnc/src/main/java/org/onap/policy/sdnc/SdncManager.java
deleted file mode 100644 (file)
index ec423c7..0000000
+++ /dev/null
@@ -1,158 +0,0 @@
-/*
- * ============LICENSE_START=======================================================
- * Copyright (C) 2018 Huawei. All rights reserved.
- * ================================================================================
- * Modifications Copyright (C) 2019-2020 AT&T Intellectual Property. All rights reserved
- * Modifications Copyright (C) 2019-2020 Nordix Foundation.
- * Modifications Copyright (C) 2019 Samsung Electronics Co., Ltd.
- * ================================================================================
- * 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
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END=========================================================
- */
-
-package org.onap.policy.sdnc;
-
-import com.google.gson.JsonSyntaxException;
-import java.util.HashMap;
-import java.util.Map;
-import org.apache.commons.lang3.tuple.Pair;
-import org.onap.policy.common.endpoints.event.comm.Topic.CommInfrastructure;
-import org.onap.policy.common.endpoints.utils.NetLoggerUtil;
-import org.onap.policy.common.endpoints.utils.NetLoggerUtil.EventType;
-import org.onap.policy.rest.RestManager;
-import org.onap.policy.sdnc.util.Serialization;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-// TODO this class will be deleted
-
-public final class SdncManager implements Runnable {
-
-    private String sdncUrlBase;
-    private String username;
-    private String password;
-    private SdncRequest sdncRequest;
-    private SdncCallback callback;
-    private static final Logger logger = LoggerFactory.getLogger(SdncManager.class);
-
-    // The REST manager used for processing REST calls for this Sdnc manager
-    private RestManager restManager;
-
-    @FunctionalInterface
-    public interface SdncCallback {
-        public void onCallback(SdncResponse response);
-    }
-
-    /**
-     * Constructor.
-     *
-     * @param cb Callback method
-     * @param request request
-     */
-    public SdncManager(SdncCallback cb, SdncRequest request, String url,
-            String user, String password) {
-        if (cb == null || request == null) {
-            throw new IllegalArgumentException(
-                  "the parameters \"callback\" and \"request\" on the SdncManager constructor may not be null"
-            );
-        }
-        this.callback = cb;
-        this.sdncRequest = request;
-        if (url == null) {
-            throw new IllegalArgumentException(
-                    "the \"url\" parameter on the SdncManager constructor may not be null"
-              );
-        }
-        this.sdncUrlBase = url;
-        this.username = user;
-        this.password = password;
-
-        restManager = new RestManager();
-    }
-
-    /**
-     * Set the parameters.
-     *
-     * @param baseUrl base URL
-     * @param name username
-     * @param pwd password
-     */
-    public void setSdncParams(String baseUrl, String name, String pwd) {
-        sdncUrlBase = baseUrl;
-        username = name;
-        password = pwd;
-    }
-
-    @Override
-    public void run() {
-        Map<String, String> headers = new HashMap<>();
-        Pair<Integer, String> httpDetails;
-
-        SdncResponse responseError = new SdncResponse();
-        SdncResponseOutput responseOutput = new SdncResponseOutput();
-        responseOutput.setResponseCode("404");
-        responseError.setResponseOutput(responseOutput);
-
-        headers.put("Accept", "application/json");
-        String sdncUrl = sdncUrlBase + sdncRequest.getUrl();
-
-        try {
-            String sdncRequestJson = Serialization.gsonPretty.toJson(sdncRequest);
-            NetLoggerUtil.log(EventType.OUT, CommInfrastructure.REST, sdncUrl, sdncRequestJson);
-            logger.info("[OUT|{}|{}|]{}{}", CommInfrastructure.REST, sdncUrl, NetLoggerUtil.SYSTEM_LS, sdncRequestJson);
-
-            httpDetails = restManager.post(sdncUrl, username, password, headers, "application/json",
-                                           sdncRequestJson);
-        } catch (Exception e) {
-            logger.info(e.getMessage(), e);
-            this.callback.onCallback(responseError);
-            return;
-        }
-
-        if (httpDetails == null) {
-            this.callback.onCallback(responseError);
-            return;
-        }
-
-        try {
-            SdncResponse response = Serialization.gsonPretty.fromJson(httpDetails.getRight(), SdncResponse.class);
-            NetLoggerUtil.log(EventType.IN, CommInfrastructure.REST, sdncUrl, httpDetails.getRight());
-            logger.info("[IN|{}|{}|]{}{}", "Sdnc", sdncUrl, NetLoggerUtil.SYSTEM_LS, httpDetails.getRight());
-            String body = Serialization.gsonPretty.toJson(response);
-            logger.info("Response to Sdnc Heal post:");
-            logger.info(body);
-            response.setRequestId(sdncRequest.getRequestId().toString());
-
-            if (!"200".equals(response.getResponseOutput().getResponseCode())) {
-                logger.info(
-                    "Sdnc Heal Restcall failed with http error code {} {}", 
-                    httpDetails.getLeft(), httpDetails.getRight()
-                );
-            }
-
-            this.callback.onCallback(response);
-        } catch (JsonSyntaxException e) {
-            logger.info("Failed to deserialize into SdncResponse {}", e.getLocalizedMessage(), e);
-        } catch (Exception e) {
-            logger.info("Unknown error deserializing into SdncResponse {}", e.getLocalizedMessage(), e);
-        }
-    }
-
-    /**
-     * Protected setter for rest manager to allow mocked rest manager to be used for testing.
-     * @param restManager the test REST manager
-     */
-    protected void setRestManager(final RestManager restManager) {
-        this.restManager = restManager;
-    }
-}
diff --git a/models-interactions/model-impl/sdnc/src/test/java/org/onap/policy/sdnc/SdncManagerTest.java b/models-interactions/model-impl/sdnc/src/test/java/org/onap/policy/sdnc/SdncManagerTest.java
deleted file mode 100644 (file)
index 45461de..0000000
+++ /dev/null
@@ -1,192 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * sdnc
- * ================================================================================
- * Copyright (C) 2018 Huawei. All rights reserved.
- * ================================================================================
- * Modifications Copyright (C) 2019-2020 AT&T Intellectual Property. All rights reserved
- * Modifications Copyright (C) 2019-2020 Nordix Foundation.
- * ================================================================================
- * 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
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END=========================================================
- */
-
-package org.onap.policy.sdnc;
-
-import static org.assertj.core.api.Assertions.assertThatIllegalArgumentException;
-import static org.mockito.ArgumentMatchers.any;
-import static org.mockito.ArgumentMatchers.anyMap;
-import static org.mockito.ArgumentMatchers.anyString;
-import static org.mockito.ArgumentMatchers.eq;
-import static org.mockito.ArgumentMatchers.startsWith;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.when;
-
-import java.util.UUID;
-import org.apache.commons.lang3.tuple.Pair;
-import org.junit.Before;
-import org.junit.Test;
-import org.onap.policy.rest.RestManager;
-import org.onap.policy.sdnc.SdncManager.SdncCallback;
-import org.onap.policy.sdnc.util.Serialization;
-
-public class SdncManagerTest implements SdncCallback {
-    private static final String SOMEWHERE_OVER_THE_RAINBOW = "http://somewhere.over.the.rainbow";
-
-    private static final String DOROTHY = "Dorothy";
-
-    private RestManager   mockedRestManager;
-
-    private Pair<Integer, String> httpResponsePutOk;
-    private Pair<Integer, String> httpResponseBadResponse;
-    private Pair<Integer, String> httpResponseErr;
-
-    private SdncRequest  request;
-    private SdncResponse response;
-
-    /**
-     * Set up the mocked REST manager.
-     */
-    @Before
-    public void setupMockedRest() {
-        mockedRestManager   = mock(RestManager.class);
-
-        httpResponsePutOk       = Pair.of(202, Serialization.gsonPretty.toJson(response));
-        httpResponseBadResponse = Pair.of(202, Serialization.gsonPretty.toJson(null));
-        httpResponseErr         = Pair.of(200, null);
-    }
-
-    /**
-     * Create the request and response before.
-     */
-    @Before
-    public void createRequestAndResponse() {
-        SdncHealServiceInfo serviceInfo = new SdncHealServiceInfo();
-        serviceInfo.setServiceInstanceId("E-City");
-
-        SdncHealRequestHeaderInfo additionalParams = new SdncHealRequestHeaderInfo();
-        additionalParams.setSvcAction("Go Home");
-        additionalParams.setSvcRequestId("My Request");
-
-        SdncHealRequest healRequest = new SdncHealRequest();
-        healRequest.setRequestHeaderInfo(additionalParams);
-        healRequest.setServiceInfo(serviceInfo);
-
-        UUID requestId = UUID.randomUUID();
-        request = new SdncRequest();
-        request.setRequestId(requestId);
-        request.setHealRequest(healRequest);
-        request.setNsInstanceId(DOROTHY);
-
-        SdncResponseOutput responseDescriptor = new SdncResponseOutput();
-        responseDescriptor.setSvcRequestId("1234");
-        responseDescriptor.setResponseCode("200");
-        responseDescriptor.setAckFinalIndicator("final-indicator-00");
-
-        response = new SdncResponse();
-        response.setRequestId(request.getRequestId().toString());
-        response.setResponseOutput(responseDescriptor);
-    }
-
-    @Test
-    public void testSdncInitiation() {
-
-        assertThatIllegalArgumentException().isThrownBy(() -> new SdncManager(null, null, null, null, null))
-            .withMessage("the parameters \"callback\" and \"request\" on the SdncManager constructor may not be null");
-
-        assertThatIllegalArgumentException().isThrownBy(() -> new SdncManager(this, null, null, null, null))
-            .withMessage("the parameters \"callback\" and \"request\" on the SdncManager constructor may not be null");
-
-        assertThatIllegalArgumentException().isThrownBy(() -> new SdncManager(this, request, null, null, null))
-            .withMessage("the \"url\" parameter on the SdncManager constructor may not be null");
-
-        new SdncManager(this, request, SOMEWHERE_OVER_THE_RAINBOW, DOROTHY, "Toto");
-    }
-
-    @Test
-    public void testSdncExecutionException() throws InterruptedException {
-        SdncManager manager = new SdncManager(this, request, SOMEWHERE_OVER_THE_RAINBOW, DOROTHY, "Exception");
-        manager.setRestManager(mockedRestManager);
-
-        when(mockedRestManager.post(startsWith(SOMEWHERE_OVER_THE_RAINBOW), eq(DOROTHY), eq("Exception"), anyMap(),
-                        anyString(), anyString())).thenThrow(new RuntimeException("OzException"));
-
-        Thread managerThread = new Thread(manager);
-        managerThread.start();
-
-        managerThread.join(1000);
-
-        verify(mockedRestManager).post(any(), any(), any(), any(), any(), any());
-    }
-
-    @Test
-    public void testSdncExecutionNull() throws InterruptedException {
-        SdncManager manager = new SdncManager(this, request, SOMEWHERE_OVER_THE_RAINBOW, DOROTHY, "Null");
-        manager.setRestManager(mockedRestManager);
-
-        when(mockedRestManager.post(startsWith(SOMEWHERE_OVER_THE_RAINBOW), eq(DOROTHY), eq("Null"), anyMap(),
-                        anyString(), anyString())).thenReturn(null);
-
-        manager.run();
-
-        verify(mockedRestManager).post(any(), any(), any(), any(), any(), any());
-    }
-
-
-    @Test
-    public void testSdncExecutionError0() throws InterruptedException {
-        SdncManager manager = new SdncManager(this, request, SOMEWHERE_OVER_THE_RAINBOW, DOROTHY, "Error0");
-        manager.setRestManager(mockedRestManager);
-
-        when(mockedRestManager.post(startsWith(SOMEWHERE_OVER_THE_RAINBOW), eq(DOROTHY), eq("Error0"), anyMap(),
-                        anyString(), anyString())).thenReturn(httpResponseErr);
-
-        manager.run();
-
-        verify(mockedRestManager).post(any(), any(), any(), any(), any(), any());
-    }
-
-    @Test
-    public void testSdncExecutionBadResponse() throws InterruptedException {
-        SdncManager manager = new SdncManager(this, request, SOMEWHERE_OVER_THE_RAINBOW, DOROTHY, "BadResponse");
-        manager.setRestManager(mockedRestManager);
-
-        when(mockedRestManager.post(startsWith(SOMEWHERE_OVER_THE_RAINBOW), eq(DOROTHY), eq("OK"), anyMap(),
-                        anyString(), anyString())).thenReturn(httpResponseBadResponse);
-
-        manager.run();
-
-        verify(mockedRestManager).post(any(), any(), any(), any(), any(), any());
-    }
-
-    @Test
-    public void testSdncExecutionOk() throws InterruptedException {
-        SdncManager manager = new SdncManager(this, request, SOMEWHERE_OVER_THE_RAINBOW, DOROTHY, "OOK");
-        manager.setRestManager(mockedRestManager);
-
-        when(mockedRestManager.post(startsWith(SOMEWHERE_OVER_THE_RAINBOW), eq(DOROTHY), eq("OK"), anyMap(),
-                        anyString(), anyString())).thenReturn(httpResponsePutOk);
-
-        manager.run();
-
-        verify(mockedRestManager).post(any(), any(), any(), any(), any(), any());
-    }
-
-    @Override
-    public void onCallback(SdncResponse response) {
-        //
-        // Nothing really to do
-        //
-    }
-}
diff --git a/models-interactions/model-impl/so/src/main/java/org/onap/policy/so/SoManager.java b/models-interactions/model-impl/so/src/main/java/org/onap/policy/so/SoManager.java
deleted file mode 100644 (file)
index 5b8aef2..0000000
+++ /dev/null
@@ -1,389 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * so
- * ================================================================================
- * Copyright (C) 2017-2019 AT&T Intellectual Property. All rights reserved.
- * Modifications Copyright (C) 2019-2020 Nordix Foundation.
- * Modifications Copyright (C) 2019 Samsung Electronics Co., Ltd.
- * ================================================================================
- * 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
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END=========================================================
- */
-
-package org.onap.policy.so;
-
-import com.google.gson.GsonBuilder;
-import com.google.gson.JsonSyntaxException;
-import java.util.HashMap;
-import java.util.Map;
-import java.util.concurrent.Callable;
-import java.util.concurrent.ExecutorService;
-import java.util.concurrent.Executors;
-import java.util.concurrent.Future;
-import org.apache.commons.lang3.tuple.Pair;
-import org.onap.policy.common.endpoints.event.comm.Topic.CommInfrastructure;
-import org.onap.policy.common.endpoints.utils.NetLoggerUtil;
-import org.onap.policy.common.endpoints.utils.NetLoggerUtil.EventType;
-import org.onap.policy.rest.RestManager;
-import org.onap.policy.so.util.Serialization;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * This class handles the interface towards SO (Service Orchestrator) for the ONAP Policy Framework. The SO API is
- * defined at this link:
- * http://onap.readthedocs.io/en/latest/submodules/so.git/docs/SO_R1_Interface.html#get-orchestration-request
- *
- */
-public final class SoManager {
-
-    // TODO remove this class
-
-    private static final Logger logger = LoggerFactory.getLogger(SoManager.class);
-
-    private static ExecutorService executors = Executors.newCachedThreadPool();
-
-    private static final int SO_RESPONSE_ERROR = 999;
-    private static final String MEDIA_TYPE = "application/json";
-    private static final String LINE_SEPARATOR = System.lineSeparator();
-
-    // REST get timeout value in milliseconds
-    private static final int GET_REQUESTS_BEFORE_TIMEOUT = 20;
-    private static final long GET_REQUEST_WAIT_INTERVAL = 20000;
-
-    // The REST manager used for processing REST calls for this VFC manager
-    private RestManager restManager;
-
-    private long restGetTimeout = GET_REQUEST_WAIT_INTERVAL;
-
-    private String url;
-    private String user;
-    private String password;
-
-    @FunctionalInterface
-    public interface SoCallback {
-        public void onSoResponseWrapper(SoResponseWrapper wrapper);
-    }
-
-    /**
-     * Default constructor.
-     */
-    public SoManager(String url, String user, String password) {
-        this.url = url;
-        this.user = user;
-        this.password = password;
-        restManager = new RestManager();
-    }
-
-    /**
-     * Create a service instance in SO.
-     *
-     * @param url the SO URL
-     * @param urlBase the base URL
-     * @param username user name on SO
-     * @param password password on SO
-     * @param request the request to issue to SO
-     * @return the SO Response object
-     */
-    public SoResponse createModuleInstance(final String url, final String urlBase, final String username,
-            final String password, final SoRequest request) {
-        // Issue the HTTP POST request to SO to create the service instance
-        String requestJson = Serialization.gsonPretty.toJson(request);
-        NetLoggerUtil.getNetworkLogger().info("[OUT|{}|{}|{}|{}|{}|{}|]{}{}", "SO", url, username, password,
-                createSimpleHeaders(), MEDIA_TYPE, LINE_SEPARATOR, requestJson);
-        Pair<Integer, String> httpResponse =
-                restManager.post(url, username, password, createSimpleHeaders(), MEDIA_TYPE, requestJson);
-
-        // Process the response from SO
-        SoResponse response = waitForSoOperationCompletion(urlBase, username, password, url, httpResponse);
-        if (SO_RESPONSE_ERROR != response.getHttpResponseCode()) {
-            return response;
-        } else {
-            return null;
-        }
-    }
-
-    /**
-     * Works just like SOManager#asyncSORestCall(String, WorkingMemory, String, String, String, SORequest) except the
-     * vfModuleInstanceId is always null.
-     *
-     */
-    public Future<SoResponse> asyncSoRestCall(final String requestId, final SoCallback callback,
-            final String serviceInstanceId, final String vnfInstanceId, final SoRequest request) {
-        return asyncSoRestCall(requestId, callback, serviceInstanceId, vnfInstanceId, null, request);
-    }
-
-    /**
-     * This method makes an asynchronous Rest call to MSO and inserts the response into Drools working memory.
-     *
-     * @param requestId the request id
-     * @param callback callback method
-     * @param serviceInstanceId service instance id to construct the request url
-     * @param vnfInstanceId vnf instance id to construct the request url
-     * @param vfModuleInstanceId vfModule instance id to construct the request url (required in case of delete vf
-     *        module)
-     * @param request the SO request
-     * @return a concurrent Future for the thread that handles the request
-     */
-    public Future<SoResponse> asyncSoRestCall(final String requestId, final SoCallback callback,
-            final String serviceInstanceId, final String vnfInstanceId, final String vfModuleInstanceId,
-            final SoRequest request) {
-        return executors.submit(new AsyncSoRestCallThread(requestId, callback, serviceInstanceId, vnfInstanceId,
-                vfModuleInstanceId, request, this));
-    }
-
-    /**
-     * This class handles an asynchronous request to SO as a thread.
-     */
-    private class AsyncSoRestCallThread implements Callable<SoResponse> {
-        final String requestId;
-        final SoCallback callback;
-        final String serviceInstanceId;
-        final String vnfInstanceId;
-        final String vfModuleInstanceId;
-        final SoRequest request;
-        final String baseUrl;
-        final String user;
-        final String password;
-
-        /**
-         * Constructor, sets the context of the request.
-         *
-         * @param requestID The request ID
-         * @param wm reference to the Drools working memory
-         * @param serviceInstanceId the service instance in SO to use
-         * @param vnfInstanceId the VNF instance that is the subject of the request
-         * @param vfModuleInstanceId the vf module instance id (not null in case of delete vf module request)
-         * @param request the request itself
-         */
-        private AsyncSoRestCallThread(final String requestId, final SoCallback callback, final String serviceInstanceId,
-                final String vnfInstanceId, final String vfModuleInstanceId, final SoRequest request,
-                final SoManager callingSoManager) {
-            this.requestId = requestId;
-            this.callback = callback;
-            this.serviceInstanceId = serviceInstanceId;
-            this.vnfInstanceId = vnfInstanceId;
-            this.vfModuleInstanceId = vfModuleInstanceId;
-            this.request = request;
-            this.baseUrl = callingSoManager.url;
-            this.user = callingSoManager.user;
-            this.password = callingSoManager.password;
-        }
-
-        /**
-         * Process the asynchronous SO request.
-         */
-        @Override
-        public SoResponse call() {
-
-            // Create a JSON representation of the request
-            String soJson = new GsonBuilder().disableHtmlEscaping().setPrettyPrinting().create().toJson(request);
-            String initialUrl = null;
-            Pair<Integer, String> httpResponse = null;
-
-            if (request.getOperationType() != null && request.getOperationType().equals(SoOperationType.SCALE_OUT)) {
-                initialUrl = this.baseUrl + "/serviceInstantiation/v7/serviceInstances/" + serviceInstanceId + "/vnfs/"
-                        + vnfInstanceId + "/vfModules/scaleOut";
-                NetLoggerUtil.log(EventType.OUT, CommInfrastructure.REST, initialUrl, soJson);
-                httpResponse = restManager.post(initialUrl, this.user, this.password, createSimpleHeaders(), MEDIA_TYPE,
-                        soJson);
-            } else if (request.getOperationType() != null
-                    && request.getOperationType().equals(SoOperationType.DELETE_VF_MODULE)) {
-                initialUrl = this.baseUrl + "/serviceInstances/v7/" + serviceInstanceId + "/vnfs/" + vnfInstanceId
-                        + "/vfModules/" + vfModuleInstanceId;
-                NetLoggerUtil.log(EventType.OUT, CommInfrastructure.REST, initialUrl, soJson);
-                httpResponse = restManager.delete(initialUrl, this.user, this.password, createSimpleHeaders(),
-                        MEDIA_TYPE, soJson);
-            } else {
-                return null;
-            }
-
-            // Process the response from SO
-            SoResponse response =
-                    waitForSoOperationCompletion(this.baseUrl, this.user, this.password, initialUrl, httpResponse);
-
-            // Return the response to Drools in its working memory
-            SoResponseWrapper soWrapper = new SoResponseWrapper(response, requestId);
-            if (this.callback != null) {
-                this.callback.onSoResponseWrapper(soWrapper);
-            }
-
-            return response;
-        }
-    }
-
-    /**
-     * Wait for the SO operation we have ordered to complete.
-     *
-     * @param urlBaseSo The base URL for SO
-     * @param username user name on SO
-     * @param password password on SO
-     * @param initialRequestUrl The URL of the initial HTTP request
-     * @param initialHttpResponse The initial HTTP message returned from SO
-     * @return The parsed final response of SO to the request
-     */
-    private SoResponse waitForSoOperationCompletion(final String urlBaseSo, final String username,
-            final String password, final String initialRequestUrl, final Pair<Integer, String> initialHttpResponse) {
-        // Process the initial response from SO, the response to a post
-        SoResponse response = processSoResponse(initialRequestUrl, initialHttpResponse);
-        if (SO_RESPONSE_ERROR == response.getHttpResponseCode()) {
-            return response;
-        }
-
-        // The SO URL to use to get the status of orchestration requests
-        String urlGet = urlBaseSo + "/orchestrationRequests/v5/" + response.getRequestReferences().getRequestId();
-
-        // The HTTP status code of the latest response
-        Pair<Integer, String> latestHttpResponse = initialHttpResponse;
-
-        // Wait for the response from SO
-        for (int attemptsLeft = GET_REQUESTS_BEFORE_TIMEOUT; attemptsLeft >= 0; attemptsLeft--) {
-            // The SO request may have completed even on the first request so we check the
-            // response
-            // here before
-            // issuing any other requests
-            if (isRequestStateFinished(latestHttpResponse, response)) {
-                return response;
-            }
-
-            // Wait for the defined interval before issuing a get
-            try {
-                Thread.sleep(restGetTimeout);
-            } catch (InterruptedException e) {
-                logger.error("Interrupted exception: ", e);
-                Thread.currentThread().interrupt();
-                response.setHttpResponseCode(SO_RESPONSE_ERROR);
-                return response;
-            }
-
-            // Issue a GET to find the current status of our request
-            NetLoggerUtil.getNetworkLogger().info("[OUT|{}|{}|{}|{}|{}|{}|]{}", "SO", urlGet, username, password,
-                    createSimpleHeaders(), MEDIA_TYPE, LINE_SEPARATOR);
-            Pair<Integer, String> httpResponse = restManager.get(urlGet, username, password, createSimpleHeaders());
-
-            // Get our response
-            response = processSoResponse(urlGet, httpResponse);
-            if (SO_RESPONSE_ERROR == response.getHttpResponseCode()) {
-                return response;
-            }
-
-            // Our latest HTTP response code
-            latestHttpResponse = httpResponse;
-        }
-
-        // We have timed out on the SO request
-        response.setHttpResponseCode(SO_RESPONSE_ERROR);
-        return response;
-    }
-
-    /**
-     * Parse the response message from SO into a SOResponse object.
-     *
-     * @param requestURL The URL of the HTTP request
-     * @param httpResponse The HTTP message returned from SO
-     * @return The parsed response
-     */
-    private SoResponse processSoResponse(final String requestUrl, final Pair<Integer, String> httpResponse) {
-        SoResponse response = new SoResponse();
-
-        // A null httpDetails indicates a HTTP problem, a valid response from SO must be
-        // either 200
-        // or 202
-        if (!httpResultIsNullFree(httpResponse) || (httpResponse.getLeft() != 200 && httpResponse.getLeft() != 202)) {
-            logger.error("Invalid HTTP response received from SO");
-            response.setHttpResponseCode(SO_RESPONSE_ERROR);
-            return response;
-        }
-
-        // Parse the JSON of the response into our POJO
-        try {
-            response = Serialization.gsonPretty.fromJson(httpResponse.getRight(), SoResponse.class);
-        } catch (JsonSyntaxException e) {
-            logger.error("Failed to deserialize HTTP response into SOResponse: ", e);
-            response.setHttpResponseCode(SO_RESPONSE_ERROR);
-            return response;
-        }
-
-        // Set the HTTP response code of the response if needed
-        if (response.getHttpResponseCode() == 0) {
-            response.setHttpResponseCode(httpResponse.getLeft());
-        }
-
-        NetLoggerUtil.log(EventType.IN, CommInfrastructure.REST, requestUrl, httpResponse.getRight());
-
-        if (logger.isDebugEnabled()) {
-            logger.debug("***** Response to SO Request to URL {}:", requestUrl);
-            logger.debug(httpResponse.getRight());
-        }
-
-        return response;
-    }
-
-    /**
-     * Method to allow tuning of REST get timeout.
-     *
-     * @param restGetTimeout the timeout value
-     */
-    protected void setRestGetTimeout(final long restGetTimeout) {
-        this.restGetTimeout = restGetTimeout;
-    }
-
-    /**
-     * Check that the request state of a response is defined.
-     *
-     * @param response The response to check
-     * @return true if the request for the response is defined
-     */
-    private boolean isRequestStateDefined(final SoResponse response) {
-        return response != null && response.getRequest() != null && response.getRequest().getRequestStatus() != null
-                && response.getRequest().getRequestStatus().getRequestState() != null;
-    }
-
-    /**
-     * Check that the request state of a response is finished.
-     *
-     * @param latestHttpDetails the HTTP details of the response
-     * @param response The response to check
-     * @return true if the request for the response is finished
-     */
-    private boolean isRequestStateFinished(final Pair<Integer, String> latestHttpDetails, final SoResponse response) {
-        if (latestHttpDetails != null && 200 == latestHttpDetails.getLeft() && isRequestStateDefined(response)) {
-            String requestState = response.getRequest().getRequestStatus().getRequestState();
-            return "COMPLETE".equalsIgnoreCase(requestState) || "FAILED".equalsIgnoreCase(requestState);
-        } else {
-            return false;
-        }
-    }
-
-    /**
-     * Check that a HTTP operation result has no nulls.
-     *
-     * @param httpOperationResult the result to check
-     * @return true if no nulls are found
-     */
-    private boolean httpResultIsNullFree(Pair<Integer, String> httpOperationResult) {
-        return httpOperationResult != null && httpOperationResult.getLeft() != null
-                && httpOperationResult.getRight() != null;
-    }
-
-    /**
-     * Create simple HTTP headers for unauthenticated requests to SO.
-     *
-     * @return the HTTP headers
-     */
-    private Map<String, String> createSimpleHeaders() {
-        Map<String, String> headers = new HashMap<>();
-        headers.put("Accept", MEDIA_TYPE);
-        return headers;
-    }
-}
diff --git a/models-interactions/model-impl/so/src/test/java/org/onap/policy/so/SoManagerTest.java b/models-interactions/model-impl/so/src/test/java/org/onap/policy/so/SoManagerTest.java
deleted file mode 100644 (file)
index aa3562a..0000000
+++ /dev/null
@@ -1,344 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * TestSOManager
- * ================================================================================
- * Copyright (C) 2018 Ericsson. All rights reserved.
- * ================================================================================
- * Modifications Copyright (C) 2018-2019 AT&T Intellectual Property. All rights reserved.
- * Modifications Copyright (C) 2019 Nordix Foundation.
- * ================================================================================
- *
- * 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
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END=========================================================
- */
-
-package org.onap.policy.so;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertNull;
-import static org.junit.Assert.assertTrue;
-
-import java.io.IOException;
-import java.net.URI;
-import java.util.UUID;
-import java.util.concurrent.Future;
-import org.apache.http.client.methods.CloseableHttpResponse;
-import org.apache.http.client.methods.HttpGet;
-import org.apache.http.impl.client.CloseableHttpClient;
-import org.apache.http.impl.client.HttpClients;
-import org.apache.http.util.EntityUtils;
-import org.glassfish.grizzly.http.server.HttpServer;
-import org.glassfish.jersey.grizzly2.httpserver.GrizzlyHttpServerFactory;
-import org.glassfish.jersey.server.ResourceConfig;
-import org.junit.AfterClass;
-import org.junit.BeforeClass;
-import org.junit.Test;
-import org.onap.policy.so.SoManager.SoCallback;
-
-public class SoManagerTest implements SoCallback {
-    private static final String LOCALHOST_99999999 = "http:/localhost:99999999";
-    private static final String CITIZEN = "citizen";
-    private static final String RETURN_ONGING202 = "ReturnOnging202";
-    private static final String RETURN_ONGING200 = "ReturnOnging200";
-    private static final String RETURN_FAILED = "ReturnFailed";
-    private static final String RETURN_COMPLETED = "ReturnCompleted";
-    private static final String RETURN_BAD_JSON = "ReturnBadJson";
-    private static final String RETURN_BAD_AFTER_WAIT = "ReturnBadAfterWait";
-    private static final String ONGOING = "ONGOING";
-    private static final String FAILED = "FAILED";
-    private static final String COMPLETE = "COMPLETE";
-    private static final String DATE1 = "2018-03-23 16:31";
-    private static final String SERVICE_INSTANTIATION_V7 = "/serviceInstantiation/v7";
-    private static final String BASE_URI = "http://localhost:46553/TestSOManager";
-    private static final String BASE_SO_URI = BASE_URI + "/SO";
-    private static HttpServer server;
-
-    /**
-     * Set up test class.
-     */
-    @BeforeClass
-    public static void setUp() throws IOException {
-        final ResourceConfig rc = new ResourceConfig(SoDummyServer.class);
-        //Grizzly by default doesn't allow payload for HTTP methods (ex: DELETE), for which HTTP spec doesn't
-        // explicitly state that.
-        //allow it before starting the server
-        server = GrizzlyHttpServerFactory.createHttpServer(URI.create(BASE_URI), rc, false);
-        server.getServerConfiguration().setAllowPayloadForUndefinedHttpMethods(true);
-        server.start();
-    }
-
-    @AfterClass
-    public static void tearDown() {
-        server.shutdown();
-    }
-
-    @Test
-    public void testGrizzlyServer() throws IOException {
-        try (CloseableHttpClient httpclient = HttpClients.createDefault()) {
-            HttpGet httpGet = new HttpGet("http://localhost:46553/TestSOManager/SO/Stats");
-            CloseableHttpResponse response = httpclient.execute(httpGet);
-
-            String returnBody = EntityUtils.toString(response.getEntity(), "UTF-8");
-            assertTrue(returnBody.matches("^\\{\"GET\": [0-9]*,\"STAT\": [0-9]*,\"POST\": [0-9]*,\"PUT\": [0-9]*,"
-                    + "\"DELETE\": [0-9]*\\}$"));
-        }
-    }
-
-    @Test
-    public void testServiceInstantiation() {
-        SoManager manager = new SoManager(null, null, null);
-        assertNotNull(manager);
-        manager.setRestGetTimeout(100);
-
-        SoResponse response = manager.createModuleInstance(LOCALHOST_99999999, BASE_SO_URI, "sean",
-                CITIZEN, null);
-        assertNull(response);
-
-        response = manager.createModuleInstance(BASE_SO_URI + SERVICE_INSTANTIATION_V7, BASE_SO_URI, "sean",
-                        CITIZEN, null);
-        assertNull(response);
-
-        response = manager.createModuleInstance(BASE_SO_URI + SERVICE_INSTANTIATION_V7, BASE_SO_URI, "sean",
-                        CITIZEN, new SoRequest());
-        assertNull(response);
-
-        SoRequest request = new SoRequest();
-        request.setRequestId(UUID.randomUUID());
-        request.setRequestScope("Test");
-        request.setRequestType(RETURN_BAD_JSON);
-        request.setStartTime(DATE1);
-        request.setRequestStatus(new SoRequestStatus());
-        request.getRequestStatus().setRequestState(ONGOING);
-
-        response = manager.createModuleInstance(BASE_SO_URI + SERVICE_INSTANTIATION_V7, BASE_SO_URI, "sean",
-                        CITIZEN, request);
-        assertNull(response);
-
-        request.setRequestType(RETURN_COMPLETED);
-        response = manager.createModuleInstance(BASE_SO_URI + SERVICE_INSTANTIATION_V7, BASE_SO_URI, "sean",
-                        CITIZEN, request);
-        assertNotNull(response);
-        assertEquals(COMPLETE, response.getRequest().getRequestStatus().getRequestState());
-
-        request.setRequestType(RETURN_FAILED);
-        response = manager.createModuleInstance(BASE_SO_URI + SERVICE_INSTANTIATION_V7, BASE_SO_URI, "sean",
-                        CITIZEN, request);
-        assertNotNull(response);
-        assertEquals(FAILED, response.getRequest().getRequestStatus().getRequestState());
-
-        // Use scope to set the number of iterations we'll wait for
-
-        request.setRequestType(RETURN_ONGING200);
-        request.setRequestScope("10");
-        response = manager.createModuleInstance(BASE_SO_URI + SERVICE_INSTANTIATION_V7, BASE_SO_URI, "sean",
-                        CITIZEN, request);
-        assertNotNull(response);
-        assertNotNull(response.getRequest());
-        assertEquals(COMPLETE, response.getRequest().getRequestStatus().getRequestState());
-
-        request.setRequestType(RETURN_ONGING202);
-        request.setRequestScope("20");
-        response = manager.createModuleInstance(BASE_SO_URI + SERVICE_INSTANTIATION_V7, BASE_SO_URI, "sean",
-                        CITIZEN, request);
-        assertNotNull(response);
-        assertNotNull(response.getRequest());
-        assertEquals(COMPLETE, response.getRequest().getRequestStatus().getRequestState());
-
-        // Test timeout after 20 attempts for a response
-        request.setRequestType(RETURN_ONGING202);
-        request.setRequestScope("21");
-        response = manager.createModuleInstance(BASE_SO_URI + SERVICE_INSTANTIATION_V7, BASE_SO_URI, "sean",
-                        CITIZEN, request);
-        assertNull(response);
-
-        // Test bad response after 3 attempts for a response
-        request.setRequestType(RETURN_BAD_AFTER_WAIT);
-        request.setRequestScope("3");
-        response = manager.createModuleInstance(BASE_SO_URI + SERVICE_INSTANTIATION_V7, BASE_SO_URI, "sean",
-                        CITIZEN, request);
-        assertNull(response);
-    }
-
-    @Test
-    public void testVfModuleCreation() throws Exception {
-        SoManager manager = new SoManager(LOCALHOST_99999999, "sean", CITIZEN);
-        assertNotNull(manager);
-        manager.setRestGetTimeout(100);
-
-        SoRequest soRequest = new SoRequest();
-        soRequest.setOperationType(SoOperationType.SCALE_OUT);
-        Future<SoResponse> asyncRestCallFuture = manager.asyncSoRestCall(UUID.randomUUID().toString(), this,
-                        UUID.randomUUID().toString(), UUID.randomUUID().toString(), soRequest);
-        SoResponse response = asyncRestCallFuture.get();
-        assertEquals(999, response.getHttpResponseCode());
-
-        manager = new SoManager(BASE_SO_URI, "sean", CITIZEN);
-        manager.setRestGetTimeout(100);
-        asyncRestCallFuture = manager.asyncSoRestCall(UUID.randomUUID().toString(), this, UUID.randomUUID().toString(),
-                        UUID.randomUUID().toString(), soRequest);
-        response = asyncRestCallFuture.get();
-        assertEquals(999, response.getHttpResponseCode());
-
-        SoRequest request = new SoRequest();
-        request.setRequestId(UUID.randomUUID());
-        request.setRequestScope("Test");
-        request.setRequestType(RETURN_BAD_JSON);
-        request.setStartTime(DATE1);
-        request.setRequestStatus(new SoRequestStatus());
-        request.getRequestStatus().setRequestState(ONGOING);
-        request.setOperationType(SoOperationType.SCALE_OUT);
-
-        asyncRestCallFuture = manager.asyncSoRestCall(UUID.randomUUID().toString(), this, UUID.randomUUID().toString(),
-                        UUID.randomUUID().toString(), request);
-        response = asyncRestCallFuture.get();
-        assertEquals(999, response.getHttpResponseCode());
-
-        request.setRequestType(RETURN_COMPLETED);
-
-        asyncRestCallFuture = manager.asyncSoRestCall(UUID.randomUUID().toString(), this, UUID.randomUUID().toString(),
-                        UUID.randomUUID().toString(), request);
-        response = asyncRestCallFuture.get();
-        assertEquals(COMPLETE, response.getRequest().getRequestStatus().getRequestState());
-
-        request.setRequestType(RETURN_FAILED);
-        asyncRestCallFuture = manager.asyncSoRestCall(UUID.randomUUID().toString(), this, UUID.randomUUID().toString(),
-                        UUID.randomUUID().toString(), request);
-        response = asyncRestCallFuture.get();
-        assertEquals(FAILED, response.getRequest().getRequestStatus().getRequestState());
-
-        // Use scope to set the number of iterations we'll wait for
-
-        request.setRequestType(RETURN_ONGING200);
-        request.setRequestScope("10");
-        asyncRestCallFuture = manager.asyncSoRestCall(UUID.randomUUID().toString(), this, UUID.randomUUID().toString(),
-                        UUID.randomUUID().toString(), request);
-        response = asyncRestCallFuture.get();
-        assertNotNull(response.getRequest());
-        assertEquals(COMPLETE, response.getRequest().getRequestStatus().getRequestState());
-
-        request.setRequestType(RETURN_ONGING202);
-        request.setRequestScope("20");
-        asyncRestCallFuture = manager.asyncSoRestCall(UUID.randomUUID().toString(), this, UUID.randomUUID().toString(),
-                        UUID.randomUUID().toString(), request);
-        response = asyncRestCallFuture.get();
-        assertNotNull(response.getRequest());
-        assertEquals(COMPLETE, response.getRequest().getRequestStatus().getRequestState());
-
-        // Test timeout after 20 attempts for a response
-        request.setRequestType(RETURN_ONGING202);
-        request.setRequestScope("21");
-        asyncRestCallFuture = manager.asyncSoRestCall(UUID.randomUUID().toString(), this, UUID.randomUUID().toString(),
-                        UUID.randomUUID().toString(), request);
-        response = asyncRestCallFuture.get();
-        assertEquals(999, response.getHttpResponseCode());
-
-        // Test bad response after 3 attempts for a response
-        request.setRequestType(RETURN_BAD_AFTER_WAIT);
-        request.setRequestScope("3");
-        asyncRestCallFuture = manager.asyncSoRestCall(UUID.randomUUID().toString(), this, UUID.randomUUID().toString(),
-                        UUID.randomUUID().toString(), request);
-        response = asyncRestCallFuture.get();
-        assertEquals(999, response.getHttpResponseCode());
-    }
-
-    @Test
-    public void testVfModuleDeletion() throws Exception {
-        SoManager manager = new SoManager(LOCALHOST_99999999, "sean", CITIZEN);
-        assertNotNull(manager);
-        manager.setRestGetTimeout(100);
-
-        SoRequest soRequest = new SoRequest();
-        soRequest.setOperationType(SoOperationType.DELETE_VF_MODULE);
-        Future<SoResponse> asyncRestCallFuture = manager.asyncSoRestCall(UUID.randomUUID().toString(), this,
-                UUID.randomUUID().toString(), UUID.randomUUID().toString(), UUID.randomUUID().toString(), soRequest);
-        SoResponse response = asyncRestCallFuture.get();
-        assertEquals(999, response.getHttpResponseCode());
-
-        manager = new SoManager(BASE_SO_URI, "sean", CITIZEN);
-        manager.setRestGetTimeout(100);
-
-        asyncRestCallFuture = manager.asyncSoRestCall(UUID.randomUUID().toString(), this, UUID.randomUUID().toString(),
-                UUID.randomUUID().toString(), UUID.randomUUID().toString(), soRequest);
-        response = asyncRestCallFuture.get();
-        assertEquals(999, response.getHttpResponseCode());
-
-        SoRequest request = new SoRequest();
-        request.setRequestId(UUID.randomUUID());
-        request.setRequestScope("Test");
-        request.setRequestType(RETURN_BAD_JSON);
-        request.setStartTime(DATE1);
-        request.setRequestStatus(new SoRequestStatus());
-        request.getRequestStatus().setRequestState(ONGOING);
-        request.setOperationType(SoOperationType.DELETE_VF_MODULE);
-
-        asyncRestCallFuture = manager.asyncSoRestCall(UUID.randomUUID().toString(), this, UUID.randomUUID().toString(),
-                UUID.randomUUID().toString(), UUID.randomUUID().toString(), request);
-        response = asyncRestCallFuture.get();
-        assertEquals(999, response.getHttpResponseCode());
-
-        request.setRequestType(RETURN_COMPLETED);
-
-        asyncRestCallFuture = manager.asyncSoRestCall(UUID.randomUUID().toString(), this, UUID.randomUUID().toString(),
-                UUID.randomUUID().toString(), UUID.randomUUID().toString(), request);
-        response = asyncRestCallFuture.get();
-        assertEquals(COMPLETE, response.getRequest().getRequestStatus().getRequestState());
-
-        request.setRequestType(RETURN_FAILED);
-        asyncRestCallFuture = manager.asyncSoRestCall(UUID.randomUUID().toString(), this, UUID.randomUUID().toString(),
-                UUID.randomUUID().toString(), UUID.randomUUID().toString(), request);
-        response = asyncRestCallFuture.get();
-        assertEquals(FAILED, response.getRequest().getRequestStatus().getRequestState());
-
-        // Use scope to set the number of iterations we'll wait for
-
-        request.setRequestType(RETURN_ONGING200);
-        request.setRequestScope("10");
-        asyncRestCallFuture = manager.asyncSoRestCall(UUID.randomUUID().toString(), this, UUID.randomUUID().toString(),
-                UUID.randomUUID().toString(), UUID.randomUUID().toString(), request);
-        response = asyncRestCallFuture.get();
-        assertNotNull(response.getRequest());
-        assertEquals(COMPLETE, response.getRequest().getRequestStatus().getRequestState());
-
-        request.setRequestType(RETURN_ONGING202);
-        request.setRequestScope("20");
-        asyncRestCallFuture = manager.asyncSoRestCall(UUID.randomUUID().toString(), this, UUID.randomUUID().toString(),
-                UUID.randomUUID().toString(), UUID.randomUUID().toString(), request);
-        response = asyncRestCallFuture.get();
-        assertNotNull(response.getRequest());
-        assertEquals(COMPLETE, response.getRequest().getRequestStatus().getRequestState());
-
-        // Test timeout after 20 attempts for a response
-        request.setRequestType(RETURN_ONGING202);
-        request.setRequestScope("21");
-        asyncRestCallFuture = manager.asyncSoRestCall(UUID.randomUUID().toString(), this, UUID.randomUUID().toString(),
-                UUID.randomUUID().toString(), UUID.randomUUID().toString(), request);
-        response = asyncRestCallFuture.get();
-        assertEquals(999, response.getHttpResponseCode());
-
-        // Test bad response after 3 attempts for a response
-        request.setRequestType(RETURN_BAD_AFTER_WAIT);
-        request.setRequestScope("3");
-        asyncRestCallFuture = manager.asyncSoRestCall(UUID.randomUUID().toString(), this, UUID.randomUUID().toString(),
-                UUID.randomUUID().toString(), UUID.randomUUID().toString(), request);
-        response = asyncRestCallFuture.get();
-        assertEquals(999, response.getHttpResponseCode());
-    }
-
-    @Override
-    public void onSoResponseWrapper(SoResponseWrapper wrapper) {
-        //
-        // Nothing really needed to do
-        //
-    }
-}
diff --git a/models-interactions/model-impl/vfc/src/main/java/org/onap/policy/vfc/VfcManager.java b/models-interactions/model-impl/vfc/src/main/java/org/onap/policy/vfc/VfcManager.java
deleted file mode 100644 (file)
index 64d60ba..0000000
+++ /dev/null
@@ -1,196 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * Copyright (C) 2017-2019 Intel Corp. All rights reserved.
- * Modifications Copyright (C) 2019-2020 Nordix Foundation.
- * Modifications Copyright (C) 2018-2019 AT&T Corporation. All rights reserved.
- * Modifications Copyright (C) 2019 Samsung Electronics Co., Ltd.
- * ================================================================================
- * 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
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END=========================================================
- */
-
-package org.onap.policy.vfc;
-
-import com.google.gson.JsonSyntaxException;
-import java.util.HashMap;
-import java.util.Map;
-import org.apache.commons.lang3.tuple.Pair;
-import org.onap.policy.common.endpoints.event.comm.Topic.CommInfrastructure;
-import org.onap.policy.common.endpoints.utils.NetLoggerUtil;
-import org.onap.policy.common.endpoints.utils.NetLoggerUtil.EventType;
-import org.onap.policy.rest.RestManager;
-import org.onap.policy.vfc.util.Serialization;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-public final class VfcManager implements Runnable {
-
-    private String vfcUrlBase;
-    private String username;
-    private String password;
-    private VfcRequest vfcRequest;
-    private VfcCallback callback;
-    private static final Logger logger = LoggerFactory.getLogger(VfcManager.class);
-
-    // The REST manager used for processing REST calls for this VFC manager
-    private RestManager restManager;
-
-    @FunctionalInterface
-    public interface VfcCallback {
-        void onResponse(VfcResponse responseError);
-    }
-
-    /**
-     * Constructor.
-     *
-     * @param cb Callback method to call when response
-     * @param request request
-     * @param url URL to VFC component
-     * @param user username
-     * @param pwd password
-     */
-    public VfcManager(VfcCallback cb, VfcRequest request, String url, String user, String pwd) {
-        if (cb == null || request == null) {
-            throw new IllegalArgumentException(
-                    "the parameters \"cb\" and \"request\" on the VfcManager constructor may not be null");
-        }
-        if (url == null) {
-            throw new IllegalArgumentException(
-                    "the \"url\" parameter on the VfcManager constructor may not be null");
-        }
-        callback = cb;
-        vfcRequest = request;
-        vfcUrlBase = url;
-        username = user;
-        password = pwd;
-
-        restManager = new RestManager();
-    }
-
-    /**
-     * Set the parameters.
-     *
-     * @param baseUrl base URL
-     * @param name username
-     * @param pwd password
-     */
-    public void setVfcParams(String baseUrl, String name, String pwd) {
-        vfcUrlBase = baseUrl + "/api/nslcm/v1";
-        username = name;
-        password = pwd;
-    }
-
-    @Override
-    public void run() {
-        Map<String, String> headers = new HashMap<>();
-        Pair<Integer, String> httpDetails;
-
-        VfcResponse responseError = new VfcResponse();
-        responseError.setResponseDescriptor(new VfcResponseDescriptor());
-        responseError.getResponseDescriptor().setStatus("error");
-
-        headers.put("Accept", "application/json");
-        String vfcUrl = vfcUrlBase + "/ns/" + vfcRequest.getNsInstanceId() + "/heal";
-        try {
-            String vfcRequestJson = Serialization.gsonPretty.toJson(vfcRequest);
-            NetLoggerUtil.log(EventType.OUT, CommInfrastructure.REST, vfcUrl, vfcRequestJson);
-
-            httpDetails = restManager.post(vfcUrl, username, password, headers, "application/json", vfcRequestJson);
-        } catch (Exception e) {
-            logger.error(e.getMessage(), e);
-            this.callback.onResponse(responseError);
-            return;
-        }
-
-        if (httpDetails == null) {
-            this.callback.onResponse(responseError);
-            return;
-        }
-
-        if (httpDetails.getLeft() != 202) {
-            logger.warn("VFC Heal Restcall failed");
-            return;
-        }
-
-        try {
-            handleVfcResponse(headers, httpDetails, vfcUrl);
-        } catch (JsonSyntaxException e) {
-            logger.error("Failed to deserialize into VfcResponse {}", e.getLocalizedMessage(), e);
-        } catch (InterruptedException e) {
-            logger.error("Interrupted exception: {}", e.getLocalizedMessage(), e);
-            Thread.currentThread().interrupt();
-        } catch (Exception e) {
-            logger.error("Unknown error deserializing into VfcResponse {}", e.getLocalizedMessage(), e);
-        }
-    }
-
-    /**
-     * Handle a VFC response message.
-     *
-     * @param headers the headers in the response
-     * @param httpDetails the HTTP details in the response
-     * @param vfcUrl the response URL
-     * @throws InterruptedException on errors in the response
-     */
-    private void handleVfcResponse(Map<String, String> headers, Pair<Integer, String> httpDetails, String vfcUrl)
-            throws InterruptedException {
-        VfcResponse response = Serialization.gsonPretty.fromJson(httpDetails.getRight(), VfcResponse.class);
-        NetLoggerUtil.log(EventType.IN, CommInfrastructure.REST, vfcUrl, httpDetails.getRight());
-        String body = Serialization.gsonPretty.toJson(response);
-        logger.debug("Response to VFC Heal post:");
-        logger.debug(body);
-
-        String jobId = response.getJobId();
-        int attemptsLeft = 20;
-
-        String urlGet = vfcUrlBase + "/jobs/" + jobId;
-        VfcResponse responseGet = null;
-
-        while (attemptsLeft-- > 0) {
-            NetLoggerUtil.getNetworkLogger().info("[OUT|{}|{}|]", "VFC", urlGet);
-            Pair<Integer, String> httpDetailsGet = restManager.get(urlGet, username, password, headers);
-            responseGet = Serialization.gsonPretty.fromJson(httpDetailsGet.getRight(), VfcResponse.class);
-            NetLoggerUtil.log(EventType.IN, CommInfrastructure.REST, vfcUrl, httpDetailsGet.getRight());
-            responseGet.setRequestId(vfcRequest.getRequestId().toString());
-            body = Serialization.gsonPretty.toJson(responseGet);
-            logger.debug("Response to VFC Heal get:");
-            logger.debug(body);
-
-            String responseStatus = responseGet.getResponseDescriptor().getStatus();
-            if (httpDetailsGet.getLeft() == 200
-                    && ("finished".equalsIgnoreCase(responseStatus) || "error".equalsIgnoreCase(responseStatus))) {
-                logger.debug("VFC Heal Status {}", responseGet.getResponseDescriptor().getStatus());
-                this.callback.onResponse(responseGet);
-                return;
-            }
-            Thread.sleep(20000);
-        }
-        boolean isTimeout = (attemptsLeft <= 0) && (responseGet != null)
-                        && (responseGet.getResponseDescriptor() != null);
-        isTimeout = isTimeout && (responseGet.getResponseDescriptor().getStatus() != null)
-                        && (!responseGet.getResponseDescriptor().getStatus().isEmpty());
-        if (isTimeout) {
-            logger.debug("VFC timeout. Status: ({})", responseGet.getResponseDescriptor().getStatus());
-            this.callback.onResponse(responseGet);
-        }
-    }
-
-    /**
-     * Protected setter for rest manager to allow mocked rest manager to be used for testing.
-     *
-     * @param restManager the test REST manager
-     */
-    protected void setRestManager(final RestManager restManager) {
-        this.restManager = restManager;
-    }
-}
diff --git a/models-interactions/model-impl/vfc/src/test/java/org/onap/policy/vfc/VfcManagerTest.java b/models-interactions/model-impl/vfc/src/test/java/org/onap/policy/vfc/VfcManagerTest.java
deleted file mode 100644 (file)
index fbe29c3..0000000
+++ /dev/null
@@ -1,209 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * vfc
- * ================================================================================
- * Copyright (C) 2018-2020 AT&T Intellectual Property. All rights reserved.
- * Modifications Copyright (C) 2019-2020 Nordix Foundation.. All rights reserved.
- * Modifications Copyright (C) 2018-2019 AT&T Corporation. All rights reserved.
- * ================================================================================
- * 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
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END=========================================================
- */
-
-package org.onap.policy.vfc;
-
-import static org.assertj.core.api.Assertions.assertThatIllegalArgumentException;
-import static org.mockito.ArgumentMatchers.any;
-import static org.mockito.ArgumentMatchers.anyMap;
-import static org.mockito.ArgumentMatchers.anyString;
-import static org.mockito.ArgumentMatchers.eq;
-import static org.mockito.ArgumentMatchers.startsWith;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.when;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.UUID;
-import org.apache.commons.lang3.tuple.Pair;
-import org.junit.Before;
-import org.junit.Test;
-import org.onap.policy.rest.RestManager;
-import org.onap.policy.vfc.VfcManager.VfcCallback;
-import org.onap.policy.vfc.util.Serialization;
-
-public class VfcManagerTest implements VfcCallback {
-
-    private static final String SOME_URL = "http://somewhere.over.the.rainbow";
-
-    private static final String DOROTHY = "Dorothy";
-
-    private RestManager   mockedRestManager;
-
-    private Pair<Integer, String> httpResponsePutOk;
-    private Pair<Integer, String> httpResponseBadResponse;
-    private Pair<Integer, String> httpResponseErr;
-
-    private VfcRequest  request;
-    private VfcResponse response;
-
-    /**
-     * Set up the mocked REST manager.
-     */
-    @Before
-    public void setupMockedRest() {
-        mockedRestManager   = mock(RestManager.class);
-
-        httpResponsePutOk       = Pair.of(202, Serialization.gsonPretty.toJson(response));
-        httpResponseBadResponse = Pair.of(202, Serialization.gsonPretty.toJson(null));
-        httpResponseErr         = Pair.of(200, null);
-    }
-
-    /**
-     * Create the request and response before.
-     */
-    @Before
-    public void createRequestAndResponse() {
-        VfcHealActionVmInfo actionInfo = new VfcHealActionVmInfo();
-        actionInfo.setVmid("TheWizard");
-        actionInfo.setVmname("The Wizard of Oz");
-
-        VfcHealAdditionalParams additionalParams = new VfcHealAdditionalParams();
-        additionalParams.setAction("Go Home");
-        additionalParams.setActionInfo(actionInfo);
-
-        VfcHealRequest healRequest = new VfcHealRequest();
-        healRequest.setAdditionalParams(additionalParams);
-        healRequest.setCause("WestWitch");
-        healRequest.setVnfInstanceId("EmeraldCity");
-
-        final UUID requestId = UUID.randomUUID();
-        request = new VfcRequest();
-        request.setHealRequest(healRequest);
-        request.setNsInstanceId(DOROTHY);
-        request.setRequestId(requestId);
-
-        List<VfcResponseDescriptor> responseHistoryList = new ArrayList<>();;
-
-        VfcResponseDescriptor responseDescriptor = new VfcResponseDescriptor();
-        responseDescriptor.setErrorCode("1234");
-        responseDescriptor.setProgress("Follow The Yellow Brick Road");
-        responseDescriptor.setResponseHistoryList(responseHistoryList);
-        responseDescriptor.setResponseId(UUID.randomUUID().toString());
-        responseDescriptor.setStatus("finished");
-        responseDescriptor.setStatusDescription("There's no place like home");
-
-        response = new VfcResponse();
-        response.setJobId("1234");
-        response.setRequestId(request.getRequestId().toString());
-        response.setResponseDescriptor(responseDescriptor);
-    }
-
-    @Test
-    public void testVfcInitiation() {
-        assertThatIllegalArgumentException().isThrownBy(() -> new VfcManager(null, null, null, null, null)).withMessage(
-                        "the parameters \"cb\" and \"request\" on the VfcManager constructor may not be null");
-
-        assertThatIllegalArgumentException().isThrownBy(() -> new VfcManager(this, null, null, null, null)).withMessage(
-                        "the parameters \"cb\" and \"request\" on the VfcManager constructor may not be null");
-
-        assertThatIllegalArgumentException().isThrownBy(() -> new VfcManager(this, request, null, null, null))
-                        .withMessage("the \"url\" parameter on the VfcManager constructor may not be null");
-
-        new VfcManager(this, request, SOME_URL, null, null);
-
-        new VfcManager(this, request, SOME_URL, DOROTHY, "Toto");
-    }
-
-    @Test
-    public void testVfcExecutionException() throws InterruptedException {
-        VfcManager manager = new VfcManager(this, request, SOME_URL, DOROTHY, "Exception");
-        manager.setRestManager(mockedRestManager);
-
-        when(mockedRestManager.post(
-            startsWith(SOME_URL),
-            eq(DOROTHY),
-            eq("Exception"),
-            anyMap(),
-            anyString(),
-            anyString()))
-            .thenThrow(new RuntimeException("OzException"));
-
-        manager.run();
-
-        verify(mockedRestManager).post(any(), any(), any(), any(), any(), any());
-    }
-
-    @Test
-    public void testVfcExecutionNull() throws InterruptedException {
-        VfcManager manager = new VfcManager(this, request, SOME_URL, DOROTHY, "Null");
-        manager.setRestManager(mockedRestManager);
-
-        when(mockedRestManager.post(startsWith(SOME_URL),
-                eq(DOROTHY), eq("Null"), anyMap(), anyString(), anyString()))
-                .thenReturn(null);
-
-        manager.run();
-
-        verify(mockedRestManager).post(any(), any(), any(), any(), any(), any());
-    }
-
-    @Test
-    public void testVfcExecutionError0() throws InterruptedException {
-        VfcManager manager = new VfcManager(this, request, SOME_URL, DOROTHY, "Error0");
-        manager.setRestManager(mockedRestManager);
-
-        when(mockedRestManager.post(startsWith(SOME_URL),
-                eq(DOROTHY), eq("Error0"), anyMap(), anyString(), anyString()))
-                .thenReturn(httpResponseErr);
-
-        manager.run();
-
-        verify(mockedRestManager).post(any(), any(), any(), any(), any(), any());
-    }
-
-    @Test
-    public void testVfcExecutionBadResponse() throws InterruptedException {
-        VfcManager manager = new VfcManager(this, request, SOME_URL, DOROTHY, "BadResponse");
-        manager.setRestManager(mockedRestManager);
-
-        when(mockedRestManager.post(startsWith(SOME_URL),
-                eq(DOROTHY), eq("OK"), anyMap(), anyString(), anyString()))
-                .thenReturn(httpResponseBadResponse);
-
-        manager.run();
-
-        verify(mockedRestManager).post(any(), any(), any(), any(), any(), any());
-    }
-
-    @Test
-    public void testVfcExecutionOk() throws InterruptedException {
-        VfcManager manager = new VfcManager(this, request, SOME_URL, DOROTHY, "Ok");
-        manager.setRestManager(mockedRestManager);
-
-        when(mockedRestManager.post(startsWith(SOME_URL),
-                eq(DOROTHY), eq("OK"), anyMap(), anyString(), anyString()))
-                .thenReturn(httpResponsePutOk);
-
-        manager.run();
-
-        verify(mockedRestManager).post(any(), any(), any(), any(), any(), any());
-    }
-
-    @Override
-    public void onResponse(VfcResponse responseError) {
-        //
-        // Nothing needs to be done
-        //
-    }
-}