summaryrefslogtreecommitdiffstats
path: root/src/main/java/org/onap/cps/ncmp/dmi/service/YangResourceExtractor.java
diff options
context:
space:
mode:
authoraditya puthuparambil <aditya.puthuparambil@bell.ca>2021-12-03 13:16:44 +0000
committerGerrit Code Review <gerrit@onap.org>2021-12-03 13:16:44 +0000
commit13b7907c90d16d381183c29a62dec3b6456671bf (patch)
tree7839836cf6c8b56551f1b9ef6e5d69e3cc7f83c3 /src/main/java/org/onap/cps/ncmp/dmi/service/YangResourceExtractor.java
parent094efa420ed7a875cf5f0212ae7b8ac7285c988f (diff)
parentc60d8590ffe123dce9f6b455fa615573ee75b767 (diff)
Merge "Fix conversion to string for result from YangResource request on SDN-C"
Diffstat (limited to 'src/main/java/org/onap/cps/ncmp/dmi/service/YangResourceExtractor.java')
-rw-r--r--src/main/java/org/onap/cps/ncmp/dmi/service/YangResourceExtractor.java55
1 files changed, 55 insertions, 0 deletions
diff --git a/src/main/java/org/onap/cps/ncmp/dmi/service/YangResourceExtractor.java b/src/main/java/org/onap/cps/ncmp/dmi/service/YangResourceExtractor.java
new file mode 100644
index 00000000..d6ff3d2b
--- /dev/null
+++ b/src/main/java/org/onap/cps/ncmp/dmi/service/YangResourceExtractor.java
@@ -0,0 +1,55 @@
+/*
+ * ============LICENSE_START=======================================================
+ * Copyright (C) 2021 Nordix Foundation
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.cps.ncmp.dmi.service;
+
+import com.google.gson.Gson;
+import com.google.gson.JsonObject;
+import lombok.extern.slf4j.Slf4j;
+import org.onap.cps.ncmp.dmi.exception.ModuleResourceNotFoundException;
+import org.onap.cps.ncmp.dmi.model.YangResource;
+import org.onap.cps.ncmp.dmi.service.model.ModuleReference;
+import org.springframework.http.ResponseEntity;
+
+@Slf4j
+public class YangResourceExtractor {
+ static YangResource toYangResource(final ModuleReference moduleReference,
+ final ResponseEntity<String> responseEntity) {
+ final YangResource yangResource = new YangResource();
+ yangResource.setModuleName(moduleReference.getName());
+ yangResource.setRevision(moduleReference.getRevision());
+ yangResource.setYangSource(extractYangSourceFromBody(responseEntity));
+ return yangResource;
+ }
+
+ private static String extractYangSourceFromBody(final ResponseEntity<String> responseEntity) {
+ final JsonObject responseBodyAsJsonObject = new Gson().fromJson(responseEntity.getBody(), JsonObject.class);
+ final JsonObject monitoringOutputAsJsonObject =
+ responseBodyAsJsonObject.getAsJsonObject("ietf-netconf-monitoring:output");
+ if (monitoringOutputAsJsonObject == null
+ || monitoringOutputAsJsonObject.getAsJsonPrimitive("data") == null) {
+ log.error("Error occurred when trying to parse the response body from sdnc {}", responseEntity.getBody());
+ throw new ModuleResourceNotFoundException(responseEntity.getBody(),
+ "Error occurred when trying to parse the response body from sdnc.");
+ }
+ return monitoringOutputAsJsonObject.getAsJsonPrimitive("data").getAsString();
+ }
+
+}