mirror of
https://github.com/Telecominfraproject/wlan-cloud-opensync-controller.git
synced 2025-11-02 03:28:00 +00:00
TW-20 - propagate config changes to AP when they happen on a portal
This commit is contained in:
@@ -0,0 +1,9 @@
|
||||
package ai.connectus.opensync.external.integration;
|
||||
|
||||
import java.util.Set;
|
||||
|
||||
public interface ConnectusOvsdbClientInterface {
|
||||
Set<String> getConnectedClientIds();
|
||||
String changeRedirectorAddress(String apId, String newRedirectorAddress);
|
||||
void processConfigChanged(String apId);
|
||||
}
|
||||
@@ -23,7 +23,6 @@ import org.springframework.web.bind.annotation.RequestMethod;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import com.whizcontrol.core.model.json.BaseJsonModel;
|
||||
import com.whizcontrol.core.model.service.CloudServiceType;
|
||||
import com.whizcontrol.core.model.service.ServiceInstanceInformation;
|
||||
import com.whizcontrol.core.server.container.ConnectorProperties;
|
||||
import com.whizcontrol.customerequipmentgateway.models.CEGWBaseCommand;
|
||||
@@ -41,6 +40,7 @@ import com.whizcontrol.equipmentroutinginfo.models.EquipmentRoutingRecord;
|
||||
import com.whizcontrol.equipmentroutinginfo.models.RoutingRegisterResponse;
|
||||
import com.whizcontrol.server.exceptions.ConfigurationException;
|
||||
|
||||
import ai.connectus.opensync.external.integration.ConnectusOvsdbClientInterface;
|
||||
import ai.connectus.opensync.external.integration.OvsdbSession;
|
||||
import ai.connectus.opensync.external.integration.OvsdbSessionMapInterface;
|
||||
|
||||
@@ -64,6 +64,9 @@ public class OpensyncKDCGatewayController {
|
||||
@Autowired
|
||||
private ServiceInstanceInformation serviceInstanceInfo;
|
||||
|
||||
@Autowired
|
||||
private ConnectusOvsdbClientInterface connectusOvsdbClient;
|
||||
|
||||
/**
|
||||
* Flag indicates if this gateway has registered with routing service
|
||||
*/
|
||||
@@ -224,7 +227,9 @@ public class OpensyncKDCGatewayController {
|
||||
CustomerEquipmentCommandResponse response = new CustomerEquipmentCommandResponse(CEGWCommandResultCode.Success.ordinal(),
|
||||
"Received Command " + command.getCommandType() + " for " + qrCode);
|
||||
|
||||
//TODO: implement sending command via ovsdb session.
|
||||
if(command instanceof CEGWConfigChangeNotification) {
|
||||
connectusOvsdbClient.processConfigChanged(qrCode);
|
||||
}
|
||||
|
||||
return response;
|
||||
}
|
||||
|
||||
@@ -12,16 +12,16 @@ import org.springframework.web.bind.annotation.RequestMethod;
|
||||
import org.springframework.web.bind.annotation.RequestParam;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import ai.connectus.opensync.ovsdb.ConnectusOvsdbClient;
|
||||
import ai.connectus.opensync.external.integration.ConnectusOvsdbClientInterface;
|
||||
|
||||
@Profile("ovsdb_manager")
|
||||
@RestController
|
||||
public class OpenSyncExperimentController {
|
||||
public class OpenSyncConnectusController {
|
||||
|
||||
private static final Logger LOG = LoggerFactory.getLogger(OpenSyncExperimentController.class);
|
||||
private static final Logger LOG = LoggerFactory.getLogger(OpenSyncConnectusController.class);
|
||||
|
||||
@Autowired
|
||||
ConnectusOvsdbClient connectusOvsdbClient;
|
||||
ConnectusOvsdbClientInterface connectusOvsdbClient;
|
||||
|
||||
@RequestMapping(value = "/connectedClients", method = RequestMethod.GET)
|
||||
public List<String> getConnectedClients()
|
||||
@@ -15,6 +15,7 @@ import com.vmware.ovsdb.callback.ConnectionCallback;
|
||||
import com.vmware.ovsdb.service.OvsdbClient;
|
||||
import com.vmware.ovsdb.service.OvsdbPassiveConnectionListener;
|
||||
|
||||
import ai.connectus.opensync.external.integration.ConnectusOvsdbClientInterface;
|
||||
import ai.connectus.opensync.external.integration.OpensyncExternalIntegrationInterface;
|
||||
import ai.connectus.opensync.external.integration.OvsdbSession;
|
||||
import ai.connectus.opensync.external.integration.OvsdbSessionMapInterface;
|
||||
@@ -26,7 +27,7 @@ import io.netty.handler.ssl.SslContext;
|
||||
|
||||
@Profile("ovsdb_manager")
|
||||
@Component
|
||||
public class ConnectusOvsdbClient {
|
||||
public class ConnectusOvsdbClient implements ConnectusOvsdbClientInterface {
|
||||
|
||||
private static final Logger LOG = LoggerFactory.getLogger(ConnectusOvsdbClient.class);
|
||||
|
||||
@@ -177,4 +178,24 @@ public class ConnectusOvsdbClient {
|
||||
return ret;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void processConfigChanged(String apId) {
|
||||
LOG.debug("Starting processConfigChanged for {}", apId);
|
||||
|
||||
OvsdbSession ovsdbSession = ovsdbSessionMapInterface.getSession(apId);
|
||||
if(ovsdbSession == null) {
|
||||
throw new IllegalStateException("AP with id " + apId + " is not connected") ;
|
||||
}
|
||||
|
||||
OvsdbClient ovsdbClient = ovsdbSession.getOvsdbClient();
|
||||
OpensyncAPConfig opensyncAPConfig = extIntegrationInterface.getApConfig(apId);
|
||||
|
||||
if(opensyncAPConfig!=null) {
|
||||
ovsdbDao.removeAllSsids(ovsdbClient);
|
||||
ovsdbDao.configureWifiRadios(ovsdbClient, opensyncAPConfig.getRadioConfig());
|
||||
ovsdbDao.configureSsids(ovsdbClient, opensyncAPConfig.getSsidConfigs());
|
||||
}
|
||||
|
||||
LOG.debug("Finished processConfigChanged for {}", apId);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user