summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--docs/administration/administration.rst16
-rw-r--r--docs/configuration/configuration.rst7
-rw-r--r--docs/consumedapis/consumedapis.rst7
-rw-r--r--docs/delivery/delivery.rst9
-rw-r--r--docs/humaninterfaces/humaninterfaces.rst7
-rw-r--r--docs/index.rst9
-rw-r--r--docs/installation/installation.rst15
-rw-r--r--docs/logging/logging.rst15
-rw-r--r--docs/releasenotes/releasenotes.rst33
-rw-r--r--src/main/java/org/onap/nbi/apis/serviceorder/SoClient.java20
-rw-r--r--src/main/java/org/onap/nbi/apis/serviceorder/model/consumer/MSOPayload.java40
-rw-r--r--src/main/java/org/onap/nbi/apis/serviceorder/model/consumer/RequestInfo.java19
-rw-r--r--src/main/java/org/onap/nbi/apis/serviceorder/workflow/SOTaskProcessor.java26
-rw-r--r--src/test/java/org/onap/nbi/apis/ApiTest.java13
-rw-r--r--src/test/java/org/onap/nbi/apis/assertions/ServiceInventoryAssertions.java22
-rw-r--r--src/test/resources/mappings/aai_get_service-subscriptionWithoutList.json19
16 files changed, 245 insertions, 32 deletions
diff --git a/docs/administration/administration.rst b/docs/administration/administration.rst
new file mode 100644
index 0000000..c5353ae
--- /dev/null
+++ b/docs/administration/administration.rst
@@ -0,0 +1,16 @@
+.. This work is licensed under a Creative Commons Attribution 4.0 International License.
+.. http://creativecommons.org/licenses/by/4.0
+.. Copyright 2018 ORANGE
+
+
+Administration
+==============
+
+
+
+Processes
+---------
+
+
+Actions
+-------
diff --git a/docs/configuration/configuration.rst b/docs/configuration/configuration.rst
new file mode 100644
index 0000000..b6619ce
--- /dev/null
+++ b/docs/configuration/configuration.rst
@@ -0,0 +1,7 @@
+.. This work is licensed under a Creative Commons Attribution 4.0 International License.
+.. http://creativecommons.org/licenses/by/4.0
+.. Copyright 2018 ORANGE
+
+
+Configuration
+=============
diff --git a/docs/consumedapis/consumedapis.rst b/docs/consumedapis/consumedapis.rst
new file mode 100644
index 0000000..fd5395f
--- /dev/null
+++ b/docs/consumedapis/consumedapis.rst
@@ -0,0 +1,7 @@
+.. This work is licensed under a Creative Commons Attribution 4.0 International License.
+.. http://creativecommons.org/licenses/by/4.0
+.. Copyright 2018 ORANGE
+
+
+Consumed APIs
+=============
diff --git a/docs/delivery/delivery.rst b/docs/delivery/delivery.rst
new file mode 100644
index 0000000..7ef857a
--- /dev/null
+++ b/docs/delivery/delivery.rst
@@ -0,0 +1,9 @@
+.. This work is licensed under a Creative Commons Attribution 4.0 International License.
+.. http://creativecommons.org/licenses/by/4.0
+.. Copyright 2018 ORANGE
+
+
+Delivery
+========
+
+
diff --git a/docs/humaninterfaces/humaninterfaces.rst b/docs/humaninterfaces/humaninterfaces.rst
new file mode 100644
index 0000000..89009f1
--- /dev/null
+++ b/docs/humaninterfaces/humaninterfaces.rst
@@ -0,0 +1,7 @@
+.. This work is licensed under a Creative Commons Attribution 4.0 International License.
+.. http://creativecommons.org/licenses/by/4.0
+.. Copyright 2018 ORANGE
+
+
+Human Interfaces
+================
diff --git a/docs/index.rst b/docs/index.rst
index e39fb0d..8c111be 100644
--- a/docs/index.rst
+++ b/docs/index.rst
@@ -8,4 +8,13 @@ ONAP ExternalAPI / NBI
.. toctree::
:maxdepth: 1
+ architecture/NBI_R1_Developer_Guide.rst
offeredapis/NBI_R1_interface.rst
+ consumedapis/consumedapis.rst
+ delivery/delivery.rst
+ logging/logging.rst
+ installation/installation.rst
+ configuration/configuration.rst
+ administation/administration.rst
+ humaninterfaces/humaninterfaces.rst
+ releasenotes/releasenotes.rst
diff --git a/docs/installation/installation.rst b/docs/installation/installation.rst
new file mode 100644
index 0000000..a6ab912
--- /dev/null
+++ b/docs/installation/installation.rst
@@ -0,0 +1,15 @@
+.. This work is licensed under a Creative Commons Attribution 4.0 International License.
+.. http://creativecommons.org/licenses/by/4.0
+.. Copyright 2018 ORANGE
+
+
+Installation
+============
+
+
+Environment
+-----------
+
+
+Steps
+-----
diff --git a/docs/logging/logging.rst b/docs/logging/logging.rst
new file mode 100644
index 0000000..5f61066
--- /dev/null
+++ b/docs/logging/logging.rst
@@ -0,0 +1,15 @@
+.. This work is licensed under a Creative Commons Attribution 4.0 International License.
+.. http://creativecommons.org/licenses/by/4.0
+.. Copyright 2018 ORANGE
+
+
+Logging
+=======
+
+
+Where to Access Information
+---------------------------
+
+
+Error / Warning Messages
+------------------------
diff --git a/docs/releasenotes/releasenotes.rst b/docs/releasenotes/releasenotes.rst
new file mode 100644
index 0000000..a4ef6fb
--- /dev/null
+++ b/docs/releasenotes/releasenotes.rst
@@ -0,0 +1,33 @@
+.. This work is licensed under a Creative Commons Attribution 4.0 International License.
+.. http://creativecommons.org/licenses/by/4.0
+.. Copyright 2018 ORANGE
+
+
+Release Notes
+=============
+
+
+Version:
+--------------
+
+
+:Release Date:
+
+
+**New Features**
+
+**Bug Fixes**
+
+**Known Issues**
+
+**Security Issues**
+
+**Upgrade Notes**
+
+**Deprecation Notes**
+
+**Other**
+
+===========
+
+End of Release Notes
diff --git a/src/main/java/org/onap/nbi/apis/serviceorder/SoClient.java b/src/main/java/org/onap/nbi/apis/serviceorder/SoClient.java
index c3e41f4..5f10d63 100644
--- a/src/main/java/org/onap/nbi/apis/serviceorder/SoClient.java
+++ b/src/main/java/org/onap/nbi/apis/serviceorder/SoClient.java
@@ -18,17 +18,13 @@ package org.onap.nbi.apis.serviceorder;
import org.onap.nbi.OnapComponentsUrlPaths;
import org.onap.nbi.apis.serviceorder.model.consumer.CreateServiceInstanceResponse;
import org.onap.nbi.apis.serviceorder.model.consumer.GetRequestStatusResponse;
-import org.onap.nbi.apis.serviceorder.model.consumer.RequestDetails;
+import org.onap.nbi.apis.serviceorder.model.consumer.MSOPayload;
import org.onap.nbi.exceptions.BackendFunctionalException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
-import org.springframework.http.HttpEntity;
-import org.springframework.http.HttpHeaders;
-import org.springframework.http.HttpMethod;
-import org.springframework.http.HttpStatus;
-import org.springframework.http.ResponseEntity;
+import org.springframework.http.*;
import org.springframework.stereotype.Service;
import org.springframework.web.client.RestTemplate;
@@ -57,15 +53,15 @@ public class SoClient {
private static final Logger LOGGER = LoggerFactory.getLogger(SoClient.class);
- public ResponseEntity<CreateServiceInstanceResponse> callCreateServiceInstance(RequestDetails requestDetails) {
+ public ResponseEntity<CreateServiceInstanceResponse> callCreateServiceInstance(MSOPayload msoPayload) {
if (LOGGER.isDebugEnabled()) {
- LOGGER.debug("Calling SO CreateServiceInstance with requestDetails : " + requestDetails.toString());
+ LOGGER.debug("Calling SO CreateServiceInstance with msoPayload : " + msoPayload.toString());
}
String url = soHostname + OnapComponentsUrlPaths.MSO_CREATE_SERVICE_INSTANCE_PATH;
- HttpEntity<RequestDetails> requestDetailEntity = new HttpEntity<>(requestDetails, buildRequestHeader());
+ HttpEntity<MSOPayload> requestDetailEntity = new HttpEntity<>(msoPayload, buildRequestHeader());
try {
ResponseEntity<CreateServiceInstanceResponse> response = restTemplate.exchange(url, HttpMethod.POST,
@@ -80,16 +76,16 @@ public class SoClient {
}
}
- public ResponseEntity<CreateServiceInstanceResponse> callDeleteServiceInstance(RequestDetails requestDetails,
+ public ResponseEntity<CreateServiceInstanceResponse> callDeleteServiceInstance(MSOPayload msoPayload,
String serviceId) {
if (LOGGER.isDebugEnabled()) {
- LOGGER.debug("Calling SO DeleteServiceInstance with requestDetails : " + requestDetails.toString());
+ LOGGER.debug("Calling SO DeleteServiceInstance with msoPayload : " + msoPayload.toString());
}
String url = soHostname + OnapComponentsUrlPaths.MSO_DELETE_REQUEST_STATUS_PATH + serviceId;
- HttpEntity<RequestDetails> requestDetailEntity = new HttpEntity<>(requestDetails, buildRequestHeader());
+ HttpEntity<MSOPayload> requestDetailEntity = new HttpEntity<>(msoPayload, buildRequestHeader());
try {
ResponseEntity<CreateServiceInstanceResponse> response = restTemplate.exchange(url, HttpMethod.DELETE,
diff --git a/src/main/java/org/onap/nbi/apis/serviceorder/model/consumer/MSOPayload.java b/src/main/java/org/onap/nbi/apis/serviceorder/model/consumer/MSOPayload.java
new file mode 100644
index 0000000..76415c3
--- /dev/null
+++ b/src/main/java/org/onap/nbi/apis/serviceorder/model/consumer/MSOPayload.java
@@ -0,0 +1,40 @@
+/**
+ * Copyright (c) 2018 Orange
+ *
+ * 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.
+ */
+package org.onap.nbi.apis.serviceorder.model.consumer;
+
+public class MSOPayload {
+
+ private RequestDetails requestDetails;
+
+ public MSOPayload(RequestDetails requestDetails) {
+ this.requestDetails = requestDetails;
+ }
+
+ public RequestDetails getRequestDetails() {
+ return requestDetails;
+ }
+
+ public void setRequestDetails(RequestDetails requestDetails) {
+ this.requestDetails = requestDetails;
+ }
+
+ @Override
+ public String toString() {
+ return "MSOPayload{" +
+ "requestDetails=" + requestDetails +
+ '}';
+ }
+}
diff --git a/src/main/java/org/onap/nbi/apis/serviceorder/model/consumer/RequestInfo.java b/src/main/java/org/onap/nbi/apis/serviceorder/model/consumer/RequestInfo.java
index 6d3d5d5..a80b1ee 100644
--- a/src/main/java/org/onap/nbi/apis/serviceorder/model/consumer/RequestInfo.java
+++ b/src/main/java/org/onap/nbi/apis/serviceorder/model/consumer/RequestInfo.java
@@ -25,6 +25,8 @@ public class RequestInfo {
private boolean suppressRollback;
+ private String requestorId;
+
public String getInstanceName() {
return instanceName;
}
@@ -57,9 +59,22 @@ public class RequestInfo {
this.suppressRollback = suppressRollback;
}
+ public String getRequestorId() {
+ return requestorId;
+ }
+
+ public void setRequestorId(String requestorId) {
+ this.requestorId = requestorId;
+ }
+
@Override
public String toString() {
- return "RequestInfo{" + "instanceName='" + instanceName + '\'' + ", productFamilyId='" + productFamilyId + '\''
- + ", source='" + source + '\'' + ", suppressRollback=" + suppressRollback + '}';
+ return "RequestInfo{" +
+ "instanceName='" + instanceName + '\'' +
+ ", productFamilyId='" + productFamilyId + '\'' +
+ ", source='" + source + '\'' +
+ ", suppressRollback=" + suppressRollback +
+ ", requestorId='" + requestorId + '\'' +
+ '}';
}
}
diff --git a/src/main/java/org/onap/nbi/apis/serviceorder/workflow/SOTaskProcessor.java b/src/main/java/org/onap/nbi/apis/serviceorder/workflow/SOTaskProcessor.java
index 84a198c..94d5553 100644
--- a/src/main/java/org/onap/nbi/apis/serviceorder/workflow/SOTaskProcessor.java
+++ b/src/main/java/org/onap/nbi/apis/serviceorder/workflow/SOTaskProcessor.java
@@ -13,27 +13,12 @@
*/
package org.onap.nbi.apis.serviceorder.workflow;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Date;
-import java.util.LinkedHashMap;
-import java.util.List;
import org.onap.nbi.apis.serviceorder.SoClient;
import org.onap.nbi.apis.serviceorder.model.ServiceCharacteristic;
import org.onap.nbi.apis.serviceorder.model.ServiceOrder;
import org.onap.nbi.apis.serviceorder.model.ServiceOrderItem;
import org.onap.nbi.apis.serviceorder.model.StateType;
-import org.onap.nbi.apis.serviceorder.model.consumer.CloudConfiguration;
-import org.onap.nbi.apis.serviceorder.model.consumer.CreateServiceInstanceResponse;
-import org.onap.nbi.apis.serviceorder.model.consumer.GetRequestStatusResponse;
-import org.onap.nbi.apis.serviceorder.model.consumer.ModelInfo;
-import org.onap.nbi.apis.serviceorder.model.consumer.RequestDetails;
-import org.onap.nbi.apis.serviceorder.model.consumer.RequestInfo;
-import org.onap.nbi.apis.serviceorder.model.consumer.RequestParameters;
-import org.onap.nbi.apis.serviceorder.model.consumer.RequestState;
-import org.onap.nbi.apis.serviceorder.model.consumer.SubscriberInfo;
-import org.onap.nbi.apis.serviceorder.model.consumer.UserParams;
+import org.onap.nbi.apis.serviceorder.model.consumer.*;
import org.onap.nbi.apis.serviceorder.model.orchestrator.ExecutionTask;
import org.onap.nbi.apis.serviceorder.model.orchestrator.ServiceOrderInfo;
import org.onap.nbi.apis.serviceorder.model.orchestrator.ServiceOrderInfoJson;
@@ -49,6 +34,9 @@ import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
+import java.io.IOException;
+import java.util.*;
+
@Service
public class SOTaskProcessor {
@@ -147,14 +135,15 @@ public class SOTaskProcessor {
RequestDetails requestDetails = buildSoRequest(serviceOrderItem,
serviceOrderInfo.getServiceOrderItemInfos().get(serviceOrderItem.getId()).getCatalogResponse(),
serviceOrderInfo.getSubscriberInfo());
+ MSOPayload msoPayload = new MSOPayload(requestDetails);
ResponseEntity<CreateServiceInstanceResponse> response = null;
switch (serviceOrderItem.getAction()) {
case ADD:
- response = soClient.callCreateServiceInstance(requestDetails);
+ response = soClient.callCreateServiceInstance(msoPayload);
break;
case DELETE:
- response = soClient.callDeleteServiceInstance(requestDetails, serviceOrderItem.getService().getId());
+ response = soClient.callDeleteServiceInstance(msoPayload, serviceOrderItem.getService().getId());
break;
default:
break;
@@ -265,6 +254,7 @@ public class SOTaskProcessor {
requestInfo.setInstanceName(orderItem.getService().getName());
requestInfo.setSource("VID");
requestInfo.setSuppressRollback(false);
+ requestInfo.setRequestorId("NBI");
requestDetails.setRequestInfo(requestInfo);
RequestParameters requestParameters = new RequestParameters();
diff --git a/src/test/java/org/onap/nbi/apis/ApiTest.java b/src/test/java/org/onap/nbi/apis/ApiTest.java
index ceb29e7..937f417 100644
--- a/src/test/java/org/onap/nbi/apis/ApiTest.java
+++ b/src/test/java/org/onap/nbi/apis/ApiTest.java
@@ -180,6 +180,19 @@ public class ApiTest {
}
+ @Test
+ public void testServiceResourceGetInventoryWithoutRelationShipList() throws Exception {
+
+ String serviceName = "vFW";
+ String serviceId = "e4688e5f-61a0-4f8b-ae02-a2fbde623bcbWithoutList";
+ MultiValueMap<String, String> params = new LinkedMultiValueMap<>();
+ params.add("serviceSpecification.name", serviceName);
+ params.add("relatedParty.id", "6490");
+ ResponseEntity<Object> resource = serviceInventoryResource.getServiceInventory(serviceId, params);
+ ServiceInventoryAssertions.assertServiceInventoryGetWithoutList(resource);
+
+ }
+
@Test
public void testServiceResourceGetInventoryWithServiceSpecId() throws Exception {
diff --git a/src/test/java/org/onap/nbi/apis/assertions/ServiceInventoryAssertions.java b/src/test/java/org/onap/nbi/apis/assertions/ServiceInventoryAssertions.java
index 56a6180..f68b82f 100644
--- a/src/test/java/org/onap/nbi/apis/assertions/ServiceInventoryAssertions.java
+++ b/src/test/java/org/onap/nbi/apis/assertions/ServiceInventoryAssertions.java
@@ -54,6 +54,28 @@ public class ServiceInventoryAssertions {
}
+ public static void assertServiceInventoryGetWithoutList(ResponseEntity<Object> resource) {
+ assertThat(resource.getStatusCode()).isEqualTo(HttpStatus.OK);
+ LinkedHashMap service = (LinkedHashMap) resource.getBody();
+ assertThat(service.get("id")).isEqualTo("e4688e5f-61a0-4f8b-ae02-a2fbde623bcb");
+ assertThat(service.get("name")).isEqualTo("NewFreeRadius-service-instance-01");
+ assertThat(service.get("hasStarted")).isEqualTo("yes");
+ assertThat(service.get("type")).isEqualTo("service-instance");
+ assertThat(service.get("@type")).isEqualTo("serviceONAP");
+ LinkedHashMap relatedParty = (LinkedHashMap) service.get("relatedParty");
+ assertThat(relatedParty.get("role")).isEqualTo("ONAPcustomer");
+ assertThat(relatedParty.get("id")).isEqualTo("6490");
+ LinkedHashMap serviceSpecification = (LinkedHashMap) service.get("serviceSpecification");
+ assertThat(serviceSpecification.get("id")).isEqualTo("98d95267-5e0f-4531-abf8-f14b90031dc5");
+ assertThat(serviceSpecification.get("invariantUUID")).isEqualTo("709d157b-52fb-4250-976e-7133dff5c347");
+ assertThat(serviceSpecification.get("@type")).isEqualTo("ONAPservice");
+
+ assertThat(((ArrayList) service.get("supportingResource")).size()).isEqualTo(0);
+
+ }
+
+
+
public static void assertServiceInventoryFind(ResponseEntity<Object> resource) {
assertThat(resource.getStatusCode()).isEqualTo(HttpStatus.OK);
ArrayList body = (ArrayList) resource.getBody();
diff --git a/src/test/resources/mappings/aai_get_service-subscriptionWithoutList.json b/src/test/resources/mappings/aai_get_service-subscriptionWithoutList.json
new file mode 100644
index 0000000..2765c77
--- /dev/null
+++ b/src/test/resources/mappings/aai_get_service-subscriptionWithoutList.json
@@ -0,0 +1,19 @@
+{
+ "request": {
+ "method": "GET",
+ "url": "/aai/v11/business/customers/customer/6490/service-subscriptions/service-subscription/vFW/service-instances/service-instance/e4688e5f-61a0-4f8b-ae02-a2fbde623bcbWithoutList"
+ },
+ "response": {
+ "status": 200,
+ "jsonBody": {
+ "service-instance-id": "e4688e5f-61a0-4f8b-ae02-a2fbde623bcb",
+ "service-instance-name": "NewFreeRadius-service-instance-01",
+ "model-invariant-id": "709d157b-52fb-4250-976e-7133dff5c347",
+ "model-version-id": "98d95267-5e0f-4531-abf8-f14b90031dc5",
+ "resource-version": "1518508381261"
+ },
+ "headers": {
+ "Content-Type": "application/json"
+ }
+ }
+} \ No newline at end of file