diff options
Diffstat (limited to 'dcaedt_tools/src/main/java/tools')
-rw-r--r-- | dcaedt_tools/src/main/java/tools/DeployTemplate.java | 10 | ||||
-rw-r--r-- | dcaedt_tools/src/main/java/tools/EntitiesRetriever.java | 33 | ||||
-rw-r--r-- | dcaedt_tools/src/main/java/tools/ItemAndAlias.java | 8 | ||||
-rw-r--r-- | dcaedt_tools/src/main/java/tools/Main.java | 15 | ||||
-rw-r--r-- | dcaedt_tools/src/main/java/tools/NodeData.java | 7 | ||||
-rw-r--r-- | dcaedt_tools/src/main/java/tools/TemplateContainer.java | 50 |
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) { |