X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Forg%2Fonap%2Fclamp%2Fclds%2Ftosca%2Fupdate%2Fexecution%2Fcds%2FToscaMetadataCdsProcess.java;h=b1c889031485df28a5fd211da2a758051b33c7ba;hb=e65d457a2dfd6ebb5e1f5a28b74f05c16c285dc3;hp=cf9e010b3ec256b7d778f83affa75a8d4ae40fb4;hpb=afac3121bfacc4d81903b1d8492613b0b77d3298;p=clamp.git diff --git a/src/main/java/org/onap/clamp/clds/tosca/update/execution/cds/ToscaMetadataCdsProcess.java b/src/main/java/org/onap/clamp/clds/tosca/update/execution/cds/ToscaMetadataCdsProcess.java index cf9e010b..b1c88903 100644 --- a/src/main/java/org/onap/clamp/clds/tosca/update/execution/cds/ToscaMetadataCdsProcess.java +++ b/src/main/java/org/onap/clamp/clds/tosca/update/execution/cds/ToscaMetadataCdsProcess.java @@ -43,31 +43,34 @@ public class ToscaMetadataCdsProcess extends ToscaMetadataProcess { @Override public void executeProcess(String parameters, JsonObject childObject, Service serviceModel) { switch (parameters) { + case "actor": + JsonArray jsonArray = new JsonArray(); + jsonArray.add("CDS"); + addToJsonArray(childObject, "enum", jsonArray); + break; case "payload": - childObject.add("anyOf", generatePayload(serviceModel)); + generatePayload(childObject, serviceModel); break; case "operation": - childObject.add("enum", generateOperation(serviceModel)); + generateOperation(childObject, serviceModel); break; } } - private static JsonArray generatePayload(Service serviceModel) { - JsonArray schemaAnyOf = new JsonArray(); - schemaAnyOf.addAll(generatePayloadPerResource("VF", serviceModel)); - schemaAnyOf.addAll(generatePayloadPerResource("PNF", serviceModel)); - return schemaAnyOf; + private static void generatePayload(JsonObject childObject, Service serviceModel) { + generatePayloadPerResource(childObject, "VF", serviceModel); + generatePayloadPerResource(childObject, "PNF", serviceModel); } - private static JsonArray generateOperation(Service serviceModel) { - JsonArray schemaEnum = new JsonArray(); - schemaEnum.addAll(generateOperationPerResource("VF", serviceModel)); - schemaEnum.addAll(generateOperationPerResource("PNF", serviceModel)); - return schemaEnum; + private static void generateOperation(JsonObject childObject, Service serviceModel) { + generateOperationPerResource(childObject, "VF", serviceModel); + generateOperationPerResource(childObject, "PNF", serviceModel); } - private static JsonArray generateOperationPerResource(String resourceName, Service serviceModel) { + private static void generateOperationPerResource(JsonObject childObject, String resourceName, + Service serviceModel) { JsonArray schemaEnum = new JsonArray(); + JsonArray schemaTitle = new JsonArray(); for (Map.Entry entry : serviceModel.getResourceDetails().getAsJsonObject(resourceName) .entrySet()) { JsonObject controllerProperties = entry.getValue().getAsJsonObject() @@ -75,14 +78,23 @@ public class ToscaMetadataCdsProcess extends ToscaMetadataProcess { if (controllerProperties != null) { for (String workflowsEntry : controllerProperties.getAsJsonObject("workflows").keySet()) { schemaEnum.add(workflowsEntry); + schemaTitle.add(workflowsEntry + " (CDS operation)"); } } } - return schemaEnum; + addToJsonArray(childObject, "enum", schemaEnum); + if (childObject.get("options") == null) { + JsonObject optionsSection = new JsonObject(); + childObject.add("options", optionsSection); + } + addToJsonArray(childObject.getAsJsonObject("options"), "enum_titles", schemaTitle); + } - private static JsonArray generatePayloadPerResource(String resourceName, Service serviceModel) { + private static void generatePayloadPerResource(JsonObject childObject, String resourceName, + Service serviceModel) { JsonArray schemaAnyOf = new JsonArray(); + for (Map.Entry entry : serviceModel.getResourceDetails().getAsJsonObject(resourceName) .entrySet()) { JsonObject controllerProperties = entry.getValue().getAsJsonObject() @@ -98,7 +110,7 @@ public class ToscaMetadataCdsProcess extends ToscaMetadataProcess { } } } - return schemaAnyOf; + addToJsonArray(childObject, "enum", schemaAnyOf); } private static JsonObject createPayloadProperty(JsonObject workFlow, JsonObject controllerProperties) { @@ -110,4 +122,13 @@ public class ToscaMetadataCdsProcess extends ToscaMetadataProcess { payloadResult.add("data", workFlow.getAsJsonObject("inputs")); return payloadResult; } + + private static void addToJsonArray(JsonObject childObject, String section, JsonArray value) { + if (childObject.getAsJsonArray(section) != null) { + childObject.getAsJsonArray(section).addAll(value); + } + else { + childObject.add(section, value); + } + } }