From b689206a968af9371208c84ede11e340cdbf5458 Mon Sep 17 00:00:00 2001 From: Mike Hansen Date: Thu, 14 May 2020 16:08:51 -0400 Subject: [PATCH] Adding /closeSession for static and cloud GW. Registering Equipment with GW. --- .../OpensyncExternalIntegrationCloud.java | 14 ++++-- .../OpensyncCloudGatewayController.java | 16 +++++-- .../ConnectusOvsdbClientInterface.java | 2 + .../src/main/resources/application.properties | 2 +- ...ncProcess (local, KDC certs) static.launch | 2 +- .../OpenSyncConnectusController.java | 47 ++++++++++--------- .../opensync/ovsdb/ConnectusOvsdbClient.java | 14 ++++++ 7 files changed, 67 insertions(+), 30 deletions(-) diff --git a/opensync-ext-cloud/src/main/java/com/telecominfraproject/wlan/opensync/external/integration/OpensyncExternalIntegrationCloud.java b/opensync-ext-cloud/src/main/java/com/telecominfraproject/wlan/opensync/external/integration/OpensyncExternalIntegrationCloud.java index 61eb729..1ec9e32 100644 --- a/opensync-ext-cloud/src/main/java/com/telecominfraproject/wlan/opensync/external/integration/OpensyncExternalIntegrationCloud.java +++ b/opensync-ext-cloud/src/main/java/com/telecominfraproject/wlan/opensync/external/integration/OpensyncExternalIntegrationCloud.java @@ -139,19 +139,24 @@ public class OpensyncExternalIntegrationCloud implements OpensyncExternalIntegra Equipment ce = null; try { ce = getCustomerEquipment(apId); - LOG.debug("Got Equipment {} for apId {}", ce.toPrettyString()); } catch (Exception e) { - LOG.error("Caught exception getting equipment for Id {} for apId {}", apId, apId, e); + LOG.error("Caught exception getting equipment for Id {}", apId, e); } try { + if (ce == null) { + ce = new Equipment(); ce.setCustomerId(autoProvisionedCustomerId); ce.setInventoryId(apId); ce.setEquipmentType(EquipmentType.AP); + ce.setName(apId); + ce.setSerial(connectNodeInfo.serialNumber); - ce.setDetails(ApElementConfiguration.createWithDefaults()); + ApElementConfiguration apElementConfig = ApElementConfiguration.createWithDefaults(); + apElementConfig.setDeviceName(apId); + ce.setDetails(apElementConfig); ce.setLocationId(autoProvisionedLocationId); ce.setProfileId(autoProvisionedProfileId); @@ -196,6 +201,9 @@ public class OpensyncExternalIntegrationCloud implements OpensyncExternalIntegra equipmentRoutingRecord.setCustomerId(ce.getCustomerId()); equipmentRoutingRecord.setEquipmentId(ce.getId()); equipmentRoutingRecord = routingServiceInterface.create(equipmentRoutingRecord); + + + gatewayController.registerCustomerEquipment(ce.getName(), ce.getCustomerId(), ce.getId()); OvsdbSession ovsdbSession = ovsdbSessionMapInterface.getSession(apId); ovsdbSession.setRoutingId(equipmentRoutingRecord.getId()); diff --git a/opensync-ext-cloud/src/main/java/com/telecominfraproject/wlan/opensync/external/integration/controller/OpensyncCloudGatewayController.java b/opensync-ext-cloud/src/main/java/com/telecominfraproject/wlan/opensync/external/integration/controller/OpensyncCloudGatewayController.java index 0f6eb8b..a45c34e 100644 --- a/opensync-ext-cloud/src/main/java/com/telecominfraproject/wlan/opensync/external/integration/controller/OpensyncCloudGatewayController.java +++ b/opensync-ext-cloud/src/main/java/com/telecominfraproject/wlan/opensync/external/integration/controller/OpensyncCloudGatewayController.java @@ -119,9 +119,17 @@ public class OpensyncCloudGatewayController { } switch (command.getCommandType()) { - + case ConfigChangeNotification: - return sendConfigChangeNotification(session, (CEGWConfigChangeNotification)command); + return sendConfigChangeNotification(session, (CEGWConfigChangeNotification) command); + case CloseSessionRequest: + return closeSession(session, (CEGWCloseSessionRequest) command); + case CheckRouting: + return checkEquipmentRouting(session, (CEGWRouteCheck) command); + case BlinkRequest: + return processBlinkRequest(session, (CEGWBlinkRequest) command); + case StartDebugEngine: + return processChangeRedirector(session, (CEGWStartDebugEngine) command); default: LOG.warn("[{}] Failed to deliver command {}, unsupported command type", qrCode, command); @@ -265,7 +273,7 @@ public class OpensyncCloudGatewayController { try { - EquipmentGatewayRecord result = this.eqRoutingSvc.registerGateway(gwRecord); + EquipmentGatewayRecord result = this.eqRoutingSvc.registerGateway(gwRecord); this.registeredGwId = result.getId(); LOG.info("Successfully registered (name={}, id={}) with Routing Service", result.getHostname(), registeredGwId); @@ -330,7 +338,7 @@ public class OpensyncCloudGatewayController { routingRecord.setEquipmentId(equipmentId); routingRecord.setGatewayId(this.registeredGwId); try { - routingRecord = eqRoutingSvc.create(routingRecord); + routingRecord = eqRoutingSvc.create(routingRecord); LOG.debug("Registered customer equipment (name={},id={}) with route id={}", equipmentName, equipmentId, routingRecord.getId()); diff --git a/opensync-ext-interface/src/main/java/com/telecominfraproject/wlan/opensync/external/integration/ConnectusOvsdbClientInterface.java b/opensync-ext-interface/src/main/java/com/telecominfraproject/wlan/opensync/external/integration/ConnectusOvsdbClientInterface.java index ae6077b..791da81 100644 --- a/opensync-ext-interface/src/main/java/com/telecominfraproject/wlan/opensync/external/integration/ConnectusOvsdbClientInterface.java +++ b/opensync-ext-interface/src/main/java/com/telecominfraproject/wlan/opensync/external/integration/ConnectusOvsdbClientInterface.java @@ -9,4 +9,6 @@ public interface ConnectusOvsdbClientInterface { String changeRedirectorAddress(String apId, String newRedirectorAddress); void processConfigChanged(String apId); + + String closeSession(String apId); } diff --git a/opensync-gateway-cloud-process/src/main/resources/application.properties b/opensync-gateway-cloud-process/src/main/resources/application.properties index c6694f0..6f2ccfb 100644 --- a/opensync-gateway-cloud-process/src/main/resources/application.properties +++ b/opensync-gateway-cloud-process/src/main/resources/application.properties @@ -74,7 +74,7 @@ app.name=OpenSyncManager #spring.profiles.include=use_ssl,http_digest_auth,customer-credential-datastore-inmemory #spring.profiles.include=no_ssl,no_auth #spring.profiles.include=use_ssl,client_certificate_auth -spring.profiles.include=use_ssl_with_client_cert_and_basic_auth,client_certificate_and_basic_auth,RestTemplateConfiguration_X509_client_cert_auth,use_single_ds,opensync_static_config +spring.profiles.include=use_ssl_with_client_cert_and_basic_auth,client_certificate_and_basic_auth,RestTemplateConfiguration_X509_client_cert_auth,use_single_ds,opensync_cloud_config #used by *-remote client classes when they authenticate their requests diff --git a/opensync-gateway-static-process/src/main/resources/launchers/OpenSyncProcess (local, KDC certs) static.launch b/opensync-gateway-static-process/src/main/resources/launchers/OpenSyncProcess (local, KDC certs) static.launch index 2b4510c..b97c3bf 100644 --- a/opensync-gateway-static-process/src/main/resources/launchers/OpenSyncProcess (local, KDC certs) static.launch +++ b/opensync-gateway-static-process/src/main/resources/launchers/OpenSyncProcess (local, KDC certs) static.launch @@ -13,5 +13,5 @@ - + diff --git a/opensync-gateway/src/main/java/com/telecominfraproject/wlan/opensync/experiment/OpenSyncConnectusController.java b/opensync-gateway/src/main/java/com/telecominfraproject/wlan/opensync/experiment/OpenSyncConnectusController.java index a2eae7f..753adb3 100644 --- a/opensync-gateway/src/main/java/com/telecominfraproject/wlan/opensync/experiment/OpenSyncConnectusController.java +++ b/opensync-gateway/src/main/java/com/telecominfraproject/wlan/opensync/experiment/OpenSyncConnectusController.java @@ -18,27 +18,32 @@ import com.telecominfraproject.wlan.opensync.external.integration.ConnectusOvsdb @RestController public class OpenSyncConnectusController { - private static final Logger LOG = LoggerFactory.getLogger(OpenSyncConnectusController.class); - - @Autowired - ConnectusOvsdbClientInterface connectusOvsdbClient; - - @RequestMapping(value = "/connectedClients", method = RequestMethod.GET) - public List getConnectedClients() - { - List ret = new ArrayList(connectusOvsdbClient.getConnectedClientIds()); - LOG.info("Returning connected clients {}", ret); - return ret; - } + private static final Logger LOG = LoggerFactory.getLogger(OpenSyncConnectusController.class); - @RequestMapping(value = "/changeRedirectorAddress", method = RequestMethod.POST) - public String changeRedirectorAddress(@RequestParam String apId, @RequestParam String newRedirectorAddress) - { - LOG.info("Changing redirector address for AP {} to {}", apId, newRedirectorAddress); - String ret = connectusOvsdbClient.changeRedirectorAddress(apId, newRedirectorAddress); - LOG.info("Changed redirector address for AP {} to {}", apId, ret); - return ret; - } + @Autowired + ConnectusOvsdbClientInterface connectusOvsdbClient; + + @RequestMapping(value = "/connectedClients", method = RequestMethod.GET) + public List getConnectedClients() { + List ret = new ArrayList(connectusOvsdbClient.getConnectedClientIds()); + LOG.info("Returning connected clients {}", ret); + return ret; + } + + @RequestMapping(value = "/changeRedirectorAddress", method = RequestMethod.POST) + public String changeRedirectorAddress(@RequestParam String apId, @RequestParam String newRedirectorAddress) { + LOG.info("Changing redirector address for AP {} to {}", apId, newRedirectorAddress); + String ret = connectusOvsdbClient.changeRedirectorAddress(apId, newRedirectorAddress); + LOG.info("Changed redirector address for AP {} to {}", apId, ret); + return ret; + } + + @RequestMapping(value = "/closeSession", method = RequestMethod.POST) + public String closeSession(@RequestParam String apId) { + LOG.info("Closing session for AP {} ", apId); + String ret = connectusOvsdbClient.closeSession(apId); + LOG.info("Closed session for AP {} ", apId); + return ret; + } - } diff --git a/opensync-gateway/src/main/java/com/telecominfraproject/wlan/opensync/ovsdb/ConnectusOvsdbClient.java b/opensync-gateway/src/main/java/com/telecominfraproject/wlan/opensync/ovsdb/ConnectusOvsdbClient.java index 0e15399..a7567ef 100644 --- a/opensync-gateway/src/main/java/com/telecominfraproject/wlan/opensync/ovsdb/ConnectusOvsdbClient.java +++ b/opensync-gateway/src/main/java/com/telecominfraproject/wlan/opensync/ovsdb/ConnectusOvsdbClient.java @@ -391,4 +391,18 @@ public class ConnectusOvsdbClient implements ConnectusOvsdbClientInterface { key); } + + @Override + public String closeSession(String apId) { + OvsdbSession session = ovsdbSessionMapInterface.getSession(apId); + try { + session.getOvsdbClient().shutdown(); + } catch (Exception e) { + LOG.error("Failed to close session to " + apId + " " + e.getLocalizedMessage()); + return "Failed to close session to " + apId + " " + e.getLocalizedMessage(); + + } + LOG.debug("Closed session to " + apId); + return "Closed session to " + apId; + } }