summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/main/java/org/onap/aai/dbgen/ForceDeleteTool.java78
-rw-r--r--src/main/java/org/onap/aai/migration/v12/MigrateModelVerDistriubutionStatusProperty.java85
-rw-r--r--src/main/java/org/onap/aai/migration/v12/MigratePATHPhysicalInventory.java348
-rw-r--r--src/main/java/org/onap/aai/migration/v12/MigrateServiceInstanceToConfiguration.java193
-rw-r--r--src/test/java/org/onap/aai/dbgen/ForceDeleteToolTest.java209
-rw-r--r--src/test/java/org/onap/aai/migration/v12/MigrateModelVerDistributionStatusPropertyTest.java106
-rw-r--r--src/test/java/org/onap/aai/migration/v12/MigratePATHPhysicalInventoryTest.java158
-rw-r--r--src/test/java/org/onap/aai/migration/v12/MigrateServiceInstanceToConfigurationTest.java402
-rw-r--r--src/test/java/org/onap/aai/migration/v12/MigrateServiceInstanceToConfigurationTestPreMigrationMock.java297
-rw-r--r--src/test/java/org/onap/aai/migration/v13/MigrateEdgesBetweenVnfcAndVfModuleTest.java117
10 files changed, 255 insertions, 1738 deletions
diff --git a/src/main/java/org/onap/aai/dbgen/ForceDeleteTool.java b/src/main/java/org/onap/aai/dbgen/ForceDeleteTool.java
index c12f3f3..7bb0555 100644
--- a/src/main/java/org/onap/aai/dbgen/ForceDeleteTool.java
+++ b/src/main/java/org/onap/aai/dbgen/ForceDeleteTool.java
@@ -100,24 +100,29 @@ public class ForceDeleteTool {
for (int i = 0; i < args.length; i++) {
String thisArg = args[i];
argStr4Msg = argStr4Msg + " " + thisArg;
-
if (thisArg.equals("-action")) {
i++;
if (i >= args.length) {
logger.error(" No value passed with -action option. ");
+ System.out.println(" No value passed with -action option. ");
exit(0);
}
- actionVal = args[i];
- argStr4Msg = argStr4Msg + " " + actionVal;
+ else {
+ actionVal = args[i];
+ argStr4Msg = argStr4Msg + " " + actionVal;
+ }
}
else if (thisArg.equals("-userId")) {
i++;
if (i >= args.length) {
logger.error(" No value passed with -userId option. ");
+ System.out.println(" No value passed with -userId option. ");
exit(0);
}
- userIdVal = args[i];
- argStr4Msg = argStr4Msg + " " + userIdVal;
+ else {
+ userIdVal = args[i];
+ argStr4Msg = argStr4Msg + " " + userIdVal;
+ }
}
else if (thisArg.equals("-overRideProtection")) {
overRideProtection = true;
@@ -129,40 +134,54 @@ public class ForceDeleteTool {
i++;
if (i >= args.length) {
logger.error(" No value passed with -vertexId option. ");
+ System.out.println(" No value passed with -vertexId option. ");
exit(0);
}
- String nextArg = args[i];
- argStr4Msg = argStr4Msg + " " + nextArg;
- try {
- vertexIdLong = Long.parseLong(nextArg);
- } catch (Exception e) {
- logger.error("Bad value passed with -vertexId option: ["
+ else {
+ String nextArg = args[i];
+ argStr4Msg = argStr4Msg + " " + nextArg;
+
+ try {
+ vertexIdLong = Long.parseLong(nextArg);
+ } catch (Exception e) {
+ logger.error("Bad value passed with -vertexId option: ["
+ nextArg + "]");
- exit(0);
+ System.out.println("Bad value passed with -vertexId option: ["
+ + nextArg + "]");
+ exit(0);
+ }
}
}
else if (thisArg.equals("-params4Collect")) {
i++;
if (i >= args.length) {
logger.error(" No value passed with -params4Collect option. ");
+ System.out.println(" No value passed with -params4Collect option. ");
exit(0);
}
- dataString = args[i];
- argStr4Msg = argStr4Msg + " " + dataString;
+ else {
+ dataString = args[i];
+ argStr4Msg = argStr4Msg + " " + dataString;
+ }
}
else if (thisArg.equals("-edgeId")) {
i++;
if (i >= args.length) {
logger.error(" No value passed with -edgeId option. ");
+ System.out.println(" No value passed with -edgeId option. ");
exit(0);
}
- String nextArg = args[i];
- argStr4Msg = argStr4Msg + " " + nextArg;
- edgeIdStr = nextArg;
+ else {
+ String nextArg = args[i];
+ argStr4Msg = argStr4Msg + " " + nextArg;
+ edgeIdStr = nextArg;
+ }
}
else {
logger.error(" Unrecognized argument passed to ForceDeleteTool: ["
+ thisArg + "]. ");
+ System.out.println(" Unrecognized argument passed to ForceDeleteTool: ["
+ + thisArg + "]");
logger.error(" Valid values are: -action -userId -vertexId -edgeId -overRideProtection -params4Collect -DISPLAY_ALL_VIDS");
exit(0);
}
@@ -349,18 +368,19 @@ public class ForceDeleteTool {
System.out.println(infMsg);
exit(0);
}
-
- if( fd.getEdgeDelConfirmation(logger, userIdVal, thisEdge, overRideProtection) ){
- thisEdge.remove();
- graph.tx().commit();
- String infMsg = ">>>>>>>>>> Removed edge with edgeId = " + edgeIdStr;
- logger.debug( infMsg );
- System.out.println(infMsg);
- }
- else {
- String infMsg = " Delete Cancelled. ";
- System.out.println(infMsg);
- logger.debug( infMsg );
+ else {
+ if( fd.getEdgeDelConfirmation(logger, userIdVal, thisEdge, overRideProtection) ){
+ thisEdge.remove();
+ graph.tx().commit();
+ String infMsg = ">>>>>>>>>> Removed edge with edgeId = " + edgeIdStr;
+ logger.debug( infMsg );
+ System.out.println(infMsg);
+ }
+ else {
+ String infMsg = " Delete Cancelled. ";
+ System.out.println(infMsg);
+ logger.debug( infMsg );
+ }
}
exit(0);
}
diff --git a/src/main/java/org/onap/aai/migration/v12/MigrateModelVerDistriubutionStatusProperty.java b/src/main/java/org/onap/aai/migration/v12/MigrateModelVerDistriubutionStatusProperty.java
deleted file mode 100644
index c09643f..0000000
--- a/src/main/java/org/onap/aai/migration/v12/MigrateModelVerDistriubutionStatusProperty.java
+++ /dev/null
@@ -1,85 +0,0 @@
-/**
- * ============LICENSE_START=======================================================
- * org.onap.aai
- * ================================================================================
- * Copyright © 2017-2018 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.aai.migration.v12;
-import org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversal;
-import org.apache.tinkerpop.gremlin.structure.Vertex;
-import org.onap.aai.db.props.AAIProperties;
-import org.onap.aai.edges.EdgeIngestor;
-import org.onap.aai.introspection.LoaderFactory;
-import org.onap.aai.migration.*;
-import org.onap.aai.serialization.db.EdgeSerializer;
-import org.onap.aai.serialization.engines.TransactionalGraphEngine;
-import org.onap.aai.setup.SchemaVersions;
-
-import java.util.Optional;
-
-@MigrationPriority(20)
-@MigrationDangerRating(2)
-public class MigrateModelVerDistriubutionStatusProperty extends Migrator{
-
- private final String PARENT_NODE_TYPE = "model-ver";
- private boolean success = true;
-
- public MigrateModelVerDistriubutionStatusProperty(TransactionalGraphEngine engine, LoaderFactory loaderFactory, EdgeIngestor edgeIngestor, EdgeSerializer edgeSerializer, SchemaVersions schemaVersions) {
- super(engine, loaderFactory, edgeIngestor, edgeSerializer, schemaVersions);
- }
-
-
-
- @Override
- public void run() {
-
-
- GraphTraversal<Vertex, Vertex> f = this.engine.asAdmin().getTraversalSource().V().has(AAIProperties.NODE_TYPE,"model-ver");
-
- while(f.hasNext()) {
- Vertex v = f.next();
- try {
- v.property("distribution-status", "DISTRIBUTION_COMPLETE_OK");
- logger.info("changed model-ver.distribution-status property value for model-version-id: " + v.property("model-version-id").value());
-
- } catch (Exception e) {
- e.printStackTrace();
- success = false;
- logger.error("encountered exception for model-version-id:" + v.property("model-version-id").value(), e);
- }
- }
- }
-
-
- @Override
- public Status getStatus() {
- if (success) {
- return Status.SUCCESS;
- } else {
- return Status.FAILURE;
- }
- }
- @Override
- public Optional<String[]> getAffectedNodeTypes() {
- return Optional.of(new String[]{PARENT_NODE_TYPE});
- }
-
- @Override
- public String getMigrationName() {
- return "MigrateModelVerDistriubutionStatusProperty";
- }
-
-}
diff --git a/src/main/java/org/onap/aai/migration/v12/MigratePATHPhysicalInventory.java b/src/main/java/org/onap/aai/migration/v12/MigratePATHPhysicalInventory.java
deleted file mode 100644
index af3d90a..0000000
--- a/src/main/java/org/onap/aai/migration/v12/MigratePATHPhysicalInventory.java
+++ /dev/null
@@ -1,348 +0,0 @@
-/**
- * ============LICENSE_START=======================================================
- * org.onap.aai
- * ================================================================================
- * Copyright © 2017-2018 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.aai.migration.v12;
-/*-
- * ============LICENSE_START=======================================================
- * org.onap.aai
- * ================================================================================
- * Copyright (C) 2017 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=========================================================
- */
-
-
-import java.io.FileNotFoundException;
-import java.io.IOException;
-import java.nio.file.Files;
-import java.nio.file.Paths;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.Optional;
-
-import org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversal;
-import org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversalSource;
-import org.apache.tinkerpop.gremlin.structure.Vertex;
-import org.onap.aai.db.props.AAIProperties;
-import org.onap.aai.edges.EdgeIngestor;
-import org.onap.aai.introspection.Introspector;
-import org.onap.aai.introspection.LoaderFactory;
-import org.onap.aai.migration.MigrationDangerRating;
-import org.onap.aai.migration.MigrationPriority;
-import org.onap.aai.migration.Migrator;
-import org.onap.aai.migration.Status;
-import org.onap.aai.serialization.db.EdgeSerializer;
-import org.onap.aai.serialization.engines.TransactionalGraphEngine;
-import org.onap.aai.setup.SchemaVersions;
-import org.onap.aai.util.AAIConfig;
-
-
-@MigrationPriority(26)
-@MigrationDangerRating(100)
-public class MigratePATHPhysicalInventory extends Migrator {
-
- private static List<String> lagPortList = new ArrayList<String>();
- private static Map<String, Vertex> pnfList = new HashMap<String, Vertex>();
- private final String LAGINTERFACE_NODE_TYPE = "lag-interface";
- private final String PNF_NODE_TYPE = "pnf";
- private final String PROPERTY_PNF_NAME = "pnf-name";
- private final String PROPERTY_INTERFACE_NAME = "interface-name";
- private final String LAG_INTERFACE_NODE_TYPE = "lag-interface";
- private static boolean success = true;
- private static boolean checkLog = false;
- private static GraphTraversalSource g = null;
- private int headerLength;
-
- private static List<String> dmaapMsgList = new ArrayList<String>();
- private static final String homeDir = System.getProperty("AJSC_HOME");
-
- //Create a map to store the evcs processed where lag-interfaces were found to track the sequence of ports
- //key contains the evcName
- //value is a map that contains the mapping for sequence of forwarders and corresponding portAids in the order they are found
-
- private static Map<String, Map<Vertex, String>> pathFileMap = new HashMap<String, Map<Vertex, String>>();
-
- private static int processedLagInterfacesCount = 0;
- private static int skippedRowCount = 0;
- //Map with lineNumber and the reason for failure for each interface
- private static Map<String, String> lagInterfacesNotProcessedMap = new HashMap<String, String>();
-
-
- public MigratePATHPhysicalInventory(TransactionalGraphEngine engine, LoaderFactory loaderFactory, EdgeIngestor edgeIngestor, EdgeSerializer edgeSerializer, SchemaVersions schemaVersions) {
- super(engine, loaderFactory, edgeIngestor, edgeSerializer, schemaVersions);
- this.g = this.engine.asAdmin().getTraversalSource();
- }
-
- @Override
- public void run() {
- logger.info("---------- Start migration of PATH file Physical Inventory ----------");
- String configDir = System.getProperty("BUNDLECONFIG_DIR");
- if (homeDir == null) {
- logger.info("ERROR: Could not find sys prop AJSC_HOME");
- success = false;
- return;
- }
- if (configDir == null) {
- success = false;
- return;
- }
-
- String feedDir = homeDir + "/" + configDir + "/" + "migration-input-files/sarea-inventory/";
- int fileLineCounter = 0;
- String fileName = feedDir+ "path.csv";
- logger.info(fileName);
- logger.info("---------- Processing PATH Entries from file ----------");
- try {
- List<String> lines = Files.readAllLines(Paths.get(fileName));
- Iterator<String> lineItr = lines.iterator();
- while (lineItr.hasNext()){
- String line = lineItr.next().replace("\n", "").replace("\r", "");
- logger.info("\n");
- if (!line.isEmpty()) {
- if (fileLineCounter != 0) {
- String[] colList = line.split("\\s*,\\s*", -1);
- Map<String, String> pathColValues = new HashMap<String, String>();
- pathColValues.put("evcName", colList[1]);
- pathColValues.put("bearerFacingCircuit", colList[4]);
- pathColValues.put("bearerCvlan", colList[6]);
- pathColValues.put("bearerSvlan", colList[7]);
- pathColValues.put("bearerPtniiName", colList[8]);
- pathColValues.put("bearerPortAid", colList[12]);
- pathColValues.put("collectorFacingCircuit", colList[14]);
- pathColValues.put("collectorCvlan", colList[16]);
- pathColValues.put("collectorSvlan", colList[17]);
- pathColValues.put("collectorPtniiName", colList[18]);
- pathColValues.put("collectorPortAid", colList[22]);
-
- // For each row, check if the collector and bearerPnfs exist and create lag interfaces
-
- validateCollectorPnfAndCreateLagInterface(pathColValues, (fileLineCounter+1));
- validateBearerPnfAndCreateLagInterface(pathColValues, (fileLineCounter+1));
-
- } else {
- this.headerLength = line.split("\\s*,\\s*", -1).length;
- logger.info("headerLength: " + headerLength);
- if (this.headerLength < 21){
- logger.info("ERROR: Input file should have 21 columns");
- this.success = false;
- return;
- }
- }
- }
- fileLineCounter++;
- }
- logger.info ("\n \n ******* Final Summary for PATH FILE Physical Inventory Migration ********* \n");
- logger.info("Lag Interfaces processed: "+processedLagInterfacesCount);
- logger.info("Total Rows Count: "+(fileLineCounter + 1));
- logger.info("Fallout Lag Interfaces Count : "+lagInterfacesNotProcessedMap.size() +"\n");
-
- if (!lagInterfacesNotProcessedMap.isEmpty()) {
- logger.info("------ Fallout Details: ------");
- lagInterfacesNotProcessedMap.forEach((lineEntry, errorMsg) -> {
- int lineNumberIndex = lineEntry.indexOf("-");
- String lineNumber = lineEntry.substring(0, lineNumberIndex);
- String portDetail = lineEntry.substring(lineNumberIndex+1);
- logger.info(errorMsg + ": on row "+ lineNumber +" for PortAid ["+ portDetail+"]");
- });
- }
- } catch (FileNotFoundException e) {
- logger.info("ERROR: Could not file file " + fileName, e.getMessage());
- success = false;
- checkLog = true;
- } catch (IOException e) {
- logger.info("ERROR: Issue reading file " + fileName, e);
- success = false;
- } catch (Exception e) {
- logger.info("encountered exception", e);
- e.printStackTrace();
- success = false;
- }
- }
-
-
- private void validateBearerPnfAndCreateLagInterface(Map<String, String> pathColValues, int lineNumber) {
- String bearerPtniiName = pathColValues.get("bearerPtniiName");
- String bearerPortAid = pathColValues.get("bearerPortAid");
- Vertex pnfVtx = getPnf(bearerPtniiName);
- if (pnfVtx != null){
- //create lag-interface
- createLagInterfaceObject(pnfVtx, bearerPortAid, lineNumber);
- } else {
- int lagIdentifierIndex = bearerPortAid.indexOf("_");
- if (lagIdentifierIndex > 0) {
- lagInterfacesNotProcessedMap.put(""+ lineNumber+ "-"+bearerPtniiName+"-"+bearerPortAid+"", "Pnf ["+bearerPtniiName+"] not found" );
- }
- }
-
- }
-
- private void validateCollectorPnfAndCreateLagInterface(Map<String, String> pathColValues, int lineNumber) {
- String collectorPtniiName = pathColValues.get("collectorPtniiName");
- String collectorPortAid = pathColValues.get("collectorPortAid");
- Vertex pnfVtx = getPnf(collectorPtniiName);
- if (pnfVtx != null){
- //create lag-interface
- createLagInterfaceObject(pnfVtx, collectorPortAid, lineNumber);
- }else {
- int lagIdentifierIndex = collectorPortAid.indexOf("_");
- if (lagIdentifierIndex > 0) {
- lagInterfacesNotProcessedMap.put(""+ lineNumber+ "-"+collectorPtniiName+"-"+collectorPortAid+"", "Pnf ["+collectorPtniiName+"] not found" );
- }
- }
- }
-
- private void createLagInterfaceObject(Vertex pnfVtx, String portAid, int lineNumber) {
- String pnfName = pnfVtx.value(PROPERTY_PNF_NAME);
-
- if (pnfName != null && !pnfName.isEmpty()) {
-
- if(portAid == null || portAid.isEmpty()){
- logger.info("\t Invalid Port entry [" +portAid + "] - Invalid record - skipping..." );
- } else{
- if (!AAIConfig.isEmpty(portAid)) {
- GraphTraversal<Vertex, Vertex> portList;
-
- boolean isPortAidALagIntf = false;
- String interfaceName = null;
-
- int lagIdentifierIndex = portAid.indexOf("_");
-
- if (lagIdentifierIndex > 0) {
- String[] subStringList = portAid.split("_");
- interfaceName = subStringList[0];
- isPortAidALagIntf = true;
- }
-
- if (isPortAidALagIntf)
- {
- try {
-
- if (lagPortList != null && lagPortList.contains(pnfName+"_"+interfaceName)){
- logger.info("\t lag-interface [" + interfaceName + "] already exists in AAI - skipping");
- return;
- }
-
-
- portList = g.V(pnfVtx).in("tosca.relationships.network.BindsTo").has("interface-name", interfaceName).has("aai-node-type", "lag-interface");
- if (portList!= null && portList.hasNext()) {
- Vertex lagInterfaceVtx = portList.next();
- if (lagInterfaceVtx != null && lagInterfaceVtx.property("interface-name").isPresent()) {
- logger.info("\t lag-interface [" + interfaceName + "] already exists in AAI - skipping");
-// lagInterfacesNotProcessedMap.put(""+lineNumber+"-"+pnfName+"-"+portAid+"", "lag-interface already exists for ["+interfaceName+"]" );
- }
- }
- else if (portList == null || !portList.hasNext()) {
- //Create lag-interface in pnf
- Introspector lagInterface = loader.introspectorFromName(LAG_INTERFACE_NODE_TYPE);
-
- Vertex lagIntVtx = serializer.createNewVertex(lagInterface);
- lagInterface.setValue("interface-name", interfaceName);
- this.createTreeEdge(pnfVtx, lagIntVtx);
- serializer.serializeSingleVertex(lagIntVtx, lagInterface, "migrations");
-
- logger.info("\t Created new lag-interface " + lagIntVtx + " with interface-name= " + lagIntVtx.value("interface-name"));
-
- processedLagInterfacesCount++;
- lagPortList.add(pnfName+"_"+interfaceName);
-
- String dmaapMsg = System.nanoTime() + "_" + lagIntVtx.id().toString() + "_" + lagIntVtx.value("resource-version").toString();
- dmaapMsgList.add(dmaapMsg);
-// Introspector introspector = serializer.getLatestVersionView(lagIntVtx);
-// this.notificationHelper.addEvent(lagIntVtx, introspector, EventAction.CREATE, this.serializer.getURIForVertex(lagIntVtx, false));
-// logger.info("\t Dmaap event sent for " + lagIntVtx + " with interface-name= " + lagIntVtx.value("interface-name").toString() );
- }
- } catch (Exception e) {
- logger.info("\t ERROR: Failure to create lag-interface ["+ interfaceName + "]");
- lagInterfacesNotProcessedMap.put(""+lineNumber+"-"+pnfName+"-"+portAid+"", "Failed to create lag-interface ["+interfaceName+"]" );
- }
- }
- else
- {
- logger.info("\t Port-Aid[" +portAid +"] on PNF["+pnfName+"] not a lag-interface, skipping....");
- }
- }
-
- }
- }
- }
-
-
- private Vertex getPnf(String ptniiName) {
- Vertex pnfVtx = null;
- if (!AAIConfig.isEmpty(ptniiName)) {
- if (!pnfList.isEmpty() && pnfList.containsKey(ptniiName)){
- return pnfList.get(ptniiName);
- }
- List<Vertex> collectorPnfList = g.V().has(this.PROPERTY_PNF_NAME, ptniiName).has(AAIProperties.NODE_TYPE, PNF_NODE_TYPE).toList();
- if (collectorPnfList != null && collectorPnfList.size() == 1) {
- pnfVtx = collectorPnfList.get(0);
- pnfList.put(ptniiName, pnfVtx);
- logger.info("\t Pnf [" + ptniiName + "] found in AAI");
- } else if (collectorPnfList == null || collectorPnfList.size() == 0) {
- logger.info("\t ERROR: Failure to find Pnf [" + ptniiName + "]" );
- }
- } else {
- logger.info("\t ERROR: Failure to find Pnf [" + ptniiName + "]" );
- }
- return pnfVtx;
- }
-
- @Override
- public Status getStatus() {
- if (checkLog) {
- return Status.CHECK_LOGS;
- }
- else if (success) {
- return Status.SUCCESS;
- }
- else {
- return Status.FAILURE;
- }
- }
-
- @Override
- public void commit() {
- engine.commit();
- createDmaapFiles(dmaapMsgList);
- }
-
- @Override
- public Optional<String[]> getAffectedNodeTypes() {
- return Optional.of(new String[]{this.LAG_INTERFACE_NODE_TYPE});
- }
-
- @Override
- public String getMigrationName() {
- return "MigratePATHPhysicalInventory";
- }
-}
diff --git a/src/main/java/org/onap/aai/migration/v12/MigrateServiceInstanceToConfiguration.java b/src/main/java/org/onap/aai/migration/v12/MigrateServiceInstanceToConfiguration.java
deleted file mode 100644
index b4208af..0000000
--- a/src/main/java/org/onap/aai/migration/v12/MigrateServiceInstanceToConfiguration.java
+++ /dev/null
@@ -1,193 +0,0 @@
-/**
- * ============LICENSE_START=======================================================
- * org.onap.aai
- * ================================================================================
- * Copyright © 2017-2018 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.aai.migration.v12;
-
-import java.io.UnsupportedEncodingException;
-import java.util.Iterator;
-import java.util.Optional;
-import java.util.UUID;
-
-import org.apache.tinkerpop.gremlin.process.traversal.P;
-import org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversal;
-import org.apache.tinkerpop.gremlin.structure.Direction;
-import org.apache.tinkerpop.gremlin.structure.Vertex;
-import org.onap.aai.db.props.AAIProperties;
-import org.onap.aai.edges.EdgeIngestor;
-import org.onap.aai.exceptions.AAIException;
-import org.onap.aai.introspection.Introspector;
-import org.onap.aai.introspection.LoaderFactory;
-import org.onap.aai.introspection.exceptions.AAIUnknownObjectException;
-import org.onap.aai.migration.MigrationDangerRating;
-import org.onap.aai.migration.MigrationPriority;
-import org.onap.aai.migration.Migrator;
-import org.onap.aai.migration.Status;
-import org.onap.aai.edges.enums.EdgeType;
-import org.onap.aai.serialization.db.EdgeSerializer;
-import org.onap.aai.serialization.engines.TransactionalGraphEngine;
-import org.onap.aai.setup.SchemaVersions;
-
-//@Enabled
-@MigrationPriority(10)
-@MigrationDangerRating(10)
-public class MigrateServiceInstanceToConfiguration extends Migrator {
-
- private boolean success = true;
- private final String CONFIGURATION_NODE_TYPE = "configuration";
- private final String SERVICE_INSTANCE_NODE_TYPE = "service-instance";
- private Introspector configObj;
-
- public MigrateServiceInstanceToConfiguration(TransactionalGraphEngine engine, LoaderFactory loaderFactory, EdgeIngestor edgeIngestor, EdgeSerializer edgeSerializer, SchemaVersions schemaVersions) {
- super(engine, loaderFactory, edgeIngestor, edgeSerializer, schemaVersions);
- try {
- this.configObj = this.loader.introspectorFromName(CONFIGURATION_NODE_TYPE);
- } catch (AAIUnknownObjectException e) {
- this.configObj = null;
- }
- }
-
- @Override
- public void run() {
- Vertex serviceInstance = null;
- Vertex configuration = null;
- String serviceInstanceId = "", tunnelBandwidth = "";
- String bandwidthTotal, configType, nodeType;
- GraphTraversal<Vertex, Vertex> serviceInstanceItr;
- Iterator<Vertex> configurationItr;
-
- try {
- serviceInstanceItr = this.engine.asAdmin().getTraversalSource().V()
- .has(AAIProperties.NODE_TYPE, P.within(getAffectedNodeTypes().get()))
- .where(this.engine.getQueryBuilder()
- .createEdgeTraversal(EdgeType.TREE, "service-instance", "service-subscription")
- .getVerticesByProperty("service-type", "DHV")
- .<GraphTraversal<?, ?>>getQuery());
-
- if (serviceInstanceItr == null || !serviceInstanceItr.hasNext()) {
- logger.info("No servince-instance nodes found with service-type of DHV");
- return;
- }
-
- // iterate through all service instances of service-type DHV
- while (serviceInstanceItr.hasNext()) {
- serviceInstance = serviceInstanceItr.next();
-
- if (serviceInstance != null && serviceInstance.property("bandwidth-total").isPresent()) {
- serviceInstanceId = serviceInstance.value("service-instance-id");
- logger.info("Processing service instance with id=" + serviceInstanceId);
- bandwidthTotal = serviceInstance.value("bandwidth-total");
-
- if (bandwidthTotal != null && !bandwidthTotal.isEmpty()) {
-
- // check for existing edges to configuration nodes
- configurationItr = serviceInstance.vertices(Direction.OUT, "has");
-
- // create new configuration node if service-instance does not have existing ones
- if (!configurationItr.hasNext()) {
- logger.info(serviceInstanceId + " has no existing configuration nodes, creating new node");
- createConfigurationNode(serviceInstance, bandwidthTotal);
- continue;
- }
-
- // in case if configuration nodes exist, but none are DHV
- boolean hasDHVConfig = false;
-
- // service-instance has existing configuration nodes
- while (configurationItr.hasNext()) {
- configuration = configurationItr.next();
- nodeType = configuration.value("aai-node-type").toString();
-
- if (configuration != null && "configuration".equalsIgnoreCase(nodeType)) {
- logger.info("Processing configuration node with id=" + configuration.property("configuration-id").value());
- configType = configuration.value("configuration-type");
- logger.info("Configuration type: " + configType);
-
- // if configuration-type is DHV, update tunnel-bandwidth to bandwidth-total value
- if ("DHV".equalsIgnoreCase(configType)) {
- if (configuration.property("tunnel-bandwidth").isPresent()) {
- tunnelBandwidth = configuration.value("tunnel-bandwidth");
- } else {
- tunnelBandwidth = "";
- }
-
- logger.info("Existing tunnel-bandwidth: " + tunnelBandwidth);
- configuration.property("tunnel-bandwidth", bandwidthTotal);
- touchVertexProperties(configuration, false);
- logger.info("Updated tunnel-bandwidth: " + configuration.value("tunnel-bandwidth"));
- hasDHVConfig = true;
- }
- }
- }
-
- // create new configuration node if none of existing config nodes are of type DHV
- if (!hasDHVConfig) {
- logger.info(serviceInstanceId + " has existing configuration nodes, but none are DHV, create new node");
- createConfigurationNode(serviceInstance, bandwidthTotal);
- }
- }
- }
- }
- } catch (AAIException | UnsupportedEncodingException e) {
- logger.error("Caught exception while processing service instance with id=" + serviceInstanceId + " | " + e.toString());
- success = false;
- }
- }
-
- private void createConfigurationNode(Vertex serviceInstance, String bandwidthTotal) throws UnsupportedEncodingException, AAIException {
- // create new vertex
- Vertex configurationNode = serializer.createNewVertex(configObj);
-
- // configuration-id: UUID format
- String configurationUUID = UUID.randomUUID().toString();
- configObj.setValue("configuration-id", configurationUUID);
-
- // configuration-type: DHV
- configObj.setValue("configuration-type", "DHV");
-
- // migrate the bandwidth-total property from the service-instance to the
- // tunnel-bandwidth property of the related configuration object
- configObj.setValue("tunnel-bandwidth", bandwidthTotal);
-
- // create edge between service instance and configuration: cousinEdge(out, in)
- createCousinEdge(serviceInstance, configurationNode);
-
- // serialize edge & vertex, takes care of everything
- serializer.serializeSingleVertex(configurationNode, configObj, "migrations");
- logger.info("Created configuration node with uuid=" + configurationUUID + ", tunnel-bandwidth=" + bandwidthTotal);
- }
-
- @Override
- public Status getStatus() {
- if (success) {
- return Status.SUCCESS;
- } else {
- return Status.FAILURE;
- }
- }
-
- @Override
- public Optional<String[]> getAffectedNodeTypes() {
- return Optional.of(new String[] {SERVICE_INSTANCE_NODE_TYPE});
- }
-
- @Override
- public String getMigrationName() {
- return "service-instance-to-configuration";
- }
-}
diff --git a/src/test/java/org/onap/aai/dbgen/ForceDeleteToolTest.java b/src/test/java/org/onap/aai/dbgen/ForceDeleteToolTest.java
index 0ca8481..7dacfe6 100644
--- a/src/test/java/org/onap/aai/dbgen/ForceDeleteToolTest.java
+++ b/src/test/java/org/onap/aai/dbgen/ForceDeleteToolTest.java
@@ -21,6 +21,7 @@ package org.onap.aai.dbgen;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import org.springframework.boot.test.rule.OutputCapture;
import org.janusgraph.core.JanusGraphTransaction;
import org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversalSource;
import org.apache.tinkerpop.gremlin.structure.Edge;
@@ -28,6 +29,7 @@ import org.apache.tinkerpop.gremlin.structure.Vertex;
import org.junit.After;
import org.junit.Before;
import org.junit.FixMethodOrder;
+import org.junit.Rule;
import org.junit.Test;
import org.junit.runners.MethodSorters;
import org.onap.aai.AAISetup;
@@ -37,6 +39,8 @@ import java.io.ByteArrayInputStream;
import java.io.InputStream;
import java.util.List;
+import static org.hamcrest.Matchers.containsString;
+import static org.junit.Assert.assertThat;
import static org.junit.Assert.fail;
@FixMethodOrder(MethodSorters.NAME_ASCENDING)
@@ -47,6 +51,9 @@ public class ForceDeleteToolTest extends AAISetup {
private ForceDeleteTool deleteTool;
private Vertex cloudRegionVertex;
+
+ @Rule
+ public OutputCapture outputCapture = new OutputCapture();
@Before
public void setup(){
@@ -117,10 +124,12 @@ public class ForceDeleteToolTest extends AAISetup {
@Test
public void testDeleteNode(){
+ InputStream systemInputStream = System.in;
+ ByteArrayInputStream in = new ByteArrayInputStream("y".getBytes());
+ System.setIn(in);
String id = cloudRegionVertex.id().toString();
String [] args = {
-
"-action",
"DELETE_NODE",
"-userId",
@@ -130,6 +139,7 @@ public class ForceDeleteToolTest extends AAISetup {
};
deleteTool.main(args);
+ System.setIn(systemInputStream);
}
@Test
@@ -141,7 +151,6 @@ public class ForceDeleteToolTest extends AAISetup {
String cloudRegionToPserverId = edges.get(0).id().toString();
String [] args = {
-
"-action",
"COLLECT_DATA",
"-userId",
@@ -151,6 +160,7 @@ public class ForceDeleteToolTest extends AAISetup {
};
deleteTool.main(args);
+
}
@Test
@@ -165,7 +175,6 @@ public class ForceDeleteToolTest extends AAISetup {
String cloudRegionToPserverId = edges.get(0).id().toString();
String [] args = {
-
"-action",
"DELETE_EDGE",
"-userId",
@@ -177,6 +186,200 @@ public class ForceDeleteToolTest extends AAISetup {
deleteTool.main(args);
System.setIn(systemInputStream);
}
+
+ //------------------------------ Adding some new tests --------------
+
+
+ @Test
+ public void testCollectDataForVertexId(){
+ String id = cloudRegionVertex.id().toString();
+
+ String [] args = {
+ "-action",
+ "COLLECT_DATA",
+ "-userId",
+ "someuser",
+ "-vertexId",
+ id
+ };
+
+ deleteTool.main(args);
+ }
+
+
+ @Test
+ public void testInputParamsBadAction(){
+ JanusGraphTransaction transaction = AAIGraph.getInstance().getGraph().newTransaction();
+ GraphTraversalSource g = transaction.traversal();
+ List<Edge> edges = g.E().toList();
+ String cloudRegionToPserverId = edges.get(0).id().toString();
+
+ String [] args = {
+ "-action",
+ "JUNK-ACTION",
+ "-userId",
+ "someuser",
+ "-edgeId",
+ cloudRegionToPserverId
+ };
+
+ deleteTool.main(args);
+ // Capture the standard output and see if the following text is there
+ assertThat(outputCapture.toString(), containsString("Bad action parameter"));
+
+ }
+
+
+ @Test
+ public void testMissingInputs(){
+
+ JanusGraphTransaction transaction = AAIGraph.getInstance().getGraph().newTransaction();
+ GraphTraversalSource g = transaction.traversal();
+
+ String [] args = {
+ "-action"
+ };
+ deleteTool.main(args);
+ assertThat(outputCapture.toString(), containsString("No value passed with"));
+
+
+ args = new String []{
+ "-vertexId"
+ };
+ deleteTool.main(args);
+ assertThat(outputCapture.toString(), containsString("No value passed with"));
+
+
+ args = new String []{
+ "-edgeId"
+ };
+ deleteTool.main(args);
+ assertThat(outputCapture.toString(), containsString("No value passed with"));
+
+
+ args = new String []{
+ "-params4Collect"
+ };
+ deleteTool.main(args);
+ assertThat(outputCapture.toString(), containsString("No value passed with"));
+
+ }
+
+
+
+ @Test
+ public void testInvalidUserIds(){
+
+ JanusGraphTransaction transaction = AAIGraph.getInstance().getGraph().newTransaction();
+ GraphTraversalSource g = transaction.traversal();
+ List<Edge> edges = g.E().toList();
+ String cloudRegionToPserverId = edges.get(0).id().toString();
+
+ String [] args = {
+ "-userId"
+ };
+ deleteTool.main(args);
+ assertThat(outputCapture.toString(), containsString("No value passed with"));
+
+ args = new String []{
+ "-userId",
+ "bad"
+ };
+ deleteTool.main(args);
+ assertThat(outputCapture.toString(), containsString("Bad userId parameter"));
+
+ args = new String []{
+ "-userId",
+ "AAIADMIN"
+ };
+ deleteTool.main(args);
+ assertThat(outputCapture.toString(), containsString("Bad userId parameter"));
+ }
+
+
+ @Test
+ public void testBadInputs2(){
+
+ // pass in a bad/unknown argument (-junkParam)
+ String [] args = {
+ "-junkParam",
+ "COLLECT_DATA",
+ "-userId",
+ "someuser",
+ "-edgeId",
+ "999"
+ };
+
+ deleteTool.main(args);
+ assertThat(outputCapture.toString(), containsString("Unrecognized argument"));
+ }
+
+ @Test
+ public void testBadInputs3(){
+
+ // pass in a nonExistant edgeId for DELETE EDGE
+ JanusGraphTransaction transaction = AAIGraph.getInstance().getGraph().newTransaction();
+ GraphTraversalSource g = transaction.traversal();
+
+ String [] args = {
+ "-action",
+ "DELETE_EDGE",
+ "-userId",
+ "someuser",
+ "-edgeId",
+ "NotRealId"
+ };
+
+ deleteTool.main(args);
+ assertThat(outputCapture.toString(), containsString("Edge with edgeId = NotRealId not found"));
+
+ }
+
+ @Test
+ public void testBadInputs4(){
+
+ JanusGraphTransaction transaction = AAIGraph.getInstance().getGraph().newTransaction();
+ GraphTraversalSource g = transaction.traversal();
+
+ // pass in a bad vertex Id when collecting data
+
+ String [] args = {
+ "-action",
+ "COLLECT_DATA",
+ "-userId",
+ "someuser",
+ "-vertexId",
+ "NotANumber"
+ };
+
+ deleteTool.main(args);
+ assertThat(outputCapture.toString(), containsString("Bad value passed"));
+
+ }
+
+
+ @Test
+ public void testBadInputs5(){
+
+ JanusGraphTransaction transaction = AAIGraph.getInstance().getGraph().newTransaction();
+ GraphTraversalSource g = transaction.traversal();
+
+ // pass in a bad vertex Id when collecting data
+
+ String [] args = {
+ "-action",
+ "DELETE_NODE",
+ "-userId",
+ "someuser",
+ "-vertexId",
+ "555"
+ };
+
+ deleteTool.main(args);
+ assertThat(outputCapture.toString(), containsString("Vertex with vertexId = 555 not found"));
+
+ }
+
@After
public void tearDown(){
diff --git a/src/test/java/org/onap/aai/migration/v12/MigrateModelVerDistributionStatusPropertyTest.java b/src/test/java/org/onap/aai/migration/v12/MigrateModelVerDistributionStatusPropertyTest.java
deleted file mode 100644
index 3db75fc..0000000
--- a/src/test/java/org/onap/aai/migration/v12/MigrateModelVerDistributionStatusPropertyTest.java
+++ /dev/null
@@ -1,106 +0,0 @@
-/**
- * ============LICENSE_START=======================================================
- * org.onap.aai
- * ================================================================================
- * Copyright © 2017-2018 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.aai.migration.v12;
-
-import org.janusgraph.core.JanusGraphFactory;
-import org.janusgraph.core.JanusGraph;
-import org.janusgraph.core.JanusGraphTransaction;
-import org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversalSource;
-import org.apache.tinkerpop.gremlin.structure.Vertex;
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Ignore;
-import org.junit.Test;
-import org.onap.aai.AAISetup;
-import org.onap.aai.dbmap.DBConnectionType;
-import org.onap.aai.introspection.Loader;
-import org.onap.aai.introspection.ModelType;
-import org.onap.aai.setup.SchemaVersions;
-import org.onap.aai.setup.SchemaVersion;
-import org.onap.aai.serialization.engines.QueryStyle;
-import org.onap.aai.serialization.engines.JanusGraphDBEngine;
-import org.onap.aai.serialization.engines.TransactionalGraphEngine;
-
-import static org.junit.Assert.assertEquals;
-import static org.mockito.Mockito.spy;
-import static org.mockito.Mockito.when;
-
-@Ignore
-public class MigrateModelVerDistributionStatusPropertyTest extends AAISetup{
-
- private final static ModelType introspectorFactoryType = ModelType.MOXY;
- private final static QueryStyle queryStyle = QueryStyle.TRAVERSAL;
- private Loader loader;
- private TransactionalGraphEngine dbEngine;
- private JanusGraph graph;
- private MigrateModelVerDistriubutionStatusProperty migration;
- private GraphTraversalSource g;
- private JanusGraphTransaction tx;
- Vertex modelVer1;
- Vertex modelVer2;
-
- @Before
- public void setUp() throws Exception {
- graph = JanusGraphFactory.build().set("storage.backend", "inmemory").open();
- tx = graph.newTransaction();
- g = tx.traversal();
- loader = loaderFactory.createLoaderForVersion(introspectorFactoryType, schemaVersions.getDefaultVersion());
- dbEngine = new JanusGraphDBEngine(
- queryStyle,
- loader);
- modelVer1 = g.addV().property("aai-node-type", "model-ver")
- .property("model-version-id", "modelVer1")
- .property("distribution-status", "test1")
- .next();
-
- modelVer2 = g.addV().property("aai-node-type", "model-ver")
- .property("model-version-id", "modelVer1")
- .next();
-
- TransactionalGraphEngine spy = spy(dbEngine);
- TransactionalGraphEngine.Admin adminSpy = spy(dbEngine.asAdmin());
- GraphTraversalSource traversal = g;
- when(spy.asAdmin()).thenReturn(adminSpy);
- when(adminSpy.getTraversalSource()).thenReturn(traversal);
- migration = new MigrateModelVerDistriubutionStatusProperty(spy, loaderFactory, edgeIngestor, edgeSerializer, schemaVersions);
- migration.run();
- }
-
- @After
- public void cleanUp() {
- tx.rollback();
- graph.close();
- }
-
-
- /***
- * checks if the Distribution Status value was changed
- */
-
- @Test
- public void confirmDistributionStatusChanged() {
-
- assertEquals("DISTRIBUTION_COMPLETE_OK",modelVer1.property("distribution-status").value());
- assertEquals("DISTRIBUTION_COMPLETE_OK",modelVer2.property("distribution-status").value());
-
- }
-
-
-} \ No newline at end of file
diff --git a/src/test/java/org/onap/aai/migration/v12/MigratePATHPhysicalInventoryTest.java b/src/test/java/org/onap/aai/migration/v12/MigratePATHPhysicalInventoryTest.java
deleted file mode 100644
index 2030266..0000000
--- a/src/test/java/org/onap/aai/migration/v12/MigratePATHPhysicalInventoryTest.java
+++ /dev/null
@@ -1,158 +0,0 @@
-/**
- * ============LICENSE_START=======================================================
- * org.onap.aai
- * ================================================================================
- * Copyright © 2017-2018 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.aai.migration.v12;
-
-import static org.junit.Assert.assertArrayEquals;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-import static org.mockito.Matchers.shortThat;
-import static org.mockito.Mockito.spy;
-import static org.mockito.Mockito.when;
-
-import java.util.Optional;
-
-import org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversalSource;
-import org.apache.tinkerpop.gremlin.process.traversal.strategy.verification.ReadOnlyStrategy;
-import org.apache.tinkerpop.gremlin.structure.Vertex;
-import org.junit.*;
-import org.onap.aai.AAISetup;
-import org.onap.aai.dbmap.DBConnectionType;
-import org.onap.aai.introspection.Loader;
-import org.onap.aai.introspection.ModelType;
-import org.onap.aai.setup.SchemaVersions;
-import org.onap.aai.setup.SchemaVersion;
-import org.onap.aai.serialization.engines.QueryStyle;
-import org.onap.aai.serialization.engines.JanusGraphDBEngine;
-import org.onap.aai.serialization.engines.TransactionalGraphEngine;
-
-import org.janusgraph.core.JanusGraphFactory;
-import org.janusgraph.core.JanusGraph;
-import org.janusgraph.core.JanusGraphTransaction;
-
-public class MigratePATHPhysicalInventoryTest extends AAISetup {
-
- private final static ModelType introspectorFactoryType = ModelType.MOXY;
- private final static QueryStyle queryStyle = QueryStyle.TRAVERSAL;
-
- private Loader loader;
- private TransactionalGraphEngine dbEngine;
- private MigratePATHPhysicalInventory migration;
- private GraphTraversalSource g;
-
- @Before
- public void setUp() throws Exception {
- g = tx.traversal();
- loader = loaderFactory.createLoaderForVersion(introspectorFactoryType, schemaVersions.getDefaultVersion());
- dbEngine = new JanusGraphDBEngine(
- queryStyle,
- loader);
-
- System.setProperty("BUNDLECONFIG_DIR", "src/test/resources");
-
- Vertex pnf2 = g.addV()
- .property("aai-node-type", "pnf")
- .property("pnf-name", "pnf-name-2")
- .next();
- Vertex port21 = g.addV()
- .property("aai-node-type", "lag-interface")
- .property("interface-name", "ae1")
- .next();
-
- Vertex pnf3 = g.addV()
- .property("aai-node-type", "pnf")
- .property("pnf-name", "pnf-name-3")
- .next();
- Vertex pnf4 = g.addV()
- .property("aai-node-type", "pnf")
- .property("pnf-name", "pnf-name-4")
- .next();
- Vertex pnf5 = g.addV()
- .property("aai-node-type", "pnf")
- .property("pnf-name", "pnf-name-5")
- .next();
- // graph 1
-
- edgeSerializer.addTreeEdge(g, pnf2, port21);
-
-
- TransactionalGraphEngine spy = spy(dbEngine);
- TransactionalGraphEngine.Admin adminSpy = spy(dbEngine.asAdmin());
-
- GraphTraversalSource traversal = g;
- GraphTraversalSource readOnly = tx.traversal(GraphTraversalSource.build().with(ReadOnlyStrategy.instance()));
- when (spy.tx()).thenReturn(tx);
- when(spy.asAdmin()).thenReturn(adminSpy);
- when(adminSpy.getTraversalSource()).thenReturn(traversal);
- when(adminSpy.getReadOnlyTraversalSource()).thenReturn(readOnly);
-
- migration = new MigratePATHPhysicalInventory(spy, loaderFactory, edgeIngestor, edgeSerializer, schemaVersions);
- migration.run();
- }
-
- @Ignore
- @Test
- public void testRun_checkPnfsAndPInterfacesExist() throws Exception {
- // check if graph nodes exist
-
- testGetMigrationName();
- testGetAffectedNodeTypes();
-
- // check if pnf node gets created
- assertEquals("4 PNFs exist", new Long(4L),
- g.V().has("aai-node-type", "pnf")
- .count().next());
-
- assertEquals("5 lag-interfaces were created", new Long (5L), g.V().has("aai-node-type", "lag-interface")
- .out("tosca.relationships.network.BindsTo").count().next());
-
- assertEquals("lag-interfaces created for pnfs", new Long(1L),
- g.V().has("aai-node-type", "pnf")
- .has("pnf-name", "pnf-name-3").count().next());
-
- assertEquals("lag-interface ae1 created for pnf-name-3", true,
- g.V().has("aai-node-type", "pnf")
- .has("pnf-name", "pnf-name-3")
- .in("tosca.relationships.network.BindsTo")
- .has("aai-node-type", "lag-interface")
- .has("interface-name","ae1")
- .hasNext());
-
- assertEquals("lag-interfaces created for pnfs", new Long(2L),
- g.V().has("aai-node-type", "pnf")
- .has("pnf-name", "pnf-name-5")
- .in("tosca.relationships.network.BindsTo")
- .has("aai-node-type", "lag-interface").count().next());
- }
-
- public void testGetAffectedNodeTypes() {
- Optional<String[]> types = migration.getAffectedNodeTypes();
- Optional<String[]> expected = Optional.of(new String[]{"lag-interface"});
-
- assertNotNull(types);
- assertArrayEquals(expected.get(), types.get());
- }
-
- public void testGetMigrationName() {
- String migrationName = migration.getMigrationName();
-
- assertNotNull(migrationName);
- assertEquals("MigratePATHPhysicalInventory", migrationName);
- }
-} \ No newline at end of file
diff --git a/src/test/java/org/onap/aai/migration/v12/MigrateServiceInstanceToConfigurationTest.java b/src/test/java/org/onap/aai/migration/v12/MigrateServiceInstanceToConfigurationTest.java
deleted file mode 100644
index 1904ae1..0000000
--- a/src/test/java/org/onap/aai/migration/v12/MigrateServiceInstanceToConfigurationTest.java
+++ /dev/null
@@ -1,402 +0,0 @@
-/**
- * ============LICENSE_START=======================================================
- * org.onap.aai
- * ================================================================================
- * Copyright © 2017-2018 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.aai.migration.v12;
-
-import static org.junit.Assert.assertArrayEquals;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-import static org.mockito.Mockito.spy;
-import static org.mockito.Mockito.when;
-
-import java.util.Optional;
-
-import org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversalSource;
-import org.apache.tinkerpop.gremlin.process.traversal.strategy.verification.ReadOnlyStrategy;
-import org.apache.tinkerpop.gremlin.structure.Vertex;
-import org.junit.*;
-import org.onap.aai.AAISetup;
-import org.onap.aai.dbmap.DBConnectionType;
-import org.onap.aai.introspection.Loader;
-import org.onap.aai.introspection.ModelType;
-import org.onap.aai.setup.SchemaVersions;
-import org.onap.aai.setup.SchemaVersion;
-import org.onap.aai.serialization.engines.QueryStyle;
-import org.onap.aai.serialization.engines.JanusGraphDBEngine;
-import org.onap.aai.serialization.engines.TransactionalGraphEngine;
-
-import org.janusgraph.core.JanusGraphFactory;
-import org.janusgraph.core.JanusGraph;
-import org.janusgraph.core.JanusGraphTransaction;
-@Ignore
-public class MigrateServiceInstanceToConfigurationTest extends AAISetup {
-
- private final static ModelType introspectorFactoryType = ModelType.MOXY;
- private final static QueryStyle queryStyle = QueryStyle.TRAVERSAL;
-
- private Loader loader;
- private TransactionalGraphEngine dbEngine;
- private JanusGraph graph;
- private MigrateServiceInstanceToConfiguration migration;
- private JanusGraphTransaction tx;
- private GraphTraversalSource g;
-
- @Before
- public void setUp() throws Exception {
- graph = JanusGraphFactory.build().set("storage.backend","inmemory").open();
- tx = graph.newTransaction();
- g = tx.traversal();
- loader = loaderFactory.createLoaderForVersion(introspectorFactoryType, schemaVersions.getDefaultVersion());
- dbEngine = new JanusGraphDBEngine(
- queryStyle,
- loader);
-
- Vertex customer1 = g.addV()
- .property("aai-node-type", "customer")
- .property("global-customer-id", "customer-id-1")
- .property("subscriber-type", "CUST")
- .next();
-
- Vertex customer2 = g.addV()
- .property("aai-node-type", "customer")
- .property("global-customer-id", "customer-id-2")
- .property("subscriber-type", "CUST")
- .next();
-
- Vertex customer3 = g.addV()
- .property("aai-node-type", "customer")
- .property("global-customer-id", "customer-id-3")
- .property("subscriber-type", "CUST")
- .next();
-
- Vertex customer4 = g.addV()
- .property("aai-node-type", "customer")
- .property("global-customer-id", "customer-id-4")
- .property("subscriber-type", "CUST")
- .next();
-
- Vertex servSub1 = g.addV()
- .property("aai-node-type", "service-subscription")
- .property("service-type", "DHV")
- .next();
-
- Vertex servSub2 = g.addV()
- .property("aai-node-type", "service-subscription")
- .property("service-type", "OTHER")
- .next();
-
- Vertex servSub3 = g.addV()
- .property("aai-node-type", "service-subscription")
- .property("service-type", "DHV")
- .next();
-
- Vertex servSub4 = g.addV()
- .property("aai-node-type", "service-subscription")
- .property("service-type", "DHV")
- .next();
-
- Vertex servSub5 = g.addV()
- .property("aai-node-type", "service-subscription")
- .property("service-type", "DHV")
- .next();
-
- Vertex servInstance1 = g.addV()
- .property("aai-node-type", "service-instance")
- .property("service-instance-id", "service-inst-1")
- .property("operational-status", "activated")
- .property("bandwidth-total", "5")
- .next();
-
- Vertex servInstance2 = g.addV()
- .property("aai-node-type", "service-instance")
- .property("service-instance-id", "service-inst-2")
- .property("operational-status", "activated")
- .property("bandwidth-total", "8")
- .next();
-
- Vertex servInstance3 = g.addV()
- .property("aai-node-type", "service-instance")
- .property("service-instance-id", "service-inst-3")
- .property("operational-status", "activated")
- .property("bandwidth-total", "10")
- .next();
-
- Vertex servInstance4 = g.addV()
- .property("aai-node-type", "service-instance")
- .property("service-instance-id", "service-inst-4")
- .property("operational-status", "activated")
- .property("bandwidth-total", "15")
- .next();
-
- Vertex config1 = g.addV()
- .property("aai-node-type", "configuration")
- .property("configuration-id", "configuration-1")
- .property("configuration-type", "DHV")
- .property("tunnel-bandwidth", "7")
- .next();
-
- Vertex config2 = g.addV()
- .property("aai-node-type", "configuration")
- .property("configuration-id", "configuration-2")
- .property("configuration-type", "OTHER")
- .property("tunnel-bandwidth", "3")
- .next();
-
- Vertex config3 = g.addV()
- .property("aai-node-type", "configuration")
- .property("configuration-id", "configuration-3")
- .property("configuration-type", "OTHER")
- .property("tunnel-bandwidth", "2")
- .next();
-
- Vertex config4 = g.addV()
- .property("aai-node-type", "configuration")
- .property("configuration-id", "configuration-4")
- .property("configuration-type", "OTHER")
- .property("tunnel-bandwidth", "4")
- .next();
-
- // graph 1
- edgeSerializer.addTreeEdge(g, customer1, servSub1);
- edgeSerializer.addTreeEdge(g, customer1, servSub2);
- edgeSerializer.addTreeEdge(g, servSub1, servInstance1);
- edgeSerializer.addTreeEdge(g, servSub2, servInstance2);
-
- // graph 2
- edgeSerializer.addTreeEdge(g, customer2, servSub3);
-
- // graph 3
- edgeSerializer.addTreeEdge(g, customer3, servSub4);
- edgeSerializer.addTreeEdge(g, servSub4, servInstance3);
- edgeSerializer.addEdge(g, servInstance3, config1);
- edgeSerializer.addEdge(g, servInstance3, config2);
-
- // graph 4
- edgeSerializer.addTreeEdge(g, customer4, servSub5);
- edgeSerializer.addTreeEdge(g, servSub5, servInstance4);
- edgeSerializer.addEdge(g, servInstance4, config3);
- edgeSerializer.addEdge(g, servInstance4, config4);
-
- TransactionalGraphEngine spy = spy(dbEngine);
- TransactionalGraphEngine.Admin adminSpy = spy(dbEngine.asAdmin());
-
- GraphTraversalSource traversal = g;
- GraphTraversalSource readOnly = tx.traversal(GraphTraversalSource.build().with(ReadOnlyStrategy.instance()));
- when (spy.tx()).thenReturn(tx);
- when(spy.asAdmin()).thenReturn(adminSpy);
- when(adminSpy.getTraversalSource()).thenReturn(traversal);
- when(adminSpy.getReadOnlyTraversalSource()).thenReturn(readOnly);
-
- migration = new MigrateServiceInstanceToConfiguration(spy, loaderFactory, edgeIngestor, edgeSerializer, schemaVersions);
- migration.run();
- }
-
- @After
- public void cleanUp() {
- tx.tx().rollback();
- graph.close();
- }
-
- @Test
- public void testRun_createConfigNode() throws Exception {
- // check if graph nodes exist
- assertEquals("customer node exists", true,
- g.V().has("global-customer-id", "customer-id-1")
- .hasNext());
-
- assertEquals("service subscription node, service-type=DHV", true,
- g.V().has("global-customer-id", "customer-id-1")
- .in("org.onap.relationships.inventory.BelongsTo").has("service-type", "DHV")
- .hasNext());
-
- assertEquals("service instance node, bandwidth-total=5", true,
- g.V().has("global-customer-id", "customer-id-1")
- .in("org.onap.relationships.inventory.BelongsTo").has("service-type", "DHV")
- .in("org.onap.relationships.inventory.BelongsTo").has("service-instance-id", "service-inst-1").has("bandwidth-total", "5")
- .hasNext());
-
- // check if configuration node gets created
- assertEquals("configuration node exists", true,
- g.V().has("global-customer-id", "customer-id-1")
- .in("org.onap.relationships.inventory.BelongsTo").has("service-type", "DHV")
- .in("org.onap.relationships.inventory.BelongsTo").has("service-instance-id", "service-inst-1")
- .out("org.onap.relationships.inventory.Uses").has("aai-node-type", "configuration")
- .hasNext());
-
- // check configuration type
- assertEquals("configuration node, configuration-type=DHV", true,
- g.V().has("global-customer-id", "customer-id-1")
- .in("org.onap.relationships.inventory.BelongsTo").has("service-type", "DHV")
- .in("org.onap.relationships.inventory.BelongsTo").has("service-instance-id", "service-inst-1")
- .out("org.onap.relationships.inventory.Uses").has("aai-node-type", "configuration").has("configuration-type", "DHV")
- .hasNext());
-
- // check configuration tunnel-bandwidth
- assertEquals("configuration node, tunnel-bandwidth=5", true,
- g.V().has("global-customer-id", "customer-id-1")
- .in("org.onap.relationships.inventory.BelongsTo").has("service-type", "DHV")
- .in("org.onap.relationships.inventory.BelongsTo").has("service-instance-id", "service-inst-1")
- .out("org.onap.relationships.inventory.Uses").has("aai-node-type", "configuration").has("tunnel-bandwidth", "5")
- .hasNext());
- }
-
- @Test
- public void testRun_configNodeNotCreated() throws Exception {
- // check if graph nodes exist
- assertEquals("customer node exists", true,
- g.V().has("global-customer-id", "customer-id-1")
- .hasNext());
-
- assertEquals("service subscription node, service-type=OTHER", true,
- g.V().has("global-customer-id", "customer-id-1")
- .in("org.onap.relationships.inventory.BelongsTo").has("service-type", "OTHER")
- .hasNext());
-
- assertEquals("service instance node, bandwidth-total=8", true,
- g.V().has("global-customer-id", "customer-id-1")
- .in("org.onap.relationships.inventory.BelongsTo").has("service-type", "OTHER")
- .in("org.onap.relationships.inventory.BelongsTo").has("service-instance-id", "service-inst-2").has("bandwidth-total", "8")
- .hasNext());
-
- // configuration node should not be created
- assertEquals("configuration node does not exist", false,
- g.V().has("global-customer-id", "customer-id-1")
- .in("org.onap.relationships.inventory.BelongsTo").has("service-type", "OTHER")
- .in("org.onap.relationships.inventory.BelongsTo").has("service-instance-id", "service-inst-2")
- .out("org.onap.relationships.inventory.Uses").has("aai-node-type", "configuration")
- .hasNext());
-
- // edge between service instance and configuration should not be created
- assertEquals("configuration node does not exist", false,
- g.V().has("global-customer-id", "customer-id-1")
- .in("org.onap.relationships.inventory.BelongsTo").has("service-type", "OTHER")
- .in("org.onap.relationships.inventory.BelongsTo").has("service-instance-id", "service-inst-2")
- .out("org.onap.relationships.inventory.Uses").hasNext());
- }
-
- @Test
- public void testRun_noServiceInstance() throws Exception {
- // check if graph nodes exist
- assertEquals("customer node exists", true,
- g.V().has("global-customer-id", "customer-id-2")
- .hasNext());
-
- assertEquals("service subscription node, service-type=DHV", true,
- g.V().has("global-customer-id", "customer-id-2")
- .in("org.onap.relationships.inventory.BelongsTo").has("service-type", "DHV")
- .hasNext());
-
- // no service instance nodes
- assertEquals("no service instance nodes", false,
- g.V().has("global-customer-id", "customer-id-2")
- .in("org.onap.relationships.inventory.BelongsTo").has("service-type", "DHV")
- .in("org.onap.relationships.inventory.BelongsTo").has("aai-node-type", "service-instance")
- .hasNext());
- }
-
- @Test
- public void testRun_existingConfig() throws Exception {
- // check if graph nodes exist
- assertEquals("customer node exists", true,
- g.V().has("global-customer-id", "customer-id-3")
- .hasNext());
-
- assertEquals("service subscription node, service-type=DHV", true,
- g.V().has("global-customer-id", "customer-id-3")
- .in("org.onap.relationships.inventory.BelongsTo").has("service-type", "DHV")
- .hasNext());
-
- assertEquals("service instance node, bandwidth-total=10", true,
- g.V().has("global-customer-id", "customer-id-3")
- .in("org.onap.relationships.inventory.BelongsTo").has("service-type", "DHV")
- .in("org.onap.relationships.inventory.BelongsTo").has("service-instance-id", "service-inst-3").has("bandwidth-total", "10")
- .hasNext());
-
- assertEquals("configuration node with type DHV, tunnel-bandwidth changed to 10", true,
- g.V().has("global-customer-id", "customer-id-3")
- .in("org.onap.relationships.inventory.BelongsTo").has("service-type", "DHV")
- .in("org.onap.relationships.inventory.BelongsTo").has("service-instance-id", "service-inst-3")
- .out("org.onap.relationships.inventory.Uses").has("aai-node-type", "configuration").has("tunnel-bandwidth", "10")
- .hasNext());
-
- assertEquals("configuration node with type OTHER, tunnel-bandwidth remains same", true,
- g.V().has("global-customer-id", "customer-id-3")
- .in("org.onap.relationships.inventory.BelongsTo").has("service-type", "DHV")
- .in("org.onap.relationships.inventory.BelongsTo").has("service-instance-id", "service-inst-3")
- .out("org.onap.relationships.inventory.Uses").has("aai-node-type", "configuration").has("tunnel-bandwidth", "3")
- .hasNext());
- }
-
- @Test
- public void testRun_existingConfigNotDHV() throws Exception {
- // check if graph nodes exist
- assertEquals("customer node exists", true,
- g.V().has("global-customer-id", "customer-id-4")
- .hasNext());
-
- assertEquals("service subscription node, service-type=DHV", true,
- g.V().has("global-customer-id", "customer-id-4")
- .in("org.onap.relationships.inventory.BelongsTo").has("service-type", "DHV")
- .hasNext());
-
- assertEquals("service instance node, bandwidth-total=15", true,
- g.V().has("global-customer-id", "customer-id-4")
- .in("org.onap.relationships.inventory.BelongsTo").has("service-type", "DHV")
- .in("org.onap.relationships.inventory.BelongsTo").has("service-instance-id", "service-inst-4").has("bandwidth-total", "15")
- .hasNext());
-
- assertEquals("first configuration node with type OTHER, tunnel-bandwidth remains same", true,
- g.V().has("global-customer-id", "customer-id-4")
- .in("org.onap.relationships.inventory.BelongsTo").has("service-type", "DHV")
- .in("org.onap.relationships.inventory.BelongsTo").has("service-instance-id", "service-inst-4")
- .out("org.onap.relationships.inventory.Uses").has("aai-node-type", "configuration").has("tunnel-bandwidth", "2")
- .hasNext());
-
- assertEquals("second configuration node with type OTHER, tunnel-bandwidth remains same", true,
- g.V().has("global-customer-id", "customer-id-4")
- .in("org.onap.relationships.inventory.BelongsTo").has("service-type", "DHV")
- .in("org.onap.relationships.inventory.BelongsTo").has("service-instance-id", "service-inst-4")
- .out("org.onap.relationships.inventory.Uses").has("aai-node-type", "configuration").has("tunnel-bandwidth", "4")
- .hasNext());
-
- assertEquals("new configuration node created with type DHV, tunnel-bandwidth=15", true,
- g.V().has("global-customer-id", "customer-id-4")
- .in("org.onap.relationships.inventory.BelongsTo").has("service-type", "DHV")
- .in("org.onap.relationships.inventory.BelongsTo").has("service-instance-id", "service-inst-4")
- .out("org.onap.relationships.inventory.Uses").has("aai-node-type", "configuration").has("tunnel-bandwidth", "15")
- .hasNext());
- }
-
- @Test
- public void testGetAffectedNodeTypes() {
- Optional<String[]> types = migration.getAffectedNodeTypes();
- Optional<String[]> expected = Optional.of(new String[]{"service-instance"});
-
- assertNotNull(types);
- assertArrayEquals(expected.get(), types.get());
- }
-
- @Test
- public void testGetMigrationName() {
- String migrationName = migration.getMigrationName();
-
- assertNotNull(migrationName);
- assertEquals("service-instance-to-configuration", migrationName);
- }
-}
diff --git a/src/test/java/org/onap/aai/migration/v12/MigrateServiceInstanceToConfigurationTestPreMigrationMock.java b/src/test/java/org/onap/aai/migration/v12/MigrateServiceInstanceToConfigurationTestPreMigrationMock.java
deleted file mode 100644
index 6764667..0000000
--- a/src/test/java/org/onap/aai/migration/v12/MigrateServiceInstanceToConfigurationTestPreMigrationMock.java
+++ /dev/null
@@ -1,297 +0,0 @@
-/**
- * ============LICENSE_START=======================================================
- * org.onap.aai
- * ================================================================================
- * Copyright © 2017-2018 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.aai.migration.v12;
-
-import static org.junit.Assert.assertArrayEquals;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-import static org.mockito.Mockito.spy;
-import static org.mockito.Mockito.when;
-
-import java.util.Optional;
-
-import org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversalSource;
-import org.apache.tinkerpop.gremlin.process.traversal.strategy.verification.ReadOnlyStrategy;
-import org.apache.tinkerpop.gremlin.structure.Vertex;
-import org.junit.*;
-import org.onap.aai.AAISetup;
-import org.onap.aai.dbmap.DBConnectionType;
-import org.onap.aai.introspection.Loader;
-import org.onap.aai.introspection.LoaderFactory;
-import org.onap.aai.introspection.ModelType;
-import org.onap.aai.setup.SchemaVersions;
-import org.onap.aai.setup.SchemaVersion;
-import org.onap.aai.serialization.engines.QueryStyle;
-import org.onap.aai.serialization.engines.JanusGraphDBEngine;
-import org.onap.aai.serialization.engines.TransactionalGraphEngine;
-
-import org.janusgraph.core.JanusGraphFactory;
-import org.janusgraph.core.JanusGraph;
-import org.janusgraph.core.JanusGraphTransaction;
-
-public class MigrateServiceInstanceToConfigurationTestPreMigrationMock extends AAISetup {
-
- private final static ModelType introspectorFactoryType = ModelType.MOXY;
- private final static QueryStyle queryStyle = QueryStyle.TRAVERSAL;
-
- private Loader loader;
- private TransactionalGraphEngine dbEngine;
- private JanusGraph graph;
- private MigrateServiceInstanceToConfiguration migration;
- private JanusGraphTransaction tx;
- private GraphTraversalSource g;
-
- @Before
- public void setUp() throws Exception {
- graph = JanusGraphFactory.build().set("storage.backend","inmemory").open();
- tx = graph.newTransaction();
- g = tx.traversal();
- loader = loaderFactory.createLoaderForVersion(introspectorFactoryType, schemaVersions.getDefaultVersion());
- dbEngine = new JanusGraphDBEngine(
- queryStyle,
- loader);
-
- Vertex customer = g.addV()
- .property("aai-node-type", "customer")
- .property("global-customer-id", "customer-9972-BandwidthMigration")
- .property("subscriber-type", "CUST")
- .next();
-
- Vertex servSubSDNEI = g.addV()
- .property("aai-node-type", "service-subscription")
- .property("service-type", "SDN-ETHERNET-INTERNET")
- .next();
-
- Vertex servInstance22 = g.addV()
- .property("aai-node-type", "service-instance")
- .property("service-instance-id", "servInstance-9972-22-BandwidthMigration")
- .property("operational-status", "activated")
- .property("bandwidth-total", "bandwidth-total-22-BandwidthMigration")
- .next();
-
- Vertex servInstance11 = g.addV()
- .property("aai-node-type", "service-instance")
- .property("service-instance-id", "servInstance-9972-11-BandwidthMigration")
- .property("operational-status", "activated")
- .property("bandwidth-total", "bandwidth-total-11-BandwidthMigration")
- .next();
-
- Vertex servSubDHV = g.addV()
- .property("aai-node-type", "service-subscription")
- .property("service-type", "DHV")
- .next();
-
- Vertex servInstance4 = g.addV()
- .property("aai-node-type", "service-instance")
- .property("service-instance-id", "servInstance-9972-4-BandwidthMigration")
- .property("operational-status", "activated")
- .property("bandwidth-total", "bandwidth-total-4-BandwidthMigration")
- .next();
-
- Vertex servInstance1 = g.addV()
- .property("aai-node-type", "service-instance")
- .property("service-instance-id", "ServInstance-9972-1-BandwidthMigration")
- .property("operational-status", "activated")
- .property("bandwidth-total", "2380")
- .next();
-
- Vertex servInstance3 = g.addV()
- .property("aai-node-type", "service-instance")
- .property("service-instance-id", "servInstance-9972-3-BandwidthMigration")
- .property("operational-status", "activated")
- .property("bandwidth-total", "bandwidth-total-3-BandwidthMigration")
- .next();
-
- Vertex servInstance2 = g.addV()
- .property("aai-node-type", "service-instance")
- .property("service-instance-id", "servInstance-9972-2-BandwidthMigration")
- .property("operational-status", "activated")
- .property("bandwidth-total", "bandwidth-total-2-BandwidthMigration")
- .next();
-
- Vertex config1 = g.addV()
- .property("aai-node-type", "configuration")
- .property("configuration-id", "9972-config-LB1113")
- .property("configuration-type", "DHV")
- .property("tunnel-bandwidth", "12")
- .next();
-
- Vertex config2 = g.addV()
- .property("aai-node-type", "configuration")
- .property("configuration-id", "9972-1config-LB1113")
- .property("configuration-type", "configuration-type1-9972")
- .next();
-
- Vertex allottedResource = g.addV()
- .property("aai-node-type", "allotted-resource")
- .property("id", "allResource-9972-BandwidthMigration")
- .next();
-
- edgeSerializer.addTreeEdge(g, customer, servSubSDNEI);
- edgeSerializer.addTreeEdge(g, customer, servSubDHV);
- edgeSerializer.addTreeEdge(g, servSubSDNEI, servInstance22);
- edgeSerializer.addTreeEdge(g, servSubSDNEI, servInstance11);
- edgeSerializer.addTreeEdge(g, servSubDHV, servInstance4);
- edgeSerializer.addTreeEdge(g, servSubDHV, servInstance1);
- edgeSerializer.addTreeEdge(g, servSubDHV, servInstance3);
- edgeSerializer.addTreeEdge(g, servSubDHV, servInstance2);
- edgeSerializer.addEdge(g, servInstance1, allottedResource);
- edgeSerializer.addEdge(g, servInstance1, config1);
- edgeSerializer.addEdge(g, servInstance2, config2);
-
- TransactionalGraphEngine spy = spy(dbEngine);
- TransactionalGraphEngine.Admin adminSpy = spy(dbEngine.asAdmin());
-
- GraphTraversalSource traversal = g;
- GraphTraversalSource readOnly = tx.traversal(GraphTraversalSource.build().with(ReadOnlyStrategy.instance()));
- when (spy.tx()).thenReturn(tx);
- when(spy.asAdmin()).thenReturn(adminSpy);
- when(adminSpy.getTraversalSource()).thenReturn(traversal);
- when(adminSpy.getReadOnlyTraversalSource()).thenReturn(readOnly);
-
- migration = new MigrateServiceInstanceToConfiguration(spy, loaderFactory, edgeIngestor, edgeSerializer, schemaVersions);
- migration.run();
- }
-
- @After
- public void cleanUp() {
- tx.tx().rollback();
- graph.close();
- }
-
- @Test
- public void testRun() throws Exception {
- // check if graph nodes exist
- assertEquals("customer node exists", true,
- g.V().has("global-customer-id", "customer-9972-BandwidthMigration")
- .hasNext());
-
- assertEquals("service subscription node, service-type=SDN-ETHERNET-INTERNET", true,
- g.V().has("global-customer-id", "customer-9972-BandwidthMigration")
- .in("org.onap.relationships.inventory.BelongsTo").has("service-type", "SDN-ETHERNET-INTERNET")
- .hasNext());
-
- assertEquals("service instance node, bandwidth-total=bandwidth-total-22-BandwidthMigration", true,
- g.V().has("global-customer-id", "customer-9972-BandwidthMigration")
- .in("org.onap.relationships.inventory.BelongsTo").has("service-type", "SDN-ETHERNET-INTERNET")
- .in("org.onap.relationships.inventory.BelongsTo").has("service-instance-id", "servInstance-9972-22-BandwidthMigration")
- .has("bandwidth-total", "bandwidth-total-22-BandwidthMigration")
- .hasNext());
-
- assertEquals("service instance node, bandwidth-total=bandwidth-total-11-BandwidthMigration", true,
- g.V().has("global-customer-id", "customer-9972-BandwidthMigration")
- .in("org.onap.relationships.inventory.BelongsTo").has("service-type", "SDN-ETHERNET-INTERNET")
- .in("org.onap.relationships.inventory.BelongsTo").has("service-instance-id", "servInstance-9972-11-BandwidthMigration")
- .has("bandwidth-total", "bandwidth-total-11-BandwidthMigration")
- .hasNext());
-
- assertEquals("service subscription node, service-type=DHV", true,
- g.V().has("global-customer-id", "customer-9972-BandwidthMigration")
- .in("org.onap.relationships.inventory.BelongsTo").has("service-type", "DHV")
- .hasNext());
-
- assertEquals("service instance node, bandwidth-total=servInstance-9972-4-BandwidthMigration", true,
- g.V().has("global-customer-id", "customer-9972-BandwidthMigration")
- .in("org.onap.relationships.inventory.BelongsTo").has("service-type", "DHV")
- .in("org.onap.relationships.inventory.BelongsTo").has("service-instance-id", "servInstance-9972-4-BandwidthMigration")
- .has("bandwidth-total", "bandwidth-total-4-BandwidthMigration")
- .hasNext());
-
- assertEquals("service instance node, bandwidth-total=ServInstance-9972-1-BandwidthMigration", true,
- g.V().has("global-customer-id", "customer-9972-BandwidthMigration")
- .in("org.onap.relationships.inventory.BelongsTo").has("service-type", "DHV")
- .in("org.onap.relationships.inventory.BelongsTo").has("service-instance-id", "ServInstance-9972-1-BandwidthMigration")
- .has("bandwidth-total", "2380")
- .hasNext());
-
- assertEquals("service instance node, bandwidth-total=servInstance-9972-3-BandwidthMigration", true,
- g.V().has("global-customer-id", "customer-9972-BandwidthMigration")
- .in("org.onap.relationships.inventory.BelongsTo").has("service-type", "DHV")
- .in("org.onap.relationships.inventory.BelongsTo").has("service-instance-id", "servInstance-9972-3-BandwidthMigration")
- .has("bandwidth-total", "bandwidth-total-3-BandwidthMigration")
- .hasNext());
-
- assertEquals("service instance node, bandwidth-total=servInstance-9972-2-BandwidthMigration", true,
- g.V().has("global-customer-id", "customer-9972-BandwidthMigration")
- .in("org.onap.relationships.inventory.BelongsTo").has("service-type", "DHV")
- .in("org.onap.relationships.inventory.BelongsTo").has("service-instance-id", "servInstance-9972-2-BandwidthMigration")
- .has("bandwidth-total", "bandwidth-total-2-BandwidthMigration")
- .hasNext());
-
- assertEquals("configuration node with type=configuration-type1-9972, tunnel-bandwidth does not exist", true,
- g.V().has("global-customer-id", "customer-9972-BandwidthMigration")
- .in("org.onap.relationships.inventory.BelongsTo").has("service-type", "DHV")
- .in("org.onap.relationships.inventory.BelongsTo").has("service-instance-id", "servInstance-9972-2-BandwidthMigration")
- .out("org.onap.relationships.inventory.Uses").has("aai-node-type", "configuration")
- .has("configuration-type", "configuration-type1-9972")
- .hasNext());
-
- // check if configuration node gets created for 2, 3, 4
- assertEquals("configuration node created with type=DHV, tunnel-bandwidth=servInstance-9972-4-BandwidthMigration", true,
- g.V().has("global-customer-id", "customer-9972-BandwidthMigration")
- .in("org.onap.relationships.inventory.BelongsTo").has("service-type", "DHV")
- .in("org.onap.relationships.inventory.BelongsTo").has("service-instance-id", "servInstance-9972-4-BandwidthMigration")
- .out("org.onap.relationships.inventory.Uses").has("aai-node-type", "configuration")
- .has("configuration-type", "DHV").has("tunnel-bandwidth", "bandwidth-total-4-BandwidthMigration")
- .hasNext());
-
- assertEquals("configuration node created with type=DHV, tunnel-bandwidth=servInstance-9972-3-BandwidthMigration", true,
- g.V().has("global-customer-id", "customer-9972-BandwidthMigration")
- .in("org.onap.relationships.inventory.BelongsTo").has("service-type", "DHV")
- .in("org.onap.relationships.inventory.BelongsTo").has("service-instance-id", "servInstance-9972-3-BandwidthMigration")
- .out("org.onap.relationships.inventory.Uses").has("aai-node-type", "configuration")
- .has("configuration-type", "DHV").has("tunnel-bandwidth", "bandwidth-total-3-BandwidthMigration")
- .hasNext());
-
- assertEquals("configuration node created with type=DHV, tunnel-bandwidth=servInstance-9972-2-BandwidthMigration", true,
- g.V().has("global-customer-id", "customer-9972-BandwidthMigration")
- .in("org.onap.relationships.inventory.BelongsTo").has("service-type", "DHV")
- .in("org.onap.relationships.inventory.BelongsTo").has("service-instance-id", "servInstance-9972-2-BandwidthMigration")
- .out("org.onap.relationships.inventory.Uses").has("aai-node-type", "configuration")
- .has("configuration-type", "DHV").has("tunnel-bandwidth", "bandwidth-total-2-BandwidthMigration")
- .hasNext());
-
- // configuration modified for ServInstance-9972-1-BandwidthMigration
- assertEquals("configuration node modified for ServInstance-9972-1-BandwidthMigration, tunnel-bandwidth=2380", true,
- g.V().has("global-customer-id", "customer-9972-BandwidthMigration")
- .in("org.onap.relationships.inventory.BelongsTo").has("service-type", "DHV")
- .in("org.onap.relationships.inventory.BelongsTo").has("service-instance-id", "ServInstance-9972-1-BandwidthMigration")
- .out("org.onap.relationships.inventory.Uses").has("aai-node-type", "configuration")
- .has("configuration-type", "DHV").has("tunnel-bandwidth", "2380")
- .hasNext());
- }
-
- @Test
- public void testGetAffectedNodeTypes() {
- Optional<String[]> types = migration.getAffectedNodeTypes();
- Optional<String[]> expected = Optional.of(new String[]{"service-instance"});
-
- assertNotNull(types);
- assertArrayEquals(expected.get(), types.get());
- }
-
- @Test
- public void testGetMigrationName() {
- String migrationName = migration.getMigrationName();
-
- assertNotNull(migrationName);
- assertEquals("service-instance-to-configuration", migrationName);
- }
-}
diff --git a/src/test/java/org/onap/aai/migration/v13/MigrateEdgesBetweenVnfcAndVfModuleTest.java b/src/test/java/org/onap/aai/migration/v13/MigrateEdgesBetweenVnfcAndVfModuleTest.java
deleted file mode 100644
index fc38979..0000000
--- a/src/test/java/org/onap/aai/migration/v13/MigrateEdgesBetweenVnfcAndVfModuleTest.java
+++ /dev/null
@@ -1,117 +0,0 @@
-/**
- * ============LICENSE_START=======================================================
- * org.onap.aai
- * ================================================================================
- * Copyright © 2017-2018 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.aai.migration.v13;
-
-import static org.junit.Assert.assertEquals;
-import static org.mockito.Mockito.spy;
-import static org.mockito.Mockito.when;
-
-import org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversalSource;
-import org.apache.tinkerpop.gremlin.process.traversal.strategy.verification.ReadOnlyStrategy;
-import org.apache.tinkerpop.gremlin.structure.Vertex;
-import org.janusgraph.core.JanusGraph;
-import org.janusgraph.core.JanusGraphFactory;
-import org.janusgraph.core.JanusGraphTransaction;
-import org.junit.After;
-import org.junit.AfterClass;
-import org.junit.Before;
-import org.junit.Ignore;
-import org.junit.Test;
-import org.onap.aai.AAISetup;
-import org.onap.aai.dbmap.DBConnectionType;
-import org.onap.aai.edges.enums.EdgeProperty;
-import org.onap.aai.introspection.Loader;
-import org.onap.aai.introspection.ModelType;
-import org.onap.aai.serialization.engines.JanusGraphDBEngine;
-import org.onap.aai.serialization.engines.QueryStyle;
-import org.onap.aai.serialization.engines.TransactionalGraphEngine;
-
-public class MigrateEdgesBetweenVnfcAndVfModuleTest extends AAISetup{
-
- private final static ModelType introspectorFactoryType = ModelType.MOXY;
- private final static QueryStyle queryStyle = QueryStyle.TRAVERSAL;
-
- private static Loader loader;
- private static TransactionalGraphEngine dbEngine;
- private static JanusGraph graph;
- private static MigrateEdgesBetweenVnfcAndVfModule migration;
- private static JanusGraphTransaction tx;
- private static GraphTraversalSource g;
-
- @Before
- public void setUp() throws Exception {
- graph = JanusGraphFactory.build().set("storage.backend","inmemory").open();
- tx = graph.newTransaction();
- g = tx.traversal();
- loader = loaderFactory.createLoaderForVersion(introspectorFactoryType, schemaVersions.getDefaultVersion());
- dbEngine = new JanusGraphDBEngine(
- queryStyle,
- loader);
-
- System.setProperty("BUNDLECONFIG_DIR", "src/test/resources");
-
- Vertex vnfc = g.addV().property("aai-node-type", "vnfc")
- .property("vnfc-name", "vnfc-name-1").next();
-
- Vertex vfmodule = g.addV().property("aai-node-type", "vf-module")
- .property("vf-module-id", "vf-module-id-1").next();
-
-
- //edgeSerializer.addEdge(g, vfmodule, vnfc,"org.onap.relationships.inventory.Uses");
-
- vfmodule.addEdge("org.onap.relationships.inventory.Uses", vnfc, EdgeProperty.CONTAINS.toString(), "NONE",
- EdgeProperty.DELETE_OTHER_V.toString(), "NONE", EdgeProperty.PREVENT_DELETE.toString(), "OUT");
-
-
- TransactionalGraphEngine spy = spy(dbEngine);
- TransactionalGraphEngine.Admin adminSpy = spy(dbEngine.asAdmin());
-
- GraphTraversalSource traversal = g;
- GraphTraversalSource readOnly = tx.traversal(GraphTraversalSource.build().with(ReadOnlyStrategy.instance()));
- when (spy.tx()).thenReturn(tx);
- when(spy.asAdmin()).thenReturn(adminSpy);
- when(adminSpy.getTraversalSource()).thenReturn(traversal);
- when(adminSpy.getReadOnlyTraversalSource()).thenReturn(readOnly);
-
- migration = new MigrateEdgesBetweenVnfcAndVfModule(spy,loaderFactory,edgeIngestor,edgeSerializer,schemaVersions);
- migration.run();
- }
-
- @After
- public void cleanUp() {
- tx.tx().rollback();
- graph.close();
- }
-
- @Ignore
- @Test
- public void testIdsUpdated() throws Exception {
-
- //System.out.println("After Migration: " +migration.asString(g.V().has("aai-node-type","vnfc").inE().next()));
-
- assertEquals("vf-module to vnfc migration done", true,
- g.V().has("aai-node-type", "vf-module").outE().hasLabel("org.onap.relationships.inventory.Uses")
- .has(EdgeProperty.DELETE_OTHER_V.toString(), "OUT").hasNext());
-
- assertEquals("vf-module to vnfc migration done", true,
- g.V().has("aai-node-type", "vnfc").inE().hasLabel("org.onap.relationships.inventory.Uses")
- .has(EdgeProperty.PREVENT_DELETE.toString(), "NONE").hasNext());
- }
-}