mirror of
https://github.com/Telecominfraproject/wlan-cloud-opensync-controller.git
synced 2026-01-27 10:22:51 +00:00
WIFI-1730: Syslog configuration does't work
This commit is contained in:
@@ -248,7 +248,7 @@ public class TipWlanOvsdbClient implements OvsdbClientInterface {
|
||||
OpensyncAPConfig opensyncAPConfig = extIntegrationInterface.getApConfig(apId);
|
||||
|
||||
if (opensyncAPConfig != null) {
|
||||
ovsdbDao.configureNtpServer(ovsdbClient, opensyncAPConfig);
|
||||
ovsdbDao.configureNode(ovsdbClient, opensyncAPConfig);
|
||||
ovsdbDao.configureWifiRrm(ovsdbClient, opensyncAPConfig);
|
||||
ovsdbDao.configureGreTunnels(ovsdbClient, opensyncAPConfig);
|
||||
ovsdbDao.createVlanNetworkInterfaces(ovsdbClient, opensyncAPConfig);
|
||||
@@ -319,7 +319,7 @@ public class TipWlanOvsdbClient implements OvsdbClientInterface {
|
||||
|
||||
extIntegrationInterface.clearEquipmentStatus(apId);
|
||||
|
||||
ovsdbDao.configureNtpServer(ovsdbClient, opensyncAPConfig);
|
||||
ovsdbDao.configureNode(ovsdbClient, opensyncAPConfig);
|
||||
ovsdbDao.configureWifiRrm(ovsdbClient, opensyncAPConfig);
|
||||
ovsdbDao.configureGreTunnels(ovsdbClient, opensyncAPConfig);
|
||||
ovsdbDao.createVlanNetworkInterfaces(ovsdbClient, opensyncAPConfig);
|
||||
|
||||
@@ -84,9 +84,17 @@ public class OvsdbDao extends OvsdbDaoBase {
|
||||
ovsdbNetwork.configureInterfaces(ovsdbClient);
|
||||
}
|
||||
|
||||
public void configureNtpServer(OvsdbClient ovsdbClient, OpensyncAPConfig opensyncAPConfig) {
|
||||
public void configureNode(OvsdbClient ovsdbClient, OpensyncAPConfig opensyncAPConfig) {
|
||||
configureNtpServer(ovsdbClient,opensyncAPConfig);configureSyslog(ovsdbClient, opensyncAPConfig);
|
||||
}
|
||||
|
||||
void configureNtpServer(OvsdbClient ovsdbClient, OpensyncAPConfig opensyncAPConfig) {
|
||||
ovsdbNodeConfig.configureNtpServer(ovsdbClient, opensyncAPConfig);
|
||||
}
|
||||
|
||||
void configureSyslog(OvsdbClient ovsdbClient, OpensyncAPConfig opensyncAPConfig) {
|
||||
ovsdbNodeConfig.configureSyslog(ovsdbClient, opensyncAPConfig);
|
||||
}
|
||||
|
||||
public void configureRadsecRadiusAndRealm(OvsdbClient ovsdbClient, OpensyncAPConfig opensyncAPConfig) {
|
||||
ovsdbRadiusProxyConfig.configureRadius(ovsdbClient, opensyncAPConfig);
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
|
||||
package com.telecominfraproject.wlan.opensync.ovsdb.dao;
|
||||
|
||||
import java.util.ArrayList;
|
||||
@@ -15,6 +16,8 @@ import org.springframework.stereotype.Component;
|
||||
import com.telecominfraproject.wlan.opensync.external.integration.models.OpensyncAPConfig;
|
||||
import com.telecominfraproject.wlan.profile.network.models.ApNetworkConfiguration;
|
||||
import com.vmware.ovsdb.exception.OvsdbClientException;
|
||||
import com.vmware.ovsdb.protocol.operation.Delete;
|
||||
import com.vmware.ovsdb.protocol.operation.Insert;
|
||||
import com.vmware.ovsdb.protocol.operation.Operation;
|
||||
import com.vmware.ovsdb.protocol.operation.Update;
|
||||
import com.vmware.ovsdb.protocol.operation.notation.Atom;
|
||||
@@ -23,6 +26,7 @@ import com.vmware.ovsdb.protocol.operation.notation.Function;
|
||||
import com.vmware.ovsdb.protocol.operation.notation.Row;
|
||||
import com.vmware.ovsdb.protocol.operation.notation.Value;
|
||||
import com.vmware.ovsdb.protocol.operation.result.OperationResult;
|
||||
import com.vmware.ovsdb.protocol.operation.result.UpdateResult;
|
||||
import com.vmware.ovsdb.service.OvsdbClient;
|
||||
|
||||
@Component
|
||||
@@ -33,8 +37,7 @@ public class OvsdbNodeConfig extends OvsdbDaoBase {
|
||||
|
||||
public void configureNtpServer(OvsdbClient ovsdbClient, OpensyncAPConfig opensyncAPConfig) {
|
||||
try {
|
||||
ApNetworkConfiguration apNetworkConfig = (ApNetworkConfiguration) opensyncAPConfig.getApProfile()
|
||||
.getDetails();
|
||||
ApNetworkConfiguration apNetworkConfig = (ApNetworkConfiguration) opensyncAPConfig.getApProfile().getDetails();
|
||||
if (apNetworkConfig.getNtpServer() == null || apNetworkConfig.getNtpServer().getValue() == null) {
|
||||
LOG.info("Cannot configure NTP server to null value. {}", apNetworkConfig);
|
||||
return;
|
||||
@@ -43,8 +46,7 @@ public class OvsdbNodeConfig extends OvsdbDaoBase {
|
||||
Map<String, Value> updateColumns = new HashMap<>();
|
||||
updateColumns.put("value", new Atom<>(apNetworkConfig.getNtpServer().getValue()));
|
||||
List<Operation> operations = new ArrayList<>();
|
||||
operations.add(new Update(nodeConfigTable,
|
||||
List.of(new Condition("module", Function.EQUALS, new Atom<>("ntp"))), new Row(updateColumns)));
|
||||
operations.add(new Update(nodeConfigTable, List.of(new Condition("module", Function.EQUALS, new Atom<>("ntp"))), new Row(updateColumns)));
|
||||
CompletableFuture<OperationResult[]> fResult = ovsdbClient.transact(ovsdbName, operations);
|
||||
OperationResult[] result = fResult.get(ovsdbTimeoutSec, TimeUnit.SECONDS);
|
||||
for (OperationResult res : result) {
|
||||
@@ -54,4 +56,67 @@ public class OvsdbNodeConfig extends OvsdbDaoBase {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
}
|
||||
|
||||
public void configureSyslog(OvsdbClient ovsdbClient, OpensyncAPConfig opensyncAPConfig) {
|
||||
// /usr/opensync/tools/ovsh insert Node_Config module:="syslog" key:="remote" value:="udp:192.168.178.9:1000:4"
|
||||
// The format is a colon delimited list. log_proto:log_ip:log_port:log_priority
|
||||
try {
|
||||
ApNetworkConfiguration apNetworkConfig = (ApNetworkConfiguration) opensyncAPConfig.getApProfile().getDetails();
|
||||
if (apNetworkConfig.getSyslogRelay() == null ) {
|
||||
LOG.info("Cannot configure syslog to null value. {}", apNetworkConfig);
|
||||
return;
|
||||
}
|
||||
|
||||
if (apNetworkConfig.getSyslogRelay().isEnabled()) {
|
||||
|
||||
if (apNetworkConfig.getSyslogRelay().getSrvHostIp() == null
|
||||
|| apNetworkConfig.getSyslogRelay().getSeverity() == null) {
|
||||
LOG.info("Cannot configure syslog remote_logging without SrvHostIp and Severity values. {}", apNetworkConfig);
|
||||
return;
|
||||
}
|
||||
LOG.debug("configureSyslog remote_logging to {}", apNetworkConfig.getSyslogRelay());
|
||||
Map<String, Value> columns = new HashMap<>();
|
||||
columns.put("key", new Atom<>("remote"));
|
||||
columns.put("module", new Atom<>("syslog"));
|
||||
String delimitedValue = "udp:" + apNetworkConfig.getSyslogRelay().getSrvHostIp().getHostAddress() + ":" + String
|
||||
.valueOf(apNetworkConfig.getSyslogRelay().getSrvHostPort() + ":" +String.valueOf(apNetworkConfig.getSyslogRelay().getSeverity().getId()));
|
||||
columns.put("value", new Atom<>(delimitedValue));
|
||||
List<Operation> operations = new ArrayList<>();
|
||||
operations.add(new Update(nodeConfigTable, List.of(new Condition("module", Function.EQUALS, new Atom<>("syslog"))), new Row(columns)));
|
||||
CompletableFuture<OperationResult[]> fResult = ovsdbClient.transact(ovsdbName, operations);
|
||||
OperationResult[] result = fResult.get(ovsdbTimeoutSec, TimeUnit.SECONDS);
|
||||
long numUpdates = 0;
|
||||
for (OperationResult res : result) {
|
||||
if (res instanceof UpdateResult) {
|
||||
numUpdates += ((UpdateResult) res).getCount();
|
||||
LOG.debug("configureSyslog update result {}", res);
|
||||
}
|
||||
}
|
||||
if (numUpdates == 0) {
|
||||
// no records existed, insert the row instead
|
||||
operations.clear();
|
||||
operations.add(new Insert(nodeConfigTable, new Row(columns)));
|
||||
fResult = ovsdbClient.transact(ovsdbName, operations);
|
||||
result = fResult.get(ovsdbTimeoutSec, TimeUnit.SECONDS);
|
||||
for (OperationResult res : result) {
|
||||
LOG.debug("configureSyslog insert result {}", res);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
LOG.debug("Disable remote_logging", apNetworkConfig.getSyslogRelay());
|
||||
List<Operation> operations = new ArrayList<>();
|
||||
operations.add(new Delete(nodeConfigTable, List.of(new Condition("module", Function.EQUALS, new Atom<>("syslog")))));
|
||||
CompletableFuture<OperationResult[]> fResult = ovsdbClient.transact(ovsdbName, operations);
|
||||
OperationResult[] result = fResult.get(ovsdbTimeoutSec, TimeUnit.SECONDS);
|
||||
for (OperationResult res : result) {
|
||||
if (res instanceof UpdateResult) {
|
||||
LOG.debug("configureSyslog disabled remote_logging {}", res);
|
||||
}
|
||||
}
|
||||
}
|
||||
} catch (OvsdbClientException | InterruptedException | ExecutionException | TimeoutException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user