summaryrefslogtreecommitdiffstats
path: root/dcaedt_tools/src/main/java/tools
diff options
context:
space:
mode:
Diffstat (limited to 'dcaedt_tools/src/main/java/tools')
-rw-r--r--dcaedt_tools/src/main/java/tools/DeployTemplate.java10
-rw-r--r--dcaedt_tools/src/main/java/tools/EntitiesRetriever.java33
-rw-r--r--dcaedt_tools/src/main/java/tools/ItemAndAlias.java8
-rw-r--r--dcaedt_tools/src/main/java/tools/Main.java15
-rw-r--r--dcaedt_tools/src/main/java/tools/NodeData.java7
-rw-r--r--dcaedt_tools/src/main/java/tools/TemplateContainer.java50
6 files changed, 58 insertions, 65 deletions
diff --git a/dcaedt_tools/src/main/java/tools/DeployTemplate.java b/dcaedt_tools/src/main/java/tools/DeployTemplate.java
index d319542..556316b 100644
--- a/dcaedt_tools/src/main/java/tools/DeployTemplate.java
+++ b/dcaedt_tools/src/main/java/tools/DeployTemplate.java
@@ -29,7 +29,7 @@ public class DeployTemplate {
}
public void deploy(Map<TemplateInfo, JsonObject> templateInfoToJsonObjectMap) {
- ArrayList<ResourceDetailed> vfcmtList = new ArrayList();
+ ArrayList<ResourceDetailed> vfcmtList = new ArrayList<>();
List<ResourceDetailed> regularVfcmtList = dcaeRestClient.getAllVfcmts();
if (regularVfcmtList != null) {
vfcmtList.addAll(regularVfcmtList);
@@ -55,7 +55,7 @@ public class DeployTemplate {
private void verify(Map<TemplateInfo, JsonObject> templateInfoToJsonObjectMap) {
AtomicInteger foundCount = new AtomicInteger();
debugLogger.log("Starting verify deployment");
- ArrayList<ResourceDetailed> vfcmtList = new ArrayList();
+ ArrayList<ResourceDetailed> vfcmtList = new ArrayList<>();
List<ResourceDetailed> regularVfcmtList = dcaeRestClient.getAllVfcmts();
if (regularVfcmtList != null) {
vfcmtList.addAll(regularVfcmtList);
@@ -91,10 +91,11 @@ public class DeployTemplate {
saveAndCertify(jsonObject, vfcmt);
- } catch (HttpServerErrorException e) {
+ } catch (Exception e) {
String msg = FAILED_UPDATE_VFCMT + templateInfo.getName() + ", With general message: " + e.getMessage();
report.addErrorMessage(msg);
errLogger.log(msg + " " + e);
+ report.setStatusCode(2);
}
}
@@ -120,10 +121,11 @@ public class DeployTemplate {
} else {
report.addNotUpdatedMessage("vfcmt: " + vfcmt.getName() + " found, but didn't update.");
}
- } catch (HttpServerErrorException e) {
+ } catch (Exception e) {
String msg = FAILED_UPDATE_VFCMT + vfcmt.getName() + ", With general message: " + e.getMessage();
report.addErrorMessage(msg);
errLogger.log( msg + " " + e);
+ report.setStatusCode(2);
}
}
diff --git a/dcaedt_tools/src/main/java/tools/EntitiesRetriever.java b/dcaedt_tools/src/main/java/tools/EntitiesRetriever.java
deleted file mode 100644
index 0c31ddf..0000000
--- a/dcaedt_tools/src/main/java/tools/EntitiesRetriever.java
+++ /dev/null
@@ -1,33 +0,0 @@
-package tools;
-
-import json.response.ElementsResponse.Element;
-import json.response.ItemsResponse.Item;
-import utilities.IDcaeRestClient;
-
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-
-public class EntitiesRetriever {
- private final IDcaeRestClient dcaeRestClient;
-
- EntitiesRetriever(IDcaeRestClient dcaeRestClient) {
-
- this.dcaeRestClient = dcaeRestClient;
- }
-
- public Map<String, List<Item>> getElementsByFolder() {
- List<Element> elementList = dcaeRestClient.getElements();
- Map<String, List<Item>> elementsByFolderNames = new HashMap<>();
-
- for (Element element : elementList) {
- List<Item> items = dcaeRestClient.getItem(element.getName());
- if (items == null) {
- continue;
- }
- elementsByFolderNames.put(element.getName(), items);
- }
- return elementsByFolderNames;
- }
-}
diff --git a/dcaedt_tools/src/main/java/tools/ItemAndAlias.java b/dcaedt_tools/src/main/java/tools/ItemAndAlias.java
index e282a58..dae65ef 100644
--- a/dcaedt_tools/src/main/java/tools/ItemAndAlias.java
+++ b/dcaedt_tools/src/main/java/tools/ItemAndAlias.java
@@ -1,16 +1,16 @@
package tools;
-import json.response.ItemsResponse.Item;
+import org.onap.sdc.dcae.composition.restmodels.sdc.Resource;
public class ItemAndAlias {
- private final Item item;
+ private final Resource item;
private final String alias;
- public ItemAndAlias(Item item, String alias) {
+ public ItemAndAlias(Resource item, String alias) {
this.item = item;
this.alias = alias;
}
- public Item getItem() {
+ public Resource getItem() {
return item;
}
diff --git a/dcaedt_tools/src/main/java/tools/Main.java b/dcaedt_tools/src/main/java/tools/Main.java
index bf02c44..142b6bd 100644
--- a/dcaedt_tools/src/main/java/tools/Main.java
+++ b/dcaedt_tools/src/main/java/tools/Main.java
@@ -4,10 +4,11 @@ import com.fasterxml.jackson.databind.ObjectMapper;
import com.google.gson.JsonObject;
import json.Environment;
-import json.response.ItemsResponse.Item;
+
import json.templateInfo.DeployTemplateConfig;
import json.templateInfo.TemplateInfo;
+import org.onap.sdc.dcae.composition.restmodels.sdc.Resource;
import utilities.IDcaeRestClient;
import utilities.IReport;
import utilities.Report;
@@ -35,7 +36,7 @@ public class Main {
debugLogger.log("Starting VFCMT template deployment");
if (args.length != 2) {
errLogger.log("Got " + args.length + ", but expecting exactly 2 arguments ONLY!");
- return;
+ System.exit(2);
}
debugLogger.log("Arguments:");
Arrays.stream(args).forEach(arg -> debugLogger.log(arg));
@@ -50,8 +51,7 @@ public class Main {
IDcaeRestClient dcaeRestClient = new DcaeRestClient(environment.getCredential());
dcaeRestClient.init(environment);
- EntitiesRetriever entitiesRetriever = new EntitiesRetriever(dcaeRestClient);
- Map<String, List<Item>> elementsByFolderNames = entitiesRetriever.getElementsByFolder();
+ Map<String, List<Resource>> elementsByFolderNames = dcaeRestClient.getDcaeCatalog();
TemplateContainer templateContainer = new TemplateContainer(report, dcaeRestClient, deployTemplateConfig.getTemplateInfo(), elementsByFolderNames);
Map<TemplateInfo, JsonObject> templateInfoToJsonObjectMap = templateContainer.getCdumps();
@@ -59,15 +59,20 @@ public class Main {
DeployTemplate deployTemplate = new DeployTemplate(report, dcaeRestClient);
deployTemplate.deploy(templateInfoToJsonObjectMap);
- debugLogger.log( "VFCMT template deployment completed successfully");
+ debugLogger.log( "VFCMT template deployment completed");
+
} catch (RuntimeException e) {
errLogger.log("ERROR - Template deployment failed with error " + e, e);
+ report.setStatusCode(2);
} catch (ConnectException e) {
errLogger.log( "ERROR - Failed connection to server, are you on AT&T network? {}" + e, e);
+ report.setStatusCode(2);
} catch (IOException e) {
errLogger.log( "ERROR - Fatal Error! " + e, e);
+ report.setStatusCode(2);
} finally {
debugLogger.log(report.toString());
+ report.reportAndExit();
}
}
diff --git a/dcaedt_tools/src/main/java/tools/NodeData.java b/dcaedt_tools/src/main/java/tools/NodeData.java
index e9043de..a2df502 100644
--- a/dcaedt_tools/src/main/java/tools/NodeData.java
+++ b/dcaedt_tools/src/main/java/tools/NodeData.java
@@ -2,6 +2,7 @@ package tools;
import com.google.gson.JsonArray;
import com.google.gson.JsonObject;
+import org.apache.commons.lang3.StringUtils;
public class NodeData {
private final JsonArray capabilities;
@@ -41,7 +42,11 @@ public class NodeData {
}
public String getNameWithAlias() {
- return aliasBelong + "." + nodeName;
+ if (StringUtils.isBlank(aliasBelong)) {
+ return nodeName;
+ } else {
+ return aliasBelong + "." + nodeName;
+ }
}
public String getAliasBelong() {
diff --git a/dcaedt_tools/src/main/java/tools/TemplateContainer.java b/dcaedt_tools/src/main/java/tools/TemplateContainer.java
index a5bca1f..b8b7b5a 100644
--- a/dcaedt_tools/src/main/java/tools/TemplateContainer.java
+++ b/dcaedt_tools/src/main/java/tools/TemplateContainer.java
@@ -4,12 +4,12 @@ import com.google.gson.JsonArray;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;
-import json.response.ItemsResponse.Item;
import json.templateInfo.Composition;
import json.templateInfo.NodeToDelete;
import json.templateInfo.Relation;
import json.templateInfo.TemplateInfo;
import org.apache.commons.lang3.StringUtils;
+import org.onap.sdc.dcae.composition.restmodels.sdc.Resource;
import utilities.IDcaeRestClient;
import utilities.IReport;
@@ -20,16 +20,16 @@ import java.util.concurrent.atomic.AtomicReference;
public class TemplateContainer {
private static final String NODES = "nodes";
private static final String RELATIONSHIP = "relationship";
- public static final String ASSIGNMENT = "assignment";
+ private static final String ASSIGNMENT = "assignment";
private static long nidCounter = 0;
private final IReport report;
private final IDcaeRestClient dcaeRestClient;
private final List<TemplateInfo> templateInfos;
- private final Map<String, List<Item>> elementsByFolderNames;
+ private final Map<String, List<Resource>> elementsByFolderNames;
private LoggerDebug debugLogger = LoggerDebug.getInstance();
- public TemplateContainer(IReport report, IDcaeRestClient dcaeRestClient, List<TemplateInfo> templateInfos, Map<String, List<Item>> elementsByFolderNames) {
+ public TemplateContainer(IReport report, IDcaeRestClient dcaeRestClient, List<TemplateInfo> templateInfos, Map<String, List<Resource>> elementsByFolderNames) {
this.report = report;
this.dcaeRestClient = dcaeRestClient;
this.templateInfos = templateInfos;
@@ -69,6 +69,7 @@ public class TemplateContainer {
List<ItemAndAlias> items = findTemplate(templateInfo);
if (items == null || items.isEmpty()) {
report.addErrorMessage("vfcmt: " + templateInfo.getName() + ". DCAE Component not found");
+ report.setStatusCode(1);
continue;
}
templateInfoToJsonObjectMap.put(templateInfo, getCdumpJsonObject(items, templateInfo));
@@ -81,20 +82,21 @@ public class TemplateContainer {
Map<ItemAndAlias, Map<String, NodeData>> itemMapHashMap = new HashMap<>();
JsonArray relationsJsonArray = new JsonArray();
for (ItemAndAlias itemAndAlias : ItemsAndAlias) {
- Item item = itemAndAlias.getItem();
+ Resource item = itemAndAlias.getItem();
debugLogger.log("Creating cdump for item: " + item.getName());
JsonArray jsonArrayNode = cdumpJsonObject.getAsJsonArray(NODES);
JsonParser jsonParser = new JsonParser();
- JsonArray allNodeTemplates = jsonParser.parse(dcaeRestClient.getItemModel(item.getItemId())).getAsJsonObject().get("data").getAsJsonObject().get("model").getAsJsonObject().get(NODES).getAsJsonArray();
+ JsonObject modelResponse = jsonParser.parse(dcaeRestClient.getItemModel(item.getUuid())).getAsJsonObject().get("data").getAsJsonObject().get("model").getAsJsonObject();
+ JsonArray allNodeTemplates = modelResponse.get(NODES).getAsJsonArray();
Map<String, NodeData> stringRelationsDataMap = new HashMap<>();
for (JsonElement nodeElement : allNodeTemplates) {
if (checkIfNeedToSkip(templateInfo.getNodesToDelete(), nodeElement, item.getName())) {
continue;
}
JsonObject responseModelJson = nodeElement.getAsJsonObject();
- JsonObject responseTypeInfoJson = jsonParser.parse(dcaeRestClient.getItemType(item.getItemId(), responseModelJson.get("type").getAsString())).getAsJsonObject().get("data").getAsJsonObject().get("type").getAsJsonObject();
- String nodeName = itemAndAlias.getAlias() + "." + responseModelJson.get("name").getAsString();
- JsonObject jsonObjectElement = newNodeTemplate(nodeName, item.getModels().get(0).getItemId());
+ JsonObject responseTypeInfoJson = jsonParser.parse(dcaeRestClient.getItemType(item.getUuid(), responseModelJson.get("type").getAsString())).getAsJsonObject().get("data").getAsJsonObject().get("type").getAsJsonObject();
+ String nodeName = itemAndAlias.getAlias() != "" ? itemAndAlias.getAlias() + "." + responseModelJson.get("name").getAsString() : responseModelJson.get("name").getAsString();
+ JsonObject jsonObjectElement = newNodeTemplate(nodeName, modelResponse.get("itemId").getAsString());
jsonObjectElement.addProperty("id", responseTypeInfoJson.get("itemId").getAsString().split("/")[0]);
String nid = "n." + new Date().getTime() + "." + nidCounter++;
jsonObjectElement.addProperty("nid", nid);
@@ -228,7 +230,7 @@ public class TemplateContainer {
metaData.addProperty("n1", nidListByRequirement.get(requirement));
metaData.addProperty("p1", requirement.get("name").toString().replaceAll("\"", ""));
relationElement.addProperty("n2", toNId);
- relationElement.addProperty("name2", fromNode.getAliasBelong() + "." + toNodeName);
+ relationElement.addProperty("name2", StringUtils.isBlank(fromNode.getAliasBelong()) ? toNodeName : fromNode.getAliasBelong() + "." + toNodeName);
metaData.addProperty("n2", toNId);
String capabilityFullName = requirement.get("capability").getAsJsonObject().get("name").toString();
String capabilityShortName = StringUtils.substringAfterLast(capabilityFullName, ".");
@@ -270,10 +272,18 @@ public class TemplateContainer {
JsonObject relationElement = new JsonObject();
String fromComponent = relation.getFromComponent();
String toComponent = relation.getToComponent();
- String fromComponentAlias = StringUtils.substringBefore(fromComponent, ".");
- String fromComponentNodeName = StringUtils.substringAfterLast(fromComponent, ".");
- String toComponentAlias = StringUtils.substringBefore(toComponent, ".");
- String toComponentNodeName = StringUtils.substringAfterLast(toComponent, ".");
+ String fromComponentAlias = "";
+ String fromComponentNodeName = fromComponent;
+ if ((fromComponent.contains("."))) {
+ fromComponentAlias = StringUtils.substringBefore(fromComponent, ".");
+ fromComponentNodeName = StringUtils.substringAfterLast(fromComponent, ".");
+ }
+ String toComponentAlias = "";
+ String toComponentNodeName = toComponent;
+ if (toComponent.contains(".")) {
+ toComponentAlias = StringUtils.substringBefore(toComponent, ".");
+ toComponentNodeName = StringUtils.substringAfterLast(toComponent, ".");
+ }
boolean findTo = false;
boolean findFrom = false;
for (ItemAndAlias item : nodeDataByNidByItem.keySet()) {
@@ -281,12 +291,14 @@ public class TemplateContainer {
for (String nid : nodeDataByNid.keySet()) {
NodeData currentNodeData = nodeDataByNid.get(nid);
+ String finalFromComponentAlias = fromComponentAlias;
+ String finalFromComponentNodeName = fromComponentNodeName;
Optional<Composition> isFoundComposition = templateInfo.getComposition().stream()
- .filter(element -> fromComponentAlias.equalsIgnoreCase(element.getAlias())
+ .filter(element -> finalFromComponentAlias.equalsIgnoreCase(element.getAlias())
&& element.getAlias().equalsIgnoreCase(currentNodeData.getAliasBelong())
&& element.getAlias().equalsIgnoreCase(item.getAlias())
&& element.getType().equalsIgnoreCase(item.getItem().getName())
- && fromComponentNodeName.equalsIgnoreCase(currentNodeData.getName())).findAny();
+ && finalFromComponentNodeName.equalsIgnoreCase(currentNodeData.getName())).findAny();
if (isFoundComposition.isPresent()) {
boolean isFound = findNode(relation.getFromRequirement(), currentNodeData.getRequirements());
if (isFound) {
@@ -313,12 +325,14 @@ public class TemplateContainer {
}
+ String finalToComponentNodeName = toComponentNodeName;
+ String finalToComponentAlias = toComponentAlias;
isFoundComposition = templateInfo.getComposition().stream()
- .filter(element -> toComponentAlias.equalsIgnoreCase(element.getAlias())
+ .filter(element -> finalToComponentAlias.equalsIgnoreCase(element.getAlias())
&& element.getAlias().equalsIgnoreCase(currentNodeData.getAliasBelong())
&& element.getAlias().equalsIgnoreCase(item.getAlias())
&& element.getType().equalsIgnoreCase(item.getItem().getName())
- && toComponentNodeName.equalsIgnoreCase(currentNodeData.getName())).findAny();
+ && finalToComponentNodeName.equalsIgnoreCase(currentNodeData.getName())).findAny();
if (isFoundComposition.isPresent()) {
boolean isFound = findNode(relation.getToCapability(), currentNodeData.getCapabilities());
if (isFound) {