+ /**\r
+ * Inserts a new DCAEServiceType or updates an existing instance. If the\r
+ * typeName is same second time(already exists) then the\r
+ * DCAEServiceTypeRequest is updated\r
+ * \r
+ * @param blueprintTemplate\r
+ * blueprint content\r
+ * @param owner\r
+ * owner of the data\r
+ * @param typeName\r
+ * The type/artifact Name\r
+ * @param typeVersion\r
+ * type version\r
+ * @param asdcServiceId\r
+ * The service UUID\r
+ * @param asdcResourceId\r
+ * The vf UUID\r
+ * @return The DCAE inventory type id\r
+ */\r
+ public String createupdateDCAEServiceType(String blueprintTemplate, String owner, String typeName, int typeVersion,\r
+ String asdcServiceId, String asdcResourceId) {\r
+ Date startTime = new Date();\r
+ LoggingUtils.setTargetContext("DCAE", "createDCAEServiceType");\r
+ String typeId = null;\r
+ try {\r
+ ObjectNode dcaeServiceTypeRequest = JacksonUtils.getObjectMapperInstance().createObjectNode();\r
+ dcaeServiceTypeRequest.put("blueprintTemplate", blueprintTemplate);\r
+ dcaeServiceTypeRequest.put("owner", owner);\r
+ dcaeServiceTypeRequest.put("typeName", typeName);\r
+ dcaeServiceTypeRequest.put("typeVersion", typeVersion);\r
+ dcaeServiceTypeRequest.put("asdcServiceId", asdcServiceId);\r
+ dcaeServiceTypeRequest.put("asdcResourceId", asdcResourceId);\r
+ String apiBodyString = dcaeServiceTypeRequest.toString();\r
+ logger.info("Dcae api Body String - " + apiBodyString);\r
+ String url = refProp.getStringValue(DCAE_INVENTORY_URL) + "/dcae-service-types";\r
+ String responseStr = dcaeHttpConnectionManager.doDcaeHttpQuery(url, "POST", apiBodyString,\r
+ "application/json");\r
+ // If the DCAEServiceTypeRequest is created successfully it will\r
+ // return a json object responce containing a node for newly created\r
+ // "typeId"\r
+ // The newly generated DCAEServiceTypeRequest can then be accessed\r
+ // via URL: https://<DCAE_INVENTORY_URL>/dcae-service-types/<typeId>\r
+ JSONParser parser = new JSONParser();\r
+ Object obj0 = parser.parse(responseStr);\r
+ JSONObject jsonObj = (JSONObject) obj0;\r
+ typeId = (String) jsonObj.get("typeId"); // need to save this\r
+ // as\r
+ // service_type_id\r
+ // in model table\r
+ } catch (IOException | ParseException e) {\r
+ logger.error("Exception occurred during createupdateDCAEServiceType Operation with DCAE", e);\r
+ throw new BadRequestException("Exception occurred during createupdateDCAEServiceType Operation with DCAE",\r
+ e);\r
+ } finally {\r
+ if (typeId != null) {\r
+ LoggingUtils.setResponseContext("0", "Create update DCAE ServiceType success",\r
+ this.getClass().getName());\r
+ } else {\r
+ LoggingUtils.setResponseContext("900", "Create update DCAE ServiceType failed",\r
+ this.getClass().getName());\r
+ LoggingUtils.setErrorContext("900", "Create update DCAE ServiceType error");\r
+ }\r
+ LoggingUtils.setTimeContext(startTime, new Date());\r
+ metricsLogger.info("createupdateDCAEServiceType complete");\r