summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--aai-core/src/main/java/org/onap/aai/dbgen/DataGrooming.java212
-rw-r--r--aai-schema/src/main/resources/aai_schema/aai_schema_v14.xsd7
-rw-r--r--aai-schema/src/main/resources/oxm/aai_oxm_v14.xml5
3 files changed, 106 insertions, 118 deletions
diff --git a/aai-core/src/main/java/org/onap/aai/dbgen/DataGrooming.java b/aai-core/src/main/java/org/onap/aai/dbgen/DataGrooming.java
index 61ef8544..d46aa7ae 100644
--- a/aai-core/src/main/java/org/onap/aai/dbgen/DataGrooming.java
+++ b/aai-core/src/main/java/org/onap/aai/dbgen/DataGrooming.java
@@ -26,6 +26,7 @@ import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
+import java.util.Arrays;
import java.util.Collection;
import java.util.HashMap;
import java.util.Iterator;
@@ -72,6 +73,7 @@ import org.janusgraph.core.JanusGraph;
public class DataGrooming {
+ public static final String AAI_EXCEPTION_NUMBER = "AAI_6101";
private static EELFLogger logger;
private static final String FROMAPPID = "AAI-DB";
private static final String TRANSID = UUID.randomUUID().toString();
@@ -143,101 +145,67 @@ public class DataGrooming {
if (args.length > 0) {
// They passed some arguments in that will affect processing
- for (int i = 0; i < args.length; i++) {
- String thisArg = args[i];
- if ("-edgesOnly".equals(thisArg)) {
- edgesOnlyFlag = true;
- } else if (thisArg.equals("-autoFix")) {
- doAutoFix = true;
- } else if ("-skipHostCheck".equals(thisArg)) {
- skipHostCheck = true;
- } else if ("-dontFixOrphans".equals(thisArg)) {
- dontFixOrphansFlag = true;
- } else if ("-singleCommits".equals(thisArg)) {
- singleCommits = true;
- } else if ("-dupeCheckOff".equals(thisArg)) {
- dupeCheckOff = true;
- } else if ("-dupeFixOn".equals(thisArg)) {
- dupeFixOn = true;
- } else if ("-ghost2CheckOff".equals(thisArg)) {
- ghost2CheckOff = true;
- } else if ("-neverUseCache".equals(thisArg)) {
- neverUseCache = true;
- } else if ("-ghost2FixOn".equals(thisArg)) {
- ghost2FixOn = true;
- } else if ("-skipEdgeChecks".equals(thisArg)) {
- skipEdgeCheckFlag = true;
- } else if ("-maxFix".equals(thisArg)) {
- i++;
- if (i >= args.length) {
- LoggingContext.statusCode(StatusCode.ERROR);
- LoggingContext.responseCode(LoggingContext.BUSINESS_PROCESS_ERROR);
- logger.error(" No value passed with -maxFix option. ");
- AAISystemExitUtil.systemExitCloseAAIGraph(0);
- }
- String nextArg = args[i];
- try {
- maxRecordsToFix = Integer.parseInt(nextArg);
- } catch (Exception e) {
- LoggingContext.statusCode(StatusCode.ERROR);
- LoggingContext.responseCode(LoggingContext.BUSINESS_PROCESS_ERROR);
- logger.error("Bad value passed with -maxFix option: ["
- + nextArg + "]");
- AAISystemExitUtil.systemExitCloseAAIGraph(0);
- }
- } else if (thisArg.equals("-sleepMinutes")) {
- i++;
- if (i >= args.length) {
- LoggingContext.statusCode(StatusCode.ERROR);
- LoggingContext.responseCode(LoggingContext.BUSINESS_PROCESS_ERROR);
- logger.error("No value passed with -sleepMinutes option.");
- AAISystemExitUtil.systemExitCloseAAIGraph(0);
- }
- String nextArg = args[i];
- try {
- sleepMinutes = Integer.parseInt(nextArg);
- } catch (Exception e) {
- LoggingContext.statusCode(StatusCode.ERROR);
- LoggingContext.responseCode(LoggingContext.BUSINESS_PROCESS_ERROR);
- logger.error("Bad value passed with -sleepMinutes option: ["
- + nextArg + "]");
- AAISystemExitUtil.systemExitCloseAAIGraph(0);
- }
- } else if ("-timeWindowMinutes".equals(thisArg)) {
- i++;
- if (i >= args.length) {
- LoggingContext.statusCode(StatusCode.ERROR);
- LoggingContext.responseCode(LoggingContext.BUSINESS_PROCESS_ERROR);
- logger.error("No value passed with -timeWindowMinutes option.");
- AAISystemExitUtil.systemExitCloseAAIGraph(0);
- }
- String nextArg = args[i];
- try {
- timeWindowMinutes = Integer.parseInt(nextArg);
- } catch (Exception e) {
- LoggingContext.statusCode(StatusCode.ERROR);
- LoggingContext.responseCode(LoggingContext.BUSINESS_PROCESS_ERROR);
- logger.error("Bad value passed with -timeWindowMinutes option: ["
- + nextArg + "]");
- AAISystemExitUtil.systemExitCloseAAIGraph(0);
- }
-
- } else if ("-f".equals(thisArg)) {
- i++;
- if (i >= args.length) {
- LoggingContext.statusCode(StatusCode.ERROR);
- LoggingContext.responseCode(LoggingContext.BUSINESS_PROCESS_ERROR);
- logger.error(" No value passed with -f option. ");
- AAISystemExitUtil.systemExitCloseAAIGraph(0);
- }
- prevFileName = args[i];
- } else {
- LoggingContext.statusCode(StatusCode.ERROR);
- LoggingContext.responseCode(LoggingContext.BUSINESS_PROCESS_ERROR);
- logger.error(" Unrecognized argument passed to DataGrooming: ["
- + thisArg + "]. ");
- logger.error(" Valid values are: -f -autoFix -maxFix -edgesOnly -skipEdgeChecks -dupeFixOn -donFixOrphans -timeWindowMinutes -sleepMinutes -neverUseCache");
- AAISystemExitUtil.systemExitCloseAAIGraph(0);
+
+ List<String> arguments = Arrays.asList(args);
+ Iterator<String> argsIterator = arguments.iterator();
+ while (argsIterator.hasNext()){
+ String argument = argsIterator.next();
+ String nextArg;
+ switch(argument){
+ case "-edgesOnly":
+ edgesOnlyFlag = true;
+ break;
+ case "-autoFix":
+ doAutoFix = true;
+ break;
+ case "-skipHostCheck":
+ skipHostCheck = true;
+ break;
+ case "-dontFixOrphans":
+ dontFixOrphansFlag = true;
+ break;
+ case "-singleCommits":
+ singleCommits = true;
+ break;
+ case "-dupeCheckOff":
+ dupeCheckOff = true;
+ break;
+ case "-dupeFixOn":
+ dupeFixOn = true;
+ break;
+ case "-ghost2CheckOff":
+ ghost2CheckOff = true;
+ break;
+ case "-neverUseCache":
+ neverUseCache = true;
+ break;
+ case "-ghost2FixOn":
+ ghost2FixOn = true;
+ break;
+ case "-skipEdgeChecks":
+ skipEdgeCheckFlag = true;
+ break;
+ case "-maxFix":
+ handleNoPassedArgument(argsIterator, argument);
+ nextArg = argsIterator.next();
+ maxRecordsToFix = handleNumericArgument(maxRecordsToFix, nextArg, argument);
+ break;
+ case "-sleepMinutes":
+ handleNoPassedArgument(argsIterator, argument);
+ nextArg = argsIterator.next();
+ sleepMinutes = handleNumericArgument(sleepMinutes, nextArg, argument);
+ break;
+ case "-timeWindowMinutes":
+ handleNoPassedArgument(argsIterator, argument);
+ nextArg = argsIterator.next();
+ timeWindowMinutes = handleNumericArgument(timeWindowMinutes, nextArg, argument);
+ break;
+ case "-f":
+ handleNoPassedArgument(argsIterator, argument);
+ prevFileName = argsIterator.next();
+ break;
+ default:
+ handleUnrecognizedArguments(argument);
}
}
}
@@ -349,6 +317,38 @@ public class DataGrooming {
}// End of main()
+ private static void handleUnrecognizedArguments(String argument) {
+ LoggingContext.statusCode(StatusCode.ERROR);
+ LoggingContext.responseCode(LoggingContext.BUSINESS_PROCESS_ERROR);
+ logger.error(" Unrecognized argument passed to DataGrooming: ["
+ + argument + "]. ");
+ logger.error(
+ " Valid values are: -f -autoFix -maxFix -edgesOnly -skipEdgeChecks -dupeFixOn -donFixOrphans -timeWindowMinutes -sleepMinutes -neverUseCache");
+ AAISystemExitUtil.systemExitCloseAAIGraph(0);
+ }
+
+ private static int handleNumericArgument(int numericArgumentValue, String nextArg, String argument) {
+ try {
+ numericArgumentValue = Integer.parseInt(nextArg);
+ } catch (Exception e) {
+ LoggingContext.statusCode(StatusCode.ERROR);
+ LoggingContext.responseCode(LoggingContext.BUSINESS_PROCESS_ERROR);
+ logger.error("Bad value passed with" + argument + "option: ["
+ + nextArg + "]");
+ AAISystemExitUtil.systemExitCloseAAIGraph(0);
+ }
+ return numericArgumentValue;
+ }
+
+ private static void handleNoPassedArgument(Iterator argsIterator, String argument) {
+ if (!argsIterator.hasNext()) {
+ LoggingContext.statusCode(StatusCode.ERROR);
+ LoggingContext.responseCode(LoggingContext.BUSINESS_PROCESS_ERROR);
+ logger.error("No value passed with" + argument + "option.");
+ AAISystemExitUtil.systemExitCloseAAIGraph(0);
+ }
+ }
+
/**
* Do the grooming.
*
@@ -449,7 +449,7 @@ public class DataGrooming {
}
if (graph == null) {
String emsg = "null graph object in DataGrooming\n";
- throw new AAIException("AAI_6101", emsg);
+ throw new AAIException(AAI_EXCEPTION_NUMBER, emsg);
}
logger.debug(" Got the graph object. ");
@@ -457,18 +457,18 @@ public class DataGrooming {
g = graph.newTransaction();
if (g == null) {
String emsg = "null graphTransaction object in DataGrooming\n";
- throw new AAIException("AAI_6101", emsg);
+ throw new AAIException(AAI_EXCEPTION_NUMBER, emsg);
}
GraphTraversalSource source1 = g.traversal();
ArrayList<String> errArr = new ArrayList<>();
int totalNodeCount = 0;
- HashMap<String, String> misMatchedHash = new HashMap<String, String>();
- HashMap<String, Vertex> orphanNodeHash = new HashMap<String, Vertex>();
- HashMap<String, Vertex> missingDepNodeHash = new HashMap<String, Vertex>();
- HashMap<String, Edge> oneArmedEdgeHash = new HashMap<String, Edge>();
- HashMap<String, String> emptyVertexHash = new HashMap<String, String>();
- HashMap<String, Vertex> ghostNodeHash = new HashMap<String, Vertex>();
+ HashMap<String, String> misMatchedHash = new HashMap<>();
+ HashMap<String, Vertex> orphanNodeHash = new HashMap<>();
+ HashMap<String, Vertex> missingDepNodeHash = new HashMap<>();
+ HashMap<String, Edge> oneArmedEdgeHash = new HashMap<>();
+ HashMap<String, String> emptyVertexHash = new HashMap<>();
+ HashMap<String, Vertex> ghostNodeHash = new HashMap<>();
ArrayList<String> dupeGroups = new ArrayList<>();
Loader loader = LoaderFactory.createLoaderForVersion(ModelType.MOXY, AAIProperties.LATEST);
@@ -494,7 +494,7 @@ public class DataGrooming {
// Determine what the key fields are for this nodeType - use an arrayList so they
// can be gotten out in a consistent order.
Set <String> keyPropsSet = entry.getValue().getKeys();
- ArrayList <String> keyProps = new ArrayList <String> ();
+ ArrayList <String> keyProps = new ArrayList<>();
keyProps.addAll(keyPropsSet);
// Get the types of nodes that this nodetype depends on for uniqueness (if any)
@@ -772,14 +772,14 @@ public class DataGrooming {
graph2 = JanusGraphFactory.open(new AAIGraphConfig.Builder(AAIConstants.REALTIME_DB_CONFIG).forService(DataGrooming.class.getSimpleName()).withGraphType("realtime2").buildConfiguration());
if (graph2 == null) {
String emsg = "null graph2 object in DataGrooming\n";
- throw new AAIException("AAI_6101", emsg);
+ throw new AAIException(AAI_EXCEPTION_NUMBER, emsg);
} else {
logger.debug("Got the graph2 object... \n");
}
g2 = graph2.newTransaction();
if (g2 == null) {
String emsg = "null graphTransaction2 object in DataGrooming\n";
- throw new AAIException("AAI_6101", emsg);
+ throw new AAIException(AAI_EXCEPTION_NUMBER, emsg);
}
ArrayList<Vertex> vertList = new ArrayList<>();
diff --git a/aai-schema/src/main/resources/aai_schema/aai_schema_v14.xsd b/aai-schema/src/main/resources/aai_schema/aai_schema_v14.xsd
index ba6c2033..3cae1e14 100644
--- a/aai-schema/src/main/resources/aai_schema/aai_schema_v14.xsd
+++ b/aai-schema/src/main/resources/aai_schema/aai_schema_v14.xsd
@@ -2224,13 +2224,6 @@ xmlns:jaxb="http://java.sun.com/xml/ns/jaxb"
</xs:appinfo>
</xs:annotation>
</xs:element>
- <xs:element name="cloud-epa-caps" type="xs:string" minOccurs="0">
- <xs:annotation>
- <xs:appinfo>
- <annox:annotate target="field">@org.onap.aai.annotations.Metadata(description="MultiVIM will discover and expose EPA capabilities.")</annox:annotate>
- </xs:appinfo>
- </xs:annotation>
- </xs:element>
<xs:element name="resource-version" type="xs:string" minOccurs="0">
<xs:annotation>
<xs:appinfo>
diff --git a/aai-schema/src/main/resources/oxm/aai_oxm_v14.xml b/aai-schema/src/main/resources/oxm/aai_oxm_v14.xml
index 920b2535..933be744 100644
--- a/aai-schema/src/main/resources/oxm/aai_oxm_v14.xml
+++ b/aai-schema/src/main/resources/oxm/aai_oxm_v14.xml
@@ -645,11 +645,6 @@
<xml-property name="description" value="ESR inputs extra information about the VIM or Cloud which will be decoded by MultiVIM." />
</xml-properties>
</xml-element>
- <xml-element java-attribute="cloudEpaCaps" name="cloud-epa-caps" type="java.lang.String">
- <xml-properties>
- <xml-property name="description" value="MultiVIM will discover and expose EPA capabilities." />
- </xml-properties>
- </xml-element>
<xml-element java-attribute="resourceVersion" name="resource-version" type="java.lang.String">
<xml-properties>
<xml-property name="description" value="Used for optimistic concurrency. Must be empty on create, valid on update and delete." />