Adding /closeSession for static and cloud GW. Registering Equipment with GW.

This commit is contained in:
Mike Hansen
2020-05-14 16:08:51 -04:00
parent 36500319f4
commit b689206a96
7 changed files with 67 additions and 30 deletions

View File

@@ -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());

View File

@@ -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());

View File

@@ -9,4 +9,6 @@ public interface ConnectusOvsdbClientInterface {
String changeRedirectorAddress(String apId, String newRedirectorAddress);
void processConfigChanged(String apId);
String closeSession(String apId);
}

View File

@@ -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

View File

@@ -13,5 +13,5 @@
<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="com.telecominfraproject.wlan.opensync.experiment.OpenSyncProcess"/>
<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="opensync-gateway-static-process"/>
<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.m2e.launchconfig.sourcepathProvider"/>
<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="--add-opens java.base/java.lang=ALL-UNNAMED&#10;&#10;-Dssl.props=file://${project_loc:opensync-gateway-static-process}/src/main/resources/app/certs/ssl.properties&#10;-Dtip.wlan.httpClientConfig=file://${project_loc:opensync-gateway-static-process}/src/main/resources/app/certs/httpClientConfig.json&#10;&#10;-Djavax.net.ssl.keyStore=${connectus_certs}/client_keystore.jks&#10;-Djavax.net.ssl.keyStorePassword=mypassword&#10;-Djavax.net.ssl.trustStore=${connectus_certs}/truststore.jks&#10;-Djavax.net.ssl.trustStorePassword=mypassword&#10;&#10;-Dconnectus.ovsdb.managerAddr=${local_server_address}&#10;-Dconnectus.ovsdb.listenPort=6640&#10;-Dconnectus.ovsdb.redirector.listenPort=6643&#10;-Dconnectus.ovsdb.timeoutSec=30&#10;-Dconnectus.ovsdb.trustStore=${connectus_certs}/truststore.jks&#10;-Dconnectus.ovsdb.keyStore=${connectus_certs}/server.pkcs12&#10;&#10;-Dconnectus.ovsdb.configFileName=${project_loc:opensync-ext-static}/src/main/resources/config_2_ssids.json&#10;&#10;-Dconnectus.mqttBroker.address=${local_server_address}&#10;-Dconnectus.mqttBroker.listenPort=1883&#10;-Dspring.profiles.include=mqtt_receiver,ovsdb_redirector,ovsdb_manager"/>
<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="--add-opens java.base/java.lang=ALL-UNNAMED&#10;&#10;-Dssl.props=file://${project_loc:opensync-gateway-static-process}/src/main/resources/app/certs/ssl.properties&#10;-Dtip.wlan.httpClientConfig=file://${project_loc:opensync-gateway-static-process}/src/main/resources/app/certs/httpClientConfig.json&#10;&#10;-Djavax.net.ssl.keyStore=${connectus_certs}/client_keystore.jks&#10;-Djavax.net.ssl.keyStorePassword=mypassword&#10;-Djavax.net.ssl.trustStore=${connectus_certs}/truststore.jks&#10;-Djavax.net.ssl.trustStorePassword=mypassword&#10;&#10;-Dconnectus.ovsdb.managerAddr=${local_server_address}&#10;-Dconnectus.ovsdb.listenPort=6640&#10;-Dconnectus.ovsdb.redirector.listenPort=6643&#10;-Dconnectus.ovsdb.timeoutSec=30&#10;-Dconnectus.ovsdb.trustStore=${connectus_certs}/truststore.jks&#10;-Dconnectus.ovsdb.keyStore=${connectus_certs}/server.pkcs12&#10;&#10;-Dconnectus.ovsdb.configFileName=${project_loc:opensync-ext-static}/src/main/resources/config_2_ssids.json&#10;&#10;-Dconnectus.mqttBroker.address=${local_server_address}&#10;-Dconnectus.mqttBroker.listenPort=1883&#10;-Dspring.profiles.include=use_ssl,use_webtoken_auth,use_single_ds,RestTemplateConfiguration_X509_client_cert_auth,opensync_static_config,mqtt_receiver,ovsdb_redirector,ovsdb_manager"/>
</launchConfiguration>

View File

@@ -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<String> getConnectedClients()
{
List<String> ret = new ArrayList<String>(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<String> getConnectedClients() {
List<String> ret = new ArrayList<String>(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;
}
}

View File

@@ -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;
}
}