From 7e9fd6002462d69562797e741960c4e672a55d5c Mon Sep 17 00:00:00 2001 From: Manoop Talasila Date: Fri, 20 Sep 2019 13:33:18 -0400 Subject: [PATCH] Extend RAN connection table to handle null fields Change-Id: Ice9fb02e012b550bd799f8ff51dd1368c7339140 Signed-off-by: Manoop Talasila --- docs/release-notes.rst | 1 + .../dashboard/controller/E2ManagerController.java | 1 + .../config/E2ManagerMockConfiguration.java | 19 +++++++++---- .../controller/E2ManagerControllerTest.java | 6 ++--- .../src/app/ran-control/ran-control.component.html | 31 ++++++++++++++++------ 5 files changed, 42 insertions(+), 16 deletions(-) diff --git a/docs/release-notes.rst b/docs/release-notes.rst index 29126380..f9e9d090 100644 --- a/docs/release-notes.rst +++ b/docs/release-notes.rst @@ -29,6 +29,7 @@ Version 1.2.1, 20 Sep 2019 * Extend ANR mock feature to persist edits for demos * Block whitespace in E2 IP input field validation * Relax validation in E2 RAN name field validation +* Make RAN connection table robust to missing fields Version 1.2.0, 11 Sep 2019 -------------------------- diff --git a/webapp-backend/src/main/java/org/oransc/ric/portal/dashboard/controller/E2ManagerController.java b/webapp-backend/src/main/java/org/oransc/ric/portal/dashboard/controller/E2ManagerController.java index 15379be2..a5e3b52a 100644 --- a/webapp-backend/src/main/java/org/oransc/ric/portal/dashboard/controller/E2ManagerController.java +++ b/webapp-backend/src/main/java/org/oransc/ric/portal/dashboard/controller/E2ManagerController.java @@ -120,6 +120,7 @@ public class E2ManagerController { public List getRanDetails() { logger.debug("getRanDetails"); List nodebIdList = e2NodebApi.getNodebIdList(); + logger.debug("getRanDetails: nodebIdList {}", nodebIdList); List details = new ArrayList<>(); for (NodebIdentity nbid : nodebIdList) { GetNodebResponse nbResp = null; diff --git a/webapp-backend/src/test/java/org/oransc/ric/portal/dashboard/config/E2ManagerMockConfiguration.java b/webapp-backend/src/test/java/org/oransc/ric/portal/dashboard/config/E2ManagerMockConfiguration.java index 02b2ba46..75ab01af 100644 --- a/webapp-backend/src/test/java/org/oransc/ric/portal/dashboard/config/E2ManagerMockConfiguration.java +++ b/webapp-backend/src/test/java/org/oransc/ric/portal/dashboard/config/E2ManagerMockConfiguration.java @@ -59,7 +59,8 @@ public class E2ManagerMockConfiguration { @Value("${mock.config.delay:0}") private int delayMs; - public static final String MOCK_RAN_NAME = "Mock RAN"; + public static final String RAN_NAME_1 = "Connected RAN"; + public static final String RAN_NAME_2 = "Unknown RAN"; private final List nodebIdList; private final Map nodebResponseMap; @@ -70,10 +71,18 @@ public class E2ManagerMockConfiguration { globalNbId = new NodebIdentityGlobalNbId().nbId("mockNbId").plmnId("mockPlmId"); nodebIdList = new ArrayList<>(); nodebResponseMap = new HashMap<>(); - nodebIdList.add(new NodebIdentity().inventoryName(MOCK_RAN_NAME).globalNbId(globalNbId)); - nodebResponseMap.put(MOCK_RAN_NAME, - new GetNodebResponse().connectionStatus("mockConnectionStatus").failureType("mockFailureType") - .ip("127.0.0.1").nodeType("mockNodeType").port(123).ranName(MOCK_RAN_NAME)); + // Complete entry + nodebIdList.add(new NodebIdentity().inventoryName(RAN_NAME_1).globalNbId(globalNbId)); + nodebResponseMap.put(RAN_NAME_1, new GetNodebResponse().connectionStatus("CONNECTED").failureType("") + .ip("127.0.0.1").nodeType("mockNodeType").port(123).ranName(RAN_NAME_1)); + // Partial entry + // [{"nodebIdentity":{"globalNbId":null,"inventoryName":"AAAA123456"}, + // "nodebStatus":{"connectionStatus":"CONNECTING","enb":null,"failureType":null, + // "globalNbId":null,"gnb":null,"ip":"10.2.0.6","nodeType":null,"port":36444, + // "ranName":"AAAA123456","setupFailure":null}}] + nodebIdList.add(new NodebIdentity().inventoryName(RAN_NAME_2)); + nodebResponseMap.put(RAN_NAME_2, + new GetNodebResponse().connectionStatus("CONNECTING").ip("127.0.0.2").port(456).ranName(RAN_NAME_2)); } private ApiClient apiClient() { diff --git a/webapp-backend/src/test/java/org/oransc/ric/portal/dashboard/controller/E2ManagerControllerTest.java b/webapp-backend/src/test/java/org/oransc/ric/portal/dashboard/controller/E2ManagerControllerTest.java index f4caee3c..34729adf 100644 --- a/webapp-backend/src/test/java/org/oransc/ric/portal/dashboard/controller/E2ManagerControllerTest.java +++ b/webapp-backend/src/test/java/org/oransc/ric/portal/dashboard/controller/E2ManagerControllerTest.java @@ -46,7 +46,7 @@ public class E2ManagerControllerTest extends AbstractControllerTest { private ResponseEntity endcSetup() { URI uri = buildUri(null, E2ManagerController.CONTROLLER_PATH, E2ManagerController.ENDC_SETUP_METHOD); logger.info("Invoking {}", uri); - SetupRequest setup = new SetupRequest().ranName(E2ManagerMockConfiguration.MOCK_RAN_NAME); + SetupRequest setup = new SetupRequest().ranName(E2ManagerMockConfiguration.RAN_NAME_1); HttpEntity entity = new HttpEntity<>(setup); return testRestTemplateAdminRole().exchange(uri, HttpMethod.POST, entity, Void.class); } @@ -104,7 +104,7 @@ public class E2ManagerControllerTest extends AbstractControllerTest { public void nodebStatusTest() { endcSetup(); URI uri = buildUri(null, E2ManagerController.CONTROLLER_PATH, E2ManagerController.NODEB_SHUTDOWN_METHOD, - E2ManagerMockConfiguration.MOCK_RAN_NAME); + E2ManagerMockConfiguration.RAN_NAME_1); logger.info("Invoking {}", uri); GetNodebResponse response = testRestTemplateStandardRole().getForObject(uri, GetNodebResponse.class); Assertions.assertNotNull(response.getRanName()); @@ -122,7 +122,7 @@ public class E2ManagerControllerTest extends AbstractControllerTest { public void x2SetupTest() { URI uri = buildUri(null, E2ManagerController.CONTROLLER_PATH, E2ManagerController.X2_SETUP_METHOD); logger.info("Invoking {}", uri); - SetupRequest setup = new SetupRequest().ranName(E2ManagerMockConfiguration.MOCK_RAN_NAME); + SetupRequest setup = new SetupRequest().ranName(E2ManagerMockConfiguration.RAN_NAME_1); HttpEntity entity = new HttpEntity<>(setup); ResponseEntity voidResponse = testRestTemplateAdminRole().exchange(uri, HttpMethod.POST, entity, Void.class); diff --git a/webapp-frontend/src/app/ran-control/ran-control.component.html b/webapp-frontend/src/app/ran-control/ran-control.component.html index d249d44c..463d72cc 100644 --- a/webapp-frontend/src/app/ran-control/ran-control.component.html +++ b/webapp-frontend/src/app/ran-control/ran-control.component.html @@ -27,34 +27,48 @@ + + Nodeb ID - {{ran.nodebIdentity.globalNbId.nbId}} + +
{{ran.nodebIdentity.globalNbId.nbId}}
+
Node Type - {{ran.nodebStatus.nodeType}} + +
{{ran.nodebStatus.nodeType}}
+
RAN Name - {{ran.nodebIdentity.inventoryName}} + +
{{ran.nodebIdentity.inventoryName}}
+
IP - {{ran.nodebStatus.ip}} + +
{{ran.nodebStatus.ip}}
+
Port - {{ran.nodebStatus.port}} + +
{{ran.nodebStatus.port}}
+
Connection Status - {{ran.nodebStatus.connectionStatus}} + +
{{ran.nodebStatus.connectionStatus}}
+
@@ -63,7 +77,8 @@ - + +
@@ -71,4 +86,4 @@ - + \ No newline at end of file -- 2.16.6