mirror of
https://github.com/Telecominfraproject/wlan-cloud-opensync-controller.git
synced 2025-11-01 19:17:52 +00:00
WIFI-1849: Gateway: Update status with additional manufacturing data
This commit is contained in:
@@ -573,6 +573,56 @@ public class OpensyncExternalIntegrationCloud implements OpensyncExternalIntegra
|
||||
Status protocolStatus = statusServiceInterface.update(statusRecord);
|
||||
LOG.debug("ProtocolStatus for AP {} updated to {}", ce.getName(), protocolStatus);
|
||||
|
||||
statusRecord = statusServiceInterface.getOrNull(ce.getCustomerId(), ce.getId(), StatusDataType.EQUIPMENT_MANUFACTURER_DATA);
|
||||
if (statusRecord == null) {
|
||||
statusRecord = new Status();
|
||||
statusRecord.setCustomerId(ce.getCustomerId());
|
||||
statusRecord.setEquipmentId(ce.getId());
|
||||
statusRecord.setStatusDataType(StatusDataType.EQUIPMENT_MANUFACTURER_DATA);
|
||||
EquipmentManufacturerDataStatus statusData = new EquipmentManufacturerDataStatus();
|
||||
statusRecord.setDetails(statusData);
|
||||
}
|
||||
|
||||
EquipmentManufacturerQrCode qrCode = new EquipmentManufacturerQrCode();
|
||||
|
||||
if (connectNodeInfo.qrCode != null) {
|
||||
if (connectNodeInfo.qrCode.get("DT") != null) {
|
||||
qrCode.setDeviceType(EquipmentType.getByName(connectNodeInfo.qrCode.get("DT")));
|
||||
}
|
||||
if (connectNodeInfo.qrCode.get("VN") != null) {
|
||||
qrCode.setVendorName(connectNodeInfo.qrCode.get("VN").toUpperCase());
|
||||
}
|
||||
if (connectNodeInfo.qrCode.get("DM") != null) {
|
||||
qrCode.setDeviceMac(MacAddress.valueOf(connectNodeInfo.qrCode.get("DM")));
|
||||
}
|
||||
qrCode.setHwRevision(connectNodeInfo.qrCode.get("HW"));
|
||||
qrCode.setModelName(connectNodeInfo.qrCode.get("MN"));
|
||||
qrCode.setSerialNumber(connectNodeInfo.qrCode.get("SN"));
|
||||
}
|
||||
|
||||
((EquipmentManufacturerDataStatus) statusRecord.getDetails()).setSkuNumber(connectNodeInfo.skuNumber);
|
||||
((EquipmentManufacturerDataStatus) statusRecord.getDetails()).setModel(connectNodeInfo.model);
|
||||
((EquipmentManufacturerDataStatus) statusRecord.getDetails()).setRevision(connectNodeInfo.revision);
|
||||
((EquipmentManufacturerDataStatus) statusRecord.getDetails()).setSerialNumber(connectNodeInfo.serialNumber);
|
||||
((EquipmentManufacturerDataStatus) statusRecord.getDetails()).setQrCode(qrCode);
|
||||
if (connectNodeInfo.manufacturerName != null) {
|
||||
((EquipmentManufacturerDataStatus) statusRecord.getDetails()).setEquipmentManufacturer(EquipmentManufacturer.getByName(connectNodeInfo.manufacturerName.toUpperCase()));
|
||||
}
|
||||
((EquipmentManufacturerDataStatus) statusRecord.getDetails()).setManufacturerDate(connectNodeInfo.manufacturerDate);
|
||||
((EquipmentManufacturerDataStatus) statusRecord.getDetails()).setManufacturerUrl(connectNodeInfo.manufacturerUrl);
|
||||
((EquipmentManufacturerDataStatus) statusRecord.getDetails()).setModelDescription(connectNodeInfo.modelDescription);
|
||||
((EquipmentManufacturerDataStatus) statusRecord.getDetails()).setReferenceDesign(connectNodeInfo.referenceDesign);
|
||||
if (connectNodeInfo.certificationRegion != null && !connectNodeInfo.certificationRegion.equalsIgnoreCase("unknown")) {
|
||||
((EquipmentManufacturerDataStatus) statusRecord.getDetails()).setCertificationRegion(
|
||||
CountryCode.getByName(connectNodeInfo.certificationRegion.toUpperCase()));
|
||||
}
|
||||
if (connectNodeInfo.macAddress != null && !connectNodeInfo.macAddress.equalsIgnoreCase("unknown")) {
|
||||
((EquipmentManufacturerDataStatus) statusRecord.getDetails()).setMacAddress(MacAddress.valueOf(connectNodeInfo.macAddress));
|
||||
}
|
||||
|
||||
Status manufacturerStatus = statusServiceInterface.update(statusRecord);
|
||||
LOG.debug("EQUIPMENT_MANUFACTURER_DATA for AP {} updated to {}", ce.getName(), manufacturerStatus);
|
||||
|
||||
statusRecord = statusServiceInterface.getOrNull(ce.getCustomerId(), ce.getId(), StatusDataType.FIRMWARE);
|
||||
if (statusRecord == null) {
|
||||
statusRecord = new Status();
|
||||
@@ -1664,33 +1714,48 @@ public class OpensyncExternalIntegrationCloud implements OpensyncExternalIntegra
|
||||
|
||||
private Status configureManufacturerDetailsStatus(OpensyncAWLANNode node, int customerId, long equipmentId) {
|
||||
|
||||
Status manufacturerData = null;
|
||||
EquipmentManufacturerQrCode qrCode = null;
|
||||
if (node.getQrCode() != null) {
|
||||
qrCode = new EquipmentManufacturerQrCode(EquipmentType.getByName(node.getQrCode().get("DT").toUpperCase()),
|
||||
MacAddress.valueOf(node.getQrCode().get("DM")), node.getQrCode().get("VN"), node.getQrCode().get("SN"), node.getQrCode().get("MN"),
|
||||
node.getQrCode().get("HW"));
|
||||
Status statusRecord = statusServiceInterface.getOrNull(customerId, equipmentId, StatusDataType.EQUIPMENT_MANUFACTURER_DATA);
|
||||
if (statusRecord == null) {
|
||||
statusRecord = new Status();
|
||||
statusRecord.setCustomerId(customerId);
|
||||
statusRecord.setEquipmentId(equipmentId);
|
||||
statusRecord.setStatusDataType(StatusDataType.EQUIPMENT_MANUFACTURER_DATA);
|
||||
EquipmentManufacturerDataStatus statusData = new EquipmentManufacturerDataStatus();
|
||||
statusRecord.setDetails(statusData);
|
||||
}
|
||||
|
||||
EquipmentManufacturerQrCode qrCode = new EquipmentManufacturerQrCode();
|
||||
|
||||
if (qrCode != null && node.getReferenceDesign() != null && node.getCertificationRegion() != null && node.getManufacturerDate() != null
|
||||
&& node.getManufacturerName() != null && node.getManufacturerUrl() != null && node.getId() != null) {
|
||||
EquipmentManufacturerDataStatus reportedDataStatus = new EquipmentManufacturerDataStatus(node.getSkuNumber(), node.getModel(), node.getRevision(),
|
||||
node.getSerialNumber(), qrCode, EquipmentManufacturer.getByName(node.getManufacturerName()), node.getManufacturerDate(),
|
||||
node.getManufacturerUrl(), node.getModelDescription(), node.getReferenceDesign(), CountryCode.getByName(node.getCertificationRegion()),
|
||||
MacAddress.valueOf(node.getId()));
|
||||
|
||||
manufacturerData = new Status();
|
||||
manufacturerData.setCustomerId(customerId);
|
||||
manufacturerData.setDetails(reportedDataStatus);
|
||||
manufacturerData.setEquipmentId(equipmentId);
|
||||
manufacturerData.setStatusDataType(StatusDataType.EQUIPMENT_MANUFACTURER_DATA);
|
||||
|
||||
if (node.qrCode != null) {
|
||||
qrCode.setDeviceType(EquipmentType.getByName(node.qrCode.get("DT")));
|
||||
qrCode.setVendorName(node.qrCode.get("VN"));
|
||||
qrCode.setDeviceMac(MacAddress.valueOf(node.qrCode.get("DM")));
|
||||
qrCode.setHwRevision(node.qrCode.get("HW"));
|
||||
qrCode.setModelName(node.qrCode.get("MN"));
|
||||
qrCode.setSerialNumber(node.qrCode.get("SN"));
|
||||
}
|
||||
|
||||
((EquipmentManufacturerDataStatus) statusRecord.getDetails()).setSkuNumber(node.skuNumber);
|
||||
((EquipmentManufacturerDataStatus) statusRecord.getDetails()).setModel(node.model);
|
||||
((EquipmentManufacturerDataStatus) statusRecord.getDetails()).setRevision(node.revision);
|
||||
((EquipmentManufacturerDataStatus) statusRecord.getDetails()).setSerialNumber(node.serialNumber);
|
||||
((EquipmentManufacturerDataStatus) statusRecord.getDetails()).setQrCode(qrCode);
|
||||
if (node.manufacturerName != null && !node.manufacturerName.equalsIgnoreCase("unknown")) {
|
||||
((EquipmentManufacturerDataStatus) statusRecord.getDetails()).setEquipmentManufacturer(EquipmentManufacturer.getByName(node.manufacturerName));
|
||||
}
|
||||
((EquipmentManufacturerDataStatus) statusRecord.getDetails()).setManufacturerDate(node.manufacturerDate);
|
||||
((EquipmentManufacturerDataStatus) statusRecord.getDetails()).setManufacturerUrl(node.manufacturerUrl);
|
||||
((EquipmentManufacturerDataStatus) statusRecord.getDetails()).setModelDescription(node.modelDescription);
|
||||
((EquipmentManufacturerDataStatus) statusRecord.getDetails()).setReferenceDesign(node.referenceDesign);
|
||||
if (node.certificationRegion != null && !node.certificationRegion.equalsIgnoreCase("unknown")) {
|
||||
((EquipmentManufacturerDataStatus) statusRecord.getDetails()).setCertificationRegion(
|
||||
CountryCode.getByName(node.certificationRegion.toUpperCase()));
|
||||
}
|
||||
if (node.getId() != null && !node.getId().equalsIgnoreCase("unknown")) {
|
||||
((EquipmentManufacturerDataStatus) statusRecord.getDetails()).setMacAddress(MacAddress.valueOf(node.getId()));
|
||||
}
|
||||
|
||||
|
||||
return manufacturerData;
|
||||
return statusRecord;
|
||||
}
|
||||
|
||||
private Status configureProtocolStatus(OpensyncAWLANNode node, int customerId, long equipmentId, String reportedSwImageName,
|
||||
|
||||
@@ -68,6 +68,38 @@ public class OpensyncAWLANNode extends OpensyncAPBase {
|
||||
|
||||
public OpensyncAWLANNode(Row row) {
|
||||
this();
|
||||
|
||||
// mqtt_settings {"key":"string","max":"unlimited","min":0,"value":"string"}
|
||||
// model {"key":"string","min":0}
|
||||
// sku_number {"key":"string","min":0}
|
||||
// version_matrix {"key":"string","max":"unlimited","min":0,"value":{"maxLength":128,"type":"string"}}
|
||||
// model_description "string"
|
||||
// certification_region "string"
|
||||
// id "string"
|
||||
// firmware_version "string"
|
||||
// firmware_url {"key":{"maxLength":256,"type":"string"}}
|
||||
// _uuid "uuid"
|
||||
// upgrade_dl_timer "integer"
|
||||
// reference_design "string"
|
||||
// platform_version "string"
|
||||
// firmware_pass {"key":{"maxLength":256,"type":"string"}}
|
||||
// upgrade_timer "integer"
|
||||
// redirector_addr "string"
|
||||
// led_config {"key":"string","max":"unlimited","min":0,"value":"string"}
|
||||
// max_backoff "integer"
|
||||
// mqtt_headers {"key":"string","max":"unlimited","min":0,"value":"string"}
|
||||
// serial_number {"key":"string","min":0}
|
||||
// _version "uuid"
|
||||
// upgrade_status "integer"
|
||||
// device_mode {"key":{"enum":["set",["battery","cloud","custom","monitor"]],"type":"string"},"min":0}
|
||||
// min_backoff "integer"
|
||||
// manufacturer_date "string"
|
||||
// mqtt_topics {"key":"string","max":"unlimited","min":0,"value":{"maxLength":128,"type":"string"}}
|
||||
// revision "string"
|
||||
// manufacturer_name "string"
|
||||
// manufacturer_url "string"
|
||||
// manager_addr "string"
|
||||
// factory_reset {"key":"boolean","min":0}
|
||||
Map<String, Value> map = row.getColumns();
|
||||
if (map.get("mqtt_settings") != null) {
|
||||
this.setMqttSettings(row.getMapColumn("mqtt_settings"));
|
||||
@@ -88,25 +120,25 @@ public class OpensyncAWLANNode extends OpensyncAPBase {
|
||||
this.setId(getSingleValueFromSet(row, "id"));
|
||||
}
|
||||
if (map.get("reference_design") != null) {
|
||||
this.setReferenceDesign(getSingleValueFromSet(row, "reference_design"));
|
||||
this.setReferenceDesign(row.getStringColumn("reference_design"));
|
||||
}
|
||||
if (map.get("qr_code") != null) {
|
||||
this.setQrCode(row.getMapColumn("qr_code"));
|
||||
}
|
||||
if ((map.get("model_description") != null)) {
|
||||
this.setModelDescription(getSingleValueFromSet(row, "model_description"));
|
||||
this.setModelDescription(row.getStringColumn("model_description"));
|
||||
}
|
||||
if ((map.get("manufacturer_url") != null)) {
|
||||
this.setManufacturerUrl(getSingleValueFromSet(row, "manufacturer_url"));
|
||||
this.setManufacturerUrl(row.getStringColumn("manufacturer_url"));
|
||||
}
|
||||
if ((map.get("manufacturer_name") != null)) {
|
||||
this.setManufacturerName(getSingleValueFromSet(row, "manufacturer_name"));
|
||||
this.setManufacturerName(row.getStringColumn("manufacturer_name"));
|
||||
}
|
||||
if ((map.get("manufacturer_date") != null)) {
|
||||
this.setManufacturerDate(getSingleValueFromSet(row, "manufacturer_date"));
|
||||
this.setManufacturerDate(row.getStringColumn("manufacturer_date"));
|
||||
}
|
||||
if (map.get("certification_region") != null) {
|
||||
this.setCertificationRegion(getSingleValueFromSet(row, "certification_region"));
|
||||
this.setCertificationRegion(row.getStringColumn("certification_region"));
|
||||
}
|
||||
if (map.get("version_matrix") != null) {
|
||||
this.setVersionMatrix(row.getMapColumn("version_matrix"));
|
||||
|
||||
@@ -170,12 +170,16 @@ public class OvsdbNode extends OvsdbDaoBase {
|
||||
|
||||
DatabaseSchema dbSchema = ovsdbClient.getSchema(ovsdbName).get();
|
||||
Set<String> keys = dbSchema.getTables().get(awlanNodeDbTable).getColumns().keySet();
|
||||
if (keys.containsAll(Set.of("reference_design", "qr_code", "model_description", "manufacturer_url", "manufacturer_name", "manufacturer_date",
|
||||
if (keys.containsAll(Set.of("reference_design", "model_description", "manufacturer_url", "manufacturer_name", "manufacturer_date",
|
||||
"certification_region"))) {
|
||||
columns.addAll(Set.of("reference_design", "qr_code", "model_description", "manufacturer_url", "manufacturer_name", "manufacturer_date",
|
||||
columns.addAll(Set.of("reference_design", "model_description", "manufacturer_url", "manufacturer_name", "manufacturer_date",
|
||||
"certification_region"));
|
||||
}
|
||||
|
||||
if (keys.contains("qr_code")) {
|
||||
columns.add("qr_code");
|
||||
}
|
||||
|
||||
operations.add(new Select(awlanNodeDbTable, conditions, columns));
|
||||
CompletableFuture<OperationResult[]> fResult = ovsdbClient.transact(ovsdbName, operations);
|
||||
OperationResult[] result = fResult.get(ovsdbTimeoutSec, TimeUnit.SECONDS);
|
||||
@@ -207,15 +211,18 @@ public class OvsdbNode extends OvsdbDaoBase {
|
||||
ret.serialNumber = getSingleValueFromSet(row, "serial_number");
|
||||
ret.model = getSingleValueFromSet(row, "model");
|
||||
|
||||
if (keys.containsAll(Set.of("reference_design", "qr_code", "model_description", "manufacturer_url", "manufacturer_name", "manufacturer_date",
|
||||
if (keys.containsAll(Set.of("reference_design", "model_description", "manufacturer_url", "manufacturer_name", "manufacturer_date",
|
||||
"certification_region"))) {
|
||||
ret.referenceDesign = getSingleValueFromSet(row, "reference_design");
|
||||
ret.referenceDesign = row.getStringColumn("reference_design");
|
||||
ret.modelDescription = row.getStringColumn("model_description");
|
||||
ret.manufacturerUrl = row.getStringColumn("manufacturer_url");
|
||||
ret.manufacturerName = row.getStringColumn("manufacturer_name");
|
||||
ret.manufacturerDate = row.getStringColumn("manufacturer_date");
|
||||
ret.certificationRegion = row.getStringColumn("certification_region");
|
||||
}
|
||||
|
||||
if (keys.contains("qr_code")) {
|
||||
ret.qrCode = row.getMapColumn("qr_code");
|
||||
ret.modelDescription = getSingleValueFromSet(row, "model_description");
|
||||
ret.manufacturerUrl = getSingleValueFromSet(row, "manufacturer_url");
|
||||
ret.manufacturerName = getSingleValueFromSet(row, "manufacturer_name");
|
||||
ret.manufacturerDate = getSingleValueFromSet(row, "manufacturer_date");
|
||||
ret.certificationRegion = getSingleValueFromSet(row, "certification_region");
|
||||
}
|
||||
|
||||
// now populate macAddress, ipV4Address from Wifi_Inet_State
|
||||
|
||||
@@ -217,7 +217,7 @@ public class OvsdbDaoTest {
|
||||
apConfig.setEquipmentLocation(location);
|
||||
ovsdbDao.getRadiusAccountingConfiguration(apConfig, ssidConfig, security);
|
||||
|
||||
assert (security.get("radius_acct_interval").equals("60"));
|
||||
assert (security.get("radius_acct_interval").equals("0"));
|
||||
assert (security.get("radius_acct_ip").equals("192.168.0.1"));
|
||||
assert (security.get("radius_acct_port").equals("1813"));
|
||||
assert (security.get("radius_acct_secret").equals("secret"));
|
||||
|
||||
Reference in New Issue
Block a user