mirror of
https://github.com/Telecominfraproject/wlan-cloud-opensync-controller.git
synced 2025-11-01 02:57:49 +00:00
Compare commits
246 Commits
release-te
...
master
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
3df47c5914 | ||
|
|
2a7d3ece55 | ||
|
|
fe24ece405 | ||
|
|
8af79b03c0 | ||
|
|
5ad10a53c6 | ||
|
|
91dde5d3d7 | ||
|
|
949c8cb37f | ||
|
|
5ebecaf88f | ||
|
|
884efdbf08 | ||
|
|
65c05caf1f | ||
|
|
a72a147afe | ||
|
|
8110f796c9 | ||
|
|
2b187ed68d | ||
|
|
a4559b4f37 | ||
|
|
8105c5bc9d | ||
|
|
1409d75dd9 | ||
|
|
a6cb5ae939 | ||
|
|
fb3963e750 | ||
|
|
b7779f3137 | ||
|
|
9b3f6f5cb2 | ||
|
|
d026266bfa | ||
|
|
27f406a615 | ||
|
|
b15dbc61af | ||
|
|
14adaaacbe | ||
|
|
11f0aa8856 | ||
|
|
cbd27b37bf | ||
|
|
80834c0a31 | ||
|
|
45642464fc | ||
|
|
be9d880bc3 | ||
|
|
711fea3407 | ||
|
|
e5e7ac7e8b | ||
|
|
6264a8c490 | ||
|
|
1070708b44 | ||
|
|
80845aa800 | ||
|
|
7a646fd459 | ||
|
|
905f37cc68 | ||
|
|
1a58b3af01 | ||
|
|
bb130e5f3e | ||
|
|
b8e4c404bb | ||
|
|
42a520b7ec | ||
|
|
90b0da4850 | ||
|
|
b842c532a8 | ||
|
|
785dc0e6c4 | ||
|
|
927ce4e589 | ||
|
|
c287f7cdc6 | ||
|
|
2aa51afe9d | ||
|
|
716e5d8129 | ||
|
|
4f462ecf70 | ||
|
|
fc61328fc4 | ||
|
|
18698fc188 | ||
|
|
34a6baf956 | ||
|
|
2e3b0c277a | ||
|
|
4370753206 | ||
|
|
aaa584ca3c | ||
|
|
210976887f | ||
|
|
43f53ee0be | ||
|
|
1381451989 | ||
|
|
6124309dbb | ||
|
|
f2e30505e5 | ||
|
|
bda589e65e | ||
|
|
5a98d4bd83 | ||
|
|
a772cbe7fa | ||
|
|
11adb02fd2 | ||
|
|
9aa4a102a5 | ||
|
|
d482b4062f | ||
|
|
ee49415b0a | ||
|
|
cc035e7fe1 | ||
|
|
d617efbcc1 | ||
|
|
53f19028dc | ||
|
|
f2b4b616ad | ||
|
|
9802ed2a3f | ||
|
|
cfc5caee64 | ||
|
|
b0abd3847a | ||
|
|
71c947427b | ||
|
|
0dc72a6fe4 | ||
|
|
5540d83dd3 | ||
|
|
572f48445c | ||
|
|
4df8bda2b3 | ||
|
|
047ce7f07a | ||
|
|
1264640c33 | ||
|
|
eef372cf0d | ||
|
|
fcccf418dd | ||
|
|
c098cd72b6 | ||
|
|
42ecccee5e | ||
|
|
663340e749 | ||
|
|
01c7f270ad | ||
|
|
91c17a6271 | ||
|
|
92235affee | ||
|
|
bbe36d4a9f | ||
|
|
3c9ee65742 | ||
|
|
53022b5813 | ||
|
|
b59a40afc0 | ||
|
|
3447df19ef | ||
|
|
de671722f7 | ||
|
|
6b7c418ccd | ||
|
|
e6472cf80b | ||
|
|
07489c2550 | ||
|
|
f39f148706 | ||
|
|
e0c26b66e0 | ||
|
|
ee1350fbe9 | ||
|
|
b7a3564153 | ||
|
|
e173e02eae | ||
|
|
1fbc4e1dff | ||
|
|
cd67fc15dd | ||
|
|
a98cca3d8c | ||
|
|
4552118b4e | ||
|
|
67abbc0bc7 | ||
|
|
9d33afec93 | ||
|
|
1bdecada9b | ||
|
|
9b31e67822 | ||
|
|
1af6b363b8 | ||
|
|
04c6a13675 | ||
|
|
44238de99a | ||
|
|
d644fa5e37 | ||
|
|
1e74c777fd | ||
|
|
d43a1d0f7b | ||
|
|
d2e3fa7a72 | ||
|
|
f96b5b4bed | ||
|
|
eeeec8999f | ||
|
|
052bad3ef2 | ||
|
|
cc007f6115 | ||
|
|
18dbc3fe96 | ||
|
|
ee4cf9ff59 | ||
|
|
cfa8c7e039 | ||
|
|
4565d7a446 | ||
|
|
89f608b5bc | ||
|
|
0fda8b51bf | ||
|
|
180fc3ceb1 | ||
|
|
9607124360 | ||
|
|
acf798bbc9 | ||
|
|
1cee28a694 | ||
|
|
68037ecf80 | ||
|
|
7eb9ea5039 | ||
|
|
89f9e2b11e | ||
|
|
087fb461a9 | ||
|
|
c9e93e2bb3 | ||
|
|
0d77847761 | ||
|
|
4d2d0d3990 | ||
|
|
0ad90840fd | ||
|
|
ea6e5cf761 | ||
|
|
1e0fd00d98 | ||
|
|
7928dceefb | ||
|
|
4773530305 | ||
|
|
a0a12d3c8c | ||
|
|
6fc02664ad | ||
|
|
ff8b0a006c | ||
|
|
8510882ed8 | ||
|
|
d6f907f1af | ||
|
|
b04cd86cda | ||
|
|
657f61466c | ||
|
|
234c087180 | ||
|
|
7d785e3a10 | ||
|
|
738d11b11c | ||
|
|
2c787b4fef | ||
|
|
23f9da0af0 | ||
|
|
15a7741909 | ||
|
|
a66049a600 | ||
|
|
36d5f30a73 | ||
|
|
db944d8509 | ||
|
|
85bf7e8f98 | ||
|
|
aefc799975 | ||
|
|
0021d52624 | ||
|
|
6416a76f88 | ||
|
|
036f402824 | ||
|
|
19be90a423 | ||
|
|
8ce5b3ed89 | ||
|
|
6647075961 | ||
|
|
995b4a294b | ||
|
|
88dac08eb1 | ||
|
|
010251bffb | ||
|
|
469c5fefb5 | ||
|
|
511f3c1253 | ||
|
|
e7c288683f | ||
|
|
e54ec7ab01 | ||
|
|
e1f84648c8 | ||
|
|
b42a1f4318 | ||
|
|
925246604b | ||
|
|
32160fd699 | ||
|
|
61b55491ed | ||
|
|
7ae99a1b51 | ||
|
|
877cf41249 | ||
|
|
dc6e1a56b8 | ||
|
|
f0f534fd70 | ||
|
|
ae846588b2 | ||
|
|
6a8d5478a0 | ||
|
|
2f12768168 | ||
|
|
b4d010e64f | ||
|
|
460b1f78be | ||
|
|
7e0a4bcddf | ||
|
|
f4691fccd6 | ||
|
|
b51cd52f80 | ||
|
|
5a87904787 | ||
|
|
ef31af48db | ||
|
|
cea96f49f3 | ||
|
|
b7ab0b973c | ||
|
|
0ea56397b2 | ||
|
|
bba5008753 | ||
|
|
095c611b8a | ||
|
|
cdc29b6b32 | ||
|
|
4822a60f79 | ||
|
|
6a22a9b2fb | ||
|
|
455b61c6c3 | ||
|
|
7fa1270066 | ||
|
|
346476ef33 | ||
|
|
b245061ed9 | ||
|
|
8a58ccd636 | ||
|
|
49050f774f | ||
|
|
2cbe0b8b34 | ||
|
|
ab0061b582 | ||
|
|
a0f475a789 | ||
|
|
9b52e7bf78 | ||
|
|
cd4874ae18 | ||
|
|
9659433e76 | ||
|
|
9a79c0e103 | ||
|
|
cc0fd8c009 | ||
|
|
41570bb705 | ||
|
|
932edc34c2 | ||
|
|
34aba7191a | ||
|
|
9b83f28ab3 | ||
|
|
cced70dd20 | ||
|
|
4a9ca9c949 | ||
|
|
41f65673ca | ||
|
|
33e004a3e0 | ||
|
|
cabbebcb7a | ||
|
|
40ac428bb5 | ||
|
|
aead466770 | ||
|
|
14cc34ef75 | ||
|
|
01c75f8175 | ||
|
|
2f32ec66d5 | ||
|
|
eea9d9b044 | ||
|
|
8cf2e9e402 | ||
|
|
aeb949a884 | ||
|
|
67c0ae9ffc | ||
|
|
8ff3010190 | ||
|
|
9cd260f1a9 | ||
|
|
66035a22ad | ||
|
|
1d6c356a1a | ||
|
|
77b67ca3d2 | ||
|
|
40c283ba89 | ||
|
|
08b9b62f81 | ||
|
|
8bc37f4a9a | ||
|
|
b8cd98017d | ||
|
|
0c89e6c624 | ||
|
|
becf59dc0f | ||
|
|
feff3d6530 | ||
|
|
2e7a090722 |
@@ -1,123 +1,139 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<parent>
|
||||
<groupId>com.telecominfraproject.wlan</groupId>
|
||||
<artifactId>tip-wlan-cloud-root-pom</artifactId>
|
||||
<version>0.0.1-SNAPSHOT</version>
|
||||
<version>1.3.0-SNAPSHOT</version>
|
||||
<relativePath>../../wlan-cloud-root</relativePath>
|
||||
</parent>
|
||||
<artifactId>opensync-ext-cloud</artifactId>
|
||||
<name>opensync-ext-cloud</name>
|
||||
<description>Configuration interface that provides config from the cloud services.</description>
|
||||
<dependencies>
|
||||
<!-- <dependency> -->
|
||||
<!-- <groupId>com.telecominfraproject.wlan</groupId> -->
|
||||
<!-- <artifactId>opensync-ext-interface</artifactId> -->
|
||||
<!-- <version>${tip-wlan-cloud.release.version}</version> -->
|
||||
<!-- </dependency> -->
|
||||
<dependency>
|
||||
<groupId>com.telecominfraproject.wlan</groupId>
|
||||
<artifactId>opensync-ext-interface</artifactId>
|
||||
<version>1.3.0-SNAPSHOT</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.telecominfraproject.wlan</groupId>
|
||||
<artifactId>opensync-gateway</artifactId>
|
||||
<version>${tip-wlan-cloud.release.version}</version>
|
||||
<version>1.3.0-SNAPSHOT</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<artifactId>base-client</artifactId>
|
||||
<groupId>com.telecominfraproject.wlan</groupId>
|
||||
<version>${tip-wlan-cloud.release.version}</version>
|
||||
<version>1.3.0-SNAPSHOT</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<artifactId>equipment-gateway-models</artifactId>
|
||||
<groupId>com.telecominfraproject.wlan</groupId>
|
||||
<version>${tip-wlan-cloud.release.version}</version>
|
||||
<version>1.3.0-SNAPSHOT</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<artifactId>customer-service-interface</artifactId>
|
||||
<groupId>com.telecominfraproject.wlan</groupId>
|
||||
<version>${tip-wlan-cloud.release.version}</version>
|
||||
<version>1.3.0-SNAPSHOT</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<artifactId>location-service-interface</artifactId>
|
||||
<groupId>com.telecominfraproject.wlan</groupId>
|
||||
<version>${tip-wlan-cloud.release.version}</version>
|
||||
<version>1.3.0-SNAPSHOT</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<artifactId>equipment-service-interface</artifactId>
|
||||
<groupId>com.telecominfraproject.wlan</groupId>
|
||||
<version>${tip-wlan-cloud.release.version}</version>
|
||||
<version>1.3.0-SNAPSHOT</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<artifactId>profile-service-interface</artifactId>
|
||||
<groupId>com.telecominfraproject.wlan</groupId>
|
||||
<version>${tip-wlan-cloud.release.version}</version>
|
||||
<version>1.3.0-SNAPSHOT</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<artifactId>portal-user-service-interface</artifactId>
|
||||
<groupId>com.telecominfraproject.wlan</groupId>
|
||||
<version>${tip-wlan-cloud.release.version}</version>
|
||||
<version>1.3.0-SNAPSHOT</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<artifactId>service-metric-service-interface</artifactId>
|
||||
<groupId>com.telecominfraproject.wlan</groupId>
|
||||
<version>${tip-wlan-cloud.release.version}</version>
|
||||
<version>1.3.0-SNAPSHOT</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<artifactId>service-metric-models</artifactId>
|
||||
<groupId>com.telecominfraproject.wlan</groupId>
|
||||
<version>1.3.0-SNAPSHOT</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<artifactId>system-event-service-interface</artifactId>
|
||||
<groupId>com.telecominfraproject.wlan</groupId>
|
||||
<version>${tip-wlan-cloud.release.version}</version>
|
||||
<version>1.3.0-SNAPSHOT</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<artifactId>system-event-models</artifactId>
|
||||
<groupId>com.telecominfraproject.wlan</groupId>
|
||||
<version>1.3.0-SNAPSHOT</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<artifactId>alarm-service-interface</artifactId>
|
||||
<groupId>com.telecominfraproject.wlan</groupId>
|
||||
<version>${tip-wlan-cloud.release.version}</version>
|
||||
<version>1.3.0-SNAPSHOT</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<artifactId>status-service-interface</artifactId>
|
||||
<groupId>com.telecominfraproject.wlan</groupId>
|
||||
<version>${tip-wlan-cloud.release.version}</version>
|
||||
<version>1.3.0-SNAPSHOT</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<artifactId>client-service-interface</artifactId>
|
||||
<groupId>com.telecominfraproject.wlan</groupId>
|
||||
<version>${tip-wlan-cloud.release.version}</version>
|
||||
<version>1.3.0-SNAPSHOT</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<artifactId>client-models</artifactId>
|
||||
<groupId>com.telecominfraproject.wlan</groupId>
|
||||
<version>1.3.0-SNAPSHOT</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<artifactId>routing-service-interface</artifactId>
|
||||
<groupId>com.telecominfraproject.wlan</groupId>
|
||||
<version>${tip-wlan-cloud.release.version}</version>
|
||||
<version>1.3.0-SNAPSHOT</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<artifactId>firmware-service-interface</artifactId>
|
||||
<groupId>com.telecominfraproject.wlan</groupId>
|
||||
<version>${tip-wlan-cloud.release.version}</version>
|
||||
<version>1.3.0-SNAPSHOT</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<artifactId>manufacturer-service-interface</artifactId>
|
||||
<groupId>com.telecominfraproject.wlan</groupId>
|
||||
<version>${tip-wlan-cloud.release.version}</version>
|
||||
<version>1.3.0-SNAPSHOT</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<artifactId>cloud-event-dispatcher-interface</artifactId>
|
||||
<groupId>com.telecominfraproject.wlan</groupId>
|
||||
<version>${tip-wlan-cloud.release.version}</version>
|
||||
<version>1.3.0-SNAPSHOT</version>
|
||||
</dependency>
|
||||
|
||||
</dependencies>
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -1,3 +1,4 @@
|
||||
|
||||
package com.telecominfraproject.wlan.opensync.external.integration.controller;
|
||||
|
||||
import java.util.ArrayList;
|
||||
@@ -24,6 +25,7 @@ import org.springframework.security.web.bind.annotation.AuthenticationPrincipal;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMethod;
|
||||
import org.springframework.web.bind.annotation.RequestParam;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import com.telecominfraproject.wlan.core.client.PingClient;
|
||||
@@ -32,6 +34,7 @@ import com.telecominfraproject.wlan.core.model.service.GatewayType;
|
||||
import com.telecominfraproject.wlan.core.model.service.ServiceInstanceInformation;
|
||||
import com.telecominfraproject.wlan.core.server.container.ConnectorProperties;
|
||||
import com.telecominfraproject.wlan.datastore.exceptions.DsEntityNotFoundException;
|
||||
import com.telecominfraproject.wlan.equipment.models.CellSizeAttributes;
|
||||
import com.telecominfraproject.wlan.equipmentgateway.models.CEGWBaseCommand;
|
||||
import com.telecominfraproject.wlan.equipmentgateway.models.CEGWBlinkRequest;
|
||||
import com.telecominfraproject.wlan.equipmentgateway.models.CEGWChangeRedirectorHost;
|
||||
@@ -42,11 +45,13 @@ import com.telecominfraproject.wlan.equipmentgateway.models.CEGWConfigChangeNoti
|
||||
import com.telecominfraproject.wlan.equipmentgateway.models.CEGWFirmwareDownloadRequest;
|
||||
import com.telecominfraproject.wlan.equipmentgateway.models.CEGWFirmwareFlashRequest;
|
||||
import com.telecominfraproject.wlan.equipmentgateway.models.CEGWNewChannelRequest;
|
||||
import com.telecominfraproject.wlan.equipmentgateway.models.CEGWCellSizeAttributesRequest;
|
||||
import com.telecominfraproject.wlan.equipmentgateway.models.CEGWRadioResetRequest;
|
||||
import com.telecominfraproject.wlan.equipmentgateway.models.CEGWRebootRequest;
|
||||
import com.telecominfraproject.wlan.equipmentgateway.models.CEGWRouteCheck;
|
||||
import com.telecominfraproject.wlan.equipmentgateway.models.CEGWStartDebugEngine;
|
||||
import com.telecominfraproject.wlan.equipmentgateway.models.CEGWStopDebugEngine;
|
||||
import com.telecominfraproject.wlan.equipmentgateway.models.CEGatewayCommand;
|
||||
import com.telecominfraproject.wlan.equipmentgateway.models.EquipmentCommand;
|
||||
import com.telecominfraproject.wlan.equipmentgateway.models.EquipmentCommandResponse;
|
||||
import com.telecominfraproject.wlan.equipmentgateway.models.GatewayDefaults;
|
||||
@@ -147,19 +152,16 @@ public class OpensyncCloudGatewayController {
|
||||
String inventoryId = command.getInventoryId();
|
||||
|
||||
if (com.telecominfraproject.wlan.core.model.json.BaseJsonModel.hasUnsupportedValue(command)) {
|
||||
LOG.error("[{}] Failed to deliver command {}, command contains unsupported value", inventoryId,
|
||||
command);
|
||||
ret.add(new EquipmentCommandResponse(CEGWCommandResultCode.UnsupportedCommand,
|
||||
"Unsupported value in command for " + inventoryId, command, registeredGateway.getHostname(),
|
||||
registeredGateway.getPort()));
|
||||
LOG.error("[{}] Failed to deliver command {}, command contains unsupported value", inventoryId, command);
|
||||
ret.add(new EquipmentCommandResponse(CEGWCommandResultCode.UnsupportedCommand, "Unsupported value in command for " + inventoryId, command,
|
||||
registeredGateway == null ? null : registeredGateway.getHostname(), registeredGateway == null ? -1 : registeredGateway.getPort()));
|
||||
return;
|
||||
}
|
||||
OvsdbSession session = ovsdbSessionMapInterface.getSession(inventoryId);
|
||||
if (session == null) {
|
||||
LOG.warn("[{}] Failed to deliver command {}, equipment session not found", inventoryId, command);
|
||||
ret.add(new EquipmentCommandResponse(CEGWCommandResultCode.NoRouteToCE,
|
||||
"No session found for " + inventoryId, command, registeredGateway.getHostname(),
|
||||
registeredGateway.getPort()));
|
||||
ret.add(new EquipmentCommandResponse(CEGWCommandResultCode.NoRouteToCE, "No session found for " + inventoryId, command,
|
||||
registeredGateway == null ? null : registeredGateway.getHostname(), registeredGateway == null ? -1 : registeredGateway.getPort()));
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -199,30 +201,35 @@ public class OpensyncCloudGatewayController {
|
||||
ret.add(processRadioReboot(session, (CEGWRebootRequest) command));
|
||||
break;
|
||||
case ClientBlocklistChangeNotification:
|
||||
ret.add(sendClientBlocklistChangeNotification(session,
|
||||
(CEGWClientBlocklistChangeNotification) command));
|
||||
ret.add(sendClientBlocklistChangeNotification(session, (CEGWClientBlocklistChangeNotification) command));
|
||||
break;
|
||||
case NewChannelRequest:
|
||||
ret.add(sendNewChannelRequest(session, (CEGWNewChannelRequest) command));
|
||||
break;
|
||||
case CellSizeAttributesRequest:
|
||||
ret.add(sendCellSizeRequest(session, (CEGWCellSizeAttributesRequest) command));
|
||||
break;
|
||||
// case MostRecentStatsTimestamp:
|
||||
// ret.add(sendGetMostRecentStatsTimestampRequest(command, inventoryId));
|
||||
// break;
|
||||
default:
|
||||
LOG.warn("[{}] Failed to deliver command {}, unsupported command type", inventoryId, command);
|
||||
ret.add(new EquipmentCommandResponse(
|
||||
CEGWCommandResultCode.UnsupportedCommand, "Invalid command type ("
|
||||
+ command.getCommandType() + ") for equipment (" + inventoryId + ")",
|
||||
command, registeredGateway.getHostname(), registeredGateway.getPort()));
|
||||
ret.add(new EquipmentCommandResponse(CEGWCommandResultCode.UnsupportedCommand,
|
||||
"Invalid command type (" + command.getCommandType() + ") for equipment (" + inventoryId + ")", command,
|
||||
registeredGateway == null ? null : registeredGateway.getHostname(),
|
||||
registeredGateway == null ? -1 : registeredGateway.getPort()));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
});
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
private EquipmentCommandResponse processFirmwareDownload(OvsdbSession session,
|
||||
CEGWFirmwareDownloadRequest command) {
|
||||
private EquipmentCommandResponse processFirmwareDownload(OvsdbSession session, CEGWFirmwareDownloadRequest command) {
|
||||
return sendMessage(session, command.getInventoryId(), command);
|
||||
}
|
||||
|
||||
@@ -243,6 +250,8 @@ public class OpensyncCloudGatewayController {
|
||||
return new GatewayDefaults();
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Verify a route to customer equipment
|
||||
*
|
||||
@@ -254,19 +263,18 @@ public class OpensyncCloudGatewayController {
|
||||
if (null != command.getRoutingId()) {
|
||||
if (!command.getRoutingId().equals(session.getRoutingId())) {
|
||||
|
||||
LOG.info("[C:{} E:{} R:{}] Stale routing entry ({}) detected", session.getCustomerId(),
|
||||
command.getInventoryId(), session.getRoutingId(), command.getRoutingId());
|
||||
LOG.info("[E:{} R:{}] Stale routing entry ({}) detected", command.getInventoryId(), session.getRoutingId(),
|
||||
command.getRoutingId());
|
||||
|
||||
return new EquipmentCommandResponse(CEGWCommandResultCode.NoRouteToCE, "Inactive Route Identifer",
|
||||
command, registeredGateway.getHostname(), registeredGateway.getPort());
|
||||
return new EquipmentCommandResponse(CEGWCommandResultCode.NoRouteToCE, "Inactive Route Identifer", command,
|
||||
registeredGateway == null ? null : registeredGateway.getHostname(), registeredGateway == null ? -1 : registeredGateway.getPort());
|
||||
}
|
||||
}
|
||||
return new EquipmentCommandResponse(CEGWCommandResultCode.Success, "Route active", command,
|
||||
registeredGateway.getHostname(), registeredGateway.getPort());
|
||||
registeredGateway == null ? null : registeredGateway.getHostname(), registeredGateway == null ? -1 : registeredGateway.getPort());
|
||||
}
|
||||
|
||||
private EquipmentCommandResponse sendConfigChangeNotification(OvsdbSession session,
|
||||
CEGWConfigChangeNotification command) {
|
||||
private EquipmentCommandResponse sendConfigChangeNotification(OvsdbSession session, CEGWConfigChangeNotification command) {
|
||||
|
||||
return sendMessage(session, command.getInventoryId(), command);
|
||||
}
|
||||
@@ -276,20 +284,17 @@ public class OpensyncCloudGatewayController {
|
||||
session.getOvsdbClient().shutdown();
|
||||
} catch (Exception e) {
|
||||
LOG.error("[{}] Failed to close session on CE: {}", command.getInventoryId(), e.getLocalizedMessage());
|
||||
return new EquipmentCommandResponse(
|
||||
CEGWCommandResultCode.FailedToSend, "Failed to send command " + command.getCommandType() + " to "
|
||||
+ command.getInventoryId() + ": " + e.getMessage(),
|
||||
command, registeredGateway.getHostname(), registeredGateway.getPort());
|
||||
return new EquipmentCommandResponse(CEGWCommandResultCode.FailedToSend,
|
||||
"Failed to send command " + command.getCommandType() + " to " + command.getInventoryId() + ": " + e.getMessage(), command,
|
||||
registeredGateway == null ? null : registeredGateway.getHostname(), registeredGateway == null ? -1 : registeredGateway.getPort());
|
||||
}
|
||||
LOG.debug("[{}] Closed session to CE", command.getInventoryId());
|
||||
return new EquipmentCommandResponse(CEGWCommandResultCode.Success,
|
||||
"Closed session to " + command.getInventoryId(), command, registeredGateway.getHostname(),
|
||||
registeredGateway.getPort());
|
||||
return new EquipmentCommandResponse(CEGWCommandResultCode.Success, "Closed session to " + command.getInventoryId(), command,
|
||||
registeredGateway == null ? null : registeredGateway.getHostname(), registeredGateway == null ? -1 : registeredGateway.getPort());
|
||||
|
||||
}
|
||||
|
||||
private EquipmentCommandResponse sendClientBlocklistChangeNotification(OvsdbSession session,
|
||||
CEGWClientBlocklistChangeNotification command) {
|
||||
private EquipmentCommandResponse sendClientBlocklistChangeNotification(OvsdbSession session, CEGWClientBlocklistChangeNotification command) {
|
||||
return sendMessage(session, command.getInventoryId(), command);
|
||||
}
|
||||
|
||||
@@ -297,6 +302,10 @@ public class OpensyncCloudGatewayController {
|
||||
return sendMessage(session, command.getInventoryId(), command);
|
||||
}
|
||||
|
||||
private EquipmentCommandResponse sendCellSizeRequest(OvsdbSession session, CEGWCellSizeAttributesRequest command) {
|
||||
return sendMessage(session, command.getInventoryId(), command);
|
||||
}
|
||||
|
||||
/**
|
||||
* Deliver a message in payload to the CE
|
||||
*
|
||||
@@ -308,15 +317,17 @@ public class OpensyncCloudGatewayController {
|
||||
private EquipmentCommandResponse sendMessage(OvsdbSession session, String inventoryId, EquipmentCommand command) {
|
||||
|
||||
LOG.debug("Received command {} for {}", command.getCommandType(), inventoryId);
|
||||
EquipmentCommandResponse response = new EquipmentCommandResponse(CEGWCommandResultCode.Success,
|
||||
"Received Command " + command.getCommandType() + " for " + inventoryId, command,
|
||||
registeredGateway.getHostname(), registeredGateway.getPort());
|
||||
EquipmentCommandResponse response =
|
||||
new EquipmentCommandResponse(CEGWCommandResultCode.Success, "Received Command " + command.getCommandType() + " for " + inventoryId, command,
|
||||
registeredGateway == null ? null : registeredGateway.getHostname(), registeredGateway == null ? -1 : registeredGateway.getPort());
|
||||
|
||||
if (command instanceof CEGWConfigChangeNotification) {
|
||||
if (command instanceof CEGWBlinkRequest) {
|
||||
String resultDetails = tipwlanOvsdbClient.processBlinkRequest(inventoryId, ((CEGWBlinkRequest)command).getBlinkAllLEDs());
|
||||
response.setResultDetail(resultDetails);
|
||||
} else if (command instanceof CEGWConfigChangeNotification) {
|
||||
tipwlanOvsdbClient.processConfigChanged(inventoryId);
|
||||
} else if (command instanceof CEGWClientBlocklistChangeNotification) {
|
||||
tipwlanOvsdbClient.processClientBlocklistChange(inventoryId,
|
||||
((CEGWClientBlocklistChangeNotification) command).getBlockList());
|
||||
tipwlanOvsdbClient.processClientBlocklistChange(inventoryId, ((CEGWClientBlocklistChangeNotification) command).getBlockList());
|
||||
} else if (command instanceof CEGWChangeRedirectorHost) {
|
||||
String newRedirectorAddress = ((CEGWChangeRedirectorHost) command).getRedirectorHost();
|
||||
tipwlanOvsdbClient.changeRedirectorHost(inventoryId, newRedirectorAddress);
|
||||
@@ -329,7 +340,15 @@ public class OpensyncCloudGatewayController {
|
||||
} else if (command instanceof CEGWNewChannelRequest) {
|
||||
CEGWNewChannelRequest request = (CEGWNewChannelRequest) command;
|
||||
Map<RadioType, Integer> newBackupChannels = request.getNewBackupChannels();
|
||||
String resultDetails = tipwlanOvsdbClient.processNewChannelsRequest(inventoryId, newBackupChannels);
|
||||
Map<RadioType, Integer> newPrimaryChannels = request.getNewPrimaryChannels();
|
||||
|
||||
String resultDetails = tipwlanOvsdbClient.processNewChannelsRequest(inventoryId, newBackupChannels, newPrimaryChannels);
|
||||
response.setResultDetail(resultDetails);
|
||||
} else if (command instanceof CEGWCellSizeAttributesRequest) {
|
||||
CEGWCellSizeAttributesRequest request = (CEGWCellSizeAttributesRequest) command;
|
||||
Map<RadioType, CellSizeAttributes> cellSizeAttributeMap = request.getCellSizeAttributesMap();
|
||||
|
||||
String resultDetails = tipwlanOvsdbClient.processCellSizeAttributesRequest(inventoryId, cellSizeAttributeMap);
|
||||
response.setResultDetail(resultDetails);
|
||||
|
||||
} else if (command instanceof CEGWFirmwareDownloadRequest) {
|
||||
@@ -339,10 +358,8 @@ public class OpensyncCloudGatewayController {
|
||||
String filepath = dlRequest.getFilePath();
|
||||
String firmwareVersion = dlRequest.getFirmwareVersion();
|
||||
String username = dlRequest.getUsername();
|
||||
String validationCode = dlRequest.getValidationCode();
|
||||
|
||||
String resultDetails = tipwlanOvsdbClient.processFirmwareDownload(inventoryId, filepath, firmwareVersion,
|
||||
username, validationCode);
|
||||
String resultDetails = tipwlanOvsdbClient.processFirmwareDownload(inventoryId, filepath, firmwareVersion, username);
|
||||
|
||||
response.setResultDetail(resultDetails);
|
||||
|
||||
@@ -354,15 +371,15 @@ public class OpensyncCloudGatewayController {
|
||||
flashRequest.getInventoryId();
|
||||
flashRequest.getUsername();
|
||||
|
||||
String resultDetails = tipwlanOvsdbClient.processFirmwareFlash(flashRequest.getInventoryId(),
|
||||
flashRequest.getFirmwareVersion(), flashRequest.getUsername());
|
||||
String resultDetails =
|
||||
tipwlanOvsdbClient.processFirmwareFlash(flashRequest.getInventoryId(), flashRequest.getFirmwareVersion(), flashRequest.getUsername());
|
||||
|
||||
response.setResultDetail(resultDetails);
|
||||
|
||||
} else if (command instanceof CEGWRadioResetRequest) {
|
||||
response = new EquipmentCommandResponse(CEGWCommandResultCode.UnsupportedCommand,
|
||||
"Received Command " + command.getCommandType() + " for " + inventoryId, command,
|
||||
registeredGateway.getHostname(), registeredGateway.getPort());
|
||||
registeredGateway == null ? null : registeredGateway.getHostname(), registeredGateway == null ? -1 : registeredGateway.getPort());
|
||||
} else if (command instanceof CEGWRebootRequest) {
|
||||
|
||||
CEGWRebootRequest rebootRequest = (CEGWRebootRequest) command;
|
||||
@@ -386,10 +403,9 @@ public class OpensyncCloudGatewayController {
|
||||
default:
|
||||
response = new EquipmentCommandResponse(CEGWCommandResultCode.UnsupportedCommand,
|
||||
"Received Command " + command.getCommandType() + " for " + inventoryId, command,
|
||||
registeredGateway.getHostname(), registeredGateway.getPort());
|
||||
registeredGateway == null ? null : registeredGateway.getHostname(), registeredGateway == null ? -1 : registeredGateway.getPort());
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
return response;
|
||||
@@ -407,15 +423,14 @@ public class OpensyncCloudGatewayController {
|
||||
return sendMessage(session, command.getInventoryId(), command);
|
||||
}
|
||||
|
||||
|
||||
private EquipmentCommandResponse processBlinkRequest(OvsdbSession session, CEGWBlinkRequest command) {
|
||||
|
||||
return sendMessage(session, command.getInventoryId(), command);
|
||||
}
|
||||
|
||||
@RequestMapping(value = "/commandWithUser", method = RequestMethod.POST)
|
||||
public EquipmentCommandResponse sendCommandWithAuthUser(@RequestBody EquipmentCommand command,
|
||||
@AuthenticationPrincipal Object requestUser, HttpServletRequest httpServletRequest) {
|
||||
public EquipmentCommandResponse sendCommandWithAuthUser(@RequestBody EquipmentCommand command, @AuthenticationPrincipal Object requestUser,
|
||||
HttpServletRequest httpServletRequest) {
|
||||
|
||||
// use these properties to get address and port where request has
|
||||
// arrived
|
||||
@@ -448,8 +463,7 @@ public class OpensyncCloudGatewayController {
|
||||
}
|
||||
|
||||
if (eqRoutingSvc == null) {
|
||||
throw new ConfigurationException(
|
||||
"Unable to register gateway with routing service: routing service interface not initialized");
|
||||
throw new ConfigurationException("Unable to register gateway with routing service: routing service interface not initialized");
|
||||
}
|
||||
|
||||
cleanupStaleGwRecord();
|
||||
@@ -465,13 +479,11 @@ public class OpensyncCloudGatewayController {
|
||||
EquipmentGatewayRecord result = eqRoutingSvc.registerGateway(gwRecord);
|
||||
registeredGwId = result.getId();
|
||||
registeredGateway = result;
|
||||
LOG.info("Successfully registered (name={}, id={}) with Routing Service", result.getHostname(),
|
||||
registeredGwId);
|
||||
LOG.info("Successfully registered (name={}, id={}) with Routing Service", result.getHostname(), registeredGwId);
|
||||
registeredWithRoutingService = true;
|
||||
} catch (RuntimeException e) {
|
||||
// failed
|
||||
LOG.error("Failed to register Customer Equipment Gateway (name={}) with Routing Service : {}",
|
||||
getGatewayName(), e.getLocalizedMessage());
|
||||
LOG.error("Failed to register Customer Equipment Gateway (name={}) with Routing Service : {}", getGatewayName(), e.getLocalizedMessage());
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -496,8 +508,7 @@ public class OpensyncCloudGatewayController {
|
||||
eqRoutingSvc.deleteGateway(eqpRec.getId());
|
||||
} catch (RuntimeException e) {
|
||||
// failed
|
||||
LOG.error("Failed to delete Equipment Gateway (name={}) from Routing Service: {}",
|
||||
eqpRec.getHostname(), e.getLocalizedMessage());
|
||||
LOG.error("Failed to delete Equipment Gateway (name={}) from Routing Service: {}", eqpRec.getHostname(), e.getLocalizedMessage());
|
||||
}
|
||||
} else {
|
||||
LOG.debug("Gateway {} is reachable.", eqpRec.getHostname());
|
||||
@@ -508,9 +519,8 @@ public class OpensyncCloudGatewayController {
|
||||
}
|
||||
} catch (Exception ex) { // Catching Exception to prevent crashing the
|
||||
// register thread
|
||||
LOG.debug("Generic Exception encountered when trying to cleanup "
|
||||
+ "the stale not-reachable GateWays. Continuing to register the new Gateway." + " Error: {} ",
|
||||
ex.getMessage());
|
||||
LOG.debug("Generic Exception encountered when trying to cleanup " + "the stale not-reachable GateWays. Continuing to register the new Gateway."
|
||||
+ " Error: {} ", ex.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -534,14 +544,13 @@ public class OpensyncCloudGatewayController {
|
||||
if (registeredWithRoutingService) {
|
||||
try {
|
||||
eqRoutingSvc.deleteGateway(registeredGwId);
|
||||
LOG.info("Deregistered Customer Equipment Gateway (name={},id={}) with Routing Service",
|
||||
getGatewayName(), registeredGwId);
|
||||
LOG.info("Deregistered Customer Equipment Gateway (name={},id={}) with Routing Service", getGatewayName(), registeredGwId);
|
||||
registeredGwId = -1;
|
||||
registeredGateway = null;
|
||||
} catch (Exception e) {
|
||||
// failed
|
||||
LOG.error("Failed to deregister Customer Equipment Gateway (name={},id={}) with Routing Service: {}",
|
||||
getGatewayName(), registeredGwId, e.getLocalizedMessage());
|
||||
LOG.error("Failed to deregister Customer Equipment Gateway (name={},id={}) with Routing Service: {}", getGatewayName(), registeredGwId,
|
||||
e.getLocalizedMessage());
|
||||
}
|
||||
registeredWithRoutingService = false;
|
||||
}
|
||||
@@ -559,12 +568,10 @@ public class OpensyncCloudGatewayController {
|
||||
* @param equipmentId
|
||||
* @return associationId
|
||||
*/
|
||||
public EquipmentRoutingRecord registerCustomerEquipment(String equipmentName, Integer customerId,
|
||||
Long equipmentId) {
|
||||
public EquipmentRoutingRecord registerCustomerEquipment(String equipmentName, Integer customerId, Long equipmentId) {
|
||||
registerWithRoutingService();
|
||||
if (!registeredWithRoutingService) {
|
||||
LOG.error("Unable to register customer equipement (name={},id={}): gateway not registered.", equipmentName,
|
||||
equipmentId);
|
||||
LOG.error("Unable to register customer equipement (name={},id={}): gateway not registered.", equipmentName, equipmentId);
|
||||
return null;
|
||||
}
|
||||
// Clean up stale records
|
||||
@@ -576,13 +583,11 @@ public class OpensyncCloudGatewayController {
|
||||
try {
|
||||
routingRecord = eqRoutingSvc.create(routingRecord);
|
||||
|
||||
LOG.debug("Registered customer equipment (name={},id={}) with route id={}", equipmentName, equipmentId,
|
||||
routingRecord.getId());
|
||||
LOG.debug("Registered customer equipment (name={},id={}) with route id={}", equipmentName, equipmentId, routingRecord.getId());
|
||||
return routingRecord;
|
||||
|
||||
} catch (Exception e) {
|
||||
LOG.error("Failed to register customer equipement (name={},id={}): {}", equipmentName, equipmentId,
|
||||
e.getLocalizedMessage());
|
||||
LOG.error("Failed to register customer equipement (name={},id={}): {}", equipmentName, equipmentId, e.getLocalizedMessage());
|
||||
}
|
||||
return null;
|
||||
}
|
||||
@@ -595,7 +600,7 @@ public class OpensyncCloudGatewayController {
|
||||
* Gateway does not exist, delete the equipmentRouting entry.
|
||||
*
|
||||
* @param equipmentId:
|
||||
* Equipment's ID
|
||||
* Equipment's ID
|
||||
*/
|
||||
protected void cleanupStaleEqptRoutingRecord(Long equipmentId) {
|
||||
LOG.debug("In Clean Up stale Equipment Routing record for Equipment ID {}", equipmentId);
|
||||
@@ -608,20 +613,17 @@ public class OpensyncCloudGatewayController {
|
||||
if (gwRec != null) {
|
||||
if (!isGwReachable(gwRec.getIpAddr(), gwRec.getPort())) {
|
||||
// GW isn't reachable --> invoke unregister
|
||||
LOG.debug("Gateway {} is not-reachable... Deleting the equipment routing entry",
|
||||
gwRec.getHostname());
|
||||
LOG.debug("Gateway {} is not-reachable... Deleting the equipment routing entry", gwRec.getHostname());
|
||||
deleteUnresponiveGwRoutingRecord(eqRouting.getId(), equipmentId);
|
||||
} else {
|
||||
LOG.debug("Gateway {} is reachable.", gwRec.getHostname());
|
||||
}
|
||||
} else {
|
||||
LOG.debug("Gateway with ID {} not found. Deleting the equipment routing entry ",
|
||||
eqRouting.getGatewayId());
|
||||
LOG.debug("Gateway with ID {} not found. Deleting the equipment routing entry ", eqRouting.getGatewayId());
|
||||
deleteUnresponiveGwRoutingRecord(eqRouting.getId(), equipmentId);
|
||||
}
|
||||
} catch (DsEntityNotFoundException entityNotFoundException) {
|
||||
LOG.debug("Gateway ID: {} not found... Deleting the equipment routing entry",
|
||||
eqRouting.getGatewayId());
|
||||
LOG.debug("Gateway ID: {} not found... Deleting the equipment routing entry", eqRouting.getGatewayId());
|
||||
deleteUnresponiveGwRoutingRecord(eqRouting.getId(), equipmentId);
|
||||
}
|
||||
}
|
||||
@@ -630,9 +632,10 @@ public class OpensyncCloudGatewayController {
|
||||
}
|
||||
} catch (Exception genericException) { // Catching Exception to prevent
|
||||
// crashing the register thread
|
||||
LOG.debug("Generic Exception encountered when trying to cleanup "
|
||||
+ "the stale routing records for equipment ID: {}. Continuing to register the new RoutingRecord."
|
||||
+ " Error: {} ", equipmentId, genericException.getMessage());
|
||||
LOG.debug(
|
||||
"Generic Exception encountered when trying to cleanup "
|
||||
+ "the stale routing records for equipment ID: {}. Continuing to register the new RoutingRecord." + " Error: {} ",
|
||||
equipmentId, genericException.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -641,8 +644,7 @@ public class OpensyncCloudGatewayController {
|
||||
eqRoutingSvc.delete(routingId);
|
||||
} catch (RuntimeException e) {
|
||||
// failed
|
||||
LOG.error("Failed to delete Equipment routing record (ID={}) from Routing Service: {}", eqptId,
|
||||
e.getLocalizedMessage());
|
||||
LOG.error("Failed to delete Equipment routing record (ID={}) from Routing Service: {}", eqptId, e.getLocalizedMessage());
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
@@ -650,18 +652,16 @@ public class OpensyncCloudGatewayController {
|
||||
|
||||
public void deregisterCustomerEquipment(Long routingId, String equipmentName, Long equipmentId) {
|
||||
if (!registeredWithRoutingService) {
|
||||
LOG.error("Unable to deregister customer equipement (name={},id={}): gateway not registered", equipmentName,
|
||||
equipmentId);
|
||||
LOG.error("Unable to deregister customer equipement (name={},id={}): gateway not registered", equipmentName, equipmentId);
|
||||
return;
|
||||
}
|
||||
try {
|
||||
LOG.debug("Deregistering customer equipment (name={},id={}) with route id={}", equipmentName, equipmentId,
|
||||
routingId);
|
||||
LOG.debug("Deregistering customer equipment (name={},id={}) with route id={}", equipmentName, equipmentId, routingId);
|
||||
|
||||
eqRoutingSvc.delete(routingId);
|
||||
} catch (Exception e) {
|
||||
LOG.error("Failed to deregister customer equipement (name={},id={}) with route id={}: {}", equipmentName,
|
||||
equipmentId, routingId, e.getLocalizedMessage());
|
||||
LOG.error("Failed to deregister customer equipement (name={},id={}) with route id={}: {}", equipmentName, equipmentId, routingId,
|
||||
e.getLocalizedMessage());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,749 @@
|
||||
package com.telecominfraproject.wlan.opensync.external.integration.utils;
|
||||
|
||||
import java.net.InetAddress;
|
||||
import java.net.UnknownHostException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import com.telecominfraproject.wlan.client.models.events.realtime.ClientDisconnectEvent.DisconnectFrameType;
|
||||
import com.telecominfraproject.wlan.client.models.events.realtime.ClientDisconnectEvent.DisconnectInitiator;
|
||||
import com.telecominfraproject.wlan.client.models.events.utils.WlanReasonCode;
|
||||
import com.telecominfraproject.wlan.client.models.events.utils.WlanStatusCode;
|
||||
import com.telecominfraproject.wlan.cloudeventdispatcher.CloudEventDispatcherInterface;
|
||||
import com.telecominfraproject.wlan.core.model.equipment.ChannelHopReason;
|
||||
import com.telecominfraproject.wlan.core.model.equipment.MacAddress;
|
||||
import com.telecominfraproject.wlan.core.model.equipment.RadioType;
|
||||
import com.telecominfraproject.wlan.equipment.EquipmentServiceInterface;
|
||||
import com.telecominfraproject.wlan.equipment.models.ApElementConfiguration;
|
||||
import com.telecominfraproject.wlan.equipment.models.Equipment;
|
||||
import com.telecominfraproject.wlan.opensync.util.OvsdbToWlanCloudTypeMappingUtility;
|
||||
import com.telecominfraproject.wlan.profile.ProfileServiceInterface;
|
||||
import com.telecominfraproject.wlan.profile.models.ProfileContainer;
|
||||
import com.telecominfraproject.wlan.profile.models.ProfileType;
|
||||
import com.telecominfraproject.wlan.profile.rf.models.RfConfiguration;
|
||||
import com.telecominfraproject.wlan.systemevent.equipment.realtime.RealTimeChannelHopEvent;
|
||||
import com.telecominfraproject.wlan.systemevent.equipment.realtime.RealTimeEventType;
|
||||
import com.telecominfraproject.wlan.systemevent.equipment.realtime.RealTimeSipCallReportEvent;
|
||||
import com.telecominfraproject.wlan.systemevent.equipment.realtime.RealTimeSipCallStartEvent;
|
||||
import com.telecominfraproject.wlan.systemevent.equipment.realtime.RealTimeSipCallStopEvent;
|
||||
import com.telecominfraproject.wlan.systemevent.equipment.realtime.RealTimeStreamingStartEvent;
|
||||
import com.telecominfraproject.wlan.systemevent.equipment.realtime.RealTimeStreamingStartSessionEvent;
|
||||
import com.telecominfraproject.wlan.systemevent.equipment.realtime.RealTimeStreamingStopEvent;
|
||||
import com.telecominfraproject.wlan.systemevent.equipment.realtime.SIPCallReportReason;
|
||||
import com.telecominfraproject.wlan.systemevent.equipment.realtime.SipCallStopReason;
|
||||
import com.telecominfraproject.wlan.systemevent.models.SystemEvent;
|
||||
|
||||
import sts.OpensyncStats;
|
||||
import sts.OpensyncStats.AssocType;
|
||||
import sts.OpensyncStats.CallReport;
|
||||
import sts.OpensyncStats.CallStart;
|
||||
import sts.OpensyncStats.CallStop;
|
||||
import sts.OpensyncStats.ChannelSwitchReason;
|
||||
import sts.OpensyncStats.DeviceType;
|
||||
import sts.OpensyncStats.EventReport;
|
||||
import sts.OpensyncStats.EventReport.ClientAssocEvent;
|
||||
import sts.OpensyncStats.EventReport.ClientAuthEvent;
|
||||
import sts.OpensyncStats.EventReport.ClientDisconnectEvent;
|
||||
import sts.OpensyncStats.EventReport.ClientIpEvent;
|
||||
import sts.OpensyncStats.FrameType;
|
||||
import sts.OpensyncStats.RtpFlowStats;
|
||||
import sts.OpensyncStats.StreamingVideoServerDetected;
|
||||
import sts.OpensyncStats.StreamingVideoSessionStart;
|
||||
import sts.OpensyncStats.StreamingVideoStop;
|
||||
import sts.OpensyncStats.VideoVoiceReport;
|
||||
|
||||
@org.springframework.context.annotation.Profile("opensync_cloud_config")
|
||||
@Component
|
||||
public class RealtimeEventPublisher {
|
||||
|
||||
@Autowired
|
||||
private CloudEventDispatcherInterface cloudEventDispatcherInterface;
|
||||
|
||||
@Autowired
|
||||
private EquipmentServiceInterface equipmentServiceInterface;
|
||||
|
||||
@Autowired
|
||||
private ProfileServiceInterface profileServiceInterface;
|
||||
|
||||
private static final Logger LOG = LoggerFactory.getLogger(RealtimeEventPublisher.class);
|
||||
|
||||
|
||||
void publishChannelHopEvents(int customerId, long equipmentId, long locationId, EventReport e) {
|
||||
|
||||
LOG.info("publishChannelHopEvents for customerId {} equipmentId {}");
|
||||
List<SystemEvent> events = new ArrayList<>();
|
||||
|
||||
LOG.info("Received ClientEvent {} for customerId {} equipmentId {}", e, customerId, equipmentId);
|
||||
|
||||
Equipment equipment = equipmentServiceInterface.getOrNull(equipmentId);
|
||||
if (equipment == null) {
|
||||
return;
|
||||
}
|
||||
ProfileContainer profileContainer = new ProfileContainer(
|
||||
profileServiceInterface.getProfileWithChildren(equipment.getProfileId()));
|
||||
RfConfiguration rfConfig = null;
|
||||
if (profileContainer != null) {
|
||||
rfConfig = (RfConfiguration) profileContainer.getChildOfTypeOrNull(equipment.getProfileId(), ProfileType.rf).getDetails();
|
||||
}
|
||||
if (profileContainer == null || rfConfig == null) {
|
||||
LOG.warn("publishChannelHopEvents:profileContainer {} or RfConfiguration {} is null for customerId {} equipmentId {}",
|
||||
profileContainer, rfConfig, customerId, equipmentId);
|
||||
}
|
||||
|
||||
for (sts.OpensyncStats.EventReport.ChannelSwitchEvent channelSwitchEvent : e.getChannelSwitchList()) {
|
||||
|
||||
RadioType radioType = null;
|
||||
Long timestamp = null;
|
||||
ChannelHopReason reason = null;
|
||||
Integer channel = null;
|
||||
if (channelSwitchEvent.hasBand()) {
|
||||
radioType = OvsdbToWlanCloudTypeMappingUtility
|
||||
.getRadioTypeFromOpensyncStatsRadioBandType(channelSwitchEvent.getBand());
|
||||
}
|
||||
if (RadioType.isUnsupported(radioType)) {
|
||||
LOG.warn(
|
||||
"publishChannelHopEvents:RadioType {} is unsupported, cannot send RealTimeChannelHopEvent for {}",
|
||||
radioType, channelSwitchEvent);
|
||||
continue;
|
||||
}
|
||||
if (channelSwitchEvent.hasTimestampMs()) {
|
||||
timestamp = channelSwitchEvent.getTimestampMs();
|
||||
}
|
||||
if (timestamp == null) {
|
||||
LOG.warn("publishChannelHopEvents:timestamp is null, cannot send RealTimeChannelHopEvent for {}",
|
||||
channelSwitchEvent);
|
||||
continue;
|
||||
}
|
||||
|
||||
if (channelSwitchEvent.hasReason()) {
|
||||
if (channelSwitchEvent.getReason().equals(ChannelSwitchReason.high_interference)) {
|
||||
reason = ChannelHopReason.HighInterference;
|
||||
}
|
||||
else if (channelSwitchEvent.getReason().equals(ChannelSwitchReason.radar_detected)) {
|
||||
reason = ChannelHopReason.RadarDetected;
|
||||
}
|
||||
}
|
||||
if (ChannelHopReason.isUnsupported(reason)) {
|
||||
LOG.warn("publishChannelHopEvents:reason {} is unsupported, cannot send RealTimeChannelHopEvent for {}",
|
||||
channelSwitchEvent.getReason(), channelSwitchEvent);
|
||||
continue;
|
||||
}
|
||||
if (channelSwitchEvent.hasChannel()) {
|
||||
channel = channelSwitchEvent.getChannel();
|
||||
}
|
||||
if (channel == null) {
|
||||
LOG.warn("publishChannelHopEvents:channel is null, cannot send RealTimeChannelHopEvent for {}",
|
||||
channelSwitchEvent);
|
||||
continue;
|
||||
}
|
||||
boolean autoChannelSelection = false;
|
||||
if (rfConfig != null && rfConfig.getRfConfigMap() != null && rfConfig.getRfConfigMap().get(radioType) != null) {
|
||||
autoChannelSelection = rfConfig.getRfConfigMap().get(radioType).getAutoChannelSelection();
|
||||
}
|
||||
|
||||
RealTimeChannelHopEvent channelHopEvent = new RealTimeChannelHopEvent(RealTimeEventType.Channel_Hop,
|
||||
customerId, locationId, equipmentId, radioType, channel,
|
||||
((ApElementConfiguration) equipment.getDetails()).getRadioMap().get(radioType).getActiveChannel(autoChannelSelection),
|
||||
reason, timestamp);
|
||||
|
||||
events.add(channelHopEvent);
|
||||
LOG.debug("publishChannelHopEvents:Adding ChannelHopEvent to bulk list {}", channelHopEvent);
|
||||
}
|
||||
|
||||
if (events.size() > 0) {
|
||||
LOG.info("publishChannelHopEvents:publishEventsBulk: {}", events);
|
||||
cloudEventDispatcherInterface.publishEventsBulk(events);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
void publishClientDisconnectEvent(int customerId, long equipmentId, long locationId, ClientDisconnectEvent clientDisconnectEvent) {
|
||||
|
||||
LOG.info("Received ClientEvent {} for customerId {} equipmentId {}", clientDisconnectEvent, customerId,
|
||||
equipmentId);
|
||||
|
||||
com.telecominfraproject.wlan.client.models.events.realtime.ClientDisconnectEvent clientEvent = new com.telecominfraproject.wlan.client.models.events.realtime.ClientDisconnectEvent(
|
||||
clientDisconnectEvent.getTimestampMs());
|
||||
clientEvent.setClientMacAddress(MacAddress.valueOf(clientDisconnectEvent.getStaMac()));
|
||||
clientEvent.setSessionId(Long.toUnsignedString( clientDisconnectEvent.getSessionId()));
|
||||
clientEvent.setRadioType(OvsdbToWlanCloudTypeMappingUtility
|
||||
.getRadioTypeFromOpensyncStatsRadioBandType(clientDisconnectEvent.getBand()));
|
||||
clientEvent.setSsid(clientDisconnectEvent.getSsid());
|
||||
|
||||
if (clientDisconnectEvent.hasDevType()) {
|
||||
|
||||
clientEvent.setInitiator(
|
||||
clientDisconnectEvent.getDevType().equals(DeviceType.DEV_AP) ? DisconnectInitiator.AccessPoint
|
||||
: DisconnectInitiator.Client);
|
||||
|
||||
}
|
||||
if (clientDisconnectEvent.hasFrType()) {
|
||||
clientEvent.setFrameType(
|
||||
clientDisconnectEvent.getFrType().equals(FrameType.FT_DEAUTH) ? DisconnectFrameType.Deauth
|
||||
: DisconnectFrameType.Disassoc);
|
||||
}
|
||||
if (clientDisconnectEvent.hasInternalRc()) {
|
||||
clientEvent.setInternalReasonCode(clientDisconnectEvent.getInternalRc());
|
||||
}
|
||||
if (clientDisconnectEvent.hasLrcvUpTsInUs()) {
|
||||
clientEvent.setLastRecvTime(clientDisconnectEvent.getLrcvUpTsInUs());
|
||||
}
|
||||
if (clientDisconnectEvent.hasLsentUpTsInUs()) {
|
||||
clientEvent.setLastSentTime(clientDisconnectEvent.getLsentUpTsInUs());
|
||||
}
|
||||
if (clientDisconnectEvent.hasReason()) {
|
||||
clientEvent.setReasonCode(WlanReasonCode.getById(clientDisconnectEvent.getReason()));
|
||||
}
|
||||
if (clientDisconnectEvent.hasRssi()) {
|
||||
clientEvent.setRssi(clientDisconnectEvent.getRssi());
|
||||
}
|
||||
clientEvent.setEventTimestamp(clientDisconnectEvent.getTimestampMs());
|
||||
clientEvent.setCustomerId(customerId);
|
||||
clientEvent.setEquipmentId(equipmentId);
|
||||
clientEvent.setLocationId(locationId);
|
||||
|
||||
LOG.info("publishing client event {} to cloud", clientEvent);
|
||||
cloudEventDispatcherInterface.publishEvent(clientEvent);
|
||||
|
||||
}
|
||||
|
||||
void publishClientAuthSystemEvent(int customerId, long equipmentId, long locationId, ClientAuthEvent clientAuthEvent) {
|
||||
LOG.info("Received ClientEvent {} for customerId {} equipmentId {}", clientAuthEvent, customerId, equipmentId);
|
||||
|
||||
com.telecominfraproject.wlan.client.models.events.realtime.ClientAuthEvent clientEvent = new com.telecominfraproject.wlan.client.models.events.realtime.ClientAuthEvent(
|
||||
clientAuthEvent.getTimestampMs());
|
||||
clientEvent.setSessionId(Long.toUnsignedString( clientAuthEvent.getSessionId()));
|
||||
clientEvent.setSsid(clientAuthEvent.getSsid());
|
||||
clientEvent.setClientMacAddress(MacAddress.valueOf(clientAuthEvent.getStaMac()));
|
||||
clientEvent.setRadioType(OvsdbToWlanCloudTypeMappingUtility
|
||||
.getRadioTypeFromOpensyncStatsRadioBandType(clientAuthEvent.getBand()));
|
||||
|
||||
if (clientAuthEvent.hasAuthStatus()) {
|
||||
clientEvent.setAuthStatus(WlanStatusCode.getById(clientAuthEvent.getAuthStatus()));
|
||||
}
|
||||
clientEvent.setEventTimestamp(clientAuthEvent.getTimestampMs());
|
||||
clientEvent.setCustomerId(customerId);
|
||||
clientEvent.setEquipmentId(equipmentId);
|
||||
clientEvent.setLocationId(locationId);
|
||||
|
||||
LOG.info("publishing client event {} to cloud", clientEvent);
|
||||
cloudEventDispatcherInterface.publishEvent(clientEvent);
|
||||
|
||||
}
|
||||
|
||||
void publishClientAssocEvent(int customerId, long equipmentId, long locationId, ClientAssocEvent clientAssocEvent) {
|
||||
LOG.info("Received ClientEvent {} for customerId {} equipmentId {}", clientAssocEvent, customerId, equipmentId);
|
||||
|
||||
com.telecominfraproject.wlan.client.models.events.realtime.ClientAssocEvent clientEvent = new com.telecominfraproject.wlan.client.models.events.realtime.ClientAssocEvent(
|
||||
clientAssocEvent.getTimestampMs());
|
||||
|
||||
clientEvent.setSessionId(Long.toUnsignedString( clientAssocEvent.getSessionId()));
|
||||
clientEvent.setSsid(clientAssocEvent.getSsid());
|
||||
clientEvent.setClientMacAddress(MacAddress.valueOf(clientAssocEvent.getStaMac()));
|
||||
clientEvent.setRadioType(OvsdbToWlanCloudTypeMappingUtility
|
||||
.getRadioTypeFromOpensyncStatsRadioBandType(clientAssocEvent.getBand()));
|
||||
|
||||
if (clientAssocEvent.hasAssocType()) {
|
||||
clientEvent.setReassociation(clientAssocEvent.getAssocType().equals(AssocType.REASSOC));
|
||||
}
|
||||
|
||||
if (clientAssocEvent.hasInternalSc()) {
|
||||
clientEvent.setInternalSC(clientAssocEvent.getInternalSc());
|
||||
}
|
||||
|
||||
if (clientAssocEvent.hasRssi()) {
|
||||
clientEvent.setRssi(clientAssocEvent.getRssi());
|
||||
}
|
||||
|
||||
if (clientAssocEvent.hasStatus()) {
|
||||
clientEvent.setStatus(WlanStatusCode.getById(clientAssocEvent.getStatus()));
|
||||
}
|
||||
|
||||
if (clientAssocEvent.hasUsing11K()) {
|
||||
clientEvent.setUsing11k(clientAssocEvent.getUsing11K());
|
||||
}
|
||||
|
||||
if (clientAssocEvent.hasUsing11R()) {
|
||||
clientEvent.setUsing11r(clientAssocEvent.getUsing11R());
|
||||
}
|
||||
|
||||
if (clientAssocEvent.hasUsing11V()) {
|
||||
clientEvent.setUsing11v(clientAssocEvent.getUsing11V());
|
||||
}
|
||||
|
||||
clientEvent.setEventTimestamp(clientAssocEvent.getTimestampMs());
|
||||
clientEvent.setCustomerId(customerId);
|
||||
clientEvent.setEquipmentId(equipmentId);
|
||||
clientEvent.setLocationId(locationId);
|
||||
|
||||
LOG.info("publishing client event {} to cloud", clientEvent);
|
||||
cloudEventDispatcherInterface.publishEvent(clientEvent);
|
||||
|
||||
}
|
||||
|
||||
void publishClientIpEvent(int customerId, long equipmentId, long locationId, ClientIpEvent clientIpEvent) {
|
||||
|
||||
LOG.info("Received ClientEvent {} for customerId {} equipmentId {}", clientIpEvent, customerId, equipmentId);
|
||||
|
||||
com.telecominfraproject.wlan.client.models.events.realtime.ClientIpAddressEvent clientEvent = new com.telecominfraproject.wlan.client.models.events.realtime.ClientIpAddressEvent(
|
||||
clientIpEvent.getTimestampMs());
|
||||
|
||||
clientEvent.setSessionId(Long.toUnsignedString( clientIpEvent.getSessionId()));
|
||||
clientEvent.setClientMacAddress(MacAddress.valueOf(clientIpEvent.getStaMac()));
|
||||
if (clientIpEvent.hasIpAddr()) {
|
||||
try {
|
||||
clientEvent.setIpAddr(InetAddress.getByAddress(clientIpEvent.getIpAddr().toByteArray()));
|
||||
} catch (UnknownHostException e1) {
|
||||
LOG.error("Invalid Client IP Address for equipmentId {}, clientIpEvent {}", equipmentId, clientIpEvent);
|
||||
}
|
||||
}
|
||||
|
||||
clientEvent.setEventTimestamp(clientIpEvent.getTimestampMs());
|
||||
clientEvent.setCustomerId(customerId);
|
||||
clientEvent.setEquipmentId(equipmentId);
|
||||
clientEvent.setLocationId(locationId);
|
||||
|
||||
LOG.info("publishing client event {} to cloud", clientEvent);
|
||||
cloudEventDispatcherInterface.publishEvent(clientEvent);
|
||||
}
|
||||
|
||||
void publishSipCallEvents(int customerId, long equipmentId, long locationId, List<VideoVoiceReport> sipCallReportList) {
|
||||
// only in case it is not there, we will just use the time when we
|
||||
// received the report/event
|
||||
long eventTimestamp = System.currentTimeMillis();
|
||||
|
||||
List<SystemEvent> eventsList = new ArrayList<>();
|
||||
for (VideoVoiceReport videoVoiceReport : sipCallReportList) {
|
||||
|
||||
if (videoVoiceReport.hasTimestampMs()) {
|
||||
eventTimestamp = videoVoiceReport.getTimestampMs();
|
||||
}
|
||||
|
||||
LOG.debug("Received VideoVoiceReport {} for SIP call", videoVoiceReport);
|
||||
|
||||
processRealTimeSipCallReportEvent(customerId, equipmentId, locationId, eventTimestamp, eventsList, videoVoiceReport);
|
||||
|
||||
processRealTimeSipCallStartEvent(customerId, equipmentId, locationId, eventTimestamp, eventsList, videoVoiceReport);
|
||||
|
||||
processRealTimeSipCallStopEvent(customerId, equipmentId, locationId, eventTimestamp, eventsList, videoVoiceReport);
|
||||
|
||||
processRtsStartEvent(customerId, equipmentId, locationId, eventTimestamp, eventsList, videoVoiceReport);
|
||||
|
||||
processRtsStartSessionEvent(customerId, equipmentId, locationId, eventTimestamp, eventsList, videoVoiceReport);
|
||||
|
||||
processRtsStopEvent(customerId, equipmentId, locationId, eventTimestamp, eventsList, videoVoiceReport);
|
||||
|
||||
}
|
||||
|
||||
if (eventsList.size() > 0) {
|
||||
cloudEventDispatcherInterface.publishEventsBulk(eventsList);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
protected void processRealTimeSipCallReportEvent(int customerId, long equipmentId, long locationId, long eventTimestamp,
|
||||
List<SystemEvent> eventsList, VideoVoiceReport videoVoiceReport) {
|
||||
if (videoVoiceReport.hasCallReport()) {
|
||||
|
||||
CallReport callReport = videoVoiceReport.getCallReport();
|
||||
|
||||
RealTimeSipCallReportEvent cloudSipCallReportEvent = new RealTimeSipCallReportEvent(customerId, locationId, equipmentId,
|
||||
eventTimestamp);
|
||||
|
||||
if (callReport.hasClientMac() && callReport.getClientMac().isValidUtf8()) {
|
||||
cloudSipCallReportEvent
|
||||
.setClientMacAddress(MacAddress.valueOf(callReport.getClientMac().toStringUtf8()));
|
||||
}
|
||||
cloudSipCallReportEvent.setStatuses(processRtpFlowStats(callReport.getStatsList()));
|
||||
cloudSipCallReportEvent.setEventType(RealTimeEventType.SipCallReport);
|
||||
|
||||
cloudSipCallReportEvent.setSipCallId(callReport.getWifiSessionId());
|
||||
cloudSipCallReportEvent.setAssociationId(Long.toUnsignedString( callReport.getSessionId()));
|
||||
|
||||
if (callReport.hasReason()) {
|
||||
cloudSipCallReportEvent.setReportReason(getCallReportReason(callReport.getReason()));
|
||||
}
|
||||
if (callReport.hasProviderDomain()) {
|
||||
cloudSipCallReportEvent.setProviderDomain(callReport.getProviderDomain());
|
||||
}
|
||||
|
||||
if (callReport.getCodecsCount() > 0) {
|
||||
cloudSipCallReportEvent.setCodecs(callReport.getCodecsList());
|
||||
}
|
||||
|
||||
if (callReport.hasChannel()) {
|
||||
cloudSipCallReportEvent.setChannel(callReport.getChannel());
|
||||
}
|
||||
|
||||
if (callReport.hasBand()) {
|
||||
cloudSipCallReportEvent.setRadioType(OvsdbToWlanCloudTypeMappingUtility
|
||||
.getRadioTypeFromOpensyncStatsRadioBandType(callReport.getBand()));
|
||||
}
|
||||
|
||||
eventsList.add(cloudSipCallReportEvent);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
private SIPCallReportReason getCallReportReason(CallReport.CallReportReason reason) {
|
||||
if (reason != null) {
|
||||
switch (reason) {
|
||||
case ROAMED_TO:
|
||||
return SIPCallReportReason.ROAMED_TO;
|
||||
case GOT_PUBLISH:
|
||||
return SIPCallReportReason.GOT_PUBLISH;
|
||||
case ROAMED_FROM:
|
||||
return SIPCallReportReason.ROAMED_FROM;
|
||||
default:
|
||||
return SIPCallReportReason.UNSUPPORTED;
|
||||
}
|
||||
}
|
||||
return SIPCallReportReason.UNSUPPORTED;
|
||||
}
|
||||
|
||||
protected void processRealTimeSipCallStartEvent(int customerId, long equipmentId, long locationId, long eventTimestamp,
|
||||
List<SystemEvent> eventsList, VideoVoiceReport videoVoiceReport) {
|
||||
if (videoVoiceReport.hasCallStart()) {
|
||||
|
||||
CallStart apCallStart = videoVoiceReport.getCallStart();
|
||||
|
||||
RealTimeSipCallStartEvent cloudSipCallStartEvent = new RealTimeSipCallStartEvent(customerId, locationId, equipmentId,
|
||||
eventTimestamp);
|
||||
|
||||
if (apCallStart.hasClientMac() && apCallStart.getClientMac().isValidUtf8()) {
|
||||
cloudSipCallStartEvent
|
||||
.setClientMacAddress(MacAddress.valueOf(apCallStart.getClientMac().toStringUtf8()));
|
||||
}
|
||||
|
||||
if (apCallStart.hasDeviceInfo()) {
|
||||
cloudSipCallStartEvent.setDeviceInfo(apCallStart.getDeviceInfo());
|
||||
}
|
||||
|
||||
if (apCallStart.hasProviderDomain()) {
|
||||
cloudSipCallStartEvent.setProviderDomain(apCallStart.getProviderDomain());
|
||||
}
|
||||
|
||||
if (apCallStart.hasSessionId()) {
|
||||
cloudSipCallStartEvent.setAssociationId(Long.toUnsignedString( apCallStart.getSessionId()));
|
||||
}
|
||||
|
||||
if (apCallStart.hasWifiSessionId()) {
|
||||
cloudSipCallStartEvent.setAssociationId(Long.toUnsignedString( apCallStart.getWifiSessionId()));
|
||||
}
|
||||
|
||||
if (apCallStart.getCodecsCount() > 0) {
|
||||
cloudSipCallStartEvent.setCodecs(apCallStart.getCodecsList());
|
||||
}
|
||||
|
||||
if (apCallStart.hasChannel()) {
|
||||
cloudSipCallStartEvent.setChannel(apCallStart.getChannel());
|
||||
}
|
||||
|
||||
if (apCallStart.hasBand()) {
|
||||
cloudSipCallStartEvent.setRadioType(OvsdbToWlanCloudTypeMappingUtility
|
||||
.getRadioTypeFromOpensyncStatsRadioBandType(apCallStart.getBand()));
|
||||
}
|
||||
|
||||
eventsList.add(cloudSipCallStartEvent);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
protected void processRealTimeSipCallStopEvent(int customerId, long equipmentId, long locationId, long eventTimestamp,
|
||||
List<SystemEvent> eventsList, VideoVoiceReport videoVoiceReport) {
|
||||
if (videoVoiceReport.hasCallStop()) {
|
||||
|
||||
CallStop apCallStop = videoVoiceReport.getCallStop();
|
||||
|
||||
RealTimeSipCallStopEvent cloudSipCallStopEvent = new RealTimeSipCallStopEvent(customerId, locationId, equipmentId,
|
||||
eventTimestamp);
|
||||
|
||||
if (apCallStop.hasCallDuration()) {
|
||||
|
||||
cloudSipCallStopEvent.setCallDuration(apCallStop.getCallDuration());
|
||||
|
||||
}
|
||||
|
||||
if (apCallStop.hasClientMac() && apCallStop.getClientMac().isValidUtf8()) {
|
||||
|
||||
cloudSipCallStopEvent.setClientMacAddress(MacAddress.valueOf(apCallStop.getClientMac().toStringUtf8()));
|
||||
|
||||
}
|
||||
|
||||
if (apCallStop.hasReason()) {
|
||||
|
||||
switch (apCallStop.getReason()) {
|
||||
case BYE_OK:
|
||||
cloudSipCallStopEvent.setReason(SipCallStopReason.BYE_OK);
|
||||
break;
|
||||
case CALL_DROPPED:
|
||||
cloudSipCallStopEvent.setReason(SipCallStopReason.DROPPED);
|
||||
break;
|
||||
|
||||
default:
|
||||
cloudSipCallStopEvent.setReason(SipCallStopReason.UNSUPPORTED);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
if (apCallStop.hasSessionId()) {
|
||||
|
||||
cloudSipCallStopEvent.setAssociationId(Long.toUnsignedString( apCallStop.getSessionId()));
|
||||
|
||||
}
|
||||
|
||||
if (apCallStop.hasWifiSessionId()) {
|
||||
cloudSipCallStopEvent.setSipCallId(apCallStop.getWifiSessionId());
|
||||
|
||||
}
|
||||
|
||||
if (apCallStop.getStatsCount() > 0) {
|
||||
cloudSipCallStopEvent.setStatuses(processRtpFlowStats(apCallStop.getStatsList()));
|
||||
}
|
||||
|
||||
if (apCallStop.hasProviderDomain()) {
|
||||
cloudSipCallStopEvent.setProviderDomain(apCallStop.getProviderDomain());
|
||||
}
|
||||
|
||||
if (apCallStop.getCodecsCount() > 0) {
|
||||
cloudSipCallStopEvent.setCodecs(apCallStop.getCodecsList());
|
||||
}
|
||||
|
||||
if (apCallStop.hasChannel()) {
|
||||
cloudSipCallStopEvent.setChannel(apCallStop.getChannel());
|
||||
}
|
||||
|
||||
if (apCallStop.hasBand()) {
|
||||
cloudSipCallStopEvent.setRadioType(OvsdbToWlanCloudTypeMappingUtility
|
||||
.getRadioTypeFromOpensyncStatsRadioBandType(apCallStop.getBand()));
|
||||
}
|
||||
|
||||
eventsList.add(cloudSipCallStopEvent);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
protected void processRtsStartEvent(int customerId, long equipmentId, long locationId, long eventTimestamp,
|
||||
List<SystemEvent> eventsList, VideoVoiceReport videoVoiceReport) {
|
||||
if (videoVoiceReport.hasStreamVideoServer()) {
|
||||
StreamingVideoServerDetected apStreamVideoServer = videoVoiceReport.getStreamVideoServer();
|
||||
RealTimeStreamingStartEvent rtsStartEvent = new RealTimeStreamingStartEvent(customerId, locationId, equipmentId,
|
||||
eventTimestamp);
|
||||
if (apStreamVideoServer.hasServerIp()) {
|
||||
try {
|
||||
rtsStartEvent
|
||||
.setServerIp(InetAddress.getByAddress(apStreamVideoServer.getServerIp().toByteArray()));
|
||||
} catch (UnknownHostException e) {
|
||||
LOG.error("Cannot get IP Address from {}", apStreamVideoServer.getServerIp(), e);
|
||||
}
|
||||
}
|
||||
if (apStreamVideoServer.hasStreamingVideoType()) {
|
||||
rtsStartEvent.setType(OvsdbToWlanCloudTypeMappingUtility
|
||||
.getCloudStreamingVideoTypeFromApReport(apStreamVideoServer.getStreamingVideoType()));
|
||||
}
|
||||
|
||||
if (apStreamVideoServer.hasServerDnsName()) {
|
||||
rtsStartEvent.setServerDnsName(apStreamVideoServer.getServerDnsName());
|
||||
}
|
||||
|
||||
if (apStreamVideoServer.hasClientMac() && apStreamVideoServer.getClientMac().isValidUtf8()) {
|
||||
rtsStartEvent
|
||||
.setClientMacAddress(MacAddress.valueOf(apStreamVideoServer.getClientMac().toStringUtf8()));
|
||||
}
|
||||
|
||||
if (apStreamVideoServer.hasSessionId()) {
|
||||
rtsStartEvent.setSessionId(Long.toUnsignedString( apStreamVideoServer.getSessionId()));
|
||||
}
|
||||
|
||||
if (apStreamVideoServer.hasVideoSessionId()) {
|
||||
rtsStartEvent.setVideoSessionId(Long.toUnsignedString( apStreamVideoServer.getVideoSessionId()));
|
||||
}
|
||||
|
||||
eventsList.add(rtsStartEvent);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
private List<com.telecominfraproject.wlan.systemevent.equipment.realtime.RtpFlowStats> processRtpFlowStats(
|
||||
List<OpensyncStats.RtpFlowStats> stats) {
|
||||
List<com.telecominfraproject.wlan.systemevent.equipment.realtime.RtpFlowStats> cloudRtpFlowStatsList = new ArrayList<>();
|
||||
for (RtpFlowStats apRtpFlowStats : stats) {
|
||||
|
||||
com.telecominfraproject.wlan.systemevent.equipment.realtime.RtpFlowStats cloudRtpStats = new com.telecominfraproject.wlan.systemevent.equipment.realtime.RtpFlowStats();
|
||||
|
||||
if (apRtpFlowStats.hasCodec()) {
|
||||
cloudRtpStats.setCodec(apRtpFlowStats.getCodec());
|
||||
}
|
||||
|
||||
if (apRtpFlowStats.hasBlockCodecs()) {
|
||||
cloudRtpStats.setBlockCodecs(apRtpFlowStats.getBlockCodecs().toByteArray());
|
||||
}
|
||||
|
||||
if (apRtpFlowStats.hasLatency()) {
|
||||
cloudRtpStats.setLatency(apRtpFlowStats.getLatency());
|
||||
}
|
||||
|
||||
if (apRtpFlowStats.hasRtpSeqFirst()) {
|
||||
cloudRtpStats.setFirstRTPSeq(apRtpFlowStats.getRtpSeqFirst());
|
||||
}
|
||||
|
||||
if (apRtpFlowStats.hasRtpSeqLast()) {
|
||||
cloudRtpStats.setLastRTPSeq(apRtpFlowStats.getRtpSeqLast());
|
||||
}
|
||||
|
||||
if (apRtpFlowStats.hasDirection()) {
|
||||
switch (apRtpFlowStats.getDirection()) {
|
||||
case RTP_DOWNSTREAM:
|
||||
cloudRtpStats.setDirection(
|
||||
com.telecominfraproject.wlan.systemevent.equipment.realtime.RtpFlowDirection.DOWNSTREAM);
|
||||
break;
|
||||
case RTP_UPSTREAM:
|
||||
cloudRtpStats.setDirection(
|
||||
com.telecominfraproject.wlan.systemevent.equipment.realtime.RtpFlowDirection.UPSTREAM);
|
||||
break;
|
||||
default:
|
||||
cloudRtpStats.setDirection(
|
||||
com.telecominfraproject.wlan.systemevent.equipment.realtime.RtpFlowDirection.UNSUPPORTED);
|
||||
}
|
||||
}
|
||||
|
||||
if (apRtpFlowStats.hasRtpFlowType()) {
|
||||
switch (apRtpFlowStats.getRtpFlowType()) {
|
||||
case RTP_VIDEO:
|
||||
cloudRtpStats
|
||||
.setFlowType(com.telecominfraproject.wlan.systemevent.equipment.realtime.RtpFlowType.VIDEO);
|
||||
break;
|
||||
case RTP_VOICE:
|
||||
cloudRtpStats
|
||||
.setFlowType(com.telecominfraproject.wlan.systemevent.equipment.realtime.RtpFlowType.VOICE);
|
||||
break;
|
||||
default:
|
||||
cloudRtpStats.setFlowType(
|
||||
com.telecominfraproject.wlan.systemevent.equipment.realtime.RtpFlowType.UNSUPPORTED);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (apRtpFlowStats.hasJitter()) {
|
||||
cloudRtpStats.setJitter(apRtpFlowStats.getJitter());
|
||||
}
|
||||
|
||||
if (apRtpFlowStats.hasTotalPacketsSent()) {
|
||||
cloudRtpStats.setTotalPacket(apRtpFlowStats.getTotalPacketsSent());
|
||||
}
|
||||
|
||||
if (apRtpFlowStats.hasTotalPacketsLost()) {
|
||||
cloudRtpStats.setTotalPacketLost(apRtpFlowStats.getTotalPacketsLost());
|
||||
}
|
||||
|
||||
if (apRtpFlowStats.hasMosx100()) {
|
||||
cloudRtpStats.setMosMultipliedBy100(apRtpFlowStats.getMosx100());
|
||||
}
|
||||
|
||||
if (apRtpFlowStats.hasPacketLossConsec()) {
|
||||
cloudRtpStats.setPacketLossConsecutive(apRtpFlowStats.getPacketLossConsec());
|
||||
}
|
||||
|
||||
if (apRtpFlowStats.hasPacketLossPercent()) {
|
||||
cloudRtpStats.setPacketLossPercentage(apRtpFlowStats.getPacketLossPercent());
|
||||
}
|
||||
|
||||
cloudRtpFlowStatsList.add(cloudRtpStats);
|
||||
|
||||
}
|
||||
return cloudRtpFlowStatsList;
|
||||
}
|
||||
|
||||
protected void processRtsStartSessionEvent(int customerId, long equipmentId, long locationId, long eventTimestamp,
|
||||
List<SystemEvent> eventsList, VideoVoiceReport videoVoiceReport) {
|
||||
if (videoVoiceReport.hasStreamVideoSessionStart()) {
|
||||
StreamingVideoSessionStart apStreamVideoSessionStart = videoVoiceReport.getStreamVideoSessionStart();
|
||||
RealTimeStreamingStartSessionEvent rtsStartSessionEvent = new RealTimeStreamingStartSessionEvent(customerId,
|
||||
locationId, equipmentId, eventTimestamp);
|
||||
if (apStreamVideoSessionStart.hasClientMac() && apStreamVideoSessionStart.getClientMac().isValidUtf8()) {
|
||||
rtsStartSessionEvent.setClientMacAddress(
|
||||
MacAddress.valueOf(apStreamVideoSessionStart.getClientMac().toStringUtf8()));
|
||||
}
|
||||
|
||||
if (apStreamVideoSessionStart.hasServerIp()) {
|
||||
try {
|
||||
rtsStartSessionEvent.setServerIp(
|
||||
InetAddress.getByAddress(apStreamVideoSessionStart.getServerIp().toByteArray()));
|
||||
} catch (UnknownHostException e) {
|
||||
LOG.error("Cannot get IP Address from {}", apStreamVideoSessionStart.getServerIp(), e);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
if (apStreamVideoSessionStart.hasSessionId()) {
|
||||
rtsStartSessionEvent.setSessionId(Long.toUnsignedString( apStreamVideoSessionStart.getSessionId()));
|
||||
|
||||
}
|
||||
|
||||
if (apStreamVideoSessionStart.hasStreamingVideoType()) {
|
||||
rtsStartSessionEvent.setType(OvsdbToWlanCloudTypeMappingUtility
|
||||
.getCloudStreamingVideoTypeFromApReport(apStreamVideoSessionStart.getStreamingVideoType()));
|
||||
|
||||
}
|
||||
|
||||
if (apStreamVideoSessionStart.hasVideoSessionId()) {
|
||||
rtsStartSessionEvent.setVideoSessionId(Long.toUnsignedString( apStreamVideoSessionStart.getVideoSessionId()));
|
||||
}
|
||||
eventsList.add(rtsStartSessionEvent);
|
||||
}
|
||||
}
|
||||
|
||||
protected void processRtsStopEvent(int customerId, long equipmentId, long locationId, long eventTimestamp,
|
||||
List<SystemEvent> eventsList, VideoVoiceReport videoVoiceReport) {
|
||||
if (videoVoiceReport.hasStreamVideoStop()) {
|
||||
StreamingVideoStop apStreamVideoStop = videoVoiceReport.getStreamVideoStop();
|
||||
RealTimeStreamingStopEvent rtsStopEvent = new RealTimeStreamingStopEvent(customerId, locationId, equipmentId,
|
||||
eventTimestamp);
|
||||
if (apStreamVideoStop.hasClientMac() && apStreamVideoStop.getClientMac().isValidUtf8()) {
|
||||
rtsStopEvent.setClientMacAddress(MacAddress.valueOf(apStreamVideoStop.getClientMac().toStringUtf8()));
|
||||
}
|
||||
|
||||
if (apStreamVideoStop.hasDurationSec()) {
|
||||
rtsStopEvent.setDurationInSecs(apStreamVideoStop.getDurationSec());
|
||||
}
|
||||
|
||||
if (apStreamVideoStop.hasServerIp()) {
|
||||
try {
|
||||
rtsStopEvent.setServerIp(InetAddress.getByAddress(apStreamVideoStop.getServerIp().toByteArray()));
|
||||
} catch (UnknownHostException e) {
|
||||
LOG.error("Cannot get IP Address from {}", apStreamVideoStop.getServerIp(), e);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
if (apStreamVideoStop.hasSessionId()) {
|
||||
rtsStopEvent.setSessionId(Long.toUnsignedString( apStreamVideoStop.getSessionId()));
|
||||
}
|
||||
|
||||
if (apStreamVideoStop.hasStreamingVideoType()) {
|
||||
|
||||
rtsStopEvent.setType(OvsdbToWlanCloudTypeMappingUtility
|
||||
.getCloudStreamingVideoTypeFromApReport(apStreamVideoStop.getStreamingVideoType()));
|
||||
|
||||
}
|
||||
|
||||
if (apStreamVideoStop.hasTotalBytes()) {
|
||||
rtsStopEvent.setTotalBytes(apStreamVideoStop.getTotalBytes());
|
||||
}
|
||||
|
||||
if (apStreamVideoStop.hasVideoSessionId()) {
|
||||
rtsStopEvent.setVideoSessionId(Long.toUnsignedString( apStreamVideoStop.getVideoSessionId()));
|
||||
}
|
||||
|
||||
eventsList.add(rtsStopEvent);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,3 +1,4 @@
|
||||
|
||||
package com.telecominfraproject.wlan.opensync.external.integration;
|
||||
|
||||
import static org.junit.Assert.assertNotNull;
|
||||
@@ -5,6 +6,7 @@ import static org.junit.Assert.assertNull;
|
||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.EnumMap;
|
||||
import java.util.HashMap;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
@@ -48,6 +50,8 @@ import com.telecominfraproject.wlan.core.model.entity.CountryCode;
|
||||
import com.telecominfraproject.wlan.core.model.equipment.EquipmentType;
|
||||
import com.telecominfraproject.wlan.core.model.equipment.MacAddress;
|
||||
import com.telecominfraproject.wlan.core.model.equipment.RadioType;
|
||||
import com.telecominfraproject.wlan.core.model.pagination.PaginationContext;
|
||||
import com.telecominfraproject.wlan.core.model.pagination.PaginationResponse;
|
||||
import com.telecominfraproject.wlan.customer.models.Customer;
|
||||
import com.telecominfraproject.wlan.customer.models.CustomerDetails;
|
||||
import com.telecominfraproject.wlan.customer.models.EquipmentAutoProvisioningSettings;
|
||||
@@ -66,6 +70,7 @@ import com.telecominfraproject.wlan.opensync.external.integration.controller.Ope
|
||||
import com.telecominfraproject.wlan.opensync.external.integration.models.ConnectNodeInfo;
|
||||
import com.telecominfraproject.wlan.opensync.external.integration.models.OpensyncAPRadioState;
|
||||
import com.telecominfraproject.wlan.opensync.external.integration.models.OpensyncAPVIFState;
|
||||
import com.telecominfraproject.wlan.opensync.external.integration.utils.MqttStatsPublisher;
|
||||
import com.telecominfraproject.wlan.profile.ProfileServiceInterface;
|
||||
import com.telecominfraproject.wlan.profile.models.Profile;
|
||||
import com.telecominfraproject.wlan.profile.models.ProfileType;
|
||||
@@ -74,6 +79,7 @@ import com.telecominfraproject.wlan.profile.rf.models.RfConfiguration;
|
||||
import com.telecominfraproject.wlan.profile.ssid.models.SsidConfiguration;
|
||||
import com.telecominfraproject.wlan.routing.RoutingServiceInterface;
|
||||
import com.telecominfraproject.wlan.status.StatusServiceInterface;
|
||||
import com.telecominfraproject.wlan.status.equipment.models.EquipmentChannelStatusData;
|
||||
import com.telecominfraproject.wlan.status.equipment.models.EquipmentProtocolStatusData;
|
||||
import com.telecominfraproject.wlan.status.equipment.models.EquipmentUpgradeStatusData;
|
||||
import com.telecominfraproject.wlan.status.equipment.report.models.ActiveBSSID;
|
||||
@@ -92,10 +98,9 @@ import sts.OpensyncStats.RadioBandType;
|
||||
import sts.OpensyncStats.Report;
|
||||
|
||||
@RunWith(SpringRunner.class)
|
||||
@ActiveProfiles(profiles = { "integration_test", })
|
||||
@ActiveProfiles(profiles = {"integration_test",})
|
||||
@SpringBootTest(webEnvironment = WebEnvironment.NONE, classes = OpensyncExternalIntegrationCloudTest.class)
|
||||
@Import(value = { AlarmServiceInterface.class, OpensyncExternalIntegrationCloud.class,
|
||||
OpensyncExternalIntegrationCloudTest.Config.class,
|
||||
@Import(value = {AlarmServiceInterface.class, OpensyncExternalIntegrationCloud.class, OpensyncExternalIntegrationCloudTest.Config.class,
|
||||
|
||||
})
|
||||
public class OpensyncExternalIntegrationCloudTest {
|
||||
@@ -125,12 +130,11 @@ public class OpensyncExternalIntegrationCloudTest {
|
||||
@MockBean(answer = Answers.RETURNS_MOCKS)
|
||||
OpensyncCloudGatewayController gatewayController;
|
||||
@MockBean
|
||||
OpensyncExternalIntegrationMqttMessageProcessor opensyncExternalIntegrationMqttProcessor;
|
||||
MqttStatsPublisher opensyncExternalIntegrationMqttProcessor;
|
||||
|
||||
@Autowired
|
||||
OpensyncExternalIntegrationCloud opensyncExternalIntegrationCloud;
|
||||
|
||||
|
||||
MockitoSession mockito;
|
||||
|
||||
@Configuration
|
||||
@@ -167,10 +171,12 @@ public class OpensyncExternalIntegrationCloudTest {
|
||||
Location location = new Location();
|
||||
location.setId(8L);
|
||||
location.setCustomerId(2);
|
||||
location.setDetails(LocationDetails.createWithDefaults());
|
||||
LocationDetails details = LocationDetails.createWithDefaults();
|
||||
details.setCountryCode(CountryCode.CA);
|
||||
location.setDetails(details);
|
||||
location.setName("Location-UT");
|
||||
location.setLocationType(LocationType.BUILDING);
|
||||
|
||||
Mockito.when(locationServiceInterface.getOrNull(Mockito.anyLong())).thenReturn(location);
|
||||
Customer customer = new Customer();
|
||||
customer.setId(2);
|
||||
CustomerDetails customerDetails = new CustomerDetails();
|
||||
@@ -189,25 +195,21 @@ public class OpensyncExternalIntegrationCloudTest {
|
||||
ssidProfile.setDetails(SsidConfiguration.createWithDefaults());
|
||||
|
||||
apProfile.setChildProfileIds(ImmutableSet.of(ssidProfile.getId()));
|
||||
Mockito.when(profileServiceInterface.create(ArgumentMatchers.any(Profile.class)))
|
||||
.thenAnswer(i -> i.getArguments()[0]);
|
||||
Mockito.when(profileServiceInterface.create(ArgumentMatchers.any(Profile.class))).thenAnswer(i -> i.getArguments()[0]);
|
||||
// .thenReturn(ssidProfile);
|
||||
Mockito.when(profileServiceInterface.update(ArgumentMatchers.any(Profile.class)))
|
||||
.thenAnswer(i -> i.getArguments()[0]);
|
||||
Mockito.when(profileServiceInterface.update(ArgumentMatchers.any(Profile.class))).thenAnswer(i -> i.getArguments()[0]);
|
||||
|
||||
Status fwStatus = new Status();
|
||||
fwStatus.setDetails(new EquipmentUpgradeStatusData());
|
||||
Mockito.when(statusServiceInterface.getOrNull(ArgumentMatchers.anyInt(), ArgumentMatchers.anyLong(),
|
||||
ArgumentMatchers.eq(StatusDataType.FIRMWARE))).thenReturn(fwStatus);
|
||||
Mockito.when(statusServiceInterface.getOrNull(ArgumentMatchers.anyInt(), ArgumentMatchers.anyLong(), ArgumentMatchers.eq(StatusDataType.FIRMWARE)))
|
||||
.thenReturn(fwStatus);
|
||||
|
||||
Mockito.when(firmwareServiceInterface.getDefaultCustomerTrackSetting())
|
||||
.thenReturn(new CustomerFirmwareTrackSettings());
|
||||
Mockito.when(firmwareServiceInterface.getDefaultCustomerTrackSetting()).thenReturn(new CustomerFirmwareTrackSettings());
|
||||
CustomerFirmwareTrackRecord fwTrackRecord = new CustomerFirmwareTrackRecord();
|
||||
fwTrackRecord.setSettings(new CustomerFirmwareTrackSettings());
|
||||
fwTrackRecord.setTrackRecordId(3);
|
||||
fwTrackRecord.setCustomerId(2);
|
||||
Mockito.when(firmwareServiceInterface.getCustomerFirmwareTrackRecord(ArgumentMatchers.anyInt()))
|
||||
.thenReturn(fwTrackRecord);
|
||||
Mockito.when(firmwareServiceInterface.getCustomerFirmwareTrackRecord(ArgumentMatchers.anyInt())).thenReturn(fwTrackRecord);
|
||||
|
||||
Equipment equipment = new Equipment();
|
||||
equipment.setCustomerId(2);
|
||||
@@ -219,24 +221,18 @@ public class OpensyncExternalIntegrationCloudTest {
|
||||
equipment.setDetails(ApElementConfiguration.createWithDefaults());
|
||||
|
||||
Mockito.when(equipmentServiceInterface.get(1L)).thenReturn(equipment);
|
||||
Mockito.when(
|
||||
equipmentServiceInterface.getByInventoryIdOrNull(ArgumentMatchers.eq("Test_Client_21P10C68818122")))
|
||||
.thenReturn(equipment);
|
||||
Mockito.when(equipmentServiceInterface.getByInventoryIdOrNull(ArgumentMatchers.eq("Test_Client_21P10C68818122"))).thenReturn(equipment);
|
||||
|
||||
Mockito.when(equipmentServiceInterface.create(ArgumentMatchers.any(Equipment.class)))
|
||||
.thenAnswer(i -> i.getArguments()[0]);
|
||||
Mockito.when(equipmentServiceInterface.update(ArgumentMatchers.any(Equipment.class)))
|
||||
.thenAnswer(i -> i.getArguments()[0]);
|
||||
Mockito.when(equipmentServiceInterface.create(ArgumentMatchers.any(Equipment.class))).thenAnswer(i -> i.getArguments()[0]);
|
||||
Mockito.when(equipmentServiceInterface.update(ArgumentMatchers.any(Equipment.class))).thenAnswer(i -> i.getArguments()[0]);
|
||||
|
||||
OvsdbSession session = Mockito.mock(OvsdbSession.class);
|
||||
|
||||
Mockito.when(ovsdbSessionMapInterface.getSession("Test_Client_21P10C68818122")).thenReturn(session);
|
||||
|
||||
opensyncExternalIntegrationCloud.apConnected("Test_Client_21P10C68818122", createConnectNodeInfo());
|
||||
|
||||
|
||||
Mockito.verify(firmwareServiceInterface).getDefaultCustomerTrackSetting();
|
||||
Mockito.verifyNoInteractions(locationServiceInterface);
|
||||
Mockito.verify(locationServiceInterface).getOrNull(ArgumentMatchers.anyLong());
|
||||
|
||||
}
|
||||
|
||||
@@ -245,11 +241,12 @@ public class OpensyncExternalIntegrationCloudTest {
|
||||
Location location = new Location();
|
||||
location.setId(8L);
|
||||
location.setCustomerId(2);
|
||||
location.setDetails(LocationDetails.createWithDefaults());
|
||||
LocationDetails details = LocationDetails.createWithDefaults();
|
||||
details.setCountryCode(CountryCode.CA);
|
||||
location.setDetails(details);
|
||||
location.setName("Location-UT");
|
||||
location.setLocationType(LocationType.BUILDING);
|
||||
|
||||
Mockito.when(locationServiceInterface.get(8L)).thenReturn(location);
|
||||
Mockito.when(locationServiceInterface.getOrNull(8L)).thenReturn(location);
|
||||
|
||||
Customer customer = new Customer();
|
||||
customer.setId(2);
|
||||
@@ -282,8 +279,7 @@ public class OpensyncExternalIntegrationCloudTest {
|
||||
childProfileIds.add(ssidProfile.getId());
|
||||
apProfile.setChildProfileIds(childProfileIds);
|
||||
|
||||
Mockito.when(profileServiceInterface.create(ArgumentMatchers.any(Profile.class))).thenReturn(apProfile)
|
||||
.thenReturn(ssidProfile).thenReturn(rfProfile);
|
||||
Mockito.when(profileServiceInterface.create(ArgumentMatchers.any(Profile.class))).thenReturn(apProfile).thenReturn(ssidProfile).thenReturn(rfProfile);
|
||||
Mockito.when(profileServiceInterface.update(ArgumentMatchers.any(Profile.class))).thenReturn(apProfile);
|
||||
|
||||
List<Profile> profileList = new ArrayList<>();
|
||||
@@ -304,27 +300,21 @@ public class OpensyncExternalIntegrationCloudTest {
|
||||
|
||||
Mockito.when(equipmentServiceInterface.get(1L)).thenReturn(equipment);
|
||||
|
||||
Mockito.when(equipmentServiceInterface.create(ArgumentMatchers.any(Equipment.class)))
|
||||
.thenAnswer(i -> i.getArguments()[0]);
|
||||
Mockito.when(equipmentServiceInterface.update(ArgumentMatchers.any(Equipment.class)))
|
||||
.thenAnswer(i -> i.getArguments()[0]);
|
||||
Mockito.when(
|
||||
equipmentServiceInterface.getByInventoryIdOrNull(ArgumentMatchers.eq("Test_Client_21P10C68818122")))
|
||||
.thenReturn(null);
|
||||
Mockito.when(equipmentServiceInterface.create(ArgumentMatchers.any(Equipment.class))).thenAnswer(i -> i.getArguments()[0]);
|
||||
Mockito.when(equipmentServiceInterface.update(ArgumentMatchers.any(Equipment.class))).thenAnswer(i -> i.getArguments()[0]);
|
||||
Mockito.when(equipmentServiceInterface.getByInventoryIdOrNull(ArgumentMatchers.eq("Test_Client_21P10C68818122"))).thenReturn(null);
|
||||
|
||||
Status fwStatus = new Status();
|
||||
fwStatus.setDetails(new EquipmentUpgradeStatusData());
|
||||
Mockito.when(statusServiceInterface.getOrNull(ArgumentMatchers.anyInt(), ArgumentMatchers.anyLong(),
|
||||
ArgumentMatchers.eq(StatusDataType.FIRMWARE))).thenReturn(fwStatus);
|
||||
Mockito.when(statusServiceInterface.getOrNull(ArgumentMatchers.anyInt(), ArgumentMatchers.anyLong(), ArgumentMatchers.eq(StatusDataType.FIRMWARE)))
|
||||
.thenReturn(fwStatus);
|
||||
|
||||
Mockito.when(firmwareServiceInterface.getDefaultCustomerTrackSetting())
|
||||
.thenReturn(new CustomerFirmwareTrackSettings());
|
||||
Mockito.when(firmwareServiceInterface.getDefaultCustomerTrackSetting()).thenReturn(new CustomerFirmwareTrackSettings());
|
||||
CustomerFirmwareTrackRecord fwTrackRecord = new CustomerFirmwareTrackRecord();
|
||||
fwTrackRecord.setSettings(new CustomerFirmwareTrackSettings());
|
||||
fwTrackRecord.setTrackRecordId(3);
|
||||
fwTrackRecord.setCustomerId(2);
|
||||
Mockito.when(firmwareServiceInterface.getCustomerFirmwareTrackRecord(ArgumentMatchers.anyInt()))
|
||||
.thenReturn(fwTrackRecord);
|
||||
Mockito.when(firmwareServiceInterface.getCustomerFirmwareTrackRecord(ArgumentMatchers.anyInt())).thenReturn(fwTrackRecord);
|
||||
|
||||
OvsdbSession session = Mockito.mock(OvsdbSession.class);
|
||||
|
||||
@@ -336,7 +326,7 @@ public class OpensyncExternalIntegrationCloudTest {
|
||||
Mockito.verify(customerServiceInterface).getOrNull(ArgumentMatchers.anyInt());
|
||||
Mockito.verify(equipmentServiceInterface).getByInventoryIdOrNull("Test_Client_21P10C68818122");
|
||||
Mockito.verify(firmwareServiceInterface).getDefaultCustomerTrackSetting();
|
||||
Mockito.verify(locationServiceInterface).get(ArgumentMatchers.anyLong());
|
||||
Mockito.verify(locationServiceInterface, Mockito.times(2)).getOrNull(ArgumentMatchers.anyLong());
|
||||
|
||||
}
|
||||
|
||||
@@ -349,18 +339,19 @@ public class OpensyncExternalIntegrationCloudTest {
|
||||
ssidProfile.setDetails(SsidConfiguration.createWithDefaults());
|
||||
|
||||
apProfile.setChildProfileIds(ImmutableSet.of(ssidProfile.getId()));
|
||||
Mockito.when(profileServiceInterface.create(ArgumentMatchers.any(Profile.class)))
|
||||
.thenAnswer(i -> i.getArguments()[0]);
|
||||
Mockito.when(profileServiceInterface.create(ArgumentMatchers.any(Profile.class))).thenAnswer(i -> i.getArguments()[0]);
|
||||
// .thenReturn(ssidProfile);
|
||||
Mockito.when(profileServiceInterface.update(ArgumentMatchers.any(Profile.class)))
|
||||
.thenAnswer(i -> i.getArguments()[0]);
|
||||
Mockito.when(profileServiceInterface.update(ArgumentMatchers.any(Profile.class))).thenAnswer(i -> i.getArguments()[0]);
|
||||
|
||||
Location location = new Location();
|
||||
location.setId(8L);
|
||||
location.setCustomerId(2);
|
||||
location.setDetails(LocationDetails.createWithDefaults());
|
||||
LocationDetails details = LocationDetails.createWithDefaults();
|
||||
details.setCountryCode(CountryCode.CA);
|
||||
location.setDetails(details);
|
||||
location.setName("Location-UT");
|
||||
location.setLocationType(LocationType.BUILDING);
|
||||
Mockito.when(locationServiceInterface.get(8L)).thenReturn(location);
|
||||
|
||||
Equipment equipment = new Equipment();
|
||||
equipment.setCustomerId(2);
|
||||
@@ -372,26 +363,20 @@ public class OpensyncExternalIntegrationCloudTest {
|
||||
equipment.setDetails(ApElementConfiguration.createWithDefaults());
|
||||
Status fwStatus = new Status();
|
||||
fwStatus.setDetails(new EquipmentUpgradeStatusData());
|
||||
Mockito.when(statusServiceInterface.getOrNull(ArgumentMatchers.anyInt(), ArgumentMatchers.anyLong(),
|
||||
ArgumentMatchers.eq(StatusDataType.FIRMWARE))).thenReturn(fwStatus);
|
||||
Mockito.when(statusServiceInterface.getOrNull(ArgumentMatchers.anyInt(), ArgumentMatchers.anyLong(), ArgumentMatchers.eq(StatusDataType.FIRMWARE)))
|
||||
.thenReturn(fwStatus);
|
||||
|
||||
Mockito.when(firmwareServiceInterface.getDefaultCustomerTrackSetting())
|
||||
.thenReturn(new CustomerFirmwareTrackSettings());
|
||||
Mockito.when(firmwareServiceInterface.getDefaultCustomerTrackSetting()).thenReturn(new CustomerFirmwareTrackSettings());
|
||||
CustomerFirmwareTrackRecord fwTrackRecord = new CustomerFirmwareTrackRecord();
|
||||
fwTrackRecord.setSettings(new CustomerFirmwareTrackSettings());
|
||||
fwTrackRecord.setTrackRecordId(3);
|
||||
fwTrackRecord.setCustomerId(2);
|
||||
Mockito.when(firmwareServiceInterface.getCustomerFirmwareTrackRecord(ArgumentMatchers.anyInt()))
|
||||
.thenReturn(fwTrackRecord);
|
||||
Mockito.when(firmwareServiceInterface.getCustomerFirmwareTrackRecord(ArgumentMatchers.anyInt())).thenReturn(fwTrackRecord);
|
||||
Mockito.when(equipmentServiceInterface.get(1L)).thenReturn(equipment);
|
||||
|
||||
Mockito.when(equipmentServiceInterface.create(ArgumentMatchers.any(Equipment.class)))
|
||||
.thenAnswer(i -> i.getArguments()[0]);
|
||||
Mockito.when(equipmentServiceInterface.update(ArgumentMatchers.any(Equipment.class)))
|
||||
.thenAnswer(i -> i.getArguments()[0]);
|
||||
Mockito.when(
|
||||
equipmentServiceInterface.getByInventoryIdOrNull(ArgumentMatchers.eq("Test_Client_21P10C68818122")))
|
||||
.thenReturn(equipment);
|
||||
Mockito.when(equipmentServiceInterface.create(ArgumentMatchers.any(Equipment.class))).thenAnswer(i -> i.getArguments()[0]);
|
||||
Mockito.when(equipmentServiceInterface.update(ArgumentMatchers.any(Equipment.class))).thenAnswer(i -> i.getArguments()[0]);
|
||||
Mockito.when(equipmentServiceInterface.getByInventoryIdOrNull(ArgumentMatchers.eq("Test_Client_21P10C68818122"))).thenReturn(equipment);
|
||||
|
||||
Customer customer = new Customer();
|
||||
customer.setId(2);
|
||||
@@ -437,8 +422,7 @@ public class OpensyncExternalIntegrationCloudTest {
|
||||
ssidProfile.setDetails(SsidConfiguration.createWithDefaults());
|
||||
|
||||
List<Profile> profileWithChildren = ImmutableList.of(apProfile, ssidProfile);
|
||||
Mockito.when(profileServiceInterface.getProfileWithChildren(ArgumentMatchers.anyLong()))
|
||||
.thenReturn(profileWithChildren);
|
||||
Mockito.when(profileServiceInterface.getProfileWithChildren(ArgumentMatchers.anyLong())).thenReturn(profileWithChildren);
|
||||
|
||||
assertNotNull(opensyncExternalIntegrationCloud.getApConfig("Test_Client_21P10C68818122"));
|
||||
|
||||
@@ -461,21 +445,10 @@ public class OpensyncExternalIntegrationCloudTest {
|
||||
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testExtractApIdFromTopic() {
|
||||
|
||||
String topic = "/ap/Test_Client_21P10C68818122/opensync";
|
||||
|
||||
assertEquals("Test_Client_21P10C68818122",
|
||||
OpensyncExternalIntegrationMqttMessageProcessor.extractApIdFromTopic(topic));
|
||||
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testProcessMqttMessageStringReport() {
|
||||
|
||||
Report report = Report.newBuilder().setNodeID("21P10C68818122")
|
||||
.addAllClients(getOpensyncStatsClientReportsList())
|
||||
Report report = Report.newBuilder().setNodeID("21P10C68818122").addAllClients(getOpensyncStatsClientReportsList())
|
||||
.addAllEventReport(getOpensyncStatsEventReportsList()).build();
|
||||
|
||||
String topic = "/ap/Test_Client_21P10C68818122/opensync";
|
||||
@@ -488,39 +461,31 @@ public class OpensyncExternalIntegrationCloudTest {
|
||||
activeBssidsDetails.setActiveBSSIDs(getActiveBssidList());
|
||||
bssidStatus.setDetails(activeBssidsDetails);
|
||||
|
||||
Mockito.when(statusServiceInterface.getOrNull(ArgumentMatchers.anyInt(), ArgumentMatchers.anyLong(),
|
||||
ArgumentMatchers.eq(StatusDataType.ACTIVE_BSSIDS))).thenReturn(bssidStatus);
|
||||
Mockito.when(statusServiceInterface.getOrNull(ArgumentMatchers.anyInt(), ArgumentMatchers.anyLong(), ArgumentMatchers.eq(StatusDataType.ACTIVE_BSSIDS)))
|
||||
.thenReturn(bssidStatus);
|
||||
|
||||
Mockito.when(statusServiceInterface.update(ArgumentMatchers.any(Status.class))).thenReturn(bssidStatus);
|
||||
com.telecominfraproject.wlan.client.models.Client clientInstance = new com.telecominfraproject.wlan.client.models.Client();
|
||||
clientInstance.setMacAddress(new MacAddress("7C:AB:60:E6:EA:4D"));
|
||||
clientInstance.setMacAddress(MacAddress.valueOf("7C:AB:60:E6:EA:4D"));
|
||||
clientInstance.setDetails(new ClientInfoDetails());
|
||||
com.telecominfraproject.wlan.client.models.Client clientInstance2 = new com.telecominfraproject.wlan.client.models.Client();
|
||||
clientInstance2.setMacAddress(new MacAddress("C0:9A:D0:76:A9:69"));
|
||||
clientInstance2.setMacAddress(MacAddress.valueOf("C0:9A:D0:76:A9:69"));
|
||||
clientInstance2.setDetails(new ClientInfoDetails());
|
||||
Mockito.when(
|
||||
clientServiceInterface.getOrNull(ArgumentMatchers.anyInt(), ArgumentMatchers.any(MacAddress.class)))
|
||||
.thenReturn(clientInstance).thenReturn(clientInstance2);
|
||||
Mockito.when(clientServiceInterface
|
||||
.update(ArgumentMatchers.any(com.telecominfraproject.wlan.client.models.Client.class)))
|
||||
.thenReturn(clientInstance).thenReturn(clientInstance2);
|
||||
Mockito.when(clientServiceInterface.getOrNull(ArgumentMatchers.anyInt(), ArgumentMatchers.any(MacAddress.class))).thenReturn(clientInstance)
|
||||
.thenReturn(clientInstance2);
|
||||
Mockito.when(clientServiceInterface.update(ArgumentMatchers.any(com.telecominfraproject.wlan.client.models.Client.class))).thenReturn(clientInstance)
|
||||
.thenReturn(clientInstance2);
|
||||
|
||||
ClientSession clientSession = new ClientSession();
|
||||
clientSession.setMacAddress(new MacAddress("7C:AB:60:E6:EA:4D"));
|
||||
clientSession.setMacAddress(MacAddress.valueOf("7C:AB:60:E6:EA:4D"));
|
||||
clientSession.setDetails(new ClientSessionDetails());
|
||||
ClientSession clientSession2 = new ClientSession();
|
||||
clientSession2.setMacAddress(new MacAddress("C0:9A:D0:76:A9:69"));
|
||||
clientSession2.setMacAddress(MacAddress.valueOf("C0:9A:D0:76:A9:69"));
|
||||
clientSession2.setDetails(new ClientSessionDetails());
|
||||
Mockito.when(clientServiceInterface.getSessionOrNull(ArgumentMatchers.anyInt(), ArgumentMatchers.anyLong(),
|
||||
ArgumentMatchers.any(MacAddress.class))).thenReturn(clientSession).thenReturn(clientSession2);
|
||||
|
||||
Mockito.when(clientServiceInterface.updateSession(ArgumentMatchers.any(ClientSession.class)))
|
||||
Mockito.when(clientServiceInterface.getSessionOrNull(ArgumentMatchers.anyInt(), ArgumentMatchers.anyLong(), ArgumentMatchers.any(MacAddress.class)))
|
||||
.thenReturn(clientSession).thenReturn(clientSession2);
|
||||
|
||||
opensyncExternalIntegrationCloud.processMqttMessage(topic, report);
|
||||
|
||||
Mockito.verify(opensyncExternalIntegrationMqttProcessor, Mockito.times(1)).processMqttMessage(topic, report);
|
||||
|
||||
Mockito.when(clientServiceInterface.updateSession(ArgumentMatchers.any(ClientSession.class))).thenReturn(clientSession).thenReturn(clientSession2);
|
||||
}
|
||||
|
||||
@Ignore
|
||||
@@ -588,16 +553,16 @@ public class OpensyncExternalIntegrationCloudTest {
|
||||
|
||||
OvsdbSession session = Mockito.mock(OvsdbSession.class);
|
||||
Mockito.when(session.getEquipmentId()).thenReturn(1L);
|
||||
Mockito.when(session.getCustomerId()).thenReturn(2);
|
||||
|
||||
Equipment equipment = new Equipment();
|
||||
equipment.setCustomerId(1);
|
||||
equipment.setCustomerId(2);
|
||||
equipment.setId(1L);
|
||||
equipment.setEquipmentType(EquipmentType.AP);
|
||||
equipment.setInventoryId(apId);
|
||||
equipment.setProfileId(1);
|
||||
equipment.setDetails(ApElementConfiguration.createWithDefaults());
|
||||
|
||||
Mockito.when(equipmentServiceInterface.getByInventoryIdOrNull(apId)).thenReturn(equipment);
|
||||
Mockito.when(equipmentServiceInterface.getOrNull(1L)).thenReturn(equipment);
|
||||
Mockito.when(equipmentServiceInterface.get(equipment.getId())).thenReturn(equipment);
|
||||
Mockito.when(equipmentServiceInterface.update(equipment)).thenReturn(equipment);
|
||||
|
||||
@@ -623,15 +588,13 @@ public class OpensyncExternalIntegrationCloudTest {
|
||||
|
||||
Mockito.when(ovsdbSessionMapInterface.getSession(apId)).thenReturn(session);
|
||||
|
||||
opensyncExternalIntegrationCloud.wifiVIFStateDbTableUpdate(ImmutableList.of(vifState1, vifState2, vifState3),
|
||||
apId);
|
||||
opensyncExternalIntegrationCloud.wifiVIFStateDbTableUpdate(ImmutableList.of(vifState1, vifState2, vifState3), apId);
|
||||
|
||||
Mockito.verify(session).getCustomerId();
|
||||
Mockito.verify(session).getEquipmentId();
|
||||
Mockito.verify(ovsdbSessionMapInterface).getSession(apId);
|
||||
Mockito.verify(equipmentServiceInterface).getByInventoryIdOrNull(apId);
|
||||
|
||||
Mockito.verify(equipmentServiceInterface).getOrNull(1L);
|
||||
Mockito.verify(statusServiceInterface).getOrNull(2, 1L, StatusDataType.CLIENT_DETAILS);
|
||||
|
||||
Mockito.verify(statusServiceInterface).getOrNull(2, 1L, StatusDataType.ACTIVE_BSSIDS);
|
||||
Mockito.verify(statusServiceInterface).update(clientStatus);
|
||||
|
||||
@@ -663,8 +626,7 @@ public class OpensyncExternalIntegrationCloudTest {
|
||||
radioState3.setChannel(149);
|
||||
radioState3.setVifStates(ImmutableSet.of(new Uuid(UUID.randomUUID())));
|
||||
radioState3.setFreqBand(RadioType.is5GHzL);
|
||||
radioState3.setAllowedChannels(
|
||||
ImmutableSet.of(00, 104, 108, 112, 116, 132, 136, 140, 144, 149, 153, 157, 161, 165));
|
||||
radioState3.setAllowedChannels(ImmutableSet.of(00, 104, 108, 112, 116, 132, 136, 140, 144, 149, 153, 157, 161, 165));
|
||||
radioState3.setTxPower(32);
|
||||
radioState3.setEnabled(true);
|
||||
radioState3.setCountry("CA");
|
||||
@@ -688,6 +650,18 @@ public class OpensyncExternalIntegrationCloudTest {
|
||||
|
||||
Mockito.when(statusServiceInterface.getOrNull(2, 1L, StatusDataType.PROTOCOL)).thenReturn(protocolStatus);
|
||||
|
||||
Status channelStatus = new Status();
|
||||
channelStatus.setCustomerId(2);
|
||||
channelStatus.setEquipmentId(1L);
|
||||
EquipmentChannelStatusData channelStatusData = new EquipmentChannelStatusData();
|
||||
Map<RadioType, Integer> channelStatusDataMap = new EnumMap<>(RadioType.class);
|
||||
channelStatusDataMap.put(RadioType.is2dot4GHz, 6);
|
||||
channelStatusDataMap.put(RadioType.is5GHzL, 36);
|
||||
channelStatusDataMap.put(RadioType.is5GHzU, 157);
|
||||
channelStatusData.setChannelNumberStatusDataMap(channelStatusDataMap);
|
||||
channelStatus.setDetails(channelStatusData);
|
||||
|
||||
Mockito.when(statusServiceInterface.getOrNull(2, 1L, StatusDataType.RADIO_CHANNEL)).thenReturn(channelStatus);
|
||||
Status bssidStatus = new Status();
|
||||
bssidStatus.setStatusDataType(StatusDataType.ACTIVE_BSSIDS);
|
||||
bssidStatus.setCustomerId(2);
|
||||
@@ -698,8 +672,6 @@ public class OpensyncExternalIntegrationCloudTest {
|
||||
|
||||
Mockito.when(statusServiceInterface.getOrNull(2, 1L, StatusDataType.ACTIVE_BSSIDS)).thenReturn(bssidStatus);
|
||||
|
||||
Mockito.when(statusServiceInterface.update(bssidStatus)).thenReturn(bssidStatus);
|
||||
|
||||
Status clientStatus = new Status();
|
||||
clientStatus.setCustomerId(2);
|
||||
clientStatus.setEquipmentId(1L);
|
||||
@@ -711,24 +683,22 @@ public class OpensyncExternalIntegrationCloudTest {
|
||||
clientStatus.setDetails(clientConnectionDetails);
|
||||
|
||||
Mockito.when(statusServiceInterface.getOrNull(2, 1L, StatusDataType.CLIENT_DETAILS)).thenReturn(clientStatus);
|
||||
Mockito.when(statusServiceInterface.update(clientStatus)).thenReturn(clientStatus);
|
||||
Mockito.when(statusServiceInterface.update(Mockito.any(Status.class))).thenReturn(channelStatus).thenReturn(bssidStatus).thenReturn(clientStatus);
|
||||
|
||||
OvsdbSession session = Mockito.mock(OvsdbSession.class);
|
||||
Mockito.when(session.getEquipmentId()).thenReturn(1L);
|
||||
Mockito.when(session.getCustomerId()).thenReturn(2);
|
||||
|
||||
Mockito.when(ovsdbSessionMapInterface.getSession(apId)).thenReturn(session);
|
||||
|
||||
opensyncExternalIntegrationCloud
|
||||
.wifiRadioStatusDbTableUpdate(ImmutableList.of(radioState1, radioState2, radioState3), apId);
|
||||
opensyncExternalIntegrationCloud.wifiRadioStatusDbTableUpdate(ImmutableList.of(radioState1, radioState2, radioState3), apId);
|
||||
|
||||
Mockito.verify(session).getCustomerId();
|
||||
Mockito.verify(session).getEquipmentId();
|
||||
|
||||
Mockito.verify(ovsdbSessionMapInterface).getSession(apId);
|
||||
Mockito.verify(equipmentServiceInterface, Mockito.times(2)).getByInventoryIdOrNull(apId);
|
||||
Mockito.verify(equipmentServiceInterface, Mockito.times(1)).getByInventoryIdOrNull(apId);
|
||||
Mockito.verify(statusServiceInterface, Mockito.times(1)).getOrNull(1, 1L, StatusDataType.RADIO_CHANNEL);
|
||||
|
||||
Mockito.verify(statusServiceInterface, Mockito.times(3)).getOrNull(2, 1L, StatusDataType.PROTOCOL);
|
||||
Mockito.verify(statusServiceInterface, Mockito.times(3)).getOrNull(1, 1L, StatusDataType.PROTOCOL);
|
||||
Mockito.verify(statusServiceInterface, Mockito.never()).update(bssidStatus);
|
||||
|
||||
}
|
||||
@@ -750,6 +720,23 @@ public class OpensyncExternalIntegrationCloudTest {
|
||||
|
||||
@Test
|
||||
public void testWifiVIFStateDbTableDelete() {
|
||||
String apId = "Test_Client_21P10C68818122";
|
||||
|
||||
Equipment equipment = new Equipment();
|
||||
equipment.setCustomerId(2);
|
||||
equipment.setId(1L);
|
||||
equipment.setEquipmentType(EquipmentType.AP);
|
||||
equipment.setInventoryId(apId);
|
||||
equipment.setProfileId(1);
|
||||
equipment.setDetails(ApElementConfiguration.createWithDefaults());
|
||||
|
||||
Mockito.when(equipmentServiceInterface.getByInventoryIdOrNull(apId)).thenReturn(equipment);
|
||||
Mockito.when(equipmentServiceInterface.getOrNull(1L)).thenReturn(equipment);
|
||||
|
||||
OvsdbSession session = new OvsdbSession();
|
||||
session.setApId(apId);
|
||||
session.setEquipmentId(1L);
|
||||
Mockito.when(ovsdbSessionMapInterface.getSession(apId)).thenReturn(session);
|
||||
|
||||
Status bssidStatus = new Status();
|
||||
bssidStatus.setStatusDataType(StatusDataType.ACTIVE_BSSIDS);
|
||||
@@ -759,16 +746,36 @@ public class OpensyncExternalIntegrationCloudTest {
|
||||
activeBssidsDetails.setActiveBSSIDs(getActiveBssidList());
|
||||
bssidStatus.setDetails(activeBssidsDetails);
|
||||
|
||||
Mockito.when(statusServiceInterface.getOrNull(ArgumentMatchers.anyInt(), ArgumentMatchers.anyLong(),
|
||||
ArgumentMatchers.eq(StatusDataType.ACTIVE_BSSIDS))).thenReturn(bssidStatus);
|
||||
Mockito.when(statusServiceInterface.getOrNull(ArgumentMatchers.anyInt(), ArgumentMatchers.anyLong(), ArgumentMatchers.eq(StatusDataType.ACTIVE_BSSIDS)))
|
||||
.thenReturn(bssidStatus);
|
||||
PaginationResponse<ClientSession> pr = Mockito.mock(PaginationResponse.class,Mockito.RETURNS_MOCKS);
|
||||
Mockito.when(clientServiceInterface.getSessionsForCustomer(Mockito.anyInt(), Mockito.anySet(),
|
||||
Mockito.anySet(), Mockito.isNull(), Mockito.isNull(), Mockito.any())).thenReturn(pr);
|
||||
|
||||
opensyncExternalIntegrationCloud.wifiVIFStateDbTableDelete(ImmutableList.of(new OpensyncAPVIFState()), "apId");
|
||||
|
||||
opensyncExternalIntegrationCloud.wifiVIFStateDbTableDelete(ImmutableList.of(new OpensyncAPVIFState()), "Test_Client_21P10C68818122");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testWifiAssociatedClientsDbTableDelete() {
|
||||
String apId = "Test_Client_21P10C68818122";
|
||||
|
||||
opensyncExternalIntegrationCloud.wifiAssociatedClientsDbTableDelete("7C:AB:60:E6:EA:4D", "apId");
|
||||
Equipment equipment = new Equipment();
|
||||
equipment.setCustomerId(2);
|
||||
equipment.setId(1L);
|
||||
equipment.setEquipmentType(EquipmentType.AP);
|
||||
equipment.setInventoryId(apId);
|
||||
equipment.setProfileId(1);
|
||||
equipment.setDetails(ApElementConfiguration.createWithDefaults());
|
||||
|
||||
Mockito.when(equipmentServiceInterface.getByInventoryIdOrNull(apId)).thenReturn(equipment);
|
||||
Mockito.when(equipmentServiceInterface.getOrNull(1L)).thenReturn(equipment);
|
||||
|
||||
OvsdbSession session = new OvsdbSession();
|
||||
session.setApId(apId);
|
||||
session.setEquipmentId(1L);
|
||||
Mockito.when(ovsdbSessionMapInterface.getSession(apId)).thenReturn(session);
|
||||
opensyncExternalIntegrationCloud.wifiAssociatedClientsDbTableDelete("7C:AB:60:E6:EA:4D", "Test_Client_21P10C68818122");
|
||||
}
|
||||
|
||||
// Helper methods
|
||||
@@ -796,13 +803,9 @@ public class OpensyncExternalIntegrationCloudTest {
|
||||
return bssidList;
|
||||
}
|
||||
|
||||
|
||||
private List<EventReport> getOpensyncStatsEventReportsList() {
|
||||
|
||||
|
||||
List<ClientAssocEvent> clientAssocEventList = new ArrayList<>();
|
||||
sts.OpensyncStats.EventReport.ClientAssocEvent.Builder clientAssocBuilder = EventReport.ClientAssocEvent
|
||||
.getDefaultInstance().toBuilder();
|
||||
sts.OpensyncStats.EventReport.ClientAssocEvent.Builder clientAssocBuilder = EventReport.ClientAssocEvent.getDefaultInstance().toBuilder();
|
||||
clientAssocBuilder.setAssocType(AssocType.ASSOC);
|
||||
clientAssocBuilder.setBand(RadioBandType.BAND5GU);
|
||||
clientAssocBuilder.setRssi(-65);
|
||||
@@ -812,21 +815,7 @@ public class OpensyncExternalIntegrationCloudTest {
|
||||
clientAssocBuilder.setInternalSc(1);
|
||||
clientAssocBuilder.setSsid("ssid-3");
|
||||
clientAssocBuilder.setStatus(1);
|
||||
|
||||
sts.OpensyncStats.EventReport.ClientAssocEvent.Builder clientAssocBuilder2 = EventReport.ClientAssocEvent
|
||||
.getDefaultInstance().toBuilder();
|
||||
clientAssocBuilder2.setAssocType(AssocType.ASSOC);
|
||||
clientAssocBuilder2.setBand(RadioBandType.BAND2G);
|
||||
clientAssocBuilder2.setRssi(-65);
|
||||
clientAssocBuilder2.setStaMac("7C:AB:60:E6:EA:4D");
|
||||
clientAssocBuilder2.setStaMacBytes(ByteString.copyFrom("7C:AB:60:E6:EA:4D".getBytes()));
|
||||
clientAssocBuilder2.setSessionId(1000L);
|
||||
clientAssocBuilder2.setInternalSc(1);
|
||||
clientAssocBuilder2.setSsid("ssid-1");
|
||||
clientAssocBuilder2.setStatus(1);
|
||||
|
||||
clientAssocEventList.add(clientAssocBuilder.build());
|
||||
clientAssocEventList.add(clientAssocBuilder2.build());
|
||||
clientAssocBuilder.setTimestampMs(System.currentTimeMillis());
|
||||
|
||||
List<EventReport> eventReportList = new ArrayList<>();
|
||||
|
||||
@@ -836,7 +825,7 @@ public class OpensyncExternalIntegrationCloudTest {
|
||||
|
||||
clientSessionBuilder.setSessionId(1000L);
|
||||
|
||||
clientSessionBuilder.addAllClientAssocEvent(clientAssocEventList);
|
||||
clientSessionBuilder.setClientAssocEvent(clientAssocBuilder.build());
|
||||
List<sts.OpensyncStats.EventReport.ClientSession> clientSessionList = new ArrayList<>();
|
||||
clientSessionList.add(clientSessionBuilder.build());
|
||||
|
||||
@@ -844,29 +833,26 @@ public class OpensyncExternalIntegrationCloudTest {
|
||||
|
||||
eventReportList.add(eventReportBuilder.build());
|
||||
|
||||
|
||||
return eventReportList;
|
||||
|
||||
|
||||
}
|
||||
|
||||
private List<ClientReport> getOpensyncStatsClientReportsList() {
|
||||
int rssi = Long.valueOf(4294967239L).intValue();
|
||||
|
||||
Client.Stats clientStats = Client.Stats.getDefaultInstance().toBuilder().setRssi(rssi).setRxBytes(225554786)
|
||||
.setRxRate(24000.0).setTxBytes(1208133026).setTxRate(433300.0).setRssi(758722570).setRxFrames(10000)
|
||||
.setTxFrames(10000).setTxRate(24000.0).build();
|
||||
Client client2g = Client.getDefaultInstance().toBuilder().setMacAddress("7C:AB:60:E6:EA:4D").setSsid("ssid-1")
|
||||
.setConnected(true).setDurationMs(59977).setStats(clientStats).build();
|
||||
Client client5gu = Client.getDefaultInstance().toBuilder().setMacAddress("C0:9A:D0:76:A9:69").setSsid("ssid-3")
|
||||
.setConnected(true).setDurationMs(298127).setStats(clientStats).build();
|
||||
Client.Stats clientStats = Client.Stats.getDefaultInstance().toBuilder().setRssi(rssi).setRxBytes(225554786).setRxRate(24000.0).setTxBytes(1208133026)
|
||||
.setTxRate(433300.0).setRssi(758722570).setRxFrames(10000).setTxFrames(10000).setTxRate(24000.0).build();
|
||||
Client client2g = Client.getDefaultInstance().toBuilder().setMacAddress("7C:AB:60:E6:EA:4D").setSsid("ssid-1").setConnected(true).setDurationMs(59977)
|
||||
.setStats(clientStats).build();
|
||||
Client client5gu = Client.getDefaultInstance().toBuilder().setMacAddress("C0:9A:D0:76:A9:69").setSsid("ssid-3").setConnected(true).setDurationMs(298127)
|
||||
.setStats(clientStats).build();
|
||||
|
||||
ClientReport clientReport2g = ClientReport.getDefaultInstance().toBuilder().setBand(RadioBandType.BAND2G)
|
||||
.setChannel(6).addAllClientList(ImmutableList.of(client2g)).build();
|
||||
ClientReport clientReport5gl = ClientReport.getDefaultInstance().toBuilder().setBand(RadioBandType.BAND5GL)
|
||||
.setChannel(36).addAllClientList(new ArrayList<Client>()).build();
|
||||
ClientReport clientReport5gu = ClientReport.getDefaultInstance().toBuilder().setBand(RadioBandType.BAND5GU)
|
||||
.setChannel(157).addAllClientList(ImmutableList.of(client5gu)).build();
|
||||
ClientReport clientReport2g =
|
||||
ClientReport.getDefaultInstance().toBuilder().setBand(RadioBandType.BAND2G).setChannel(6).addAllClientList(ImmutableList.of(client2g)).build();
|
||||
ClientReport clientReport5gl =
|
||||
ClientReport.getDefaultInstance().toBuilder().setBand(RadioBandType.BAND5GL).setChannel(36).addAllClientList(new ArrayList<Client>()).build();
|
||||
ClientReport clientReport5gu = ClientReport.getDefaultInstance().toBuilder().setBand(RadioBandType.BAND5GU).setChannel(157)
|
||||
.addAllClientList(ImmutableList.of(client5gu)).build();
|
||||
|
||||
List<ClientReport> clients = new ArrayList<>();
|
||||
clients.add(clientReport2g);
|
||||
@@ -895,8 +881,7 @@ public class OpensyncExternalIntegrationCloudTest {
|
||||
connectNodeInfo.skuNumber = "connectus.ai_21P10C68818122";
|
||||
connectNodeInfo.redirectorAddr = "ssl:opensync.zone1.art2wave.com:6643";
|
||||
connectNodeInfo.platformVersion = "OPENWRT_EA8300";
|
||||
connectNodeInfo.wifiRadioStates = ImmutableMap.of("2.4G", "home-ap-24", "5GL", "home-ap-l50", "5GU",
|
||||
"home-ap-u50");
|
||||
connectNodeInfo.wifiRadioStates = ImmutableMap.of("2.4G", "home-ap-24", "5GL", "home-ap-l50", "5GU", "home-ap-u50");
|
||||
|
||||
Map<String, String> versionMatrix = new HashMap<>();
|
||||
versionMatrix.put("DATE", "Thu Jul 16 18:52:06 UTC 2020");
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.telecominfraproject.wlan.opensync.external.integration;
|
||||
package com.telecominfraproject.wlan.opensync.external.integration.utils;
|
||||
|
||||
import static org.junit.Assert.assertNotNull;
|
||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||
@@ -43,11 +43,11 @@ import com.telecominfraproject.wlan.equipment.models.ApElementConfiguration;
|
||||
import com.telecominfraproject.wlan.equipment.models.Equipment;
|
||||
import com.telecominfraproject.wlan.firmware.FirmwareServiceInterface;
|
||||
import com.telecominfraproject.wlan.location.service.LocationServiceInterface;
|
||||
import com.telecominfraproject.wlan.opensync.external.integration.OpensyncExternalIntegrationCloud;
|
||||
import com.telecominfraproject.wlan.opensync.external.integration.OvsdbSession;
|
||||
import com.telecominfraproject.wlan.opensync.external.integration.OvsdbSessionMapInterface;
|
||||
import com.telecominfraproject.wlan.opensync.external.integration.controller.OpensyncCloudGatewayController;
|
||||
import com.telecominfraproject.wlan.profile.ProfileServiceInterface;
|
||||
import com.telecominfraproject.wlan.profile.models.ProfileContainer;
|
||||
import com.telecominfraproject.wlan.profile.models.ProfileType;
|
||||
import com.telecominfraproject.wlan.profile.rf.models.RfConfiguration;
|
||||
import com.telecominfraproject.wlan.routing.RoutingServiceInterface;
|
||||
import com.telecominfraproject.wlan.servicemetric.apnode.models.ApNodeMetrics;
|
||||
import com.telecominfraproject.wlan.servicemetric.apnode.models.StateUpDownError;
|
||||
@@ -74,12 +74,12 @@ import sts.OpensyncStats.VLANMetrics;
|
||||
|
||||
@RunWith(SpringRunner.class)
|
||||
@ActiveProfiles(profiles = { "integration_test", })
|
||||
@SpringBootTest(webEnvironment = WebEnvironment.NONE, classes = OpensyncExternalIntegrationMqttMessageProcessorTest.class)
|
||||
@SpringBootTest(webEnvironment = WebEnvironment.NONE, classes = MqttStatsPublisherTest.class)
|
||||
@Import(value = { AlarmServiceInterface.class, OpensyncExternalIntegrationCloud.class,
|
||||
OpensyncExternalIntegrationMqttMessageProcessorTest.Config.class,
|
||||
MqttStatsPublisherTest.Config.class,
|
||||
|
||||
})
|
||||
public class OpensyncExternalIntegrationMqttMessageProcessorTest {
|
||||
public class MqttStatsPublisherTest {
|
||||
|
||||
@MockBean
|
||||
AlarmServiceInterface alarmServiceInterface;
|
||||
@@ -105,9 +105,10 @@ public class OpensyncExternalIntegrationMqttMessageProcessorTest {
|
||||
FirmwareServiceInterface firmwareServiceInterface;
|
||||
@MockBean(answer = Answers.RETURNS_MOCKS)
|
||||
OpensyncCloudGatewayController gatewayController;
|
||||
|
||||
@MockBean
|
||||
RealtimeEventPublisher realtimeEventPublisher;
|
||||
@Autowired
|
||||
OpensyncExternalIntegrationMqttMessageProcessor opensyncExternalIntegrationMqttProcessor;
|
||||
MqttStatsPublisher opensyncExternalIntegrationMqttProcessor;
|
||||
|
||||
MockitoSession mockito;
|
||||
|
||||
@@ -115,8 +116,8 @@ public class OpensyncExternalIntegrationMqttMessageProcessorTest {
|
||||
static class Config {
|
||||
|
||||
@Bean
|
||||
public OpensyncExternalIntegrationMqttMessageProcessor opensyncExternalIntegrationMqttMessageProcessor() {
|
||||
return new OpensyncExternalIntegrationMqttMessageProcessor();
|
||||
public StatsPublisherInterface mqttStatsPublisher() {
|
||||
return new MqttStatsPublisher();
|
||||
}
|
||||
|
||||
}
|
||||
@@ -124,7 +125,7 @@ public class OpensyncExternalIntegrationMqttMessageProcessorTest {
|
||||
@Before
|
||||
public void setUp() throws Exception {
|
||||
|
||||
mockito = Mockito.mockitoSession().initMocks(this).strictness(Strictness.STRICT_STUBS).startMocking();
|
||||
mockito = Mockito.mockitoSession().initMocks(this).strictness(Strictness.LENIENT).startMocking();
|
||||
|
||||
}
|
||||
|
||||
@@ -134,14 +135,12 @@ public class OpensyncExternalIntegrationMqttMessageProcessorTest {
|
||||
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
public void testExtractApIdFromTopic() {
|
||||
|
||||
String topic = "/ap/Test_Client_21P10C68818122/opensync";
|
||||
|
||||
assertEquals("Test_Client_21P10C68818122",
|
||||
OpensyncExternalIntegrationMqttMessageProcessor.extractApIdFromTopic(topic));
|
||||
assertEquals("Test_Client_21P10C68818122", MqttStatsPublisher.extractApIdFromTopic(topic));
|
||||
|
||||
}
|
||||
|
||||
@@ -149,8 +148,12 @@ public class OpensyncExternalIntegrationMqttMessageProcessorTest {
|
||||
public void testExtractCustomerIdFromTopic() {
|
||||
String topic = "/ap/Test_Client_21P10C68818122/opensync";
|
||||
OvsdbSession session = Mockito.mock(OvsdbSession.class);
|
||||
Mockito.when(session.getCustomerId()).thenReturn(2);
|
||||
Equipment ce = Mockito.mock(Equipment.class);
|
||||
Mockito.when(ce.getCustomerId()).thenReturn(2);
|
||||
|
||||
Mockito.when(
|
||||
equipmentServiceInterface.getByInventoryIdOrNull(ArgumentMatchers.eq("Test_Client_21P10C68818122")))
|
||||
.thenReturn(ce);
|
||||
Mockito.when(ovsdbSessionMapInterface.getSession("Test_Client_21P10C68818122")).thenReturn(session);
|
||||
|
||||
assertEquals(2, opensyncExternalIntegrationMqttProcessor.extractCustomerIdFromTopic(topic));
|
||||
@@ -174,8 +177,7 @@ public class OpensyncExternalIntegrationMqttMessageProcessorTest {
|
||||
Equipment equipment = new Equipment();
|
||||
|
||||
equipment.setDetails(ApElementConfiguration.createWithDefaults());
|
||||
|
||||
equipment.setId(1L);
|
||||
equipment.setId(1L); equipment.setCustomerId(2);
|
||||
|
||||
Mockito.when(
|
||||
equipmentServiceInterface.getByInventoryIdOrNull(ArgumentMatchers.eq("Test_Client_21P10C68818122")))
|
||||
@@ -194,7 +196,6 @@ public class OpensyncExternalIntegrationMqttMessageProcessorTest {
|
||||
|
||||
OvsdbSession session = Mockito.mock(OvsdbSession.class);
|
||||
Mockito.when(session.getEquipmentId()).thenReturn(1L);
|
||||
Mockito.when(session.getCustomerId()).thenReturn(2);
|
||||
|
||||
Mockito.when(ovsdbSessionMapInterface.getSession("Test_Client_21P10C68818122")).thenReturn(session);
|
||||
|
||||
@@ -211,10 +212,10 @@ public class OpensyncExternalIntegrationMqttMessageProcessorTest {
|
||||
|
||||
Mockito.when(statusServiceInterface.update(ArgumentMatchers.any(Status.class))).thenReturn(bssidStatus);
|
||||
com.telecominfraproject.wlan.client.models.Client clientInstance = new com.telecominfraproject.wlan.client.models.Client();
|
||||
clientInstance.setMacAddress(new MacAddress("7C:AB:60:E6:EA:4D"));
|
||||
clientInstance.setMacAddress(MacAddress.valueOf("7C:AB:60:E6:EA:4D"));
|
||||
clientInstance.setDetails(new ClientInfoDetails());
|
||||
com.telecominfraproject.wlan.client.models.Client clientInstance2 = new com.telecominfraproject.wlan.client.models.Client();
|
||||
clientInstance2.setMacAddress(new MacAddress("C0:9A:D0:76:A9:69"));
|
||||
clientInstance2.setMacAddress(MacAddress.valueOf("C0:9A:D0:76:A9:69"));
|
||||
clientInstance2.setDetails(new ClientInfoDetails());
|
||||
Mockito.when(
|
||||
clientServiceInterface.getOrNull(ArgumentMatchers.anyInt(), ArgumentMatchers.any(MacAddress.class)))
|
||||
@@ -224,10 +225,10 @@ public class OpensyncExternalIntegrationMqttMessageProcessorTest {
|
||||
.thenReturn(clientInstance).thenReturn(clientInstance2);
|
||||
|
||||
ClientSession clientSession = new ClientSession();
|
||||
clientSession.setMacAddress(new MacAddress("7C:AB:60:E6:EA:4D"));
|
||||
clientSession.setMacAddress(MacAddress.valueOf("7C:AB:60:E6:EA:4D"));
|
||||
clientSession.setDetails(new ClientSessionDetails());
|
||||
ClientSession clientSession2 = new ClientSession();
|
||||
clientSession2.setMacAddress(new MacAddress("C0:9A:D0:76:A9:69"));
|
||||
clientSession2.setMacAddress(MacAddress.valueOf("C0:9A:D0:76:A9:69"));
|
||||
clientSession2.setDetails(new ClientSessionDetails());
|
||||
Mockito.when(clientServiceInterface.getSessionOrNull(ArgumentMatchers.anyInt(), ArgumentMatchers.anyLong(),
|
||||
ArgumentMatchers.any(MacAddress.class))).thenReturn(clientSession).thenReturn(clientSession2);
|
||||
@@ -317,12 +318,8 @@ public class OpensyncExternalIntegrationMqttMessageProcessorTest {
|
||||
bssidList.add(activeBssid3);
|
||||
return bssidList;
|
||||
}
|
||||
|
||||
|
||||
private List<EventReport> getOpensyncStatsEventReportsList() {
|
||||
|
||||
|
||||
List<ClientAssocEvent> clientAssocEventList = new ArrayList<>();
|
||||
sts.OpensyncStats.EventReport.ClientAssocEvent.Builder clientAssocBuilder = EventReport.ClientAssocEvent
|
||||
.getDefaultInstance().toBuilder();
|
||||
clientAssocBuilder.setAssocType(AssocType.ASSOC);
|
||||
@@ -334,21 +331,7 @@ public class OpensyncExternalIntegrationMqttMessageProcessorTest {
|
||||
clientAssocBuilder.setInternalSc(1);
|
||||
clientAssocBuilder.setSsid("ssid-3");
|
||||
clientAssocBuilder.setStatus(1);
|
||||
|
||||
sts.OpensyncStats.EventReport.ClientAssocEvent.Builder clientAssocBuilder2 = EventReport.ClientAssocEvent
|
||||
.getDefaultInstance().toBuilder();
|
||||
clientAssocBuilder2.setAssocType(AssocType.ASSOC);
|
||||
clientAssocBuilder2.setBand(RadioBandType.BAND2G);
|
||||
clientAssocBuilder2.setRssi(-65);
|
||||
clientAssocBuilder2.setStaMac("7C:AB:60:E6:EA:4D");
|
||||
clientAssocBuilder2.setStaMacBytes(ByteString.copyFrom("7C:AB:60:E6:EA:4D".getBytes()));
|
||||
clientAssocBuilder2.setSessionId(1000L);
|
||||
clientAssocBuilder2.setInternalSc(1);
|
||||
clientAssocBuilder2.setSsid("ssid-1");
|
||||
clientAssocBuilder2.setStatus(1);
|
||||
|
||||
clientAssocEventList.add(clientAssocBuilder.build());
|
||||
clientAssocEventList.add(clientAssocBuilder2.build());
|
||||
clientAssocBuilder.setTimestampMs(System.currentTimeMillis());
|
||||
|
||||
List<EventReport> eventReportList = new ArrayList<>();
|
||||
|
||||
@@ -359,12 +342,14 @@ public class OpensyncExternalIntegrationMqttMessageProcessorTest {
|
||||
|
||||
clientSessionBuilder.setSessionId(1000L);
|
||||
|
||||
clientSessionBuilder.addAllClientAssocEvent(clientAssocEventList);
|
||||
clientSessionBuilder.setClientAssocEvent(clientAssocBuilder.build());
|
||||
List<sts.OpensyncStats.EventReport.ClientSession> clientSessionList = new ArrayList<>();
|
||||
clientSessionList.add(clientSessionBuilder.build());
|
||||
|
||||
sts.OpensyncStats.EventReport.ChannelSwitchEvent.Builder channelSwitchEventBuilder = sts.OpensyncStats.EventReport.ChannelSwitchEvent.getDefaultInstance().toBuilder();
|
||||
channelSwitchEventBuilder.setBand(RadioBandType.BAND5GL).setChannel(40).setReason(ChannelSwitchReason.high_interference).setTimestampMs(System.currentTimeMillis());
|
||||
sts.OpensyncStats.EventReport.ChannelSwitchEvent.Builder channelSwitchEventBuilder = sts.OpensyncStats.EventReport.ChannelSwitchEvent
|
||||
.getDefaultInstance().toBuilder();
|
||||
channelSwitchEventBuilder.setBand(RadioBandType.BAND5GL).setChannel(40)
|
||||
.setReason(ChannelSwitchReason.high_interference).setTimestampMs(System.currentTimeMillis());
|
||||
|
||||
List<ChannelSwitchEvent> channelSwitchEventList = new ArrayList<>();
|
||||
channelSwitchEventList.add(channelSwitchEventBuilder.build());
|
||||
@@ -374,10 +359,8 @@ public class OpensyncExternalIntegrationMqttMessageProcessorTest {
|
||||
|
||||
eventReportList.add(eventReportBuilder.build());
|
||||
|
||||
|
||||
return eventReportList;
|
||||
|
||||
|
||||
}
|
||||
|
||||
private List<ClientReport> getOpensyncStatsClientReportsList() {
|
||||
@@ -0,0 +1,258 @@
|
||||
package com.telecominfraproject.wlan.opensync.external.integration.utils;
|
||||
|
||||
import java.net.InetAddress;
|
||||
import java.sql.Date;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import org.junit.After;
|
||||
import org.junit.Before;
|
||||
import org.junit.Ignore;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.mockito.Mockito;
|
||||
import org.mockito.MockitoSession;
|
||||
import org.mockito.quality.Strictness;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.boot.test.context.SpringBootTest;
|
||||
import org.springframework.boot.test.context.SpringBootTest.WebEnvironment;
|
||||
import org.springframework.boot.test.mock.mockito.MockBean;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.context.annotation.Import;
|
||||
import org.springframework.test.context.ActiveProfiles;
|
||||
import org.springframework.test.context.junit4.SpringRunner;
|
||||
|
||||
import com.google.protobuf.ByteString;
|
||||
import com.telecominfraproject.wlan.client.models.events.realtime.ClientAssocEvent;
|
||||
import com.telecominfraproject.wlan.client.models.events.realtime.ClientAuthEvent;
|
||||
import com.telecominfraproject.wlan.client.models.events.utils.WlanStatusCode;
|
||||
import com.telecominfraproject.wlan.cloudeventdispatcher.CloudEventDispatcherInterface;
|
||||
import com.telecominfraproject.wlan.equipment.EquipmentServiceInterface;
|
||||
import com.telecominfraproject.wlan.opensync.external.integration.OpensyncExternalIntegrationCloud;
|
||||
import com.telecominfraproject.wlan.profile.ProfileServiceInterface;
|
||||
|
||||
import sts.OpensyncStats.EventReport.DhcpNakEvent;
|
||||
import sts.OpensyncStats.EventReport.DhcpOfferEvent;
|
||||
import sts.OpensyncStats.EventReport.DhcpRequestEvent;
|
||||
import sts.OpensyncStats;
|
||||
import sts.OpensyncStats.EventReport.DhcpAckEvent;
|
||||
|
||||
import sts.OpensyncStats.EventReport.DhcpCommonData;
|
||||
import sts.OpensyncStats.EventReport.DhcpDeclineEvent;
|
||||
import sts.OpensyncStats.EventReport.DhcpDiscoverEvent;
|
||||
import sts.OpensyncStats.EventReport.DhcpInformEvent;
|
||||
import sts.OpensyncStats.EventReport.DhcpTransaction;
|
||||
import sts.OpensyncStats.RadioBandType;
|
||||
import sts.OpensyncStats.Report;
|
||||
|
||||
@RunWith(SpringRunner.class)
|
||||
@ActiveProfiles(profiles = { "integration_test", })
|
||||
@SpringBootTest(webEnvironment = WebEnvironment.NONE, classes = RealtimeEventPublisherTest.class)
|
||||
@Import(value = { OpensyncExternalIntegrationCloud.class, RealtimeEventPublisherTest.Config.class,
|
||||
|
||||
})
|
||||
public class RealtimeEventPublisherTest {
|
||||
|
||||
@MockBean
|
||||
private CloudEventDispatcherInterface cloudEventDispatcherInterface;
|
||||
|
||||
@MockBean
|
||||
private EquipmentServiceInterface equipmentServiceInterface;
|
||||
|
||||
@MockBean
|
||||
private ProfileServiceInterface profileServiceInterface;
|
||||
|
||||
@Autowired
|
||||
RealtimeEventPublisher realtimeEventPublisher;
|
||||
MockitoSession mockito;
|
||||
|
||||
@Configuration
|
||||
static class Config {
|
||||
|
||||
@Bean
|
||||
public RealtimeEventPublisher realtimeEventPublisher() {
|
||||
return new RealtimeEventPublisher();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@Before
|
||||
public void setUp() throws Exception {
|
||||
|
||||
mockito = Mockito.mockitoSession().initMocks(this).strictness(Strictness.STRICT_STUBS).startMocking();
|
||||
|
||||
}
|
||||
|
||||
@After
|
||||
public void tearDown() throws Exception {
|
||||
mockito.finishMocking();
|
||||
|
||||
}
|
||||
|
||||
@Ignore
|
||||
public void testPublishChannelHopEvents() {
|
||||
// TODO: implement
|
||||
}
|
||||
|
||||
@Ignore
|
||||
public void testPublishClientConnectSuccessEvent() {
|
||||
// TODO: implement
|
||||
}
|
||||
|
||||
@Ignore
|
||||
public void testPublishClientDisconnectEvent() {
|
||||
// TODO: implement
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testPublishClientAuthSystemEvent() throws Exception {
|
||||
|
||||
OpensyncStats.EventReport.ClientAuthEvent clientAuthEvent = OpensyncStats.EventReport.ClientAuthEvent
|
||||
.newBuilder().setBand(RadioBandType.BAND5GL).setSsid("TipWlan-cloud-3-radios")
|
||||
.setStaMac("c0:9a:d0:76:a9:69").setSessionId(Long.parseUnsignedLong("12377998144488079334"))
|
||||
.setAuthStatus(WlanStatusCode.WLAN_STATUS_SUCCESS.getId()).setTimestampMs(1610050309).build();
|
||||
|
||||
realtimeEventPublisher.publishClientAuthSystemEvent(2, 1L, 0L, clientAuthEvent);
|
||||
|
||||
Mockito.verify(cloudEventDispatcherInterface, Mockito.times(1))
|
||||
.publishEvent(Mockito.any(ClientAuthEvent.class));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testPublishClientAssocEvent() throws Exception {
|
||||
|
||||
OpensyncStats.EventReport.ClientAssocEvent clientAssocEvent = OpensyncStats.EventReport.ClientAssocEvent
|
||||
.newBuilder().setBand(RadioBandType.BAND5GL).setRssi(-37).setSsid("TipWlan-cloud-3-radios")
|
||||
.setStaMac("c0:9a:d0:76:a9:69").setSessionId(Long.parseUnsignedLong("12377998144488079334"))
|
||||
.setUsing11K(true).setUsing11V(true).setStatus(WlanStatusCode.WLAN_STATUS_SUCCESS.getId())
|
||||
.setTimestampMs(1610050309).build();
|
||||
|
||||
realtimeEventPublisher.publishClientAssocEvent(2, 1L, 0L, clientAssocEvent);
|
||||
|
||||
Mockito.verify(cloudEventDispatcherInterface, Mockito.times(1))
|
||||
.publishEvent(Mockito.any(ClientAssocEvent.class));
|
||||
}
|
||||
|
||||
@Ignore
|
||||
public void testPublishClientFailureEvent() {
|
||||
// TODO: implement
|
||||
}
|
||||
|
||||
@Ignore
|
||||
public void testPublishClientFirstDataEvent() {
|
||||
// TODO: implement
|
||||
}
|
||||
|
||||
@Ignore
|
||||
public void testPublishClientIdEvent() {
|
||||
// TODO: implement
|
||||
}
|
||||
|
||||
@Ignore
|
||||
public void testPublishClientIpEvent() {
|
||||
// TODO: implement
|
||||
}
|
||||
|
||||
@Ignore
|
||||
public void testPublishClientTimeoutEvent() {
|
||||
// TODO: implement
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testPublishSipCallEvents() throws Exception {
|
||||
|
||||
OpensyncStats.VideoVoiceReport.Builder callStartVoiceReportBuilder = OpensyncStats.VideoVoiceReport.newBuilder()
|
||||
.setCallStart(getDefaultCallStart());
|
||||
OpensyncStats.VideoVoiceReport.Builder callReportGotPublishVoiceReportBuilder = OpensyncStats.VideoVoiceReport
|
||||
.newBuilder().setCallReport(getDefaultCallReport(OpensyncStats.CallReport.CallReportReason.GOT_PUBLISH,
|
||||
121, 1028, 1316, 1888, 298, 2, 100, 200));
|
||||
OpensyncStats.VideoVoiceReport.Builder callReportRoamedToVoiceReportBuilder = OpensyncStats.VideoVoiceReport
|
||||
.newBuilder().setCallReport(getDefaultCallReport(OpensyncStats.CallReport.CallReportReason.ROAMED_TO,
|
||||
123, 1020, 1116, 1345, 223, 0, 102, 203));
|
||||
OpensyncStats.VideoVoiceReport.Builder callReportRoamedFromVoiceReportBuilder = OpensyncStats.VideoVoiceReport
|
||||
.newBuilder().setCallReport(getDefaultCallReport(OpensyncStats.CallReport.CallReportReason.ROAMED_FROM,
|
||||
122, 1029, 1300, 1234, 111, 3, 101, 201));
|
||||
OpensyncStats.VideoVoiceReport.Builder callStopVoiceReportBuilder = OpensyncStats.VideoVoiceReport.newBuilder()
|
||||
.setCallStop(getDefaultCallStop());
|
||||
// Create report with multiple voiceReports in one
|
||||
Report multipleVoiceReportsInOneReport = Report.newBuilder().addVideoVoiceReport(callStartVoiceReportBuilder)
|
||||
.addVideoVoiceReport(callReportGotPublishVoiceReportBuilder)
|
||||
.addVideoVoiceReport(callReportRoamedFromVoiceReportBuilder)
|
||||
.addVideoVoiceReport(callReportRoamedToVoiceReportBuilder)
|
||||
.addVideoVoiceReport(callStopVoiceReportBuilder).setNodeID("1").build();
|
||||
|
||||
realtimeEventPublisher.publishSipCallEvents(1, 2L, 0L, multipleVoiceReportsInOneReport.getVideoVoiceReportList());
|
||||
|
||||
Mockito.verify(cloudEventDispatcherInterface, Mockito.times(1)).publishEventsBulk(Mockito.anyList());
|
||||
}
|
||||
|
||||
private OpensyncStats.CallStart getDefaultCallStart() {
|
||||
OpensyncStats.CallStart.Builder callStartBuilder = OpensyncStats.CallStart.newBuilder();
|
||||
callStartBuilder.setBand(RadioBandType.BAND5G);
|
||||
callStartBuilder.setChannel(40);
|
||||
callStartBuilder.addCodecs("110 opus/48000/2");
|
||||
callStartBuilder.addCodecs("102 iLBC/8000");
|
||||
callStartBuilder.setClientMac(ByteString.copyFrom("C0:9A:D0:76:A9:69".getBytes()));
|
||||
callStartBuilder.setDeviceInfo("Test Device");
|
||||
callStartBuilder.setProviderDomain("skype");
|
||||
callStartBuilder.setSessionId(123L);
|
||||
callStartBuilder.setWifiSessionId(1234L);
|
||||
|
||||
return callStartBuilder.build();
|
||||
}
|
||||
|
||||
private OpensyncStats.CallStop getDefaultCallStop() {
|
||||
OpensyncStats.CallStop.Builder callStopBuilder = OpensyncStats.CallStop.newBuilder();
|
||||
callStopBuilder.setBand(RadioBandType.BAND5G);
|
||||
callStopBuilder.setChannel(40);
|
||||
callStopBuilder.addCodecs("110 opus/48000/2");
|
||||
callStopBuilder.addCodecs("102 iLBC/8000");
|
||||
callStopBuilder.setClientMac(ByteString.copyFrom("C0:9A:D0:76:A9:69".getBytes()));
|
||||
callStopBuilder.setCallDuration(1230);
|
||||
callStopBuilder.setProviderDomain("skype");
|
||||
callStopBuilder.setSessionId(123L);
|
||||
callStopBuilder.setWifiSessionId(1234L);
|
||||
callStopBuilder.setReason(OpensyncStats.CallStop.CallStopReason.BYE_OK);
|
||||
callStopBuilder.addStats(getRtpFlowStats(121, 1380, 1400, 3000, 119, 3, 205, 350));
|
||||
|
||||
return callStopBuilder.build();
|
||||
}
|
||||
|
||||
private OpensyncStats.RtpFlowStats getRtpFlowStats(int codec, int jitter, int latency, int totalPackets,
|
||||
int totalPacketsLost, int mos, int firstRtpSeq, int lastRtpSeq) {
|
||||
OpensyncStats.RtpFlowStats.Builder rtpFlowStatsBuilder = OpensyncStats.RtpFlowStats.newBuilder();
|
||||
rtpFlowStatsBuilder.setCodec(codec);
|
||||
rtpFlowStatsBuilder.setBlockCodecs(ByteString.copyFrom(new byte[] { (byte) 0xe6, 0x1 }));
|
||||
rtpFlowStatsBuilder.setDirection(OpensyncStats.RtpFlowStats.RtpFlowDirection.RTP_DOWNSTREAM);
|
||||
rtpFlowStatsBuilder.setRtpFlowType(OpensyncStats.RtpFlowStats.RtpFlowType.RTP_VOICE);
|
||||
rtpFlowStatsBuilder.setJitter(jitter);
|
||||
rtpFlowStatsBuilder.setLatency(latency);
|
||||
rtpFlowStatsBuilder.setTotalPacketsSent(totalPackets);
|
||||
rtpFlowStatsBuilder.setTotalPacketsLost(totalPacketsLost);
|
||||
rtpFlowStatsBuilder.setMosx100(mos);
|
||||
rtpFlowStatsBuilder.setRtpSeqFirst(firstRtpSeq);
|
||||
rtpFlowStatsBuilder.setRtpSeqLast(lastRtpSeq);
|
||||
|
||||
return rtpFlowStatsBuilder.build();
|
||||
}
|
||||
|
||||
private OpensyncStats.CallReport getDefaultCallReport(OpensyncStats.CallReport.CallReportReason reason, int codec,
|
||||
int jitter, int latency, int totalPackets, int totalPacketsLost, int mos, int firstRtpSeq, int lastRtpSeq) {
|
||||
OpensyncStats.CallReport.Builder callReportBuilder = OpensyncStats.CallReport.newBuilder();
|
||||
callReportBuilder.setBand(RadioBandType.BAND5G);
|
||||
callReportBuilder.setChannel(40);
|
||||
callReportBuilder.addCodecs("110 opus/48000/2");
|
||||
callReportBuilder.addCodecs("102 iLBC/8000");
|
||||
callReportBuilder.setClientMac(ByteString.copyFrom("C0:9A:D0:76:A9:69".getBytes()));
|
||||
callReportBuilder.setProviderDomain("skype");
|
||||
callReportBuilder.setSessionId(123L);
|
||||
callReportBuilder.setWifiSessionId(1234L);
|
||||
callReportBuilder.setReason(reason);
|
||||
callReportBuilder.addStats(
|
||||
getRtpFlowStats(codec, jitter, latency, totalPackets, totalPacketsLost, mos, firstRtpSeq, lastRtpSeq));
|
||||
|
||||
return callReportBuilder.build();
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,11 +1,9 @@
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<parent>
|
||||
<groupId>com.telecominfraproject.wlan</groupId>
|
||||
<artifactId>tip-wlan-cloud-root-pom</artifactId>
|
||||
<version>0.0.1-SNAPSHOT</version>
|
||||
<version>1.3.0-SNAPSHOT</version>
|
||||
<relativePath>../../wlan-cloud-root</relativePath>
|
||||
</parent>
|
||||
<artifactId>opensync-ext-interface</artifactId>
|
||||
@@ -15,33 +13,33 @@
|
||||
<dependency>
|
||||
<groupId>com.telecominfraproject.wlan</groupId>
|
||||
<artifactId>base-models</artifactId>
|
||||
<version>${tip-wlan-cloud.release.version}</version>
|
||||
<version>1.3.0-SNAPSHOT</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.telecominfraproject.wlan</groupId>
|
||||
<artifactId>tip-wlan-opensync-protobuf</artifactId>
|
||||
<version>${tip-wlan-cloud.release.version}</version>
|
||||
<version>1.3.0-SNAPSHOT</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<artifactId>equipment-models</artifactId>
|
||||
<groupId>com.telecominfraproject.wlan</groupId>
|
||||
<version>${tip-wlan-cloud.release.version}</version>
|
||||
<version>1.3.0-SNAPSHOT</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<artifactId>profile-models</artifactId>
|
||||
<groupId>com.telecominfraproject.wlan</groupId>
|
||||
<version>${tip-wlan-cloud.release.version}</version>
|
||||
<version>1.3.0-SNAPSHOT</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<artifactId>location-models</artifactId>
|
||||
<groupId>com.telecominfraproject.wlan</groupId>
|
||||
<version>${tip-wlan-cloud.release.version}</version>
|
||||
<version>1.3.0-SNAPSHOT</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<artifactId>routing-models</artifactId>
|
||||
<groupId>com.telecominfraproject.wlan</groupId>
|
||||
<version>${tip-wlan-cloud.release.version}</version>
|
||||
<version>1.3.0-SNAPSHOT</version>
|
||||
</dependency>
|
||||
|
||||
|
||||
|
||||
@@ -36,19 +36,24 @@ public interface OpensyncExternalIntegrationInterface {
|
||||
|
||||
void wifiInetStateDbTableDelete(List<OpensyncAPInetState> inetStateTables, String apId);
|
||||
|
||||
void processMqttMessage(String topic, Report report);
|
||||
|
||||
void processMqttMessage(String topic, FlowReport flowReport);
|
||||
|
||||
void processMqttMessage(String topic, WCStatsReport wcStatsReport);
|
||||
|
||||
void wifiAssociatedClientsDbTableUpdate(List<OpensyncWifiAssociatedClients> wifiAssociatedClients, String apId);
|
||||
|
||||
void wifiAssociatedClientsDbTableDelete(String deletedClientMac, String apId);
|
||||
|
||||
void awlanNodeDbTableUpdate(OpensyncAWLANNode opensyncAPState, String apId);
|
||||
|
||||
void dhcpLeasedIpDbTableUpdate(List<Map<String,String>> dhcpAttributes, String apId, RowUpdateOperation rowUpdateOperation);
|
||||
void dhcpLeasedIpDbTableUpdate(List<Map<String, String>> dhcpAttributes, String apId,
|
||||
RowUpdateOperation rowUpdateOperation);
|
||||
|
||||
void commandStateDbTableUpdate(List<Map<String,String>> commandStateAttributes, String apId, RowUpdateOperation rowUpdateOperation);
|
||||
void commandStateDbTableUpdate(List<Map<String, String>> commandStateAttributes, String apId,
|
||||
RowUpdateOperation rowUpdateOperation);
|
||||
|
||||
void apcStateDbTableUpdate(Map<String, String> apcStateAttributes, String apId,
|
||||
RowUpdateOperation rowUpdateOperation);
|
||||
|
||||
void nodeStateDbTableUpdate(List<Map<String, String>> nodeStateAttributes, String apId);
|
||||
|
||||
void clearEquipmentStatus(String apId);
|
||||
|
||||
void processMqttMessage(String topic, Report report);
|
||||
}
|
||||
|
||||
@@ -6,6 +6,7 @@ import java.util.Set;
|
||||
|
||||
import com.telecominfraproject.wlan.core.model.equipment.MacAddress;
|
||||
import com.telecominfraproject.wlan.core.model.equipment.RadioType;
|
||||
import com.telecominfraproject.wlan.equipment.models.CellSizeAttributes;
|
||||
|
||||
public interface OvsdbClientInterface {
|
||||
|
||||
@@ -17,12 +18,13 @@ public interface OvsdbClientInterface {
|
||||
|
||||
String stopDebugEngine(String apId);
|
||||
|
||||
String processBlinkRequest(String apId, boolean blinkAllLEDs);
|
||||
|
||||
void processConfigChanged(String apId);
|
||||
|
||||
void processClientBlocklistChange(String apId, List<MacAddress> blockList);
|
||||
|
||||
String processFirmwareDownload(String apId, String firmwareUrl, String firmwareVersion, String username,
|
||||
String validationCode);
|
||||
String processFirmwareDownload(String apId, String firmwareUrl, String firmwareVersion, String username);
|
||||
|
||||
String closeSession(String apId);
|
||||
|
||||
@@ -32,6 +34,8 @@ public interface OvsdbClientInterface {
|
||||
|
||||
String processFactoryResetRequest(String apId);
|
||||
|
||||
String processNewChannelsRequest(String apId, Map<RadioType,Integer> channelMap);
|
||||
String processNewChannelsRequest(String apId, Map<RadioType,Integer> backupChannelMap, Map<RadioType,Integer> primaryChannelMap);
|
||||
|
||||
String processCellSizeAttributesRequest(String apId, Map<RadioType, CellSizeAttributes> cellSizeAttributeMap);
|
||||
|
||||
}
|
||||
|
||||
@@ -7,7 +7,6 @@ public class OvsdbSession {
|
||||
private String apId;
|
||||
private long routingId;
|
||||
private long equipmentId;
|
||||
private int customerId;
|
||||
|
||||
public OvsdbClient getOvsdbClient() {
|
||||
return ovsdbClient;
|
||||
@@ -33,12 +32,5 @@ public class OvsdbSession {
|
||||
public void setEquipmentId(long equipmentId) {
|
||||
this.equipmentId = equipmentId;
|
||||
}
|
||||
public int getCustomerId() {
|
||||
return customerId;
|
||||
}
|
||||
public void setCustomerId(int customerId) {
|
||||
this.customerId = customerId;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
|
||||
package com.telecominfraproject.wlan.opensync.external.integration.models;
|
||||
|
||||
import java.util.HashMap;
|
||||
@@ -26,6 +27,13 @@ public class ConnectNodeInfo implements Cloneable {
|
||||
public String lanIfName;
|
||||
public String lanIfType;
|
||||
public String lanMacAddress;
|
||||
public String referenceDesign;
|
||||
public Map<String, String> qrCode;
|
||||
public String modelDescription;
|
||||
public String manufacturerUrl;
|
||||
public String manufacturerName;
|
||||
public String manufacturerDate;
|
||||
public String certificationRegion;
|
||||
|
||||
@Override
|
||||
public ConnectNodeInfo clone() {
|
||||
@@ -40,6 +48,9 @@ public class ConnectNodeInfo implements Cloneable {
|
||||
if (this.versionMatrix != null) {
|
||||
ret.versionMatrix = new HashMap<>(this.versionMatrix);
|
||||
}
|
||||
if (this.qrCode != null) {
|
||||
ret.qrCode = new HashMap<>(this.qrCode);
|
||||
}
|
||||
return ret;
|
||||
} catch (CloneNotSupportedException e) {
|
||||
throw new IllegalStateException("Cannot clone ", e);
|
||||
@@ -48,44 +59,44 @@ public class ConnectNodeInfo implements Cloneable {
|
||||
|
||||
@Override
|
||||
public int hashCode() {
|
||||
return Objects.hash(country, firmwareVersion, ifName, ifType, ipV4Address, lanIfName, lanIfType, lanIpV4Address,
|
||||
lanMacAddress, macAddress, managerAddr, model, mqttSettings, platformVersion, redirectorAddr, revision,
|
||||
serialNumber, skuNumber, versionMatrix, wifiRadioStates);
|
||||
return Objects.hash(certificationRegion, country, firmwareVersion, ifName, ifType, ipV4Address, lanIfName, lanIfType, lanIpV4Address, lanMacAddress,
|
||||
macAddress, managerAddr, manufacturerDate, manufacturerName, manufacturerUrl, model, modelDescription, mqttSettings, platformVersion, qrCode,
|
||||
redirectorAddr, referenceDesign, revision, serialNumber, skuNumber, versionMatrix, wifiRadioStates);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean equals(Object obj) {
|
||||
if (this == obj) {
|
||||
if (this == obj)
|
||||
return true;
|
||||
}
|
||||
if (!(obj instanceof ConnectNodeInfo)) {
|
||||
if (obj == null)
|
||||
return false;
|
||||
if (getClass() != obj.getClass())
|
||||
return false;
|
||||
}
|
||||
ConnectNodeInfo other = (ConnectNodeInfo) obj;
|
||||
return Objects.equals(country, other.country) && Objects.equals(firmwareVersion, other.firmwareVersion)
|
||||
&& Objects.equals(ifName, other.ifName) && Objects.equals(ifType, other.ifType)
|
||||
&& Objects.equals(ipV4Address, other.ipV4Address) && Objects.equals(lanIfName, other.lanIfName)
|
||||
&& Objects.equals(lanIfType, other.lanIfType) && Objects.equals(lanIpV4Address, other.lanIpV4Address)
|
||||
&& Objects.equals(lanMacAddress, other.lanMacAddress) && Objects.equals(macAddress, other.macAddress)
|
||||
&& Objects.equals(managerAddr, other.managerAddr) && Objects.equals(model, other.model)
|
||||
&& Objects.equals(mqttSettings, other.mqttSettings)
|
||||
&& Objects.equals(platformVersion, other.platformVersion)
|
||||
&& Objects.equals(redirectorAddr, other.redirectorAddr) && Objects.equals(revision, other.revision)
|
||||
&& Objects.equals(serialNumber, other.serialNumber) && Objects.equals(skuNumber, other.skuNumber)
|
||||
&& Objects.equals(versionMatrix, other.versionMatrix)
|
||||
&& Objects.equals(wifiRadioStates, other.wifiRadioStates);
|
||||
return Objects.equals(certificationRegion, other.certificationRegion) && Objects.equals(country, other.country)
|
||||
&& Objects.equals(firmwareVersion, other.firmwareVersion) && Objects.equals(ifName, other.ifName) && Objects.equals(ifType, other.ifType)
|
||||
&& Objects.equals(ipV4Address, other.ipV4Address) && Objects.equals(lanIfName, other.lanIfName) && Objects.equals(lanIfType, other.lanIfType)
|
||||
&& Objects.equals(lanIpV4Address, other.lanIpV4Address) && Objects.equals(lanMacAddress, other.lanMacAddress)
|
||||
&& Objects.equals(macAddress, other.macAddress) && Objects.equals(managerAddr, other.managerAddr)
|
||||
&& Objects.equals(manufacturerDate, other.manufacturerDate) && Objects.equals(manufacturerName, other.manufacturerName)
|
||||
&& Objects.equals(manufacturerUrl, other.manufacturerUrl) && Objects.equals(model, other.model)
|
||||
&& Objects.equals(modelDescription, other.modelDescription) && Objects.equals(mqttSettings, other.mqttSettings)
|
||||
&& Objects.equals(platformVersion, other.platformVersion) && Objects.equals(qrCode, other.qrCode)
|
||||
&& Objects.equals(redirectorAddr, other.redirectorAddr) && Objects.equals(referenceDesign, other.referenceDesign)
|
||||
&& Objects.equals(revision, other.revision) && Objects.equals(serialNumber, other.serialNumber) && Objects.equals(skuNumber, other.skuNumber)
|
||||
&& Objects.equals(versionMatrix, other.versionMatrix) && Objects.equals(wifiRadioStates, other.wifiRadioStates);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "ConnectNodeInfo [mqttSettings=" + mqttSettings + ", versionMatrix=" + versionMatrix
|
||||
+ ", wifiRadioStates=" + wifiRadioStates + ", redirectorAddr=" + redirectorAddr + ", managerAddr="
|
||||
+ managerAddr + ", skuNumber=" + skuNumber + ", serialNumber=" + serialNumber + ", macAddress="
|
||||
+ macAddress + ", ipV4Address=" + ipV4Address + ", platformVersion=" + platformVersion
|
||||
+ ", firmwareVersion=" + firmwareVersion + ", revision=" + revision + ", model=" + model + ", ifName="
|
||||
+ ifName + ", ifType=" + ifType + ", country=" + country + ", lanIpV4Address=" + lanIpV4Address
|
||||
+ ", lanIfName=" + lanIfName + ", lanIfType=" + lanIfType + ", lanMacAddress=" + lanMacAddress + "]";
|
||||
return "ConnectNodeInfo [mqttSettings=" + mqttSettings + ", versionMatrix=" + versionMatrix + ", wifiRadioStates=" + wifiRadioStates
|
||||
+ ", redirectorAddr=" + redirectorAddr + ", managerAddr=" + managerAddr + ", skuNumber=" + skuNumber + ", serialNumber=" + serialNumber
|
||||
+ ", macAddress=" + macAddress + ", ipV4Address=" + ipV4Address + ", platformVersion=" + platformVersion + ", firmwareVersion="
|
||||
+ firmwareVersion + ", revision=" + revision + ", model=" + model + ", ifName=" + ifName + ", ifType=" + ifType + ", country=" + country
|
||||
+ ", lanIpV4Address=" + lanIpV4Address + ", lanIfName=" + lanIfName + ", lanIfType=" + lanIfType + ", lanMacAddress=" + lanMacAddress
|
||||
+ ", referenceDesign=" + referenceDesign + ", qrCode=" + qrCode + ", modelDescription=" + modelDescription + ", manufacturerUrl="
|
||||
+ manufacturerUrl + ", manufacturerName=" + manufacturerName + ", manufacturerDate=" + manufacturerDate + ", certificationRegion="
|
||||
+ certificationRegion + "]";
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -0,0 +1,30 @@
|
||||
package com.telecominfraproject.wlan.opensync.external.integration.models;
|
||||
|
||||
import java.util.Set;
|
||||
|
||||
import com.telecominfraproject.wlan.core.model.json.BaseJsonModel;
|
||||
import com.vmware.ovsdb.protocol.operation.notation.Row;
|
||||
|
||||
public abstract class OpensyncAPBase extends BaseJsonModel {
|
||||
|
||||
private static final long serialVersionUID = -68509242520818671L;
|
||||
|
||||
public static <T> T getSingleValueFromSet(Row row, String columnName) {
|
||||
|
||||
Set<T> set = row != null ? row.getSetColumn(columnName) : null;
|
||||
T ret = (set != null) && !set.isEmpty() ? set.iterator().next() : null;
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
public OpensyncAPBase() {
|
||||
}
|
||||
|
||||
public <T> Set<T> getSet(Row row, String columnName) {
|
||||
|
||||
Set<T> set = row != null ? row.getSetColumn(columnName) : null;
|
||||
|
||||
return set;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -10,7 +10,6 @@ import com.telecominfraproject.wlan.core.model.entity.CountryCode;
|
||||
import com.telecominfraproject.wlan.core.model.equipment.EquipmentType;
|
||||
import com.telecominfraproject.wlan.core.model.equipment.MacAddress;
|
||||
import com.telecominfraproject.wlan.core.model.equipment.RadioType;
|
||||
import com.telecominfraproject.wlan.core.model.json.BaseJsonModel;
|
||||
import com.telecominfraproject.wlan.equipment.models.ApElementConfiguration;
|
||||
import com.telecominfraproject.wlan.equipment.models.Equipment;
|
||||
import com.telecominfraproject.wlan.equipment.models.StateSetting;
|
||||
@@ -24,10 +23,14 @@ import com.telecominfraproject.wlan.profile.ssid.models.SsidConfiguration.Secure
|
||||
import com.telecominfraproject.wlan.routing.models.EquipmentGatewayRecord;
|
||||
import com.telecominfraproject.wlan.routing.models.EquipmentRoutingRecord;
|
||||
|
||||
public class OpensyncAPConfig extends BaseJsonModel {
|
||||
public class OpensyncAPConfig extends OpensyncAPBase {
|
||||
|
||||
private static final long serialVersionUID = 3917975477206236668L;
|
||||
|
||||
public static long getSerialversionuid() {
|
||||
return serialVersionUID;
|
||||
}
|
||||
|
||||
private Equipment customerEquipment;
|
||||
private OpensyncAPHotspot20Config hotspotConfig;
|
||||
private Profile apProfile;
|
||||
@@ -40,8 +43,205 @@ public class OpensyncAPConfig extends BaseJsonModel {
|
||||
private EquipmentGatewayRecord equipmentGateway;
|
||||
private List<Profile> captiveProfiles;
|
||||
private List<Profile> bonjourGatewayProfiles;
|
||||
|
||||
private List<MacAddress> blockedClients;
|
||||
|
||||
@Override
|
||||
public OpensyncAPConfig clone() {
|
||||
OpensyncAPConfig ret = (OpensyncAPConfig) super.clone();
|
||||
|
||||
if (customerEquipment != null) {
|
||||
ret.customerEquipment = customerEquipment.clone();
|
||||
}
|
||||
if (hotspotConfig != null) {
|
||||
ret.hotspotConfig = hotspotConfig.clone();
|
||||
}
|
||||
if (equipmentLocation != null) {
|
||||
ret.equipmentLocation = equipmentLocation.clone();
|
||||
}
|
||||
if (ssidProfile != null) {
|
||||
List<Profile> ssidList = new ArrayList<Profile>();
|
||||
for (Profile profile : ssidProfile) {
|
||||
ssidList.add(profile.clone());
|
||||
}
|
||||
ret.ssidProfile = ssidList;
|
||||
}
|
||||
if (metricsProfile != null) {
|
||||
List<Profile> metricsList = new ArrayList<Profile>();
|
||||
for (Profile profile : metricsProfile) {
|
||||
metricsList.add(profile.clone());
|
||||
}
|
||||
ret.metricsProfile = metricsList;
|
||||
}
|
||||
if (bonjourGatewayProfiles != null) {
|
||||
List<Profile> bonjourGatewayProfilesList = new ArrayList<Profile>();
|
||||
for (Profile profile : bonjourGatewayProfiles) {
|
||||
bonjourGatewayProfilesList.add(profile.clone());
|
||||
}
|
||||
ret.bonjourGatewayProfiles = bonjourGatewayProfilesList;
|
||||
}
|
||||
if (apProfile != null) {
|
||||
ret.apProfile = apProfile.clone();
|
||||
}
|
||||
if (rfProfile != null) {
|
||||
ret.rfProfile = rfProfile.clone();
|
||||
}
|
||||
if (equipmentRouting != null) {
|
||||
ret.equipmentRouting = equipmentRouting.clone();
|
||||
}
|
||||
if (equipmentGateway != null) {
|
||||
ret.equipmentGateway = equipmentGateway.clone();
|
||||
}
|
||||
if (radiusProfiles != null) {
|
||||
ret.radiusProfiles = new ArrayList<>();
|
||||
for (Profile radiusProfile : this.radiusProfiles) {
|
||||
ret.radiusProfiles.add(radiusProfile);
|
||||
}
|
||||
}
|
||||
if (captiveProfiles != null) {
|
||||
ret.captiveProfiles = new ArrayList<>();
|
||||
for (Profile cpConfig : this.captiveProfiles) {
|
||||
ret.captiveProfiles.add(cpConfig);
|
||||
}
|
||||
}
|
||||
if (blockedClients != null) {
|
||||
ret.blockedClients = new ArrayList<MacAddress>();
|
||||
for (MacAddress blockedClient : this.blockedClients) {
|
||||
ret.blockedClients.add(blockedClient);
|
||||
}
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean equals(Object obj) {
|
||||
if (this == obj) {
|
||||
return true;
|
||||
}
|
||||
if (obj == null) {
|
||||
return false;
|
||||
}
|
||||
if (getClass() != obj.getClass()) {
|
||||
return false;
|
||||
}
|
||||
OpensyncAPConfig other = (OpensyncAPConfig) obj;
|
||||
return Objects.equals(apProfile, other.apProfile) && Objects.equals(blockedClients, other.blockedClients)
|
||||
&& Objects.equals(bonjourGatewayProfiles, other.bonjourGatewayProfiles)
|
||||
&& Objects.equals(captiveProfiles, other.captiveProfiles)
|
||||
&& Objects.equals(customerEquipment, other.customerEquipment)
|
||||
&& Objects.equals(equipmentGateway, other.equipmentGateway)
|
||||
&& Objects.equals(equipmentLocation, other.equipmentLocation)
|
||||
&& Objects.equals(equipmentRouting, other.equipmentRouting)
|
||||
&& Objects.equals(hotspotConfig, other.hotspotConfig)
|
||||
&& Objects.equals(metricsProfile, other.metricsProfile)
|
||||
&& Objects.equals(radiusProfiles, other.radiusProfiles) && Objects.equals(rfProfile, other.rfProfile)
|
||||
&& Objects.equals(ssidProfile, other.ssidProfile);
|
||||
}
|
||||
|
||||
public Profile getApProfile() {
|
||||
return apProfile;
|
||||
}
|
||||
|
||||
public List<MacAddress> getBlockedClients() {
|
||||
return blockedClients;
|
||||
}
|
||||
|
||||
public List<Profile> getBonjourGatewayProfiles() {
|
||||
return bonjourGatewayProfiles;
|
||||
}
|
||||
|
||||
public List<Profile> getCaptiveProfiles() {
|
||||
return captiveProfiles;
|
||||
}
|
||||
|
||||
public String getCountryCode() {
|
||||
return Location.getCountryCode(this.equipmentLocation).toString();
|
||||
}
|
||||
|
||||
public Equipment getCustomerEquipment() {
|
||||
return customerEquipment;
|
||||
}
|
||||
|
||||
public EquipmentGatewayRecord getEquipmentGateway() {
|
||||
return equipmentGateway;
|
||||
}
|
||||
|
||||
public Location getEquipmentLocation() {
|
||||
return equipmentLocation;
|
||||
}
|
||||
|
||||
public EquipmentRoutingRecord getEquipmentRouting() {
|
||||
return equipmentRouting;
|
||||
}
|
||||
|
||||
public OpensyncAPHotspot20Config getHotspotConfig() {
|
||||
return hotspotConfig;
|
||||
}
|
||||
|
||||
public List<Profile> getMetricsProfiles() {
|
||||
return metricsProfile;
|
||||
}
|
||||
|
||||
public List<Profile> getRadiusProfiles() {
|
||||
return radiusProfiles;
|
||||
}
|
||||
|
||||
public Profile getRfProfile() {
|
||||
return rfProfile;
|
||||
}
|
||||
|
||||
public List<Profile> getSsidProfile() {
|
||||
return ssidProfile;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int hashCode() {
|
||||
return Objects.hash(apProfile, blockedClients, bonjourGatewayProfiles, captiveProfiles, customerEquipment,
|
||||
equipmentGateway, equipmentLocation, equipmentRouting, hotspotConfig, metricsProfile, radiusProfiles,
|
||||
rfProfile, ssidProfile);
|
||||
}
|
||||
|
||||
public void setApProfile(Profile apProfile) {
|
||||
this.apProfile = apProfile;
|
||||
}
|
||||
|
||||
public void setBlockedClients(List<MacAddress> blockedClients) {
|
||||
this.blockedClients = blockedClients;
|
||||
}
|
||||
|
||||
public void setBonjourGatewayProfiles(List<Profile> bonjourGatewayProfiles) {
|
||||
this.bonjourGatewayProfiles = bonjourGatewayProfiles;
|
||||
}
|
||||
|
||||
public void setCaptiveProfiles(List<Profile> captiveProfiles) {
|
||||
this.captiveProfiles = captiveProfiles;
|
||||
}
|
||||
|
||||
public void setCustomerEquipment(Equipment customerEquipment) {
|
||||
this.customerEquipment = customerEquipment;
|
||||
}
|
||||
|
||||
public void setEquipmentGateway(EquipmentGatewayRecord equipmentGateway) {
|
||||
this.equipmentGateway = equipmentGateway;
|
||||
}
|
||||
|
||||
public void setEquipmentLocation(Location equipmentLocation) {
|
||||
this.equipmentLocation = equipmentLocation;
|
||||
}
|
||||
|
||||
public void setEquipmentRouting(EquipmentRoutingRecord equipmentRouting) {
|
||||
this.equipmentRouting = equipmentRouting;
|
||||
}
|
||||
|
||||
public void setHotspotConfig(OpensyncAPHotspot20Config hotspotConfig) {
|
||||
this.hotspotConfig = hotspotConfig;
|
||||
}
|
||||
|
||||
public void setMetricsProfiles(List<Profile> metricsProfileList) {
|
||||
metricsProfile = metricsProfileList;
|
||||
}
|
||||
|
||||
// Handle Legacy Config Support
|
||||
public void setRadioConfig(OpensyncAPRadioConfig radioConfig) {
|
||||
|
||||
@@ -61,13 +261,21 @@ public class OpensyncAPConfig extends BaseJsonModel {
|
||||
equipmentLocation = new Location();
|
||||
equipmentLocation.setId(1);
|
||||
equipmentLocation.setDetails(LocationDetails.createWithDefaults());
|
||||
((LocationDetails) equipmentLocation.getDetails())
|
||||
equipmentLocation.getDetails()
|
||||
.setCountryCode(CountryCode.getByName(radioConfig.getCountry().toLowerCase()));
|
||||
customerEquipment.setLocationId(equipmentLocation.getId());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public void setRadiusProfiles(List<Profile> radiusProfiles) {
|
||||
this.radiusProfiles = radiusProfiles;
|
||||
}
|
||||
|
||||
public void setRfProfile(Profile rfProfile) {
|
||||
this.rfProfile = rfProfile;
|
||||
}
|
||||
|
||||
// Handle Legacy Config Support
|
||||
public void setSsidConfigs(List<OpensyncAPSsidConfig> ssidConfigs) {
|
||||
|
||||
@@ -89,16 +297,18 @@ public class OpensyncAPConfig extends BaseJsonModel {
|
||||
appliedRadios.add(ssidConfig.getRadioType());
|
||||
cfg.setAppliedRadios(appliedRadios);
|
||||
cfg.setSsid(ssidConfig.getSsid());
|
||||
if (ssidConfig.getEncryption().equals("WPA-PSK") && ssidConfig.getMode().equals("1"))
|
||||
if (ssidConfig.getEncryption().equals("WPA-PSK") && ssidConfig.getMode().equals("1")) {
|
||||
cfg.setSecureMode(SecureMode.wpaPSK);
|
||||
else
|
||||
} else {
|
||||
cfg.setSecureMode(SecureMode.wpa2PSK);
|
||||
}
|
||||
cfg.setBroadcastSsid(ssidConfig.isBroadcast() ? StateSetting.enabled : StateSetting.disabled);
|
||||
|
||||
profile.setDetails(cfg);
|
||||
profile.setId(ssidProfileId);
|
||||
if (this.ssidProfile == null)
|
||||
if (this.ssidProfile == null) {
|
||||
this.ssidProfile = new ArrayList<Profile>();
|
||||
}
|
||||
this.ssidProfile.add(profile);
|
||||
apProfile.getChildProfileIds().add(ssidProfileId);
|
||||
ssidProfileId++;
|
||||
@@ -111,206 +321,8 @@ public class OpensyncAPConfig extends BaseJsonModel {
|
||||
|
||||
}
|
||||
|
||||
public EquipmentGatewayRecord getEquipmentGateway() {
|
||||
return equipmentGateway;
|
||||
}
|
||||
|
||||
public void setEquipmentGateway(EquipmentGatewayRecord equipmentGateway) {
|
||||
this.equipmentGateway = equipmentGateway;
|
||||
}
|
||||
|
||||
public EquipmentRoutingRecord getEquipmentRouting() {
|
||||
return equipmentRouting;
|
||||
}
|
||||
|
||||
public void setEquipmentRouting(EquipmentRoutingRecord equipmentRouting) {
|
||||
this.equipmentRouting = equipmentRouting;
|
||||
}
|
||||
|
||||
public Equipment getCustomerEquipment() {
|
||||
return customerEquipment;
|
||||
}
|
||||
|
||||
public void setCustomerEquipment(Equipment customerEquipment) {
|
||||
this.customerEquipment = customerEquipment;
|
||||
}
|
||||
|
||||
public OpensyncAPHotspot20Config getHotspotConfig() {
|
||||
return hotspotConfig;
|
||||
}
|
||||
|
||||
public void setHotspotConfig(OpensyncAPHotspot20Config hotspotConfig) {
|
||||
this.hotspotConfig = hotspotConfig;
|
||||
}
|
||||
|
||||
public Profile getApProfile() {
|
||||
return apProfile;
|
||||
}
|
||||
|
||||
public void setApProfile(Profile apProfile) {
|
||||
this.apProfile = apProfile;
|
||||
}
|
||||
|
||||
public Profile getRfProfile() {
|
||||
return rfProfile;
|
||||
}
|
||||
|
||||
public void setRfProfile(Profile rfProfile) {
|
||||
this.rfProfile = rfProfile;
|
||||
}
|
||||
|
||||
public List<Profile> getSsidProfile() {
|
||||
return ssidProfile;
|
||||
}
|
||||
|
||||
public void setSsidProfile(List<Profile> ssidProfile) {
|
||||
this.ssidProfile = ssidProfile;
|
||||
}
|
||||
|
||||
public List<Profile> getBonjourGatewayProfiles() {
|
||||
return bonjourGatewayProfiles;
|
||||
}
|
||||
|
||||
public void setBonjourGatewayProfiles(List<Profile> bonjourGatewayProfiles) {
|
||||
this.bonjourGatewayProfiles = bonjourGatewayProfiles;
|
||||
}
|
||||
|
||||
public Location getEquipmentLocation() {
|
||||
return equipmentLocation;
|
||||
}
|
||||
|
||||
public void setEquipmentLocation(Location equipmentLocation) {
|
||||
this.equipmentLocation = equipmentLocation;
|
||||
}
|
||||
|
||||
public String getCountryCode() {
|
||||
return Location.getCountryCode(this.equipmentLocation).toString();
|
||||
}
|
||||
|
||||
public static long getSerialversionuid() {
|
||||
return serialVersionUID;
|
||||
}
|
||||
|
||||
@Override
|
||||
public OpensyncAPConfig clone() {
|
||||
OpensyncAPConfig ret = (OpensyncAPConfig) super.clone();
|
||||
|
||||
if (customerEquipment != null)
|
||||
ret.customerEquipment = customerEquipment.clone();
|
||||
if (hotspotConfig != null)
|
||||
ret.hotspotConfig = hotspotConfig.clone();
|
||||
if (equipmentLocation != null)
|
||||
ret.equipmentLocation = equipmentLocation.clone();
|
||||
if (ssidProfile != null) {
|
||||
List<Profile> ssidList = new ArrayList<Profile>();
|
||||
for (Profile profile : ssidProfile) {
|
||||
ssidList.add(profile.clone());
|
||||
}
|
||||
ret.ssidProfile = ssidList;
|
||||
}
|
||||
if (metricsProfile != null) {
|
||||
List<Profile> metricsList = new ArrayList<Profile>();
|
||||
for (Profile profile : metricsProfile) {
|
||||
metricsList.add(profile.clone());
|
||||
}
|
||||
ret.metricsProfile = metricsList;
|
||||
}
|
||||
if (bonjourGatewayProfiles != null) {
|
||||
List<Profile> bonjourGatewayProfilesList = new ArrayList<Profile>();
|
||||
for (Profile profile : bonjourGatewayProfiles) {
|
||||
bonjourGatewayProfilesList.add(profile.clone());
|
||||
}
|
||||
ret.bonjourGatewayProfiles = bonjourGatewayProfilesList;
|
||||
}
|
||||
if (apProfile != null)
|
||||
ret.apProfile = apProfile.clone();
|
||||
if (rfProfile != null)
|
||||
ret.rfProfile = rfProfile.clone();
|
||||
if (equipmentRouting != null)
|
||||
ret.equipmentRouting = equipmentRouting.clone();
|
||||
if (equipmentGateway != null)
|
||||
ret.equipmentGateway = equipmentGateway.clone();
|
||||
if (radiusProfiles != null) {
|
||||
ret.radiusProfiles = new ArrayList<>();
|
||||
for (Profile radiusProfile : this.radiusProfiles) {
|
||||
ret.radiusProfiles.add(radiusProfile);
|
||||
}
|
||||
}
|
||||
if (captiveProfiles != null) {
|
||||
ret.captiveProfiles = new ArrayList<>();
|
||||
for (Profile cpConfig : this.captiveProfiles) {
|
||||
ret.captiveProfiles.add(cpConfig);
|
||||
}
|
||||
}
|
||||
if (blockedClients != null) {
|
||||
ret.blockedClients = new ArrayList<MacAddress>();
|
||||
for (MacAddress blockedClient : this.blockedClients) {
|
||||
ret.blockedClients.add(blockedClient);
|
||||
}
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
public List<Profile> getRadiusProfiles() {
|
||||
return radiusProfiles;
|
||||
}
|
||||
|
||||
public void setRadiusProfiles(List<Profile> radiusProfiles) {
|
||||
this.radiusProfiles = radiusProfiles;
|
||||
}
|
||||
|
||||
public List<Profile> getCaptiveProfiles() {
|
||||
return captiveProfiles;
|
||||
}
|
||||
|
||||
public void setCaptiveProfiles(List<Profile> captiveProfiles) {
|
||||
this.captiveProfiles = captiveProfiles;
|
||||
}
|
||||
|
||||
public List<MacAddress> getBlockedClients() {
|
||||
return blockedClients;
|
||||
}
|
||||
|
||||
public void setBlockedClients(List<MacAddress> blockedClients) {
|
||||
this.blockedClients = blockedClients;
|
||||
}
|
||||
|
||||
public void setMetricsProfiles(List<Profile> metricsProfileList) {
|
||||
metricsProfile = metricsProfileList;
|
||||
}
|
||||
|
||||
public List<Profile> getMetricsProfiles() {
|
||||
return metricsProfile;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int hashCode() {
|
||||
return Objects.hash(apProfile, blockedClients, bonjourGatewayProfiles, captiveProfiles, customerEquipment,
|
||||
equipmentGateway, equipmentLocation, equipmentRouting, hotspotConfig, metricsProfile,
|
||||
radiusProfiles, rfProfile, ssidProfile);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean equals(Object obj) {
|
||||
if (this == obj) {
|
||||
return true;
|
||||
}
|
||||
if (!(obj instanceof OpensyncAPConfig)) {
|
||||
return false;
|
||||
}
|
||||
OpensyncAPConfig other = (OpensyncAPConfig) obj;
|
||||
return Objects.equals(apProfile, other.apProfile) && Objects.equals(blockedClients, other.blockedClients)
|
||||
&& Objects.equals(bonjourGatewayProfiles, other.bonjourGatewayProfiles)
|
||||
&& Objects.equals(captiveProfiles, other.captiveProfiles)
|
||||
&& Objects.equals(customerEquipment, other.customerEquipment)
|
||||
&& Objects.equals(equipmentGateway, other.equipmentGateway)
|
||||
&& Objects.equals(equipmentLocation, other.equipmentLocation)
|
||||
&& Objects.equals(equipmentRouting, other.equipmentRouting)
|
||||
&& Objects.equals(hotspotConfig, other.hotspotConfig)
|
||||
&& Objects.equals(metricsProfile, other.metricsProfile)
|
||||
&& Objects.equals(radiusProfiles, other.radiusProfiles) && Objects.equals(rfProfile, other.rfProfile)
|
||||
&& Objects.equals(ssidProfile, other.ssidProfile);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -4,10 +4,9 @@ import java.util.HashSet;
|
||||
import java.util.Objects;
|
||||
import java.util.Set;
|
||||
|
||||
import com.telecominfraproject.wlan.core.model.json.BaseJsonModel;
|
||||
import com.telecominfraproject.wlan.profile.models.Profile;
|
||||
|
||||
public class OpensyncAPHotspot20Config extends BaseJsonModel {
|
||||
public class OpensyncAPHotspot20Config extends OpensyncAPBase {
|
||||
|
||||
private static final long serialVersionUID = -8495473152523219578L;
|
||||
|
||||
@@ -20,40 +19,6 @@ public class OpensyncAPHotspot20Config extends BaseJsonModel {
|
||||
private Set<Profile> hotspot20VenueSet;
|
||||
private Set<Profile> hotspot20ProviderSet;
|
||||
|
||||
|
||||
|
||||
public Set<Profile> getHotspot20ProfileSet() {
|
||||
return hotspot20ProfileSet;
|
||||
}
|
||||
|
||||
public void setHotspot20ProfileSet(Set<Profile> hotspot20ProfileSet) {
|
||||
this.hotspot20ProfileSet = hotspot20ProfileSet;
|
||||
}
|
||||
|
||||
public Set<Profile> getHotspot20OperatorSet() {
|
||||
return hotspot20OperatorSet;
|
||||
}
|
||||
|
||||
public void setHotspot20OperatorSet(Set<Profile> hotspot20OperatorSet) {
|
||||
this.hotspot20OperatorSet = hotspot20OperatorSet;
|
||||
}
|
||||
|
||||
public Set<Profile> getHotspot20VenueSet() {
|
||||
return hotspot20VenueSet;
|
||||
}
|
||||
|
||||
public void setHotspot20VenueSet(Set<Profile> hotspot20VenueSet) {
|
||||
this.hotspot20VenueSet = hotspot20VenueSet;
|
||||
}
|
||||
|
||||
public Set<Profile> getHotspot20ProviderSet() {
|
||||
return hotspot20ProviderSet;
|
||||
}
|
||||
|
||||
public void setHotspot20ProviderSet(Set<Profile> hotspot20ProviderSet) {
|
||||
this.hotspot20ProviderSet = hotspot20ProviderSet;
|
||||
}
|
||||
|
||||
@Override
|
||||
public OpensyncAPHotspot20Config clone() {
|
||||
OpensyncAPHotspot20Config ret = (OpensyncAPHotspot20Config) super.clone();
|
||||
@@ -77,17 +42,15 @@ public class OpensyncAPHotspot20Config extends BaseJsonModel {
|
||||
return ret;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int hashCode() {
|
||||
return Objects.hash(hotspot20OperatorSet, hotspot20ProfileSet, hotspot20ProviderSet, hotspot20VenueSet);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean equals(Object obj) {
|
||||
if (this == obj) {
|
||||
return true;
|
||||
}
|
||||
if (!(obj instanceof OpensyncAPHotspot20Config)) {
|
||||
if (obj == null) {
|
||||
return false;
|
||||
}
|
||||
if (getClass() != obj.getClass()) {
|
||||
return false;
|
||||
}
|
||||
OpensyncAPHotspot20Config other = (OpensyncAPHotspot20Config) obj;
|
||||
@@ -97,4 +60,41 @@ public class OpensyncAPHotspot20Config extends BaseJsonModel {
|
||||
&& Objects.equals(hotspot20VenueSet, other.hotspot20VenueSet);
|
||||
}
|
||||
|
||||
public Set<Profile> getHotspot20OperatorSet() {
|
||||
return hotspot20OperatorSet;
|
||||
}
|
||||
|
||||
public Set<Profile> getHotspot20ProfileSet() {
|
||||
return hotspot20ProfileSet;
|
||||
}
|
||||
|
||||
public Set<Profile> getHotspot20ProviderSet() {
|
||||
return hotspot20ProviderSet;
|
||||
}
|
||||
|
||||
public Set<Profile> getHotspot20VenueSet() {
|
||||
return hotspot20VenueSet;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int hashCode() {
|
||||
return Objects.hash(hotspot20OperatorSet, hotspot20ProfileSet, hotspot20ProviderSet, hotspot20VenueSet);
|
||||
}
|
||||
|
||||
public void setHotspot20OperatorSet(Set<Profile> hotspot20OperatorSet) {
|
||||
this.hotspot20OperatorSet = hotspot20OperatorSet;
|
||||
}
|
||||
|
||||
public void setHotspot20ProfileSet(Set<Profile> hotspot20ProfileSet) {
|
||||
this.hotspot20ProfileSet = hotspot20ProfileSet;
|
||||
}
|
||||
|
||||
public void setHotspot20ProviderSet(Set<Profile> hotspot20ProviderSet) {
|
||||
this.hotspot20ProviderSet = hotspot20ProviderSet;
|
||||
}
|
||||
|
||||
public void setHotspot20VenueSet(Set<Profile> hotspot20VenueSet) {
|
||||
this.hotspot20VenueSet = hotspot20VenueSet;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -2,457 +2,479 @@ package com.telecominfraproject.wlan.opensync.external.integration.models;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
|
||||
import com.telecominfraproject.wlan.core.model.json.BaseJsonModel;
|
||||
import com.vmware.ovsdb.protocol.operation.notation.Row;
|
||||
import com.vmware.ovsdb.protocol.operation.notation.Uuid;
|
||||
import com.vmware.ovsdb.protocol.operation.notation.Value;
|
||||
|
||||
public class OpensyncAPInetState extends BaseJsonModel {
|
||||
public class OpensyncAPInetState extends OpensyncAPBase {
|
||||
|
||||
private static final long serialVersionUID = 1707053648715030173L;
|
||||
private static final long serialVersionUID = 1707053648715030173L;
|
||||
|
||||
public String ifName;
|
||||
public Map<String, String> dhcpd;
|
||||
public String unpnpMode;
|
||||
public String ifType;
|
||||
public String softwdsMacAddr;
|
||||
public boolean enabled;
|
||||
public boolean sofwdsWrap;
|
||||
public int vlanId;
|
||||
public String netmask;
|
||||
public boolean nat;
|
||||
public String greRemoteInetAddr;
|
||||
public String ifUuid;
|
||||
public String inetAddr;
|
||||
public String hwAddr;
|
||||
public int mtw;
|
||||
public boolean network;
|
||||
public Map<String, String> dns;
|
||||
public String parentIfName;
|
||||
public String greIfName;
|
||||
public String broadcast;
|
||||
public Map<String, String> dhcpc;
|
||||
public String gateway;
|
||||
public String ipAssignScheme;
|
||||
public String inetConfig;
|
||||
public Uuid _uuid;
|
||||
public Uuid version;
|
||||
public String greLocalInetAddr;
|
||||
public String greRemoteMacAddr;
|
||||
public static long getSerialversionuid() {
|
||||
return serialVersionUID;
|
||||
}
|
||||
|
||||
public OpensyncAPInetState() {
|
||||
super();
|
||||
dns = new HashMap<>();
|
||||
dhcpc = new HashMap<>();
|
||||
}
|
||||
public String ifName;
|
||||
public Map<String, String> dhcpd;
|
||||
public String unpnpMode;
|
||||
public String ifType;
|
||||
public String softwdsMacAddr;
|
||||
public boolean enabled;
|
||||
public boolean sofwdsWrap;
|
||||
public int vlanId;
|
||||
public String netmask;
|
||||
public boolean nat;
|
||||
public String greRemoteInetAddr;
|
||||
public String ifUuid;
|
||||
public String inetAddr;
|
||||
public String hwAddr;
|
||||
public int mtw;
|
||||
public boolean network;
|
||||
public Map<String, String> dns;
|
||||
public String parentIfName;
|
||||
public String greIfName;
|
||||
public String broadcast;
|
||||
public Map<String, String> dhcpc;
|
||||
public String gateway;
|
||||
public String ipAssignScheme;
|
||||
public String inetConfig;
|
||||
public Uuid _uuid;
|
||||
public Uuid version;
|
||||
public String greLocalInetAddr;
|
||||
|
||||
public String getIfName() {
|
||||
return ifName;
|
||||
}
|
||||
public String greRemoteMacAddr;
|
||||
|
||||
public void setIfName(String ifName) {
|
||||
this.ifName = ifName;
|
||||
}
|
||||
public OpensyncAPInetState() {
|
||||
dns = new HashMap<>();
|
||||
dhcpc = new HashMap<>();
|
||||
}
|
||||
|
||||
public Map<String, String> getDhcpd() {
|
||||
return dhcpd;
|
||||
}
|
||||
public OpensyncAPInetState(Row row) {
|
||||
dns = new HashMap<>();
|
||||
dhcpc = new HashMap<>();
|
||||
|
||||
public void setDhcpd(Map<String, String> dhcpd) {
|
||||
this.dhcpd = dhcpd;
|
||||
}
|
||||
Map<String, Value> map = row.getColumns();
|
||||
|
||||
public String getUnpnpMode() {
|
||||
return unpnpMode;
|
||||
}
|
||||
if ((map.get("NAT") != null)
|
||||
&& map.get("NAT").getClass().equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
|
||||
this.setNat(row.getBooleanColumn("NAT"));
|
||||
}
|
||||
if ((map.get("enabled") != null)
|
||||
&& map.get("enabled").getClass().equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
|
||||
this.setEnabled(row.getBooleanColumn("enabled"));
|
||||
}
|
||||
if ((map.get("if_name") != null)
|
||||
&& map.get("if_name").getClass().equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
|
||||
this.setIfName(row.getStringColumn("if_name"));
|
||||
}
|
||||
if ((map.get("if_type") != null)
|
||||
&& map.get("if_type").getClass().equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
|
||||
this.setIfType(row.getStringColumn("if_type"));
|
||||
}
|
||||
|
||||
public void setUnpnpMode(String unpnpMode) {
|
||||
this.unpnpMode = unpnpMode;
|
||||
}
|
||||
if (map.containsKey("dhcpc")) {
|
||||
this.setDhcpc(row.getMapColumn("dhcpc"));
|
||||
}
|
||||
if (map.containsKey("dhcpd")) {
|
||||
this.setDhcpd(row.getMapColumn("dhcpd"));
|
||||
}
|
||||
if (map.containsKey("dns")) {
|
||||
this.setDns(row.getMapColumn("dns"));
|
||||
}
|
||||
if (map.get("inet_addr") != null
|
||||
&& map.get("inet_addr").getClass().equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
|
||||
this.setInetAddr(row.getStringColumn("inet_addr"));
|
||||
}
|
||||
if (map.containsKey("netmask")) {
|
||||
this.setNetmask(getSingleValueFromSet(row, "netmask"));
|
||||
}
|
||||
if (map.get("vlan_id") != null
|
||||
&& map.get("vlan_id").getClass().equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
|
||||
this.setVlanId(row.getIntegerColumn("vlan_id").intValue());
|
||||
}
|
||||
if (map.get("gre_ifname") != null
|
||||
&& map.get("gre_ifname").getClass().equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
|
||||
this.setGreIfName(row.getStringColumn("gre_ifname"));
|
||||
}
|
||||
if (map.get("gre_remote_inet_addr") != null && map.get("gre_remote_inet_addr").getClass()
|
||||
.equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
|
||||
this.setGreRemoteInetAddr(row.getStringColumn("gre_remote_inet_addr"));
|
||||
}
|
||||
if (map.get("gre_local_inet_addr") != null && map.get("gre_local_inet_addr").getClass()
|
||||
.equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
|
||||
this.setGreLocalInetAddr(row.getStringColumn("gre_local_inet_addr"));
|
||||
}
|
||||
if (map.get("gre_remote_mac_addr") != null && map.get("gre_remote_mac_addr").getClass()
|
||||
.equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
|
||||
this.setGreRemoteMacAddr(row.getStringColumn("gre_remote_mac_addr"));
|
||||
}
|
||||
|
||||
public String getIfType() {
|
||||
return ifType;
|
||||
}
|
||||
if ((map.get("ip_assign_scheme") != null) && map.get("ip_assign_scheme").getClass()
|
||||
.equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
|
||||
this.setIpAssignScheme(row.getStringColumn("ip_assign_scheme"));
|
||||
}
|
||||
if ((map.get("network") != null)
|
||||
&& map.get("network").getClass().equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
|
||||
this.setNetwork(row.getBooleanColumn("network"));
|
||||
}
|
||||
if ((map.get("hwaddr") != null)
|
||||
&& map.get("hwaddr").getClass().equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
|
||||
this.setHwAddr(row.getStringColumn("hwaddr"));
|
||||
}
|
||||
if ((map.get("_version") != null)
|
||||
&& map.get("_version").getClass().equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
|
||||
this.setVersion(row.getUuidColumn("_version"));
|
||||
}
|
||||
if ((map.get("_uuid") != null)
|
||||
&& map.get("_uuid").getClass().equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
|
||||
this.setVersion(row.getUuidColumn("_uuid"));
|
||||
}
|
||||
}
|
||||
|
||||
public void setIfType(String ifType) {
|
||||
this.ifType = ifType;
|
||||
}
|
||||
@Override
|
||||
public boolean equals(Object obj) {
|
||||
if (this == obj) {
|
||||
return true;
|
||||
}
|
||||
if (obj == null) {
|
||||
return false;
|
||||
}
|
||||
if (getClass() != obj.getClass()) {
|
||||
return false;
|
||||
}
|
||||
OpensyncAPInetState other = (OpensyncAPInetState) obj;
|
||||
if (!Objects.equals(_uuid, other._uuid)) {
|
||||
return false;
|
||||
}
|
||||
if (!Objects.equals(broadcast, other.broadcast)) {
|
||||
return false;
|
||||
}
|
||||
if (!Objects.equals(dhcpc, other.dhcpc)) {
|
||||
return false;
|
||||
}
|
||||
if (!Objects.equals(dhcpd, other.dhcpd)) {
|
||||
return false;
|
||||
}
|
||||
if (!Objects.equals(dns, other.dns)) {
|
||||
return false;
|
||||
}
|
||||
if (enabled != other.enabled) {
|
||||
return false;
|
||||
}
|
||||
if (!Objects.equals(gateway, other.gateway)) {
|
||||
return false;
|
||||
}
|
||||
if (!Objects.equals(greIfName, other.greIfName)) {
|
||||
return false;
|
||||
}
|
||||
if (!Objects.equals(greLocalInetAddr, other.greLocalInetAddr)) {
|
||||
return false;
|
||||
}
|
||||
if (!Objects.equals(greRemoteInetAddr, other.greRemoteInetAddr)) {
|
||||
return false;
|
||||
}
|
||||
if (!Objects.equals(hwAddr, other.hwAddr)) {
|
||||
return false;
|
||||
}
|
||||
if (!Objects.equals(ifName, other.ifName)) {
|
||||
return false;
|
||||
}
|
||||
if (!Objects.equals(ifType, other.ifType)) {
|
||||
return false;
|
||||
}
|
||||
if (!Objects.equals(ifUuid, other.ifUuid)) {
|
||||
return false;
|
||||
}
|
||||
if (!Objects.equals(inetAddr, other.inetAddr)) {
|
||||
return false;
|
||||
}
|
||||
if (!Objects.equals(inetConfig, other.inetConfig)) {
|
||||
return false;
|
||||
}
|
||||
if (!Objects.equals(ipAssignScheme, other.ipAssignScheme)) {
|
||||
return false;
|
||||
}
|
||||
if (mtw != other.mtw) {
|
||||
return false;
|
||||
}
|
||||
if (nat != other.nat) {
|
||||
return false;
|
||||
}
|
||||
if (!Objects.equals(netmask, other.netmask)) {
|
||||
return false;
|
||||
}
|
||||
if (network != other.network) {
|
||||
return false;
|
||||
}
|
||||
if (!Objects.equals(parentIfName, other.parentIfName)) {
|
||||
return false;
|
||||
}
|
||||
if (!Objects.equals(greRemoteMacAddr, other.greRemoteMacAddr)) {
|
||||
return false;
|
||||
}
|
||||
if (!Objects.equals(softwdsMacAddr, other.softwdsMacAddr)) {
|
||||
return false;
|
||||
}
|
||||
if (sofwdsWrap != other.sofwdsWrap) {
|
||||
return false;
|
||||
}
|
||||
if (!Objects.equals(unpnpMode, other.unpnpMode)) {
|
||||
return false;
|
||||
}
|
||||
if (!Objects.equals(version, other.version)) {
|
||||
return false;
|
||||
}
|
||||
if (vlanId != other.vlanId) {
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
public String getSoftwdsMacAddr() {
|
||||
return softwdsMacAddr;
|
||||
}
|
||||
public Uuid get_uuid() {
|
||||
return _uuid;
|
||||
}
|
||||
|
||||
public void setSoftwdsMacAddr(String softwdsMacAddr) {
|
||||
this.softwdsMacAddr = softwdsMacAddr;
|
||||
}
|
||||
public String getBroadcast() {
|
||||
return broadcast;
|
||||
}
|
||||
|
||||
public boolean isEnabled() {
|
||||
return enabled;
|
||||
}
|
||||
public Map<String, String> getDhcpc() {
|
||||
return dhcpc;
|
||||
}
|
||||
|
||||
public void setEnabled(boolean enabled) {
|
||||
this.enabled = enabled;
|
||||
}
|
||||
public Map<String, String> getDhcpd() {
|
||||
return dhcpd;
|
||||
}
|
||||
|
||||
public boolean isSofwdsWrap() {
|
||||
return sofwdsWrap;
|
||||
}
|
||||
public Map<String, String> getDns() {
|
||||
return dns;
|
||||
}
|
||||
|
||||
public void setSofwdsWrap(boolean sofwdsWrap) {
|
||||
this.sofwdsWrap = sofwdsWrap;
|
||||
}
|
||||
public String getGateway() {
|
||||
return gateway;
|
||||
}
|
||||
|
||||
public int getVlanId() {
|
||||
return vlanId;
|
||||
}
|
||||
public String getGreIfName() {
|
||||
return greIfName;
|
||||
}
|
||||
|
||||
public void setVlanId(int vlanId) {
|
||||
this.vlanId = vlanId;
|
||||
}
|
||||
public String getGreLocalInetAddr() {
|
||||
return greLocalInetAddr;
|
||||
}
|
||||
|
||||
public String getNetmask() {
|
||||
return netmask;
|
||||
}
|
||||
public String getGreRemoteInetAddr() {
|
||||
return greRemoteInetAddr;
|
||||
}
|
||||
|
||||
public void setNetmask(String netmask) {
|
||||
this.netmask = netmask;
|
||||
}
|
||||
public String getGreRemoteMacAddr() {
|
||||
return this.greRemoteMacAddr;
|
||||
}
|
||||
|
||||
public boolean isNat() {
|
||||
return nat;
|
||||
}
|
||||
public String getHwAddr() {
|
||||
return hwAddr;
|
||||
}
|
||||
|
||||
public void setNat(boolean nat) {
|
||||
this.nat = nat;
|
||||
}
|
||||
public String getIfName() {
|
||||
return ifName;
|
||||
}
|
||||
|
||||
public String getGreRemoteInetAddr() {
|
||||
return greRemoteInetAddr;
|
||||
}
|
||||
public String getIfType() {
|
||||
return ifType;
|
||||
}
|
||||
|
||||
public void setGreRemoteInetAddr(String greRemoteInetAddr) {
|
||||
this.greRemoteInetAddr = greRemoteInetAddr;
|
||||
}
|
||||
public String getIfUuid() {
|
||||
return ifUuid;
|
||||
}
|
||||
|
||||
public String getIfUuid() {
|
||||
return ifUuid;
|
||||
}
|
||||
public String getInetAddr() {
|
||||
return inetAddr;
|
||||
}
|
||||
|
||||
public void setIfUuid(String ifUuid) {
|
||||
this.ifUuid = ifUuid;
|
||||
}
|
||||
public String getInetConfig() {
|
||||
return inetConfig;
|
||||
}
|
||||
|
||||
public String getInetAddr() {
|
||||
return inetAddr;
|
||||
}
|
||||
public String getIpAssignScheme() {
|
||||
return ipAssignScheme;
|
||||
}
|
||||
|
||||
public void setInetAddr(String inetAddr) {
|
||||
this.inetAddr = inetAddr;
|
||||
}
|
||||
public int getMtw() {
|
||||
return mtw;
|
||||
}
|
||||
|
||||
public String getHwAddr() {
|
||||
return hwAddr;
|
||||
}
|
||||
public String getNetmask() {
|
||||
return netmask;
|
||||
}
|
||||
|
||||
public void setHwAddr(String hwAddr) {
|
||||
this.hwAddr = hwAddr;
|
||||
}
|
||||
public String getParentIfName() {
|
||||
return parentIfName;
|
||||
}
|
||||
|
||||
public int getMtw() {
|
||||
return mtw;
|
||||
}
|
||||
public String getSoftwdsMacAddr() {
|
||||
return softwdsMacAddr;
|
||||
}
|
||||
|
||||
public void setMtw(int mtw) {
|
||||
this.mtw = mtw;
|
||||
}
|
||||
public String getUnpnpMode() {
|
||||
return unpnpMode;
|
||||
}
|
||||
|
||||
public boolean isNetwork() {
|
||||
return network;
|
||||
}
|
||||
public Uuid getVersion() {
|
||||
return version;
|
||||
}
|
||||
|
||||
public void setNetwork(boolean network) {
|
||||
this.network = network;
|
||||
}
|
||||
public int getVlanId() {
|
||||
return vlanId;
|
||||
}
|
||||
|
||||
public Map<String, String> getDns() {
|
||||
return dns;
|
||||
}
|
||||
@Override
|
||||
public int hashCode() {
|
||||
return Objects.hash(_uuid, broadcast, dhcpc, dhcpd, dns, enabled, gateway, greIfName, greLocalInetAddr, greRemoteInetAddr,
|
||||
hwAddr, ifName, ifType, ifUuid, inetAddr, inetConfig, ipAssignScheme, mtw, nat, netmask, network,
|
||||
parentIfName, greRemoteMacAddr, softwdsMacAddr, sofwdsWrap, unpnpMode, version, vlanId);
|
||||
}
|
||||
|
||||
public void setDns(Map<String, String> dns) {
|
||||
this.dns = dns;
|
||||
}
|
||||
public boolean isEnabled() {
|
||||
return enabled;
|
||||
}
|
||||
|
||||
public String getParentIfName() {
|
||||
return parentIfName;
|
||||
}
|
||||
public boolean isNat() {
|
||||
return nat;
|
||||
}
|
||||
|
||||
public void setParentIfName(String parentIfName) {
|
||||
this.parentIfName = parentIfName;
|
||||
}
|
||||
public boolean isNetwork() {
|
||||
return network;
|
||||
}
|
||||
|
||||
public String getGreIfName() {
|
||||
return greIfName;
|
||||
}
|
||||
public boolean isSofwdsWrap() {
|
||||
return sofwdsWrap;
|
||||
}
|
||||
|
||||
public void setGreIfName(String greIfName) {
|
||||
this.greIfName = greIfName;
|
||||
}
|
||||
public void set_uuid(Uuid _uuid) {
|
||||
this._uuid = _uuid;
|
||||
}
|
||||
|
||||
public String getBroadcast() {
|
||||
return broadcast;
|
||||
}
|
||||
public void setBroadcast(String broadcast) {
|
||||
this.broadcast = broadcast;
|
||||
}
|
||||
|
||||
public void setBroadcast(String broadcast) {
|
||||
this.broadcast = broadcast;
|
||||
}
|
||||
public void setDhcpc(Map<String, String> dhcpc) {
|
||||
this.dhcpc = dhcpc;
|
||||
}
|
||||
|
||||
public Map<String, String> getDhcpc() {
|
||||
return dhcpc;
|
||||
}
|
||||
public void setDhcpd(Map<String, String> dhcpd) {
|
||||
this.dhcpd = dhcpd;
|
||||
}
|
||||
|
||||
public void setDhcpc(Map<String, String> dhcpc) {
|
||||
this.dhcpc = dhcpc;
|
||||
}
|
||||
public void setDns(Map<String, String> dns) {
|
||||
this.dns = dns;
|
||||
}
|
||||
|
||||
public String getGateway() {
|
||||
return gateway;
|
||||
}
|
||||
public void setEnabled(boolean enabled) {
|
||||
this.enabled = enabled;
|
||||
}
|
||||
|
||||
public void setGateway(String gateway) {
|
||||
this.gateway = gateway;
|
||||
}
|
||||
public void setGateway(String gateway) {
|
||||
this.gateway = gateway;
|
||||
}
|
||||
|
||||
public String getIpAssignScheme() {
|
||||
return ipAssignScheme;
|
||||
}
|
||||
public void setGreIfName(String greIfName) {
|
||||
this.greIfName = greIfName;
|
||||
}
|
||||
|
||||
public void setIpAssignScheme(String ipAssignScheme) {
|
||||
this.ipAssignScheme = ipAssignScheme;
|
||||
}
|
||||
public void setGreLocalInetAddr(String greLocalInetAddr) {
|
||||
this.greLocalInetAddr = greLocalInetAddr;
|
||||
|
||||
public String getInetConfig() {
|
||||
return inetConfig;
|
||||
}
|
||||
}
|
||||
|
||||
public void setInetConfig(String inetConfig) {
|
||||
this.inetConfig = inetConfig;
|
||||
}
|
||||
public void setGreRemoteInetAddr(String greRemoteInetAddr) {
|
||||
this.greRemoteInetAddr = greRemoteInetAddr;
|
||||
}
|
||||
|
||||
public static long getSerialversionuid() {
|
||||
return serialVersionUID;
|
||||
}
|
||||
public void setGreRemoteMacAddr(String greRemoteMacAddr) {
|
||||
this.greRemoteMacAddr = greRemoteMacAddr;
|
||||
}
|
||||
|
||||
public Uuid get_uuid() {
|
||||
return _uuid;
|
||||
}
|
||||
public void setHwAddr(String hwAddr) {
|
||||
this.hwAddr = hwAddr;
|
||||
}
|
||||
|
||||
public void set_uuid(Uuid _uuid) {
|
||||
this._uuid = _uuid;
|
||||
}
|
||||
public void setIfName(String ifName) {
|
||||
this.ifName = ifName;
|
||||
}
|
||||
|
||||
public Uuid getVersion() {
|
||||
return version;
|
||||
}
|
||||
public void setIfType(String ifType) {
|
||||
this.ifType = ifType;
|
||||
}
|
||||
|
||||
public void setVersion(Uuid version) {
|
||||
this.version = version;
|
||||
}
|
||||
public void setIfUuid(String ifUuid) {
|
||||
this.ifUuid = ifUuid;
|
||||
}
|
||||
|
||||
public void setGreLocalInetAddr(String greLocalInetAddr) {
|
||||
this.greLocalInetAddr = greLocalInetAddr;
|
||||
public void setInetAddr(String inetAddr) {
|
||||
this.inetAddr = inetAddr;
|
||||
}
|
||||
|
||||
}
|
||||
public void setInetConfig(String inetConfig) {
|
||||
this.inetConfig = inetConfig;
|
||||
}
|
||||
|
||||
public String getGreLocalInetAddr() {
|
||||
return greLocalInetAddr;
|
||||
}
|
||||
public void setIpAssignScheme(String ipAssignScheme) {
|
||||
this.ipAssignScheme = ipAssignScheme;
|
||||
}
|
||||
|
||||
public void setGreRemoteMacAddr(String greRemoteMacAddr) {
|
||||
this.greRemoteMacAddr = greRemoteMacAddr;
|
||||
}
|
||||
public void setMtw(int mtw) {
|
||||
this.mtw = mtw;
|
||||
}
|
||||
|
||||
public String getGreRemoteMacAddr(){
|
||||
return this.greRemoteMacAddr;
|
||||
}
|
||||
@Override
|
||||
public int hashCode() {
|
||||
final int prime = 31;
|
||||
int result = 1;
|
||||
result = prime * result + ((_uuid == null) ? 0 : _uuid.hashCode());
|
||||
result = prime * result + ((broadcast == null) ? 0 : broadcast.hashCode());
|
||||
result = prime * result + ((dhcpc == null) ? 0 : dhcpc.hashCode());
|
||||
result = prime * result + ((dhcpd == null) ? 0 : dhcpd.hashCode());
|
||||
result = prime * result + ((dns == null) ? 0 : dns.hashCode());
|
||||
result = prime * result + (enabled ? 1231 : 1237);
|
||||
result = prime * result + ((gateway == null) ? 0 : gateway.hashCode());
|
||||
result = prime * result + ((greIfName == null) ? 0 : greIfName.hashCode());
|
||||
result = prime * result + ((greLocalInetAddr == null) ? 0 : greLocalInetAddr.hashCode());
|
||||
result = prime * result + ((greRemoteInetAddr == null) ? 0 : greRemoteInetAddr.hashCode());
|
||||
result = prime * result + ((hwAddr == null) ? 0 : hwAddr.hashCode());
|
||||
result = prime * result + ((ifName == null) ? 0 : ifName.hashCode());
|
||||
result = prime * result + ((ifType == null) ? 0 : ifType.hashCode());
|
||||
result = prime * result + ((ifUuid == null) ? 0 : ifUuid.hashCode());
|
||||
result = prime * result + ((inetAddr == null) ? 0 : inetAddr.hashCode());
|
||||
result = prime * result + ((inetConfig == null) ? 0 : inetConfig.hashCode());
|
||||
result = prime * result + ((ipAssignScheme == null) ? 0 : ipAssignScheme.hashCode());
|
||||
result = prime * result + mtw;
|
||||
result = prime * result + (nat ? 1231 : 1237);
|
||||
result = prime * result + ((netmask == null) ? 0 : netmask.hashCode());
|
||||
result = prime * result + (network ? 1231 : 1237);
|
||||
result = prime * result + ((parentIfName == null) ? 0 : parentIfName.hashCode());
|
||||
result = prime * result + ((greRemoteMacAddr == null) ? 0 : greRemoteMacAddr.hashCode());
|
||||
result = prime * result + ((softwdsMacAddr == null) ? 0 : softwdsMacAddr.hashCode());
|
||||
result = prime * result + (sofwdsWrap ? 1231 : 1237);
|
||||
result = prime * result + ((unpnpMode == null) ? 0 : unpnpMode.hashCode());
|
||||
result = prime * result + ((version == null) ? 0 : version.hashCode());
|
||||
result = prime * result + vlanId;
|
||||
return result;
|
||||
}
|
||||
public void setNat(boolean nat) {
|
||||
this.nat = nat;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean equals(Object obj) {
|
||||
if (this == obj)
|
||||
return true;
|
||||
if (obj == null)
|
||||
return false;
|
||||
if (getClass() != obj.getClass())
|
||||
return false;
|
||||
OpensyncAPInetState other = (OpensyncAPInetState) obj;
|
||||
if (_uuid == null) {
|
||||
if (other._uuid != null)
|
||||
return false;
|
||||
} else if (!_uuid.equals(other._uuid))
|
||||
return false;
|
||||
if (broadcast == null) {
|
||||
if (other.broadcast != null)
|
||||
return false;
|
||||
} else if (!broadcast.equals(other.broadcast))
|
||||
return false;
|
||||
if (dhcpc == null) {
|
||||
if (other.dhcpc != null)
|
||||
return false;
|
||||
} else if (!dhcpc.equals(other.dhcpc))
|
||||
return false;
|
||||
if (dhcpd == null) {
|
||||
if (other.dhcpd != null)
|
||||
return false;
|
||||
} else if (!dhcpd.equals(other.dhcpd))
|
||||
return false;
|
||||
if (dns == null) {
|
||||
if (other.dns != null)
|
||||
return false;
|
||||
} else if (!dns.equals(other.dns))
|
||||
return false;
|
||||
if (enabled != other.enabled)
|
||||
return false;
|
||||
if (gateway == null) {
|
||||
if (other.gateway != null)
|
||||
return false;
|
||||
} else if (!gateway.equals(other.gateway))
|
||||
return false;
|
||||
if (greIfName == null) {
|
||||
if (other.greIfName != null)
|
||||
return false;
|
||||
} else if (!greIfName.equals(other.greIfName))
|
||||
return false;
|
||||
if (greLocalInetAddr == null) {
|
||||
if (other.greLocalInetAddr != null)
|
||||
return false;
|
||||
} else if (!greLocalInetAddr.equals(other.greLocalInetAddr))
|
||||
return false;
|
||||
if (greRemoteInetAddr == null) {
|
||||
if (other.greRemoteInetAddr != null)
|
||||
return false;
|
||||
} else if (!greRemoteInetAddr.equals(other.greRemoteInetAddr))
|
||||
return false;
|
||||
if (hwAddr == null) {
|
||||
if (other.hwAddr != null)
|
||||
return false;
|
||||
} else if (!hwAddr.equals(other.hwAddr))
|
||||
return false;
|
||||
if (ifName == null) {
|
||||
if (other.ifName != null)
|
||||
return false;
|
||||
} else if (!ifName.equals(other.ifName))
|
||||
return false;
|
||||
if (ifType == null) {
|
||||
if (other.ifType != null)
|
||||
return false;
|
||||
} else if (!ifType.equals(other.ifType))
|
||||
return false;
|
||||
if (ifUuid == null) {
|
||||
if (other.ifUuid != null)
|
||||
return false;
|
||||
} else if (!ifUuid.equals(other.ifUuid))
|
||||
return false;
|
||||
if (inetAddr == null) {
|
||||
if (other.inetAddr != null)
|
||||
return false;
|
||||
} else if (!inetAddr.equals(other.inetAddr))
|
||||
return false;
|
||||
if (inetConfig == null) {
|
||||
if (other.inetConfig != null)
|
||||
return false;
|
||||
} else if (!inetConfig.equals(other.inetConfig))
|
||||
return false;
|
||||
if (ipAssignScheme == null) {
|
||||
if (other.ipAssignScheme != null)
|
||||
return false;
|
||||
} else if (!ipAssignScheme.equals(other.ipAssignScheme))
|
||||
return false;
|
||||
if (mtw != other.mtw)
|
||||
return false;
|
||||
if (nat != other.nat)
|
||||
return false;
|
||||
if (netmask == null) {
|
||||
if (other.netmask != null)
|
||||
return false;
|
||||
} else if (!netmask.equals(other.netmask))
|
||||
return false;
|
||||
if (network != other.network)
|
||||
return false;
|
||||
if (parentIfName == null) {
|
||||
if (other.parentIfName != null)
|
||||
return false;
|
||||
} else if (!parentIfName.equals(other.parentIfName))
|
||||
return false;
|
||||
if (greRemoteMacAddr == null) {
|
||||
if (other.greRemoteMacAddr != null)
|
||||
return false;
|
||||
} else if (!greRemoteMacAddr.equals(other.greRemoteMacAddr))
|
||||
return false;
|
||||
if (softwdsMacAddr == null) {
|
||||
if (other.softwdsMacAddr != null)
|
||||
return false;
|
||||
} else if (!softwdsMacAddr.equals(other.softwdsMacAddr))
|
||||
return false;
|
||||
if (sofwdsWrap != other.sofwdsWrap)
|
||||
return false;
|
||||
if (unpnpMode == null) {
|
||||
if (other.unpnpMode != null)
|
||||
return false;
|
||||
} else if (!unpnpMode.equals(other.unpnpMode))
|
||||
return false;
|
||||
if (version == null) {
|
||||
if (other.version != null)
|
||||
return false;
|
||||
} else if (!version.equals(other.version))
|
||||
return false;
|
||||
if (vlanId != other.vlanId)
|
||||
return false;
|
||||
return true;
|
||||
}
|
||||
public void setNetmask(String netmask) {
|
||||
this.netmask = netmask;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "OpensyncAPInetState [ifName=" + ifName + ", dhcpd=" + dhcpd + ", unpnpMode=" + unpnpMode + ", ifType="
|
||||
+ ifType + ", softwdsMacAddr=" + softwdsMacAddr + ", enabled=" + enabled + ", sofwdsWrap=" + sofwdsWrap
|
||||
+ ", vlanId=" + vlanId + ", netmask=" + netmask + ", nat=" + nat + ", greRemoteInetAddr="
|
||||
+ greRemoteInetAddr + ", ifUuid=" + ifUuid + ", inetAddr=" + inetAddr + ", hwAddr=" + hwAddr + ", mtw="
|
||||
+ mtw + ", network=" + network + ", dns=" + dns + ", parentIfName=" + parentIfName + ", greIfName="
|
||||
+ greIfName + ", broadcast=" + broadcast + ", dhcpc=" + dhcpc + ", gateway=" + gateway
|
||||
+ ", ipAssignScheme=" + ipAssignScheme + ", inetConfig=" + inetConfig + ", _uuid=" + _uuid
|
||||
+ ", version=" + version + ", greLocalInetAddr=" + greLocalInetAddr + ", greRemoteMacAddr="
|
||||
+ greRemoteMacAddr + "]";
|
||||
}
|
||||
public void setNetwork(boolean network) {
|
||||
this.network = network;
|
||||
}
|
||||
|
||||
public void setParentIfName(String parentIfName) {
|
||||
this.parentIfName = parentIfName;
|
||||
}
|
||||
|
||||
public void setSoftwdsMacAddr(String softwdsMacAddr) {
|
||||
this.softwdsMacAddr = softwdsMacAddr;
|
||||
}
|
||||
|
||||
public void setSofwdsWrap(boolean sofwdsWrap) {
|
||||
this.sofwdsWrap = sofwdsWrap;
|
||||
}
|
||||
|
||||
public void setUnpnpMode(String unpnpMode) {
|
||||
this.unpnpMode = unpnpMode;
|
||||
}
|
||||
|
||||
public void setVersion(Uuid version) {
|
||||
this.version = version;
|
||||
}
|
||||
|
||||
public void setVlanId(int vlanId) {
|
||||
this.vlanId = vlanId;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "OpensyncAPInetState [ifName=" + ifName + ", dhcpd=" + dhcpd + ", unpnpMode=" + unpnpMode + ", ifType="
|
||||
+ ifType + ", softwdsMacAddr=" + softwdsMacAddr + ", enabled=" + enabled + ", sofwdsWrap=" + sofwdsWrap
|
||||
+ ", vlanId=" + vlanId + ", netmask=" + netmask + ", nat=" + nat + ", greRemoteInetAddr="
|
||||
+ greRemoteInetAddr + ", ifUuid=" + ifUuid + ", inetAddr=" + inetAddr + ", hwAddr=" + hwAddr + ", mtw="
|
||||
+ mtw + ", network=" + network + ", dns=" + dns + ", parentIfName=" + parentIfName + ", greIfName="
|
||||
+ greIfName + ", broadcast=" + broadcast + ", dhcpc=" + dhcpc + ", gateway=" + gateway
|
||||
+ ", ipAssignScheme=" + ipAssignScheme + ", inetConfig=" + inetConfig + ", _uuid=" + _uuid
|
||||
+ ", version=" + version + ", greLocalInetAddr=" + greLocalInetAddr + ", greRemoteMacAddr="
|
||||
+ greRemoteMacAddr + "]";
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -1,8 +1,6 @@
|
||||
package com.telecominfraproject.wlan.opensync.external.integration.models;
|
||||
|
||||
import com.telecominfraproject.wlan.core.model.json.BaseJsonModel;
|
||||
|
||||
public class OpensyncAPRadioConfig extends BaseJsonModel {
|
||||
public class OpensyncAPRadioConfig extends OpensyncAPBase {
|
||||
|
||||
private static final long serialVersionUID = 5683558403622855381L;
|
||||
|
||||
@@ -11,40 +9,40 @@ public class OpensyncAPRadioConfig extends BaseJsonModel {
|
||||
private int radioChannel5LG;
|
||||
private int radioChannel5HG;
|
||||
|
||||
public int getRadioChannel24G() {
|
||||
return radioChannel24G;
|
||||
}
|
||||
|
||||
public void setRadioChannel24G(int radioChannel24G) {
|
||||
this.radioChannel24G = radioChannel24G;
|
||||
}
|
||||
|
||||
public int getRadioChannel5LG() {
|
||||
return radioChannel5LG;
|
||||
}
|
||||
|
||||
public void setRadioChannel5LG(int radioChannel5LG) {
|
||||
this.radioChannel5LG = radioChannel5LG;
|
||||
}
|
||||
|
||||
public int getRadioChannel5HG() {
|
||||
return radioChannel5HG;
|
||||
}
|
||||
|
||||
public void setRadioChannel5HG(int radioChannel5HG) {
|
||||
this.radioChannel5HG = radioChannel5HG;
|
||||
@Override
|
||||
public OpensyncAPRadioConfig clone() {
|
||||
return (OpensyncAPRadioConfig) super.clone();
|
||||
}
|
||||
|
||||
public String getCountry() {
|
||||
return country;
|
||||
}
|
||||
|
||||
public int getRadioChannel24G() {
|
||||
return radioChannel24G;
|
||||
}
|
||||
|
||||
public int getRadioChannel5HG() {
|
||||
return radioChannel5HG;
|
||||
}
|
||||
|
||||
public int getRadioChannel5LG() {
|
||||
return radioChannel5LG;
|
||||
}
|
||||
|
||||
public void setCountry(String country) {
|
||||
this.country = country;
|
||||
}
|
||||
|
||||
@Override
|
||||
public OpensyncAPRadioConfig clone() {
|
||||
return (OpensyncAPRadioConfig)super.clone();
|
||||
public void setRadioChannel24G(int radioChannel24G) {
|
||||
this.radioChannel24G = radioChannel24G;
|
||||
}
|
||||
|
||||
public void setRadioChannel5HG(int radioChannel5HG) {
|
||||
this.radioChannel5HG = radioChannel5HG;
|
||||
}
|
||||
|
||||
public void setRadioChannel5LG(int radioChannel5LG) {
|
||||
this.radioChannel5LG = radioChannel5LG;
|
||||
}
|
||||
}
|
||||
@@ -3,25 +3,28 @@
|
||||
*/
|
||||
package com.telecominfraproject.wlan.opensync.external.integration.models;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
|
||||
import com.telecominfraproject.wlan.core.model.equipment.RadioType;
|
||||
import com.telecominfraproject.wlan.core.model.json.BaseJsonModel;
|
||||
import com.vmware.ovsdb.protocol.operation.notation.Row;
|
||||
import com.vmware.ovsdb.protocol.operation.notation.Uuid;
|
||||
import com.vmware.ovsdb.protocol.operation.notation.Value;
|
||||
|
||||
/**
|
||||
* @author mikehansen
|
||||
*
|
||||
*/
|
||||
public class OpensyncAPRadioState extends BaseJsonModel {
|
||||
public class OpensyncAPRadioState extends OpensyncAPBase {
|
||||
|
||||
private static final long serialVersionUID = 5003143778489404219L;
|
||||
|
||||
public static long getSerialversionuid() {
|
||||
return serialVersionUID;
|
||||
}
|
||||
|
||||
public int temperatureControl;
|
||||
public boolean thermalDowngraded;
|
||||
public boolean dfsDemo;
|
||||
@@ -48,10 +51,15 @@ public class OpensyncAPRadioState extends BaseJsonModel {
|
||||
public Map<String, String> hwParams;
|
||||
public RadioType freqBand;
|
||||
public int thermalIntegration;
|
||||
|
||||
public Set<Uuid> vifStates;
|
||||
|
||||
public String channelMode;
|
||||
|
||||
public Uuid _uuid;
|
||||
public Uuid version;
|
||||
|
||||
public OpensyncAPRadioState() {
|
||||
super();
|
||||
allowedChannels = new HashSet<>();
|
||||
hwConfig = new HashMap<>();
|
||||
channels = new HashMap<>();
|
||||
@@ -59,252 +67,334 @@ public class OpensyncAPRadioState extends BaseJsonModel {
|
||||
vifStates = new HashSet<>();
|
||||
}
|
||||
|
||||
public String channelMode;
|
||||
public Uuid _uuid;
|
||||
public Uuid version;
|
||||
public OpensyncAPRadioState(Row row) {
|
||||
this();
|
||||
|
||||
public int getTemperatureControl() {
|
||||
return temperatureControl;
|
||||
}
|
||||
Map<String, Value> map = row.getColumns();
|
||||
|
||||
public void setTemperatureControl(int temperatureControl) {
|
||||
this.temperatureControl = temperatureControl;
|
||||
}
|
||||
if ((map.get("mac") != null)
|
||||
&& map.get("mac").getClass().equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
|
||||
this.setMac(row.getStringColumn("mac"));
|
||||
}
|
||||
if ((map.get("channel") != null)
|
||||
&& map.get("channel").getClass().equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
|
||||
this.setChannel(row.getIntegerColumn("channel").intValue());
|
||||
}
|
||||
if ((map.get("freq_band") != null)
|
||||
&& map.get("freq_band").getClass().equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
|
||||
String frequencyBand = row.getStringColumn("freq_band");
|
||||
switch (frequencyBand) {
|
||||
case "2.4G":
|
||||
this.setFreqBand(RadioType.is2dot4GHz);
|
||||
break;
|
||||
case "5G":
|
||||
this.setFreqBand(RadioType.is5GHz);
|
||||
break;
|
||||
case "5GL":
|
||||
this.setFreqBand(RadioType.is5GHzL);
|
||||
break;
|
||||
case "5GU":
|
||||
this.setFreqBand(RadioType.is5GHzU);
|
||||
break;
|
||||
default:
|
||||
this.setFreqBand(RadioType.UNSUPPORTED);
|
||||
}
|
||||
}
|
||||
if ((map.get("if_name") != null)
|
||||
&& map.get("if_name").getClass().equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
|
||||
this.setIfName(row.getStringColumn("if_name"));
|
||||
}
|
||||
if ((map.get("channel_mode") != null)
|
||||
&& map.get("channel_mode").getClass().equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
|
||||
this.setChannelMode(row.getStringColumn("channel_mode"));
|
||||
}
|
||||
if ((map.get("country") != null)
|
||||
&& map.get("country").getClass().equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
|
||||
this.setCountry(row.getStringColumn("country").toUpperCase());
|
||||
}
|
||||
if ((map.get("enabled") != null)
|
||||
&& map.get("enabled").getClass().equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
|
||||
this.setEnabled(row.getBooleanColumn("enabled"));
|
||||
}
|
||||
if ((map.get("ht_mode") != null)
|
||||
&& map.get("ht_mode").getClass().equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
|
||||
this.setHtMode(row.getStringColumn("ht_mode"));
|
||||
}
|
||||
if ((map.get("tx_power") != null)
|
||||
&& map.get("tx_power").getClass().equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
|
||||
this.setTxPower(row.getIntegerColumn("tx_power").intValue());
|
||||
}
|
||||
if ((map.get("hw_config") != null)
|
||||
&& map.get("hw_config").getClass().equals(com.vmware.ovsdb.protocol.operation.notation.Map.class)) {
|
||||
this.setHwConfig(row.getMapColumn("hw_config"));
|
||||
}
|
||||
if ((map.get("_version") != null)
|
||||
&& map.get("_version").getClass().equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
|
||||
this.setVersion(row.getUuidColumn("_version"));
|
||||
}
|
||||
if ((map.get("_uuid") != null)
|
||||
&& map.get("_uuid").getClass().equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
|
||||
this.setVersion(row.getUuidColumn("_uuid"));
|
||||
}
|
||||
if (map.get("allowed_channels") != null) {
|
||||
|
||||
public boolean isThermalDowngraded() {
|
||||
return thermalDowngraded;
|
||||
}
|
||||
Set<Long> allowedChannels = getSet(row, "allowed_channels");
|
||||
|
||||
public void setThermalDowngraded(boolean thermalDowngraded) {
|
||||
this.thermalDowngraded = thermalDowngraded;
|
||||
}
|
||||
Set<Integer> allowed = new HashSet<>();
|
||||
for (Long channel : allowedChannels) {
|
||||
allowed.add(channel.intValue());
|
||||
}
|
||||
this.setAllowedChannels(allowed);
|
||||
}
|
||||
if (map.get("channels") != null) {
|
||||
|
||||
public boolean isDfsDemo() {
|
||||
return dfsDemo;
|
||||
}
|
||||
Map<String, String> channels = row.getMapColumn("channels");
|
||||
this.setChannels(channels);
|
||||
}
|
||||
|
||||
public void setDfsDemo(boolean dfsDemo) {
|
||||
this.dfsDemo = dfsDemo;
|
||||
}
|
||||
Set<Uuid> vifStates = row.getSetColumn("vif_states");
|
||||
this.setVifStates(vifStates);
|
||||
|
||||
public String getIfName() {
|
||||
return ifName;
|
||||
}
|
||||
|
||||
public void setIfName(String ifName) {
|
||||
this.ifName = ifName;
|
||||
}
|
||||
|
||||
public String getMac() {
|
||||
return mac;
|
||||
}
|
||||
|
||||
public void setMac(String mac) {
|
||||
this.mac = mac;
|
||||
}
|
||||
|
||||
public Set<Uuid> getVifStates() {
|
||||
return vifStates;
|
||||
}
|
||||
|
||||
public void setVifStates(Set<Uuid> vifStates) {
|
||||
this.vifStates = vifStates;
|
||||
}
|
||||
|
||||
public int getBcnInt() {
|
||||
return bcnInt;
|
||||
}
|
||||
|
||||
public void setBcnInt(int bcnInt) {
|
||||
this.bcnInt = bcnInt;
|
||||
}
|
||||
|
||||
public int getThermalTxChainmask() {
|
||||
return thermalTxChainmask;
|
||||
}
|
||||
|
||||
public void setThermalTxChainmask(int thermalTxChainmask) {
|
||||
this.thermalTxChainmask = thermalTxChainmask;
|
||||
}
|
||||
|
||||
public Set<Integer> getAllowedChannels() {
|
||||
return allowedChannels;
|
||||
}
|
||||
|
||||
public void setAllowedChannels(Set<Integer> allowedChannels) {
|
||||
this.allowedChannels = allowedChannels;
|
||||
}
|
||||
|
||||
public int getThermalShutdown() {
|
||||
return thermalShutdown;
|
||||
}
|
||||
|
||||
public void setThermalShutdown(int thermalShutdown) {
|
||||
this.thermalShutdown = thermalShutdown;
|
||||
}
|
||||
|
||||
public int getChannelSync() {
|
||||
return channelSync;
|
||||
}
|
||||
|
||||
public void setChannelSync(int channelSync) {
|
||||
this.channelSync = channelSync;
|
||||
}
|
||||
|
||||
public int getHwType() {
|
||||
return hwType;
|
||||
}
|
||||
|
||||
public void setHwType(int hwType) {
|
||||
this.hwType = hwType;
|
||||
}
|
||||
|
||||
public int getTxChainmask() {
|
||||
return txChainmask;
|
||||
}
|
||||
|
||||
public void setTxChainmask(int txChainmask) {
|
||||
this.txChainmask = txChainmask;
|
||||
}
|
||||
|
||||
public String getRadar() {
|
||||
return radar;
|
||||
}
|
||||
|
||||
public void setRadar(String radar) {
|
||||
this.radar = radar;
|
||||
}
|
||||
|
||||
public String getCountry() {
|
||||
return country;
|
||||
}
|
||||
|
||||
public void setCountry(String country) {
|
||||
this.country = country;
|
||||
}
|
||||
|
||||
public Map<String, String> getHwConfig() {
|
||||
return hwConfig;
|
||||
}
|
||||
|
||||
public void setHwConfig(Map<String, String> hwConfig) {
|
||||
this.hwConfig = hwConfig;
|
||||
}
|
||||
|
||||
public int getChannel() {
|
||||
return channel;
|
||||
}
|
||||
|
||||
public void setChannel(int channel) {
|
||||
this.channel = channel;
|
||||
}
|
||||
|
||||
public int getTxPower() {
|
||||
return txPower;
|
||||
}
|
||||
|
||||
public void setTxPower(int txPower) {
|
||||
this.txPower = txPower;
|
||||
}
|
||||
|
||||
public String getHtMode() {
|
||||
return htMode;
|
||||
}
|
||||
|
||||
public void setHtMode(String htMode) {
|
||||
this.htMode = htMode;
|
||||
}
|
||||
|
||||
public int getThermalDowngradeTemp() {
|
||||
return thermalDowngradeTemp;
|
||||
}
|
||||
|
||||
public void setThermalDowngradeTemp(int thermalDowngradeTemp) {
|
||||
this.thermalDowngradeTemp = thermalDowngradeTemp;
|
||||
}
|
||||
|
||||
public String getHwMode() {
|
||||
return hwMode;
|
||||
}
|
||||
|
||||
public void setHwMode(String hwMode) {
|
||||
this.hwMode = hwMode;
|
||||
}
|
||||
|
||||
public boolean isEnabled() {
|
||||
return enabled;
|
||||
}
|
||||
|
||||
public void setEnabled(boolean enabled) {
|
||||
this.enabled = enabled;
|
||||
}
|
||||
|
||||
public Map<String, String> getChannels() {
|
||||
return channels;
|
||||
}
|
||||
|
||||
public void setChannels(Map<String, String> channels) {
|
||||
this.channels = channels;
|
||||
}
|
||||
|
||||
public int getThermalUpgradeTemp() {
|
||||
return thermalUpgradeTemp;
|
||||
}
|
||||
|
||||
public void setThermalUpgradeTemp(int thermalUpgradeTemp) {
|
||||
this.thermalUpgradeTemp = thermalUpgradeTemp;
|
||||
}
|
||||
|
||||
public Map<String, String> getHwParams() {
|
||||
return hwParams;
|
||||
}
|
||||
|
||||
public void setHwParams(Map<String, String> hwParams) {
|
||||
this.hwParams = hwParams;
|
||||
}
|
||||
|
||||
public RadioType getFreqBand() {
|
||||
return freqBand;
|
||||
}
|
||||
|
||||
public void setFreqBand(RadioType freqBand) {
|
||||
this.freqBand = freqBand;
|
||||
}
|
||||
|
||||
public int getThermalIntegration() {
|
||||
return thermalIntegration;
|
||||
}
|
||||
|
||||
public void setThermalIntegration(int thermalIntegration) {
|
||||
this.thermalIntegration = thermalIntegration;
|
||||
}
|
||||
|
||||
public String getChannelMode() {
|
||||
return channelMode;
|
||||
}
|
||||
|
||||
public void setChannelMode(String channelMode) {
|
||||
this.channelMode = channelMode;
|
||||
}
|
||||
|
||||
public static long getSerialversionuid() {
|
||||
return serialVersionUID;
|
||||
}
|
||||
|
||||
public Uuid get_uuid() {
|
||||
return _uuid;
|
||||
}
|
||||
|
||||
public void set_uuid(Uuid _uuid) {
|
||||
this._uuid = _uuid;
|
||||
public Set<Integer> getAllowedChannels() {
|
||||
return allowedChannels;
|
||||
}
|
||||
|
||||
public int getBcnInt() {
|
||||
return bcnInt;
|
||||
}
|
||||
|
||||
public int getChannel() {
|
||||
return channel;
|
||||
}
|
||||
|
||||
public String getChannelMode() {
|
||||
return channelMode;
|
||||
}
|
||||
|
||||
public Map<String, String> getChannels() {
|
||||
return channels;
|
||||
}
|
||||
|
||||
public int getChannelSync() {
|
||||
return channelSync;
|
||||
}
|
||||
|
||||
public String getCountry() {
|
||||
return country;
|
||||
}
|
||||
|
||||
public RadioType getFreqBand() {
|
||||
return freqBand;
|
||||
}
|
||||
|
||||
public String getHtMode() {
|
||||
return htMode;
|
||||
}
|
||||
|
||||
public Map<String, String> getHwConfig() {
|
||||
return hwConfig;
|
||||
}
|
||||
|
||||
public String getHwMode() {
|
||||
return hwMode;
|
||||
}
|
||||
|
||||
public Map<String, String> getHwParams() {
|
||||
return hwParams;
|
||||
}
|
||||
|
||||
public int getHwType() {
|
||||
return hwType;
|
||||
}
|
||||
|
||||
public String getIfName() {
|
||||
return ifName;
|
||||
}
|
||||
|
||||
public String getMac() {
|
||||
return mac;
|
||||
}
|
||||
|
||||
public String getRadar() {
|
||||
return radar;
|
||||
}
|
||||
|
||||
public int getTemperatureControl() {
|
||||
return temperatureControl;
|
||||
}
|
||||
|
||||
public int getThermalDowngradeTemp() {
|
||||
return thermalDowngradeTemp;
|
||||
}
|
||||
|
||||
public int getThermalIntegration() {
|
||||
return thermalIntegration;
|
||||
}
|
||||
|
||||
public int getThermalShutdown() {
|
||||
return thermalShutdown;
|
||||
}
|
||||
|
||||
public int getThermalTxChainmask() {
|
||||
return thermalTxChainmask;
|
||||
}
|
||||
|
||||
public int getThermalUpgradeTemp() {
|
||||
return thermalUpgradeTemp;
|
||||
}
|
||||
|
||||
public int getTxChainmask() {
|
||||
return txChainmask;
|
||||
}
|
||||
|
||||
public int getTxPower() {
|
||||
return txPower;
|
||||
}
|
||||
|
||||
public Uuid getVersion() {
|
||||
return version;
|
||||
}
|
||||
|
||||
public Set<Uuid> getVifStates() {
|
||||
return vifStates;
|
||||
}
|
||||
|
||||
public boolean isDfsDemo() {
|
||||
return dfsDemo;
|
||||
}
|
||||
|
||||
public boolean isEnabled() {
|
||||
return enabled;
|
||||
}
|
||||
|
||||
public boolean isThermalDowngraded() {
|
||||
return thermalDowngraded;
|
||||
}
|
||||
|
||||
public void set_uuid(Uuid _uuid) {
|
||||
this._uuid = _uuid;
|
||||
}
|
||||
|
||||
public void setAllowedChannels(Set<Integer> allowedChannels) {
|
||||
this.allowedChannels = allowedChannels;
|
||||
}
|
||||
|
||||
public void setBcnInt(int bcnInt) {
|
||||
this.bcnInt = bcnInt;
|
||||
}
|
||||
|
||||
public void setChannel(int channel) {
|
||||
this.channel = channel;
|
||||
}
|
||||
|
||||
public void setChannelMode(String channelMode) {
|
||||
this.channelMode = channelMode;
|
||||
}
|
||||
|
||||
public void setChannels(Map<String, String> channels) {
|
||||
this.channels = channels;
|
||||
}
|
||||
|
||||
public void setChannelSync(int channelSync) {
|
||||
this.channelSync = channelSync;
|
||||
}
|
||||
|
||||
public void setCountry(String country) {
|
||||
this.country = country;
|
||||
}
|
||||
|
||||
public void setDfsDemo(boolean dfsDemo) {
|
||||
this.dfsDemo = dfsDemo;
|
||||
}
|
||||
|
||||
public void setEnabled(boolean enabled) {
|
||||
this.enabled = enabled;
|
||||
}
|
||||
|
||||
public void setFreqBand(RadioType freqBand) {
|
||||
this.freqBand = freqBand;
|
||||
}
|
||||
|
||||
public void setHtMode(String htMode) {
|
||||
this.htMode = htMode;
|
||||
}
|
||||
|
||||
public void setHwConfig(Map<String, String> hwConfig) {
|
||||
this.hwConfig = hwConfig;
|
||||
}
|
||||
|
||||
public void setHwMode(String hwMode) {
|
||||
this.hwMode = hwMode;
|
||||
}
|
||||
|
||||
public void setHwParams(Map<String, String> hwParams) {
|
||||
this.hwParams = hwParams;
|
||||
}
|
||||
|
||||
public void setHwType(int hwType) {
|
||||
this.hwType = hwType;
|
||||
}
|
||||
|
||||
public void setIfName(String ifName) {
|
||||
this.ifName = ifName;
|
||||
}
|
||||
|
||||
public void setMac(String mac) {
|
||||
this.mac = mac;
|
||||
}
|
||||
|
||||
public void setRadar(String radar) {
|
||||
this.radar = radar;
|
||||
}
|
||||
|
||||
public void setTemperatureControl(int temperatureControl) {
|
||||
this.temperatureControl = temperatureControl;
|
||||
}
|
||||
|
||||
public void setThermalDowngraded(boolean thermalDowngraded) {
|
||||
this.thermalDowngraded = thermalDowngraded;
|
||||
}
|
||||
|
||||
public void setThermalDowngradeTemp(int thermalDowngradeTemp) {
|
||||
this.thermalDowngradeTemp = thermalDowngradeTemp;
|
||||
}
|
||||
|
||||
public void setThermalIntegration(int thermalIntegration) {
|
||||
this.thermalIntegration = thermalIntegration;
|
||||
}
|
||||
|
||||
public void setThermalShutdown(int thermalShutdown) {
|
||||
this.thermalShutdown = thermalShutdown;
|
||||
}
|
||||
|
||||
public void setThermalTxChainmask(int thermalTxChainmask) {
|
||||
this.thermalTxChainmask = thermalTxChainmask;
|
||||
}
|
||||
|
||||
public void setThermalUpgradeTemp(int thermalUpgradeTemp) {
|
||||
this.thermalUpgradeTemp = thermalUpgradeTemp;
|
||||
}
|
||||
|
||||
public void setTxChainmask(int txChainmask) {
|
||||
this.txChainmask = txChainmask;
|
||||
}
|
||||
|
||||
public void setTxPower(int txPower) {
|
||||
this.txPower = txPower;
|
||||
}
|
||||
|
||||
public void setVersion(Uuid version) {
|
||||
this.version = version;
|
||||
}
|
||||
|
||||
public void setVifStates(Set<Uuid> vifStates) {
|
||||
this.vifStates = vifStates;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -1,9 +1,8 @@
|
||||
package com.telecominfraproject.wlan.opensync.external.integration.models;
|
||||
|
||||
import com.telecominfraproject.wlan.core.model.equipment.RadioType;
|
||||
import com.telecominfraproject.wlan.core.model.json.BaseJsonModel;
|
||||
|
||||
public class OpensyncAPSsidConfig extends BaseJsonModel {
|
||||
public class OpensyncAPSsidConfig extends OpensyncAPBase {
|
||||
|
||||
private static final long serialVersionUID = -8540144450360788799L;
|
||||
|
||||
@@ -14,44 +13,29 @@ public class OpensyncAPSsidConfig extends BaseJsonModel {
|
||||
private String mode;
|
||||
private boolean broadcast;
|
||||
|
||||
public RadioType getRadioType() {
|
||||
return radioType;
|
||||
}
|
||||
|
||||
public void setRadioType(RadioType radioType) {
|
||||
this.radioType = radioType;
|
||||
}
|
||||
|
||||
public String getSsid() {
|
||||
return ssid;
|
||||
}
|
||||
|
||||
public void setSsid(String ssid) {
|
||||
this.ssid = ssid;
|
||||
@Override
|
||||
public OpensyncAPSsidConfig clone() {
|
||||
return (OpensyncAPSsidConfig) super.clone();
|
||||
}
|
||||
|
||||
public String getEncryption() {
|
||||
return encryption;
|
||||
}
|
||||
|
||||
public void setEncryption(String encryption) {
|
||||
this.encryption = encryption;
|
||||
}
|
||||
|
||||
public String getKey() {
|
||||
return key;
|
||||
}
|
||||
|
||||
public void setKey(String key) {
|
||||
this.key = key;
|
||||
}
|
||||
|
||||
public String getMode() {
|
||||
return mode;
|
||||
}
|
||||
|
||||
public void setMode(String mode) {
|
||||
this.mode = mode;
|
||||
public RadioType getRadioType() {
|
||||
return radioType;
|
||||
}
|
||||
|
||||
public String getSsid() {
|
||||
return ssid;
|
||||
}
|
||||
|
||||
public boolean isBroadcast() {
|
||||
@@ -62,9 +46,24 @@ public class OpensyncAPSsidConfig extends BaseJsonModel {
|
||||
this.broadcast = broadcast;
|
||||
}
|
||||
|
||||
@Override
|
||||
public OpensyncAPSsidConfig clone() {
|
||||
return (OpensyncAPSsidConfig)super.clone();
|
||||
public void setEncryption(String encryption) {
|
||||
this.encryption = encryption;
|
||||
}
|
||||
|
||||
public void setKey(String key) {
|
||||
this.key = key;
|
||||
}
|
||||
|
||||
public void setMode(String mode) {
|
||||
this.mode = mode;
|
||||
}
|
||||
|
||||
public void setRadioType(RadioType radioType) {
|
||||
this.radioType = radioType;
|
||||
}
|
||||
|
||||
public void setSsid(String ssid) {
|
||||
this.ssid = ssid;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -6,13 +6,18 @@ import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
|
||||
import com.telecominfraproject.wlan.core.model.json.BaseJsonModel;
|
||||
import com.vmware.ovsdb.protocol.operation.notation.Row;
|
||||
import com.vmware.ovsdb.protocol.operation.notation.Uuid;
|
||||
import com.vmware.ovsdb.protocol.operation.notation.Value;
|
||||
|
||||
public class OpensyncAPVIFState extends BaseJsonModel {
|
||||
public class OpensyncAPVIFState extends OpensyncAPBase {
|
||||
|
||||
private static final long serialVersionUID = -4916251246542770881L;
|
||||
|
||||
public static long getSerialversionuid() {
|
||||
return serialVersionUID;
|
||||
}
|
||||
|
||||
public String ifName;
|
||||
public int vifRadioIdx;
|
||||
public String parent;
|
||||
@@ -24,8 +29,8 @@ public class OpensyncAPVIFState extends BaseJsonModel {
|
||||
public String ssid;
|
||||
public Map<String, String> security;
|
||||
public String macList;
|
||||
public List<Uuid> associatedClients;
|
||||
|
||||
public List<Uuid> associatedClients;
|
||||
public boolean enabled;
|
||||
public int vlanId;
|
||||
public int btm;
|
||||
@@ -40,232 +45,321 @@ public class OpensyncAPVIFState extends BaseJsonModel {
|
||||
public boolean dynamicBeacon;
|
||||
public int channel;
|
||||
public Uuid _uuid;
|
||||
|
||||
public Uuid version;
|
||||
|
||||
public String getIfName() {
|
||||
return ifName;
|
||||
}
|
||||
|
||||
public OpensyncAPVIFState() {
|
||||
super();
|
||||
security = new HashMap<>();
|
||||
associatedClients = new ArrayList<>();
|
||||
|
||||
}
|
||||
|
||||
public void setIfName(String ifName) {
|
||||
this.ifName = ifName;
|
||||
}
|
||||
public OpensyncAPVIFState(Row row) {
|
||||
Map<String, Value> map = row.getColumns();
|
||||
|
||||
public int getVifRadioIdx() {
|
||||
return vifRadioIdx;
|
||||
}
|
||||
if ((map.get("mac") != null)
|
||||
&& map.get("mac").getClass().equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
|
||||
this.setMac(row.getStringColumn("mac"));
|
||||
}
|
||||
if ((map.get("bridge") != null)
|
||||
&& map.get("bridge").getClass().equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
|
||||
this.setBridge(row.getStringColumn("bridge"));
|
||||
}
|
||||
if ((map.get("btm") != null)
|
||||
&& map.get("btm").getClass().equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
|
||||
this.setBtm(row.getIntegerColumn("btm").intValue());
|
||||
}
|
||||
|
||||
public void setVifRadioIdx(int vifRadioIdx) {
|
||||
this.vifRadioIdx = vifRadioIdx;
|
||||
}
|
||||
if ((map.get("channel") != null)
|
||||
&& map.get("channel").getClass().equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
|
||||
this.setChannel(row.getIntegerColumn("channel").intValue());
|
||||
}
|
||||
|
||||
public String getParent() {
|
||||
return parent;
|
||||
}
|
||||
if ((map.get("enabled") != null)
|
||||
&& map.get("enabled").getClass().equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
|
||||
this.setEnabled(row.getBooleanColumn("enabled"));
|
||||
}
|
||||
|
||||
public void setParent(String parent) {
|
||||
this.parent = parent;
|
||||
}
|
||||
Long ftPsk = getSingleValueFromSet(row, "ft_psk");
|
||||
if (ftPsk != null) {
|
||||
this.setFtPsk(ftPsk.intValue());
|
||||
}
|
||||
|
||||
public String getState() {
|
||||
return state;
|
||||
}
|
||||
Long ftMobilityDomain = getSingleValueFromSet(row, "ft_mobility_domain");
|
||||
if (ftMobilityDomain != null) {
|
||||
this.setFtMobilityDomain(ftMobilityDomain.intValue());
|
||||
}
|
||||
|
||||
public void setState(String state) {
|
||||
this.state = state;
|
||||
}
|
||||
if ((map.get("group_rekey") != null)
|
||||
&& map.get("group_rekey").getClass().equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
|
||||
this.setGroupRekey(row.getIntegerColumn("group_rekey").intValue());
|
||||
}
|
||||
if ((map.get("if_name") != null)
|
||||
&& map.get("if_name").getClass().equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
|
||||
this.setIfName(row.getStringColumn("if_name"));
|
||||
}
|
||||
|
||||
public String getMac() {
|
||||
return mac;
|
||||
}
|
||||
if ((map.get("mode") != null)
|
||||
&& map.get("mode").getClass().equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
|
||||
this.setMode(row.getStringColumn("mode"));
|
||||
}
|
||||
|
||||
public void setMac(String mac) {
|
||||
this.mac = mac;
|
||||
}
|
||||
if ((map.get("rrm") != null)
|
||||
&& map.get("rrm").getClass().equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
|
||||
this.setRrm(row.getIntegerColumn("rrm").intValue());
|
||||
}
|
||||
if ((map.get("ssid") != null)
|
||||
&& map.get("ssid").getClass().equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
|
||||
this.setSsid(row.getStringColumn("ssid"));
|
||||
}
|
||||
|
||||
public boolean isApBridge() {
|
||||
return apBridge;
|
||||
}
|
||||
if ((map.get("ssid_broadcast") != null) && map.get("ssid_broadcast").getClass()
|
||||
.equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
|
||||
this.setSsidBroadcast(row.getStringColumn("ssid_broadcast"));
|
||||
}
|
||||
if ((map.get("uapsd_enable") != null)
|
||||
&& map.get("uapsd_enable").getClass().equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
|
||||
this.setUapsdEnable(row.getBooleanColumn("uapsd_enable"));
|
||||
}
|
||||
if ((map.get("vif_radio_idx") != null) && map.get("vif_radio_idx").getClass()
|
||||
.equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
|
||||
this.setVifRadioIdx(row.getIntegerColumn("vif_radio_idx").intValue());
|
||||
}
|
||||
|
||||
public void setApBridge(boolean apBridge) {
|
||||
this.apBridge = apBridge;
|
||||
}
|
||||
List<Uuid> associatedClientsList = new ArrayList<>();
|
||||
|
||||
public boolean isUapsdEnable() {
|
||||
return uapsdEnable;
|
||||
}
|
||||
Set<Uuid> clients = row.getSetColumn("associated_clients");
|
||||
associatedClientsList.addAll(clients);
|
||||
|
||||
public void setUapsdEnable(boolean uapsdEnable) {
|
||||
this.uapsdEnable = uapsdEnable;
|
||||
}
|
||||
this.setAssociatedClients(associatedClientsList);
|
||||
|
||||
public boolean isWds() {
|
||||
return wds;
|
||||
}
|
||||
if (map.get("security") != null) {
|
||||
this.setSecurity(row.getMapColumn("security"));
|
||||
}
|
||||
|
||||
public void setWds(boolean wds) {
|
||||
this.wds = wds;
|
||||
}
|
||||
|
||||
public String getSsid() {
|
||||
return ssid;
|
||||
}
|
||||
|
||||
public void setSsid(String ssid) {
|
||||
this.ssid = ssid;
|
||||
}
|
||||
|
||||
public Map<String, String> getSecurity() {
|
||||
return security;
|
||||
}
|
||||
|
||||
public void setSecurity(Map<String, String> security) {
|
||||
this.security = security;
|
||||
}
|
||||
|
||||
public String getMacList() {
|
||||
return macList;
|
||||
}
|
||||
|
||||
public void setMacList(String macList) {
|
||||
this.macList = macList;
|
||||
}
|
||||
|
||||
public List<Uuid> getAssociatedClients() {
|
||||
return associatedClients;
|
||||
}
|
||||
|
||||
public void setAssociatedClients(List<Uuid> list) {
|
||||
this.associatedClients = list;
|
||||
}
|
||||
|
||||
public boolean isEnabled() {
|
||||
return enabled;
|
||||
}
|
||||
|
||||
public void setEnabled(boolean enabled) {
|
||||
this.enabled = enabled;
|
||||
}
|
||||
|
||||
public int getVlanId() {
|
||||
return vlanId;
|
||||
}
|
||||
|
||||
public void setVlanId(int vlanId) {
|
||||
this.vlanId = vlanId;
|
||||
}
|
||||
|
||||
public int getBtm() {
|
||||
return btm;
|
||||
}
|
||||
|
||||
public void setBtm(int btm) {
|
||||
this.btm = btm;
|
||||
}
|
||||
|
||||
public String getMinHwMode() {
|
||||
return minHwMode;
|
||||
}
|
||||
|
||||
public void setMinHwMode(String minHwMode) {
|
||||
this.minHwMode = minHwMode;
|
||||
}
|
||||
|
||||
public String getSsidBroadcast() {
|
||||
return ssidBroadcast;
|
||||
}
|
||||
|
||||
public void setSsidBroadcast(String ssidBroadcast) {
|
||||
this.ssidBroadcast = ssidBroadcast;
|
||||
}
|
||||
|
||||
public String getMode() {
|
||||
return mode;
|
||||
}
|
||||
|
||||
public void setMode(String mode) {
|
||||
this.mode = mode;
|
||||
}
|
||||
|
||||
public String getBridge() {
|
||||
return bridge;
|
||||
}
|
||||
|
||||
public void setBridge(String bridge) {
|
||||
this.bridge = bridge;
|
||||
}
|
||||
|
||||
public int getGroupRekey() {
|
||||
return groupRekey;
|
||||
}
|
||||
|
||||
public void setGroupRekey(int groupRekey) {
|
||||
this.groupRekey = groupRekey;
|
||||
}
|
||||
|
||||
public int getFtMobilityDomain() {
|
||||
return ftMobilityDomain;
|
||||
}
|
||||
|
||||
public void setFtMobilityDomain(int ftMobilityDomain) {
|
||||
this.ftMobilityDomain = ftMobilityDomain;
|
||||
}
|
||||
|
||||
public int getFtPsk() {
|
||||
return ftPsk;
|
||||
}
|
||||
|
||||
public void setFtPsk(int ftPsk) {
|
||||
this.ftPsk = ftPsk;
|
||||
}
|
||||
|
||||
public int getRrm() {
|
||||
return rrm;
|
||||
}
|
||||
|
||||
public void setRrm(int rrm) {
|
||||
this.rrm = rrm;
|
||||
}
|
||||
|
||||
public boolean isDynamicBeacon() {
|
||||
return dynamicBeacon;
|
||||
}
|
||||
|
||||
public void setDynamicBeacon(boolean dynamicBeacon) {
|
||||
this.dynamicBeacon = dynamicBeacon;
|
||||
}
|
||||
|
||||
public int getChannel() {
|
||||
return channel;
|
||||
}
|
||||
|
||||
public void setChannel(int channel) {
|
||||
this.channel = channel;
|
||||
}
|
||||
|
||||
public static long getSerialversionuid() {
|
||||
return serialVersionUID;
|
||||
if ((map.get("_version") != null)
|
||||
&& map.get("_version").getClass().equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
|
||||
this.setVersion(row.getUuidColumn("_version"));
|
||||
}
|
||||
if ((map.get("_uuid") != null)
|
||||
&& map.get("_uuid").getClass().equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
|
||||
this.setVersion(row.getUuidColumn("_uuid"));
|
||||
}
|
||||
}
|
||||
|
||||
public Uuid get_uuid() {
|
||||
return _uuid;
|
||||
}
|
||||
|
||||
public void set_uuid(Uuid _uuid) {
|
||||
this._uuid = _uuid;
|
||||
public List<Uuid> getAssociatedClients() {
|
||||
return associatedClients;
|
||||
}
|
||||
|
||||
public String getBridge() {
|
||||
return bridge;
|
||||
}
|
||||
|
||||
public int getBtm() {
|
||||
return btm;
|
||||
}
|
||||
|
||||
public int getChannel() {
|
||||
return channel;
|
||||
}
|
||||
|
||||
public int getFtMobilityDomain() {
|
||||
return ftMobilityDomain;
|
||||
}
|
||||
|
||||
public int getFtPsk() {
|
||||
return ftPsk;
|
||||
}
|
||||
|
||||
public int getGroupRekey() {
|
||||
return groupRekey;
|
||||
}
|
||||
|
||||
public String getIfName() {
|
||||
return ifName;
|
||||
}
|
||||
|
||||
public String getMac() {
|
||||
return mac;
|
||||
}
|
||||
|
||||
public String getMacList() {
|
||||
return macList;
|
||||
}
|
||||
|
||||
public String getMinHwMode() {
|
||||
return minHwMode;
|
||||
}
|
||||
|
||||
public String getMode() {
|
||||
return mode;
|
||||
}
|
||||
|
||||
public String getParent() {
|
||||
return parent;
|
||||
}
|
||||
|
||||
public int getRrm() {
|
||||
return rrm;
|
||||
}
|
||||
|
||||
public Map<String, String> getSecurity() {
|
||||
return security;
|
||||
}
|
||||
|
||||
public String getSsid() {
|
||||
return ssid;
|
||||
}
|
||||
|
||||
public String getSsidBroadcast() {
|
||||
return ssidBroadcast;
|
||||
}
|
||||
|
||||
public String getState() {
|
||||
return state;
|
||||
}
|
||||
|
||||
public Uuid getVersion() {
|
||||
return version;
|
||||
}
|
||||
|
||||
public int getVifRadioIdx() {
|
||||
return vifRadioIdx;
|
||||
}
|
||||
|
||||
public int getVlanId() {
|
||||
return vlanId;
|
||||
}
|
||||
|
||||
public boolean isApBridge() {
|
||||
return apBridge;
|
||||
}
|
||||
|
||||
public boolean isDynamicBeacon() {
|
||||
return dynamicBeacon;
|
||||
}
|
||||
|
||||
public boolean isEnabled() {
|
||||
return enabled;
|
||||
}
|
||||
|
||||
public boolean isUapsdEnable() {
|
||||
return uapsdEnable;
|
||||
}
|
||||
|
||||
public boolean isWds() {
|
||||
return wds;
|
||||
}
|
||||
|
||||
public void set_uuid(Uuid _uuid) {
|
||||
this._uuid = _uuid;
|
||||
}
|
||||
|
||||
public void setApBridge(boolean apBridge) {
|
||||
this.apBridge = apBridge;
|
||||
}
|
||||
|
||||
public void setAssociatedClients(List<Uuid> list) {
|
||||
this.associatedClients = list;
|
||||
}
|
||||
|
||||
public void setBridge(String bridge) {
|
||||
this.bridge = bridge;
|
||||
}
|
||||
|
||||
public void setBtm(int btm) {
|
||||
this.btm = btm;
|
||||
}
|
||||
|
||||
public void setChannel(int channel) {
|
||||
this.channel = channel;
|
||||
}
|
||||
|
||||
public void setDynamicBeacon(boolean dynamicBeacon) {
|
||||
this.dynamicBeacon = dynamicBeacon;
|
||||
}
|
||||
|
||||
public void setEnabled(boolean enabled) {
|
||||
this.enabled = enabled;
|
||||
}
|
||||
|
||||
public void setFtMobilityDomain(int ftMobilityDomain) {
|
||||
this.ftMobilityDomain = ftMobilityDomain;
|
||||
}
|
||||
|
||||
public void setFtPsk(int ftPsk) {
|
||||
this.ftPsk = ftPsk;
|
||||
}
|
||||
|
||||
public void setGroupRekey(int groupRekey) {
|
||||
this.groupRekey = groupRekey;
|
||||
}
|
||||
|
||||
public void setIfName(String ifName) {
|
||||
this.ifName = ifName;
|
||||
}
|
||||
|
||||
public void setMac(String mac) {
|
||||
this.mac = mac;
|
||||
}
|
||||
|
||||
public void setMacList(String macList) {
|
||||
this.macList = macList;
|
||||
}
|
||||
|
||||
public void setMinHwMode(String minHwMode) {
|
||||
this.minHwMode = minHwMode;
|
||||
}
|
||||
|
||||
public void setMode(String mode) {
|
||||
this.mode = mode;
|
||||
}
|
||||
|
||||
public void setParent(String parent) {
|
||||
this.parent = parent;
|
||||
}
|
||||
|
||||
public void setRrm(int rrm) {
|
||||
this.rrm = rrm;
|
||||
}
|
||||
|
||||
public void setSecurity(Map<String, String> security) {
|
||||
this.security = security;
|
||||
}
|
||||
|
||||
public void setSsid(String ssid) {
|
||||
this.ssid = ssid;
|
||||
}
|
||||
|
||||
public void setSsidBroadcast(String ssidBroadcast) {
|
||||
this.ssidBroadcast = ssidBroadcast;
|
||||
}
|
||||
|
||||
public void setState(String state) {
|
||||
this.state = state;
|
||||
}
|
||||
|
||||
public void setUapsdEnable(boolean uapsdEnable) {
|
||||
this.uapsdEnable = uapsdEnable;
|
||||
}
|
||||
|
||||
public void setVersion(Uuid version) {
|
||||
this.version = version;
|
||||
}
|
||||
|
||||
public void setVifRadioIdx(int vifRadioIdx) {
|
||||
this.vifRadioIdx = vifRadioIdx;
|
||||
}
|
||||
|
||||
public void setVlanId(int vlanId) {
|
||||
this.vlanId = vlanId;
|
||||
}
|
||||
|
||||
public void setWds(boolean wds) {
|
||||
this.wds = wds;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,22 +1,28 @@
|
||||
/**
|
||||
*
|
||||
*/
|
||||
|
||||
package com.telecominfraproject.wlan.opensync.external.integration.models;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
import com.telecominfraproject.wlan.core.model.json.BaseJsonModel;
|
||||
import com.vmware.ovsdb.protocol.operation.notation.Row;
|
||||
import com.vmware.ovsdb.protocol.operation.notation.Uuid;
|
||||
import com.vmware.ovsdb.protocol.operation.notation.Value;
|
||||
|
||||
/**
|
||||
* @author mikehansen
|
||||
*
|
||||
*/
|
||||
public class OpensyncAWLANNode extends BaseJsonModel {
|
||||
public class OpensyncAWLANNode extends OpensyncAPBase {
|
||||
|
||||
private static final long serialVersionUID = -6172956297643126710L;
|
||||
|
||||
public static long getSerialversionuid() {
|
||||
return serialVersionUID;
|
||||
}
|
||||
|
||||
public Map<Object, Object> mqttSettings;
|
||||
public String model;
|
||||
public String skuNumber;
|
||||
@@ -40,11 +46,19 @@ public class OpensyncAWLANNode extends BaseJsonModel {
|
||||
public String revision;
|
||||
public String managerAddr;
|
||||
public boolean factoryReset;
|
||||
public String referenceDesign;
|
||||
public Map<String, String> qrCode;
|
||||
public String modelDescription;
|
||||
public String manufacturerUrl;
|
||||
public String manufacturerName;
|
||||
public String manufacturerDate;
|
||||
public String certificationRegion;
|
||||
|
||||
public Uuid _uuid;
|
||||
|
||||
public Uuid version;
|
||||
|
||||
public OpensyncAWLANNode() {
|
||||
super();
|
||||
mqttSettings = new HashMap<>();
|
||||
versionMatrix = new HashMap<>();
|
||||
ledConfig = new HashMap<>();
|
||||
@@ -52,208 +66,391 @@ public class OpensyncAWLANNode extends BaseJsonModel {
|
||||
mqttTopics = new HashMap<>();
|
||||
}
|
||||
|
||||
public Map<Object, Object> getMqttSettings() {
|
||||
return mqttSettings;
|
||||
}
|
||||
public OpensyncAWLANNode(Row row) {
|
||||
this();
|
||||
|
||||
public void setMqttSettings(Map<Object, Object> map) {
|
||||
this.mqttSettings = map;
|
||||
}
|
||||
|
||||
public String getModel() {
|
||||
return model;
|
||||
}
|
||||
|
||||
public void setModel(String model) {
|
||||
this.model = model;
|
||||
}
|
||||
|
||||
public String getSkuNumber() {
|
||||
return skuNumber;
|
||||
}
|
||||
|
||||
public void setSkuNumber(String skuNumber) {
|
||||
this.skuNumber = skuNumber;
|
||||
}
|
||||
|
||||
public String getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
public void setId(String id) {
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
public Map<String, String> getVersionMatrix() {
|
||||
return versionMatrix;
|
||||
}
|
||||
|
||||
public void setVersionMatrix(Map<String, String> versionMatrix) {
|
||||
this.versionMatrix = versionMatrix;
|
||||
}
|
||||
|
||||
public String getFirmwareVersion() {
|
||||
return firmwareVersion;
|
||||
}
|
||||
|
||||
public void setFirmwareVersion(String firmwareVersion) {
|
||||
this.firmwareVersion = firmwareVersion;
|
||||
}
|
||||
|
||||
public String getFirmwareUrl() {
|
||||
return firmwareUrl;
|
||||
}
|
||||
|
||||
public void setFirmwareUrl(String firmwareUrl) {
|
||||
this.firmwareUrl = firmwareUrl;
|
||||
}
|
||||
|
||||
public int getUpgradeDlTimer() {
|
||||
return upgradeDlTimer;
|
||||
}
|
||||
|
||||
public void setUpgradeDlTimer(int upgradeDlTimer) {
|
||||
this.upgradeDlTimer = upgradeDlTimer;
|
||||
}
|
||||
|
||||
public String getPlatformVersion() {
|
||||
return platformVersion;
|
||||
}
|
||||
|
||||
public void setPlatformVersion(String platformVersion) {
|
||||
this.platformVersion = platformVersion;
|
||||
}
|
||||
|
||||
public String getFirmwarePass() {
|
||||
return firmwarePass;
|
||||
}
|
||||
|
||||
public void setFirmwarePass(String firmwarePass) {
|
||||
this.firmwarePass = firmwarePass;
|
||||
}
|
||||
|
||||
public int getUpgradeTimer() {
|
||||
return upgradeTimer;
|
||||
}
|
||||
|
||||
public void setUpgradeTimer(int upgradeTimer) {
|
||||
this.upgradeTimer = upgradeTimer;
|
||||
}
|
||||
|
||||
public int getMaxBackoff() {
|
||||
return maxBackoff;
|
||||
}
|
||||
|
||||
public void setMaxBackoff(int maxBackoff) {
|
||||
this.maxBackoff = maxBackoff;
|
||||
}
|
||||
|
||||
public Map<String, String> getLedConfig() {
|
||||
return ledConfig;
|
||||
}
|
||||
|
||||
public void setLedConfig(Map<String, String> ledConfig) {
|
||||
this.ledConfig = ledConfig;
|
||||
}
|
||||
|
||||
public String getRedirectorAddr() {
|
||||
return redirectorAddr;
|
||||
}
|
||||
|
||||
public void setRedirectorAddr(String redirectorAddr) {
|
||||
this.redirectorAddr = redirectorAddr;
|
||||
}
|
||||
|
||||
public Map<String, String> getMqttHeaders() {
|
||||
return mqttHeaders;
|
||||
}
|
||||
|
||||
public void setMqttHeaders(Map<String, String> mqttHeaders) {
|
||||
this.mqttHeaders = mqttHeaders;
|
||||
}
|
||||
|
||||
public String getSerialNumber() {
|
||||
return serialNumber;
|
||||
}
|
||||
|
||||
public void setSerialNumber(String serialNumber) {
|
||||
this.serialNumber = serialNumber;
|
||||
}
|
||||
|
||||
public int getUpgradeStatus() {
|
||||
return upgradeStatus;
|
||||
}
|
||||
|
||||
public void setUpgradeStatus(int upgradeStatus) {
|
||||
this.upgradeStatus = upgradeStatus;
|
||||
}
|
||||
|
||||
public String getDeviceMode() {
|
||||
return deviceMode;
|
||||
}
|
||||
|
||||
public void setDeviceMode(String deviceMode) {
|
||||
this.deviceMode = deviceMode;
|
||||
}
|
||||
|
||||
public int getMinBackoff() {
|
||||
return minBackoff;
|
||||
}
|
||||
|
||||
public void setMinBackoff(int minBackoff) {
|
||||
this.minBackoff = minBackoff;
|
||||
}
|
||||
|
||||
public Map<String, String> getMqttTopics() {
|
||||
return mqttTopics;
|
||||
}
|
||||
|
||||
public void setMqttTopics(Map<String, String> mqttTopics) {
|
||||
this.mqttTopics = mqttTopics;
|
||||
}
|
||||
|
||||
public String getRevision() {
|
||||
return revision;
|
||||
}
|
||||
|
||||
public void setRevision(String revision) {
|
||||
this.revision = revision;
|
||||
}
|
||||
|
||||
public String getManagerAddr() {
|
||||
return managerAddr;
|
||||
}
|
||||
|
||||
public void setManagerAddr(String managerAddr) {
|
||||
this.managerAddr = managerAddr;
|
||||
}
|
||||
|
||||
public boolean isFactoryReset() {
|
||||
return factoryReset;
|
||||
}
|
||||
|
||||
public void setFactoryReset(boolean factoryReset) {
|
||||
this.factoryReset = factoryReset;
|
||||
}
|
||||
|
||||
public static long getSerialversionuid() {
|
||||
return serialVersionUID;
|
||||
// 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"));
|
||||
}
|
||||
if (map.get("mqtt_headers") != null) {
|
||||
this.setMqttHeaders(row.getMapColumn("mqtt_headers"));
|
||||
}
|
||||
if (map.get("mqtt_topics") != null) {
|
||||
this.setMqttHeaders(row.getMapColumn("mqtt_topics"));
|
||||
}
|
||||
if ((map.get("model") != null) && map.get("model").getClass().equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
|
||||
this.setModel(row.getStringColumn("model"));
|
||||
}
|
||||
if ((map.get("sku_number") != null) && map.get("sku_number").getClass().equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
|
||||
this.setSkuNumber(row.getStringColumn("sku_number"));
|
||||
}
|
||||
if (map.get("id") != null) {
|
||||
this.setId(getSingleValueFromSet(row, "id"));
|
||||
}
|
||||
if (map.get("reference_design") != null) {
|
||||
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(row.getStringColumn("model_description"));
|
||||
}
|
||||
if ((map.get("manufacturer_url") != null)) {
|
||||
this.setManufacturerUrl(row.getStringColumn("manufacturer_url"));
|
||||
}
|
||||
if ((map.get("manufacturer_name") != null)) {
|
||||
this.setManufacturerName(row.getStringColumn("manufacturer_name"));
|
||||
}
|
||||
if ((map.get("manufacturer_date") != null)) {
|
||||
this.setManufacturerDate(row.getStringColumn("manufacturer_date"));
|
||||
}
|
||||
if (map.get("certification_region") != null) {
|
||||
this.setCertificationRegion(row.getStringColumn("certification_region"));
|
||||
}
|
||||
if (map.get("version_matrix") != null) {
|
||||
this.setVersionMatrix(row.getMapColumn("version_matrix"));
|
||||
}
|
||||
if ((map.get("firmware_version") != null) && map.get("firmware_version").getClass().equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
|
||||
this.setFirmwareVersion(row.getStringColumn("firmware_version"));
|
||||
}
|
||||
if ((map.get("firmware_url") != null) && map.get("firmware_url").getClass().equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
|
||||
this.setFirmwareUrl(row.getStringColumn("firmware_url"));
|
||||
}
|
||||
if ((map.get("_uuid") != null) && map.get("_uuid").getClass().equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
|
||||
this.setVersion(row.getUuidColumn("_uuid"));
|
||||
}
|
||||
if ((map.get("upgrade_dl_timer") != null) && map.get("upgrade_dl_timer").getClass().equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
|
||||
this.setUpgradeDlTimer(row.getIntegerColumn("upgrade_dl_timer").intValue());
|
||||
}
|
||||
if ((map.get("platform_version") != null) && map.get("platform_version").getClass().equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
|
||||
this.setPlatformVersion(row.getStringColumn("platform_version"));
|
||||
}
|
||||
if ((map.get("firmware_pass") != null) && map.get("firmware_pass").getClass().equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
|
||||
this.setFirmwarePass(row.getStringColumn("firmware_pass"));
|
||||
}
|
||||
if ((map.get("upgrade_timer") != null) && map.get("upgrade_timer").getClass().equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
|
||||
this.setUpgradeTimer(row.getIntegerColumn("upgrade_timer").intValue());
|
||||
}
|
||||
if ((map.get("max_backoff") != null) && map.get("max_backoff").getClass().equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
|
||||
this.setMaxBackoff(row.getIntegerColumn("max_backoff").intValue());
|
||||
}
|
||||
if (map.get("led_config") != null) {
|
||||
this.setLedConfig(row.getMapColumn("led_config"));
|
||||
}
|
||||
if ((map.get("redirector_addr") != null) && map.get("redirector_addr").getClass().equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
|
||||
this.setRedirectorAddr(row.getStringColumn("redirector_addr"));
|
||||
}
|
||||
if ((map.get("serial_number") != null) && map.get("serial_number").getClass().equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
|
||||
this.setSerialNumber(row.getStringColumn("serial_number"));
|
||||
}
|
||||
if ((map.get("_version") != null) && map.get("_version").getClass().equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
|
||||
this.setVersion(row.getUuidColumn("_version"));
|
||||
}
|
||||
this.setUpgradeStatus(row.getIntegerColumn("upgrade_status").intValue());
|
||||
if ((map.get("device_mode") != null) && map.get("device_mode").getClass().equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
|
||||
this.setDeviceMode(row.getStringColumn("device_mode"));
|
||||
}
|
||||
if ((map.get("min_backoff") != null) && map.get("min_backoff").getClass().equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
|
||||
this.setMinBackoff(row.getIntegerColumn("min_backoff").intValue());
|
||||
}
|
||||
if ((map.get("revision") != null) && map.get("revision").getClass().equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
|
||||
this.setRevision(row.getStringColumn("revision"));
|
||||
}
|
||||
if ((map.get("manager_addr") != null) && map.get("manager_addr").getClass().equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
|
||||
this.setManagerAddr(row.getStringColumn("manager_addr"));
|
||||
}
|
||||
if ((map.get("factory_reset") != null) && map.get("factory_reset").getClass().equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
|
||||
this.setFactoryReset(row.getBooleanColumn("factory_reset"));
|
||||
}
|
||||
}
|
||||
|
||||
public Uuid get_uuid() {
|
||||
return _uuid;
|
||||
}
|
||||
|
||||
public void set_uuid(Uuid _uuid) {
|
||||
this._uuid = _uuid;
|
||||
public String getDeviceMode() {
|
||||
return deviceMode;
|
||||
}
|
||||
|
||||
public String getFirmwarePass() {
|
||||
return firmwarePass;
|
||||
}
|
||||
|
||||
public String getFirmwareUrl() {
|
||||
return firmwareUrl;
|
||||
}
|
||||
|
||||
public String getFirmwareVersion() {
|
||||
return firmwareVersion;
|
||||
}
|
||||
|
||||
public String getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
public Map<String, String> getLedConfig() {
|
||||
return ledConfig;
|
||||
}
|
||||
|
||||
public String getManagerAddr() {
|
||||
return managerAddr;
|
||||
}
|
||||
|
||||
public int getMaxBackoff() {
|
||||
return maxBackoff;
|
||||
}
|
||||
|
||||
public int getMinBackoff() {
|
||||
return minBackoff;
|
||||
}
|
||||
|
||||
public String getModel() {
|
||||
return model;
|
||||
}
|
||||
|
||||
public Map<String, String> getMqttHeaders() {
|
||||
return mqttHeaders;
|
||||
}
|
||||
|
||||
public Map<Object, Object> getMqttSettings() {
|
||||
return mqttSettings;
|
||||
}
|
||||
|
||||
public Map<String, String> getMqttTopics() {
|
||||
return mqttTopics;
|
||||
}
|
||||
|
||||
public String getPlatformVersion() {
|
||||
return platformVersion;
|
||||
}
|
||||
|
||||
public String getRedirectorAddr() {
|
||||
return redirectorAddr;
|
||||
}
|
||||
|
||||
public String getRevision() {
|
||||
return revision;
|
||||
}
|
||||
|
||||
public String getSerialNumber() {
|
||||
return serialNumber;
|
||||
}
|
||||
|
||||
public String getSkuNumber() {
|
||||
return skuNumber;
|
||||
}
|
||||
|
||||
public int getUpgradeDlTimer() {
|
||||
return upgradeDlTimer;
|
||||
}
|
||||
|
||||
public int getUpgradeStatus() {
|
||||
return upgradeStatus;
|
||||
}
|
||||
|
||||
public int getUpgradeTimer() {
|
||||
return upgradeTimer;
|
||||
}
|
||||
|
||||
public Uuid getVersion() {
|
||||
return version;
|
||||
}
|
||||
|
||||
public Map<String, String> getVersionMatrix() {
|
||||
return versionMatrix;
|
||||
}
|
||||
|
||||
public boolean isFactoryReset() {
|
||||
return factoryReset;
|
||||
}
|
||||
|
||||
public String getReferenceDesign() {
|
||||
return referenceDesign;
|
||||
}
|
||||
|
||||
public void setReferenceDesign(String referenceDesign) {
|
||||
this.referenceDesign = referenceDesign;
|
||||
}
|
||||
|
||||
public Map<String, String> getQrCode() {
|
||||
return qrCode;
|
||||
}
|
||||
|
||||
public void setQrCode(Map<String, String> qrCode) {
|
||||
this.qrCode = qrCode;
|
||||
}
|
||||
|
||||
public String getModelDescription() {
|
||||
return modelDescription;
|
||||
}
|
||||
|
||||
public void setModelDescription(String modelDescription) {
|
||||
this.modelDescription = modelDescription;
|
||||
}
|
||||
|
||||
public String getManufacturerUrl() {
|
||||
return manufacturerUrl;
|
||||
}
|
||||
|
||||
public void setManufacturerUrl(String manufacturerUrl) {
|
||||
this.manufacturerUrl = manufacturerUrl;
|
||||
}
|
||||
|
||||
public String getManufacturerName() {
|
||||
return manufacturerName;
|
||||
}
|
||||
|
||||
public void setManufacturerName(String manufacturerName) {
|
||||
this.manufacturerName = manufacturerName;
|
||||
}
|
||||
|
||||
public String getManufacturerDate() {
|
||||
return manufacturerDate;
|
||||
}
|
||||
|
||||
public void setManufacturerDate(String manufacturerDate) {
|
||||
this.manufacturerDate = manufacturerDate;
|
||||
}
|
||||
|
||||
public String getCertificationRegion() {
|
||||
return certificationRegion;
|
||||
}
|
||||
|
||||
public void setCertificationRegion(String certificationRegion) {
|
||||
this.certificationRegion = certificationRegion;
|
||||
}
|
||||
|
||||
public void set_uuid(Uuid _uuid) {
|
||||
this._uuid = _uuid;
|
||||
}
|
||||
|
||||
public void setDeviceMode(String deviceMode) {
|
||||
this.deviceMode = deviceMode;
|
||||
}
|
||||
|
||||
public void setFactoryReset(boolean factoryReset) {
|
||||
this.factoryReset = factoryReset;
|
||||
}
|
||||
|
||||
public void setFirmwarePass(String firmwarePass) {
|
||||
this.firmwarePass = firmwarePass;
|
||||
}
|
||||
|
||||
public void setFirmwareUrl(String firmwareUrl) {
|
||||
this.firmwareUrl = firmwareUrl;
|
||||
}
|
||||
|
||||
public void setFirmwareVersion(String firmwareVersion) {
|
||||
this.firmwareVersion = firmwareVersion;
|
||||
}
|
||||
|
||||
public void setId(String id) {
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
public void setLedConfig(Map<String, String> ledConfig) {
|
||||
this.ledConfig = ledConfig;
|
||||
}
|
||||
|
||||
public void setManagerAddr(String managerAddr) {
|
||||
this.managerAddr = managerAddr;
|
||||
}
|
||||
|
||||
public void setMaxBackoff(int maxBackoff) {
|
||||
this.maxBackoff = maxBackoff;
|
||||
}
|
||||
|
||||
public void setMinBackoff(int minBackoff) {
|
||||
this.minBackoff = minBackoff;
|
||||
}
|
||||
|
||||
public void setModel(String model) {
|
||||
this.model = model;
|
||||
}
|
||||
|
||||
public void setMqttHeaders(Map<String, String> mqttHeaders) {
|
||||
this.mqttHeaders = mqttHeaders;
|
||||
}
|
||||
|
||||
public void setMqttSettings(Map<Object, Object> map) {
|
||||
this.mqttSettings = map;
|
||||
}
|
||||
|
||||
public void setMqttTopics(Map<String, String> mqttTopics) {
|
||||
this.mqttTopics = mqttTopics;
|
||||
}
|
||||
|
||||
public void setPlatformVersion(String platformVersion) {
|
||||
this.platformVersion = platformVersion;
|
||||
}
|
||||
|
||||
public void setRedirectorAddr(String redirectorAddr) {
|
||||
this.redirectorAddr = redirectorAddr;
|
||||
}
|
||||
|
||||
public void setRevision(String revision) {
|
||||
this.revision = revision;
|
||||
}
|
||||
|
||||
public void setSerialNumber(String serialNumber) {
|
||||
this.serialNumber = serialNumber;
|
||||
}
|
||||
|
||||
public void setSkuNumber(String skuNumber) {
|
||||
this.skuNumber = skuNumber;
|
||||
}
|
||||
|
||||
public void setUpgradeDlTimer(int upgradeDlTimer) {
|
||||
this.upgradeDlTimer = upgradeDlTimer;
|
||||
}
|
||||
|
||||
public void setUpgradeStatus(int upgradeStatus) {
|
||||
this.upgradeStatus = upgradeStatus;
|
||||
}
|
||||
|
||||
public void setUpgradeTimer(int upgradeTimer) {
|
||||
this.upgradeTimer = upgradeTimer;
|
||||
}
|
||||
|
||||
public void setVersion(Uuid version) {
|
||||
this.version = version;
|
||||
}
|
||||
|
||||
public void setVersionMatrix(Map<String, String> versionMatrix) {
|
||||
this.versionMatrix = versionMatrix;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -4,19 +4,25 @@
|
||||
package com.telecominfraproject.wlan.opensync.external.integration.models;
|
||||
|
||||
import java.util.HashSet;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
|
||||
import com.telecominfraproject.wlan.core.model.json.BaseJsonModel;
|
||||
import com.vmware.ovsdb.protocol.operation.notation.Row;
|
||||
import com.vmware.ovsdb.protocol.operation.notation.Uuid;
|
||||
import com.vmware.ovsdb.protocol.operation.notation.Value;
|
||||
|
||||
/**
|
||||
* @author mikehansen
|
||||
*
|
||||
*/
|
||||
public class OpensyncWifiAssociatedClients extends BaseJsonModel {
|
||||
public class OpensyncWifiAssociatedClients extends OpensyncAPBase {
|
||||
|
||||
private static final long serialVersionUID = -7088651136971662138L;
|
||||
|
||||
public static long getSerialversionuid() {
|
||||
return serialVersionUID;
|
||||
}
|
||||
|
||||
public String keyId;
|
||||
public String mac;
|
||||
public String state;
|
||||
@@ -25,85 +31,107 @@ public class OpensyncWifiAssociatedClients extends BaseJsonModel {
|
||||
public String kick;
|
||||
public String oftag;
|
||||
public Uuid _uuid;
|
||||
|
||||
public Uuid version;
|
||||
|
||||
public OpensyncWifiAssociatedClients() {
|
||||
super();
|
||||
capabilities = new HashSet<>();
|
||||
}
|
||||
|
||||
public String getKeyId() {
|
||||
return keyId;
|
||||
}
|
||||
public OpensyncWifiAssociatedClients(Row row) {
|
||||
this();
|
||||
|
||||
public void setKeyId(String keyId) {
|
||||
this.keyId = keyId;
|
||||
}
|
||||
Map<String, Value> map = row.getColumns();
|
||||
|
||||
public String getMac() {
|
||||
return mac;
|
||||
}
|
||||
|
||||
public void setMac(String mac) {
|
||||
this.mac = mac;
|
||||
}
|
||||
|
||||
public String getState() {
|
||||
return state;
|
||||
}
|
||||
|
||||
public void setState(String state) {
|
||||
this.state = state;
|
||||
}
|
||||
|
||||
public Set<String> getCapabilities() {
|
||||
return capabilities;
|
||||
}
|
||||
|
||||
public void setCapabilities(Set<String> set) {
|
||||
this.capabilities = set;
|
||||
}
|
||||
|
||||
public int getUapsd() {
|
||||
return uapsd;
|
||||
}
|
||||
|
||||
public void setUapsd(int uapsd) {
|
||||
this.uapsd = uapsd;
|
||||
}
|
||||
|
||||
public String getKick() {
|
||||
return kick;
|
||||
}
|
||||
|
||||
public void setKick(String kick) {
|
||||
this.kick = kick;
|
||||
}
|
||||
|
||||
public String getOftag() {
|
||||
return oftag;
|
||||
}
|
||||
|
||||
public void setOftag(String oftag) {
|
||||
this.oftag = oftag;
|
||||
}
|
||||
|
||||
public static long getSerialversionuid() {
|
||||
return serialVersionUID;
|
||||
if ((map.get("mac") != null)
|
||||
&& map.get("mac").getClass().equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
|
||||
this.setMac(row.getStringColumn("mac"));
|
||||
}
|
||||
if (row.getSetColumn("capabilities") != null) {
|
||||
this.setCapabilities(row.getSetColumn("capabilities"));
|
||||
}
|
||||
if ((map.get("state") != null)
|
||||
&& map.get("state").getClass().equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
|
||||
this.setState(row.getStringColumn("state"));
|
||||
}
|
||||
if ((map.get("_version") != null)
|
||||
&& map.get("_version").getClass().equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
|
||||
this.setVersion(row.getUuidColumn("_version"));
|
||||
}
|
||||
if ((map.get("_uuid") != null)
|
||||
&& map.get("_uuid").getClass().equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
|
||||
this.setVersion(row.getUuidColumn("_uuid"));
|
||||
}
|
||||
}
|
||||
|
||||
public Uuid get_uuid() {
|
||||
return _uuid;
|
||||
}
|
||||
|
||||
public void set_uuid(Uuid _uuid) {
|
||||
this._uuid = _uuid;
|
||||
public Set<String> getCapabilities() {
|
||||
return capabilities;
|
||||
}
|
||||
|
||||
public String getKeyId() {
|
||||
return keyId;
|
||||
}
|
||||
|
||||
public String getKick() {
|
||||
return kick;
|
||||
}
|
||||
|
||||
public String getMac() {
|
||||
return mac;
|
||||
}
|
||||
|
||||
public String getOftag() {
|
||||
return oftag;
|
||||
}
|
||||
|
||||
public String getState() {
|
||||
return state;
|
||||
}
|
||||
|
||||
public int getUapsd() {
|
||||
return uapsd;
|
||||
}
|
||||
|
||||
public Uuid getVersion() {
|
||||
return version;
|
||||
}
|
||||
|
||||
public void set_uuid(Uuid _uuid) {
|
||||
this._uuid = _uuid;
|
||||
}
|
||||
|
||||
public void setCapabilities(Set<String> set) {
|
||||
this.capabilities = set;
|
||||
}
|
||||
|
||||
public void setKeyId(String keyId) {
|
||||
this.keyId = keyId;
|
||||
}
|
||||
|
||||
public void setKick(String kick) {
|
||||
this.kick = kick;
|
||||
}
|
||||
|
||||
public void setMac(String mac) {
|
||||
this.mac = mac;
|
||||
}
|
||||
|
||||
public void setOftag(String oftag) {
|
||||
this.oftag = oftag;
|
||||
}
|
||||
|
||||
public void setState(String state) {
|
||||
this.state = state;
|
||||
}
|
||||
|
||||
public void setUapsd(int uapsd) {
|
||||
this.uapsd = uapsd;
|
||||
}
|
||||
|
||||
public void setVersion(Uuid version) {
|
||||
this.version = version;
|
||||
}
|
||||
|
||||
@@ -0,0 +1,14 @@
|
||||
|
||||
package com.telecominfraproject.wlan.opensync.external.integration.utils;
|
||||
|
||||
import com.telecominfraproject.wlan.systemevent.models.SystemEvent;
|
||||
|
||||
import sts.OpensyncStats.Report;
|
||||
|
||||
public interface StatsPublisherInterface {
|
||||
|
||||
void processMqttMessage(String topic, Report report);
|
||||
|
||||
void publishSystemEventFromTableStateMonitor(SystemEvent event);
|
||||
|
||||
}
|
||||
@@ -3,7 +3,7 @@
|
||||
<parent>
|
||||
<groupId>com.telecominfraproject.wlan</groupId>
|
||||
<artifactId>tip-wlan-cloud-root-pom</artifactId>
|
||||
<version>0.0.1-SNAPSHOT</version>
|
||||
<version>1.3.0-SNAPSHOT</version>
|
||||
<relativePath>../../wlan-cloud-root</relativePath>
|
||||
</parent>
|
||||
<artifactId>opensync-ext-static</artifactId>
|
||||
@@ -13,7 +13,7 @@
|
||||
<dependency>
|
||||
<groupId>com.telecominfraproject.wlan</groupId>
|
||||
<artifactId>opensync-gateway</artifactId>
|
||||
<version>${tip-wlan-cloud.release.version}</version>
|
||||
<version>1.3.0-SNAPSHOT</version>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
</project>
|
||||
|
||||
@@ -2,7 +2,6 @@ package com.telecominfraproject.wlan.opensync.external.integration;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
@@ -18,7 +17,6 @@ import com.telecominfraproject.wlan.equipment.models.Equipment;
|
||||
import com.telecominfraproject.wlan.location.models.Location;
|
||||
import com.telecominfraproject.wlan.opensync.external.integration.models.ConnectNodeInfo;
|
||||
import com.telecominfraproject.wlan.opensync.external.integration.models.OpensyncAPConfig;
|
||||
import com.telecominfraproject.wlan.opensync.external.integration.models.OpensyncAPHotspot20Config;
|
||||
import com.telecominfraproject.wlan.opensync.external.integration.models.OpensyncAPInetState;
|
||||
import com.telecominfraproject.wlan.opensync.external.integration.models.OpensyncAPRadioState;
|
||||
import com.telecominfraproject.wlan.opensync.external.integration.models.OpensyncAPVIFState;
|
||||
@@ -47,30 +45,9 @@ public class OpensyncExternalIntegrationSimple implements OpensyncExternalIntegr
|
||||
@Value("${tip.wlan.ovsdb.ssidProfileFileName:/app/config/ProfileSsid.json}")
|
||||
private String ssidProfileFileName;
|
||||
|
||||
@Value("${tip.wlan.ovsdb.metricsProfileFileName:/app/config/ProfileMetrics.json}")
|
||||
private String metricsProfileFileName;
|
||||
|
||||
@Value("${tip.wlan.ovsdb.venueProfileFileName:/app/config/ProfileVenue.json}")
|
||||
private String venueProfileFileName;
|
||||
|
||||
@Value("${tip.wlan.ovsdb.operatorProfileFileName:/app/config/ProfileOperator.json}")
|
||||
private String operatorProfileFileName;
|
||||
|
||||
@Value("${tip.wlan.ovsdb.hotspot20ProfileFileName:/app/config/ProfileHotspot20.json}")
|
||||
private String hotspot20ProfileFileName;
|
||||
|
||||
@Value("${tip.wlan.ovsdb.idProviderProfileFileName:/app/config/ProfileIdProvider.json}")
|
||||
private String idProviderProfileFileName;
|
||||
|
||||
@Value("${tip.wlan.ovsdb.radiusProfileFileName:/app/config/ProfileRadius.json}")
|
||||
private String radiusProfileFileName;
|
||||
|
||||
@Value("${tip.wlan.ovsdb.captiveProfileFileName:/app/config/ProfileCaptive.json}")
|
||||
private String captiveProfileFileName;
|
||||
|
||||
@Value("${tip.wlan.ovsdb.bonjourProfileFileName:/app/config/ProfileBonjour.json}")
|
||||
private String bonjourProfileFileName;
|
||||
|
||||
@Value("${tip.wlan.ovsdb.locationFileName:/app/config/LocationBuildingExample.json}")
|
||||
private String locationFileName;
|
||||
|
||||
@@ -85,7 +62,6 @@ public class OpensyncExternalIntegrationSimple implements OpensyncExternalIntegr
|
||||
serialNumber = connectNodeInfo.serialNumber;
|
||||
LOG.info("AP {} got connected to the gateway", apId);
|
||||
LOG.info("ConnectNodeInfo {}", connectNodeInfo);
|
||||
|
||||
}
|
||||
|
||||
public void apDisconnected(String apId) {
|
||||
@@ -95,97 +71,41 @@ public class OpensyncExternalIntegrationSimple implements OpensyncExternalIntegr
|
||||
public OpensyncAPConfig getApConfig(String apId) {
|
||||
LOG.info("Retrieving config for AP {}", apId);
|
||||
OpensyncAPConfig ret = null;
|
||||
|
||||
try {
|
||||
|
||||
Equipment equipment = Equipment.fromFile(customerEquipmentFileName, Equipment.class);
|
||||
equipment.setInventoryId(apId);
|
||||
equipment.setName(apId);
|
||||
equipment.setSerial(serialNumber);
|
||||
|
||||
com.telecominfraproject.wlan.profile.models.Profile apProfile = com.telecominfraproject.wlan.profile.models.Profile
|
||||
.fromFile(apProfileFileName, com.telecominfraproject.wlan.profile.models.Profile.class);
|
||||
|
||||
com.telecominfraproject.wlan.profile.models.Profile rfProfile = com.telecominfraproject.wlan.profile.models.Profile
|
||||
.fromFile(rfProfileFileName, com.telecominfraproject.wlan.profile.models.Profile.class);
|
||||
|
||||
apProfile.getChildProfileIds().add(rfProfile.getId());
|
||||
|
||||
List<com.telecominfraproject.wlan.profile.models.Profile> ssidProfiles = com.telecominfraproject.wlan.profile.models.Profile
|
||||
.listFromFile(ssidProfileFileName, com.telecominfraproject.wlan.profile.models.Profile.class);
|
||||
|
||||
List<com.telecominfraproject.wlan.profile.models.Profile> hotspot20Profiles = com.telecominfraproject.wlan.profile.models.Profile
|
||||
.listFromFile(hotspot20ProfileFileName, com.telecominfraproject.wlan.profile.models.Profile.class);
|
||||
List<com.telecominfraproject.wlan.profile.models.Profile> operatorProfiles = com.telecominfraproject.wlan.profile.models.Profile
|
||||
.listFromFile(operatorProfileFileName, com.telecominfraproject.wlan.profile.models.Profile.class);
|
||||
List<com.telecominfraproject.wlan.profile.models.Profile> venueProfiles = com.telecominfraproject.wlan.profile.models.Profile
|
||||
.listFromFile(venueProfileFileName, com.telecominfraproject.wlan.profile.models.Profile.class);
|
||||
List<com.telecominfraproject.wlan.profile.models.Profile> providerProfiles = com.telecominfraproject.wlan.profile.models.Profile
|
||||
.listFromFile(idProviderProfileFileName, com.telecominfraproject.wlan.profile.models.Profile.class);
|
||||
|
||||
|
||||
ssidProfiles.stream().forEach(p -> apProfile.getChildProfileIds().add(p.getId()));
|
||||
|
||||
List<com.telecominfraproject.wlan.profile.models.Profile> metricsProfiles = com.telecominfraproject.wlan.profile.models.Profile
|
||||
.listFromFile(metricsProfileFileName, com.telecominfraproject.wlan.profile.models.Profile.class);
|
||||
|
||||
List<com.telecominfraproject.wlan.profile.models.Profile> radiusProfiles = com.telecominfraproject.wlan.profile.models.Profile
|
||||
.listFromFile(radiusProfileFileName, com.telecominfraproject.wlan.profile.models.Profile.class);
|
||||
|
||||
|
||||
List<com.telecominfraproject.wlan.profile.models.Profile> captiveProfiles = null;
|
||||
File captiveFile = new File(captiveProfileFileName);
|
||||
if (captiveFile.exists()) {
|
||||
captiveProfiles = com.telecominfraproject.wlan.profile.models.Profile.listFromFile(
|
||||
captiveProfileFileName, com.telecominfraproject.wlan.profile.models.Profile.class);
|
||||
} else {
|
||||
LOG.info("Captive file is not provided");
|
||||
}
|
||||
|
||||
List<com.telecominfraproject.wlan.profile.models.Profile> bonjourProfiles = null;
|
||||
File bonjourFile = new File(bonjourProfileFileName);
|
||||
if (bonjourFile.exists()) {
|
||||
bonjourProfiles = com.telecominfraproject.wlan.profile.models.Profile.listFromFile(
|
||||
bonjourProfileFileName, com.telecominfraproject.wlan.profile.models.Profile.class);
|
||||
} else {
|
||||
LOG.info("Bonjour file is not provided");
|
||||
}
|
||||
|
||||
equipment.setProfileId(apProfile.getId());
|
||||
|
||||
Location location = Location.fromFile(locationFileName, Location.class);
|
||||
|
||||
equipment.setLocationId(location.getId());
|
||||
|
||||
OpensyncAPHotspot20Config hotspotConfig = new OpensyncAPHotspot20Config();
|
||||
|
||||
hotspotConfig.setHotspot20ProfileSet(
|
||||
new HashSet<com.telecominfraproject.wlan.profile.models.Profile>(hotspot20Profiles));
|
||||
hotspotConfig.setHotspot20OperatorSet(
|
||||
new HashSet<com.telecominfraproject.wlan.profile.models.Profile>(operatorProfiles));
|
||||
hotspotConfig.setHotspot20VenueSet(
|
||||
new HashSet<com.telecominfraproject.wlan.profile.models.Profile>(venueProfiles));
|
||||
hotspotConfig.setHotspot20ProviderSet(
|
||||
new HashSet<com.telecominfraproject.wlan.profile.models.Profile>(providerProfiles));
|
||||
|
||||
ret = new OpensyncAPConfig();
|
||||
ret.setCustomerEquipment(equipment);
|
||||
ret.setApProfile(apProfile);
|
||||
ret.setRfProfile(rfProfile);
|
||||
ret.setMetricsProfiles(metricsProfiles);
|
||||
ret.setSsidProfile(ssidProfiles);
|
||||
ret.setRadiusProfiles(radiusProfiles);
|
||||
File radiusFile = new File(radiusProfileFileName);
|
||||
if (radiusFile.exists()) {
|
||||
List<com.telecominfraproject.wlan.profile.models.Profile> radiusProfiles = com.telecominfraproject.wlan.profile.models.Profile
|
||||
.listFromFile(radiusProfileFileName, com.telecominfraproject.wlan.profile.models.Profile.class);
|
||||
ret.setRadiusProfiles(radiusProfiles);
|
||||
} else {
|
||||
LOG.debug("No radius file present at {}", radiusFile.getAbsolutePath());
|
||||
}
|
||||
ret.setEquipmentLocation(location);
|
||||
ret.setCaptiveProfiles(captiveProfiles);
|
||||
ret.setBonjourGatewayProfiles(bonjourProfiles);
|
||||
ret.setHotspotConfig(hotspotConfig);
|
||||
|
||||
} catch (IOException e) {
|
||||
LOG.error("Cannot read config file", e);
|
||||
}
|
||||
|
||||
LOG.debug("Config content : {}", ret);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
@@ -199,7 +119,6 @@ public class OpensyncExternalIntegrationSimple implements OpensyncExternalIntegr
|
||||
LOG.info("Received EventReport {}", e);
|
||||
});
|
||||
|
||||
|
||||
}
|
||||
|
||||
public void processMqttMessage(String topic, FlowReport flowReport) {
|
||||
@@ -275,4 +194,22 @@ public class OpensyncExternalIntegrationSimple implements OpensyncExternalIntegr
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void clearEquipmentStatus(String apId) {
|
||||
LOG.info("Received clearEquipmentStatus for ap {}", apId);
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void apcStateDbTableUpdate(Map<String, String> apcStateAttributes, String apId,
|
||||
RowUpdateOperation rowUpdateOperation) {
|
||||
LOG.info("Received APC_State {} for operation {}", apcStateAttributes, rowUpdateOperation);
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void nodeStateDbTableUpdate(List<Map<String, String>> nodeStateAttributes, String apId) {
|
||||
LOG.info("nodeStateDbTableUpdate for AP {}", apId);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -1,221 +1,472 @@
|
||||
{
|
||||
"model_type": "Equipment",
|
||||
"id": 51,
|
||||
"customerId": 2,
|
||||
"profileId": 12,
|
||||
"locationId": 8,
|
||||
"equipmentType": "AP",
|
||||
"inventoryId": "Test_Client_21P10C68818122",
|
||||
"name": "Test_Client_21P10C68818122",
|
||||
"details": {
|
||||
"model_type": "ApElementConfiguration",
|
||||
"equipmentModel": "EA8300-CA",
|
||||
"elementConfigVersion": "AP-V1",
|
||||
"model_type": "Equipment",
|
||||
"id": 1,
|
||||
"customerId": 2,
|
||||
"profileId": 8,
|
||||
"locationId": 8,
|
||||
"equipmentType": "AP",
|
||||
"deviceMode": "standaloneAP",
|
||||
"gettingIP": "dhcp",
|
||||
"staticIP": null,
|
||||
"staticIpMaskCidr": null,
|
||||
"staticIpGw": null,
|
||||
"gettingDNS": "dhcp",
|
||||
"staticDnsIp1": null,
|
||||
"staticDnsIp2": null,
|
||||
"peerInfoList": [],
|
||||
"deviceName": "Default Device Name",
|
||||
"locationData": null,
|
||||
"locallyConfiguredMgmtVlan": 0,
|
||||
"locallyConfigured": false,
|
||||
"deploymentType": "CEILING",
|
||||
"syntheticClientEnabled": null,
|
||||
"frameReportThrottleEnabled": true,
|
||||
"antennaType": "OMNI",
|
||||
"costSavingEventsEnabled": true,
|
||||
"forwardMode": "BRIDGE",
|
||||
"radioMap": {
|
||||
"is2dot4GHz": {
|
||||
"model_type": "ElementRadioConfiguration",
|
||||
"radioType": "is2dot4GHz",
|
||||
"channelNumber": 6,
|
||||
"manualChannelNumber": 6,
|
||||
"backupChannelNumber": 11,
|
||||
"bannedChannels": [],
|
||||
"allowedChannels": [],
|
||||
"rxCellSizeDb": {
|
||||
"model_type": "SourceSelectionValue",
|
||||
"source": "auto",
|
||||
"value": -90
|
||||
"inventoryId": "Open_AP_21P10C68818122",
|
||||
"name": "Open_AP_21P10C68818122",
|
||||
"details": {
|
||||
"model_type": "ApElementConfiguration",
|
||||
"equipmentModel": "EA8300-CA",
|
||||
"elementConfigVersion": "AP-V1",
|
||||
"equipmentType": "AP",
|
||||
"deviceMode": "standaloneAP",
|
||||
"gettingIP": "dhcp",
|
||||
"staticIP": null,
|
||||
"staticIpMaskCidr": null,
|
||||
"staticIpGw": null,
|
||||
"gettingDNS": "dhcp",
|
||||
"staticDnsIp1": null,
|
||||
"staticDnsIp2": null,
|
||||
"peerInfoList": [],
|
||||
"deviceName": "Open_AP_21P10C68818122",
|
||||
"locationData": null,
|
||||
"locallyConfiguredMgmtVlan": 0,
|
||||
"locallyConfigured": false,
|
||||
"deploymentType": "CEILING",
|
||||
"syntheticClientEnabled": null,
|
||||
"frameReportThrottleEnabled": true,
|
||||
"antennaType": "OMNI",
|
||||
"costSavingEventsEnabled": true,
|
||||
"forwardMode": "BRIDGE",
|
||||
"radioMap": {
|
||||
"is5GHzU": {
|
||||
"model_type": "ElementRadioConfiguration",
|
||||
"radioType": "is5GHzU",
|
||||
"channelNumber": 149,
|
||||
"manualChannelNumber": 149,
|
||||
"backupChannelNumber": 157,
|
||||
"manualBackupChannelNumber": 157,
|
||||
"rxCellSizeDb": {
|
||||
"model_type": "SourceSelectionValue",
|
||||
"source": "profile",
|
||||
"value": -90
|
||||
},
|
||||
"probeResponseThresholdDb": {
|
||||
"model_type": "SourceSelectionValue",
|
||||
"source": "profile",
|
||||
"value": -90
|
||||
},
|
||||
"clientDisconnectThresholdDb": {
|
||||
"model_type": "SourceSelectionValue",
|
||||
"source": "profile",
|
||||
"value": -90
|
||||
},
|
||||
"eirpTxPower": {
|
||||
"model_type": "SourceSelectionValue",
|
||||
"source": "profile",
|
||||
"value": 18
|
||||
},
|
||||
"perimeterDetectionEnabled": true,
|
||||
"bestAPSteerType": "both",
|
||||
"deauthAttackDetection": null,
|
||||
"allowedChannelsPowerLevels": [
|
||||
{
|
||||
"model_type": "ChannelPowerLevel",
|
||||
"channelNumber": 161,
|
||||
"powerLevel": 18,
|
||||
"dfs": false,
|
||||
"channelWidth": 80
|
||||
},
|
||||
{
|
||||
"model_type": "ChannelPowerLevel",
|
||||
"channelNumber": 100,
|
||||
"powerLevel": 18,
|
||||
"dfs": true,
|
||||
"channelWidth": 80
|
||||
},
|
||||
{
|
||||
"model_type": "ChannelPowerLevel",
|
||||
"channelNumber": 132,
|
||||
"powerLevel": 18,
|
||||
"dfs": true,
|
||||
"channelWidth": 80
|
||||
},
|
||||
{
|
||||
"model_type": "ChannelPowerLevel",
|
||||
"channelNumber": 165,
|
||||
"powerLevel": 18,
|
||||
"dfs": false,
|
||||
"channelWidth": 80
|
||||
},
|
||||
{
|
||||
"model_type": "ChannelPowerLevel",
|
||||
"channelNumber": 104,
|
||||
"powerLevel": 18,
|
||||
"dfs": true,
|
||||
"channelWidth": 80
|
||||
},
|
||||
{
|
||||
"model_type": "ChannelPowerLevel",
|
||||
"channelNumber": 136,
|
||||
"powerLevel": 18,
|
||||
"dfs": true,
|
||||
"channelWidth": 80
|
||||
},
|
||||
{
|
||||
"model_type": "ChannelPowerLevel",
|
||||
"channelNumber": 108,
|
||||
"powerLevel": 18,
|
||||
"dfs": true,
|
||||
"channelWidth": 80
|
||||
},
|
||||
{
|
||||
"model_type": "ChannelPowerLevel",
|
||||
"channelNumber": 140,
|
||||
"powerLevel": 18,
|
||||
"dfs": true,
|
||||
"channelWidth": 80
|
||||
},
|
||||
{
|
||||
"model_type": "ChannelPowerLevel",
|
||||
"channelNumber": 112,
|
||||
"powerLevel": 18,
|
||||
"dfs": true,
|
||||
"channelWidth": 80
|
||||
},
|
||||
{
|
||||
"model_type": "ChannelPowerLevel",
|
||||
"channelNumber": 144,
|
||||
"powerLevel": 18,
|
||||
"dfs": true,
|
||||
"channelWidth": 80
|
||||
},
|
||||
{
|
||||
"model_type": "ChannelPowerLevel",
|
||||
"channelNumber": 116,
|
||||
"powerLevel": 18,
|
||||
"dfs": true,
|
||||
"channelWidth": 80
|
||||
},
|
||||
{
|
||||
"model_type": "ChannelPowerLevel",
|
||||
"channelNumber": 149,
|
||||
"powerLevel": 18,
|
||||
"dfs": false,
|
||||
"channelWidth": 80
|
||||
},
|
||||
{
|
||||
"model_type": "ChannelPowerLevel",
|
||||
"channelNumber": 153,
|
||||
"powerLevel": 18,
|
||||
"dfs": false,
|
||||
"channelWidth": 80
|
||||
},
|
||||
{
|
||||
"model_type": "ChannelPowerLevel",
|
||||
"channelNumber": 157,
|
||||
"powerLevel": 18,
|
||||
"dfs": false,
|
||||
"channelWidth": 80
|
||||
}
|
||||
]
|
||||
},
|
||||
"is2dot4GHz": {
|
||||
"model_type": "ElementRadioConfiguration",
|
||||
"radioType": "is2dot4GHz",
|
||||
"channelNumber": 6,
|
||||
"manualChannelNumber": 6,
|
||||
"backupChannelNumber": 11,
|
||||
"manualBackupChannelNumber": 11,
|
||||
"rxCellSizeDb": {
|
||||
"model_type": "SourceSelectionValue",
|
||||
"source": "profile",
|
||||
"value": -90
|
||||
},
|
||||
"probeResponseThresholdDb": {
|
||||
"model_type": "SourceSelectionValue",
|
||||
"source": "profile",
|
||||
"value": -90
|
||||
},
|
||||
"clientDisconnectThresholdDb": {
|
||||
"model_type": "SourceSelectionValue",
|
||||
"source": "profile",
|
||||
"value": -90
|
||||
},
|
||||
"eirpTxPower": {
|
||||
"model_type": "SourceSelectionValue",
|
||||
"source": "profile",
|
||||
"value": 18
|
||||
},
|
||||
"perimeterDetectionEnabled": true,
|
||||
"bestAPSteerType": "both",
|
||||
"deauthAttackDetection": null,
|
||||
"allowedChannelsPowerLevels": [
|
||||
{
|
||||
"model_type": "ChannelPowerLevel",
|
||||
"channelNumber": 1,
|
||||
"powerLevel": 18,
|
||||
"dfs": false,
|
||||
"channelWidth": 20
|
||||
},
|
||||
{
|
||||
"model_type": "ChannelPowerLevel",
|
||||
"channelNumber": 2,
|
||||
"powerLevel": 18,
|
||||
"dfs": false,
|
||||
"channelWidth": 20
|
||||
},
|
||||
{
|
||||
"model_type": "ChannelPowerLevel",
|
||||
"channelNumber": 3,
|
||||
"powerLevel": 18,
|
||||
"dfs": false,
|
||||
"channelWidth": 20
|
||||
},
|
||||
{
|
||||
"model_type": "ChannelPowerLevel",
|
||||
"channelNumber": 4,
|
||||
"powerLevel": 18,
|
||||
"dfs": false,
|
||||
"channelWidth": 20
|
||||
},
|
||||
{
|
||||
"model_type": "ChannelPowerLevel",
|
||||
"channelNumber": 5,
|
||||
"powerLevel": 18,
|
||||
"dfs": false,
|
||||
"channelWidth": 20
|
||||
},
|
||||
{
|
||||
"model_type": "ChannelPowerLevel",
|
||||
"channelNumber": 6,
|
||||
"powerLevel": 18,
|
||||
"dfs": false,
|
||||
"channelWidth": 20
|
||||
},
|
||||
{
|
||||
"model_type": "ChannelPowerLevel",
|
||||
"channelNumber": 7,
|
||||
"powerLevel": 18,
|
||||
"dfs": false,
|
||||
"channelWidth": 20
|
||||
},
|
||||
{
|
||||
"model_type": "ChannelPowerLevel",
|
||||
"channelNumber": 8,
|
||||
"powerLevel": 18,
|
||||
"dfs": false,
|
||||
"channelWidth": 20
|
||||
},
|
||||
{
|
||||
"model_type": "ChannelPowerLevel",
|
||||
"channelNumber": 9,
|
||||
"powerLevel": 18,
|
||||
"dfs": false,
|
||||
"channelWidth": 20
|
||||
},
|
||||
{
|
||||
"model_type": "ChannelPowerLevel",
|
||||
"channelNumber": 10,
|
||||
"powerLevel": 18,
|
||||
"dfs": false,
|
||||
"channelWidth": 20
|
||||
},
|
||||
{
|
||||
"model_type": "ChannelPowerLevel",
|
||||
"channelNumber": 11,
|
||||
"powerLevel": 18,
|
||||
"dfs": false,
|
||||
"channelWidth": 20
|
||||
}
|
||||
]
|
||||
},
|
||||
"is5GHzL": {
|
||||
"model_type": "ElementRadioConfiguration",
|
||||
"radioType": "is5GHzL",
|
||||
"channelNumber": 36,
|
||||
"manualChannelNumber": 36,
|
||||
"backupChannelNumber": 44,
|
||||
"manualBackupChannelNumber": 44,
|
||||
"rxCellSizeDb": {
|
||||
"model_type": "SourceSelectionValue",
|
||||
"source": "profile",
|
||||
"value": -90
|
||||
},
|
||||
"probeResponseThresholdDb": {
|
||||
"model_type": "SourceSelectionValue",
|
||||
"source": "profile",
|
||||
"value": -90
|
||||
},
|
||||
"clientDisconnectThresholdDb": {
|
||||
"model_type": "SourceSelectionValue",
|
||||
"source": "profile",
|
||||
"value": -90
|
||||
},
|
||||
"eirpTxPower": {
|
||||
"model_type": "SourceSelectionValue",
|
||||
"source": "profile",
|
||||
"value": 18
|
||||
},
|
||||
"perimeterDetectionEnabled": true,
|
||||
"bestAPSteerType": "both",
|
||||
"deauthAttackDetection": null,
|
||||
"allowedChannelsPowerLevels": [
|
||||
{
|
||||
"model_type": "ChannelPowerLevel",
|
||||
"channelNumber": 52,
|
||||
"powerLevel": 18,
|
||||
"dfs": true,
|
||||
"channelWidth": 80
|
||||
},
|
||||
{
|
||||
"model_type": "ChannelPowerLevel",
|
||||
"channelNumber": 36,
|
||||
"powerLevel": 18,
|
||||
"dfs": false,
|
||||
"channelWidth": 80
|
||||
},
|
||||
{
|
||||
"model_type": "ChannelPowerLevel",
|
||||
"channelNumber": 56,
|
||||
"powerLevel": 18,
|
||||
"dfs": true,
|
||||
"channelWidth": 80
|
||||
},
|
||||
{
|
||||
"model_type": "ChannelPowerLevel",
|
||||
"channelNumber": 40,
|
||||
"powerLevel": 18,
|
||||
"dfs": false,
|
||||
"channelWidth": 80
|
||||
},
|
||||
{
|
||||
"model_type": "ChannelPowerLevel",
|
||||
"channelNumber": 60,
|
||||
"powerLevel": 18,
|
||||
"dfs": true,
|
||||
"channelWidth": 80
|
||||
},
|
||||
{
|
||||
"model_type": "ChannelPowerLevel",
|
||||
"channelNumber": 44,
|
||||
"powerLevel": 18,
|
||||
"dfs": false,
|
||||
"channelWidth": 80
|
||||
},
|
||||
{
|
||||
"model_type": "ChannelPowerLevel",
|
||||
"channelNumber": 64,
|
||||
"powerLevel": 18,
|
||||
"dfs": true,
|
||||
"channelWidth": 80
|
||||
},
|
||||
{
|
||||
"model_type": "ChannelPowerLevel",
|
||||
"channelNumber": 48,
|
||||
"powerLevel": 18,
|
||||
"dfs": false,
|
||||
"channelWidth": 80
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"probeResponseThresholdDb": {
|
||||
"model_type": "SourceSelectionValue",
|
||||
"source": "auto",
|
||||
"value": -90
|
||||
},
|
||||
"clientDisconnectThresholdDb": {
|
||||
"model_type": "SourceSelectionValue",
|
||||
"source": "auto",
|
||||
"value": -90
|
||||
},
|
||||
"eirpTxPower": {
|
||||
"model_type": "SourceSelectionValue",
|
||||
"source": "auto",
|
||||
"value": 32
|
||||
},
|
||||
"perimeterDetectionEnabled": true,
|
||||
"bestAPSteerType": "both",
|
||||
"deauthAttackDetection": null,
|
||||
"allowedChannelsPowerLevels": [],
|
||||
"activeChannel": 6
|
||||
},
|
||||
"is5GHzU": {
|
||||
"model_type": "ElementRadioConfiguration",
|
||||
"radioType": "is5GHzU",
|
||||
"channelNumber": 149,
|
||||
"manualChannelNumber": 149,
|
||||
"backupChannelNumber": 154,
|
||||
"bannedChannels": [],
|
||||
"allowedChannels": [],
|
||||
"rxCellSizeDb": {
|
||||
"model_type": "SourceSelectionValue",
|
||||
"source": "auto",
|
||||
"value": -90
|
||||
},
|
||||
"probeResponseThresholdDb": {
|
||||
"model_type": "SourceSelectionValue",
|
||||
"source": "auto",
|
||||
"value": -90
|
||||
},
|
||||
"clientDisconnectThresholdDb": {
|
||||
"model_type": "SourceSelectionValue",
|
||||
"source": "auto",
|
||||
"value": -90
|
||||
},
|
||||
"eirpTxPower": {
|
||||
"model_type": "SourceSelectionValue",
|
||||
"source": "auto",
|
||||
"value": 32
|
||||
},
|
||||
"perimeterDetectionEnabled": true,
|
||||
"bestAPSteerType": "both",
|
||||
"deauthAttackDetection": null,
|
||||
"allowedChannelsPowerLevels": [],
|
||||
"activeChannel": 149
|
||||
},
|
||||
"is5GHzL": {
|
||||
"model_type": "ElementRadioConfiguration",
|
||||
"radioType": "is5GHzL",
|
||||
"channelNumber": 36,
|
||||
"manualChannelNumber": 36,
|
||||
"backupChannelNumber": 44,
|
||||
"bannedChannels": [],
|
||||
"allowedChannels": [],
|
||||
"rxCellSizeDb": {
|
||||
"model_type": "SourceSelectionValue",
|
||||
"source": "auto",
|
||||
"value": -90
|
||||
},
|
||||
"probeResponseThresholdDb": {
|
||||
"model_type": "SourceSelectionValue",
|
||||
"source": "auto",
|
||||
"value": -90
|
||||
},
|
||||
"clientDisconnectThresholdDb": {
|
||||
"model_type": "SourceSelectionValue",
|
||||
"source": "auto",
|
||||
"value": -90
|
||||
},
|
||||
"eirpTxPower": {
|
||||
"model_type": "SourceSelectionValue",
|
||||
"source": "auto",
|
||||
"value": 32
|
||||
},
|
||||
"perimeterDetectionEnabled": true,
|
||||
"bestAPSteerType": "both",
|
||||
"deauthAttackDetection": null,
|
||||
"allowedChannelsPowerLevels": [],
|
||||
"activeChannel": 36
|
||||
}
|
||||
"advancedRadioMap": {
|
||||
"is2dot4GHz": {
|
||||
"model_type": "RadioConfiguration",
|
||||
"radioType": "is2dot4GHz",
|
||||
"radioAdminState": "enabled",
|
||||
"fragmentationThresholdBytes": 2346,
|
||||
"uapsdState": "enabled",
|
||||
"stationIsolation": "disabled",
|
||||
"multicastRate": {
|
||||
"model_type": "SourceSelectionMulticast",
|
||||
"source": "profile",
|
||||
"value": "auto"
|
||||
},
|
||||
"managementRate": {
|
||||
"model_type": "SourceSelectionManagement",
|
||||
"source": "profile",
|
||||
"value": "auto"
|
||||
},
|
||||
"bestApSettings": {
|
||||
"model_type": "SourceSelectionSteering",
|
||||
"source": "manual",
|
||||
"value": {
|
||||
"model_type": "RadioBestApSettings",
|
||||
"mlComputed": true,
|
||||
"dropInSnrPercentage": 20,
|
||||
"minLoadFactor": 50
|
||||
}
|
||||
},
|
||||
"legacyBSSRate": "enabled",
|
||||
"dtimPeriod": 2,
|
||||
"deauthAttackDetection": null
|
||||
},
|
||||
"is5GHzU": {
|
||||
"model_type": "RadioConfiguration",
|
||||
"radioType": "is5GHzU",
|
||||
"radioAdminState": "enabled",
|
||||
"fragmentationThresholdBytes": 2346,
|
||||
"uapsdState": "enabled",
|
||||
"stationIsolation": "disabled",
|
||||
"multicastRate": {
|
||||
"model_type": "SourceSelectionMulticast",
|
||||
"source": "profile",
|
||||
"value": "auto"
|
||||
},
|
||||
"managementRate": {
|
||||
"model_type": "SourceSelectionManagement",
|
||||
"source": "profile",
|
||||
"value": "auto"
|
||||
},
|
||||
"bestApSettings": {
|
||||
"model_type": "SourceSelectionSteering",
|
||||
"source": "manual",
|
||||
"value": {
|
||||
"model_type": "RadioBestApSettings",
|
||||
"mlComputed": true,
|
||||
"dropInSnrPercentage": 30,
|
||||
"minLoadFactor": 40
|
||||
}
|
||||
},
|
||||
"legacyBSSRate": "enabled",
|
||||
"dtimPeriod": 2,
|
||||
"deauthAttackDetection": null
|
||||
},
|
||||
"is5GHzL": {
|
||||
"model_type": "RadioConfiguration",
|
||||
"radioType": "is5GHzL",
|
||||
"radioAdminState": "enabled",
|
||||
"fragmentationThresholdBytes": 2346,
|
||||
"uapsdState": "enabled",
|
||||
"stationIsolation": "disabled",
|
||||
"multicastRate": {
|
||||
"model_type": "SourceSelectionMulticast",
|
||||
"source": "profile",
|
||||
"value": "auto"
|
||||
},
|
||||
"managementRate": {
|
||||
"model_type": "SourceSelectionManagement",
|
||||
"source": "profile",
|
||||
"value": "auto"
|
||||
},
|
||||
"bestApSettings": {
|
||||
"model_type": "SourceSelectionSteering",
|
||||
"source": "manual",
|
||||
"value": {
|
||||
"model_type": "RadioBestApSettings",
|
||||
"mlComputed": true,
|
||||
"dropInSnrPercentage": 30,
|
||||
"minLoadFactor": 40
|
||||
}
|
||||
},
|
||||
"legacyBSSRate": "enabled",
|
||||
"dtimPeriod": 2,
|
||||
"deauthAttackDetection": null
|
||||
}
|
||||
}
|
||||
},
|
||||
"advancedRadioMap": {
|
||||
"is2dot4GHz": {
|
||||
"model_type": "RadioConfiguration",
|
||||
"radioType": "is2dot4GHz",
|
||||
"radioAdminState": "enabled",
|
||||
"fragmentationThresholdBytes": 2346,
|
||||
"uapsdState": "enabled",
|
||||
"stationIsolation": "disabled",
|
||||
"managementRate": {
|
||||
"model_type": "SourceSelectionManagement",
|
||||
"source": "auto",
|
||||
"value": "auto"
|
||||
},
|
||||
"bestApSettings": {
|
||||
"model_type": "SourceSelectionSteering",
|
||||
"source": "auto",
|
||||
"value": {
|
||||
"model_type": "RadioBestApSettings",
|
||||
"mlComputed": true,
|
||||
"dropInSnrPercentage": 30,
|
||||
"minLoadFactor": 40
|
||||
}
|
||||
},
|
||||
"legacyBSSRate": "enabled",
|
||||
"deauthAttackDetection": null
|
||||
},
|
||||
"is5GHzU": {
|
||||
"model_type": "RadioConfiguration",
|
||||
"radioType": "is5GHzU",
|
||||
"radioAdminState": "enabled",
|
||||
"fragmentationThresholdBytes": 2346,
|
||||
"uapsdState": "enabled",
|
||||
"stationIsolation": "disabled",
|
||||
"managementRate": {
|
||||
"model_type": "SourceSelectionManagement",
|
||||
"source": "auto",
|
||||
"value": "auto"
|
||||
},
|
||||
"bestApSettings": {
|
||||
"model_type": "SourceSelectionSteering",
|
||||
"source": "auto",
|
||||
"value": {
|
||||
"model_type": "RadioBestApSettings",
|
||||
"mlComputed": true,
|
||||
"dropInSnrPercentage": 30,
|
||||
"minLoadFactor": 40
|
||||
}
|
||||
},
|
||||
"legacyBSSRate": "enabled",
|
||||
"deauthAttackDetection": null
|
||||
},
|
||||
"is5GHzL": {
|
||||
"model_type": "RadioConfiguration",
|
||||
"radioType": "is5GHzL",
|
||||
"radioAdminState": "enabled",
|
||||
"fragmentationThresholdBytes": 2346,
|
||||
"uapsdState": "enabled",
|
||||
"stationIsolation": "disabled",
|
||||
"managementRate": {
|
||||
"model_type": "SourceSelectionManagement",
|
||||
"source": "auto",
|
||||
"value": "auto"
|
||||
},
|
||||
"bestApSettings": {
|
||||
"model_type": "SourceSelectionSteering",
|
||||
"source": "auto",
|
||||
"value": {
|
||||
"model_type": "RadioBestApSettings",
|
||||
"mlComputed": true,
|
||||
"dropInSnrPercentage": 30,
|
||||
"minLoadFactor": 40
|
||||
}
|
||||
},
|
||||
"legacyBSSRate": "enabled",
|
||||
"deauthAttackDetection": null
|
||||
}
|
||||
}
|
||||
},
|
||||
"latitude": null,
|
||||
"longitude": null,
|
||||
"serial": "21P10C68818122",
|
||||
"createdTimestamp": 1591653239821,
|
||||
"lastModifiedTimestamp": 1591653241398
|
||||
"latitude": null,
|
||||
"longitude": null,
|
||||
"baseMacAddress": {
|
||||
"model_type": "MacAddress",
|
||||
"address": "JPWi7y5T",
|
||||
"addressAsString": "24:f5:a2:ef:2e:53"
|
||||
},
|
||||
"serial": "21P10C68818122",
|
||||
"createdTimestamp": 1612285288821,
|
||||
"lastModifiedTimestamp": 1612285293922
|
||||
}
|
||||
@@ -1,60 +1,61 @@
|
||||
{
|
||||
"model_type" : "Location",
|
||||
"id" : 8,
|
||||
"parentId" : 0,
|
||||
"locationType" : "SITE",
|
||||
"customerId" : 2,
|
||||
"name" : "Ottawa",
|
||||
"details" : {
|
||||
"model_type" : "LocationDetails",
|
||||
"countryCode" : "ca",
|
||||
"maintenanceWindow" : null,
|
||||
"rrmEnabled" : true,
|
||||
"dailyActivityDetails" : {
|
||||
"SUNDAY" : {
|
||||
"model_type" : "LocationActivityDetails",
|
||||
"busyTime" : "13:30",
|
||||
"quietTime" : "3:30",
|
||||
"timezone" : "US/Eastern"
|
||||
},
|
||||
"MONDAY" : {
|
||||
"model_type" : "LocationActivityDetails",
|
||||
"busyTime" : "13:30",
|
||||
"quietTime" : "3:30",
|
||||
"timezone" : "US/Eastern"
|
||||
},
|
||||
"TUESDAY" : {
|
||||
"model_type" : "LocationActivityDetails",
|
||||
"busyTime" : "13:30",
|
||||
"quietTime" : "3:30",
|
||||
"timezone" : "US/Eastern"
|
||||
},
|
||||
"WEDNESDAY" : {
|
||||
"model_type" : "LocationActivityDetails",
|
||||
"busyTime" : "13:30",
|
||||
"quietTime" : "3:30",
|
||||
"timezone" : "US/Eastern"
|
||||
},
|
||||
"THURSDAY" : {
|
||||
"model_type" : "LocationActivityDetails",
|
||||
"busyTime" : "13:30",
|
||||
"quietTime" : "3:30",
|
||||
"timezone" : "US/Eastern"
|
||||
},
|
||||
"FRIDAY" : {
|
||||
"model_type" : "LocationActivityDetails",
|
||||
"busyTime" : "13:30",
|
||||
"quietTime" : "3:30",
|
||||
"timezone" : "US/Eastern"
|
||||
},
|
||||
"SATURDAY" : {
|
||||
"model_type" : "LocationActivityDetails",
|
||||
"busyTime" : "13:30",
|
||||
"quietTime" : "3:30",
|
||||
"timezone" : "US/Eastern"
|
||||
}
|
||||
}
|
||||
},
|
||||
"createdTimestamp" : 1590607043540,
|
||||
"lastModifiedTimestamp" : 1590607043540
|
||||
"model_type": "Location",
|
||||
"id": 8,
|
||||
"parentId": 0,
|
||||
"locationType": "SITE",
|
||||
"customerId": 2,
|
||||
"name": "Ottawa",
|
||||
"details": {
|
||||
"model_type": "LocationDetails",
|
||||
"countryCode": "CA",
|
||||
"dailyActivityDetails": {
|
||||
"SUNDAY": {
|
||||
"model_type": "LocationActivityDetails",
|
||||
"busyTime": "13:30",
|
||||
"quietTime": "3:00",
|
||||
"timezone": "US/Eastern"
|
||||
},
|
||||
"MONDAY": {
|
||||
"model_type": "LocationActivityDetails",
|
||||
"busyTime": "13:30",
|
||||
"quietTime": "3:00",
|
||||
"timezone": "US/Eastern"
|
||||
},
|
||||
"TUESDAY": {
|
||||
"model_type": "LocationActivityDetails",
|
||||
"busyTime": "13:30",
|
||||
"quietTime": "3:00",
|
||||
"timezone": "US/Eastern"
|
||||
},
|
||||
"WEDNESDAY": {
|
||||
"model_type": "LocationActivityDetails",
|
||||
"busyTime": "13:30",
|
||||
"quietTime": "3:00",
|
||||
"timezone": "US/Eastern"
|
||||
},
|
||||
"THURSDAY": {
|
||||
"model_type": "LocationActivityDetails",
|
||||
"busyTime": "13:30",
|
||||
"quietTime": "3:00",
|
||||
"timezone": "US/Eastern"
|
||||
},
|
||||
"FRIDAY": {
|
||||
"model_type": "LocationActivityDetails",
|
||||
"busyTime": "13:30",
|
||||
"quietTime": "3:00",
|
||||
"timezone": "US/Eastern"
|
||||
},
|
||||
"SATURDAY": {
|
||||
"model_type": "LocationActivityDetails",
|
||||
"busyTime": "13:30",
|
||||
"quietTime": "3:00",
|
||||
"timezone": "US/Eastern"
|
||||
}
|
||||
},
|
||||
"maintenanceWindow": null,
|
||||
"rrmEnabled": true,
|
||||
"timezone": "US/Eastern"
|
||||
},
|
||||
"createdTimestamp": 1612285243534,
|
||||
"lastModifiedTimestamp": 1612285243534
|
||||
}
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"model_type": "Profile",
|
||||
"id": 12,
|
||||
"id": 8,
|
||||
"customerId": 2,
|
||||
"profileType": "equipment_ap",
|
||||
"name": "ApProfile-3-radios",
|
||||
@@ -20,11 +20,6 @@
|
||||
"syntheticClientEnabled": true,
|
||||
"ledControlEnabled": true,
|
||||
"equipmentDiscovery": false,
|
||||
"greTunnelName": null,
|
||||
"greParentIfName": null,
|
||||
"greLocalInetAddr": null,
|
||||
"greRemoteInetAddr": null,
|
||||
"greRemoteMacAddr": null,
|
||||
"radioMap": {
|
||||
"is2dot4GHz": {
|
||||
"model_type": "RadioProfileConfiguration",
|
||||
@@ -42,15 +37,22 @@
|
||||
"bestAPSteerType": "both"
|
||||
}
|
||||
},
|
||||
"greTunnelConfigurations": [
|
||||
{
|
||||
"model_type": "GreTunnelConfiguration",
|
||||
"greTunnelName": "gre1",
|
||||
"greRemoteInetAddr": "192.168.1.101",
|
||||
"vlanIdsInGreTunnel": [
|
||||
100
|
||||
]
|
||||
}
|
||||
],
|
||||
"profileType": "equipment_ap"
|
||||
},
|
||||
"createdTimestamp": 1606778369934,
|
||||
"lastModifiedTimestamp": 1606778443413,
|
||||
"createdTimestamp": 1612285248925,
|
||||
"lastModifiedTimestamp": 1612285628377,
|
||||
"childProfileIds": [
|
||||
16,
|
||||
5,
|
||||
10,
|
||||
11,
|
||||
15
|
||||
2,
|
||||
4
|
||||
]
|
||||
}
|
||||
@@ -1,29 +0,0 @@
|
||||
[
|
||||
{
|
||||
"model_type": "Profile",
|
||||
"id": 100,
|
||||
"customerId": 2,
|
||||
"profileType": "bonjour",
|
||||
"name": "Bonjour-gateway",
|
||||
"details": {
|
||||
"model_type": "BonjourGatewayProfile",
|
||||
"profileDescription": "Bonjour Gateway Configuration for Design Testing",
|
||||
"profileType": "bonjour",
|
||||
"bonjourServices": [
|
||||
{
|
||||
"model_type": "BonjourServiceSet",
|
||||
"vlanId": 1,
|
||||
"supportAllServices": false,
|
||||
"serviceNames": [
|
||||
"AirPort",
|
||||
"SFTP",
|
||||
"SSH"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"createdTimestamp": 1599234550774,
|
||||
"lastModifiedTimestamp": 1599234550774,
|
||||
"childProfileIds": []
|
||||
}
|
||||
]
|
||||
@@ -1,135 +1,58 @@
|
||||
[
|
||||
{
|
||||
{
|
||||
"model_type": "Profile",
|
||||
"id": 14,
|
||||
"id": 5,
|
||||
"customerId": 2,
|
||||
"profileType": "captive_portal",
|
||||
"name": "Captive-portal",
|
||||
"details": {
|
||||
"model_type": "CaptivePortalConfiguration",
|
||||
"name": "Captive-portal",
|
||||
"browserTitle": "Access the network as Guest",
|
||||
"headerContent": "Captive Portal",
|
||||
"userAcceptancePolicy": "Use this network at your own risk. No warranty of any kind.",
|
||||
"successPageMarkdownText": "Welcome to the network",
|
||||
"redirectURL": "",
|
||||
"externalCaptivePortalURL": null,
|
||||
"sessionTimeoutInMinutes": 60,
|
||||
"logoFile": null,
|
||||
"backgroundFile": null,
|
||||
"walledGardenAllowlist": [],
|
||||
"usernamePasswordFile": {
|
||||
"model_type": "ManagedFileInfo",
|
||||
"md5checksum": null,
|
||||
"lastModifiedTimestamp": null,
|
||||
"apExportUrl": "userList",
|
||||
"fileCategory": "UsernamePasswordList",
|
||||
"fileType": "TEXT",
|
||||
"altSlot": true
|
||||
},
|
||||
"authenticationType": "guest",
|
||||
"radiusAuthMethod": "CHAP",
|
||||
"maxUsersWithSameCredentials": 42,
|
||||
"externalPolicyFile": null,
|
||||
"backgroundPosition": "left_top",
|
||||
"backgroundRepeat": "no_repeat",
|
||||
"radiusServiceName": null,
|
||||
"expiryType": "unlimited",
|
||||
"userList": [
|
||||
{
|
||||
"model_type": "TimedAccessUserRecord",
|
||||
"username": "customer",
|
||||
"password": "testing123",
|
||||
"activationTime": 1602183994956,
|
||||
"expirationTime": 1602212794956,
|
||||
"numDevices": 1,
|
||||
"userDetails": {
|
||||
"model_type": "TimedAccessUserDetails",
|
||||
"firstName": "Pac",
|
||||
"lastName": "Man",
|
||||
"passwordNeedsReset": false
|
||||
},
|
||||
"userMacAddresses": [
|
||||
{
|
||||
"model_type": "MacAddress",
|
||||
"address": "fKtg5upO",
|
||||
"addressAsString": "7c:ab:60:e6:ea:4e"
|
||||
}
|
||||
],
|
||||
"lastModifiedTimestamp": 0
|
||||
},
|
||||
{
|
||||
"model_type": "TimedAccessUserRecord",
|
||||
"username": "customer",
|
||||
"password": "testing123",
|
||||
"activationTime": 1602183994957,
|
||||
"expirationTime": 1602187594957,
|
||||
"numDevices": 0,
|
||||
"userDetails": {
|
||||
"model_type": "TimedAccessUserDetails",
|
||||
"firstName": "Q",
|
||||
"lastName": "Bert",
|
||||
"passwordNeedsReset": false
|
||||
},
|
||||
"userMacAddresses": [
|
||||
{
|
||||
"model_type": "MacAddress",
|
||||
"address": "wJrQdqho",
|
||||
"addressAsString": "c0:9a:d0:76:a8:68"
|
||||
}
|
||||
],
|
||||
"lastModifiedTimestamp": 0
|
||||
},
|
||||
{
|
||||
"model_type": "TimedAccessUserRecord",
|
||||
"username": "customer2",
|
||||
"password": "testing1234",
|
||||
"activationTime": 1602183994957,
|
||||
"expirationTime": 1602788794957,
|
||||
"numDevices": 1,
|
||||
"userDetails": {
|
||||
"model_type": "TimedAccessUserDetails",
|
||||
"firstName": "Duke",
|
||||
"lastName": "Nukem",
|
||||
"passwordNeedsReset": false
|
||||
},
|
||||
"userMacAddresses": [
|
||||
{
|
||||
"model_type": "MacAddress",
|
||||
"address": "fKtg5upN",
|
||||
"addressAsString": "7c:ab:60:e6:ea:4d"
|
||||
}
|
||||
],
|
||||
"lastModifiedTimestamp": 0
|
||||
},
|
||||
{
|
||||
"model_type": "TimedAccessUserRecord",
|
||||
"username": "customer2",
|
||||
"password": "testing1234",
|
||||
"activationTime": 1602183994957,
|
||||
"expirationTime": 1602270394957,
|
||||
"numDevices": 0,
|
||||
"userDetails": {
|
||||
"model_type": "TimedAccessUserDetails",
|
||||
"firstName": "Missile",
|
||||
"lastName": "Commander",
|
||||
"passwordNeedsReset": false
|
||||
},
|
||||
"userMacAddresses": [
|
||||
{
|
||||
"model_type": "MacAddress",
|
||||
"address": "wJrQdqhj",
|
||||
"addressAsString": "c0:9a:d0:76:a8:63"
|
||||
}
|
||||
],
|
||||
"lastModifiedTimestamp": 0
|
||||
}
|
||||
],
|
||||
"macAllowList": [],
|
||||
"profileType": "captive_portal"
|
||||
"model_type": "CaptivePortalConfiguration",
|
||||
"name": "Default",
|
||||
"browserTitle": "Captive-portal",
|
||||
"headerContent": "Captive Portal",
|
||||
"userAcceptancePolicy": "Please agree to the following terms for using this network:",
|
||||
"successPageMarkdownText": "You are now authorized and connected to the network.",
|
||||
"redirectURL": "https://www.google.com",
|
||||
"externalCaptivePortalURL": null,
|
||||
"sessionTimeoutInMinutes": 10,
|
||||
"logoFile": {
|
||||
"model_type": "ManagedFileInfo",
|
||||
"md5checksum": null,
|
||||
"lastModifiedTimestamp": null,
|
||||
"apExportUrl": "/filestore/tip-logo-mobile",
|
||||
"fileCategory": "CaptivePortalLogo",
|
||||
"fileType": "PNG",
|
||||
"altSlot": false
|
||||
},
|
||||
"backgroundFile": {
|
||||
"model_type": "ManagedFileInfo",
|
||||
"md5checksum": null,
|
||||
"lastModifiedTimestamp": null,
|
||||
"apExportUrl": "/filestore/tip-logo",
|
||||
"fileCategory": "CaptivePortalBackground",
|
||||
"fileType": "PNG",
|
||||
"altSlot": false
|
||||
},
|
||||
"walledGardenAllowlist": [
|
||||
],
|
||||
"usernamePasswordFile": null,
|
||||
"authenticationType": "guest",
|
||||
"radiusAuthMethod": "CHAP",
|
||||
"maxUsersWithSameCredentials": 3,
|
||||
"externalPolicyFile": null,
|
||||
"backgroundPosition": "left_top",
|
||||
"backgroundRepeat": "no_repeat",
|
||||
"radiusServiceId": 0,
|
||||
"expiryType": "time_limited",
|
||||
"userList": [
|
||||
],
|
||||
"macAllowList": [
|
||||
],
|
||||
"profileType": "captive_portal"
|
||||
},
|
||||
"createdTimestamp": 1602183994959,
|
||||
"lastModifiedTimestamp": 1602183994959,
|
||||
"childProfileIds": []
|
||||
}
|
||||
"createdTimestamp": 1611857459118,
|
||||
"lastModifiedTimestamp": 1611857459118,
|
||||
"childProfileIds": [
|
||||
]
|
||||
}
|
||||
]
|
||||
@@ -1,71 +0,0 @@
|
||||
[
|
||||
{
|
||||
"model_type": "Profile",
|
||||
"id": 24,
|
||||
"customerId": 2,
|
||||
"profileType": "passpoint",
|
||||
"name": "TipWlan-Passpoint-Config",
|
||||
"details": {
|
||||
"model_type": "PasspointProfile",
|
||||
"enableInterworkingAndHs20": true,
|
||||
"hessid": null,
|
||||
"passpointAccessNetworkType": "free_public_network",
|
||||
"passpointNetworkAuthenticationType": "acceptance_of_terms_and_conditions",
|
||||
"additionalStepsRequiredForAccess": 0,
|
||||
"deauthRequestTimeout": 0,
|
||||
"operatingClass": 0,
|
||||
"termsAndConditionsFile": {
|
||||
"model_type": "ManagedFileInfo",
|
||||
"md5checksum": null,
|
||||
"lastModifiedTimestamp": null,
|
||||
"apExportUrl": "https://localhost:9091/filestore/termsAndConditions",
|
||||
"fileCategory": "ExternalPolicyConfiguration",
|
||||
"fileType": "TEXT",
|
||||
"altSlot": false
|
||||
},
|
||||
"whitelistDomain": null,
|
||||
"emergencyServicesReachable": true,
|
||||
"unauthenticatedEmergencyServiceAccessible": false,
|
||||
"internetConnectivity": true,
|
||||
"connectionCapabilitySet": [
|
||||
{
|
||||
"model_type": "PasspointConnectionCapability",
|
||||
"connectionCapabilitiesPortNumber": 8888,
|
||||
"connectionCapabilitiesStatus": "open",
|
||||
"connectionCapabilitiesIpProtocol": "TCP"
|
||||
}
|
||||
],
|
||||
"ipAddressTypeAvailability": "public_IPv4_address_available",
|
||||
"qosMapSetConfiguration": null,
|
||||
"apGeospatialLocation": null,
|
||||
"apCivicLocation": null,
|
||||
"apPublicLocationIdUri": null,
|
||||
"gasAddr3Behaviour": "p2pSpecWorkaroundFromRequest",
|
||||
"anqpDomainId": 1234,
|
||||
"disableDownstreamGroupAddressedForwarding": false,
|
||||
"enable2pt4GHz": true,
|
||||
"enable5GHz": true,
|
||||
"associatedAccessSsidProfileIds": [
|
||||
15
|
||||
],
|
||||
"osuSsidProfileId": 16,
|
||||
"passpointOperatorProfileId": 17,
|
||||
"passpointVenueProfileId": 18,
|
||||
"passpointOsuProviderProfileIds": [
|
||||
19,
|
||||
20
|
||||
],
|
||||
"accessNetworkType": "free_public_network",
|
||||
"networkAuthenticationType": "acceptance_of_terms_and_conditions",
|
||||
"profileType": "passpoint"
|
||||
},
|
||||
"createdTimestamp": 1606778370807,
|
||||
"lastModifiedTimestamp": 1606778370807,
|
||||
"childProfileIds": [
|
||||
17,
|
||||
18,
|
||||
19,
|
||||
20
|
||||
]
|
||||
}
|
||||
]
|
||||
@@ -1,270 +0,0 @@
|
||||
[
|
||||
{
|
||||
"model_type": "Profile",
|
||||
"id": 19,
|
||||
"customerId": 2,
|
||||
"profileType": "passpoint_osu_id_provider",
|
||||
"name": "TipWlan-Passpoint-OSU-Provider",
|
||||
"details": {
|
||||
"model_type": "PasspointOsuProviderProfile",
|
||||
"domainName": "rogers.com",
|
||||
"mccMncList": [
|
||||
{
|
||||
"model_type": "PasspointMccMnc",
|
||||
"mcc": 302,
|
||||
"mnc": 720,
|
||||
"iso": "ca",
|
||||
"country": "Canada",
|
||||
"countryCode": 1,
|
||||
"network": "Rogers AT&T Wireless",
|
||||
"mccMncPairing": "302,720"
|
||||
}
|
||||
],
|
||||
"naiRealmList": [
|
||||
{
|
||||
"model_type": "PasspointNaiRealmInformation",
|
||||
"naiRealms": [
|
||||
"rogers.com"
|
||||
],
|
||||
"encoding": 0,
|
||||
"eapMethods": [
|
||||
"EAP-TTLS with username/password",
|
||||
"EAP-TLS with certificate"
|
||||
],
|
||||
"eapMap": {
|
||||
"EAP-TTLS with username/password": [
|
||||
"Credential Type:username/password",
|
||||
"Non-EAP Inner Authentication Type:MSCHAPV2"
|
||||
],
|
||||
"EAP-TLS with certificate": [
|
||||
"Credential Type:Certificate"
|
||||
]
|
||||
}
|
||||
}
|
||||
],
|
||||
"osuIconList": [
|
||||
{
|
||||
"model_type": "PasspointOsuIcon",
|
||||
"iconWidth": 32,
|
||||
"iconHeight": 32,
|
||||
"languageCode": "eng",
|
||||
"iconLocale": "en_CA",
|
||||
"iconName": "icon32eng",
|
||||
"filePath": "/tmp/icon32eng.png",
|
||||
"imageUrl": "https://localhost:9096/icon32eng.png",
|
||||
"hs20IconString": "32:32:eng:image/png:icon32eng:/tmp/icon32eng.png"
|
||||
},
|
||||
{
|
||||
"model_type": "PasspointOsuIcon",
|
||||
"iconWidth": 32,
|
||||
"iconHeight": 32,
|
||||
"languageCode": "fra",
|
||||
"iconLocale": "fr_CA",
|
||||
"iconName": "icon32fra",
|
||||
"filePath": "/tmp/icon32fra.png",
|
||||
"imageUrl": "https://localhost:9096/icon32fra.png",
|
||||
"hs20IconString": "32:32:fra:image/png:icon32fra:/tmp/icon32fra.png"
|
||||
},
|
||||
{
|
||||
"model_type": "PasspointOsuIcon",
|
||||
"iconWidth": 32,
|
||||
"iconHeight": 32,
|
||||
"languageCode": "eng",
|
||||
"iconLocale": "en_US",
|
||||
"iconName": "icon32usa",
|
||||
"filePath": "/tmp/icon32usa.png",
|
||||
"imageUrl": "https://localhost:9096/icon32usa.png",
|
||||
"hs20IconString": "32:32:eng:image/png:icon32usa:/tmp/icon32usa.png"
|
||||
}
|
||||
],
|
||||
"osuServerUri": "https://example.com/osu/rogers",
|
||||
"osuFriendlyName": [
|
||||
{
|
||||
"model_type": "PasspointDuple",
|
||||
"locale": "en_CA",
|
||||
"dupleIso3Language": "eng",
|
||||
"dupleName": "Example provider rogers",
|
||||
"defaultDupleSeparator": ":",
|
||||
"asDuple": "eng:Example provider rogers"
|
||||
},
|
||||
{
|
||||
"model_type": "PasspointDuple",
|
||||
"locale": "fr_CA",
|
||||
"dupleIso3Language": "fra",
|
||||
"dupleName": "Exemple de fournisseur rogers",
|
||||
"defaultDupleSeparator": ":",
|
||||
"asDuple": "fra:Exemple de fournisseur rogers"
|
||||
}
|
||||
],
|
||||
"osuNaiStandalone": "anonymous@rogers.com",
|
||||
"osuNaiShared": "anonymous@rogers.com",
|
||||
"osuMethodList": [
|
||||
1,
|
||||
0
|
||||
],
|
||||
"osuServiceDescription": [
|
||||
{
|
||||
"model_type": "PasspointDuple",
|
||||
"locale": "en_CA",
|
||||
"dupleIso3Language": "eng",
|
||||
"dupleName": "Example services rogers",
|
||||
"defaultDupleSeparator": ":",
|
||||
"asDuple": "eng:Example services rogers"
|
||||
},
|
||||
{
|
||||
"model_type": "PasspointDuple",
|
||||
"locale": "fr_CA",
|
||||
"dupleIso3Language": "fra",
|
||||
"dupleName": "Exemples de services rogers",
|
||||
"defaultDupleSeparator": ":",
|
||||
"asDuple": "fra:Exemples de services rogers"
|
||||
}
|
||||
],
|
||||
"roamingOi": [
|
||||
1,
|
||||
2,
|
||||
3,
|
||||
4
|
||||
],
|
||||
"profileType": "passpoint_osu_id_provider"
|
||||
},
|
||||
"createdTimestamp": 1606778370345,
|
||||
"lastModifiedTimestamp": 1606778370345,
|
||||
"childProfileIds": [
|
||||
]
|
||||
},
|
||||
{
|
||||
"model_type": "Profile",
|
||||
"id": 20,
|
||||
"customerId": 2,
|
||||
"profileType": "passpoint_osu_id_provider",
|
||||
"name": "TipWlan-Passpoint-OSU-Provider-2",
|
||||
"details": {
|
||||
"model_type": "PasspointOsuProviderProfile",
|
||||
"domainName": "telus.com",
|
||||
"mccMncList": [
|
||||
{
|
||||
"model_type": "PasspointMccMnc",
|
||||
"mcc": 302,
|
||||
"mnc": 220,
|
||||
"iso": "ca",
|
||||
"country": "Canada",
|
||||
"countryCode": 1,
|
||||
"network": "Telus Mobility",
|
||||
"mccMncPairing": "302,220"
|
||||
}
|
||||
],
|
||||
"naiRealmList": [
|
||||
{
|
||||
"model_type": "PasspointNaiRealmInformation",
|
||||
"naiRealms": [
|
||||
"telus.com"
|
||||
],
|
||||
"encoding": 0,
|
||||
"eapMethods": [
|
||||
"EAP-TTLS with username/password",
|
||||
"EAP-TLS with certificate"
|
||||
],
|
||||
"eapMap": {
|
||||
"EAP-TTLS with username/password": [
|
||||
"Credential Type:username/password",
|
||||
"Non-EAP Inner Authentication Type:MSCHAPV2"
|
||||
],
|
||||
"EAP-TLS with certificate": [
|
||||
"Credential Type:Certificate"
|
||||
]
|
||||
}
|
||||
}
|
||||
],
|
||||
"osuIconList": [
|
||||
{
|
||||
"model_type": "PasspointOsuIcon",
|
||||
"iconWidth": 32,
|
||||
"iconHeight": 32,
|
||||
"languageCode": "eng",
|
||||
"iconLocale": "en_CA",
|
||||
"iconName": "icon32eng",
|
||||
"filePath": "/tmp/icon32eng.png",
|
||||
"imageUrl": "https://localhost:9096/icon32eng.png",
|
||||
"hs20IconString": "32:32:eng:image/png:icon32eng:/tmp/icon32eng.png"
|
||||
},
|
||||
{
|
||||
"model_type": "PasspointOsuIcon",
|
||||
"iconWidth": 32,
|
||||
"iconHeight": 32,
|
||||
"languageCode": "fra",
|
||||
"iconLocale": "fr_CA",
|
||||
"iconName": "icon32fra",
|
||||
"filePath": "/tmp/icon32fra.png",
|
||||
"imageUrl": "https://localhost:9096/icon32fra.png",
|
||||
"hs20IconString": "32:32:fra:image/png:icon32fra:/tmp/icon32fra.png"
|
||||
},
|
||||
{
|
||||
"model_type": "PasspointOsuIcon",
|
||||
"iconWidth": 32,
|
||||
"iconHeight": 32,
|
||||
"languageCode": "eng",
|
||||
"iconLocale": "en_US",
|
||||
"iconName": "icon32usa",
|
||||
"filePath": "/tmp/icon32usa.png",
|
||||
"imageUrl": "https://localhost:9096/icon32usa.png",
|
||||
"hs20IconString": "32:32:eng:image/png:icon32usa:/tmp/icon32usa.png"
|
||||
}
|
||||
],
|
||||
"osuServerUri": "https://example.com/osu/telus",
|
||||
"osuFriendlyName": [
|
||||
{
|
||||
"model_type": "PasspointDuple",
|
||||
"locale": "en_CA",
|
||||
"dupleIso3Language": "eng",
|
||||
"dupleName": "Example provider telus",
|
||||
"defaultDupleSeparator": ":",
|
||||
"asDuple": "eng:Example provider telus"
|
||||
},
|
||||
{
|
||||
"model_type": "PasspointDuple",
|
||||
"locale": "fr_CA",
|
||||
"dupleIso3Language": "fra",
|
||||
"dupleName": "Exemple de fournisseur telus",
|
||||
"defaultDupleSeparator": ":",
|
||||
"asDuple": "fra:Exemple de fournisseur telus"
|
||||
}
|
||||
],
|
||||
"osuNaiStandalone": "anonymous@telus.com",
|
||||
"osuNaiShared": "anonymous@telus.com",
|
||||
"osuMethodList": [
|
||||
1,
|
||||
0
|
||||
],
|
||||
"osuServiceDescription": [
|
||||
{
|
||||
"model_type": "PasspointDuple",
|
||||
"locale": "en_CA",
|
||||
"dupleIso3Language": "eng",
|
||||
"dupleName": "Example services telus",
|
||||
"defaultDupleSeparator": ":",
|
||||
"asDuple": "eng:Example services telus"
|
||||
},
|
||||
{
|
||||
"model_type": "PasspointDuple",
|
||||
"locale": "fr_CA",
|
||||
"dupleIso3Language": "fra",
|
||||
"dupleName": "Exemples de services telus",
|
||||
"defaultDupleSeparator": ":",
|
||||
"asDuple": "fra:Exemples de services telus"
|
||||
}
|
||||
],
|
||||
"roamingOi": [
|
||||
1,
|
||||
2,
|
||||
3,
|
||||
4
|
||||
],
|
||||
"profileType": "passpoint_osu_id_provider"
|
||||
},
|
||||
"createdTimestamp": 1606778370351,
|
||||
"lastModifiedTimestamp": 1606778370351,
|
||||
"childProfileIds": [
|
||||
]
|
||||
}
|
||||
]
|
||||
@@ -1,299 +0,0 @@
|
||||
[
|
||||
{
|
||||
"model_type": "Profile",
|
||||
"id": 10,
|
||||
"customerId": 2,
|
||||
"profileType": "service_metrics_collection_config",
|
||||
"name": "Metrics-Profile-3-Radios",
|
||||
"details": {
|
||||
"model_type": "ServiceMetricsCollectionConfigProfile",
|
||||
"radioTypes": [
|
||||
"is5GHzL",
|
||||
"is2dot4GHz",
|
||||
"is5GHzU"
|
||||
],
|
||||
"serviceMetricDataTypes": [
|
||||
"ApNode",
|
||||
"ApSsid",
|
||||
"Client",
|
||||
"Channel",
|
||||
"Neighbour"
|
||||
],
|
||||
"metricConfigParameterMap": {
|
||||
"ApNode": [
|
||||
{
|
||||
"model_type": "ServiceMetricSurveyConfigParameters",
|
||||
"samplingInterval": 30,
|
||||
"reportingIntervalSeconds": 120,
|
||||
"channelSurveyType": "OFF_CHANNEL",
|
||||
"scanIntervalMillis": 0,
|
||||
"percentUtilizationThreshold": 10,
|
||||
"delayMillisecondsThreshold": 600,
|
||||
"radioType": "is5GHzL",
|
||||
"serviceMetricDataType": "ApNode",
|
||||
"statsReportFormat": "RAW"
|
||||
},
|
||||
{
|
||||
"model_type": "ServiceMetricSurveyConfigParameters",
|
||||
"samplingInterval": 30,
|
||||
"reportingIntervalSeconds": 120,
|
||||
"channelSurveyType": "OFF_CHANNEL",
|
||||
"scanIntervalMillis": 0,
|
||||
"percentUtilizationThreshold": 10,
|
||||
"delayMillisecondsThreshold": 600,
|
||||
"radioType": "is5GHzU",
|
||||
"serviceMetricDataType": "ApNode",
|
||||
"statsReportFormat": "RAW"
|
||||
},
|
||||
{
|
||||
"model_type": "ServiceMetricSurveyConfigParameters",
|
||||
"samplingInterval": 30,
|
||||
"reportingIntervalSeconds": 120,
|
||||
"channelSurveyType": "OFF_CHANNEL",
|
||||
"scanIntervalMillis": 0,
|
||||
"percentUtilizationThreshold": 10,
|
||||
"delayMillisecondsThreshold": 600,
|
||||
"radioType": "is2dot4GHz",
|
||||
"serviceMetricDataType": "ApNode",
|
||||
"statsReportFormat": "RAW"
|
||||
},
|
||||
{
|
||||
"model_type": "ServiceMetricSurveyConfigParameters",
|
||||
"samplingInterval": 30,
|
||||
"reportingIntervalSeconds": 60,
|
||||
"channelSurveyType": "ON_CHANNEL",
|
||||
"scanIntervalMillis": 0,
|
||||
"percentUtilizationThreshold": 10,
|
||||
"delayMillisecondsThreshold": 600,
|
||||
"radioType": "is5GHzU",
|
||||
"serviceMetricDataType": "ApNode",
|
||||
"statsReportFormat": "RAW"
|
||||
},
|
||||
{
|
||||
"model_type": "ServiceMetricSurveyConfigParameters",
|
||||
"samplingInterval": 30,
|
||||
"reportingIntervalSeconds": 60,
|
||||
"channelSurveyType": "ON_CHANNEL",
|
||||
"scanIntervalMillis": 0,
|
||||
"percentUtilizationThreshold": 10,
|
||||
"delayMillisecondsThreshold": 600,
|
||||
"radioType": "is2dot4GHz",
|
||||
"serviceMetricDataType": "ApNode",
|
||||
"statsReportFormat": "RAW"
|
||||
},
|
||||
{
|
||||
"model_type": "ServiceMetricSurveyConfigParameters",
|
||||
"samplingInterval": 30,
|
||||
"reportingIntervalSeconds": 60,
|
||||
"channelSurveyType": "ON_CHANNEL",
|
||||
"scanIntervalMillis": 0,
|
||||
"percentUtilizationThreshold": 10,
|
||||
"delayMillisecondsThreshold": 600,
|
||||
"radioType": "is5GHzL",
|
||||
"serviceMetricDataType": "ApNode",
|
||||
"statsReportFormat": "RAW"
|
||||
}
|
||||
],
|
||||
"ApSsid": [
|
||||
{
|
||||
"model_type": "ServiceMetricRadioConfigParameters",
|
||||
"samplingInterval": 30,
|
||||
"reportingIntervalSeconds": 60,
|
||||
"radioType": "is5GHzU",
|
||||
"serviceMetricDataType": "ApSsid"
|
||||
},
|
||||
{
|
||||
"model_type": "ServiceMetricRadioConfigParameters",
|
||||
"samplingInterval": 30,
|
||||
"reportingIntervalSeconds": 60,
|
||||
"radioType": "is5GHzL",
|
||||
"serviceMetricDataType": "ApSsid"
|
||||
},
|
||||
{
|
||||
"model_type": "ServiceMetricRadioConfigParameters",
|
||||
"samplingInterval": 30,
|
||||
"reportingIntervalSeconds": 60,
|
||||
"radioType": "is2dot4GHz",
|
||||
"serviceMetricDataType": "ApSsid"
|
||||
}
|
||||
],
|
||||
"Client": [
|
||||
{
|
||||
"model_type": "ServiceMetricRadioConfigParameters",
|
||||
"samplingInterval": 30,
|
||||
"reportingIntervalSeconds": 60,
|
||||
"radioType": "is5GHzU",
|
||||
"serviceMetricDataType": "Client"
|
||||
},
|
||||
{
|
||||
"model_type": "ServiceMetricRadioConfigParameters",
|
||||
"samplingInterval": 30,
|
||||
"reportingIntervalSeconds": 60,
|
||||
"radioType": "is5GHzL",
|
||||
"serviceMetricDataType": "Client"
|
||||
},
|
||||
{
|
||||
"model_type": "ServiceMetricRadioConfigParameters",
|
||||
"samplingInterval": 30,
|
||||
"reportingIntervalSeconds": 60,
|
||||
"radioType": "is2dot4GHz",
|
||||
"serviceMetricDataType": "Client"
|
||||
}
|
||||
],
|
||||
"Channel": [
|
||||
{
|
||||
"model_type": "ServiceMetricSurveyConfigParameters",
|
||||
"samplingInterval": 30,
|
||||
"reportingIntervalSeconds": 120,
|
||||
"channelSurveyType": "OFF_CHANNEL",
|
||||
"scanIntervalMillis": 0,
|
||||
"percentUtilizationThreshold": 10,
|
||||
"delayMillisecondsThreshold": 600,
|
||||
"radioType": "is5GHzL",
|
||||
"serviceMetricDataType": "Channel",
|
||||
"statsReportFormat": "RAW"
|
||||
},
|
||||
{
|
||||
"model_type": "ServiceMetricSurveyConfigParameters",
|
||||
"samplingInterval": 30,
|
||||
"reportingIntervalSeconds": 120,
|
||||
"channelSurveyType": "OFF_CHANNEL",
|
||||
"scanIntervalMillis": 0,
|
||||
"percentUtilizationThreshold": 10,
|
||||
"delayMillisecondsThreshold": 600,
|
||||
"radioType": "is5GHzU",
|
||||
"serviceMetricDataType": "Channel",
|
||||
"statsReportFormat": "RAW"
|
||||
},
|
||||
{
|
||||
"model_type": "ServiceMetricSurveyConfigParameters",
|
||||
"samplingInterval": 30,
|
||||
"reportingIntervalSeconds": 120,
|
||||
"channelSurveyType": "OFF_CHANNEL",
|
||||
"scanIntervalMillis": 0,
|
||||
"percentUtilizationThreshold": 10,
|
||||
"delayMillisecondsThreshold": 600,
|
||||
"radioType": "is2dot4GHz",
|
||||
"serviceMetricDataType": "Channel",
|
||||
"statsReportFormat": "RAW"
|
||||
},
|
||||
{
|
||||
"model_type": "ServiceMetricSurveyConfigParameters",
|
||||
"samplingInterval": 30,
|
||||
"reportingIntervalSeconds": 60,
|
||||
"channelSurveyType": "ON_CHANNEL",
|
||||
"scanIntervalMillis": 0,
|
||||
"percentUtilizationThreshold": 10,
|
||||
"delayMillisecondsThreshold": 600,
|
||||
"radioType": "is5GHzU",
|
||||
"serviceMetricDataType": "Channel",
|
||||
"statsReportFormat": "RAW"
|
||||
},
|
||||
{
|
||||
"model_type": "ServiceMetricSurveyConfigParameters",
|
||||
"samplingInterval": 30,
|
||||
"reportingIntervalSeconds": 60,
|
||||
"channelSurveyType": "ON_CHANNEL",
|
||||
"scanIntervalMillis": 0,
|
||||
"percentUtilizationThreshold": 10,
|
||||
"delayMillisecondsThreshold": 600,
|
||||
"radioType": "is2dot4GHz",
|
||||
"serviceMetricDataType": "Channel",
|
||||
"statsReportFormat": "RAW"
|
||||
},
|
||||
{
|
||||
"model_type": "ServiceMetricSurveyConfigParameters",
|
||||
"samplingInterval": 30,
|
||||
"reportingIntervalSeconds": 60,
|
||||
"channelSurveyType": "ON_CHANNEL",
|
||||
"scanIntervalMillis": 0,
|
||||
"percentUtilizationThreshold": 10,
|
||||
"delayMillisecondsThreshold": 600,
|
||||
"radioType": "is5GHzL",
|
||||
"serviceMetricDataType": "Channel",
|
||||
"statsReportFormat": "RAW"
|
||||
}
|
||||
],
|
||||
"Neighbour": [
|
||||
{
|
||||
"model_type": "ServiceMetricSurveyConfigParameters",
|
||||
"samplingInterval": 30,
|
||||
"reportingIntervalSeconds": 120,
|
||||
"channelSurveyType": "OFF_CHANNEL",
|
||||
"scanIntervalMillis": 0,
|
||||
"percentUtilizationThreshold": 10,
|
||||
"delayMillisecondsThreshold": 600,
|
||||
"radioType": "is5GHzU",
|
||||
"serviceMetricDataType": "Neighbour",
|
||||
"statsReportFormat": "RAW"
|
||||
},
|
||||
{
|
||||
"model_type": "ServiceMetricSurveyConfigParameters",
|
||||
"samplingInterval": 30,
|
||||
"reportingIntervalSeconds": 60,
|
||||
"channelSurveyType": "ON_CHANNEL",
|
||||
"scanIntervalMillis": 0,
|
||||
"percentUtilizationThreshold": 10,
|
||||
"delayMillisecondsThreshold": 600,
|
||||
"radioType": "is5GHzL",
|
||||
"serviceMetricDataType": "Neighbour",
|
||||
"statsReportFormat": "RAW"
|
||||
},
|
||||
{
|
||||
"model_type": "ServiceMetricSurveyConfigParameters",
|
||||
"samplingInterval": 30,
|
||||
"reportingIntervalSeconds": 120,
|
||||
"channelSurveyType": "OFF_CHANNEL",
|
||||
"scanIntervalMillis": 0,
|
||||
"percentUtilizationThreshold": 10,
|
||||
"delayMillisecondsThreshold": 600,
|
||||
"radioType": "is2dot4GHz",
|
||||
"serviceMetricDataType": "Neighbour",
|
||||
"statsReportFormat": "RAW"
|
||||
},
|
||||
{
|
||||
"model_type": "ServiceMetricSurveyConfigParameters",
|
||||
"samplingInterval": 30,
|
||||
"reportingIntervalSeconds": 60,
|
||||
"channelSurveyType": "ON_CHANNEL",
|
||||
"scanIntervalMillis": 0,
|
||||
"percentUtilizationThreshold": 10,
|
||||
"delayMillisecondsThreshold": 600,
|
||||
"radioType": "is5GHzU",
|
||||
"serviceMetricDataType": "Neighbour",
|
||||
"statsReportFormat": "RAW"
|
||||
},
|
||||
{
|
||||
"model_type": "ServiceMetricSurveyConfigParameters",
|
||||
"samplingInterval": 30,
|
||||
"reportingIntervalSeconds": 120,
|
||||
"channelSurveyType": "OFF_CHANNEL",
|
||||
"scanIntervalMillis": 0,
|
||||
"percentUtilizationThreshold": 10,
|
||||
"delayMillisecondsThreshold": 600,
|
||||
"radioType": "is5GHzL",
|
||||
"serviceMetricDataType": "Neighbour",
|
||||
"statsReportFormat": "RAW"
|
||||
},
|
||||
{
|
||||
"model_type": "ServiceMetricSurveyConfigParameters",
|
||||
"samplingInterval": 30,
|
||||
"reportingIntervalSeconds": 60,
|
||||
"channelSurveyType": "ON_CHANNEL",
|
||||
"scanIntervalMillis": 0,
|
||||
"percentUtilizationThreshold": 10,
|
||||
"delayMillisecondsThreshold": 600,
|
||||
"radioType": "is2dot4GHz",
|
||||
"serviceMetricDataType": "Neighbour",
|
||||
"statsReportFormat": "RAW"
|
||||
}
|
||||
]
|
||||
},
|
||||
"profileType": "service_metrics_collection_config"
|
||||
},
|
||||
"createdTimestamp": 1606778369931,
|
||||
"lastModifiedTimestamp": 1606778369931,
|
||||
"childProfileIds": [
|
||||
]
|
||||
}
|
||||
]
|
||||
@@ -1,37 +0,0 @@
|
||||
[
|
||||
{
|
||||
"model_type": "Profile",
|
||||
"id": 17,
|
||||
"customerId": 2,
|
||||
"profileType": "passpoint_operator",
|
||||
"name": "TipWlan-Passpoint-Operator",
|
||||
"details": {
|
||||
"model_type": "PasspointOperatorProfile",
|
||||
"serverOnlyAuthenticatedL2EncryptionNetwork": false,
|
||||
"x509CertificateLocation": "/etc/ca.pem",
|
||||
"operatorFriendlyName": [
|
||||
{
|
||||
"model_type": "PasspointDuple",
|
||||
"locale": "en_CA",
|
||||
"dupleIso3Language": "eng",
|
||||
"dupleName": "Default friendly passpoint_operator name",
|
||||
"defaultDupleSeparator": ":",
|
||||
"asDuple": "eng:Default friendly passpoint_operator name"
|
||||
},
|
||||
{
|
||||
"model_type": "PasspointDuple",
|
||||
"locale": "fr_CA",
|
||||
"dupleIso3Language": "fra",
|
||||
"dupleName": "Nom de l'opérateur convivial par défaut",
|
||||
"defaultDupleSeparator": ":",
|
||||
"asDuple": "fra:Nom de l'opérateur convivial par défaut"
|
||||
}
|
||||
],
|
||||
"profileType": "passpoint_operator"
|
||||
},
|
||||
"createdTimestamp": 1606778369945,
|
||||
"lastModifiedTimestamp": 1606778369945,
|
||||
"childProfileIds": [
|
||||
]
|
||||
}
|
||||
]
|
||||
@@ -1,34 +0,0 @@
|
||||
[
|
||||
{
|
||||
"model_type": "Profile",
|
||||
"id": 1,
|
||||
"customerId": 2,
|
||||
"profileType": "radius",
|
||||
"name": "Radius-Profile",
|
||||
"details": {
|
||||
"model_type": "RadiusProfile",
|
||||
"subnetConfiguration": null,
|
||||
"serviceRegionMap": {
|
||||
"Ottawa": {
|
||||
"model_type": "RadiusServiceRegion",
|
||||
"serverMap": {
|
||||
"Radius-Profile": [
|
||||
{
|
||||
"model_type": "RadiusServer",
|
||||
"ipAddress": "192.168.0.1",
|
||||
"secret": "testing123",
|
||||
"authPort": 1812,
|
||||
"timeout": null
|
||||
}
|
||||
]
|
||||
},
|
||||
"regionName": "Ottawa"
|
||||
}
|
||||
},
|
||||
"profileType": "radius"
|
||||
},
|
||||
"createdTimestamp": 1601961451668,
|
||||
"lastModifiedTimestamp": 1601961451668,
|
||||
"childProfileIds": []
|
||||
}
|
||||
]
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"model_type": "Profile",
|
||||
"id": 11,
|
||||
"id": 4,
|
||||
"customerId": 2,
|
||||
"profileType": "rf",
|
||||
"name": "TipWlan-rf",
|
||||
@@ -198,7 +198,7 @@
|
||||
},
|
||||
"profileType": "rf"
|
||||
},
|
||||
"createdTimestamp": 1606778369933,
|
||||
"lastModifiedTimestamp": 1606778369933,
|
||||
"createdTimestamp": 1612285248650,
|
||||
"lastModifiedTimestamp": 1612285248650,
|
||||
"childProfileIds": []
|
||||
}
|
||||
@@ -1,203 +1,75 @@
|
||||
[
|
||||
{
|
||||
"model_type": "Profile",
|
||||
"id": 5,
|
||||
"customerId": 2,
|
||||
"profileType": "ssid",
|
||||
"name": "TipWlan-cloud-3-radios",
|
||||
"details": {
|
||||
"model_type": "SsidConfiguration",
|
||||
"ssid": "TipWlan-cloud-3-radios",
|
||||
"appliedRadios": [
|
||||
"is5GHzL",
|
||||
"is2dot4GHz",
|
||||
"is5GHzU"
|
||||
],
|
||||
"ssidAdminState": "enabled",
|
||||
"secureMode": "wpa2OnlyPSK",
|
||||
"vlanId": 1,
|
||||
"keyStr": "openwifi",
|
||||
"broadcastSsid": "enabled",
|
||||
"keyRefresh": 0,
|
||||
"noLocalSubnets": false,
|
||||
"radiusServiceName": null,
|
||||
"radiusAccountingServiceName": null,
|
||||
"radiusAcountingServiceInterval": null,
|
||||
"captivePortalId": null,
|
||||
"bandwidthLimitDown": 0,
|
||||
"bandwidthLimitUp": 0,
|
||||
"clientBandwidthLimitDown": 0,
|
||||
"clientBandwidthLimitUp": 0,
|
||||
"videoTrafficOnly": false,
|
||||
"radioBasedConfigs": {
|
||||
"is5GHzL": {
|
||||
"model_type": "RadioBasedSsidConfiguration",
|
||||
"enable80211r": null,
|
||||
"enable80211k": null,
|
||||
"enable80211v": null
|
||||
},
|
||||
"is2dot4GHz": {
|
||||
"model_type": "RadioBasedSsidConfiguration",
|
||||
"enable80211r": null,
|
||||
"enable80211k": null,
|
||||
"enable80211v": null
|
||||
},
|
||||
"is5GHz": {
|
||||
"model_type": "RadioBasedSsidConfiguration",
|
||||
"enable80211r": null,
|
||||
"enable80211k": null,
|
||||
"enable80211v": null
|
||||
},
|
||||
"is5GHzU": {
|
||||
"model_type": "RadioBasedSsidConfiguration",
|
||||
"enable80211r": null,
|
||||
"enable80211k": null,
|
||||
"enable80211v": null
|
||||
}
|
||||
},
|
||||
"bonjourGatewayProfileId": null,
|
||||
"enable80211w": null,
|
||||
"wepConfig": null,
|
||||
"forwardMode": "BRIDGE",
|
||||
"profileType": "ssid"
|
||||
},
|
||||
"createdTimestamp": 1606778369598,
|
||||
"lastModifiedTimestamp": 1606778369598,
|
||||
"childProfileIds": [
|
||||
]
|
||||
},
|
||||
{
|
||||
"model_type": "Profile",
|
||||
"id": 15,
|
||||
"customerId": 2,
|
||||
"profileType": "ssid",
|
||||
"name": "TipWlan-cloud-passpoint-access",
|
||||
"details": {
|
||||
"model_type": "SsidConfiguration",
|
||||
"ssid": "TipWlan-cloud-passpoint-access",
|
||||
"appliedRadios": [
|
||||
"is5GHzL",
|
||||
"is5GHzU"
|
||||
],
|
||||
"ssidAdminState": "enabled",
|
||||
"secureMode": "wpa2PSK",
|
||||
"vlanId": 1,
|
||||
"keyStr": "testing123",
|
||||
"broadcastSsid": "enabled",
|
||||
"keyRefresh": 0,
|
||||
"noLocalSubnets": false,
|
||||
"radiusServiceName": null,
|
||||
"radiusAccountingServiceName": null,
|
||||
"radiusAcountingServiceInterval": null,
|
||||
"captivePortalId": null,
|
||||
"bandwidthLimitDown": 0,
|
||||
"bandwidthLimitUp": 0,
|
||||
"clientBandwidthLimitDown": 0,
|
||||
"clientBandwidthLimitUp": 0,
|
||||
"videoTrafficOnly": false,
|
||||
"radioBasedConfigs": {
|
||||
"is5GHzL": {
|
||||
"model_type": "RadioBasedSsidConfiguration",
|
||||
"enable80211r": null,
|
||||
"enable80211k": null,
|
||||
"enable80211v": null
|
||||
},
|
||||
"is2dot4GHz": {
|
||||
"model_type": "RadioBasedSsidConfiguration",
|
||||
"enable80211r": null,
|
||||
"enable80211k": null,
|
||||
"enable80211v": null
|
||||
},
|
||||
"is5GHz": {
|
||||
"model_type": "RadioBasedSsidConfiguration",
|
||||
"enable80211r": null,
|
||||
"enable80211k": null,
|
||||
"enable80211v": null
|
||||
},
|
||||
"is5GHzU": {
|
||||
"model_type": "RadioBasedSsidConfiguration",
|
||||
"enable80211r": null,
|
||||
"enable80211k": null,
|
||||
"enable80211v": null
|
||||
}
|
||||
},
|
||||
"bonjourGatewayProfileId": null,
|
||||
"enable80211w": null,
|
||||
"wepConfig": null,
|
||||
"forwardMode": null,
|
||||
"profileType": "ssid"
|
||||
},
|
||||
"createdTimestamp": 1606778369943,
|
||||
"lastModifiedTimestamp": 1606778370811,
|
||||
"childProfileIds": [
|
||||
24
|
||||
]
|
||||
},
|
||||
{
|
||||
"model_type": "Profile",
|
||||
"id": 16,
|
||||
"customerId": 2,
|
||||
"profileType": "ssid",
|
||||
"name": "TipWlan-cloud-passpoint-osu",
|
||||
"details": {
|
||||
"model_type": "SsidConfiguration",
|
||||
"ssid": "TipWlan-cloud-passpoint-osu",
|
||||
"appliedRadios": [
|
||||
"is2dot4GHz"
|
||||
],
|
||||
"ssidAdminState": "enabled",
|
||||
"secureMode": "open",
|
||||
"vlanId": 1,
|
||||
"keyStr": null,
|
||||
"broadcastSsid": "enabled",
|
||||
"keyRefresh": 0,
|
||||
"noLocalSubnets": false,
|
||||
"radiusServiceName": null,
|
||||
"radiusAccountingServiceName": null,
|
||||
"radiusAcountingServiceInterval": null,
|
||||
"captivePortalId": null,
|
||||
"bandwidthLimitDown": 0,
|
||||
"bandwidthLimitUp": 0,
|
||||
"clientBandwidthLimitDown": 0,
|
||||
"clientBandwidthLimitUp": 0,
|
||||
"videoTrafficOnly": false,
|
||||
"radioBasedConfigs": {
|
||||
"is5GHzL": {
|
||||
"model_type": "RadioBasedSsidConfiguration",
|
||||
"enable80211r": null,
|
||||
"enable80211k": null,
|
||||
"enable80211v": null
|
||||
},
|
||||
"is2dot4GHz": {
|
||||
"model_type": "RadioBasedSsidConfiguration",
|
||||
"enable80211r": null,
|
||||
"enable80211k": null,
|
||||
"enable80211v": null
|
||||
},
|
||||
"is5GHz": {
|
||||
"model_type": "RadioBasedSsidConfiguration",
|
||||
"enable80211r": null,
|
||||
"enable80211k": null,
|
||||
"enable80211v": null
|
||||
},
|
||||
"is5GHzU": {
|
||||
"model_type": "RadioBasedSsidConfiguration",
|
||||
"enable80211r": null,
|
||||
"enable80211k": null,
|
||||
"enable80211v": null
|
||||
}
|
||||
},
|
||||
"bonjourGatewayProfileId": null,
|
||||
"enable80211w": null,
|
||||
"wepConfig": null,
|
||||
"forwardMode": null,
|
||||
"profileType": "ssid"
|
||||
},
|
||||
"createdTimestamp": 1606778369944,
|
||||
"lastModifiedTimestamp": 1606778370352,
|
||||
"childProfileIds": [
|
||||
19,
|
||||
20
|
||||
]
|
||||
}
|
||||
{
|
||||
"model_type": "Profile",
|
||||
"id": 2,
|
||||
"customerId": 2,
|
||||
"profileType": "ssid",
|
||||
"name": "TipWlan-cloud-3-radios",
|
||||
"details": {
|
||||
"model_type": "SsidConfiguration",
|
||||
"ssid": "TipWlan-cloud-3-radios",
|
||||
"appliedRadios": [
|
||||
"is5GHzU",
|
||||
"is2dot4GHz",
|
||||
"is5GHzL"
|
||||
],
|
||||
"ssidAdminState": "enabled",
|
||||
"secureMode": "wpa2OnlyPSK",
|
||||
"vlanId": 1,
|
||||
"keyStr": "openwifi",
|
||||
"broadcastSsid": "enabled",
|
||||
"keyRefresh": 0,
|
||||
"noLocalSubnets": false,
|
||||
"radiusServiceId": 0,
|
||||
"radiusAcountingServiceInterval": 60,
|
||||
"captivePortalId": null,
|
||||
"bandwidthLimitDown": 0,
|
||||
"bandwidthLimitUp": 0,
|
||||
"clientBandwidthLimitDown": 0,
|
||||
"clientBandwidthLimitUp": 0,
|
||||
"videoTrafficOnly": false,
|
||||
"radioBasedConfigs": {
|
||||
"is5GHzU": {
|
||||
"model_type": "RadioBasedSsidConfiguration",
|
||||
"enable80211r": null,
|
||||
"enable80211k": null,
|
||||
"enable80211v": null
|
||||
},
|
||||
"is2dot4GHz": {
|
||||
"model_type": "RadioBasedSsidConfiguration",
|
||||
"enable80211r": null,
|
||||
"enable80211k": null,
|
||||
"enable80211v": null
|
||||
},
|
||||
"is5GHz": {
|
||||
"model_type": "RadioBasedSsidConfiguration",
|
||||
"enable80211r": null,
|
||||
"enable80211k": null,
|
||||
"enable80211v": null
|
||||
},
|
||||
"is5GHzL": {
|
||||
"model_type": "RadioBasedSsidConfiguration",
|
||||
"enable80211r": null,
|
||||
"enable80211k": null,
|
||||
"enable80211v": null
|
||||
}
|
||||
},
|
||||
"bonjourGatewayProfileId": null,
|
||||
"enable80211w": null,
|
||||
"wepConfig": null,
|
||||
"forwardMode": "BRIDGE",
|
||||
"profileType": "ssid",
|
||||
"radiusClientConfiguration": {
|
||||
"model_type": "RadiusNasConfiguration",
|
||||
"nasClientId": "DEFAULT",
|
||||
"nasClientIp": "WAN_IP",
|
||||
"userDefinedNasId": null,
|
||||
"userDefinedNasIp": null,
|
||||
"operatorId": null
|
||||
}
|
||||
},
|
||||
"createdTimestamp": 1612285248638,
|
||||
"lastModifiedTimestamp": 1612285248638,
|
||||
"childProfileIds": []
|
||||
}
|
||||
]
|
||||
|
||||
@@ -1,43 +0,0 @@
|
||||
[
|
||||
{
|
||||
"model_type": "Profile",
|
||||
"id": 18,
|
||||
"customerId": 2,
|
||||
"profileType": "passpoint_venue",
|
||||
"name": "TipWlan-Passpoint-Venue",
|
||||
"details": {
|
||||
"model_type": "PasspointVenueProfile",
|
||||
"venueNameSet": [
|
||||
{
|
||||
"model_type": "PasspointVenueName",
|
||||
"locale": "fr_CA",
|
||||
"dupleIso3Language": "fra",
|
||||
"dupleName": "Exemple de lieu",
|
||||
"defaultDupleSeparator": ":",
|
||||
"venueUrl": "http://www.example.com/info-fra",
|
||||
"asDuple": "fra:Exemple de lieu"
|
||||
},
|
||||
{
|
||||
"model_type": "PasspointVenueName",
|
||||
"locale": "en_CA",
|
||||
"dupleIso3Language": "eng",
|
||||
"dupleName": "Example passpoint_venue",
|
||||
"defaultDupleSeparator": ":",
|
||||
"venueUrl": "http://www.example.com/info-eng",
|
||||
"asDuple": "eng:Example passpoint_venue"
|
||||
}
|
||||
],
|
||||
"venueTypeAssignment": {
|
||||
"model_type": "PasspointVenueTypeAssignment",
|
||||
"venueDescription": "Research and Development Facility",
|
||||
"venueGroupId": 2,
|
||||
"venueTypeId": 8
|
||||
},
|
||||
"profileType": "passpoint_venue"
|
||||
},
|
||||
"createdTimestamp": 1606778369950,
|
||||
"lastModifiedTimestamp": 1606778369950,
|
||||
"childProfileIds": [
|
||||
]
|
||||
}
|
||||
]
|
||||
@@ -3,7 +3,7 @@
|
||||
<parent>
|
||||
<groupId>com.telecominfraproject.wlan</groupId>
|
||||
<artifactId>tip-wlan-cloud-root-pom</artifactId>
|
||||
<version>0.0.1-SNAPSHOT</version>
|
||||
<version>1.3.0-SNAPSHOT</version>
|
||||
<relativePath>../../wlan-cloud-root</relativePath>
|
||||
</parent>
|
||||
<artifactId>opensync-gateway-build</artifactId>
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
<parent>
|
||||
<groupId>com.telecominfraproject.wlan</groupId>
|
||||
<artifactId>tip-wlan-cloud-root-pom</artifactId>
|
||||
<version>0.0.1-SNAPSHOT</version>
|
||||
<version>1.3.0-SNAPSHOT</version>
|
||||
<relativePath>../../wlan-cloud-root</relativePath>
|
||||
</parent>
|
||||
<artifactId>opensync-gateway-cloud-docker</artifactId>
|
||||
@@ -22,7 +22,7 @@
|
||||
<dependency>
|
||||
<groupId>com.telecominfraproject.wlan</groupId>
|
||||
<artifactId>opensync-gateway-cloud-process</artifactId>
|
||||
<version>${tip-wlan-cloud.release.version}</version>
|
||||
<version>1.3.0-SNAPSHOT</version>
|
||||
</dependency>
|
||||
|
||||
</dependencies>
|
||||
|
||||
@@ -30,6 +30,22 @@
|
||||
</triggeringPolicy>
|
||||
</appender>
|
||||
|
||||
<appender name="mqttMsgTracer" class="ch.qos.logback.core.rolling.RollingFileAppender">
|
||||
<file>/app/logs/mqttMsgTracer.log</file>
|
||||
<append>true</append>
|
||||
<encoder>
|
||||
<pattern>%date %msg%n</pattern>
|
||||
</encoder>
|
||||
<rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
|
||||
<fileNamePattern>/app/logs/mqttMsgTracer.%i.log.gz</fileNamePattern>
|
||||
<minIndex>1</minIndex>
|
||||
<maxIndex>3</maxIndex>
|
||||
</rollingPolicy>
|
||||
<triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
|
||||
<maxFileSize>20MB</maxFileSize>
|
||||
</triggeringPolicy>
|
||||
</appender>
|
||||
|
||||
<appender name="logfile" class="ch.qos.logback.core.rolling.RollingFileAppender">
|
||||
<file>/app/logs/opensyncgw.log</file>
|
||||
<append>true</append>
|
||||
@@ -67,7 +83,7 @@
|
||||
<logger name="com.vmware.ovsdb.service.OvsdbConnectionInfo" level="OFF"/>
|
||||
<logger name="com.vmware.ovsdb.netty.OvsdbConnectionHandler" level="ERROR"/>
|
||||
|
||||
<logger name="MQTT_DATA" level="DEBUG" additivity="false">
|
||||
<logger name="MQTT_DATA" level="INFO" additivity="false">
|
||||
<appender-ref ref="mqttDataFile"/>
|
||||
</logger>
|
||||
|
||||
|
||||
@@ -22,6 +22,8 @@ FILE_STORE_DIRECTORY="${FILE_STORE_DIRECTORY_INTERNAL:=/tmp/filestore}"
|
||||
FILE_STORE_EXTERNAL_URL="${FILE_STORE_URL}"
|
||||
MQTT_BROKER_EXTERNAL_PORT="${MQTT_BROKER_EXTERNAL_PORT}"
|
||||
OVSDB_EXTERNAL_PORT="${OVSDB_EXTERNAL_PORT}"
|
||||
OFF_CHANNEL_REPORTING_INTERVAL_SECONDS="${OFF_CHANNEL_REPORTING_INTERVAL_SECONDS:=120}"
|
||||
REPORTING_INTERVAL_SECONDS="${REPORTING_INTERVAL_SECONDS:=60}"
|
||||
|
||||
|
||||
|
||||
@@ -106,6 +108,8 @@ PROV_PROPS+=" -Dtip.wlan.ovsdb.wifi-iface.default_wan_type=$DEFAULT_WAN_TYPE"
|
||||
PROV_PROPS+=" -Dtip.wlan.ovsdb.wifi-iface.default_wan_name=$DEFAULT_WAN_NAME"
|
||||
PROV_PROPS+=" -Dtip.wlan.ovsdb.wifi-iface.default_lan_type=$DEFAULT_LAN_TYPE"
|
||||
PROV_PROPS+=" -Dtip.wlan.ovsdb.wifi-iface.default_lan_name=$DEFAULT_LAN_NAME"
|
||||
PROV_PROPS+=" -Dtip.wlan.defaultOffChannelReportingIntervalSeconds=$OFF_CHANNEL_REPORTING_INTERVAL_SECONDS"
|
||||
PROV_PROPS+=" -Dtip.wlan.defaultReportingIntervalSeconds=$REPORTING_INTERVAL_SECONDS"
|
||||
|
||||
PROV_PROPS+=" -Dtip.wlan.ovsdb.autoProvisionedCustomerId=$AUTO_PROV_CUSTOMER_ID"
|
||||
|
||||
@@ -113,9 +117,16 @@ FILE_STORE_PROPS=" "
|
||||
FILE_STORE_PROPS+=" -Dtip.wlan.fileStoreDirectory=$FILE_STORE_DIRECTORY"
|
||||
FILE_STORE_PROPS+=" -Dtip.wlan.externalFileStoreURL=$FILE_STORE_EXTERNAL_URL"
|
||||
|
||||
REMOTE_DEBUG_PORT=5005
|
||||
REMOTE_DEBUG=" -agentlib:jdwp=transport=dt_socket,server=y,address=*:$REMOTE_DEBUG_PORT,suspend=n"
|
||||
REMOTE_DEBUG_PORT=${REMOTE_DEBUG_PORT:-'5005'}
|
||||
if [ "x$REMOTE_DEBUG_ENABLE" == "xtrue" ]
|
||||
then
|
||||
REMOTE_DEBUG=" -agentlib:jdwp=transport=dt_socket,server=y,address=*:$REMOTE_DEBUG_PORT,suspend=n"
|
||||
else
|
||||
REMOTE_DEBUG=" "
|
||||
fi
|
||||
|
||||
export ALL_PROPS="$PROFILES $SSL_PROPS $CLIENT_MQTT_SSL_PROPS $OVSDB_PROPS $MQTT_PROPS $LOGGING_PROPS $RESTAPI_PROPS $SPRING_EXTRA_PROPS $HOST_PROPS $PROV_PROPS $FILE_STORE_PROPS $REMOTE_DEBUG"
|
||||
JVM_EXTRA_PROPS=" ${JVM_MEM_OPTIONS:- } "
|
||||
|
||||
export ALL_PROPS="$JVM_EXTRA_PROPS $PROFILES $SSL_PROPS $CLIENT_MQTT_SSL_PROPS $OVSDB_PROPS $MQTT_PROPS $LOGGING_PROPS $RESTAPI_PROPS $SPRING_EXTRA_PROPS $HOST_PROPS $PROV_PROPS $FILE_STORE_PROPS $REMOTE_DEBUG"
|
||||
|
||||
java $ALL_PROPS -jar app.jar
|
||||
|
||||
@@ -1,11 +1,9 @@
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<parent>
|
||||
<groupId>com.telecominfraproject.wlan</groupId>
|
||||
<artifactId>tip-wlan-cloud-root-pom</artifactId>
|
||||
<version>0.0.1-SNAPSHOT</version>
|
||||
<version>1.3.0-SNAPSHOT</version>
|
||||
<relativePath>../../wlan-cloud-root</relativePath>
|
||||
</parent>
|
||||
<artifactId>opensync-gateway-cloud-process</artifactId>
|
||||
@@ -18,99 +16,99 @@
|
||||
|
||||
<dependencies>
|
||||
<!-- <dependency> <groupId>com.telecominfraproject.wlan</groupId> <artifactId>opensync-gateway</artifactId>
|
||||
<version>${tip-wlan-cloud.release.version}</version> </dependency> -->
|
||||
<version>0.0.1-SNAPSHOT</version> </dependency> -->
|
||||
<dependency>
|
||||
<groupId>com.telecominfraproject.wlan</groupId>
|
||||
<artifactId>opensync-ext-cloud</artifactId>
|
||||
<version>${tip-wlan-cloud.release.version}</version>
|
||||
<version>1.3.0-SNAPSHOT</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<artifactId>filestore-service</artifactId>
|
||||
<groupId>com.telecominfraproject.wlan</groupId>
|
||||
<version>${tip-wlan-cloud.release.version}</version>
|
||||
<version>1.3.0-SNAPSHOT</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<artifactId>customer-service-remote</artifactId>
|
||||
<groupId>com.telecominfraproject.wlan</groupId>
|
||||
<version>${tip-wlan-cloud.release.version}</version>
|
||||
<version>1.3.0-SNAPSHOT</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<artifactId>location-service-remote</artifactId>
|
||||
<groupId>com.telecominfraproject.wlan</groupId>
|
||||
<version>${tip-wlan-cloud.release.version}</version>
|
||||
<version>1.3.0-SNAPSHOT</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<artifactId>equipment-service-remote</artifactId>
|
||||
<groupId>com.telecominfraproject.wlan</groupId>
|
||||
<version>${tip-wlan-cloud.release.version}</version>
|
||||
<version>1.3.0-SNAPSHOT</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<artifactId>profile-service-remote</artifactId>
|
||||
<groupId>com.telecominfraproject.wlan</groupId>
|
||||
<version>${tip-wlan-cloud.release.version}</version>
|
||||
<version>1.3.0-SNAPSHOT</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<artifactId>portal-user-service-remote</artifactId>
|
||||
<groupId>com.telecominfraproject.wlan</groupId>
|
||||
<version>${tip-wlan-cloud.release.version}</version>
|
||||
<version>1.3.0-SNAPSHOT</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<artifactId>service-metric-service-remote</artifactId>
|
||||
<groupId>com.telecominfraproject.wlan</groupId>
|
||||
<version>${tip-wlan-cloud.release.version}</version>
|
||||
<version>1.3.0-SNAPSHOT</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<artifactId>system-event-service-remote</artifactId>
|
||||
<groupId>com.telecominfraproject.wlan</groupId>
|
||||
<version>${tip-wlan-cloud.release.version}</version>
|
||||
<version>1.3.0-SNAPSHOT</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<artifactId>alarm-service-remote</artifactId>
|
||||
<groupId>com.telecominfraproject.wlan</groupId>
|
||||
<version>${tip-wlan-cloud.release.version}</version>
|
||||
<version>1.3.0-SNAPSHOT</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<artifactId>status-service-remote</artifactId>
|
||||
<groupId>com.telecominfraproject.wlan</groupId>
|
||||
<version>${tip-wlan-cloud.release.version}</version>
|
||||
<version>1.3.0-SNAPSHOT</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<artifactId>client-service-remote</artifactId>
|
||||
<groupId>com.telecominfraproject.wlan</groupId>
|
||||
<version>${tip-wlan-cloud.release.version}</version>
|
||||
<version>1.3.0-SNAPSHOT</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<artifactId>routing-service-remote</artifactId>
|
||||
<groupId>com.telecominfraproject.wlan</groupId>
|
||||
<version>${tip-wlan-cloud.release.version}</version>
|
||||
<version>1.3.0-SNAPSHOT</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<artifactId>firmware-service-remote</artifactId>
|
||||
<groupId>com.telecominfraproject.wlan</groupId>
|
||||
<version>${tip-wlan-cloud.release.version}</version>
|
||||
<version>1.3.0-SNAPSHOT</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<artifactId>manufacturer-service-remote</artifactId>
|
||||
<groupId>com.telecominfraproject.wlan</groupId>
|
||||
<version>${tip-wlan-cloud.release.version}</version>
|
||||
<version>1.3.0-SNAPSHOT</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<artifactId>cloud-event-dispatcher-remote</artifactId>
|
||||
<groupId>com.telecominfraproject.wlan</groupId>
|
||||
<version>${tip-wlan-cloud.release.version}</version>
|
||||
<version>1.3.0-SNAPSHOT</version>
|
||||
</dependency>
|
||||
|
||||
</dependencies>
|
||||
|
||||
@@ -136,7 +136,7 @@ tip.wlan.manufacturerServiceBaseUrl=https://localhost:9092
|
||||
tip.wlan.portalUserServiceBaseUrl=https://localhost:9092
|
||||
|
||||
tip.wlan.fileStoreDirectory=/tmp/tip-wlan-filestore
|
||||
tip.wlan.externalFileStoreURL=https://localhost:9096
|
||||
tip.wlan.externalFileStoreURL=https://localhost:9092
|
||||
|
||||
#server.session-timeout= # session timeout in seconds
|
||||
#server.tomcat.max-threads = 0 # number of threads in protocol handler
|
||||
|
||||
@@ -63,7 +63,7 @@
|
||||
<logger name="com.vmware.ovsdb.service.OvsdbConnectionInfo" level="OFF"/>
|
||||
<logger name="com.vmware.ovsdb.netty.OvsdbConnectionHandler" level="ERROR"/>
|
||||
|
||||
<logger name="MQTT_DATA" level="DEBUG"/>
|
||||
<logger name="MQTT_DATA" level="INFO"/>
|
||||
|
||||
<!--
|
||||
<logger name="org.springframework.security.web.authentication.preauth" level="DEBUG"/>
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
<parent>
|
||||
<groupId>com.telecominfraproject.wlan</groupId>
|
||||
<artifactId>tip-wlan-cloud-root-pom</artifactId>
|
||||
<version>0.0.1-SNAPSHOT</version>
|
||||
<version>1.3.0-SNAPSHOT</version>
|
||||
<relativePath>../../wlan-cloud-root</relativePath>
|
||||
</parent>
|
||||
<artifactId>opensync-gateway-static-docker</artifactId>
|
||||
@@ -22,7 +22,7 @@
|
||||
<dependency>
|
||||
<groupId>com.telecominfraproject.wlan</groupId>
|
||||
<artifactId>opensync-gateway-static-process</artifactId>
|
||||
<version>${tip-wlan-cloud.release.version}</version>
|
||||
<version>1.3.0-SNAPSHOT</version>
|
||||
</dependency>
|
||||
|
||||
</dependencies>
|
||||
|
||||
@@ -1,221 +1,472 @@
|
||||
{
|
||||
"model_type": "Equipment",
|
||||
"id": 51,
|
||||
"customerId": 2,
|
||||
"profileId": 12,
|
||||
"locationId": 8,
|
||||
"equipmentType": "AP",
|
||||
"inventoryId": "Test_Client_21P10C68818122",
|
||||
"name": "Test_Client_21P10C68818122",
|
||||
"details": {
|
||||
"model_type": "ApElementConfiguration",
|
||||
"equipmentModel": "EA8300-CA",
|
||||
"elementConfigVersion": "AP-V1",
|
||||
"model_type": "Equipment",
|
||||
"id": 1,
|
||||
"customerId": 2,
|
||||
"profileId": 8,
|
||||
"locationId": 8,
|
||||
"equipmentType": "AP",
|
||||
"deviceMode": "standaloneAP",
|
||||
"gettingIP": "dhcp",
|
||||
"staticIP": null,
|
||||
"staticIpMaskCidr": null,
|
||||
"staticIpGw": null,
|
||||
"gettingDNS": "dhcp",
|
||||
"staticDnsIp1": null,
|
||||
"staticDnsIp2": null,
|
||||
"peerInfoList": [],
|
||||
"deviceName": "Default Device Name",
|
||||
"locationData": null,
|
||||
"locallyConfiguredMgmtVlan": 0,
|
||||
"locallyConfigured": false,
|
||||
"deploymentType": "CEILING",
|
||||
"syntheticClientEnabled": null,
|
||||
"frameReportThrottleEnabled": true,
|
||||
"antennaType": "OMNI",
|
||||
"costSavingEventsEnabled": true,
|
||||
"forwardMode": "BRIDGE",
|
||||
"radioMap": {
|
||||
"is2dot4GHz": {
|
||||
"model_type": "ElementRadioConfiguration",
|
||||
"radioType": "is2dot4GHz",
|
||||
"channelNumber": 6,
|
||||
"manualChannelNumber": 6,
|
||||
"backupChannelNumber": 11,
|
||||
"bannedChannels": [],
|
||||
"allowedChannels": [],
|
||||
"rxCellSizeDb": {
|
||||
"model_type": "SourceSelectionValue",
|
||||
"source": "auto",
|
||||
"value": -90
|
||||
"inventoryId": "Open_AP_21P10C68818122",
|
||||
"name": "Open_AP_21P10C68818122",
|
||||
"details": {
|
||||
"model_type": "ApElementConfiguration",
|
||||
"equipmentModel": "EA8300-CA",
|
||||
"elementConfigVersion": "AP-V1",
|
||||
"equipmentType": "AP",
|
||||
"deviceMode": "standaloneAP",
|
||||
"gettingIP": "dhcp",
|
||||
"staticIP": null,
|
||||
"staticIpMaskCidr": null,
|
||||
"staticIpGw": null,
|
||||
"gettingDNS": "dhcp",
|
||||
"staticDnsIp1": null,
|
||||
"staticDnsIp2": null,
|
||||
"peerInfoList": [],
|
||||
"deviceName": "Open_AP_21P10C68818122",
|
||||
"locationData": null,
|
||||
"locallyConfiguredMgmtVlan": 0,
|
||||
"locallyConfigured": false,
|
||||
"deploymentType": "CEILING",
|
||||
"syntheticClientEnabled": null,
|
||||
"frameReportThrottleEnabled": true,
|
||||
"antennaType": "OMNI",
|
||||
"costSavingEventsEnabled": true,
|
||||
"forwardMode": "BRIDGE",
|
||||
"radioMap": {
|
||||
"is5GHzU": {
|
||||
"model_type": "ElementRadioConfiguration",
|
||||
"radioType": "is5GHzU",
|
||||
"channelNumber": 149,
|
||||
"manualChannelNumber": 149,
|
||||
"backupChannelNumber": 157,
|
||||
"manualBackupChannelNumber": 157,
|
||||
"rxCellSizeDb": {
|
||||
"model_type": "SourceSelectionValue",
|
||||
"source": "profile",
|
||||
"value": -90
|
||||
},
|
||||
"probeResponseThresholdDb": {
|
||||
"model_type": "SourceSelectionValue",
|
||||
"source": "profile",
|
||||
"value": -90
|
||||
},
|
||||
"clientDisconnectThresholdDb": {
|
||||
"model_type": "SourceSelectionValue",
|
||||
"source": "profile",
|
||||
"value": -90
|
||||
},
|
||||
"eirpTxPower": {
|
||||
"model_type": "SourceSelectionValue",
|
||||
"source": "profile",
|
||||
"value": 18
|
||||
},
|
||||
"perimeterDetectionEnabled": true,
|
||||
"bestAPSteerType": "both",
|
||||
"deauthAttackDetection": null,
|
||||
"allowedChannelsPowerLevels": [
|
||||
{
|
||||
"model_type": "ChannelPowerLevel",
|
||||
"channelNumber": 161,
|
||||
"powerLevel": 18,
|
||||
"dfs": false,
|
||||
"channelWidth": 80
|
||||
},
|
||||
{
|
||||
"model_type": "ChannelPowerLevel",
|
||||
"channelNumber": 100,
|
||||
"powerLevel": 18,
|
||||
"dfs": true,
|
||||
"channelWidth": 80
|
||||
},
|
||||
{
|
||||
"model_type": "ChannelPowerLevel",
|
||||
"channelNumber": 132,
|
||||
"powerLevel": 18,
|
||||
"dfs": true,
|
||||
"channelWidth": 80
|
||||
},
|
||||
{
|
||||
"model_type": "ChannelPowerLevel",
|
||||
"channelNumber": 165,
|
||||
"powerLevel": 18,
|
||||
"dfs": false,
|
||||
"channelWidth": 80
|
||||
},
|
||||
{
|
||||
"model_type": "ChannelPowerLevel",
|
||||
"channelNumber": 104,
|
||||
"powerLevel": 18,
|
||||
"dfs": true,
|
||||
"channelWidth": 80
|
||||
},
|
||||
{
|
||||
"model_type": "ChannelPowerLevel",
|
||||
"channelNumber": 136,
|
||||
"powerLevel": 18,
|
||||
"dfs": true,
|
||||
"channelWidth": 80
|
||||
},
|
||||
{
|
||||
"model_type": "ChannelPowerLevel",
|
||||
"channelNumber": 108,
|
||||
"powerLevel": 18,
|
||||
"dfs": true,
|
||||
"channelWidth": 80
|
||||
},
|
||||
{
|
||||
"model_type": "ChannelPowerLevel",
|
||||
"channelNumber": 140,
|
||||
"powerLevel": 18,
|
||||
"dfs": true,
|
||||
"channelWidth": 80
|
||||
},
|
||||
{
|
||||
"model_type": "ChannelPowerLevel",
|
||||
"channelNumber": 112,
|
||||
"powerLevel": 18,
|
||||
"dfs": true,
|
||||
"channelWidth": 80
|
||||
},
|
||||
{
|
||||
"model_type": "ChannelPowerLevel",
|
||||
"channelNumber": 144,
|
||||
"powerLevel": 18,
|
||||
"dfs": true,
|
||||
"channelWidth": 80
|
||||
},
|
||||
{
|
||||
"model_type": "ChannelPowerLevel",
|
||||
"channelNumber": 116,
|
||||
"powerLevel": 18,
|
||||
"dfs": true,
|
||||
"channelWidth": 80
|
||||
},
|
||||
{
|
||||
"model_type": "ChannelPowerLevel",
|
||||
"channelNumber": 149,
|
||||
"powerLevel": 18,
|
||||
"dfs": false,
|
||||
"channelWidth": 80
|
||||
},
|
||||
{
|
||||
"model_type": "ChannelPowerLevel",
|
||||
"channelNumber": 153,
|
||||
"powerLevel": 18,
|
||||
"dfs": false,
|
||||
"channelWidth": 80
|
||||
},
|
||||
{
|
||||
"model_type": "ChannelPowerLevel",
|
||||
"channelNumber": 157,
|
||||
"powerLevel": 18,
|
||||
"dfs": false,
|
||||
"channelWidth": 80
|
||||
}
|
||||
]
|
||||
},
|
||||
"is2dot4GHz": {
|
||||
"model_type": "ElementRadioConfiguration",
|
||||
"radioType": "is2dot4GHz",
|
||||
"channelNumber": 6,
|
||||
"manualChannelNumber": 6,
|
||||
"backupChannelNumber": 11,
|
||||
"manualBackupChannelNumber": 11,
|
||||
"rxCellSizeDb": {
|
||||
"model_type": "SourceSelectionValue",
|
||||
"source": "profile",
|
||||
"value": -90
|
||||
},
|
||||
"probeResponseThresholdDb": {
|
||||
"model_type": "SourceSelectionValue",
|
||||
"source": "profile",
|
||||
"value": -90
|
||||
},
|
||||
"clientDisconnectThresholdDb": {
|
||||
"model_type": "SourceSelectionValue",
|
||||
"source": "profile",
|
||||
"value": -90
|
||||
},
|
||||
"eirpTxPower": {
|
||||
"model_type": "SourceSelectionValue",
|
||||
"source": "profile",
|
||||
"value": 18
|
||||
},
|
||||
"perimeterDetectionEnabled": true,
|
||||
"bestAPSteerType": "both",
|
||||
"deauthAttackDetection": null,
|
||||
"allowedChannelsPowerLevels": [
|
||||
{
|
||||
"model_type": "ChannelPowerLevel",
|
||||
"channelNumber": 1,
|
||||
"powerLevel": 18,
|
||||
"dfs": false,
|
||||
"channelWidth": 20
|
||||
},
|
||||
{
|
||||
"model_type": "ChannelPowerLevel",
|
||||
"channelNumber": 2,
|
||||
"powerLevel": 18,
|
||||
"dfs": false,
|
||||
"channelWidth": 20
|
||||
},
|
||||
{
|
||||
"model_type": "ChannelPowerLevel",
|
||||
"channelNumber": 3,
|
||||
"powerLevel": 18,
|
||||
"dfs": false,
|
||||
"channelWidth": 20
|
||||
},
|
||||
{
|
||||
"model_type": "ChannelPowerLevel",
|
||||
"channelNumber": 4,
|
||||
"powerLevel": 18,
|
||||
"dfs": false,
|
||||
"channelWidth": 20
|
||||
},
|
||||
{
|
||||
"model_type": "ChannelPowerLevel",
|
||||
"channelNumber": 5,
|
||||
"powerLevel": 18,
|
||||
"dfs": false,
|
||||
"channelWidth": 20
|
||||
},
|
||||
{
|
||||
"model_type": "ChannelPowerLevel",
|
||||
"channelNumber": 6,
|
||||
"powerLevel": 18,
|
||||
"dfs": false,
|
||||
"channelWidth": 20
|
||||
},
|
||||
{
|
||||
"model_type": "ChannelPowerLevel",
|
||||
"channelNumber": 7,
|
||||
"powerLevel": 18,
|
||||
"dfs": false,
|
||||
"channelWidth": 20
|
||||
},
|
||||
{
|
||||
"model_type": "ChannelPowerLevel",
|
||||
"channelNumber": 8,
|
||||
"powerLevel": 18,
|
||||
"dfs": false,
|
||||
"channelWidth": 20
|
||||
},
|
||||
{
|
||||
"model_type": "ChannelPowerLevel",
|
||||
"channelNumber": 9,
|
||||
"powerLevel": 18,
|
||||
"dfs": false,
|
||||
"channelWidth": 20
|
||||
},
|
||||
{
|
||||
"model_type": "ChannelPowerLevel",
|
||||
"channelNumber": 10,
|
||||
"powerLevel": 18,
|
||||
"dfs": false,
|
||||
"channelWidth": 20
|
||||
},
|
||||
{
|
||||
"model_type": "ChannelPowerLevel",
|
||||
"channelNumber": 11,
|
||||
"powerLevel": 18,
|
||||
"dfs": false,
|
||||
"channelWidth": 20
|
||||
}
|
||||
]
|
||||
},
|
||||
"is5GHzL": {
|
||||
"model_type": "ElementRadioConfiguration",
|
||||
"radioType": "is5GHzL",
|
||||
"channelNumber": 36,
|
||||
"manualChannelNumber": 36,
|
||||
"backupChannelNumber": 44,
|
||||
"manualBackupChannelNumber": 44,
|
||||
"rxCellSizeDb": {
|
||||
"model_type": "SourceSelectionValue",
|
||||
"source": "profile",
|
||||
"value": -90
|
||||
},
|
||||
"probeResponseThresholdDb": {
|
||||
"model_type": "SourceSelectionValue",
|
||||
"source": "profile",
|
||||
"value": -90
|
||||
},
|
||||
"clientDisconnectThresholdDb": {
|
||||
"model_type": "SourceSelectionValue",
|
||||
"source": "profile",
|
||||
"value": -90
|
||||
},
|
||||
"eirpTxPower": {
|
||||
"model_type": "SourceSelectionValue",
|
||||
"source": "profile",
|
||||
"value": 18
|
||||
},
|
||||
"perimeterDetectionEnabled": true,
|
||||
"bestAPSteerType": "both",
|
||||
"deauthAttackDetection": null,
|
||||
"allowedChannelsPowerLevels": [
|
||||
{
|
||||
"model_type": "ChannelPowerLevel",
|
||||
"channelNumber": 52,
|
||||
"powerLevel": 18,
|
||||
"dfs": true,
|
||||
"channelWidth": 80
|
||||
},
|
||||
{
|
||||
"model_type": "ChannelPowerLevel",
|
||||
"channelNumber": 36,
|
||||
"powerLevel": 18,
|
||||
"dfs": false,
|
||||
"channelWidth": 80
|
||||
},
|
||||
{
|
||||
"model_type": "ChannelPowerLevel",
|
||||
"channelNumber": 56,
|
||||
"powerLevel": 18,
|
||||
"dfs": true,
|
||||
"channelWidth": 80
|
||||
},
|
||||
{
|
||||
"model_type": "ChannelPowerLevel",
|
||||
"channelNumber": 40,
|
||||
"powerLevel": 18,
|
||||
"dfs": false,
|
||||
"channelWidth": 80
|
||||
},
|
||||
{
|
||||
"model_type": "ChannelPowerLevel",
|
||||
"channelNumber": 60,
|
||||
"powerLevel": 18,
|
||||
"dfs": true,
|
||||
"channelWidth": 80
|
||||
},
|
||||
{
|
||||
"model_type": "ChannelPowerLevel",
|
||||
"channelNumber": 44,
|
||||
"powerLevel": 18,
|
||||
"dfs": false,
|
||||
"channelWidth": 80
|
||||
},
|
||||
{
|
||||
"model_type": "ChannelPowerLevel",
|
||||
"channelNumber": 64,
|
||||
"powerLevel": 18,
|
||||
"dfs": true,
|
||||
"channelWidth": 80
|
||||
},
|
||||
{
|
||||
"model_type": "ChannelPowerLevel",
|
||||
"channelNumber": 48,
|
||||
"powerLevel": 18,
|
||||
"dfs": false,
|
||||
"channelWidth": 80
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"probeResponseThresholdDb": {
|
||||
"model_type": "SourceSelectionValue",
|
||||
"source": "auto",
|
||||
"value": -90
|
||||
},
|
||||
"clientDisconnectThresholdDb": {
|
||||
"model_type": "SourceSelectionValue",
|
||||
"source": "auto",
|
||||
"value": -90
|
||||
},
|
||||
"eirpTxPower": {
|
||||
"model_type": "SourceSelectionValue",
|
||||
"source": "auto",
|
||||
"value": 32
|
||||
},
|
||||
"perimeterDetectionEnabled": true,
|
||||
"bestAPSteerType": "both",
|
||||
"deauthAttackDetection": null,
|
||||
"allowedChannelsPowerLevels": [],
|
||||
"activeChannel": 6
|
||||
},
|
||||
"is5GHzU": {
|
||||
"model_type": "ElementRadioConfiguration",
|
||||
"radioType": "is5GHzU",
|
||||
"channelNumber": 149,
|
||||
"manualChannelNumber": 149,
|
||||
"backupChannelNumber": 154,
|
||||
"bannedChannels": [],
|
||||
"allowedChannels": [],
|
||||
"rxCellSizeDb": {
|
||||
"model_type": "SourceSelectionValue",
|
||||
"source": "auto",
|
||||
"value": -90
|
||||
},
|
||||
"probeResponseThresholdDb": {
|
||||
"model_type": "SourceSelectionValue",
|
||||
"source": "auto",
|
||||
"value": -90
|
||||
},
|
||||
"clientDisconnectThresholdDb": {
|
||||
"model_type": "SourceSelectionValue",
|
||||
"source": "auto",
|
||||
"value": -90
|
||||
},
|
||||
"eirpTxPower": {
|
||||
"model_type": "SourceSelectionValue",
|
||||
"source": "auto",
|
||||
"value": 32
|
||||
},
|
||||
"perimeterDetectionEnabled": true,
|
||||
"bestAPSteerType": "both",
|
||||
"deauthAttackDetection": null,
|
||||
"allowedChannelsPowerLevels": [],
|
||||
"activeChannel": 149
|
||||
},
|
||||
"is5GHzL": {
|
||||
"model_type": "ElementRadioConfiguration",
|
||||
"radioType": "is5GHzL",
|
||||
"channelNumber": 36,
|
||||
"manualChannelNumber": 36,
|
||||
"backupChannelNumber": 44,
|
||||
"bannedChannels": [],
|
||||
"allowedChannels": [],
|
||||
"rxCellSizeDb": {
|
||||
"model_type": "SourceSelectionValue",
|
||||
"source": "auto",
|
||||
"value": -90
|
||||
},
|
||||
"probeResponseThresholdDb": {
|
||||
"model_type": "SourceSelectionValue",
|
||||
"source": "auto",
|
||||
"value": -90
|
||||
},
|
||||
"clientDisconnectThresholdDb": {
|
||||
"model_type": "SourceSelectionValue",
|
||||
"source": "auto",
|
||||
"value": -90
|
||||
},
|
||||
"eirpTxPower": {
|
||||
"model_type": "SourceSelectionValue",
|
||||
"source": "auto",
|
||||
"value": 32
|
||||
},
|
||||
"perimeterDetectionEnabled": true,
|
||||
"bestAPSteerType": "both",
|
||||
"deauthAttackDetection": null,
|
||||
"allowedChannelsPowerLevels": [],
|
||||
"activeChannel": 36
|
||||
}
|
||||
"advancedRadioMap": {
|
||||
"is2dot4GHz": {
|
||||
"model_type": "RadioConfiguration",
|
||||
"radioType": "is2dot4GHz",
|
||||
"radioAdminState": "enabled",
|
||||
"fragmentationThresholdBytes": 2346,
|
||||
"uapsdState": "enabled",
|
||||
"stationIsolation": "disabled",
|
||||
"multicastRate": {
|
||||
"model_type": "SourceSelectionMulticast",
|
||||
"source": "profile",
|
||||
"value": "auto"
|
||||
},
|
||||
"managementRate": {
|
||||
"model_type": "SourceSelectionManagement",
|
||||
"source": "profile",
|
||||
"value": "auto"
|
||||
},
|
||||
"bestApSettings": {
|
||||
"model_type": "SourceSelectionSteering",
|
||||
"source": "manual",
|
||||
"value": {
|
||||
"model_type": "RadioBestApSettings",
|
||||
"mlComputed": true,
|
||||
"dropInSnrPercentage": 20,
|
||||
"minLoadFactor": 50
|
||||
}
|
||||
},
|
||||
"legacyBSSRate": "enabled",
|
||||
"dtimPeriod": 2,
|
||||
"deauthAttackDetection": null
|
||||
},
|
||||
"is5GHzU": {
|
||||
"model_type": "RadioConfiguration",
|
||||
"radioType": "is5GHzU",
|
||||
"radioAdminState": "enabled",
|
||||
"fragmentationThresholdBytes": 2346,
|
||||
"uapsdState": "enabled",
|
||||
"stationIsolation": "disabled",
|
||||
"multicastRate": {
|
||||
"model_type": "SourceSelectionMulticast",
|
||||
"source": "profile",
|
||||
"value": "auto"
|
||||
},
|
||||
"managementRate": {
|
||||
"model_type": "SourceSelectionManagement",
|
||||
"source": "profile",
|
||||
"value": "auto"
|
||||
},
|
||||
"bestApSettings": {
|
||||
"model_type": "SourceSelectionSteering",
|
||||
"source": "manual",
|
||||
"value": {
|
||||
"model_type": "RadioBestApSettings",
|
||||
"mlComputed": true,
|
||||
"dropInSnrPercentage": 30,
|
||||
"minLoadFactor": 40
|
||||
}
|
||||
},
|
||||
"legacyBSSRate": "enabled",
|
||||
"dtimPeriod": 2,
|
||||
"deauthAttackDetection": null
|
||||
},
|
||||
"is5GHzL": {
|
||||
"model_type": "RadioConfiguration",
|
||||
"radioType": "is5GHzL",
|
||||
"radioAdminState": "enabled",
|
||||
"fragmentationThresholdBytes": 2346,
|
||||
"uapsdState": "enabled",
|
||||
"stationIsolation": "disabled",
|
||||
"multicastRate": {
|
||||
"model_type": "SourceSelectionMulticast",
|
||||
"source": "profile",
|
||||
"value": "auto"
|
||||
},
|
||||
"managementRate": {
|
||||
"model_type": "SourceSelectionManagement",
|
||||
"source": "profile",
|
||||
"value": "auto"
|
||||
},
|
||||
"bestApSettings": {
|
||||
"model_type": "SourceSelectionSteering",
|
||||
"source": "manual",
|
||||
"value": {
|
||||
"model_type": "RadioBestApSettings",
|
||||
"mlComputed": true,
|
||||
"dropInSnrPercentage": 30,
|
||||
"minLoadFactor": 40
|
||||
}
|
||||
},
|
||||
"legacyBSSRate": "enabled",
|
||||
"dtimPeriod": 2,
|
||||
"deauthAttackDetection": null
|
||||
}
|
||||
}
|
||||
},
|
||||
"advancedRadioMap": {
|
||||
"is2dot4GHz": {
|
||||
"model_type": "RadioConfiguration",
|
||||
"radioType": "is2dot4GHz",
|
||||
"radioAdminState": "enabled",
|
||||
"fragmentationThresholdBytes": 2346,
|
||||
"uapsdState": "enabled",
|
||||
"stationIsolation": "disabled",
|
||||
"managementRate": {
|
||||
"model_type": "SourceSelectionManagement",
|
||||
"source": "auto",
|
||||
"value": "auto"
|
||||
},
|
||||
"bestApSettings": {
|
||||
"model_type": "SourceSelectionSteering",
|
||||
"source": "auto",
|
||||
"value": {
|
||||
"model_type": "RadioBestApSettings",
|
||||
"mlComputed": true,
|
||||
"dropInSnrPercentage": 30,
|
||||
"minLoadFactor": 40
|
||||
}
|
||||
},
|
||||
"legacyBSSRate": "enabled",
|
||||
"deauthAttackDetection": null
|
||||
},
|
||||
"is5GHzU": {
|
||||
"model_type": "RadioConfiguration",
|
||||
"radioType": "is5GHzU",
|
||||
"radioAdminState": "enabled",
|
||||
"fragmentationThresholdBytes": 2346,
|
||||
"uapsdState": "enabled",
|
||||
"stationIsolation": "disabled",
|
||||
"managementRate": {
|
||||
"model_type": "SourceSelectionManagement",
|
||||
"source": "auto",
|
||||
"value": "auto"
|
||||
},
|
||||
"bestApSettings": {
|
||||
"model_type": "SourceSelectionSteering",
|
||||
"source": "auto",
|
||||
"value": {
|
||||
"model_type": "RadioBestApSettings",
|
||||
"mlComputed": true,
|
||||
"dropInSnrPercentage": 30,
|
||||
"minLoadFactor": 40
|
||||
}
|
||||
},
|
||||
"legacyBSSRate": "enabled",
|
||||
"deauthAttackDetection": null
|
||||
},
|
||||
"is5GHzL": {
|
||||
"model_type": "RadioConfiguration",
|
||||
"radioType": "is5GHzL",
|
||||
"radioAdminState": "enabled",
|
||||
"fragmentationThresholdBytes": 2346,
|
||||
"uapsdState": "enabled",
|
||||
"stationIsolation": "disabled",
|
||||
"managementRate": {
|
||||
"model_type": "SourceSelectionManagement",
|
||||
"source": "auto",
|
||||
"value": "auto"
|
||||
},
|
||||
"bestApSettings": {
|
||||
"model_type": "SourceSelectionSteering",
|
||||
"source": "auto",
|
||||
"value": {
|
||||
"model_type": "RadioBestApSettings",
|
||||
"mlComputed": true,
|
||||
"dropInSnrPercentage": 30,
|
||||
"minLoadFactor": 40
|
||||
}
|
||||
},
|
||||
"legacyBSSRate": "enabled",
|
||||
"deauthAttackDetection": null
|
||||
}
|
||||
}
|
||||
},
|
||||
"latitude": null,
|
||||
"longitude": null,
|
||||
"serial": "21P10C68818122",
|
||||
"createdTimestamp": 1591653239821,
|
||||
"lastModifiedTimestamp": 1591653241398
|
||||
"latitude": null,
|
||||
"longitude": null,
|
||||
"baseMacAddress": {
|
||||
"model_type": "MacAddress",
|
||||
"address": "JPWi7y5T",
|
||||
"addressAsString": "24:f5:a2:ef:2e:53"
|
||||
},
|
||||
"serial": "21P10C68818122",
|
||||
"createdTimestamp": 1612285288821,
|
||||
"lastModifiedTimestamp": 1612285293922
|
||||
}
|
||||
@@ -1,60 +1,61 @@
|
||||
{
|
||||
"model_type" : "Location",
|
||||
"id" : 8,
|
||||
"parentId" : 0,
|
||||
"locationType" : "SITE",
|
||||
"customerId" : 2,
|
||||
"name" : "Ottawa",
|
||||
"details" : {
|
||||
"model_type" : "LocationDetails",
|
||||
"countryCode" : "ca",
|
||||
"maintenanceWindow" : null,
|
||||
"rrmEnabled" : true,
|
||||
"dailyActivityDetails" : {
|
||||
"SUNDAY" : {
|
||||
"model_type" : "LocationActivityDetails",
|
||||
"busyTime" : "13:30",
|
||||
"quietTime" : "3:30",
|
||||
"timezone" : "US/Eastern"
|
||||
},
|
||||
"MONDAY" : {
|
||||
"model_type" : "LocationActivityDetails",
|
||||
"busyTime" : "13:30",
|
||||
"quietTime" : "3:30",
|
||||
"timezone" : "US/Eastern"
|
||||
},
|
||||
"TUESDAY" : {
|
||||
"model_type" : "LocationActivityDetails",
|
||||
"busyTime" : "13:30",
|
||||
"quietTime" : "3:30",
|
||||
"timezone" : "US/Eastern"
|
||||
},
|
||||
"WEDNESDAY" : {
|
||||
"model_type" : "LocationActivityDetails",
|
||||
"busyTime" : "13:30",
|
||||
"quietTime" : "3:30",
|
||||
"timezone" : "US/Eastern"
|
||||
},
|
||||
"THURSDAY" : {
|
||||
"model_type" : "LocationActivityDetails",
|
||||
"busyTime" : "13:30",
|
||||
"quietTime" : "3:30",
|
||||
"timezone" : "US/Eastern"
|
||||
},
|
||||
"FRIDAY" : {
|
||||
"model_type" : "LocationActivityDetails",
|
||||
"busyTime" : "13:30",
|
||||
"quietTime" : "3:30",
|
||||
"timezone" : "US/Eastern"
|
||||
},
|
||||
"SATURDAY" : {
|
||||
"model_type" : "LocationActivityDetails",
|
||||
"busyTime" : "13:30",
|
||||
"quietTime" : "3:30",
|
||||
"timezone" : "US/Eastern"
|
||||
}
|
||||
}
|
||||
},
|
||||
"createdTimestamp" : 1590607043540,
|
||||
"lastModifiedTimestamp" : 1590607043540
|
||||
"model_type": "Location",
|
||||
"id": 8,
|
||||
"parentId": 0,
|
||||
"locationType": "SITE",
|
||||
"customerId": 2,
|
||||
"name": "Ottawa",
|
||||
"details": {
|
||||
"model_type": "LocationDetails",
|
||||
"countryCode": "CA",
|
||||
"dailyActivityDetails": {
|
||||
"SUNDAY": {
|
||||
"model_type": "LocationActivityDetails",
|
||||
"busyTime": "13:30",
|
||||
"quietTime": "3:00",
|
||||
"timezone": "US/Eastern"
|
||||
},
|
||||
"MONDAY": {
|
||||
"model_type": "LocationActivityDetails",
|
||||
"busyTime": "13:30",
|
||||
"quietTime": "3:00",
|
||||
"timezone": "US/Eastern"
|
||||
},
|
||||
"TUESDAY": {
|
||||
"model_type": "LocationActivityDetails",
|
||||
"busyTime": "13:30",
|
||||
"quietTime": "3:00",
|
||||
"timezone": "US/Eastern"
|
||||
},
|
||||
"WEDNESDAY": {
|
||||
"model_type": "LocationActivityDetails",
|
||||
"busyTime": "13:30",
|
||||
"quietTime": "3:00",
|
||||
"timezone": "US/Eastern"
|
||||
},
|
||||
"THURSDAY": {
|
||||
"model_type": "LocationActivityDetails",
|
||||
"busyTime": "13:30",
|
||||
"quietTime": "3:00",
|
||||
"timezone": "US/Eastern"
|
||||
},
|
||||
"FRIDAY": {
|
||||
"model_type": "LocationActivityDetails",
|
||||
"busyTime": "13:30",
|
||||
"quietTime": "3:00",
|
||||
"timezone": "US/Eastern"
|
||||
},
|
||||
"SATURDAY": {
|
||||
"model_type": "LocationActivityDetails",
|
||||
"busyTime": "13:30",
|
||||
"quietTime": "3:00",
|
||||
"timezone": "US/Eastern"
|
||||
}
|
||||
},
|
||||
"maintenanceWindow": null,
|
||||
"rrmEnabled": true,
|
||||
"timezone": "US/Eastern"
|
||||
},
|
||||
"createdTimestamp": 1612285243534,
|
||||
"lastModifiedTimestamp": 1612285243534
|
||||
}
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"model_type": "Profile",
|
||||
"id": 12,
|
||||
"id": 8,
|
||||
"customerId": 2,
|
||||
"profileType": "equipment_ap",
|
||||
"name": "ApProfile-3-radios",
|
||||
@@ -20,11 +20,6 @@
|
||||
"syntheticClientEnabled": true,
|
||||
"ledControlEnabled": true,
|
||||
"equipmentDiscovery": false,
|
||||
"greTunnelName": null,
|
||||
"greParentIfName": null,
|
||||
"greLocalInetAddr": null,
|
||||
"greRemoteInetAddr": null,
|
||||
"greRemoteMacAddr": null,
|
||||
"radioMap": {
|
||||
"is2dot4GHz": {
|
||||
"model_type": "RadioProfileConfiguration",
|
||||
@@ -42,15 +37,22 @@
|
||||
"bestAPSteerType": "both"
|
||||
}
|
||||
},
|
||||
"greTunnelConfigurations": [
|
||||
{
|
||||
"model_type": "GreTunnelConfiguration",
|
||||
"greTunnelName": "gre1",
|
||||
"greRemoteInetAddr": "192.168.1.101",
|
||||
"vlanIdsInGreTunnel": [
|
||||
100
|
||||
]
|
||||
}
|
||||
],
|
||||
"profileType": "equipment_ap"
|
||||
},
|
||||
"createdTimestamp": 1606778369934,
|
||||
"lastModifiedTimestamp": 1606778443413,
|
||||
"createdTimestamp": 1612285248925,
|
||||
"lastModifiedTimestamp": 1612285628377,
|
||||
"childProfileIds": [
|
||||
16,
|
||||
5,
|
||||
10,
|
||||
11,
|
||||
15
|
||||
2,
|
||||
4
|
||||
]
|
||||
}
|
||||
@@ -1,135 +1,58 @@
|
||||
[
|
||||
{
|
||||
{
|
||||
"model_type": "Profile",
|
||||
"id": 14,
|
||||
"id": 5,
|
||||
"customerId": 2,
|
||||
"profileType": "captive_portal",
|
||||
"name": "Captive-portal",
|
||||
"details": {
|
||||
"model_type": "CaptivePortalConfiguration",
|
||||
"name": "Captive-portal",
|
||||
"browserTitle": "Access the network as Guest",
|
||||
"headerContent": "Captive Portal",
|
||||
"userAcceptancePolicy": "Use this network at your own risk. No warranty of any kind.",
|
||||
"successPageMarkdownText": "Welcome to the network",
|
||||
"redirectURL": "",
|
||||
"externalCaptivePortalURL": null,
|
||||
"sessionTimeoutInMinutes": 60,
|
||||
"logoFile": null,
|
||||
"backgroundFile": null,
|
||||
"walledGardenAllowlist": [],
|
||||
"usernamePasswordFile": {
|
||||
"model_type": "ManagedFileInfo",
|
||||
"md5checksum": null,
|
||||
"lastModifiedTimestamp": null,
|
||||
"apExportUrl": "userList",
|
||||
"fileCategory": "UsernamePasswordList",
|
||||
"fileType": "TEXT",
|
||||
"altSlot": true
|
||||
},
|
||||
"authenticationType": "guest",
|
||||
"radiusAuthMethod": "CHAP",
|
||||
"maxUsersWithSameCredentials": 42,
|
||||
"externalPolicyFile": null,
|
||||
"backgroundPosition": "left_top",
|
||||
"backgroundRepeat": "no_repeat",
|
||||
"radiusServiceName": null,
|
||||
"expiryType": "unlimited",
|
||||
"userList": [
|
||||
{
|
||||
"model_type": "TimedAccessUserRecord",
|
||||
"username": "customer",
|
||||
"password": "testing123",
|
||||
"activationTime": 1602183994956,
|
||||
"expirationTime": 1602212794956,
|
||||
"numDevices": 1,
|
||||
"userDetails": {
|
||||
"model_type": "TimedAccessUserDetails",
|
||||
"firstName": "Pac",
|
||||
"lastName": "Man",
|
||||
"passwordNeedsReset": false
|
||||
},
|
||||
"userMacAddresses": [
|
||||
{
|
||||
"model_type": "MacAddress",
|
||||
"address": "fKtg5upO",
|
||||
"addressAsString": "7c:ab:60:e6:ea:4e"
|
||||
}
|
||||
],
|
||||
"lastModifiedTimestamp": 0
|
||||
},
|
||||
{
|
||||
"model_type": "TimedAccessUserRecord",
|
||||
"username": "customer",
|
||||
"password": "testing123",
|
||||
"activationTime": 1602183994957,
|
||||
"expirationTime": 1602187594957,
|
||||
"numDevices": 0,
|
||||
"userDetails": {
|
||||
"model_type": "TimedAccessUserDetails",
|
||||
"firstName": "Q",
|
||||
"lastName": "Bert",
|
||||
"passwordNeedsReset": false
|
||||
},
|
||||
"userMacAddresses": [
|
||||
{
|
||||
"model_type": "MacAddress",
|
||||
"address": "wJrQdqho",
|
||||
"addressAsString": "c0:9a:d0:76:a8:68"
|
||||
}
|
||||
],
|
||||
"lastModifiedTimestamp": 0
|
||||
},
|
||||
{
|
||||
"model_type": "TimedAccessUserRecord",
|
||||
"username": "customer2",
|
||||
"password": "testing1234",
|
||||
"activationTime": 1602183994957,
|
||||
"expirationTime": 1602788794957,
|
||||
"numDevices": 1,
|
||||
"userDetails": {
|
||||
"model_type": "TimedAccessUserDetails",
|
||||
"firstName": "Duke",
|
||||
"lastName": "Nukem",
|
||||
"passwordNeedsReset": false
|
||||
},
|
||||
"userMacAddresses": [
|
||||
{
|
||||
"model_type": "MacAddress",
|
||||
"address": "fKtg5upN",
|
||||
"addressAsString": "7c:ab:60:e6:ea:4d"
|
||||
}
|
||||
],
|
||||
"lastModifiedTimestamp": 0
|
||||
},
|
||||
{
|
||||
"model_type": "TimedAccessUserRecord",
|
||||
"username": "customer2",
|
||||
"password": "testing1234",
|
||||
"activationTime": 1602183994957,
|
||||
"expirationTime": 1602270394957,
|
||||
"numDevices": 0,
|
||||
"userDetails": {
|
||||
"model_type": "TimedAccessUserDetails",
|
||||
"firstName": "Missile",
|
||||
"lastName": "Commander",
|
||||
"passwordNeedsReset": false
|
||||
},
|
||||
"userMacAddresses": [
|
||||
{
|
||||
"model_type": "MacAddress",
|
||||
"address": "wJrQdqhj",
|
||||
"addressAsString": "c0:9a:d0:76:a8:63"
|
||||
}
|
||||
],
|
||||
"lastModifiedTimestamp": 0
|
||||
}
|
||||
],
|
||||
"macAllowList": [],
|
||||
"profileType": "captive_portal"
|
||||
"model_type": "CaptivePortalConfiguration",
|
||||
"name": "Default",
|
||||
"browserTitle": "Captive-portal",
|
||||
"headerContent": "Captive Portal",
|
||||
"userAcceptancePolicy": "Please agree to the following terms for using this network:",
|
||||
"successPageMarkdownText": "You are now authorized and connected to the network.",
|
||||
"redirectURL": "https://www.google.com",
|
||||
"externalCaptivePortalURL": null,
|
||||
"sessionTimeoutInMinutes": 10,
|
||||
"logoFile": {
|
||||
"model_type": "ManagedFileInfo",
|
||||
"md5checksum": null,
|
||||
"lastModifiedTimestamp": null,
|
||||
"apExportUrl": "/filestore/tip-logo-mobile",
|
||||
"fileCategory": "CaptivePortalLogo",
|
||||
"fileType": "PNG",
|
||||
"altSlot": false
|
||||
},
|
||||
"backgroundFile": {
|
||||
"model_type": "ManagedFileInfo",
|
||||
"md5checksum": null,
|
||||
"lastModifiedTimestamp": null,
|
||||
"apExportUrl": "/filestore/tip-logo",
|
||||
"fileCategory": "CaptivePortalBackground",
|
||||
"fileType": "PNG",
|
||||
"altSlot": false
|
||||
},
|
||||
"walledGardenAllowlist": [
|
||||
],
|
||||
"usernamePasswordFile": null,
|
||||
"authenticationType": "guest",
|
||||
"radiusAuthMethod": "CHAP",
|
||||
"maxUsersWithSameCredentials": 3,
|
||||
"externalPolicyFile": null,
|
||||
"backgroundPosition": "left_top",
|
||||
"backgroundRepeat": "no_repeat",
|
||||
"radiusServiceId": 0,
|
||||
"expiryType": "time_limited",
|
||||
"userList": [
|
||||
],
|
||||
"macAllowList": [
|
||||
],
|
||||
"profileType": "captive_portal"
|
||||
},
|
||||
"createdTimestamp": 1602183994959,
|
||||
"lastModifiedTimestamp": 1602183994959,
|
||||
"childProfileIds": []
|
||||
}
|
||||
"createdTimestamp": 1611857459118,
|
||||
"lastModifiedTimestamp": 1611857459118,
|
||||
"childProfileIds": [
|
||||
]
|
||||
}
|
||||
]
|
||||
@@ -1,71 +1,71 @@
|
||||
[
|
||||
{
|
||||
"model_type": "Profile",
|
||||
"id": 24,
|
||||
"customerId": 2,
|
||||
"profileType": "passpoint",
|
||||
"name": "TipWlan-Passpoint-Config",
|
||||
"details": {
|
||||
"model_type": "PasspointProfile",
|
||||
"enableInterworkingAndHs20": true,
|
||||
"hessid": null,
|
||||
"passpointAccessNetworkType": "free_public_network",
|
||||
"passpointNetworkAuthenticationType": "acceptance_of_terms_and_conditions",
|
||||
"additionalStepsRequiredForAccess": 0,
|
||||
"deauthRequestTimeout": 0,
|
||||
"operatingClass": 0,
|
||||
"termsAndConditionsFile": {
|
||||
"model_type": "ManagedFileInfo",
|
||||
"md5checksum": null,
|
||||
"lastModifiedTimestamp": null,
|
||||
"apExportUrl": "https://localhost:9091/filestore/termsAndConditions",
|
||||
"fileCategory": "ExternalPolicyConfiguration",
|
||||
"fileType": "TEXT",
|
||||
"altSlot": false
|
||||
},
|
||||
"whitelistDomain": null,
|
||||
"emergencyServicesReachable": true,
|
||||
"unauthenticatedEmergencyServiceAccessible": false,
|
||||
"internetConnectivity": true,
|
||||
"connectionCapabilitySet": [
|
||||
{
|
||||
"model_type": "PasspointConnectionCapability",
|
||||
"connectionCapabilitiesPortNumber": 8888,
|
||||
"connectionCapabilitiesStatus": "open",
|
||||
"connectionCapabilitiesIpProtocol": "TCP"
|
||||
}
|
||||
],
|
||||
"ipAddressTypeAvailability": "public_IPv4_address_available",
|
||||
"qosMapSetConfiguration": null,
|
||||
"apGeospatialLocation": null,
|
||||
"apCivicLocation": null,
|
||||
"apPublicLocationIdUri": null,
|
||||
"gasAddr3Behaviour": "p2pSpecWorkaroundFromRequest",
|
||||
"anqpDomainId": 1234,
|
||||
"disableDownstreamGroupAddressedForwarding": false,
|
||||
"enable2pt4GHz": true,
|
||||
"enable5GHz": true,
|
||||
"associatedAccessSsidProfileIds": [
|
||||
15
|
||||
],
|
||||
"osuSsidProfileId": 16,
|
||||
"passpointOperatorProfileId": 17,
|
||||
"passpointVenueProfileId": 18,
|
||||
"passpointOsuProviderProfileIds": [
|
||||
19,
|
||||
20
|
||||
],
|
||||
"accessNetworkType": "free_public_network",
|
||||
"networkAuthenticationType": "acceptance_of_terms_and_conditions",
|
||||
"profileType": "passpoint"
|
||||
},
|
||||
"createdTimestamp": 1606778370807,
|
||||
"lastModifiedTimestamp": 1606778370807,
|
||||
"childProfileIds": [
|
||||
17,
|
||||
18,
|
||||
19,
|
||||
20
|
||||
]
|
||||
}
|
||||
{
|
||||
"model_type": "Profile",
|
||||
"id": 37,
|
||||
"customerId": 2,
|
||||
"profileType": "passpoint",
|
||||
"name": "hotspot20-profile-2021-01-21T21:28:59.171Z",
|
||||
"details": {
|
||||
"model_type": "PasspointProfile",
|
||||
"enableInterworkingAndHs20": true,
|
||||
"hessid": null,
|
||||
"passpointAccessNetworkType": "free_public_network",
|
||||
"passpointNetworkAuthenticationType": "acceptance_of_terms_and_conditions",
|
||||
"additionalStepsRequiredForAccess": 0,
|
||||
"deauthRequestTimeout": 0,
|
||||
"operatingClass": 0,
|
||||
"termsAndConditionsFile": {
|
||||
"model_type": "ManagedFileInfo",
|
||||
"md5checksum": null,
|
||||
"lastModifiedTimestamp": null,
|
||||
"apExportUrl": "https://localhost:9091/filestore/termsAndConditions",
|
||||
"fileCategory": "ExternalPolicyConfiguration",
|
||||
"fileType": "TEXT",
|
||||
"altSlot": false
|
||||
},
|
||||
"whitelistDomain": null,
|
||||
"emergencyServicesReachable": true,
|
||||
"unauthenticatedEmergencyServiceAccessible": false,
|
||||
"internetConnectivity": true,
|
||||
"connectionCapabilitySet": [
|
||||
{
|
||||
"model_type": "PasspointConnectionCapability",
|
||||
"connectionCapabilitiesPortNumber": 8888,
|
||||
"connectionCapabilitiesIpProtocol": "TCP",
|
||||
"connectionCapabilitiesStatus": "open"
|
||||
}
|
||||
],
|
||||
"ipAddressTypeAvailability": "public_IPv4_address_available",
|
||||
"qosMapSetConfiguration": null,
|
||||
"apGeospatialLocation": null,
|
||||
"apCivicLocation": null,
|
||||
"apPublicLocationIdUri": null,
|
||||
"gasAddr3Behaviour": "p2pSpecWorkaroundFromRequest",
|
||||
"anqpDomainId": 1234,
|
||||
"disableDownstreamGroupAddressedForwarding": false,
|
||||
"enable2pt4GHz": true,
|
||||
"enable5GHz": true,
|
||||
"associatedAccessSsidProfileIds": [
|
||||
32
|
||||
],
|
||||
"osuSsidProfileId": 31,
|
||||
"passpointOperatorProfileId": 34,
|
||||
"passpointVenueProfileId": 33,
|
||||
"passpointOsuProviderProfileIds": [
|
||||
35,
|
||||
36
|
||||
],
|
||||
"accessNetworkType": "free_public_network",
|
||||
"networkAuthenticationType": "acceptance_of_terms_and_conditions",
|
||||
"profileType": "passpoint"
|
||||
},
|
||||
"createdTimestamp": 0,
|
||||
"lastModifiedTimestamp": 1611264539331,
|
||||
"childProfileIds": [
|
||||
33,
|
||||
34,
|
||||
35,
|
||||
36
|
||||
]
|
||||
}
|
||||
]
|
||||
|
||||
@@ -1,270 +1,263 @@
|
||||
[
|
||||
{
|
||||
"model_type": "Profile",
|
||||
"id": 19,
|
||||
"customerId": 2,
|
||||
"profileType": "passpoint_osu_id_provider",
|
||||
"name": "TipWlan-Passpoint-OSU-Provider",
|
||||
"details": {
|
||||
"model_type": "PasspointOsuProviderProfile",
|
||||
"domainName": "rogers.com",
|
||||
"mccMncList": [
|
||||
{
|
||||
"model_type": "PasspointMccMnc",
|
||||
"mcc": 302,
|
||||
"mnc": 720,
|
||||
"iso": "ca",
|
||||
"country": "Canada",
|
||||
"countryCode": 1,
|
||||
"network": "Rogers AT&T Wireless",
|
||||
"mccMncPairing": "302,720"
|
||||
}
|
||||
],
|
||||
"naiRealmList": [
|
||||
{
|
||||
"model_type": "PasspointNaiRealmInformation",
|
||||
"naiRealms": [
|
||||
"rogers.com"
|
||||
],
|
||||
"encoding": 0,
|
||||
"eapMethods": [
|
||||
"EAP-TTLS with username/password",
|
||||
"EAP-TLS with certificate"
|
||||
],
|
||||
"eapMap": {
|
||||
"EAP-TTLS with username/password": [
|
||||
"Credential Type:username/password",
|
||||
"Non-EAP Inner Authentication Type:MSCHAPV2"
|
||||
],
|
||||
"EAP-TLS with certificate": [
|
||||
"Credential Type:Certificate"
|
||||
]
|
||||
}
|
||||
}
|
||||
],
|
||||
"osuIconList": [
|
||||
{
|
||||
"model_type": "PasspointOsuIcon",
|
||||
"iconWidth": 32,
|
||||
"iconHeight": 32,
|
||||
"languageCode": "eng",
|
||||
"iconLocale": "en_CA",
|
||||
"iconName": "icon32eng",
|
||||
"filePath": "/tmp/icon32eng.png",
|
||||
"imageUrl": "https://localhost:9096/icon32eng.png",
|
||||
"hs20IconString": "32:32:eng:image/png:icon32eng:/tmp/icon32eng.png"
|
||||
},
|
||||
{
|
||||
"model_type": "PasspointOsuIcon",
|
||||
"iconWidth": 32,
|
||||
"iconHeight": 32,
|
||||
"languageCode": "fra",
|
||||
"iconLocale": "fr_CA",
|
||||
"iconName": "icon32fra",
|
||||
"filePath": "/tmp/icon32fra.png",
|
||||
"imageUrl": "https://localhost:9096/icon32fra.png",
|
||||
"hs20IconString": "32:32:fra:image/png:icon32fra:/tmp/icon32fra.png"
|
||||
},
|
||||
{
|
||||
"model_type": "PasspointOsuIcon",
|
||||
"iconWidth": 32,
|
||||
"iconHeight": 32,
|
||||
"languageCode": "eng",
|
||||
"iconLocale": "en_US",
|
||||
"iconName": "icon32usa",
|
||||
"filePath": "/tmp/icon32usa.png",
|
||||
"imageUrl": "https://localhost:9096/icon32usa.png",
|
||||
"hs20IconString": "32:32:eng:image/png:icon32usa:/tmp/icon32usa.png"
|
||||
}
|
||||
],
|
||||
"osuServerUri": "https://example.com/osu/rogers",
|
||||
"osuFriendlyName": [
|
||||
{
|
||||
"model_type": "PasspointDuple",
|
||||
"locale": "en_CA",
|
||||
"dupleIso3Language": "eng",
|
||||
"dupleName": "Example provider rogers",
|
||||
"defaultDupleSeparator": ":",
|
||||
"asDuple": "eng:Example provider rogers"
|
||||
},
|
||||
{
|
||||
"model_type": "PasspointDuple",
|
||||
"locale": "fr_CA",
|
||||
"dupleIso3Language": "fra",
|
||||
"dupleName": "Exemple de fournisseur rogers",
|
||||
"defaultDupleSeparator": ":",
|
||||
"asDuple": "fra:Exemple de fournisseur rogers"
|
||||
}
|
||||
],
|
||||
"osuNaiStandalone": "anonymous@rogers.com",
|
||||
"osuNaiShared": "anonymous@rogers.com",
|
||||
"osuMethodList": [
|
||||
1,
|
||||
0
|
||||
],
|
||||
"osuServiceDescription": [
|
||||
{
|
||||
"model_type": "PasspointDuple",
|
||||
"locale": "en_CA",
|
||||
"dupleIso3Language": "eng",
|
||||
"dupleName": "Example services rogers",
|
||||
"defaultDupleSeparator": ":",
|
||||
"asDuple": "eng:Example services rogers"
|
||||
},
|
||||
{
|
||||
"model_type": "PasspointDuple",
|
||||
"locale": "fr_CA",
|
||||
"dupleIso3Language": "fra",
|
||||
"dupleName": "Exemples de services rogers",
|
||||
"defaultDupleSeparator": ":",
|
||||
"asDuple": "fra:Exemples de services rogers"
|
||||
}
|
||||
],
|
||||
"roamingOi": [
|
||||
1,
|
||||
2,
|
||||
3,
|
||||
4
|
||||
],
|
||||
"profileType": "passpoint_osu_id_provider"
|
||||
},
|
||||
"createdTimestamp": 1606778370345,
|
||||
"lastModifiedTimestamp": 1606778370345,
|
||||
"childProfileIds": [
|
||||
]
|
||||
},
|
||||
{
|
||||
"model_type": "Profile",
|
||||
"id": 20,
|
||||
"customerId": 2,
|
||||
"profileType": "passpoint_osu_id_provider",
|
||||
"name": "TipWlan-Passpoint-OSU-Provider-2",
|
||||
"details": {
|
||||
"model_type": "PasspointOsuProviderProfile",
|
||||
"domainName": "telus.com",
|
||||
"mccMncList": [
|
||||
{
|
||||
"model_type": "PasspointMccMnc",
|
||||
"mcc": 302,
|
||||
"mnc": 220,
|
||||
"iso": "ca",
|
||||
"country": "Canada",
|
||||
"countryCode": 1,
|
||||
"network": "Telus Mobility",
|
||||
"mccMncPairing": "302,220"
|
||||
}
|
||||
],
|
||||
"naiRealmList": [
|
||||
{
|
||||
"model_type": "PasspointNaiRealmInformation",
|
||||
"naiRealms": [
|
||||
"telus.com"
|
||||
],
|
||||
"encoding": 0,
|
||||
"eapMethods": [
|
||||
"EAP-TTLS with username/password",
|
||||
"EAP-TLS with certificate"
|
||||
],
|
||||
"eapMap": {
|
||||
"EAP-TTLS with username/password": [
|
||||
"Credential Type:username/password",
|
||||
"Non-EAP Inner Authentication Type:MSCHAPV2"
|
||||
],
|
||||
"EAP-TLS with certificate": [
|
||||
"Credential Type:Certificate"
|
||||
]
|
||||
}
|
||||
}
|
||||
],
|
||||
"osuIconList": [
|
||||
{
|
||||
"model_type": "PasspointOsuIcon",
|
||||
"iconWidth": 32,
|
||||
"iconHeight": 32,
|
||||
"languageCode": "eng",
|
||||
"iconLocale": "en_CA",
|
||||
"iconName": "icon32eng",
|
||||
"filePath": "/tmp/icon32eng.png",
|
||||
"imageUrl": "https://localhost:9096/icon32eng.png",
|
||||
"hs20IconString": "32:32:eng:image/png:icon32eng:/tmp/icon32eng.png"
|
||||
},
|
||||
{
|
||||
"model_type": "PasspointOsuIcon",
|
||||
"iconWidth": 32,
|
||||
"iconHeight": 32,
|
||||
"languageCode": "fra",
|
||||
"iconLocale": "fr_CA",
|
||||
"iconName": "icon32fra",
|
||||
"filePath": "/tmp/icon32fra.png",
|
||||
"imageUrl": "https://localhost:9096/icon32fra.png",
|
||||
"hs20IconString": "32:32:fra:image/png:icon32fra:/tmp/icon32fra.png"
|
||||
},
|
||||
{
|
||||
"model_type": "PasspointOsuIcon",
|
||||
"iconWidth": 32,
|
||||
"iconHeight": 32,
|
||||
"languageCode": "eng",
|
||||
"iconLocale": "en_US",
|
||||
"iconName": "icon32usa",
|
||||
"filePath": "/tmp/icon32usa.png",
|
||||
"imageUrl": "https://localhost:9096/icon32usa.png",
|
||||
"hs20IconString": "32:32:eng:image/png:icon32usa:/tmp/icon32usa.png"
|
||||
}
|
||||
],
|
||||
"osuServerUri": "https://example.com/osu/telus",
|
||||
"osuFriendlyName": [
|
||||
{
|
||||
"model_type": "PasspointDuple",
|
||||
"locale": "en_CA",
|
||||
"dupleIso3Language": "eng",
|
||||
"dupleName": "Example provider telus",
|
||||
"defaultDupleSeparator": ":",
|
||||
"asDuple": "eng:Example provider telus"
|
||||
},
|
||||
{
|
||||
"model_type": "PasspointDuple",
|
||||
"locale": "fr_CA",
|
||||
"dupleIso3Language": "fra",
|
||||
"dupleName": "Exemple de fournisseur telus",
|
||||
"defaultDupleSeparator": ":",
|
||||
"asDuple": "fra:Exemple de fournisseur telus"
|
||||
}
|
||||
],
|
||||
"osuNaiStandalone": "anonymous@telus.com",
|
||||
"osuNaiShared": "anonymous@telus.com",
|
||||
"osuMethodList": [
|
||||
1,
|
||||
0
|
||||
],
|
||||
"osuServiceDescription": [
|
||||
{
|
||||
"model_type": "PasspointDuple",
|
||||
"locale": "en_CA",
|
||||
"dupleIso3Language": "eng",
|
||||
"dupleName": "Example services telus",
|
||||
"defaultDupleSeparator": ":",
|
||||
"asDuple": "eng:Example services telus"
|
||||
},
|
||||
{
|
||||
"model_type": "PasspointDuple",
|
||||
"locale": "fr_CA",
|
||||
"dupleIso3Language": "fra",
|
||||
"dupleName": "Exemples de services telus",
|
||||
"defaultDupleSeparator": ":",
|
||||
"asDuple": "fra:Exemples de services telus"
|
||||
}
|
||||
],
|
||||
"roamingOi": [
|
||||
1,
|
||||
2,
|
||||
3,
|
||||
4
|
||||
],
|
||||
"profileType": "passpoint_osu_id_provider"
|
||||
},
|
||||
"createdTimestamp": 1606778370351,
|
||||
"lastModifiedTimestamp": 1606778370351,
|
||||
"childProfileIds": [
|
||||
]
|
||||
}
|
||||
{
|
||||
"model_type": "Profile",
|
||||
"id": 35,
|
||||
"customerId": 2,
|
||||
"profileType": "passpoint_osu_id_provider",
|
||||
"name": "provider1-profile-2021-01-21T21:28:59.057Z",
|
||||
"details": {
|
||||
"model_type": "PasspointOsuProviderProfile",
|
||||
"mccMncList": [
|
||||
{
|
||||
"model_type": "PasspointMccMnc",
|
||||
"mcc": 302,
|
||||
"mnc": 720,
|
||||
"iso": "ca",
|
||||
"country": "Canada",
|
||||
"countryCode": 1,
|
||||
"network": "Rogers AT&T Wireless",
|
||||
"mccMncPairing": "302,720"
|
||||
}
|
||||
],
|
||||
"naiRealmList": [
|
||||
{
|
||||
"model_type": "PasspointNaiRealmInformation",
|
||||
"naiRealms": [
|
||||
"rogers.com"
|
||||
],
|
||||
"encoding": 0,
|
||||
"eapMethods": [
|
||||
"EAP-TTLS with username/password",
|
||||
"EAP-TLS with certificate"
|
||||
],
|
||||
"eapMap": {
|
||||
"EAP-TTLS with username/password": [
|
||||
"Credential Type:username/password",
|
||||
"Non-EAP Inner Authentication Type:MSCHAPV2"
|
||||
],
|
||||
"EAP-TLS with certificate": [
|
||||
"Credential Type:Certificate"
|
||||
]
|
||||
}
|
||||
}
|
||||
],
|
||||
"osuIconList": [
|
||||
{
|
||||
"model_type": "PasspointOsuIcon",
|
||||
"iconWidth": 32,
|
||||
"iconHeight": 32,
|
||||
"languageCode": "eng",
|
||||
"iconLocale": "en_CA",
|
||||
"iconName": "icon32eng",
|
||||
"filePath": "/tmp/icon32eng.png",
|
||||
"imageUrl": "https://localhost:9096/icon32eng.png",
|
||||
"hs20IconString": "32:32:eng:image/png:icon32eng:/tmp/icon32eng.png"
|
||||
},
|
||||
{
|
||||
"model_type": "PasspointOsuIcon",
|
||||
"iconWidth": 32,
|
||||
"iconHeight": 32,
|
||||
"languageCode": "fra",
|
||||
"iconLocale": "fr_CA",
|
||||
"iconName": "icon32fra",
|
||||
"filePath": "/tmp/icon32fra.png",
|
||||
"imageUrl": "https://localhost:9096/icon32fra.png",
|
||||
"hs20IconString": "32:32:fra:image/png:icon32fra:/tmp/icon32fra.png"
|
||||
},
|
||||
{
|
||||
"model_type": "PasspointOsuIcon",
|
||||
"iconWidth": 32,
|
||||
"iconHeight": 32,
|
||||
"languageCode": "eng",
|
||||
"iconLocale": "en_US",
|
||||
"iconName": "icon32usa",
|
||||
"filePath": "/tmp/icon32usa.png",
|
||||
"imageUrl": "https://localhost:9096/icon32usa.png",
|
||||
"hs20IconString": "32:32:eng:image/png:icon32usa:/tmp/icon32usa.png"
|
||||
}
|
||||
],
|
||||
"osuServerUri": "https://example.com/osu/rogers",
|
||||
"osuFriendlyName": [
|
||||
{
|
||||
"model_type": "PasspointDuple",
|
||||
"locale": "eng",
|
||||
"dupleIso3Language": "eng",
|
||||
"dupleName": "Example provider rogers",
|
||||
"defaultDupleSeparator": ":",
|
||||
"asDuple": "eng:Example provider rogers"
|
||||
},
|
||||
{
|
||||
"model_type": "PasspointDuple",
|
||||
"locale": "fra",
|
||||
"dupleIso3Language": "fra",
|
||||
"dupleName": "Exemple de fournisseur rogers",
|
||||
"defaultDupleSeparator": ":",
|
||||
"asDuple": "fra:Exemple de fournisseur rogers"
|
||||
}
|
||||
],
|
||||
"osuNaiStandalone": "anonymous@rogers.com",
|
||||
"osuNaiShared": "anonymous@rogers.com",
|
||||
"osuMethodList": [
|
||||
1,
|
||||
0
|
||||
],
|
||||
"osuServiceDescription": [
|
||||
{
|
||||
"model_type": "PasspointDuple",
|
||||
"locale": "eng",
|
||||
"dupleIso3Language": "eng",
|
||||
"dupleName": "Example services rogers",
|
||||
"defaultDupleSeparator": ":",
|
||||
"asDuple": "eng:Example services rogers"
|
||||
},
|
||||
{
|
||||
"model_type": "PasspointDuple",
|
||||
"locale": "fra",
|
||||
"dupleIso3Language": "fra",
|
||||
"dupleName": "Exemples de services rogers",
|
||||
"defaultDupleSeparator": ":",
|
||||
"asDuple": "fra:Exemples de services rogers"
|
||||
}
|
||||
],
|
||||
"roamingOi": [
|
||||
"BAA2D00100",
|
||||
"BAA2D00000"
|
||||
],
|
||||
"profileType": "passpoint_osu_id_provider"
|
||||
},
|
||||
"createdTimestamp": 1611264539070,
|
||||
"lastModifiedTimestamp": 1611264539070,
|
||||
"childProfileIds": []
|
||||
},
|
||||
{
|
||||
"model_type": "Profile",
|
||||
"id": 36,
|
||||
"customerId": 2,
|
||||
"profileType": "passpoint_osu_id_provider",
|
||||
"name": "provider2-profile-2021-01-21T21:28:59.118Z",
|
||||
"details": {
|
||||
"model_type": "PasspointOsuProviderProfile",
|
||||
"mccMncList": [
|
||||
{
|
||||
"model_type": "PasspointMccMnc",
|
||||
"mcc": 302,
|
||||
"mnc": 220,
|
||||
"iso": "ca",
|
||||
"country": "Canada",
|
||||
"countryCode": 1,
|
||||
"network": "Telus Mobility",
|
||||
"mccMncPairing": "302,220"
|
||||
}
|
||||
],
|
||||
"naiRealmList": [
|
||||
{
|
||||
"model_type": "PasspointNaiRealmInformation",
|
||||
"naiRealms": [
|
||||
"telus.com"
|
||||
],
|
||||
"encoding": 0,
|
||||
"eapMethods": [
|
||||
"EAP-TTLS with username/password",
|
||||
"EAP-TLS with certificate"
|
||||
],
|
||||
"eapMap": {
|
||||
"EAP-TTLS with username/password": [
|
||||
"Credential Type:username/password",
|
||||
"Non-EAP Inner Authentication Type:MSCHAPV2"
|
||||
],
|
||||
"EAP-TLS with certificate": [
|
||||
"Credential Type:Certificate"
|
||||
]
|
||||
}
|
||||
}
|
||||
],
|
||||
"osuIconList": [
|
||||
{
|
||||
"model_type": "PasspointOsuIcon",
|
||||
"iconWidth": 32,
|
||||
"iconHeight": 32,
|
||||
"languageCode": "eng",
|
||||
"iconLocale": "en_CA",
|
||||
"iconName": "icon32eng",
|
||||
"filePath": "/tmp/icon32eng.png",
|
||||
"imageUrl": "https://localhost:9096/icon32eng.png",
|
||||
"hs20IconString": "32:32:eng:image/png:icon32eng:/tmp/icon32eng.png"
|
||||
},
|
||||
{
|
||||
"model_type": "PasspointOsuIcon",
|
||||
"iconWidth": 32,
|
||||
"iconHeight": 32,
|
||||
"languageCode": "fra",
|
||||
"iconLocale": "fr_CA",
|
||||
"iconName": "icon32fra",
|
||||
"filePath": "/tmp/icon32fra.png",
|
||||
"imageUrl": "https://localhost:9096/icon32fra.png",
|
||||
"hs20IconString": "32:32:fra:image/png:icon32fra:/tmp/icon32fra.png"
|
||||
},
|
||||
{
|
||||
"model_type": "PasspointOsuIcon",
|
||||
"iconWidth": 32,
|
||||
"iconHeight": 32,
|
||||
"languageCode": "eng",
|
||||
"iconLocale": "en_US",
|
||||
"iconName": "icon32usa",
|
||||
"filePath": "/tmp/icon32usa.png",
|
||||
"imageUrl": "https://localhost:9096/icon32usa.png",
|
||||
"hs20IconString": "32:32:eng:image/png:icon32usa:/tmp/icon32usa.png"
|
||||
}
|
||||
],
|
||||
"osuServerUri": "https://example.com/osu/telus",
|
||||
"osuFriendlyName": [
|
||||
{
|
||||
"model_type": "PasspointDuple",
|
||||
"locale": "eng",
|
||||
"dupleIso3Language": "eng",
|
||||
"dupleName": "Example provider telus",
|
||||
"defaultDupleSeparator": ":",
|
||||
"asDuple": "eng:Example provider telus"
|
||||
},
|
||||
{
|
||||
"model_type": "PasspointDuple",
|
||||
"locale": "fra",
|
||||
"dupleIso3Language": "fra",
|
||||
"dupleName": "Exemple de fournisseur telus",
|
||||
"defaultDupleSeparator": ":",
|
||||
"asDuple": "fra:Exemple de fournisseur telus"
|
||||
}
|
||||
],
|
||||
"osuNaiStandalone": "anonymous@telus.com",
|
||||
"osuNaiShared": "anonymous@telus.com",
|
||||
"osuMethodList": [
|
||||
1,
|
||||
0
|
||||
],
|
||||
"osuServiceDescription": [
|
||||
{
|
||||
"model_type": "PasspointDuple",
|
||||
"locale": "eng",
|
||||
"dupleIso3Language": "eng",
|
||||
"dupleName": "Example services telus",
|
||||
"defaultDupleSeparator": ":",
|
||||
"asDuple": "eng:Example services telus"
|
||||
},
|
||||
{
|
||||
"model_type": "PasspointDuple",
|
||||
"locale": "fra",
|
||||
"dupleIso3Language": "fra",
|
||||
"dupleName": "Exemples de services telus",
|
||||
"defaultDupleSeparator": ":",
|
||||
"asDuple": "fra:Exemples de services telus"
|
||||
}
|
||||
],
|
||||
"roamingOi": [
|
||||
"004096",
|
||||
"005014",
|
||||
"F4F5E8F5F4"
|
||||
],
|
||||
"profileType": "passpoint_osu_id_provider"
|
||||
},
|
||||
"createdTimestamp": 1611264539131,
|
||||
"lastModifiedTimestamp": 1611264539131,
|
||||
"childProfileIds": []
|
||||
}
|
||||
]
|
||||
@@ -1,37 +1,41 @@
|
||||
[
|
||||
{
|
||||
"model_type": "Profile",
|
||||
"id": 17,
|
||||
"customerId": 2,
|
||||
"profileType": "passpoint_operator",
|
||||
"name": "TipWlan-Passpoint-Operator",
|
||||
"details": {
|
||||
"model_type": "PasspointOperatorProfile",
|
||||
"serverOnlyAuthenticatedL2EncryptionNetwork": false,
|
||||
"x509CertificateLocation": "/etc/ca.pem",
|
||||
"operatorFriendlyName": [
|
||||
{
|
||||
"model_type": "PasspointDuple",
|
||||
"locale": "en_CA",
|
||||
"dupleIso3Language": "eng",
|
||||
"dupleName": "Default friendly passpoint_operator name",
|
||||
"defaultDupleSeparator": ":",
|
||||
"asDuple": "eng:Default friendly passpoint_operator name"
|
||||
},
|
||||
{
|
||||
"model_type": "PasspointDuple",
|
||||
"locale": "fr_CA",
|
||||
"dupleIso3Language": "fra",
|
||||
"dupleName": "Nom de l'opérateur convivial par défaut",
|
||||
"defaultDupleSeparator": ":",
|
||||
"asDuple": "fra:Nom de l'opérateur convivial par défaut"
|
||||
}
|
||||
],
|
||||
"profileType": "passpoint_operator"
|
||||
},
|
||||
"createdTimestamp": 1606778369945,
|
||||
"lastModifiedTimestamp": 1606778369945,
|
||||
"childProfileIds": [
|
||||
]
|
||||
}
|
||||
{
|
||||
"model_type": "Profile",
|
||||
"id": 34,
|
||||
"customerId": 2,
|
||||
"profileType": "passpoint_operator",
|
||||
"name": "operator-profile-2021-01-21T21:28:58.994Z",
|
||||
"details": {
|
||||
"model_type": "PasspointOperatorProfile",
|
||||
"serverOnlyAuthenticatedL2EncryptionNetwork": false,
|
||||
"x509CertificateLocation": "/etc/ca.pem",
|
||||
"operatorFriendlyName": [
|
||||
{
|
||||
"model_type": "PasspointDuple",
|
||||
"locale": "fra",
|
||||
"dupleIso3Language": "fra",
|
||||
"dupleName": "Nom de l'opérateur convivial par défaut",
|
||||
"defaultDupleSeparator": ":",
|
||||
"asDuple": "fra:Nom de l'opérateur convivial par défaut"
|
||||
},
|
||||
{
|
||||
"model_type": "PasspointDuple",
|
||||
"locale": "eng",
|
||||
"dupleIso3Language": "eng",
|
||||
"dupleName": "Default friendly passpoint_operator name",
|
||||
"defaultDupleSeparator": ":",
|
||||
"asDuple": "eng:Default friendly passpoint_operator name"
|
||||
}
|
||||
],
|
||||
"domainNameList": [
|
||||
"bell.ca",
|
||||
"telus.com",
|
||||
"rogers.com"
|
||||
],
|
||||
"profileType": "passpoint_operator"
|
||||
},
|
||||
"createdTimestamp": 1611264539004,
|
||||
"lastModifiedTimestamp": 1611264539004,
|
||||
"childProfileIds": []
|
||||
}
|
||||
]
|
||||
@@ -1,34 +1,24 @@
|
||||
[
|
||||
{
|
||||
"model_type": "Profile",
|
||||
"id": 1,
|
||||
"customerId": 2,
|
||||
"profileType": "radius",
|
||||
"name": "Radius-Profile",
|
||||
"details": {
|
||||
"model_type": "RadiusProfile",
|
||||
"subnetConfiguration": null,
|
||||
"serviceRegionMap": {
|
||||
"Ottawa": {
|
||||
"model_type": "RadiusServiceRegion",
|
||||
"serverMap": {
|
||||
"Radius-Profile": [
|
||||
{
|
||||
"model_type": "RadiusServer",
|
||||
"ipAddress": "192.168.0.1",
|
||||
"secret": "testing123",
|
||||
"authPort": 1812,
|
||||
"timeout": null
|
||||
}
|
||||
]
|
||||
},
|
||||
"regionName": "Ottawa"
|
||||
}
|
||||
},
|
||||
"profileType": "radius"
|
||||
},
|
||||
"createdTimestamp": 1601961451668,
|
||||
"lastModifiedTimestamp": 1601961451668,
|
||||
"childProfileIds": []
|
||||
}
|
||||
{
|
||||
"model_type": "Profile",
|
||||
"id": 1,
|
||||
"customerId": 2,
|
||||
"profileType": "radius",
|
||||
"name": "Radius-Profile",
|
||||
"details": {
|
||||
"model_type": "RadiusProfile",
|
||||
"primaryRadiusAuthServer": {
|
||||
"model_type": "RadiusServer",
|
||||
"ipAddress": "192.168.0.1",
|
||||
"secret": "testing123",
|
||||
"port": 1812,
|
||||
"timeout": null
|
||||
},
|
||||
"profileType": "radius"
|
||||
},
|
||||
"createdTimestamp": 1611262628767,
|
||||
"lastModifiedTimestamp": 1611262628767,
|
||||
"childProfileIds": [
|
||||
]
|
||||
}
|
||||
]
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"model_type": "Profile",
|
||||
"id": 11,
|
||||
"id": 4,
|
||||
"customerId": 2,
|
||||
"profileType": "rf",
|
||||
"name": "TipWlan-rf",
|
||||
@@ -198,7 +198,7 @@
|
||||
},
|
||||
"profileType": "rf"
|
||||
},
|
||||
"createdTimestamp": 1606778369933,
|
||||
"lastModifiedTimestamp": 1606778369933,
|
||||
"createdTimestamp": 1612285248650,
|
||||
"lastModifiedTimestamp": 1612285248650,
|
||||
"childProfileIds": []
|
||||
}
|
||||
@@ -1,203 +1,75 @@
|
||||
[
|
||||
{
|
||||
"model_type": "Profile",
|
||||
"id": 5,
|
||||
"customerId": 2,
|
||||
"profileType": "ssid",
|
||||
"name": "TipWlan-cloud-3-radios",
|
||||
"details": {
|
||||
"model_type": "SsidConfiguration",
|
||||
"ssid": "TipWlan-cloud-3-radios",
|
||||
"appliedRadios": [
|
||||
"is5GHzL",
|
||||
"is2dot4GHz",
|
||||
"is5GHzU"
|
||||
],
|
||||
"ssidAdminState": "enabled",
|
||||
"secureMode": "wpa2OnlyPSK",
|
||||
"vlanId": 1,
|
||||
"keyStr": "openwifi",
|
||||
"broadcastSsid": "enabled",
|
||||
"keyRefresh": 0,
|
||||
"noLocalSubnets": false,
|
||||
"radiusServiceName": null,
|
||||
"radiusAccountingServiceName": null,
|
||||
"radiusAcountingServiceInterval": null,
|
||||
"captivePortalId": null,
|
||||
"bandwidthLimitDown": 0,
|
||||
"bandwidthLimitUp": 0,
|
||||
"clientBandwidthLimitDown": 0,
|
||||
"clientBandwidthLimitUp": 0,
|
||||
"videoTrafficOnly": false,
|
||||
"radioBasedConfigs": {
|
||||
"is5GHzL": {
|
||||
"model_type": "RadioBasedSsidConfiguration",
|
||||
"enable80211r": null,
|
||||
"enable80211k": null,
|
||||
"enable80211v": null
|
||||
},
|
||||
"is2dot4GHz": {
|
||||
"model_type": "RadioBasedSsidConfiguration",
|
||||
"enable80211r": null,
|
||||
"enable80211k": null,
|
||||
"enable80211v": null
|
||||
},
|
||||
"is5GHz": {
|
||||
"model_type": "RadioBasedSsidConfiguration",
|
||||
"enable80211r": null,
|
||||
"enable80211k": null,
|
||||
"enable80211v": null
|
||||
},
|
||||
"is5GHzU": {
|
||||
"model_type": "RadioBasedSsidConfiguration",
|
||||
"enable80211r": null,
|
||||
"enable80211k": null,
|
||||
"enable80211v": null
|
||||
}
|
||||
},
|
||||
"bonjourGatewayProfileId": null,
|
||||
"enable80211w": null,
|
||||
"wepConfig": null,
|
||||
"forwardMode": "BRIDGE",
|
||||
"profileType": "ssid"
|
||||
},
|
||||
"createdTimestamp": 1606778369598,
|
||||
"lastModifiedTimestamp": 1606778369598,
|
||||
"childProfileIds": [
|
||||
]
|
||||
},
|
||||
{
|
||||
"model_type": "Profile",
|
||||
"id": 15,
|
||||
"customerId": 2,
|
||||
"profileType": "ssid",
|
||||
"name": "TipWlan-cloud-passpoint-access",
|
||||
"details": {
|
||||
"model_type": "SsidConfiguration",
|
||||
"ssid": "TipWlan-cloud-passpoint-access",
|
||||
"appliedRadios": [
|
||||
"is5GHzL",
|
||||
"is5GHzU"
|
||||
],
|
||||
"ssidAdminState": "enabled",
|
||||
"secureMode": "wpa2PSK",
|
||||
"vlanId": 1,
|
||||
"keyStr": "testing123",
|
||||
"broadcastSsid": "enabled",
|
||||
"keyRefresh": 0,
|
||||
"noLocalSubnets": false,
|
||||
"radiusServiceName": null,
|
||||
"radiusAccountingServiceName": null,
|
||||
"radiusAcountingServiceInterval": null,
|
||||
"captivePortalId": null,
|
||||
"bandwidthLimitDown": 0,
|
||||
"bandwidthLimitUp": 0,
|
||||
"clientBandwidthLimitDown": 0,
|
||||
"clientBandwidthLimitUp": 0,
|
||||
"videoTrafficOnly": false,
|
||||
"radioBasedConfigs": {
|
||||
"is5GHzL": {
|
||||
"model_type": "RadioBasedSsidConfiguration",
|
||||
"enable80211r": null,
|
||||
"enable80211k": null,
|
||||
"enable80211v": null
|
||||
},
|
||||
"is2dot4GHz": {
|
||||
"model_type": "RadioBasedSsidConfiguration",
|
||||
"enable80211r": null,
|
||||
"enable80211k": null,
|
||||
"enable80211v": null
|
||||
},
|
||||
"is5GHz": {
|
||||
"model_type": "RadioBasedSsidConfiguration",
|
||||
"enable80211r": null,
|
||||
"enable80211k": null,
|
||||
"enable80211v": null
|
||||
},
|
||||
"is5GHzU": {
|
||||
"model_type": "RadioBasedSsidConfiguration",
|
||||
"enable80211r": null,
|
||||
"enable80211k": null,
|
||||
"enable80211v": null
|
||||
}
|
||||
},
|
||||
"bonjourGatewayProfileId": null,
|
||||
"enable80211w": null,
|
||||
"wepConfig": null,
|
||||
"forwardMode": null,
|
||||
"profileType": "ssid"
|
||||
},
|
||||
"createdTimestamp": 1606778369943,
|
||||
"lastModifiedTimestamp": 1606778370811,
|
||||
"childProfileIds": [
|
||||
24
|
||||
]
|
||||
},
|
||||
{
|
||||
"model_type": "Profile",
|
||||
"id": 16,
|
||||
"customerId": 2,
|
||||
"profileType": "ssid",
|
||||
"name": "TipWlan-cloud-passpoint-osu",
|
||||
"details": {
|
||||
"model_type": "SsidConfiguration",
|
||||
"ssid": "TipWlan-cloud-passpoint-osu",
|
||||
"appliedRadios": [
|
||||
"is2dot4GHz"
|
||||
],
|
||||
"ssidAdminState": "enabled",
|
||||
"secureMode": "open",
|
||||
"vlanId": 1,
|
||||
"keyStr": null,
|
||||
"broadcastSsid": "enabled",
|
||||
"keyRefresh": 0,
|
||||
"noLocalSubnets": false,
|
||||
"radiusServiceName": null,
|
||||
"radiusAccountingServiceName": null,
|
||||
"radiusAcountingServiceInterval": null,
|
||||
"captivePortalId": null,
|
||||
"bandwidthLimitDown": 0,
|
||||
"bandwidthLimitUp": 0,
|
||||
"clientBandwidthLimitDown": 0,
|
||||
"clientBandwidthLimitUp": 0,
|
||||
"videoTrafficOnly": false,
|
||||
"radioBasedConfigs": {
|
||||
"is5GHzL": {
|
||||
"model_type": "RadioBasedSsidConfiguration",
|
||||
"enable80211r": null,
|
||||
"enable80211k": null,
|
||||
"enable80211v": null
|
||||
},
|
||||
"is2dot4GHz": {
|
||||
"model_type": "RadioBasedSsidConfiguration",
|
||||
"enable80211r": null,
|
||||
"enable80211k": null,
|
||||
"enable80211v": null
|
||||
},
|
||||
"is5GHz": {
|
||||
"model_type": "RadioBasedSsidConfiguration",
|
||||
"enable80211r": null,
|
||||
"enable80211k": null,
|
||||
"enable80211v": null
|
||||
},
|
||||
"is5GHzU": {
|
||||
"model_type": "RadioBasedSsidConfiguration",
|
||||
"enable80211r": null,
|
||||
"enable80211k": null,
|
||||
"enable80211v": null
|
||||
}
|
||||
},
|
||||
"bonjourGatewayProfileId": null,
|
||||
"enable80211w": null,
|
||||
"wepConfig": null,
|
||||
"forwardMode": null,
|
||||
"profileType": "ssid"
|
||||
},
|
||||
"createdTimestamp": 1606778369944,
|
||||
"lastModifiedTimestamp": 1606778370352,
|
||||
"childProfileIds": [
|
||||
19,
|
||||
20
|
||||
]
|
||||
}
|
||||
{
|
||||
"model_type": "Profile",
|
||||
"id": 2,
|
||||
"customerId": 2,
|
||||
"profileType": "ssid",
|
||||
"name": "TipWlan-cloud-3-radios",
|
||||
"details": {
|
||||
"model_type": "SsidConfiguration",
|
||||
"ssid": "TipWlan-cloud-3-radios",
|
||||
"appliedRadios": [
|
||||
"is5GHzU",
|
||||
"is2dot4GHz",
|
||||
"is5GHzL"
|
||||
],
|
||||
"ssidAdminState": "enabled",
|
||||
"secureMode": "wpa2OnlyPSK",
|
||||
"vlanId": 1,
|
||||
"keyStr": "openwifi",
|
||||
"broadcastSsid": "enabled",
|
||||
"keyRefresh": 0,
|
||||
"noLocalSubnets": false,
|
||||
"radiusServiceId": 0,
|
||||
"radiusAcountingServiceInterval": 60,
|
||||
"captivePortalId": null,
|
||||
"bandwidthLimitDown": 0,
|
||||
"bandwidthLimitUp": 0,
|
||||
"clientBandwidthLimitDown": 0,
|
||||
"clientBandwidthLimitUp": 0,
|
||||
"videoTrafficOnly": false,
|
||||
"radioBasedConfigs": {
|
||||
"is5GHzU": {
|
||||
"model_type": "RadioBasedSsidConfiguration",
|
||||
"enable80211r": null,
|
||||
"enable80211k": null,
|
||||
"enable80211v": null
|
||||
},
|
||||
"is2dot4GHz": {
|
||||
"model_type": "RadioBasedSsidConfiguration",
|
||||
"enable80211r": null,
|
||||
"enable80211k": null,
|
||||
"enable80211v": null
|
||||
},
|
||||
"is5GHz": {
|
||||
"model_type": "RadioBasedSsidConfiguration",
|
||||
"enable80211r": null,
|
||||
"enable80211k": null,
|
||||
"enable80211v": null
|
||||
},
|
||||
"is5GHzL": {
|
||||
"model_type": "RadioBasedSsidConfiguration",
|
||||
"enable80211r": null,
|
||||
"enable80211k": null,
|
||||
"enable80211v": null
|
||||
}
|
||||
},
|
||||
"bonjourGatewayProfileId": null,
|
||||
"enable80211w": null,
|
||||
"wepConfig": null,
|
||||
"forwardMode": "BRIDGE",
|
||||
"profileType": "ssid",
|
||||
"radiusClientConfiguration": {
|
||||
"model_type": "RadiusNasConfiguration",
|
||||
"nasClientId": "DEFAULT",
|
||||
"nasClientIp": "WAN_IP",
|
||||
"userDefinedNasId": null,
|
||||
"userDefinedNasIp": null,
|
||||
"operatorId": null
|
||||
}
|
||||
},
|
||||
"createdTimestamp": 1612285248638,
|
||||
"lastModifiedTimestamp": 1612285248638,
|
||||
"childProfileIds": []
|
||||
}
|
||||
]
|
||||
|
||||
@@ -1,43 +1,42 @@
|
||||
[
|
||||
{
|
||||
"model_type": "Profile",
|
||||
"id": 18,
|
||||
"customerId": 2,
|
||||
"profileType": "passpoint_venue",
|
||||
"name": "TipWlan-Passpoint-Venue",
|
||||
"details": {
|
||||
"model_type": "PasspointVenueProfile",
|
||||
"venueNameSet": [
|
||||
{
|
||||
"model_type": "PasspointVenueName",
|
||||
"locale": "fr_CA",
|
||||
"dupleIso3Language": "fra",
|
||||
"dupleName": "Exemple de lieu",
|
||||
"defaultDupleSeparator": ":",
|
||||
"venueUrl": "http://www.example.com/info-fra",
|
||||
"asDuple": "fra:Exemple de lieu"
|
||||
},
|
||||
{
|
||||
"model_type": "PasspointVenueName",
|
||||
"locale": "en_CA",
|
||||
"dupleIso3Language": "eng",
|
||||
"dupleName": "Example passpoint_venue",
|
||||
"defaultDupleSeparator": ":",
|
||||
"venueUrl": "http://www.example.com/info-eng",
|
||||
"asDuple": "eng:Example passpoint_venue"
|
||||
}
|
||||
],
|
||||
"venueTypeAssignment": {
|
||||
"model_type": "PasspointVenueTypeAssignment",
|
||||
"venueDescription": "Research and Development Facility",
|
||||
"venueGroupId": 2,
|
||||
"venueTypeId": 8
|
||||
},
|
||||
"profileType": "passpoint_venue"
|
||||
},
|
||||
"createdTimestamp": 1606778369950,
|
||||
"lastModifiedTimestamp": 1606778369950,
|
||||
"childProfileIds": [
|
||||
]
|
||||
}
|
||||
{
|
||||
"model_type": "Profile",
|
||||
"id": 33,
|
||||
"customerId": 2,
|
||||
"profileType": "passpoint_venue",
|
||||
"name": "venue-profile-2021-01-21T21:28:58.934Z",
|
||||
"details": {
|
||||
"model_type": "PasspointVenueProfile",
|
||||
"venueNameSet": [
|
||||
{
|
||||
"model_type": "PasspointVenueName",
|
||||
"locale": "fra",
|
||||
"dupleIso3Language": "fra",
|
||||
"dupleName": "Exemple de lieu",
|
||||
"defaultDupleSeparator": ":",
|
||||
"venueUrl": "http://www.example.com/info-fra",
|
||||
"asDuple": "fra:Exemple de lieu"
|
||||
},
|
||||
{
|
||||
"model_type": "PasspointVenueName",
|
||||
"locale": "eng",
|
||||
"dupleIso3Language": "eng",
|
||||
"dupleName": "Example passpoint_venue",
|
||||
"defaultDupleSeparator": ":",
|
||||
"venueUrl": "http://www.example.com/info-eng",
|
||||
"asDuple": "eng:Example passpoint_venue"
|
||||
}
|
||||
],
|
||||
"venueTypeAssignment": {
|
||||
"model_type": "PasspointVenueTypeAssignment",
|
||||
"venueDescription": "Research and Development Facility",
|
||||
"venueGroupId": 2,
|
||||
"venueTypeId": 8
|
||||
},
|
||||
"profileType": "passpoint_venue"
|
||||
},
|
||||
"createdTimestamp": 1611264538947,
|
||||
"lastModifiedTimestamp": 1611264538947,
|
||||
"childProfileIds": []
|
||||
}
|
||||
]
|
||||
@@ -174,7 +174,9 @@ RESTAPI_PROPS="$RESTAPI_PROPS -Dserver.port=4043"
|
||||
|
||||
SPRING_EXTRA_PROPS=" --add-opens java.base/java.lang=ALL-UNNAMED"
|
||||
|
||||
export ALL_PROPS="$PROFILES $SSL_PROPS $CLIENT_MQTT_SSL_PROPS $OVSDB_PROPS $MQTT_PROPS $LOGGING_PROPS $RESTAPI_PROPS $SPRING_EXTRA_PROPS "
|
||||
JVM_EXTRA_PROPS=" ${JVM_MEM_OPTIONS:- } "
|
||||
|
||||
export ALL_PROPS="$JVM_EXTRA_PROPS $PROFILES $SSL_PROPS $CLIENT_MQTT_SSL_PROPS $OVSDB_PROPS $MQTT_PROPS $LOGGING_PROPS $RESTAPI_PROPS $SPRING_EXTRA_PROPS "
|
||||
|
||||
echo Starting opensync wifi controller
|
||||
|
||||
|
||||
@@ -1,221 +1,472 @@
|
||||
{
|
||||
"model_type": "Equipment",
|
||||
"id": 51,
|
||||
"customerId": 2,
|
||||
"profileId": 12,
|
||||
"locationId": 8,
|
||||
"equipmentType": "AP",
|
||||
"inventoryId": "Test_Client_21P10C68818122",
|
||||
"name": "Test_Client_21P10C68818122",
|
||||
"details": {
|
||||
"model_type": "ApElementConfiguration",
|
||||
"equipmentModel": "EA8300-CA",
|
||||
"elementConfigVersion": "AP-V1",
|
||||
"model_type": "Equipment",
|
||||
"id": 1,
|
||||
"customerId": 2,
|
||||
"profileId": 8,
|
||||
"locationId": 8,
|
||||
"equipmentType": "AP",
|
||||
"deviceMode": "standaloneAP",
|
||||
"gettingIP": "dhcp",
|
||||
"staticIP": null,
|
||||
"staticIpMaskCidr": null,
|
||||
"staticIpGw": null,
|
||||
"gettingDNS": "dhcp",
|
||||
"staticDnsIp1": null,
|
||||
"staticDnsIp2": null,
|
||||
"peerInfoList": [],
|
||||
"deviceName": "Default Device Name",
|
||||
"locationData": null,
|
||||
"locallyConfiguredMgmtVlan": 0,
|
||||
"locallyConfigured": false,
|
||||
"deploymentType": "CEILING",
|
||||
"syntheticClientEnabled": null,
|
||||
"frameReportThrottleEnabled": true,
|
||||
"antennaType": "OMNI",
|
||||
"costSavingEventsEnabled": true,
|
||||
"forwardMode": "BRIDGE",
|
||||
"radioMap": {
|
||||
"is2dot4GHz": {
|
||||
"model_type": "ElementRadioConfiguration",
|
||||
"radioType": "is2dot4GHz",
|
||||
"channelNumber": 6,
|
||||
"manualChannelNumber": 6,
|
||||
"backupChannelNumber": 11,
|
||||
"bannedChannels": [],
|
||||
"allowedChannels": [],
|
||||
"rxCellSizeDb": {
|
||||
"model_type": "SourceSelectionValue",
|
||||
"source": "auto",
|
||||
"value": -90
|
||||
"inventoryId": "Open_AP_21P10C68818122",
|
||||
"name": "Open_AP_21P10C68818122",
|
||||
"details": {
|
||||
"model_type": "ApElementConfiguration",
|
||||
"equipmentModel": "EA8300-CA",
|
||||
"elementConfigVersion": "AP-V1",
|
||||
"equipmentType": "AP",
|
||||
"deviceMode": "standaloneAP",
|
||||
"gettingIP": "dhcp",
|
||||
"staticIP": null,
|
||||
"staticIpMaskCidr": null,
|
||||
"staticIpGw": null,
|
||||
"gettingDNS": "dhcp",
|
||||
"staticDnsIp1": null,
|
||||
"staticDnsIp2": null,
|
||||
"peerInfoList": [],
|
||||
"deviceName": "Open_AP_21P10C68818122",
|
||||
"locationData": null,
|
||||
"locallyConfiguredMgmtVlan": 0,
|
||||
"locallyConfigured": false,
|
||||
"deploymentType": "CEILING",
|
||||
"syntheticClientEnabled": null,
|
||||
"frameReportThrottleEnabled": true,
|
||||
"antennaType": "OMNI",
|
||||
"costSavingEventsEnabled": true,
|
||||
"forwardMode": "BRIDGE",
|
||||
"radioMap": {
|
||||
"is5GHzU": {
|
||||
"model_type": "ElementRadioConfiguration",
|
||||
"radioType": "is5GHzU",
|
||||
"channelNumber": 149,
|
||||
"manualChannelNumber": 149,
|
||||
"backupChannelNumber": 157,
|
||||
"manualBackupChannelNumber": 157,
|
||||
"rxCellSizeDb": {
|
||||
"model_type": "SourceSelectionValue",
|
||||
"source": "profile",
|
||||
"value": -90
|
||||
},
|
||||
"probeResponseThresholdDb": {
|
||||
"model_type": "SourceSelectionValue",
|
||||
"source": "profile",
|
||||
"value": -90
|
||||
},
|
||||
"clientDisconnectThresholdDb": {
|
||||
"model_type": "SourceSelectionValue",
|
||||
"source": "profile",
|
||||
"value": -90
|
||||
},
|
||||
"eirpTxPower": {
|
||||
"model_type": "SourceSelectionValue",
|
||||
"source": "profile",
|
||||
"value": 18
|
||||
},
|
||||
"perimeterDetectionEnabled": true,
|
||||
"bestAPSteerType": "both",
|
||||
"deauthAttackDetection": null,
|
||||
"allowedChannelsPowerLevels": [
|
||||
{
|
||||
"model_type": "ChannelPowerLevel",
|
||||
"channelNumber": 161,
|
||||
"powerLevel": 18,
|
||||
"dfs": false,
|
||||
"channelWidth": 80
|
||||
},
|
||||
{
|
||||
"model_type": "ChannelPowerLevel",
|
||||
"channelNumber": 100,
|
||||
"powerLevel": 18,
|
||||
"dfs": true,
|
||||
"channelWidth": 80
|
||||
},
|
||||
{
|
||||
"model_type": "ChannelPowerLevel",
|
||||
"channelNumber": 132,
|
||||
"powerLevel": 18,
|
||||
"dfs": true,
|
||||
"channelWidth": 80
|
||||
},
|
||||
{
|
||||
"model_type": "ChannelPowerLevel",
|
||||
"channelNumber": 165,
|
||||
"powerLevel": 18,
|
||||
"dfs": false,
|
||||
"channelWidth": 80
|
||||
},
|
||||
{
|
||||
"model_type": "ChannelPowerLevel",
|
||||
"channelNumber": 104,
|
||||
"powerLevel": 18,
|
||||
"dfs": true,
|
||||
"channelWidth": 80
|
||||
},
|
||||
{
|
||||
"model_type": "ChannelPowerLevel",
|
||||
"channelNumber": 136,
|
||||
"powerLevel": 18,
|
||||
"dfs": true,
|
||||
"channelWidth": 80
|
||||
},
|
||||
{
|
||||
"model_type": "ChannelPowerLevel",
|
||||
"channelNumber": 108,
|
||||
"powerLevel": 18,
|
||||
"dfs": true,
|
||||
"channelWidth": 80
|
||||
},
|
||||
{
|
||||
"model_type": "ChannelPowerLevel",
|
||||
"channelNumber": 140,
|
||||
"powerLevel": 18,
|
||||
"dfs": true,
|
||||
"channelWidth": 80
|
||||
},
|
||||
{
|
||||
"model_type": "ChannelPowerLevel",
|
||||
"channelNumber": 112,
|
||||
"powerLevel": 18,
|
||||
"dfs": true,
|
||||
"channelWidth": 80
|
||||
},
|
||||
{
|
||||
"model_type": "ChannelPowerLevel",
|
||||
"channelNumber": 144,
|
||||
"powerLevel": 18,
|
||||
"dfs": true,
|
||||
"channelWidth": 80
|
||||
},
|
||||
{
|
||||
"model_type": "ChannelPowerLevel",
|
||||
"channelNumber": 116,
|
||||
"powerLevel": 18,
|
||||
"dfs": true,
|
||||
"channelWidth": 80
|
||||
},
|
||||
{
|
||||
"model_type": "ChannelPowerLevel",
|
||||
"channelNumber": 149,
|
||||
"powerLevel": 18,
|
||||
"dfs": false,
|
||||
"channelWidth": 80
|
||||
},
|
||||
{
|
||||
"model_type": "ChannelPowerLevel",
|
||||
"channelNumber": 153,
|
||||
"powerLevel": 18,
|
||||
"dfs": false,
|
||||
"channelWidth": 80
|
||||
},
|
||||
{
|
||||
"model_type": "ChannelPowerLevel",
|
||||
"channelNumber": 157,
|
||||
"powerLevel": 18,
|
||||
"dfs": false,
|
||||
"channelWidth": 80
|
||||
}
|
||||
]
|
||||
},
|
||||
"is2dot4GHz": {
|
||||
"model_type": "ElementRadioConfiguration",
|
||||
"radioType": "is2dot4GHz",
|
||||
"channelNumber": 6,
|
||||
"manualChannelNumber": 6,
|
||||
"backupChannelNumber": 11,
|
||||
"manualBackupChannelNumber": 11,
|
||||
"rxCellSizeDb": {
|
||||
"model_type": "SourceSelectionValue",
|
||||
"source": "profile",
|
||||
"value": -90
|
||||
},
|
||||
"probeResponseThresholdDb": {
|
||||
"model_type": "SourceSelectionValue",
|
||||
"source": "profile",
|
||||
"value": -90
|
||||
},
|
||||
"clientDisconnectThresholdDb": {
|
||||
"model_type": "SourceSelectionValue",
|
||||
"source": "profile",
|
||||
"value": -90
|
||||
},
|
||||
"eirpTxPower": {
|
||||
"model_type": "SourceSelectionValue",
|
||||
"source": "profile",
|
||||
"value": 18
|
||||
},
|
||||
"perimeterDetectionEnabled": true,
|
||||
"bestAPSteerType": "both",
|
||||
"deauthAttackDetection": null,
|
||||
"allowedChannelsPowerLevels": [
|
||||
{
|
||||
"model_type": "ChannelPowerLevel",
|
||||
"channelNumber": 1,
|
||||
"powerLevel": 18,
|
||||
"dfs": false,
|
||||
"channelWidth": 20
|
||||
},
|
||||
{
|
||||
"model_type": "ChannelPowerLevel",
|
||||
"channelNumber": 2,
|
||||
"powerLevel": 18,
|
||||
"dfs": false,
|
||||
"channelWidth": 20
|
||||
},
|
||||
{
|
||||
"model_type": "ChannelPowerLevel",
|
||||
"channelNumber": 3,
|
||||
"powerLevel": 18,
|
||||
"dfs": false,
|
||||
"channelWidth": 20
|
||||
},
|
||||
{
|
||||
"model_type": "ChannelPowerLevel",
|
||||
"channelNumber": 4,
|
||||
"powerLevel": 18,
|
||||
"dfs": false,
|
||||
"channelWidth": 20
|
||||
},
|
||||
{
|
||||
"model_type": "ChannelPowerLevel",
|
||||
"channelNumber": 5,
|
||||
"powerLevel": 18,
|
||||
"dfs": false,
|
||||
"channelWidth": 20
|
||||
},
|
||||
{
|
||||
"model_type": "ChannelPowerLevel",
|
||||
"channelNumber": 6,
|
||||
"powerLevel": 18,
|
||||
"dfs": false,
|
||||
"channelWidth": 20
|
||||
},
|
||||
{
|
||||
"model_type": "ChannelPowerLevel",
|
||||
"channelNumber": 7,
|
||||
"powerLevel": 18,
|
||||
"dfs": false,
|
||||
"channelWidth": 20
|
||||
},
|
||||
{
|
||||
"model_type": "ChannelPowerLevel",
|
||||
"channelNumber": 8,
|
||||
"powerLevel": 18,
|
||||
"dfs": false,
|
||||
"channelWidth": 20
|
||||
},
|
||||
{
|
||||
"model_type": "ChannelPowerLevel",
|
||||
"channelNumber": 9,
|
||||
"powerLevel": 18,
|
||||
"dfs": false,
|
||||
"channelWidth": 20
|
||||
},
|
||||
{
|
||||
"model_type": "ChannelPowerLevel",
|
||||
"channelNumber": 10,
|
||||
"powerLevel": 18,
|
||||
"dfs": false,
|
||||
"channelWidth": 20
|
||||
},
|
||||
{
|
||||
"model_type": "ChannelPowerLevel",
|
||||
"channelNumber": 11,
|
||||
"powerLevel": 18,
|
||||
"dfs": false,
|
||||
"channelWidth": 20
|
||||
}
|
||||
]
|
||||
},
|
||||
"is5GHzL": {
|
||||
"model_type": "ElementRadioConfiguration",
|
||||
"radioType": "is5GHzL",
|
||||
"channelNumber": 36,
|
||||
"manualChannelNumber": 36,
|
||||
"backupChannelNumber": 44,
|
||||
"manualBackupChannelNumber": 44,
|
||||
"rxCellSizeDb": {
|
||||
"model_type": "SourceSelectionValue",
|
||||
"source": "profile",
|
||||
"value": -90
|
||||
},
|
||||
"probeResponseThresholdDb": {
|
||||
"model_type": "SourceSelectionValue",
|
||||
"source": "profile",
|
||||
"value": -90
|
||||
},
|
||||
"clientDisconnectThresholdDb": {
|
||||
"model_type": "SourceSelectionValue",
|
||||
"source": "profile",
|
||||
"value": -90
|
||||
},
|
||||
"eirpTxPower": {
|
||||
"model_type": "SourceSelectionValue",
|
||||
"source": "profile",
|
||||
"value": 18
|
||||
},
|
||||
"perimeterDetectionEnabled": true,
|
||||
"bestAPSteerType": "both",
|
||||
"deauthAttackDetection": null,
|
||||
"allowedChannelsPowerLevels": [
|
||||
{
|
||||
"model_type": "ChannelPowerLevel",
|
||||
"channelNumber": 52,
|
||||
"powerLevel": 18,
|
||||
"dfs": true,
|
||||
"channelWidth": 80
|
||||
},
|
||||
{
|
||||
"model_type": "ChannelPowerLevel",
|
||||
"channelNumber": 36,
|
||||
"powerLevel": 18,
|
||||
"dfs": false,
|
||||
"channelWidth": 80
|
||||
},
|
||||
{
|
||||
"model_type": "ChannelPowerLevel",
|
||||
"channelNumber": 56,
|
||||
"powerLevel": 18,
|
||||
"dfs": true,
|
||||
"channelWidth": 80
|
||||
},
|
||||
{
|
||||
"model_type": "ChannelPowerLevel",
|
||||
"channelNumber": 40,
|
||||
"powerLevel": 18,
|
||||
"dfs": false,
|
||||
"channelWidth": 80
|
||||
},
|
||||
{
|
||||
"model_type": "ChannelPowerLevel",
|
||||
"channelNumber": 60,
|
||||
"powerLevel": 18,
|
||||
"dfs": true,
|
||||
"channelWidth": 80
|
||||
},
|
||||
{
|
||||
"model_type": "ChannelPowerLevel",
|
||||
"channelNumber": 44,
|
||||
"powerLevel": 18,
|
||||
"dfs": false,
|
||||
"channelWidth": 80
|
||||
},
|
||||
{
|
||||
"model_type": "ChannelPowerLevel",
|
||||
"channelNumber": 64,
|
||||
"powerLevel": 18,
|
||||
"dfs": true,
|
||||
"channelWidth": 80
|
||||
},
|
||||
{
|
||||
"model_type": "ChannelPowerLevel",
|
||||
"channelNumber": 48,
|
||||
"powerLevel": 18,
|
||||
"dfs": false,
|
||||
"channelWidth": 80
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"probeResponseThresholdDb": {
|
||||
"model_type": "SourceSelectionValue",
|
||||
"source": "auto",
|
||||
"value": -90
|
||||
},
|
||||
"clientDisconnectThresholdDb": {
|
||||
"model_type": "SourceSelectionValue",
|
||||
"source": "auto",
|
||||
"value": -90
|
||||
},
|
||||
"eirpTxPower": {
|
||||
"model_type": "SourceSelectionValue",
|
||||
"source": "auto",
|
||||
"value": 32
|
||||
},
|
||||
"perimeterDetectionEnabled": true,
|
||||
"bestAPSteerType": "both",
|
||||
"deauthAttackDetection": null,
|
||||
"allowedChannelsPowerLevels": [],
|
||||
"activeChannel": 6
|
||||
},
|
||||
"is5GHzU": {
|
||||
"model_type": "ElementRadioConfiguration",
|
||||
"radioType": "is5GHzU",
|
||||
"channelNumber": 149,
|
||||
"manualChannelNumber": 149,
|
||||
"backupChannelNumber": 154,
|
||||
"bannedChannels": [],
|
||||
"allowedChannels": [],
|
||||
"rxCellSizeDb": {
|
||||
"model_type": "SourceSelectionValue",
|
||||
"source": "auto",
|
||||
"value": -90
|
||||
},
|
||||
"probeResponseThresholdDb": {
|
||||
"model_type": "SourceSelectionValue",
|
||||
"source": "auto",
|
||||
"value": -90
|
||||
},
|
||||
"clientDisconnectThresholdDb": {
|
||||
"model_type": "SourceSelectionValue",
|
||||
"source": "auto",
|
||||
"value": -90
|
||||
},
|
||||
"eirpTxPower": {
|
||||
"model_type": "SourceSelectionValue",
|
||||
"source": "auto",
|
||||
"value": 32
|
||||
},
|
||||
"perimeterDetectionEnabled": true,
|
||||
"bestAPSteerType": "both",
|
||||
"deauthAttackDetection": null,
|
||||
"allowedChannelsPowerLevels": [],
|
||||
"activeChannel": 149
|
||||
},
|
||||
"is5GHzL": {
|
||||
"model_type": "ElementRadioConfiguration",
|
||||
"radioType": "is5GHzL",
|
||||
"channelNumber": 36,
|
||||
"manualChannelNumber": 36,
|
||||
"backupChannelNumber": 44,
|
||||
"bannedChannels": [],
|
||||
"allowedChannels": [],
|
||||
"rxCellSizeDb": {
|
||||
"model_type": "SourceSelectionValue",
|
||||
"source": "auto",
|
||||
"value": -90
|
||||
},
|
||||
"probeResponseThresholdDb": {
|
||||
"model_type": "SourceSelectionValue",
|
||||
"source": "auto",
|
||||
"value": -90
|
||||
},
|
||||
"clientDisconnectThresholdDb": {
|
||||
"model_type": "SourceSelectionValue",
|
||||
"source": "auto",
|
||||
"value": -90
|
||||
},
|
||||
"eirpTxPower": {
|
||||
"model_type": "SourceSelectionValue",
|
||||
"source": "auto",
|
||||
"value": 32
|
||||
},
|
||||
"perimeterDetectionEnabled": true,
|
||||
"bestAPSteerType": "both",
|
||||
"deauthAttackDetection": null,
|
||||
"allowedChannelsPowerLevels": [],
|
||||
"activeChannel": 36
|
||||
}
|
||||
"advancedRadioMap": {
|
||||
"is2dot4GHz": {
|
||||
"model_type": "RadioConfiguration",
|
||||
"radioType": "is2dot4GHz",
|
||||
"radioAdminState": "enabled",
|
||||
"fragmentationThresholdBytes": 2346,
|
||||
"uapsdState": "enabled",
|
||||
"stationIsolation": "disabled",
|
||||
"multicastRate": {
|
||||
"model_type": "SourceSelectionMulticast",
|
||||
"source": "profile",
|
||||
"value": "auto"
|
||||
},
|
||||
"managementRate": {
|
||||
"model_type": "SourceSelectionManagement",
|
||||
"source": "profile",
|
||||
"value": "auto"
|
||||
},
|
||||
"bestApSettings": {
|
||||
"model_type": "SourceSelectionSteering",
|
||||
"source": "manual",
|
||||
"value": {
|
||||
"model_type": "RadioBestApSettings",
|
||||
"mlComputed": true,
|
||||
"dropInSnrPercentage": 20,
|
||||
"minLoadFactor": 50
|
||||
}
|
||||
},
|
||||
"legacyBSSRate": "enabled",
|
||||
"dtimPeriod": 2,
|
||||
"deauthAttackDetection": null
|
||||
},
|
||||
"is5GHzU": {
|
||||
"model_type": "RadioConfiguration",
|
||||
"radioType": "is5GHzU",
|
||||
"radioAdminState": "enabled",
|
||||
"fragmentationThresholdBytes": 2346,
|
||||
"uapsdState": "enabled",
|
||||
"stationIsolation": "disabled",
|
||||
"multicastRate": {
|
||||
"model_type": "SourceSelectionMulticast",
|
||||
"source": "profile",
|
||||
"value": "auto"
|
||||
},
|
||||
"managementRate": {
|
||||
"model_type": "SourceSelectionManagement",
|
||||
"source": "profile",
|
||||
"value": "auto"
|
||||
},
|
||||
"bestApSettings": {
|
||||
"model_type": "SourceSelectionSteering",
|
||||
"source": "manual",
|
||||
"value": {
|
||||
"model_type": "RadioBestApSettings",
|
||||
"mlComputed": true,
|
||||
"dropInSnrPercentage": 30,
|
||||
"minLoadFactor": 40
|
||||
}
|
||||
},
|
||||
"legacyBSSRate": "enabled",
|
||||
"dtimPeriod": 2,
|
||||
"deauthAttackDetection": null
|
||||
},
|
||||
"is5GHzL": {
|
||||
"model_type": "RadioConfiguration",
|
||||
"radioType": "is5GHzL",
|
||||
"radioAdminState": "enabled",
|
||||
"fragmentationThresholdBytes": 2346,
|
||||
"uapsdState": "enabled",
|
||||
"stationIsolation": "disabled",
|
||||
"multicastRate": {
|
||||
"model_type": "SourceSelectionMulticast",
|
||||
"source": "profile",
|
||||
"value": "auto"
|
||||
},
|
||||
"managementRate": {
|
||||
"model_type": "SourceSelectionManagement",
|
||||
"source": "profile",
|
||||
"value": "auto"
|
||||
},
|
||||
"bestApSettings": {
|
||||
"model_type": "SourceSelectionSteering",
|
||||
"source": "manual",
|
||||
"value": {
|
||||
"model_type": "RadioBestApSettings",
|
||||
"mlComputed": true,
|
||||
"dropInSnrPercentage": 30,
|
||||
"minLoadFactor": 40
|
||||
}
|
||||
},
|
||||
"legacyBSSRate": "enabled",
|
||||
"dtimPeriod": 2,
|
||||
"deauthAttackDetection": null
|
||||
}
|
||||
}
|
||||
},
|
||||
"advancedRadioMap": {
|
||||
"is2dot4GHz": {
|
||||
"model_type": "RadioConfiguration",
|
||||
"radioType": "is2dot4GHz",
|
||||
"radioAdminState": "enabled",
|
||||
"fragmentationThresholdBytes": 2346,
|
||||
"uapsdState": "enabled",
|
||||
"stationIsolation": "disabled",
|
||||
"managementRate": {
|
||||
"model_type": "SourceSelectionManagement",
|
||||
"source": "auto",
|
||||
"value": "auto"
|
||||
},
|
||||
"bestApSettings": {
|
||||
"model_type": "SourceSelectionSteering",
|
||||
"source": "auto",
|
||||
"value": {
|
||||
"model_type": "RadioBestApSettings",
|
||||
"mlComputed": true,
|
||||
"dropInSnrPercentage": 30,
|
||||
"minLoadFactor": 40
|
||||
}
|
||||
},
|
||||
"legacyBSSRate": "enabled",
|
||||
"deauthAttackDetection": null
|
||||
},
|
||||
"is5GHzU": {
|
||||
"model_type": "RadioConfiguration",
|
||||
"radioType": "is5GHzU",
|
||||
"radioAdminState": "enabled",
|
||||
"fragmentationThresholdBytes": 2346,
|
||||
"uapsdState": "enabled",
|
||||
"stationIsolation": "disabled",
|
||||
"managementRate": {
|
||||
"model_type": "SourceSelectionManagement",
|
||||
"source": "auto",
|
||||
"value": "auto"
|
||||
},
|
||||
"bestApSettings": {
|
||||
"model_type": "SourceSelectionSteering",
|
||||
"source": "auto",
|
||||
"value": {
|
||||
"model_type": "RadioBestApSettings",
|
||||
"mlComputed": true,
|
||||
"dropInSnrPercentage": 30,
|
||||
"minLoadFactor": 40
|
||||
}
|
||||
},
|
||||
"legacyBSSRate": "enabled",
|
||||
"deauthAttackDetection": null
|
||||
},
|
||||
"is5GHzL": {
|
||||
"model_type": "RadioConfiguration",
|
||||
"radioType": "is5GHzL",
|
||||
"radioAdminState": "enabled",
|
||||
"fragmentationThresholdBytes": 2346,
|
||||
"uapsdState": "enabled",
|
||||
"stationIsolation": "disabled",
|
||||
"managementRate": {
|
||||
"model_type": "SourceSelectionManagement",
|
||||
"source": "auto",
|
||||
"value": "auto"
|
||||
},
|
||||
"bestApSettings": {
|
||||
"model_type": "SourceSelectionSteering",
|
||||
"source": "auto",
|
||||
"value": {
|
||||
"model_type": "RadioBestApSettings",
|
||||
"mlComputed": true,
|
||||
"dropInSnrPercentage": 30,
|
||||
"minLoadFactor": 40
|
||||
}
|
||||
},
|
||||
"legacyBSSRate": "enabled",
|
||||
"deauthAttackDetection": null
|
||||
}
|
||||
}
|
||||
},
|
||||
"latitude": null,
|
||||
"longitude": null,
|
||||
"serial": "21P10C68818122",
|
||||
"createdTimestamp": 1591653239821,
|
||||
"lastModifiedTimestamp": 1591653241398
|
||||
"latitude": null,
|
||||
"longitude": null,
|
||||
"baseMacAddress": {
|
||||
"model_type": "MacAddress",
|
||||
"address": "JPWi7y5T",
|
||||
"addressAsString": "24:f5:a2:ef:2e:53"
|
||||
},
|
||||
"serial": "21P10C68818122",
|
||||
"createdTimestamp": 1612285288821,
|
||||
"lastModifiedTimestamp": 1612285293922
|
||||
}
|
||||
@@ -1,60 +1,61 @@
|
||||
{
|
||||
"model_type" : "Location",
|
||||
"id" : 8,
|
||||
"parentId" : 0,
|
||||
"locationType" : "SITE",
|
||||
"customerId" : 2,
|
||||
"name" : "Ottawa",
|
||||
"details" : {
|
||||
"model_type" : "LocationDetails",
|
||||
"countryCode" : "ca",
|
||||
"maintenanceWindow" : null,
|
||||
"rrmEnabled" : true,
|
||||
"dailyActivityDetails" : {
|
||||
"SUNDAY" : {
|
||||
"model_type" : "LocationActivityDetails",
|
||||
"busyTime" : "13:30",
|
||||
"quietTime" : "3:30",
|
||||
"timezone" : "US/Eastern"
|
||||
},
|
||||
"MONDAY" : {
|
||||
"model_type" : "LocationActivityDetails",
|
||||
"busyTime" : "13:30",
|
||||
"quietTime" : "3:30",
|
||||
"timezone" : "US/Eastern"
|
||||
},
|
||||
"TUESDAY" : {
|
||||
"model_type" : "LocationActivityDetails",
|
||||
"busyTime" : "13:30",
|
||||
"quietTime" : "3:30",
|
||||
"timezone" : "US/Eastern"
|
||||
},
|
||||
"WEDNESDAY" : {
|
||||
"model_type" : "LocationActivityDetails",
|
||||
"busyTime" : "13:30",
|
||||
"quietTime" : "3:30",
|
||||
"timezone" : "US/Eastern"
|
||||
},
|
||||
"THURSDAY" : {
|
||||
"model_type" : "LocationActivityDetails",
|
||||
"busyTime" : "13:30",
|
||||
"quietTime" : "3:30",
|
||||
"timezone" : "US/Eastern"
|
||||
},
|
||||
"FRIDAY" : {
|
||||
"model_type" : "LocationActivityDetails",
|
||||
"busyTime" : "13:30",
|
||||
"quietTime" : "3:30",
|
||||
"timezone" : "US/Eastern"
|
||||
},
|
||||
"SATURDAY" : {
|
||||
"model_type" : "LocationActivityDetails",
|
||||
"busyTime" : "13:30",
|
||||
"quietTime" : "3:30",
|
||||
"timezone" : "US/Eastern"
|
||||
}
|
||||
}
|
||||
},
|
||||
"createdTimestamp" : 1590607043540,
|
||||
"lastModifiedTimestamp" : 1590607043540
|
||||
"model_type": "Location",
|
||||
"id": 8,
|
||||
"parentId": 0,
|
||||
"locationType": "SITE",
|
||||
"customerId": 2,
|
||||
"name": "Ottawa",
|
||||
"details": {
|
||||
"model_type": "LocationDetails",
|
||||
"countryCode": "CA",
|
||||
"dailyActivityDetails": {
|
||||
"SUNDAY": {
|
||||
"model_type": "LocationActivityDetails",
|
||||
"busyTime": "13:30",
|
||||
"quietTime": "3:00",
|
||||
"timezone": "US/Eastern"
|
||||
},
|
||||
"MONDAY": {
|
||||
"model_type": "LocationActivityDetails",
|
||||
"busyTime": "13:30",
|
||||
"quietTime": "3:00",
|
||||
"timezone": "US/Eastern"
|
||||
},
|
||||
"TUESDAY": {
|
||||
"model_type": "LocationActivityDetails",
|
||||
"busyTime": "13:30",
|
||||
"quietTime": "3:00",
|
||||
"timezone": "US/Eastern"
|
||||
},
|
||||
"WEDNESDAY": {
|
||||
"model_type": "LocationActivityDetails",
|
||||
"busyTime": "13:30",
|
||||
"quietTime": "3:00",
|
||||
"timezone": "US/Eastern"
|
||||
},
|
||||
"THURSDAY": {
|
||||
"model_type": "LocationActivityDetails",
|
||||
"busyTime": "13:30",
|
||||
"quietTime": "3:00",
|
||||
"timezone": "US/Eastern"
|
||||
},
|
||||
"FRIDAY": {
|
||||
"model_type": "LocationActivityDetails",
|
||||
"busyTime": "13:30",
|
||||
"quietTime": "3:00",
|
||||
"timezone": "US/Eastern"
|
||||
},
|
||||
"SATURDAY": {
|
||||
"model_type": "LocationActivityDetails",
|
||||
"busyTime": "13:30",
|
||||
"quietTime": "3:00",
|
||||
"timezone": "US/Eastern"
|
||||
}
|
||||
},
|
||||
"maintenanceWindow": null,
|
||||
"rrmEnabled": true,
|
||||
"timezone": "US/Eastern"
|
||||
},
|
||||
"createdTimestamp": 1612285243534,
|
||||
"lastModifiedTimestamp": 1612285243534
|
||||
}
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"model_type": "Profile",
|
||||
"id": 12,
|
||||
"id": 8,
|
||||
"customerId": 2,
|
||||
"profileType": "equipment_ap",
|
||||
"name": "ApProfile-3-radios",
|
||||
@@ -20,11 +20,6 @@
|
||||
"syntheticClientEnabled": true,
|
||||
"ledControlEnabled": true,
|
||||
"equipmentDiscovery": false,
|
||||
"greTunnelName": null,
|
||||
"greParentIfName": null,
|
||||
"greLocalInetAddr": null,
|
||||
"greRemoteInetAddr": null,
|
||||
"greRemoteMacAddr": null,
|
||||
"radioMap": {
|
||||
"is2dot4GHz": {
|
||||
"model_type": "RadioProfileConfiguration",
|
||||
@@ -42,15 +37,22 @@
|
||||
"bestAPSteerType": "both"
|
||||
}
|
||||
},
|
||||
"greTunnelConfigurations": [
|
||||
{
|
||||
"model_type": "GreTunnelConfiguration",
|
||||
"greTunnelName": "gre1",
|
||||
"greRemoteInetAddr": "192.168.1.101",
|
||||
"vlanIdsInGreTunnel": [
|
||||
100
|
||||
]
|
||||
}
|
||||
],
|
||||
"profileType": "equipment_ap"
|
||||
},
|
||||
"createdTimestamp": 1606778369934,
|
||||
"lastModifiedTimestamp": 1606778443413,
|
||||
"createdTimestamp": 1612285248925,
|
||||
"lastModifiedTimestamp": 1612285628377,
|
||||
"childProfileIds": [
|
||||
16,
|
||||
5,
|
||||
10,
|
||||
11,
|
||||
15
|
||||
2,
|
||||
4
|
||||
]
|
||||
}
|
||||
@@ -1,135 +1,58 @@
|
||||
[
|
||||
{
|
||||
{
|
||||
"model_type": "Profile",
|
||||
"id": 14,
|
||||
"id": 5,
|
||||
"customerId": 2,
|
||||
"profileType": "captive_portal",
|
||||
"name": "Captive-portal",
|
||||
"details": {
|
||||
"model_type": "CaptivePortalConfiguration",
|
||||
"name": "Captive-portal",
|
||||
"browserTitle": "Access the network as Guest",
|
||||
"headerContent": "Captive Portal",
|
||||
"userAcceptancePolicy": "Use this network at your own risk. No warranty of any kind.",
|
||||
"successPageMarkdownText": "Welcome to the network",
|
||||
"redirectURL": "",
|
||||
"externalCaptivePortalURL": null,
|
||||
"sessionTimeoutInMinutes": 60,
|
||||
"logoFile": null,
|
||||
"backgroundFile": null,
|
||||
"walledGardenAllowlist": [],
|
||||
"usernamePasswordFile": {
|
||||
"model_type": "ManagedFileInfo",
|
||||
"md5checksum": null,
|
||||
"lastModifiedTimestamp": null,
|
||||
"apExportUrl": "userList",
|
||||
"fileCategory": "UsernamePasswordList",
|
||||
"fileType": "TEXT",
|
||||
"altSlot": true
|
||||
},
|
||||
"authenticationType": "guest",
|
||||
"radiusAuthMethod": "CHAP",
|
||||
"maxUsersWithSameCredentials": 42,
|
||||
"externalPolicyFile": null,
|
||||
"backgroundPosition": "left_top",
|
||||
"backgroundRepeat": "no_repeat",
|
||||
"radiusServiceName": null,
|
||||
"expiryType": "unlimited",
|
||||
"userList": [
|
||||
{
|
||||
"model_type": "TimedAccessUserRecord",
|
||||
"username": "customer",
|
||||
"password": "testing123",
|
||||
"activationTime": 1602183994956,
|
||||
"expirationTime": 1602212794956,
|
||||
"numDevices": 1,
|
||||
"userDetails": {
|
||||
"model_type": "TimedAccessUserDetails",
|
||||
"firstName": "Pac",
|
||||
"lastName": "Man",
|
||||
"passwordNeedsReset": false
|
||||
},
|
||||
"userMacAddresses": [
|
||||
{
|
||||
"model_type": "MacAddress",
|
||||
"address": "fKtg5upO",
|
||||
"addressAsString": "7c:ab:60:e6:ea:4e"
|
||||
}
|
||||
],
|
||||
"lastModifiedTimestamp": 0
|
||||
},
|
||||
{
|
||||
"model_type": "TimedAccessUserRecord",
|
||||
"username": "customer",
|
||||
"password": "testing123",
|
||||
"activationTime": 1602183994957,
|
||||
"expirationTime": 1602187594957,
|
||||
"numDevices": 0,
|
||||
"userDetails": {
|
||||
"model_type": "TimedAccessUserDetails",
|
||||
"firstName": "Q",
|
||||
"lastName": "Bert",
|
||||
"passwordNeedsReset": false
|
||||
},
|
||||
"userMacAddresses": [
|
||||
{
|
||||
"model_type": "MacAddress",
|
||||
"address": "wJrQdqho",
|
||||
"addressAsString": "c0:9a:d0:76:a8:68"
|
||||
}
|
||||
],
|
||||
"lastModifiedTimestamp": 0
|
||||
},
|
||||
{
|
||||
"model_type": "TimedAccessUserRecord",
|
||||
"username": "customer2",
|
||||
"password": "testing1234",
|
||||
"activationTime": 1602183994957,
|
||||
"expirationTime": 1602788794957,
|
||||
"numDevices": 1,
|
||||
"userDetails": {
|
||||
"model_type": "TimedAccessUserDetails",
|
||||
"firstName": "Duke",
|
||||
"lastName": "Nukem",
|
||||
"passwordNeedsReset": false
|
||||
},
|
||||
"userMacAddresses": [
|
||||
{
|
||||
"model_type": "MacAddress",
|
||||
"address": "fKtg5upN",
|
||||
"addressAsString": "7c:ab:60:e6:ea:4d"
|
||||
}
|
||||
],
|
||||
"lastModifiedTimestamp": 0
|
||||
},
|
||||
{
|
||||
"model_type": "TimedAccessUserRecord",
|
||||
"username": "customer2",
|
||||
"password": "testing1234",
|
||||
"activationTime": 1602183994957,
|
||||
"expirationTime": 1602270394957,
|
||||
"numDevices": 0,
|
||||
"userDetails": {
|
||||
"model_type": "TimedAccessUserDetails",
|
||||
"firstName": "Missile",
|
||||
"lastName": "Commander",
|
||||
"passwordNeedsReset": false
|
||||
},
|
||||
"userMacAddresses": [
|
||||
{
|
||||
"model_type": "MacAddress",
|
||||
"address": "wJrQdqhj",
|
||||
"addressAsString": "c0:9a:d0:76:a8:63"
|
||||
}
|
||||
],
|
||||
"lastModifiedTimestamp": 0
|
||||
}
|
||||
],
|
||||
"macAllowList": [],
|
||||
"profileType": "captive_portal"
|
||||
"model_type": "CaptivePortalConfiguration",
|
||||
"name": "Default",
|
||||
"browserTitle": "Captive-portal",
|
||||
"headerContent": "Captive Portal",
|
||||
"userAcceptancePolicy": "Please agree to the following terms for using this network:",
|
||||
"successPageMarkdownText": "You are now authorized and connected to the network.",
|
||||
"redirectURL": "https://www.google.com",
|
||||
"externalCaptivePortalURL": null,
|
||||
"sessionTimeoutInMinutes": 10,
|
||||
"logoFile": {
|
||||
"model_type": "ManagedFileInfo",
|
||||
"md5checksum": null,
|
||||
"lastModifiedTimestamp": null,
|
||||
"apExportUrl": "/filestore/tip-logo-mobile",
|
||||
"fileCategory": "CaptivePortalLogo",
|
||||
"fileType": "PNG",
|
||||
"altSlot": false
|
||||
},
|
||||
"backgroundFile": {
|
||||
"model_type": "ManagedFileInfo",
|
||||
"md5checksum": null,
|
||||
"lastModifiedTimestamp": null,
|
||||
"apExportUrl": "/filestore/tip-logo",
|
||||
"fileCategory": "CaptivePortalBackground",
|
||||
"fileType": "PNG",
|
||||
"altSlot": false
|
||||
},
|
||||
"walledGardenAllowlist": [
|
||||
],
|
||||
"usernamePasswordFile": null,
|
||||
"authenticationType": "guest",
|
||||
"radiusAuthMethod": "CHAP",
|
||||
"maxUsersWithSameCredentials": 3,
|
||||
"externalPolicyFile": null,
|
||||
"backgroundPosition": "left_top",
|
||||
"backgroundRepeat": "no_repeat",
|
||||
"radiusServiceId": 0,
|
||||
"expiryType": "time_limited",
|
||||
"userList": [
|
||||
],
|
||||
"macAllowList": [
|
||||
],
|
||||
"profileType": "captive_portal"
|
||||
},
|
||||
"createdTimestamp": 1602183994959,
|
||||
"lastModifiedTimestamp": 1602183994959,
|
||||
"childProfileIds": []
|
||||
}
|
||||
"createdTimestamp": 1611857459118,
|
||||
"lastModifiedTimestamp": 1611857459118,
|
||||
"childProfileIds": [
|
||||
]
|
||||
}
|
||||
]
|
||||
@@ -1,71 +1,71 @@
|
||||
[
|
||||
{
|
||||
"model_type": "Profile",
|
||||
"id": 24,
|
||||
"customerId": 2,
|
||||
"profileType": "passpoint",
|
||||
"name": "TipWlan-Passpoint-Config",
|
||||
"details": {
|
||||
"model_type": "PasspointProfile",
|
||||
"enableInterworkingAndHs20": true,
|
||||
"hessid": null,
|
||||
"passpointAccessNetworkType": "free_public_network",
|
||||
"passpointNetworkAuthenticationType": "acceptance_of_terms_and_conditions",
|
||||
"additionalStepsRequiredForAccess": 0,
|
||||
"deauthRequestTimeout": 0,
|
||||
"operatingClass": 0,
|
||||
"termsAndConditionsFile": {
|
||||
"model_type": "ManagedFileInfo",
|
||||
"md5checksum": null,
|
||||
"lastModifiedTimestamp": null,
|
||||
"apExportUrl": "https://localhost:9091/filestore/termsAndConditions",
|
||||
"fileCategory": "ExternalPolicyConfiguration",
|
||||
"fileType": "TEXT",
|
||||
"altSlot": false
|
||||
},
|
||||
"whitelistDomain": null,
|
||||
"emergencyServicesReachable": true,
|
||||
"unauthenticatedEmergencyServiceAccessible": false,
|
||||
"internetConnectivity": true,
|
||||
"connectionCapabilitySet": [
|
||||
{
|
||||
"model_type": "PasspointConnectionCapability",
|
||||
"connectionCapabilitiesPortNumber": 8888,
|
||||
"connectionCapabilitiesStatus": "open",
|
||||
"connectionCapabilitiesIpProtocol": "TCP"
|
||||
}
|
||||
],
|
||||
"ipAddressTypeAvailability": "public_IPv4_address_available",
|
||||
"qosMapSetConfiguration": null,
|
||||
"apGeospatialLocation": null,
|
||||
"apCivicLocation": null,
|
||||
"apPublicLocationIdUri": null,
|
||||
"gasAddr3Behaviour": "p2pSpecWorkaroundFromRequest",
|
||||
"anqpDomainId": 1234,
|
||||
"disableDownstreamGroupAddressedForwarding": false,
|
||||
"enable2pt4GHz": true,
|
||||
"enable5GHz": true,
|
||||
"associatedAccessSsidProfileIds": [
|
||||
15
|
||||
],
|
||||
"osuSsidProfileId": 16,
|
||||
"passpointOperatorProfileId": 17,
|
||||
"passpointVenueProfileId": 18,
|
||||
"passpointOsuProviderProfileIds": [
|
||||
19,
|
||||
20
|
||||
],
|
||||
"accessNetworkType": "free_public_network",
|
||||
"networkAuthenticationType": "acceptance_of_terms_and_conditions",
|
||||
"profileType": "passpoint"
|
||||
},
|
||||
"createdTimestamp": 1606778370807,
|
||||
"lastModifiedTimestamp": 1606778370807,
|
||||
"childProfileIds": [
|
||||
17,
|
||||
18,
|
||||
19,
|
||||
20
|
||||
]
|
||||
}
|
||||
{
|
||||
"model_type": "Profile",
|
||||
"id": 37,
|
||||
"customerId": 2,
|
||||
"profileType": "passpoint",
|
||||
"name": "hotspot20-profile-2021-01-21T21:28:59.171Z",
|
||||
"details": {
|
||||
"model_type": "PasspointProfile",
|
||||
"enableInterworkingAndHs20": true,
|
||||
"hessid": null,
|
||||
"passpointAccessNetworkType": "free_public_network",
|
||||
"passpointNetworkAuthenticationType": "acceptance_of_terms_and_conditions",
|
||||
"additionalStepsRequiredForAccess": 0,
|
||||
"deauthRequestTimeout": 0,
|
||||
"operatingClass": 0,
|
||||
"termsAndConditionsFile": {
|
||||
"model_type": "ManagedFileInfo",
|
||||
"md5checksum": null,
|
||||
"lastModifiedTimestamp": null,
|
||||
"apExportUrl": "https://localhost:9091/filestore/termsAndConditions",
|
||||
"fileCategory": "ExternalPolicyConfiguration",
|
||||
"fileType": "TEXT",
|
||||
"altSlot": false
|
||||
},
|
||||
"whitelistDomain": null,
|
||||
"emergencyServicesReachable": true,
|
||||
"unauthenticatedEmergencyServiceAccessible": false,
|
||||
"internetConnectivity": true,
|
||||
"connectionCapabilitySet": [
|
||||
{
|
||||
"model_type": "PasspointConnectionCapability",
|
||||
"connectionCapabilitiesPortNumber": 8888,
|
||||
"connectionCapabilitiesIpProtocol": "TCP",
|
||||
"connectionCapabilitiesStatus": "open"
|
||||
}
|
||||
],
|
||||
"ipAddressTypeAvailability": "public_IPv4_address_available",
|
||||
"qosMapSetConfiguration": null,
|
||||
"apGeospatialLocation": null,
|
||||
"apCivicLocation": null,
|
||||
"apPublicLocationIdUri": null,
|
||||
"gasAddr3Behaviour": "p2pSpecWorkaroundFromRequest",
|
||||
"anqpDomainId": 1234,
|
||||
"disableDownstreamGroupAddressedForwarding": false,
|
||||
"enable2pt4GHz": true,
|
||||
"enable5GHz": true,
|
||||
"associatedAccessSsidProfileIds": [
|
||||
32
|
||||
],
|
||||
"osuSsidProfileId": 31,
|
||||
"passpointOperatorProfileId": 34,
|
||||
"passpointVenueProfileId": 33,
|
||||
"passpointOsuProviderProfileIds": [
|
||||
35,
|
||||
36
|
||||
],
|
||||
"accessNetworkType": "free_public_network",
|
||||
"networkAuthenticationType": "acceptance_of_terms_and_conditions",
|
||||
"profileType": "passpoint"
|
||||
},
|
||||
"createdTimestamp": 0,
|
||||
"lastModifiedTimestamp": 1611264539331,
|
||||
"childProfileIds": [
|
||||
33,
|
||||
34,
|
||||
35,
|
||||
36
|
||||
]
|
||||
}
|
||||
]
|
||||
|
||||
@@ -1,270 +1,263 @@
|
||||
[
|
||||
{
|
||||
"model_type": "Profile",
|
||||
"id": 19,
|
||||
"customerId": 2,
|
||||
"profileType": "passpoint_osu_id_provider",
|
||||
"name": "TipWlan-Passpoint-OSU-Provider",
|
||||
"details": {
|
||||
"model_type": "PasspointOsuProviderProfile",
|
||||
"domainName": "rogers.com",
|
||||
"mccMncList": [
|
||||
{
|
||||
"model_type": "PasspointMccMnc",
|
||||
"mcc": 302,
|
||||
"mnc": 720,
|
||||
"iso": "ca",
|
||||
"country": "Canada",
|
||||
"countryCode": 1,
|
||||
"network": "Rogers AT&T Wireless",
|
||||
"mccMncPairing": "302,720"
|
||||
}
|
||||
],
|
||||
"naiRealmList": [
|
||||
{
|
||||
"model_type": "PasspointNaiRealmInformation",
|
||||
"naiRealms": [
|
||||
"rogers.com"
|
||||
],
|
||||
"encoding": 0,
|
||||
"eapMethods": [
|
||||
"EAP-TTLS with username/password",
|
||||
"EAP-TLS with certificate"
|
||||
],
|
||||
"eapMap": {
|
||||
"EAP-TTLS with username/password": [
|
||||
"Credential Type:username/password",
|
||||
"Non-EAP Inner Authentication Type:MSCHAPV2"
|
||||
],
|
||||
"EAP-TLS with certificate": [
|
||||
"Credential Type:Certificate"
|
||||
]
|
||||
}
|
||||
}
|
||||
],
|
||||
"osuIconList": [
|
||||
{
|
||||
"model_type": "PasspointOsuIcon",
|
||||
"iconWidth": 32,
|
||||
"iconHeight": 32,
|
||||
"languageCode": "eng",
|
||||
"iconLocale": "en_CA",
|
||||
"iconName": "icon32eng",
|
||||
"filePath": "/tmp/icon32eng.png",
|
||||
"imageUrl": "https://localhost:9096/icon32eng.png",
|
||||
"hs20IconString": "32:32:eng:image/png:icon32eng:/tmp/icon32eng.png"
|
||||
},
|
||||
{
|
||||
"model_type": "PasspointOsuIcon",
|
||||
"iconWidth": 32,
|
||||
"iconHeight": 32,
|
||||
"languageCode": "fra",
|
||||
"iconLocale": "fr_CA",
|
||||
"iconName": "icon32fra",
|
||||
"filePath": "/tmp/icon32fra.png",
|
||||
"imageUrl": "https://localhost:9096/icon32fra.png",
|
||||
"hs20IconString": "32:32:fra:image/png:icon32fra:/tmp/icon32fra.png"
|
||||
},
|
||||
{
|
||||
"model_type": "PasspointOsuIcon",
|
||||
"iconWidth": 32,
|
||||
"iconHeight": 32,
|
||||
"languageCode": "eng",
|
||||
"iconLocale": "en_US",
|
||||
"iconName": "icon32usa",
|
||||
"filePath": "/tmp/icon32usa.png",
|
||||
"imageUrl": "https://localhost:9096/icon32usa.png",
|
||||
"hs20IconString": "32:32:eng:image/png:icon32usa:/tmp/icon32usa.png"
|
||||
}
|
||||
],
|
||||
"osuServerUri": "https://example.com/osu/rogers",
|
||||
"osuFriendlyName": [
|
||||
{
|
||||
"model_type": "PasspointDuple",
|
||||
"locale": "en_CA",
|
||||
"dupleIso3Language": "eng",
|
||||
"dupleName": "Example provider rogers",
|
||||
"defaultDupleSeparator": ":",
|
||||
"asDuple": "eng:Example provider rogers"
|
||||
},
|
||||
{
|
||||
"model_type": "PasspointDuple",
|
||||
"locale": "fr_CA",
|
||||
"dupleIso3Language": "fra",
|
||||
"dupleName": "Exemple de fournisseur rogers",
|
||||
"defaultDupleSeparator": ":",
|
||||
"asDuple": "fra:Exemple de fournisseur rogers"
|
||||
}
|
||||
],
|
||||
"osuNaiStandalone": "anonymous@rogers.com",
|
||||
"osuNaiShared": "anonymous@rogers.com",
|
||||
"osuMethodList": [
|
||||
1,
|
||||
0
|
||||
],
|
||||
"osuServiceDescription": [
|
||||
{
|
||||
"model_type": "PasspointDuple",
|
||||
"locale": "en_CA",
|
||||
"dupleIso3Language": "eng",
|
||||
"dupleName": "Example services rogers",
|
||||
"defaultDupleSeparator": ":",
|
||||
"asDuple": "eng:Example services rogers"
|
||||
},
|
||||
{
|
||||
"model_type": "PasspointDuple",
|
||||
"locale": "fr_CA",
|
||||
"dupleIso3Language": "fra",
|
||||
"dupleName": "Exemples de services rogers",
|
||||
"defaultDupleSeparator": ":",
|
||||
"asDuple": "fra:Exemples de services rogers"
|
||||
}
|
||||
],
|
||||
"roamingOi": [
|
||||
1,
|
||||
2,
|
||||
3,
|
||||
4
|
||||
],
|
||||
"profileType": "passpoint_osu_id_provider"
|
||||
},
|
||||
"createdTimestamp": 1606778370345,
|
||||
"lastModifiedTimestamp": 1606778370345,
|
||||
"childProfileIds": [
|
||||
]
|
||||
},
|
||||
{
|
||||
"model_type": "Profile",
|
||||
"id": 20,
|
||||
"customerId": 2,
|
||||
"profileType": "passpoint_osu_id_provider",
|
||||
"name": "TipWlan-Passpoint-OSU-Provider-2",
|
||||
"details": {
|
||||
"model_type": "PasspointOsuProviderProfile",
|
||||
"domainName": "telus.com",
|
||||
"mccMncList": [
|
||||
{
|
||||
"model_type": "PasspointMccMnc",
|
||||
"mcc": 302,
|
||||
"mnc": 220,
|
||||
"iso": "ca",
|
||||
"country": "Canada",
|
||||
"countryCode": 1,
|
||||
"network": "Telus Mobility",
|
||||
"mccMncPairing": "302,220"
|
||||
}
|
||||
],
|
||||
"naiRealmList": [
|
||||
{
|
||||
"model_type": "PasspointNaiRealmInformation",
|
||||
"naiRealms": [
|
||||
"telus.com"
|
||||
],
|
||||
"encoding": 0,
|
||||
"eapMethods": [
|
||||
"EAP-TTLS with username/password",
|
||||
"EAP-TLS with certificate"
|
||||
],
|
||||
"eapMap": {
|
||||
"EAP-TTLS with username/password": [
|
||||
"Credential Type:username/password",
|
||||
"Non-EAP Inner Authentication Type:MSCHAPV2"
|
||||
],
|
||||
"EAP-TLS with certificate": [
|
||||
"Credential Type:Certificate"
|
||||
]
|
||||
}
|
||||
}
|
||||
],
|
||||
"osuIconList": [
|
||||
{
|
||||
"model_type": "PasspointOsuIcon",
|
||||
"iconWidth": 32,
|
||||
"iconHeight": 32,
|
||||
"languageCode": "eng",
|
||||
"iconLocale": "en_CA",
|
||||
"iconName": "icon32eng",
|
||||
"filePath": "/tmp/icon32eng.png",
|
||||
"imageUrl": "https://localhost:9096/icon32eng.png",
|
||||
"hs20IconString": "32:32:eng:image/png:icon32eng:/tmp/icon32eng.png"
|
||||
},
|
||||
{
|
||||
"model_type": "PasspointOsuIcon",
|
||||
"iconWidth": 32,
|
||||
"iconHeight": 32,
|
||||
"languageCode": "fra",
|
||||
"iconLocale": "fr_CA",
|
||||
"iconName": "icon32fra",
|
||||
"filePath": "/tmp/icon32fra.png",
|
||||
"imageUrl": "https://localhost:9096/icon32fra.png",
|
||||
"hs20IconString": "32:32:fra:image/png:icon32fra:/tmp/icon32fra.png"
|
||||
},
|
||||
{
|
||||
"model_type": "PasspointOsuIcon",
|
||||
"iconWidth": 32,
|
||||
"iconHeight": 32,
|
||||
"languageCode": "eng",
|
||||
"iconLocale": "en_US",
|
||||
"iconName": "icon32usa",
|
||||
"filePath": "/tmp/icon32usa.png",
|
||||
"imageUrl": "https://localhost:9096/icon32usa.png",
|
||||
"hs20IconString": "32:32:eng:image/png:icon32usa:/tmp/icon32usa.png"
|
||||
}
|
||||
],
|
||||
"osuServerUri": "https://example.com/osu/telus",
|
||||
"osuFriendlyName": [
|
||||
{
|
||||
"model_type": "PasspointDuple",
|
||||
"locale": "en_CA",
|
||||
"dupleIso3Language": "eng",
|
||||
"dupleName": "Example provider telus",
|
||||
"defaultDupleSeparator": ":",
|
||||
"asDuple": "eng:Example provider telus"
|
||||
},
|
||||
{
|
||||
"model_type": "PasspointDuple",
|
||||
"locale": "fr_CA",
|
||||
"dupleIso3Language": "fra",
|
||||
"dupleName": "Exemple de fournisseur telus",
|
||||
"defaultDupleSeparator": ":",
|
||||
"asDuple": "fra:Exemple de fournisseur telus"
|
||||
}
|
||||
],
|
||||
"osuNaiStandalone": "anonymous@telus.com",
|
||||
"osuNaiShared": "anonymous@telus.com",
|
||||
"osuMethodList": [
|
||||
1,
|
||||
0
|
||||
],
|
||||
"osuServiceDescription": [
|
||||
{
|
||||
"model_type": "PasspointDuple",
|
||||
"locale": "en_CA",
|
||||
"dupleIso3Language": "eng",
|
||||
"dupleName": "Example services telus",
|
||||
"defaultDupleSeparator": ":",
|
||||
"asDuple": "eng:Example services telus"
|
||||
},
|
||||
{
|
||||
"model_type": "PasspointDuple",
|
||||
"locale": "fr_CA",
|
||||
"dupleIso3Language": "fra",
|
||||
"dupleName": "Exemples de services telus",
|
||||
"defaultDupleSeparator": ":",
|
||||
"asDuple": "fra:Exemples de services telus"
|
||||
}
|
||||
],
|
||||
"roamingOi": [
|
||||
1,
|
||||
2,
|
||||
3,
|
||||
4
|
||||
],
|
||||
"profileType": "passpoint_osu_id_provider"
|
||||
},
|
||||
"createdTimestamp": 1606778370351,
|
||||
"lastModifiedTimestamp": 1606778370351,
|
||||
"childProfileIds": [
|
||||
]
|
||||
}
|
||||
{
|
||||
"model_type": "Profile",
|
||||
"id": 35,
|
||||
"customerId": 2,
|
||||
"profileType": "passpoint_osu_id_provider",
|
||||
"name": "provider1-profile-2021-01-21T21:28:59.057Z",
|
||||
"details": {
|
||||
"model_type": "PasspointOsuProviderProfile",
|
||||
"mccMncList": [
|
||||
{
|
||||
"model_type": "PasspointMccMnc",
|
||||
"mcc": 302,
|
||||
"mnc": 720,
|
||||
"iso": "ca",
|
||||
"country": "Canada",
|
||||
"countryCode": 1,
|
||||
"network": "Rogers AT&T Wireless",
|
||||
"mccMncPairing": "302,720"
|
||||
}
|
||||
],
|
||||
"naiRealmList": [
|
||||
{
|
||||
"model_type": "PasspointNaiRealmInformation",
|
||||
"naiRealms": [
|
||||
"rogers.com"
|
||||
],
|
||||
"encoding": 0,
|
||||
"eapMethods": [
|
||||
"EAP-TTLS with username/password",
|
||||
"EAP-TLS with certificate"
|
||||
],
|
||||
"eapMap": {
|
||||
"EAP-TTLS with username/password": [
|
||||
"Credential Type:username/password",
|
||||
"Non-EAP Inner Authentication Type:MSCHAPV2"
|
||||
],
|
||||
"EAP-TLS with certificate": [
|
||||
"Credential Type:Certificate"
|
||||
]
|
||||
}
|
||||
}
|
||||
],
|
||||
"osuIconList": [
|
||||
{
|
||||
"model_type": "PasspointOsuIcon",
|
||||
"iconWidth": 32,
|
||||
"iconHeight": 32,
|
||||
"languageCode": "eng",
|
||||
"iconLocale": "en_CA",
|
||||
"iconName": "icon32eng",
|
||||
"filePath": "/tmp/icon32eng.png",
|
||||
"imageUrl": "https://localhost:9096/icon32eng.png",
|
||||
"hs20IconString": "32:32:eng:image/png:icon32eng:/tmp/icon32eng.png"
|
||||
},
|
||||
{
|
||||
"model_type": "PasspointOsuIcon",
|
||||
"iconWidth": 32,
|
||||
"iconHeight": 32,
|
||||
"languageCode": "fra",
|
||||
"iconLocale": "fr_CA",
|
||||
"iconName": "icon32fra",
|
||||
"filePath": "/tmp/icon32fra.png",
|
||||
"imageUrl": "https://localhost:9096/icon32fra.png",
|
||||
"hs20IconString": "32:32:fra:image/png:icon32fra:/tmp/icon32fra.png"
|
||||
},
|
||||
{
|
||||
"model_type": "PasspointOsuIcon",
|
||||
"iconWidth": 32,
|
||||
"iconHeight": 32,
|
||||
"languageCode": "eng",
|
||||
"iconLocale": "en_US",
|
||||
"iconName": "icon32usa",
|
||||
"filePath": "/tmp/icon32usa.png",
|
||||
"imageUrl": "https://localhost:9096/icon32usa.png",
|
||||
"hs20IconString": "32:32:eng:image/png:icon32usa:/tmp/icon32usa.png"
|
||||
}
|
||||
],
|
||||
"osuServerUri": "https://example.com/osu/rogers",
|
||||
"osuFriendlyName": [
|
||||
{
|
||||
"model_type": "PasspointDuple",
|
||||
"locale": "eng",
|
||||
"dupleIso3Language": "eng",
|
||||
"dupleName": "Example provider rogers",
|
||||
"defaultDupleSeparator": ":",
|
||||
"asDuple": "eng:Example provider rogers"
|
||||
},
|
||||
{
|
||||
"model_type": "PasspointDuple",
|
||||
"locale": "fra",
|
||||
"dupleIso3Language": "fra",
|
||||
"dupleName": "Exemple de fournisseur rogers",
|
||||
"defaultDupleSeparator": ":",
|
||||
"asDuple": "fra:Exemple de fournisseur rogers"
|
||||
}
|
||||
],
|
||||
"osuNaiStandalone": "anonymous@rogers.com",
|
||||
"osuNaiShared": "anonymous@rogers.com",
|
||||
"osuMethodList": [
|
||||
1,
|
||||
0
|
||||
],
|
||||
"osuServiceDescription": [
|
||||
{
|
||||
"model_type": "PasspointDuple",
|
||||
"locale": "eng",
|
||||
"dupleIso3Language": "eng",
|
||||
"dupleName": "Example services rogers",
|
||||
"defaultDupleSeparator": ":",
|
||||
"asDuple": "eng:Example services rogers"
|
||||
},
|
||||
{
|
||||
"model_type": "PasspointDuple",
|
||||
"locale": "fra",
|
||||
"dupleIso3Language": "fra",
|
||||
"dupleName": "Exemples de services rogers",
|
||||
"defaultDupleSeparator": ":",
|
||||
"asDuple": "fra:Exemples de services rogers"
|
||||
}
|
||||
],
|
||||
"roamingOi": [
|
||||
"BAA2D00100",
|
||||
"BAA2D00000"
|
||||
],
|
||||
"profileType": "passpoint_osu_id_provider"
|
||||
},
|
||||
"createdTimestamp": 1611264539070,
|
||||
"lastModifiedTimestamp": 1611264539070,
|
||||
"childProfileIds": []
|
||||
},
|
||||
{
|
||||
"model_type": "Profile",
|
||||
"id": 36,
|
||||
"customerId": 2,
|
||||
"profileType": "passpoint_osu_id_provider",
|
||||
"name": "provider2-profile-2021-01-21T21:28:59.118Z",
|
||||
"details": {
|
||||
"model_type": "PasspointOsuProviderProfile",
|
||||
"mccMncList": [
|
||||
{
|
||||
"model_type": "PasspointMccMnc",
|
||||
"mcc": 302,
|
||||
"mnc": 220,
|
||||
"iso": "ca",
|
||||
"country": "Canada",
|
||||
"countryCode": 1,
|
||||
"network": "Telus Mobility",
|
||||
"mccMncPairing": "302,220"
|
||||
}
|
||||
],
|
||||
"naiRealmList": [
|
||||
{
|
||||
"model_type": "PasspointNaiRealmInformation",
|
||||
"naiRealms": [
|
||||
"telus.com"
|
||||
],
|
||||
"encoding": 0,
|
||||
"eapMethods": [
|
||||
"EAP-TTLS with username/password",
|
||||
"EAP-TLS with certificate"
|
||||
],
|
||||
"eapMap": {
|
||||
"EAP-TTLS with username/password": [
|
||||
"Credential Type:username/password",
|
||||
"Non-EAP Inner Authentication Type:MSCHAPV2"
|
||||
],
|
||||
"EAP-TLS with certificate": [
|
||||
"Credential Type:Certificate"
|
||||
]
|
||||
}
|
||||
}
|
||||
],
|
||||
"osuIconList": [
|
||||
{
|
||||
"model_type": "PasspointOsuIcon",
|
||||
"iconWidth": 32,
|
||||
"iconHeight": 32,
|
||||
"languageCode": "eng",
|
||||
"iconLocale": "en_CA",
|
||||
"iconName": "icon32eng",
|
||||
"filePath": "/tmp/icon32eng.png",
|
||||
"imageUrl": "https://localhost:9096/icon32eng.png",
|
||||
"hs20IconString": "32:32:eng:image/png:icon32eng:/tmp/icon32eng.png"
|
||||
},
|
||||
{
|
||||
"model_type": "PasspointOsuIcon",
|
||||
"iconWidth": 32,
|
||||
"iconHeight": 32,
|
||||
"languageCode": "fra",
|
||||
"iconLocale": "fr_CA",
|
||||
"iconName": "icon32fra",
|
||||
"filePath": "/tmp/icon32fra.png",
|
||||
"imageUrl": "https://localhost:9096/icon32fra.png",
|
||||
"hs20IconString": "32:32:fra:image/png:icon32fra:/tmp/icon32fra.png"
|
||||
},
|
||||
{
|
||||
"model_type": "PasspointOsuIcon",
|
||||
"iconWidth": 32,
|
||||
"iconHeight": 32,
|
||||
"languageCode": "eng",
|
||||
"iconLocale": "en_US",
|
||||
"iconName": "icon32usa",
|
||||
"filePath": "/tmp/icon32usa.png",
|
||||
"imageUrl": "https://localhost:9096/icon32usa.png",
|
||||
"hs20IconString": "32:32:eng:image/png:icon32usa:/tmp/icon32usa.png"
|
||||
}
|
||||
],
|
||||
"osuServerUri": "https://example.com/osu/telus",
|
||||
"osuFriendlyName": [
|
||||
{
|
||||
"model_type": "PasspointDuple",
|
||||
"locale": "eng",
|
||||
"dupleIso3Language": "eng",
|
||||
"dupleName": "Example provider telus",
|
||||
"defaultDupleSeparator": ":",
|
||||
"asDuple": "eng:Example provider telus"
|
||||
},
|
||||
{
|
||||
"model_type": "PasspointDuple",
|
||||
"locale": "fra",
|
||||
"dupleIso3Language": "fra",
|
||||
"dupleName": "Exemple de fournisseur telus",
|
||||
"defaultDupleSeparator": ":",
|
||||
"asDuple": "fra:Exemple de fournisseur telus"
|
||||
}
|
||||
],
|
||||
"osuNaiStandalone": "anonymous@telus.com",
|
||||
"osuNaiShared": "anonymous@telus.com",
|
||||
"osuMethodList": [
|
||||
1,
|
||||
0
|
||||
],
|
||||
"osuServiceDescription": [
|
||||
{
|
||||
"model_type": "PasspointDuple",
|
||||
"locale": "eng",
|
||||
"dupleIso3Language": "eng",
|
||||
"dupleName": "Example services telus",
|
||||
"defaultDupleSeparator": ":",
|
||||
"asDuple": "eng:Example services telus"
|
||||
},
|
||||
{
|
||||
"model_type": "PasspointDuple",
|
||||
"locale": "fra",
|
||||
"dupleIso3Language": "fra",
|
||||
"dupleName": "Exemples de services telus",
|
||||
"defaultDupleSeparator": ":",
|
||||
"asDuple": "fra:Exemples de services telus"
|
||||
}
|
||||
],
|
||||
"roamingOi": [
|
||||
"004096",
|
||||
"005014",
|
||||
"F4F5E8F5F4"
|
||||
],
|
||||
"profileType": "passpoint_osu_id_provider"
|
||||
},
|
||||
"createdTimestamp": 1611264539131,
|
||||
"lastModifiedTimestamp": 1611264539131,
|
||||
"childProfileIds": []
|
||||
}
|
||||
]
|
||||
@@ -1,37 +1,41 @@
|
||||
[
|
||||
{
|
||||
"model_type": "Profile",
|
||||
"id": 17,
|
||||
"customerId": 2,
|
||||
"profileType": "passpoint_operator",
|
||||
"name": "TipWlan-Passpoint-Operator",
|
||||
"details": {
|
||||
"model_type": "PasspointOperatorProfile",
|
||||
"serverOnlyAuthenticatedL2EncryptionNetwork": false,
|
||||
"x509CertificateLocation": "/etc/ca.pem",
|
||||
"operatorFriendlyName": [
|
||||
{
|
||||
"model_type": "PasspointDuple",
|
||||
"locale": "en_CA",
|
||||
"dupleIso3Language": "eng",
|
||||
"dupleName": "Default friendly passpoint_operator name",
|
||||
"defaultDupleSeparator": ":",
|
||||
"asDuple": "eng:Default friendly passpoint_operator name"
|
||||
},
|
||||
{
|
||||
"model_type": "PasspointDuple",
|
||||
"locale": "fr_CA",
|
||||
"dupleIso3Language": "fra",
|
||||
"dupleName": "Nom de l'opérateur convivial par défaut",
|
||||
"defaultDupleSeparator": ":",
|
||||
"asDuple": "fra:Nom de l'opérateur convivial par défaut"
|
||||
}
|
||||
],
|
||||
"profileType": "passpoint_operator"
|
||||
},
|
||||
"createdTimestamp": 1606778369945,
|
||||
"lastModifiedTimestamp": 1606778369945,
|
||||
"childProfileIds": [
|
||||
]
|
||||
}
|
||||
{
|
||||
"model_type": "Profile",
|
||||
"id": 34,
|
||||
"customerId": 2,
|
||||
"profileType": "passpoint_operator",
|
||||
"name": "operator-profile-2021-01-21T21:28:58.994Z",
|
||||
"details": {
|
||||
"model_type": "PasspointOperatorProfile",
|
||||
"serverOnlyAuthenticatedL2EncryptionNetwork": false,
|
||||
"x509CertificateLocation": "/etc/ca.pem",
|
||||
"operatorFriendlyName": [
|
||||
{
|
||||
"model_type": "PasspointDuple",
|
||||
"locale": "fra",
|
||||
"dupleIso3Language": "fra",
|
||||
"dupleName": "Nom de l'opérateur convivial par défaut",
|
||||
"defaultDupleSeparator": ":",
|
||||
"asDuple": "fra:Nom de l'opérateur convivial par défaut"
|
||||
},
|
||||
{
|
||||
"model_type": "PasspointDuple",
|
||||
"locale": "eng",
|
||||
"dupleIso3Language": "eng",
|
||||
"dupleName": "Default friendly passpoint_operator name",
|
||||
"defaultDupleSeparator": ":",
|
||||
"asDuple": "eng:Default friendly passpoint_operator name"
|
||||
}
|
||||
],
|
||||
"domainNameList": [
|
||||
"bell.ca",
|
||||
"telus.com",
|
||||
"rogers.com"
|
||||
],
|
||||
"profileType": "passpoint_operator"
|
||||
},
|
||||
"createdTimestamp": 1611264539004,
|
||||
"lastModifiedTimestamp": 1611264539004,
|
||||
"childProfileIds": []
|
||||
}
|
||||
]
|
||||
@@ -1,34 +1,24 @@
|
||||
[
|
||||
{
|
||||
"model_type": "Profile",
|
||||
"id": 1,
|
||||
"customerId": 2,
|
||||
"profileType": "radius",
|
||||
"name": "Radius-Profile",
|
||||
"details": {
|
||||
"model_type": "RadiusProfile",
|
||||
"subnetConfiguration": null,
|
||||
"serviceRegionMap": {
|
||||
"Ottawa": {
|
||||
"model_type": "RadiusServiceRegion",
|
||||
"serverMap": {
|
||||
"Radius-Profile": [
|
||||
{
|
||||
"model_type": "RadiusServer",
|
||||
"ipAddress": "192.168.0.1",
|
||||
"secret": "testing123",
|
||||
"authPort": 1812,
|
||||
"timeout": null
|
||||
}
|
||||
]
|
||||
},
|
||||
"regionName": "Ottawa"
|
||||
}
|
||||
},
|
||||
"profileType": "radius"
|
||||
},
|
||||
"createdTimestamp": 1601961451668,
|
||||
"lastModifiedTimestamp": 1601961451668,
|
||||
"childProfileIds": []
|
||||
}
|
||||
{
|
||||
"model_type": "Profile",
|
||||
"id": 1,
|
||||
"customerId": 2,
|
||||
"profileType": "radius",
|
||||
"name": "Radius-Profile",
|
||||
"details": {
|
||||
"model_type": "RadiusProfile",
|
||||
"primaryRadiusAuthServer": {
|
||||
"model_type": "RadiusServer",
|
||||
"ipAddress": "192.168.0.1",
|
||||
"secret": "testing123",
|
||||
"port": 1812,
|
||||
"timeout": null
|
||||
},
|
||||
"profileType": "radius"
|
||||
},
|
||||
"createdTimestamp": 1611262628767,
|
||||
"lastModifiedTimestamp": 1611262628767,
|
||||
"childProfileIds": [
|
||||
]
|
||||
}
|
||||
]
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"model_type": "Profile",
|
||||
"id": 11,
|
||||
"id": 4,
|
||||
"customerId": 2,
|
||||
"profileType": "rf",
|
||||
"name": "TipWlan-rf",
|
||||
@@ -198,7 +198,7 @@
|
||||
},
|
||||
"profileType": "rf"
|
||||
},
|
||||
"createdTimestamp": 1606778369933,
|
||||
"lastModifiedTimestamp": 1606778369933,
|
||||
"createdTimestamp": 1612285248650,
|
||||
"lastModifiedTimestamp": 1612285248650,
|
||||
"childProfileIds": []
|
||||
}
|
||||
@@ -1,203 +1,75 @@
|
||||
[
|
||||
{
|
||||
"model_type": "Profile",
|
||||
"id": 5,
|
||||
"customerId": 2,
|
||||
"profileType": "ssid",
|
||||
"name": "TipWlan-cloud-3-radios",
|
||||
"details": {
|
||||
"model_type": "SsidConfiguration",
|
||||
"ssid": "TipWlan-cloud-3-radios",
|
||||
"appliedRadios": [
|
||||
"is5GHzL",
|
||||
"is2dot4GHz",
|
||||
"is5GHzU"
|
||||
],
|
||||
"ssidAdminState": "enabled",
|
||||
"secureMode": "wpa2OnlyPSK",
|
||||
"vlanId": 1,
|
||||
"keyStr": "openwifi",
|
||||
"broadcastSsid": "enabled",
|
||||
"keyRefresh": 0,
|
||||
"noLocalSubnets": false,
|
||||
"radiusServiceName": null,
|
||||
"radiusAccountingServiceName": null,
|
||||
"radiusAcountingServiceInterval": null,
|
||||
"captivePortalId": null,
|
||||
"bandwidthLimitDown": 0,
|
||||
"bandwidthLimitUp": 0,
|
||||
"clientBandwidthLimitDown": 0,
|
||||
"clientBandwidthLimitUp": 0,
|
||||
"videoTrafficOnly": false,
|
||||
"radioBasedConfigs": {
|
||||
"is5GHzL": {
|
||||
"model_type": "RadioBasedSsidConfiguration",
|
||||
"enable80211r": null,
|
||||
"enable80211k": null,
|
||||
"enable80211v": null
|
||||
},
|
||||
"is2dot4GHz": {
|
||||
"model_type": "RadioBasedSsidConfiguration",
|
||||
"enable80211r": null,
|
||||
"enable80211k": null,
|
||||
"enable80211v": null
|
||||
},
|
||||
"is5GHz": {
|
||||
"model_type": "RadioBasedSsidConfiguration",
|
||||
"enable80211r": null,
|
||||
"enable80211k": null,
|
||||
"enable80211v": null
|
||||
},
|
||||
"is5GHzU": {
|
||||
"model_type": "RadioBasedSsidConfiguration",
|
||||
"enable80211r": null,
|
||||
"enable80211k": null,
|
||||
"enable80211v": null
|
||||
}
|
||||
},
|
||||
"bonjourGatewayProfileId": null,
|
||||
"enable80211w": null,
|
||||
"wepConfig": null,
|
||||
"forwardMode": "BRIDGE",
|
||||
"profileType": "ssid"
|
||||
},
|
||||
"createdTimestamp": 1606778369598,
|
||||
"lastModifiedTimestamp": 1606778369598,
|
||||
"childProfileIds": [
|
||||
]
|
||||
},
|
||||
{
|
||||
"model_type": "Profile",
|
||||
"id": 15,
|
||||
"customerId": 2,
|
||||
"profileType": "ssid",
|
||||
"name": "TipWlan-cloud-passpoint-access",
|
||||
"details": {
|
||||
"model_type": "SsidConfiguration",
|
||||
"ssid": "TipWlan-cloud-passpoint-access",
|
||||
"appliedRadios": [
|
||||
"is5GHzL",
|
||||
"is5GHzU"
|
||||
],
|
||||
"ssidAdminState": "enabled",
|
||||
"secureMode": "wpa2PSK",
|
||||
"vlanId": 1,
|
||||
"keyStr": "testing123",
|
||||
"broadcastSsid": "enabled",
|
||||
"keyRefresh": 0,
|
||||
"noLocalSubnets": false,
|
||||
"radiusServiceName": null,
|
||||
"radiusAccountingServiceName": null,
|
||||
"radiusAcountingServiceInterval": null,
|
||||
"captivePortalId": null,
|
||||
"bandwidthLimitDown": 0,
|
||||
"bandwidthLimitUp": 0,
|
||||
"clientBandwidthLimitDown": 0,
|
||||
"clientBandwidthLimitUp": 0,
|
||||
"videoTrafficOnly": false,
|
||||
"radioBasedConfigs": {
|
||||
"is5GHzL": {
|
||||
"model_type": "RadioBasedSsidConfiguration",
|
||||
"enable80211r": null,
|
||||
"enable80211k": null,
|
||||
"enable80211v": null
|
||||
},
|
||||
"is2dot4GHz": {
|
||||
"model_type": "RadioBasedSsidConfiguration",
|
||||
"enable80211r": null,
|
||||
"enable80211k": null,
|
||||
"enable80211v": null
|
||||
},
|
||||
"is5GHz": {
|
||||
"model_type": "RadioBasedSsidConfiguration",
|
||||
"enable80211r": null,
|
||||
"enable80211k": null,
|
||||
"enable80211v": null
|
||||
},
|
||||
"is5GHzU": {
|
||||
"model_type": "RadioBasedSsidConfiguration",
|
||||
"enable80211r": null,
|
||||
"enable80211k": null,
|
||||
"enable80211v": null
|
||||
}
|
||||
},
|
||||
"bonjourGatewayProfileId": null,
|
||||
"enable80211w": null,
|
||||
"wepConfig": null,
|
||||
"forwardMode": null,
|
||||
"profileType": "ssid"
|
||||
},
|
||||
"createdTimestamp": 1606778369943,
|
||||
"lastModifiedTimestamp": 1606778370811,
|
||||
"childProfileIds": [
|
||||
24
|
||||
]
|
||||
},
|
||||
{
|
||||
"model_type": "Profile",
|
||||
"id": 16,
|
||||
"customerId": 2,
|
||||
"profileType": "ssid",
|
||||
"name": "TipWlan-cloud-passpoint-osu",
|
||||
"details": {
|
||||
"model_type": "SsidConfiguration",
|
||||
"ssid": "TipWlan-cloud-passpoint-osu",
|
||||
"appliedRadios": [
|
||||
"is2dot4GHz"
|
||||
],
|
||||
"ssidAdminState": "enabled",
|
||||
"secureMode": "open",
|
||||
"vlanId": 1,
|
||||
"keyStr": null,
|
||||
"broadcastSsid": "enabled",
|
||||
"keyRefresh": 0,
|
||||
"noLocalSubnets": false,
|
||||
"radiusServiceName": null,
|
||||
"radiusAccountingServiceName": null,
|
||||
"radiusAcountingServiceInterval": null,
|
||||
"captivePortalId": null,
|
||||
"bandwidthLimitDown": 0,
|
||||
"bandwidthLimitUp": 0,
|
||||
"clientBandwidthLimitDown": 0,
|
||||
"clientBandwidthLimitUp": 0,
|
||||
"videoTrafficOnly": false,
|
||||
"radioBasedConfigs": {
|
||||
"is5GHzL": {
|
||||
"model_type": "RadioBasedSsidConfiguration",
|
||||
"enable80211r": null,
|
||||
"enable80211k": null,
|
||||
"enable80211v": null
|
||||
},
|
||||
"is2dot4GHz": {
|
||||
"model_type": "RadioBasedSsidConfiguration",
|
||||
"enable80211r": null,
|
||||
"enable80211k": null,
|
||||
"enable80211v": null
|
||||
},
|
||||
"is5GHz": {
|
||||
"model_type": "RadioBasedSsidConfiguration",
|
||||
"enable80211r": null,
|
||||
"enable80211k": null,
|
||||
"enable80211v": null
|
||||
},
|
||||
"is5GHzU": {
|
||||
"model_type": "RadioBasedSsidConfiguration",
|
||||
"enable80211r": null,
|
||||
"enable80211k": null,
|
||||
"enable80211v": null
|
||||
}
|
||||
},
|
||||
"bonjourGatewayProfileId": null,
|
||||
"enable80211w": null,
|
||||
"wepConfig": null,
|
||||
"forwardMode": null,
|
||||
"profileType": "ssid"
|
||||
},
|
||||
"createdTimestamp": 1606778369944,
|
||||
"lastModifiedTimestamp": 1606778370352,
|
||||
"childProfileIds": [
|
||||
19,
|
||||
20
|
||||
]
|
||||
}
|
||||
{
|
||||
"model_type": "Profile",
|
||||
"id": 2,
|
||||
"customerId": 2,
|
||||
"profileType": "ssid",
|
||||
"name": "TipWlan-cloud-3-radios",
|
||||
"details": {
|
||||
"model_type": "SsidConfiguration",
|
||||
"ssid": "TipWlan-cloud-3-radios",
|
||||
"appliedRadios": [
|
||||
"is5GHzU",
|
||||
"is2dot4GHz",
|
||||
"is5GHzL"
|
||||
],
|
||||
"ssidAdminState": "enabled",
|
||||
"secureMode": "wpa2OnlyPSK",
|
||||
"vlanId": 1,
|
||||
"keyStr": "openwifi",
|
||||
"broadcastSsid": "enabled",
|
||||
"keyRefresh": 0,
|
||||
"noLocalSubnets": false,
|
||||
"radiusServiceId": 0,
|
||||
"radiusAcountingServiceInterval": 60,
|
||||
"captivePortalId": null,
|
||||
"bandwidthLimitDown": 0,
|
||||
"bandwidthLimitUp": 0,
|
||||
"clientBandwidthLimitDown": 0,
|
||||
"clientBandwidthLimitUp": 0,
|
||||
"videoTrafficOnly": false,
|
||||
"radioBasedConfigs": {
|
||||
"is5GHzU": {
|
||||
"model_type": "RadioBasedSsidConfiguration",
|
||||
"enable80211r": null,
|
||||
"enable80211k": null,
|
||||
"enable80211v": null
|
||||
},
|
||||
"is2dot4GHz": {
|
||||
"model_type": "RadioBasedSsidConfiguration",
|
||||
"enable80211r": null,
|
||||
"enable80211k": null,
|
||||
"enable80211v": null
|
||||
},
|
||||
"is5GHz": {
|
||||
"model_type": "RadioBasedSsidConfiguration",
|
||||
"enable80211r": null,
|
||||
"enable80211k": null,
|
||||
"enable80211v": null
|
||||
},
|
||||
"is5GHzL": {
|
||||
"model_type": "RadioBasedSsidConfiguration",
|
||||
"enable80211r": null,
|
||||
"enable80211k": null,
|
||||
"enable80211v": null
|
||||
}
|
||||
},
|
||||
"bonjourGatewayProfileId": null,
|
||||
"enable80211w": null,
|
||||
"wepConfig": null,
|
||||
"forwardMode": "BRIDGE",
|
||||
"profileType": "ssid",
|
||||
"radiusClientConfiguration": {
|
||||
"model_type": "RadiusNasConfiguration",
|
||||
"nasClientId": "DEFAULT",
|
||||
"nasClientIp": "WAN_IP",
|
||||
"userDefinedNasId": null,
|
||||
"userDefinedNasIp": null,
|
||||
"operatorId": null
|
||||
}
|
||||
},
|
||||
"createdTimestamp": 1612285248638,
|
||||
"lastModifiedTimestamp": 1612285248638,
|
||||
"childProfileIds": []
|
||||
}
|
||||
]
|
||||
|
||||
@@ -1,43 +1,42 @@
|
||||
[
|
||||
{
|
||||
"model_type": "Profile",
|
||||
"id": 18,
|
||||
"customerId": 2,
|
||||
"profileType": "passpoint_venue",
|
||||
"name": "TipWlan-Passpoint-Venue",
|
||||
"details": {
|
||||
"model_type": "PasspointVenueProfile",
|
||||
"venueNameSet": [
|
||||
{
|
||||
"model_type": "PasspointVenueName",
|
||||
"locale": "fr_CA",
|
||||
"dupleIso3Language": "fra",
|
||||
"dupleName": "Exemple de lieu",
|
||||
"defaultDupleSeparator": ":",
|
||||
"venueUrl": "http://www.example.com/info-fra",
|
||||
"asDuple": "fra:Exemple de lieu"
|
||||
},
|
||||
{
|
||||
"model_type": "PasspointVenueName",
|
||||
"locale": "en_CA",
|
||||
"dupleIso3Language": "eng",
|
||||
"dupleName": "Example passpoint_venue",
|
||||
"defaultDupleSeparator": ":",
|
||||
"venueUrl": "http://www.example.com/info-eng",
|
||||
"asDuple": "eng:Example passpoint_venue"
|
||||
}
|
||||
],
|
||||
"venueTypeAssignment": {
|
||||
"model_type": "PasspointVenueTypeAssignment",
|
||||
"venueDescription": "Research and Development Facility",
|
||||
"venueGroupId": 2,
|
||||
"venueTypeId": 8
|
||||
},
|
||||
"profileType": "passpoint_venue"
|
||||
},
|
||||
"createdTimestamp": 1606778369950,
|
||||
"lastModifiedTimestamp": 1606778369950,
|
||||
"childProfileIds": [
|
||||
]
|
||||
}
|
||||
{
|
||||
"model_type": "Profile",
|
||||
"id": 33,
|
||||
"customerId": 2,
|
||||
"profileType": "passpoint_venue",
|
||||
"name": "venue-profile-2021-01-21T21:28:58.934Z",
|
||||
"details": {
|
||||
"model_type": "PasspointVenueProfile",
|
||||
"venueNameSet": [
|
||||
{
|
||||
"model_type": "PasspointVenueName",
|
||||
"locale": "fra",
|
||||
"dupleIso3Language": "fra",
|
||||
"dupleName": "Exemple de lieu",
|
||||
"defaultDupleSeparator": ":",
|
||||
"venueUrl": "http://www.example.com/info-fra",
|
||||
"asDuple": "fra:Exemple de lieu"
|
||||
},
|
||||
{
|
||||
"model_type": "PasspointVenueName",
|
||||
"locale": "eng",
|
||||
"dupleIso3Language": "eng",
|
||||
"dupleName": "Example passpoint_venue",
|
||||
"defaultDupleSeparator": ":",
|
||||
"venueUrl": "http://www.example.com/info-eng",
|
||||
"asDuple": "eng:Example passpoint_venue"
|
||||
}
|
||||
],
|
||||
"venueTypeAssignment": {
|
||||
"model_type": "PasspointVenueTypeAssignment",
|
||||
"venueDescription": "Research and Development Facility",
|
||||
"venueGroupId": 2,
|
||||
"venueTypeId": 8
|
||||
},
|
||||
"profileType": "passpoint_venue"
|
||||
},
|
||||
"createdTimestamp": 1611264538947,
|
||||
"lastModifiedTimestamp": 1611264538947,
|
||||
"childProfileIds": []
|
||||
}
|
||||
]
|
||||
@@ -56,6 +56,8 @@ RESTAPI_PROPS+=" -Dserver.port=443"
|
||||
|
||||
SPRING_EXTRA_PROPS=" --add-opens java.base/java.lang=ALL-UNNAMED"
|
||||
|
||||
export ALL_PROPS="$PROFILES $SSL_PROPS $CLIENT_MQTT_SSL_PROPS $OVSDB_PROPS $MQTT_PROPS $LOGGING_PROPS $RESTAPI_PROPS $SPRING_EXTRA_PROPS"
|
||||
JVM_EXTRA_PROPS=" ${JVM_MEM_OPTIONS:- } "
|
||||
|
||||
export ALL_PROPS="$JVM_EXTRA_PROPS $PROFILES $SSL_PROPS $CLIENT_MQTT_SSL_PROPS $OVSDB_PROPS $MQTT_PROPS $LOGGING_PROPS $RESTAPI_PROPS $SPRING_EXTRA_PROPS"
|
||||
|
||||
java $ALL_PROPS -jar app.jar
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
<parent>
|
||||
<groupId>com.telecominfraproject.wlan</groupId>
|
||||
<artifactId>tip-wlan-cloud-root-pom</artifactId>
|
||||
<version>0.0.1-SNAPSHOT</version>
|
||||
<version>1.3.0-SNAPSHOT</version>
|
||||
<relativePath>../../wlan-cloud-root</relativePath>
|
||||
</parent>
|
||||
<artifactId>opensync-gateway-static-process</artifactId>
|
||||
@@ -18,7 +18,7 @@
|
||||
<dependency>
|
||||
<groupId>com.telecominfraproject.wlan</groupId>
|
||||
<artifactId>opensync-ext-static</artifactId>
|
||||
<version>${tip-wlan-cloud.release.version}</version>
|
||||
<version>1.3.0-SNAPSHOT</version>
|
||||
</dependency>
|
||||
|
||||
</dependencies>
|
||||
|
||||
@@ -1,221 +1,472 @@
|
||||
{
|
||||
"model_type": "Equipment",
|
||||
"id": 51,
|
||||
"customerId": 2,
|
||||
"profileId": 12,
|
||||
"locationId": 8,
|
||||
"equipmentType": "AP",
|
||||
"inventoryId": "Test_Client_21P10C68818122",
|
||||
"name": "Test_Client_21P10C68818122",
|
||||
"details": {
|
||||
"model_type": "ApElementConfiguration",
|
||||
"equipmentModel": "EA8300-CA",
|
||||
"elementConfigVersion": "AP-V1",
|
||||
"model_type": "Equipment",
|
||||
"id": 1,
|
||||
"customerId": 2,
|
||||
"profileId": 8,
|
||||
"locationId": 8,
|
||||
"equipmentType": "AP",
|
||||
"deviceMode": "standaloneAP",
|
||||
"gettingIP": "dhcp",
|
||||
"staticIP": null,
|
||||
"staticIpMaskCidr": null,
|
||||
"staticIpGw": null,
|
||||
"gettingDNS": "dhcp",
|
||||
"staticDnsIp1": null,
|
||||
"staticDnsIp2": null,
|
||||
"peerInfoList": [],
|
||||
"deviceName": "Default Device Name",
|
||||
"locationData": null,
|
||||
"locallyConfiguredMgmtVlan": 0,
|
||||
"locallyConfigured": false,
|
||||
"deploymentType": "CEILING",
|
||||
"syntheticClientEnabled": null,
|
||||
"frameReportThrottleEnabled": true,
|
||||
"antennaType": "OMNI",
|
||||
"costSavingEventsEnabled": true,
|
||||
"forwardMode": "BRIDGE",
|
||||
"radioMap": {
|
||||
"is2dot4GHz": {
|
||||
"model_type": "ElementRadioConfiguration",
|
||||
"radioType": "is2dot4GHz",
|
||||
"channelNumber": 6,
|
||||
"manualChannelNumber": 6,
|
||||
"backupChannelNumber": 11,
|
||||
"bannedChannels": [],
|
||||
"allowedChannels": [],
|
||||
"rxCellSizeDb": {
|
||||
"model_type": "SourceSelectionValue",
|
||||
"source": "auto",
|
||||
"value": -90
|
||||
"inventoryId": "Open_AP_21P10C68818122",
|
||||
"name": "Open_AP_21P10C68818122",
|
||||
"details": {
|
||||
"model_type": "ApElementConfiguration",
|
||||
"equipmentModel": "EA8300-CA",
|
||||
"elementConfigVersion": "AP-V1",
|
||||
"equipmentType": "AP",
|
||||
"deviceMode": "standaloneAP",
|
||||
"gettingIP": "dhcp",
|
||||
"staticIP": null,
|
||||
"staticIpMaskCidr": null,
|
||||
"staticIpGw": null,
|
||||
"gettingDNS": "dhcp",
|
||||
"staticDnsIp1": null,
|
||||
"staticDnsIp2": null,
|
||||
"peerInfoList": [],
|
||||
"deviceName": "Open_AP_21P10C68818122",
|
||||
"locationData": null,
|
||||
"locallyConfiguredMgmtVlan": 0,
|
||||
"locallyConfigured": false,
|
||||
"deploymentType": "CEILING",
|
||||
"syntheticClientEnabled": null,
|
||||
"frameReportThrottleEnabled": true,
|
||||
"antennaType": "OMNI",
|
||||
"costSavingEventsEnabled": true,
|
||||
"forwardMode": "BRIDGE",
|
||||
"radioMap": {
|
||||
"is5GHzU": {
|
||||
"model_type": "ElementRadioConfiguration",
|
||||
"radioType": "is5GHzU",
|
||||
"channelNumber": 149,
|
||||
"manualChannelNumber": 149,
|
||||
"backupChannelNumber": 157,
|
||||
"manualBackupChannelNumber": 157,
|
||||
"rxCellSizeDb": {
|
||||
"model_type": "SourceSelectionValue",
|
||||
"source": "profile",
|
||||
"value": -90
|
||||
},
|
||||
"probeResponseThresholdDb": {
|
||||
"model_type": "SourceSelectionValue",
|
||||
"source": "profile",
|
||||
"value": -90
|
||||
},
|
||||
"clientDisconnectThresholdDb": {
|
||||
"model_type": "SourceSelectionValue",
|
||||
"source": "profile",
|
||||
"value": -90
|
||||
},
|
||||
"eirpTxPower": {
|
||||
"model_type": "SourceSelectionValue",
|
||||
"source": "profile",
|
||||
"value": 18
|
||||
},
|
||||
"perimeterDetectionEnabled": true,
|
||||
"bestAPSteerType": "both",
|
||||
"deauthAttackDetection": null,
|
||||
"allowedChannelsPowerLevels": [
|
||||
{
|
||||
"model_type": "ChannelPowerLevel",
|
||||
"channelNumber": 161,
|
||||
"powerLevel": 18,
|
||||
"dfs": false,
|
||||
"channelWidth": 80
|
||||
},
|
||||
{
|
||||
"model_type": "ChannelPowerLevel",
|
||||
"channelNumber": 100,
|
||||
"powerLevel": 18,
|
||||
"dfs": true,
|
||||
"channelWidth": 80
|
||||
},
|
||||
{
|
||||
"model_type": "ChannelPowerLevel",
|
||||
"channelNumber": 132,
|
||||
"powerLevel": 18,
|
||||
"dfs": true,
|
||||
"channelWidth": 80
|
||||
},
|
||||
{
|
||||
"model_type": "ChannelPowerLevel",
|
||||
"channelNumber": 165,
|
||||
"powerLevel": 18,
|
||||
"dfs": false,
|
||||
"channelWidth": 80
|
||||
},
|
||||
{
|
||||
"model_type": "ChannelPowerLevel",
|
||||
"channelNumber": 104,
|
||||
"powerLevel": 18,
|
||||
"dfs": true,
|
||||
"channelWidth": 80
|
||||
},
|
||||
{
|
||||
"model_type": "ChannelPowerLevel",
|
||||
"channelNumber": 136,
|
||||
"powerLevel": 18,
|
||||
"dfs": true,
|
||||
"channelWidth": 80
|
||||
},
|
||||
{
|
||||
"model_type": "ChannelPowerLevel",
|
||||
"channelNumber": 108,
|
||||
"powerLevel": 18,
|
||||
"dfs": true,
|
||||
"channelWidth": 80
|
||||
},
|
||||
{
|
||||
"model_type": "ChannelPowerLevel",
|
||||
"channelNumber": 140,
|
||||
"powerLevel": 18,
|
||||
"dfs": true,
|
||||
"channelWidth": 80
|
||||
},
|
||||
{
|
||||
"model_type": "ChannelPowerLevel",
|
||||
"channelNumber": 112,
|
||||
"powerLevel": 18,
|
||||
"dfs": true,
|
||||
"channelWidth": 80
|
||||
},
|
||||
{
|
||||
"model_type": "ChannelPowerLevel",
|
||||
"channelNumber": 144,
|
||||
"powerLevel": 18,
|
||||
"dfs": true,
|
||||
"channelWidth": 80
|
||||
},
|
||||
{
|
||||
"model_type": "ChannelPowerLevel",
|
||||
"channelNumber": 116,
|
||||
"powerLevel": 18,
|
||||
"dfs": true,
|
||||
"channelWidth": 80
|
||||
},
|
||||
{
|
||||
"model_type": "ChannelPowerLevel",
|
||||
"channelNumber": 149,
|
||||
"powerLevel": 18,
|
||||
"dfs": false,
|
||||
"channelWidth": 80
|
||||
},
|
||||
{
|
||||
"model_type": "ChannelPowerLevel",
|
||||
"channelNumber": 153,
|
||||
"powerLevel": 18,
|
||||
"dfs": false,
|
||||
"channelWidth": 80
|
||||
},
|
||||
{
|
||||
"model_type": "ChannelPowerLevel",
|
||||
"channelNumber": 157,
|
||||
"powerLevel": 18,
|
||||
"dfs": false,
|
||||
"channelWidth": 80
|
||||
}
|
||||
]
|
||||
},
|
||||
"is2dot4GHz": {
|
||||
"model_type": "ElementRadioConfiguration",
|
||||
"radioType": "is2dot4GHz",
|
||||
"channelNumber": 6,
|
||||
"manualChannelNumber": 6,
|
||||
"backupChannelNumber": 11,
|
||||
"manualBackupChannelNumber": 11,
|
||||
"rxCellSizeDb": {
|
||||
"model_type": "SourceSelectionValue",
|
||||
"source": "profile",
|
||||
"value": -90
|
||||
},
|
||||
"probeResponseThresholdDb": {
|
||||
"model_type": "SourceSelectionValue",
|
||||
"source": "profile",
|
||||
"value": -90
|
||||
},
|
||||
"clientDisconnectThresholdDb": {
|
||||
"model_type": "SourceSelectionValue",
|
||||
"source": "profile",
|
||||
"value": -90
|
||||
},
|
||||
"eirpTxPower": {
|
||||
"model_type": "SourceSelectionValue",
|
||||
"source": "profile",
|
||||
"value": 18
|
||||
},
|
||||
"perimeterDetectionEnabled": true,
|
||||
"bestAPSteerType": "both",
|
||||
"deauthAttackDetection": null,
|
||||
"allowedChannelsPowerLevels": [
|
||||
{
|
||||
"model_type": "ChannelPowerLevel",
|
||||
"channelNumber": 1,
|
||||
"powerLevel": 18,
|
||||
"dfs": false,
|
||||
"channelWidth": 20
|
||||
},
|
||||
{
|
||||
"model_type": "ChannelPowerLevel",
|
||||
"channelNumber": 2,
|
||||
"powerLevel": 18,
|
||||
"dfs": false,
|
||||
"channelWidth": 20
|
||||
},
|
||||
{
|
||||
"model_type": "ChannelPowerLevel",
|
||||
"channelNumber": 3,
|
||||
"powerLevel": 18,
|
||||
"dfs": false,
|
||||
"channelWidth": 20
|
||||
},
|
||||
{
|
||||
"model_type": "ChannelPowerLevel",
|
||||
"channelNumber": 4,
|
||||
"powerLevel": 18,
|
||||
"dfs": false,
|
||||
"channelWidth": 20
|
||||
},
|
||||
{
|
||||
"model_type": "ChannelPowerLevel",
|
||||
"channelNumber": 5,
|
||||
"powerLevel": 18,
|
||||
"dfs": false,
|
||||
"channelWidth": 20
|
||||
},
|
||||
{
|
||||
"model_type": "ChannelPowerLevel",
|
||||
"channelNumber": 6,
|
||||
"powerLevel": 18,
|
||||
"dfs": false,
|
||||
"channelWidth": 20
|
||||
},
|
||||
{
|
||||
"model_type": "ChannelPowerLevel",
|
||||
"channelNumber": 7,
|
||||
"powerLevel": 18,
|
||||
"dfs": false,
|
||||
"channelWidth": 20
|
||||
},
|
||||
{
|
||||
"model_type": "ChannelPowerLevel",
|
||||
"channelNumber": 8,
|
||||
"powerLevel": 18,
|
||||
"dfs": false,
|
||||
"channelWidth": 20
|
||||
},
|
||||
{
|
||||
"model_type": "ChannelPowerLevel",
|
||||
"channelNumber": 9,
|
||||
"powerLevel": 18,
|
||||
"dfs": false,
|
||||
"channelWidth": 20
|
||||
},
|
||||
{
|
||||
"model_type": "ChannelPowerLevel",
|
||||
"channelNumber": 10,
|
||||
"powerLevel": 18,
|
||||
"dfs": false,
|
||||
"channelWidth": 20
|
||||
},
|
||||
{
|
||||
"model_type": "ChannelPowerLevel",
|
||||
"channelNumber": 11,
|
||||
"powerLevel": 18,
|
||||
"dfs": false,
|
||||
"channelWidth": 20
|
||||
}
|
||||
]
|
||||
},
|
||||
"is5GHzL": {
|
||||
"model_type": "ElementRadioConfiguration",
|
||||
"radioType": "is5GHzL",
|
||||
"channelNumber": 36,
|
||||
"manualChannelNumber": 36,
|
||||
"backupChannelNumber": 44,
|
||||
"manualBackupChannelNumber": 44,
|
||||
"rxCellSizeDb": {
|
||||
"model_type": "SourceSelectionValue",
|
||||
"source": "profile",
|
||||
"value": -90
|
||||
},
|
||||
"probeResponseThresholdDb": {
|
||||
"model_type": "SourceSelectionValue",
|
||||
"source": "profile",
|
||||
"value": -90
|
||||
},
|
||||
"clientDisconnectThresholdDb": {
|
||||
"model_type": "SourceSelectionValue",
|
||||
"source": "profile",
|
||||
"value": -90
|
||||
},
|
||||
"eirpTxPower": {
|
||||
"model_type": "SourceSelectionValue",
|
||||
"source": "profile",
|
||||
"value": 18
|
||||
},
|
||||
"perimeterDetectionEnabled": true,
|
||||
"bestAPSteerType": "both",
|
||||
"deauthAttackDetection": null,
|
||||
"allowedChannelsPowerLevels": [
|
||||
{
|
||||
"model_type": "ChannelPowerLevel",
|
||||
"channelNumber": 52,
|
||||
"powerLevel": 18,
|
||||
"dfs": true,
|
||||
"channelWidth": 80
|
||||
},
|
||||
{
|
||||
"model_type": "ChannelPowerLevel",
|
||||
"channelNumber": 36,
|
||||
"powerLevel": 18,
|
||||
"dfs": false,
|
||||
"channelWidth": 80
|
||||
},
|
||||
{
|
||||
"model_type": "ChannelPowerLevel",
|
||||
"channelNumber": 56,
|
||||
"powerLevel": 18,
|
||||
"dfs": true,
|
||||
"channelWidth": 80
|
||||
},
|
||||
{
|
||||
"model_type": "ChannelPowerLevel",
|
||||
"channelNumber": 40,
|
||||
"powerLevel": 18,
|
||||
"dfs": false,
|
||||
"channelWidth": 80
|
||||
},
|
||||
{
|
||||
"model_type": "ChannelPowerLevel",
|
||||
"channelNumber": 60,
|
||||
"powerLevel": 18,
|
||||
"dfs": true,
|
||||
"channelWidth": 80
|
||||
},
|
||||
{
|
||||
"model_type": "ChannelPowerLevel",
|
||||
"channelNumber": 44,
|
||||
"powerLevel": 18,
|
||||
"dfs": false,
|
||||
"channelWidth": 80
|
||||
},
|
||||
{
|
||||
"model_type": "ChannelPowerLevel",
|
||||
"channelNumber": 64,
|
||||
"powerLevel": 18,
|
||||
"dfs": true,
|
||||
"channelWidth": 80
|
||||
},
|
||||
{
|
||||
"model_type": "ChannelPowerLevel",
|
||||
"channelNumber": 48,
|
||||
"powerLevel": 18,
|
||||
"dfs": false,
|
||||
"channelWidth": 80
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"probeResponseThresholdDb": {
|
||||
"model_type": "SourceSelectionValue",
|
||||
"source": "auto",
|
||||
"value": -90
|
||||
},
|
||||
"clientDisconnectThresholdDb": {
|
||||
"model_type": "SourceSelectionValue",
|
||||
"source": "auto",
|
||||
"value": -90
|
||||
},
|
||||
"eirpTxPower": {
|
||||
"model_type": "SourceSelectionValue",
|
||||
"source": "auto",
|
||||
"value": 32
|
||||
},
|
||||
"perimeterDetectionEnabled": true,
|
||||
"bestAPSteerType": "both",
|
||||
"deauthAttackDetection": null,
|
||||
"allowedChannelsPowerLevels": [],
|
||||
"activeChannel": 6
|
||||
},
|
||||
"is5GHzU": {
|
||||
"model_type": "ElementRadioConfiguration",
|
||||
"radioType": "is5GHzU",
|
||||
"channelNumber": 149,
|
||||
"manualChannelNumber": 149,
|
||||
"backupChannelNumber": 154,
|
||||
"bannedChannels": [],
|
||||
"allowedChannels": [],
|
||||
"rxCellSizeDb": {
|
||||
"model_type": "SourceSelectionValue",
|
||||
"source": "auto",
|
||||
"value": -90
|
||||
},
|
||||
"probeResponseThresholdDb": {
|
||||
"model_type": "SourceSelectionValue",
|
||||
"source": "auto",
|
||||
"value": -90
|
||||
},
|
||||
"clientDisconnectThresholdDb": {
|
||||
"model_type": "SourceSelectionValue",
|
||||
"source": "auto",
|
||||
"value": -90
|
||||
},
|
||||
"eirpTxPower": {
|
||||
"model_type": "SourceSelectionValue",
|
||||
"source": "auto",
|
||||
"value": 32
|
||||
},
|
||||
"perimeterDetectionEnabled": true,
|
||||
"bestAPSteerType": "both",
|
||||
"deauthAttackDetection": null,
|
||||
"allowedChannelsPowerLevels": [],
|
||||
"activeChannel": 149
|
||||
},
|
||||
"is5GHzL": {
|
||||
"model_type": "ElementRadioConfiguration",
|
||||
"radioType": "is5GHzL",
|
||||
"channelNumber": 36,
|
||||
"manualChannelNumber": 36,
|
||||
"backupChannelNumber": 44,
|
||||
"bannedChannels": [],
|
||||
"allowedChannels": [],
|
||||
"rxCellSizeDb": {
|
||||
"model_type": "SourceSelectionValue",
|
||||
"source": "auto",
|
||||
"value": -90
|
||||
},
|
||||
"probeResponseThresholdDb": {
|
||||
"model_type": "SourceSelectionValue",
|
||||
"source": "auto",
|
||||
"value": -90
|
||||
},
|
||||
"clientDisconnectThresholdDb": {
|
||||
"model_type": "SourceSelectionValue",
|
||||
"source": "auto",
|
||||
"value": -90
|
||||
},
|
||||
"eirpTxPower": {
|
||||
"model_type": "SourceSelectionValue",
|
||||
"source": "auto",
|
||||
"value": 32
|
||||
},
|
||||
"perimeterDetectionEnabled": true,
|
||||
"bestAPSteerType": "both",
|
||||
"deauthAttackDetection": null,
|
||||
"allowedChannelsPowerLevels": [],
|
||||
"activeChannel": 36
|
||||
}
|
||||
"advancedRadioMap": {
|
||||
"is2dot4GHz": {
|
||||
"model_type": "RadioConfiguration",
|
||||
"radioType": "is2dot4GHz",
|
||||
"radioAdminState": "enabled",
|
||||
"fragmentationThresholdBytes": 2346,
|
||||
"uapsdState": "enabled",
|
||||
"stationIsolation": "disabled",
|
||||
"multicastRate": {
|
||||
"model_type": "SourceSelectionMulticast",
|
||||
"source": "profile",
|
||||
"value": "auto"
|
||||
},
|
||||
"managementRate": {
|
||||
"model_type": "SourceSelectionManagement",
|
||||
"source": "profile",
|
||||
"value": "auto"
|
||||
},
|
||||
"bestApSettings": {
|
||||
"model_type": "SourceSelectionSteering",
|
||||
"source": "manual",
|
||||
"value": {
|
||||
"model_type": "RadioBestApSettings",
|
||||
"mlComputed": true,
|
||||
"dropInSnrPercentage": 20,
|
||||
"minLoadFactor": 50
|
||||
}
|
||||
},
|
||||
"legacyBSSRate": "enabled",
|
||||
"dtimPeriod": 2,
|
||||
"deauthAttackDetection": null
|
||||
},
|
||||
"is5GHzU": {
|
||||
"model_type": "RadioConfiguration",
|
||||
"radioType": "is5GHzU",
|
||||
"radioAdminState": "enabled",
|
||||
"fragmentationThresholdBytes": 2346,
|
||||
"uapsdState": "enabled",
|
||||
"stationIsolation": "disabled",
|
||||
"multicastRate": {
|
||||
"model_type": "SourceSelectionMulticast",
|
||||
"source": "profile",
|
||||
"value": "auto"
|
||||
},
|
||||
"managementRate": {
|
||||
"model_type": "SourceSelectionManagement",
|
||||
"source": "profile",
|
||||
"value": "auto"
|
||||
},
|
||||
"bestApSettings": {
|
||||
"model_type": "SourceSelectionSteering",
|
||||
"source": "manual",
|
||||
"value": {
|
||||
"model_type": "RadioBestApSettings",
|
||||
"mlComputed": true,
|
||||
"dropInSnrPercentage": 30,
|
||||
"minLoadFactor": 40
|
||||
}
|
||||
},
|
||||
"legacyBSSRate": "enabled",
|
||||
"dtimPeriod": 2,
|
||||
"deauthAttackDetection": null
|
||||
},
|
||||
"is5GHzL": {
|
||||
"model_type": "RadioConfiguration",
|
||||
"radioType": "is5GHzL",
|
||||
"radioAdminState": "enabled",
|
||||
"fragmentationThresholdBytes": 2346,
|
||||
"uapsdState": "enabled",
|
||||
"stationIsolation": "disabled",
|
||||
"multicastRate": {
|
||||
"model_type": "SourceSelectionMulticast",
|
||||
"source": "profile",
|
||||
"value": "auto"
|
||||
},
|
||||
"managementRate": {
|
||||
"model_type": "SourceSelectionManagement",
|
||||
"source": "profile",
|
||||
"value": "auto"
|
||||
},
|
||||
"bestApSettings": {
|
||||
"model_type": "SourceSelectionSteering",
|
||||
"source": "manual",
|
||||
"value": {
|
||||
"model_type": "RadioBestApSettings",
|
||||
"mlComputed": true,
|
||||
"dropInSnrPercentage": 30,
|
||||
"minLoadFactor": 40
|
||||
}
|
||||
},
|
||||
"legacyBSSRate": "enabled",
|
||||
"dtimPeriod": 2,
|
||||
"deauthAttackDetection": null
|
||||
}
|
||||
}
|
||||
},
|
||||
"advancedRadioMap": {
|
||||
"is2dot4GHz": {
|
||||
"model_type": "RadioConfiguration",
|
||||
"radioType": "is2dot4GHz",
|
||||
"radioAdminState": "enabled",
|
||||
"fragmentationThresholdBytes": 2346,
|
||||
"uapsdState": "enabled",
|
||||
"stationIsolation": "disabled",
|
||||
"managementRate": {
|
||||
"model_type": "SourceSelectionManagement",
|
||||
"source": "auto",
|
||||
"value": "auto"
|
||||
},
|
||||
"bestApSettings": {
|
||||
"model_type": "SourceSelectionSteering",
|
||||
"source": "auto",
|
||||
"value": {
|
||||
"model_type": "RadioBestApSettings",
|
||||
"mlComputed": true,
|
||||
"dropInSnrPercentage": 30,
|
||||
"minLoadFactor": 40
|
||||
}
|
||||
},
|
||||
"legacyBSSRate": "enabled",
|
||||
"deauthAttackDetection": null
|
||||
},
|
||||
"is5GHzU": {
|
||||
"model_type": "RadioConfiguration",
|
||||
"radioType": "is5GHzU",
|
||||
"radioAdminState": "enabled",
|
||||
"fragmentationThresholdBytes": 2346,
|
||||
"uapsdState": "enabled",
|
||||
"stationIsolation": "disabled",
|
||||
"managementRate": {
|
||||
"model_type": "SourceSelectionManagement",
|
||||
"source": "auto",
|
||||
"value": "auto"
|
||||
},
|
||||
"bestApSettings": {
|
||||
"model_type": "SourceSelectionSteering",
|
||||
"source": "auto",
|
||||
"value": {
|
||||
"model_type": "RadioBestApSettings",
|
||||
"mlComputed": true,
|
||||
"dropInSnrPercentage": 30,
|
||||
"minLoadFactor": 40
|
||||
}
|
||||
},
|
||||
"legacyBSSRate": "enabled",
|
||||
"deauthAttackDetection": null
|
||||
},
|
||||
"is5GHzL": {
|
||||
"model_type": "RadioConfiguration",
|
||||
"radioType": "is5GHzL",
|
||||
"radioAdminState": "enabled",
|
||||
"fragmentationThresholdBytes": 2346,
|
||||
"uapsdState": "enabled",
|
||||
"stationIsolation": "disabled",
|
||||
"managementRate": {
|
||||
"model_type": "SourceSelectionManagement",
|
||||
"source": "auto",
|
||||
"value": "auto"
|
||||
},
|
||||
"bestApSettings": {
|
||||
"model_type": "SourceSelectionSteering",
|
||||
"source": "auto",
|
||||
"value": {
|
||||
"model_type": "RadioBestApSettings",
|
||||
"mlComputed": true,
|
||||
"dropInSnrPercentage": 30,
|
||||
"minLoadFactor": 40
|
||||
}
|
||||
},
|
||||
"legacyBSSRate": "enabled",
|
||||
"deauthAttackDetection": null
|
||||
}
|
||||
}
|
||||
},
|
||||
"latitude": null,
|
||||
"longitude": null,
|
||||
"serial": "21P10C68818122",
|
||||
"createdTimestamp": 1591653239821,
|
||||
"lastModifiedTimestamp": 1591653241398
|
||||
"latitude": null,
|
||||
"longitude": null,
|
||||
"baseMacAddress": {
|
||||
"model_type": "MacAddress",
|
||||
"address": "JPWi7y5T",
|
||||
"addressAsString": "24:f5:a2:ef:2e:53"
|
||||
},
|
||||
"serial": "21P10C68818122",
|
||||
"createdTimestamp": 1612285288821,
|
||||
"lastModifiedTimestamp": 1612285293922
|
||||
}
|
||||
@@ -1,60 +1,61 @@
|
||||
{
|
||||
"model_type" : "Location",
|
||||
"id" : 8,
|
||||
"parentId" : 0,
|
||||
"locationType" : "SITE",
|
||||
"customerId" : 2,
|
||||
"name" : "Ottawa",
|
||||
"details" : {
|
||||
"model_type" : "LocationDetails",
|
||||
"countryCode" : "ca",
|
||||
"maintenanceWindow" : null,
|
||||
"rrmEnabled" : true,
|
||||
"dailyActivityDetails" : {
|
||||
"SUNDAY" : {
|
||||
"model_type" : "LocationActivityDetails",
|
||||
"busyTime" : "13:30",
|
||||
"quietTime" : "3:30",
|
||||
"timezone" : "US/Eastern"
|
||||
},
|
||||
"MONDAY" : {
|
||||
"model_type" : "LocationActivityDetails",
|
||||
"busyTime" : "13:30",
|
||||
"quietTime" : "3:30",
|
||||
"timezone" : "US/Eastern"
|
||||
},
|
||||
"TUESDAY" : {
|
||||
"model_type" : "LocationActivityDetails",
|
||||
"busyTime" : "13:30",
|
||||
"quietTime" : "3:30",
|
||||
"timezone" : "US/Eastern"
|
||||
},
|
||||
"WEDNESDAY" : {
|
||||
"model_type" : "LocationActivityDetails",
|
||||
"busyTime" : "13:30",
|
||||
"quietTime" : "3:30",
|
||||
"timezone" : "US/Eastern"
|
||||
},
|
||||
"THURSDAY" : {
|
||||
"model_type" : "LocationActivityDetails",
|
||||
"busyTime" : "13:30",
|
||||
"quietTime" : "3:30",
|
||||
"timezone" : "US/Eastern"
|
||||
},
|
||||
"FRIDAY" : {
|
||||
"model_type" : "LocationActivityDetails",
|
||||
"busyTime" : "13:30",
|
||||
"quietTime" : "3:30",
|
||||
"timezone" : "US/Eastern"
|
||||
},
|
||||
"SATURDAY" : {
|
||||
"model_type" : "LocationActivityDetails",
|
||||
"busyTime" : "13:30",
|
||||
"quietTime" : "3:30",
|
||||
"timezone" : "US/Eastern"
|
||||
}
|
||||
}
|
||||
},
|
||||
"createdTimestamp" : 1590607043540,
|
||||
"lastModifiedTimestamp" : 1590607043540
|
||||
"model_type": "Location",
|
||||
"id": 8,
|
||||
"parentId": 0,
|
||||
"locationType": "SITE",
|
||||
"customerId": 2,
|
||||
"name": "Ottawa",
|
||||
"details": {
|
||||
"model_type": "LocationDetails",
|
||||
"countryCode": "CA",
|
||||
"dailyActivityDetails": {
|
||||
"SUNDAY": {
|
||||
"model_type": "LocationActivityDetails",
|
||||
"busyTime": "13:30",
|
||||
"quietTime": "3:00",
|
||||
"timezone": "US/Eastern"
|
||||
},
|
||||
"MONDAY": {
|
||||
"model_type": "LocationActivityDetails",
|
||||
"busyTime": "13:30",
|
||||
"quietTime": "3:00",
|
||||
"timezone": "US/Eastern"
|
||||
},
|
||||
"TUESDAY": {
|
||||
"model_type": "LocationActivityDetails",
|
||||
"busyTime": "13:30",
|
||||
"quietTime": "3:00",
|
||||
"timezone": "US/Eastern"
|
||||
},
|
||||
"WEDNESDAY": {
|
||||
"model_type": "LocationActivityDetails",
|
||||
"busyTime": "13:30",
|
||||
"quietTime": "3:00",
|
||||
"timezone": "US/Eastern"
|
||||
},
|
||||
"THURSDAY": {
|
||||
"model_type": "LocationActivityDetails",
|
||||
"busyTime": "13:30",
|
||||
"quietTime": "3:00",
|
||||
"timezone": "US/Eastern"
|
||||
},
|
||||
"FRIDAY": {
|
||||
"model_type": "LocationActivityDetails",
|
||||
"busyTime": "13:30",
|
||||
"quietTime": "3:00",
|
||||
"timezone": "US/Eastern"
|
||||
},
|
||||
"SATURDAY": {
|
||||
"model_type": "LocationActivityDetails",
|
||||
"busyTime": "13:30",
|
||||
"quietTime": "3:00",
|
||||
"timezone": "US/Eastern"
|
||||
}
|
||||
},
|
||||
"maintenanceWindow": null,
|
||||
"rrmEnabled": true,
|
||||
"timezone": "US/Eastern"
|
||||
},
|
||||
"createdTimestamp": 1612285243534,
|
||||
"lastModifiedTimestamp": 1612285243534
|
||||
}
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"model_type": "Profile",
|
||||
"id": 12,
|
||||
"id": 8,
|
||||
"customerId": 2,
|
||||
"profileType": "equipment_ap",
|
||||
"name": "ApProfile-3-radios",
|
||||
@@ -20,11 +20,6 @@
|
||||
"syntheticClientEnabled": true,
|
||||
"ledControlEnabled": true,
|
||||
"equipmentDiscovery": false,
|
||||
"greTunnelName": null,
|
||||
"greParentIfName": null,
|
||||
"greLocalInetAddr": null,
|
||||
"greRemoteInetAddr": null,
|
||||
"greRemoteMacAddr": null,
|
||||
"radioMap": {
|
||||
"is2dot4GHz": {
|
||||
"model_type": "RadioProfileConfiguration",
|
||||
@@ -42,15 +37,22 @@
|
||||
"bestAPSteerType": "both"
|
||||
}
|
||||
},
|
||||
"greTunnelConfigurations": [
|
||||
{
|
||||
"model_type": "GreTunnelConfiguration",
|
||||
"greTunnelName": "gre1",
|
||||
"greRemoteInetAddr": "192.168.1.101",
|
||||
"vlanIdsInGreTunnel": [
|
||||
100
|
||||
]
|
||||
}
|
||||
],
|
||||
"profileType": "equipment_ap"
|
||||
},
|
||||
"createdTimestamp": 1606778369934,
|
||||
"lastModifiedTimestamp": 1606778443413,
|
||||
"createdTimestamp": 1612285248925,
|
||||
"lastModifiedTimestamp": 1612285628377,
|
||||
"childProfileIds": [
|
||||
16,
|
||||
5,
|
||||
10,
|
||||
11,
|
||||
15
|
||||
2,
|
||||
4
|
||||
]
|
||||
}
|
||||
@@ -1,135 +1,58 @@
|
||||
[
|
||||
{
|
||||
{
|
||||
"model_type": "Profile",
|
||||
"id": 14,
|
||||
"id": 5,
|
||||
"customerId": 2,
|
||||
"profileType": "captive_portal",
|
||||
"name": "Captive-portal",
|
||||
"details": {
|
||||
"model_type": "CaptivePortalConfiguration",
|
||||
"name": "Captive-portal",
|
||||
"browserTitle": "Access the network as Guest",
|
||||
"headerContent": "Captive Portal",
|
||||
"userAcceptancePolicy": "Use this network at your own risk. No warranty of any kind.",
|
||||
"successPageMarkdownText": "Welcome to the network",
|
||||
"redirectURL": "",
|
||||
"externalCaptivePortalURL": null,
|
||||
"sessionTimeoutInMinutes": 60,
|
||||
"logoFile": null,
|
||||
"backgroundFile": null,
|
||||
"walledGardenAllowlist": [],
|
||||
"usernamePasswordFile": {
|
||||
"model_type": "ManagedFileInfo",
|
||||
"md5checksum": null,
|
||||
"lastModifiedTimestamp": null,
|
||||
"apExportUrl": "userList",
|
||||
"fileCategory": "UsernamePasswordList",
|
||||
"fileType": "TEXT",
|
||||
"altSlot": true
|
||||
},
|
||||
"authenticationType": "guest",
|
||||
"radiusAuthMethod": "CHAP",
|
||||
"maxUsersWithSameCredentials": 42,
|
||||
"externalPolicyFile": null,
|
||||
"backgroundPosition": "left_top",
|
||||
"backgroundRepeat": "no_repeat",
|
||||
"radiusServiceName": null,
|
||||
"expiryType": "unlimited",
|
||||
"userList": [
|
||||
{
|
||||
"model_type": "TimedAccessUserRecord",
|
||||
"username": "customer",
|
||||
"password": "testing123",
|
||||
"activationTime": 1602183994956,
|
||||
"expirationTime": 1602212794956,
|
||||
"numDevices": 1,
|
||||
"userDetails": {
|
||||
"model_type": "TimedAccessUserDetails",
|
||||
"firstName": "Pac",
|
||||
"lastName": "Man",
|
||||
"passwordNeedsReset": false
|
||||
},
|
||||
"userMacAddresses": [
|
||||
{
|
||||
"model_type": "MacAddress",
|
||||
"address": "fKtg5upO",
|
||||
"addressAsString": "7c:ab:60:e6:ea:4e"
|
||||
}
|
||||
],
|
||||
"lastModifiedTimestamp": 0
|
||||
},
|
||||
{
|
||||
"model_type": "TimedAccessUserRecord",
|
||||
"username": "customer",
|
||||
"password": "testing123",
|
||||
"activationTime": 1602183994957,
|
||||
"expirationTime": 1602187594957,
|
||||
"numDevices": 0,
|
||||
"userDetails": {
|
||||
"model_type": "TimedAccessUserDetails",
|
||||
"firstName": "Q",
|
||||
"lastName": "Bert",
|
||||
"passwordNeedsReset": false
|
||||
},
|
||||
"userMacAddresses": [
|
||||
{
|
||||
"model_type": "MacAddress",
|
||||
"address": "wJrQdqho",
|
||||
"addressAsString": "c0:9a:d0:76:a8:68"
|
||||
}
|
||||
],
|
||||
"lastModifiedTimestamp": 0
|
||||
},
|
||||
{
|
||||
"model_type": "TimedAccessUserRecord",
|
||||
"username": "customer2",
|
||||
"password": "testing1234",
|
||||
"activationTime": 1602183994957,
|
||||
"expirationTime": 1602788794957,
|
||||
"numDevices": 1,
|
||||
"userDetails": {
|
||||
"model_type": "TimedAccessUserDetails",
|
||||
"firstName": "Duke",
|
||||
"lastName": "Nukem",
|
||||
"passwordNeedsReset": false
|
||||
},
|
||||
"userMacAddresses": [
|
||||
{
|
||||
"model_type": "MacAddress",
|
||||
"address": "fKtg5upN",
|
||||
"addressAsString": "7c:ab:60:e6:ea:4d"
|
||||
}
|
||||
],
|
||||
"lastModifiedTimestamp": 0
|
||||
},
|
||||
{
|
||||
"model_type": "TimedAccessUserRecord",
|
||||
"username": "customer2",
|
||||
"password": "testing1234",
|
||||
"activationTime": 1602183994957,
|
||||
"expirationTime": 1602270394957,
|
||||
"numDevices": 0,
|
||||
"userDetails": {
|
||||
"model_type": "TimedAccessUserDetails",
|
||||
"firstName": "Missile",
|
||||
"lastName": "Commander",
|
||||
"passwordNeedsReset": false
|
||||
},
|
||||
"userMacAddresses": [
|
||||
{
|
||||
"model_type": "MacAddress",
|
||||
"address": "wJrQdqhj",
|
||||
"addressAsString": "c0:9a:d0:76:a8:63"
|
||||
}
|
||||
],
|
||||
"lastModifiedTimestamp": 0
|
||||
}
|
||||
],
|
||||
"macAllowList": [],
|
||||
"profileType": "captive_portal"
|
||||
"model_type": "CaptivePortalConfiguration",
|
||||
"name": "Default",
|
||||
"browserTitle": "Captive-portal",
|
||||
"headerContent": "Captive Portal",
|
||||
"userAcceptancePolicy": "Please agree to the following terms for using this network:",
|
||||
"successPageMarkdownText": "You are now authorized and connected to the network.",
|
||||
"redirectURL": "https://www.google.com",
|
||||
"externalCaptivePortalURL": null,
|
||||
"sessionTimeoutInMinutes": 10,
|
||||
"logoFile": {
|
||||
"model_type": "ManagedFileInfo",
|
||||
"md5checksum": null,
|
||||
"lastModifiedTimestamp": null,
|
||||
"apExportUrl": "/filestore/tip-logo-mobile",
|
||||
"fileCategory": "CaptivePortalLogo",
|
||||
"fileType": "PNG",
|
||||
"altSlot": false
|
||||
},
|
||||
"backgroundFile": {
|
||||
"model_type": "ManagedFileInfo",
|
||||
"md5checksum": null,
|
||||
"lastModifiedTimestamp": null,
|
||||
"apExportUrl": "/filestore/tip-logo",
|
||||
"fileCategory": "CaptivePortalBackground",
|
||||
"fileType": "PNG",
|
||||
"altSlot": false
|
||||
},
|
||||
"walledGardenAllowlist": [
|
||||
],
|
||||
"usernamePasswordFile": null,
|
||||
"authenticationType": "guest",
|
||||
"radiusAuthMethod": "CHAP",
|
||||
"maxUsersWithSameCredentials": 3,
|
||||
"externalPolicyFile": null,
|
||||
"backgroundPosition": "left_top",
|
||||
"backgroundRepeat": "no_repeat",
|
||||
"radiusServiceId": 0,
|
||||
"expiryType": "time_limited",
|
||||
"userList": [
|
||||
],
|
||||
"macAllowList": [
|
||||
],
|
||||
"profileType": "captive_portal"
|
||||
},
|
||||
"createdTimestamp": 1602183994959,
|
||||
"lastModifiedTimestamp": 1602183994959,
|
||||
"childProfileIds": []
|
||||
}
|
||||
"createdTimestamp": 1611857459118,
|
||||
"lastModifiedTimestamp": 1611857459118,
|
||||
"childProfileIds": [
|
||||
]
|
||||
}
|
||||
]
|
||||
@@ -1,71 +1,71 @@
|
||||
[
|
||||
{
|
||||
"model_type": "Profile",
|
||||
"id": 24,
|
||||
"customerId": 2,
|
||||
"profileType": "passpoint",
|
||||
"name": "TipWlan-Passpoint-Config",
|
||||
"details": {
|
||||
"model_type": "PasspointProfile",
|
||||
"enableInterworkingAndHs20": true,
|
||||
"hessid": null,
|
||||
"passpointAccessNetworkType": "free_public_network",
|
||||
"passpointNetworkAuthenticationType": "acceptance_of_terms_and_conditions",
|
||||
"additionalStepsRequiredForAccess": 0,
|
||||
"deauthRequestTimeout": 0,
|
||||
"operatingClass": 0,
|
||||
"termsAndConditionsFile": {
|
||||
"model_type": "ManagedFileInfo",
|
||||
"md5checksum": null,
|
||||
"lastModifiedTimestamp": null,
|
||||
"apExportUrl": "https://localhost:9091/filestore/termsAndConditions",
|
||||
"fileCategory": "ExternalPolicyConfiguration",
|
||||
"fileType": "TEXT",
|
||||
"altSlot": false
|
||||
},
|
||||
"whitelistDomain": null,
|
||||
"emergencyServicesReachable": true,
|
||||
"unauthenticatedEmergencyServiceAccessible": false,
|
||||
"internetConnectivity": true,
|
||||
"connectionCapabilitySet": [
|
||||
{
|
||||
"model_type": "PasspointConnectionCapability",
|
||||
"connectionCapabilitiesPortNumber": 8888,
|
||||
"connectionCapabilitiesStatus": "open",
|
||||
"connectionCapabilitiesIpProtocol": "TCP"
|
||||
}
|
||||
],
|
||||
"ipAddressTypeAvailability": "public_IPv4_address_available",
|
||||
"qosMapSetConfiguration": null,
|
||||
"apGeospatialLocation": null,
|
||||
"apCivicLocation": null,
|
||||
"apPublicLocationIdUri": null,
|
||||
"gasAddr3Behaviour": "p2pSpecWorkaroundFromRequest",
|
||||
"anqpDomainId": 1234,
|
||||
"disableDownstreamGroupAddressedForwarding": false,
|
||||
"enable2pt4GHz": true,
|
||||
"enable5GHz": true,
|
||||
"associatedAccessSsidProfileIds": [
|
||||
15
|
||||
],
|
||||
"osuSsidProfileId": 16,
|
||||
"passpointOperatorProfileId": 17,
|
||||
"passpointVenueProfileId": 18,
|
||||
"passpointOsuProviderProfileIds": [
|
||||
19,
|
||||
20
|
||||
],
|
||||
"accessNetworkType": "free_public_network",
|
||||
"networkAuthenticationType": "acceptance_of_terms_and_conditions",
|
||||
"profileType": "passpoint"
|
||||
},
|
||||
"createdTimestamp": 1606778370807,
|
||||
"lastModifiedTimestamp": 1606778370807,
|
||||
"childProfileIds": [
|
||||
17,
|
||||
18,
|
||||
19,
|
||||
20
|
||||
]
|
||||
}
|
||||
{
|
||||
"model_type": "Profile",
|
||||
"id": 37,
|
||||
"customerId": 2,
|
||||
"profileType": "passpoint",
|
||||
"name": "hotspot20-profile-2021-01-21T21:28:59.171Z",
|
||||
"details": {
|
||||
"model_type": "PasspointProfile",
|
||||
"enableInterworkingAndHs20": true,
|
||||
"hessid": null,
|
||||
"passpointAccessNetworkType": "free_public_network",
|
||||
"passpointNetworkAuthenticationType": "acceptance_of_terms_and_conditions",
|
||||
"additionalStepsRequiredForAccess": 0,
|
||||
"deauthRequestTimeout": 0,
|
||||
"operatingClass": 0,
|
||||
"termsAndConditionsFile": {
|
||||
"model_type": "ManagedFileInfo",
|
||||
"md5checksum": null,
|
||||
"lastModifiedTimestamp": null,
|
||||
"apExportUrl": "https://localhost:9091/filestore/termsAndConditions",
|
||||
"fileCategory": "ExternalPolicyConfiguration",
|
||||
"fileType": "TEXT",
|
||||
"altSlot": false
|
||||
},
|
||||
"whitelistDomain": null,
|
||||
"emergencyServicesReachable": true,
|
||||
"unauthenticatedEmergencyServiceAccessible": false,
|
||||
"internetConnectivity": true,
|
||||
"connectionCapabilitySet": [
|
||||
{
|
||||
"model_type": "PasspointConnectionCapability",
|
||||
"connectionCapabilitiesPortNumber": 8888,
|
||||
"connectionCapabilitiesIpProtocol": "TCP",
|
||||
"connectionCapabilitiesStatus": "open"
|
||||
}
|
||||
],
|
||||
"ipAddressTypeAvailability": "public_IPv4_address_available",
|
||||
"qosMapSetConfiguration": null,
|
||||
"apGeospatialLocation": null,
|
||||
"apCivicLocation": null,
|
||||
"apPublicLocationIdUri": null,
|
||||
"gasAddr3Behaviour": "p2pSpecWorkaroundFromRequest",
|
||||
"anqpDomainId": 1234,
|
||||
"disableDownstreamGroupAddressedForwarding": false,
|
||||
"enable2pt4GHz": true,
|
||||
"enable5GHz": true,
|
||||
"associatedAccessSsidProfileIds": [
|
||||
32
|
||||
],
|
||||
"osuSsidProfileId": 31,
|
||||
"passpointOperatorProfileId": 34,
|
||||
"passpointVenueProfileId": 33,
|
||||
"passpointOsuProviderProfileIds": [
|
||||
35,
|
||||
36
|
||||
],
|
||||
"accessNetworkType": "free_public_network",
|
||||
"networkAuthenticationType": "acceptance_of_terms_and_conditions",
|
||||
"profileType": "passpoint"
|
||||
},
|
||||
"createdTimestamp": 0,
|
||||
"lastModifiedTimestamp": 1611264539331,
|
||||
"childProfileIds": [
|
||||
33,
|
||||
34,
|
||||
35,
|
||||
36
|
||||
]
|
||||
}
|
||||
]
|
||||
|
||||
@@ -1,270 +1,263 @@
|
||||
[
|
||||
{
|
||||
"model_type": "Profile",
|
||||
"id": 19,
|
||||
"customerId": 2,
|
||||
"profileType": "passpoint_osu_id_provider",
|
||||
"name": "TipWlan-Passpoint-OSU-Provider",
|
||||
"details": {
|
||||
"model_type": "PasspointOsuProviderProfile",
|
||||
"domainName": "rogers.com",
|
||||
"mccMncList": [
|
||||
{
|
||||
"model_type": "PasspointMccMnc",
|
||||
"mcc": 302,
|
||||
"mnc": 720,
|
||||
"iso": "ca",
|
||||
"country": "Canada",
|
||||
"countryCode": 1,
|
||||
"network": "Rogers AT&T Wireless",
|
||||
"mccMncPairing": "302,720"
|
||||
}
|
||||
],
|
||||
"naiRealmList": [
|
||||
{
|
||||
"model_type": "PasspointNaiRealmInformation",
|
||||
"naiRealms": [
|
||||
"rogers.com"
|
||||
],
|
||||
"encoding": 0,
|
||||
"eapMethods": [
|
||||
"EAP-TTLS with username/password",
|
||||
"EAP-TLS with certificate"
|
||||
],
|
||||
"eapMap": {
|
||||
"EAP-TTLS with username/password": [
|
||||
"Credential Type:username/password",
|
||||
"Non-EAP Inner Authentication Type:MSCHAPV2"
|
||||
],
|
||||
"EAP-TLS with certificate": [
|
||||
"Credential Type:Certificate"
|
||||
]
|
||||
}
|
||||
}
|
||||
],
|
||||
"osuIconList": [
|
||||
{
|
||||
"model_type": "PasspointOsuIcon",
|
||||
"iconWidth": 32,
|
||||
"iconHeight": 32,
|
||||
"languageCode": "eng",
|
||||
"iconLocale": "en_CA",
|
||||
"iconName": "icon32eng",
|
||||
"filePath": "/tmp/icon32eng.png",
|
||||
"imageUrl": "https://localhost:9096/icon32eng.png",
|
||||
"hs20IconString": "32:32:eng:image/png:icon32eng:/tmp/icon32eng.png"
|
||||
},
|
||||
{
|
||||
"model_type": "PasspointOsuIcon",
|
||||
"iconWidth": 32,
|
||||
"iconHeight": 32,
|
||||
"languageCode": "fra",
|
||||
"iconLocale": "fr_CA",
|
||||
"iconName": "icon32fra",
|
||||
"filePath": "/tmp/icon32fra.png",
|
||||
"imageUrl": "https://localhost:9096/icon32fra.png",
|
||||
"hs20IconString": "32:32:fra:image/png:icon32fra:/tmp/icon32fra.png"
|
||||
},
|
||||
{
|
||||
"model_type": "PasspointOsuIcon",
|
||||
"iconWidth": 32,
|
||||
"iconHeight": 32,
|
||||
"languageCode": "eng",
|
||||
"iconLocale": "en_US",
|
||||
"iconName": "icon32usa",
|
||||
"filePath": "/tmp/icon32usa.png",
|
||||
"imageUrl": "https://localhost:9096/icon32usa.png",
|
||||
"hs20IconString": "32:32:eng:image/png:icon32usa:/tmp/icon32usa.png"
|
||||
}
|
||||
],
|
||||
"osuServerUri": "https://example.com/osu/rogers",
|
||||
"osuFriendlyName": [
|
||||
{
|
||||
"model_type": "PasspointDuple",
|
||||
"locale": "en_CA",
|
||||
"dupleIso3Language": "eng",
|
||||
"dupleName": "Example provider rogers",
|
||||
"defaultDupleSeparator": ":",
|
||||
"asDuple": "eng:Example provider rogers"
|
||||
},
|
||||
{
|
||||
"model_type": "PasspointDuple",
|
||||
"locale": "fr_CA",
|
||||
"dupleIso3Language": "fra",
|
||||
"dupleName": "Exemple de fournisseur rogers",
|
||||
"defaultDupleSeparator": ":",
|
||||
"asDuple": "fra:Exemple de fournisseur rogers"
|
||||
}
|
||||
],
|
||||
"osuNaiStandalone": "anonymous@rogers.com",
|
||||
"osuNaiShared": "anonymous@rogers.com",
|
||||
"osuMethodList": [
|
||||
1,
|
||||
0
|
||||
],
|
||||
"osuServiceDescription": [
|
||||
{
|
||||
"model_type": "PasspointDuple",
|
||||
"locale": "en_CA",
|
||||
"dupleIso3Language": "eng",
|
||||
"dupleName": "Example services rogers",
|
||||
"defaultDupleSeparator": ":",
|
||||
"asDuple": "eng:Example services rogers"
|
||||
},
|
||||
{
|
||||
"model_type": "PasspointDuple",
|
||||
"locale": "fr_CA",
|
||||
"dupleIso3Language": "fra",
|
||||
"dupleName": "Exemples de services rogers",
|
||||
"defaultDupleSeparator": ":",
|
||||
"asDuple": "fra:Exemples de services rogers"
|
||||
}
|
||||
],
|
||||
"roamingOi": [
|
||||
1,
|
||||
2,
|
||||
3,
|
||||
4
|
||||
],
|
||||
"profileType": "passpoint_osu_id_provider"
|
||||
},
|
||||
"createdTimestamp": 1606778370345,
|
||||
"lastModifiedTimestamp": 1606778370345,
|
||||
"childProfileIds": [
|
||||
]
|
||||
},
|
||||
{
|
||||
"model_type": "Profile",
|
||||
"id": 20,
|
||||
"customerId": 2,
|
||||
"profileType": "passpoint_osu_id_provider",
|
||||
"name": "TipWlan-Passpoint-OSU-Provider-2",
|
||||
"details": {
|
||||
"model_type": "PasspointOsuProviderProfile",
|
||||
"domainName": "telus.com",
|
||||
"mccMncList": [
|
||||
{
|
||||
"model_type": "PasspointMccMnc",
|
||||
"mcc": 302,
|
||||
"mnc": 220,
|
||||
"iso": "ca",
|
||||
"country": "Canada",
|
||||
"countryCode": 1,
|
||||
"network": "Telus Mobility",
|
||||
"mccMncPairing": "302,220"
|
||||
}
|
||||
],
|
||||
"naiRealmList": [
|
||||
{
|
||||
"model_type": "PasspointNaiRealmInformation",
|
||||
"naiRealms": [
|
||||
"telus.com"
|
||||
],
|
||||
"encoding": 0,
|
||||
"eapMethods": [
|
||||
"EAP-TTLS with username/password",
|
||||
"EAP-TLS with certificate"
|
||||
],
|
||||
"eapMap": {
|
||||
"EAP-TTLS with username/password": [
|
||||
"Credential Type:username/password",
|
||||
"Non-EAP Inner Authentication Type:MSCHAPV2"
|
||||
],
|
||||
"EAP-TLS with certificate": [
|
||||
"Credential Type:Certificate"
|
||||
]
|
||||
}
|
||||
}
|
||||
],
|
||||
"osuIconList": [
|
||||
{
|
||||
"model_type": "PasspointOsuIcon",
|
||||
"iconWidth": 32,
|
||||
"iconHeight": 32,
|
||||
"languageCode": "eng",
|
||||
"iconLocale": "en_CA",
|
||||
"iconName": "icon32eng",
|
||||
"filePath": "/tmp/icon32eng.png",
|
||||
"imageUrl": "https://localhost:9096/icon32eng.png",
|
||||
"hs20IconString": "32:32:eng:image/png:icon32eng:/tmp/icon32eng.png"
|
||||
},
|
||||
{
|
||||
"model_type": "PasspointOsuIcon",
|
||||
"iconWidth": 32,
|
||||
"iconHeight": 32,
|
||||
"languageCode": "fra",
|
||||
"iconLocale": "fr_CA",
|
||||
"iconName": "icon32fra",
|
||||
"filePath": "/tmp/icon32fra.png",
|
||||
"imageUrl": "https://localhost:9096/icon32fra.png",
|
||||
"hs20IconString": "32:32:fra:image/png:icon32fra:/tmp/icon32fra.png"
|
||||
},
|
||||
{
|
||||
"model_type": "PasspointOsuIcon",
|
||||
"iconWidth": 32,
|
||||
"iconHeight": 32,
|
||||
"languageCode": "eng",
|
||||
"iconLocale": "en_US",
|
||||
"iconName": "icon32usa",
|
||||
"filePath": "/tmp/icon32usa.png",
|
||||
"imageUrl": "https://localhost:9096/icon32usa.png",
|
||||
"hs20IconString": "32:32:eng:image/png:icon32usa:/tmp/icon32usa.png"
|
||||
}
|
||||
],
|
||||
"osuServerUri": "https://example.com/osu/telus",
|
||||
"osuFriendlyName": [
|
||||
{
|
||||
"model_type": "PasspointDuple",
|
||||
"locale": "en_CA",
|
||||
"dupleIso3Language": "eng",
|
||||
"dupleName": "Example provider telus",
|
||||
"defaultDupleSeparator": ":",
|
||||
"asDuple": "eng:Example provider telus"
|
||||
},
|
||||
{
|
||||
"model_type": "PasspointDuple",
|
||||
"locale": "fr_CA",
|
||||
"dupleIso3Language": "fra",
|
||||
"dupleName": "Exemple de fournisseur telus",
|
||||
"defaultDupleSeparator": ":",
|
||||
"asDuple": "fra:Exemple de fournisseur telus"
|
||||
}
|
||||
],
|
||||
"osuNaiStandalone": "anonymous@telus.com",
|
||||
"osuNaiShared": "anonymous@telus.com",
|
||||
"osuMethodList": [
|
||||
1,
|
||||
0
|
||||
],
|
||||
"osuServiceDescription": [
|
||||
{
|
||||
"model_type": "PasspointDuple",
|
||||
"locale": "en_CA",
|
||||
"dupleIso3Language": "eng",
|
||||
"dupleName": "Example services telus",
|
||||
"defaultDupleSeparator": ":",
|
||||
"asDuple": "eng:Example services telus"
|
||||
},
|
||||
{
|
||||
"model_type": "PasspointDuple",
|
||||
"locale": "fr_CA",
|
||||
"dupleIso3Language": "fra",
|
||||
"dupleName": "Exemples de services telus",
|
||||
"defaultDupleSeparator": ":",
|
||||
"asDuple": "fra:Exemples de services telus"
|
||||
}
|
||||
],
|
||||
"roamingOi": [
|
||||
1,
|
||||
2,
|
||||
3,
|
||||
4
|
||||
],
|
||||
"profileType": "passpoint_osu_id_provider"
|
||||
},
|
||||
"createdTimestamp": 1606778370351,
|
||||
"lastModifiedTimestamp": 1606778370351,
|
||||
"childProfileIds": [
|
||||
]
|
||||
}
|
||||
{
|
||||
"model_type": "Profile",
|
||||
"id": 35,
|
||||
"customerId": 2,
|
||||
"profileType": "passpoint_osu_id_provider",
|
||||
"name": "provider1-profile-2021-01-21T21:28:59.057Z",
|
||||
"details": {
|
||||
"model_type": "PasspointOsuProviderProfile",
|
||||
"mccMncList": [
|
||||
{
|
||||
"model_type": "PasspointMccMnc",
|
||||
"mcc": 302,
|
||||
"mnc": 720,
|
||||
"iso": "ca",
|
||||
"country": "Canada",
|
||||
"countryCode": 1,
|
||||
"network": "Rogers AT&T Wireless",
|
||||
"mccMncPairing": "302,720"
|
||||
}
|
||||
],
|
||||
"naiRealmList": [
|
||||
{
|
||||
"model_type": "PasspointNaiRealmInformation",
|
||||
"naiRealms": [
|
||||
"rogers.com"
|
||||
],
|
||||
"encoding": 0,
|
||||
"eapMethods": [
|
||||
"EAP-TTLS with username/password",
|
||||
"EAP-TLS with certificate"
|
||||
],
|
||||
"eapMap": {
|
||||
"EAP-TTLS with username/password": [
|
||||
"Credential Type:username/password",
|
||||
"Non-EAP Inner Authentication Type:MSCHAPV2"
|
||||
],
|
||||
"EAP-TLS with certificate": [
|
||||
"Credential Type:Certificate"
|
||||
]
|
||||
}
|
||||
}
|
||||
],
|
||||
"osuIconList": [
|
||||
{
|
||||
"model_type": "PasspointOsuIcon",
|
||||
"iconWidth": 32,
|
||||
"iconHeight": 32,
|
||||
"languageCode": "eng",
|
||||
"iconLocale": "en_CA",
|
||||
"iconName": "icon32eng",
|
||||
"filePath": "/tmp/icon32eng.png",
|
||||
"imageUrl": "https://localhost:9096/icon32eng.png",
|
||||
"hs20IconString": "32:32:eng:image/png:icon32eng:/tmp/icon32eng.png"
|
||||
},
|
||||
{
|
||||
"model_type": "PasspointOsuIcon",
|
||||
"iconWidth": 32,
|
||||
"iconHeight": 32,
|
||||
"languageCode": "fra",
|
||||
"iconLocale": "fr_CA",
|
||||
"iconName": "icon32fra",
|
||||
"filePath": "/tmp/icon32fra.png",
|
||||
"imageUrl": "https://localhost:9096/icon32fra.png",
|
||||
"hs20IconString": "32:32:fra:image/png:icon32fra:/tmp/icon32fra.png"
|
||||
},
|
||||
{
|
||||
"model_type": "PasspointOsuIcon",
|
||||
"iconWidth": 32,
|
||||
"iconHeight": 32,
|
||||
"languageCode": "eng",
|
||||
"iconLocale": "en_US",
|
||||
"iconName": "icon32usa",
|
||||
"filePath": "/tmp/icon32usa.png",
|
||||
"imageUrl": "https://localhost:9096/icon32usa.png",
|
||||
"hs20IconString": "32:32:eng:image/png:icon32usa:/tmp/icon32usa.png"
|
||||
}
|
||||
],
|
||||
"osuServerUri": "https://example.com/osu/rogers",
|
||||
"osuFriendlyName": [
|
||||
{
|
||||
"model_type": "PasspointDuple",
|
||||
"locale": "eng",
|
||||
"dupleIso3Language": "eng",
|
||||
"dupleName": "Example provider rogers",
|
||||
"defaultDupleSeparator": ":",
|
||||
"asDuple": "eng:Example provider rogers"
|
||||
},
|
||||
{
|
||||
"model_type": "PasspointDuple",
|
||||
"locale": "fra",
|
||||
"dupleIso3Language": "fra",
|
||||
"dupleName": "Exemple de fournisseur rogers",
|
||||
"defaultDupleSeparator": ":",
|
||||
"asDuple": "fra:Exemple de fournisseur rogers"
|
||||
}
|
||||
],
|
||||
"osuNaiStandalone": "anonymous@rogers.com",
|
||||
"osuNaiShared": "anonymous@rogers.com",
|
||||
"osuMethodList": [
|
||||
1,
|
||||
0
|
||||
],
|
||||
"osuServiceDescription": [
|
||||
{
|
||||
"model_type": "PasspointDuple",
|
||||
"locale": "eng",
|
||||
"dupleIso3Language": "eng",
|
||||
"dupleName": "Example services rogers",
|
||||
"defaultDupleSeparator": ":",
|
||||
"asDuple": "eng:Example services rogers"
|
||||
},
|
||||
{
|
||||
"model_type": "PasspointDuple",
|
||||
"locale": "fra",
|
||||
"dupleIso3Language": "fra",
|
||||
"dupleName": "Exemples de services rogers",
|
||||
"defaultDupleSeparator": ":",
|
||||
"asDuple": "fra:Exemples de services rogers"
|
||||
}
|
||||
],
|
||||
"roamingOi": [
|
||||
"BAA2D00100",
|
||||
"BAA2D00000"
|
||||
],
|
||||
"profileType": "passpoint_osu_id_provider"
|
||||
},
|
||||
"createdTimestamp": 1611264539070,
|
||||
"lastModifiedTimestamp": 1611264539070,
|
||||
"childProfileIds": []
|
||||
},
|
||||
{
|
||||
"model_type": "Profile",
|
||||
"id": 36,
|
||||
"customerId": 2,
|
||||
"profileType": "passpoint_osu_id_provider",
|
||||
"name": "provider2-profile-2021-01-21T21:28:59.118Z",
|
||||
"details": {
|
||||
"model_type": "PasspointOsuProviderProfile",
|
||||
"mccMncList": [
|
||||
{
|
||||
"model_type": "PasspointMccMnc",
|
||||
"mcc": 302,
|
||||
"mnc": 220,
|
||||
"iso": "ca",
|
||||
"country": "Canada",
|
||||
"countryCode": 1,
|
||||
"network": "Telus Mobility",
|
||||
"mccMncPairing": "302,220"
|
||||
}
|
||||
],
|
||||
"naiRealmList": [
|
||||
{
|
||||
"model_type": "PasspointNaiRealmInformation",
|
||||
"naiRealms": [
|
||||
"telus.com"
|
||||
],
|
||||
"encoding": 0,
|
||||
"eapMethods": [
|
||||
"EAP-TTLS with username/password",
|
||||
"EAP-TLS with certificate"
|
||||
],
|
||||
"eapMap": {
|
||||
"EAP-TTLS with username/password": [
|
||||
"Credential Type:username/password",
|
||||
"Non-EAP Inner Authentication Type:MSCHAPV2"
|
||||
],
|
||||
"EAP-TLS with certificate": [
|
||||
"Credential Type:Certificate"
|
||||
]
|
||||
}
|
||||
}
|
||||
],
|
||||
"osuIconList": [
|
||||
{
|
||||
"model_type": "PasspointOsuIcon",
|
||||
"iconWidth": 32,
|
||||
"iconHeight": 32,
|
||||
"languageCode": "eng",
|
||||
"iconLocale": "en_CA",
|
||||
"iconName": "icon32eng",
|
||||
"filePath": "/tmp/icon32eng.png",
|
||||
"imageUrl": "https://localhost:9096/icon32eng.png",
|
||||
"hs20IconString": "32:32:eng:image/png:icon32eng:/tmp/icon32eng.png"
|
||||
},
|
||||
{
|
||||
"model_type": "PasspointOsuIcon",
|
||||
"iconWidth": 32,
|
||||
"iconHeight": 32,
|
||||
"languageCode": "fra",
|
||||
"iconLocale": "fr_CA",
|
||||
"iconName": "icon32fra",
|
||||
"filePath": "/tmp/icon32fra.png",
|
||||
"imageUrl": "https://localhost:9096/icon32fra.png",
|
||||
"hs20IconString": "32:32:fra:image/png:icon32fra:/tmp/icon32fra.png"
|
||||
},
|
||||
{
|
||||
"model_type": "PasspointOsuIcon",
|
||||
"iconWidth": 32,
|
||||
"iconHeight": 32,
|
||||
"languageCode": "eng",
|
||||
"iconLocale": "en_US",
|
||||
"iconName": "icon32usa",
|
||||
"filePath": "/tmp/icon32usa.png",
|
||||
"imageUrl": "https://localhost:9096/icon32usa.png",
|
||||
"hs20IconString": "32:32:eng:image/png:icon32usa:/tmp/icon32usa.png"
|
||||
}
|
||||
],
|
||||
"osuServerUri": "https://example.com/osu/telus",
|
||||
"osuFriendlyName": [
|
||||
{
|
||||
"model_type": "PasspointDuple",
|
||||
"locale": "eng",
|
||||
"dupleIso3Language": "eng",
|
||||
"dupleName": "Example provider telus",
|
||||
"defaultDupleSeparator": ":",
|
||||
"asDuple": "eng:Example provider telus"
|
||||
},
|
||||
{
|
||||
"model_type": "PasspointDuple",
|
||||
"locale": "fra",
|
||||
"dupleIso3Language": "fra",
|
||||
"dupleName": "Exemple de fournisseur telus",
|
||||
"defaultDupleSeparator": ":",
|
||||
"asDuple": "fra:Exemple de fournisseur telus"
|
||||
}
|
||||
],
|
||||
"osuNaiStandalone": "anonymous@telus.com",
|
||||
"osuNaiShared": "anonymous@telus.com",
|
||||
"osuMethodList": [
|
||||
1,
|
||||
0
|
||||
],
|
||||
"osuServiceDescription": [
|
||||
{
|
||||
"model_type": "PasspointDuple",
|
||||
"locale": "eng",
|
||||
"dupleIso3Language": "eng",
|
||||
"dupleName": "Example services telus",
|
||||
"defaultDupleSeparator": ":",
|
||||
"asDuple": "eng:Example services telus"
|
||||
},
|
||||
{
|
||||
"model_type": "PasspointDuple",
|
||||
"locale": "fra",
|
||||
"dupleIso3Language": "fra",
|
||||
"dupleName": "Exemples de services telus",
|
||||
"defaultDupleSeparator": ":",
|
||||
"asDuple": "fra:Exemples de services telus"
|
||||
}
|
||||
],
|
||||
"roamingOi": [
|
||||
"004096",
|
||||
"005014",
|
||||
"F4F5E8F5F4"
|
||||
],
|
||||
"profileType": "passpoint_osu_id_provider"
|
||||
},
|
||||
"createdTimestamp": 1611264539131,
|
||||
"lastModifiedTimestamp": 1611264539131,
|
||||
"childProfileIds": []
|
||||
}
|
||||
]
|
||||
@@ -1,37 +1,41 @@
|
||||
[
|
||||
{
|
||||
"model_type": "Profile",
|
||||
"id": 17,
|
||||
"customerId": 2,
|
||||
"profileType": "passpoint_operator",
|
||||
"name": "TipWlan-Passpoint-Operator",
|
||||
"details": {
|
||||
"model_type": "PasspointOperatorProfile",
|
||||
"serverOnlyAuthenticatedL2EncryptionNetwork": false,
|
||||
"x509CertificateLocation": "/etc/ca.pem",
|
||||
"operatorFriendlyName": [
|
||||
{
|
||||
"model_type": "PasspointDuple",
|
||||
"locale": "en_CA",
|
||||
"dupleIso3Language": "eng",
|
||||
"dupleName": "Default friendly passpoint_operator name",
|
||||
"defaultDupleSeparator": ":",
|
||||
"asDuple": "eng:Default friendly passpoint_operator name"
|
||||
},
|
||||
{
|
||||
"model_type": "PasspointDuple",
|
||||
"locale": "fr_CA",
|
||||
"dupleIso3Language": "fra",
|
||||
"dupleName": "Nom de l'opérateur convivial par défaut",
|
||||
"defaultDupleSeparator": ":",
|
||||
"asDuple": "fra:Nom de l'opérateur convivial par défaut"
|
||||
}
|
||||
],
|
||||
"profileType": "passpoint_operator"
|
||||
},
|
||||
"createdTimestamp": 1606778369945,
|
||||
"lastModifiedTimestamp": 1606778369945,
|
||||
"childProfileIds": [
|
||||
]
|
||||
}
|
||||
{
|
||||
"model_type": "Profile",
|
||||
"id": 34,
|
||||
"customerId": 2,
|
||||
"profileType": "passpoint_operator",
|
||||
"name": "operator-profile-2021-01-21T21:28:58.994Z",
|
||||
"details": {
|
||||
"model_type": "PasspointOperatorProfile",
|
||||
"serverOnlyAuthenticatedL2EncryptionNetwork": false,
|
||||
"x509CertificateLocation": "/etc/ca.pem",
|
||||
"operatorFriendlyName": [
|
||||
{
|
||||
"model_type": "PasspointDuple",
|
||||
"locale": "fra",
|
||||
"dupleIso3Language": "fra",
|
||||
"dupleName": "Nom de l'opérateur convivial par défaut",
|
||||
"defaultDupleSeparator": ":",
|
||||
"asDuple": "fra:Nom de l'opérateur convivial par défaut"
|
||||
},
|
||||
{
|
||||
"model_type": "PasspointDuple",
|
||||
"locale": "eng",
|
||||
"dupleIso3Language": "eng",
|
||||
"dupleName": "Default friendly passpoint_operator name",
|
||||
"defaultDupleSeparator": ":",
|
||||
"asDuple": "eng:Default friendly passpoint_operator name"
|
||||
}
|
||||
],
|
||||
"domainNameList": [
|
||||
"bell.ca",
|
||||
"telus.com",
|
||||
"rogers.com"
|
||||
],
|
||||
"profileType": "passpoint_operator"
|
||||
},
|
||||
"createdTimestamp": 1611264539004,
|
||||
"lastModifiedTimestamp": 1611264539004,
|
||||
"childProfileIds": []
|
||||
}
|
||||
]
|
||||
@@ -1,34 +1,24 @@
|
||||
[
|
||||
{
|
||||
"model_type": "Profile",
|
||||
"id": 1,
|
||||
"customerId": 2,
|
||||
"profileType": "radius",
|
||||
"name": "Radius-Profile",
|
||||
"details": {
|
||||
"model_type": "RadiusProfile",
|
||||
"subnetConfiguration": null,
|
||||
"serviceRegionMap": {
|
||||
"Ottawa": {
|
||||
"model_type": "RadiusServiceRegion",
|
||||
"serverMap": {
|
||||
"Radius-Profile": [
|
||||
{
|
||||
"model_type": "RadiusServer",
|
||||
"ipAddress": "192.168.0.1",
|
||||
"secret": "testing123",
|
||||
"authPort": 1812,
|
||||
"timeout": null
|
||||
}
|
||||
]
|
||||
},
|
||||
"regionName": "Ottawa"
|
||||
}
|
||||
},
|
||||
"profileType": "radius"
|
||||
},
|
||||
"createdTimestamp": 1601961451668,
|
||||
"lastModifiedTimestamp": 1601961451668,
|
||||
"childProfileIds": []
|
||||
}
|
||||
{
|
||||
"model_type": "Profile",
|
||||
"id": 1,
|
||||
"customerId": 2,
|
||||
"profileType": "radius",
|
||||
"name": "Radius-Profile",
|
||||
"details": {
|
||||
"model_type": "RadiusProfile",
|
||||
"primaryRadiusAuthServer": {
|
||||
"model_type": "RadiusServer",
|
||||
"ipAddress": "192.168.0.1",
|
||||
"secret": "testing123",
|
||||
"port": 1812,
|
||||
"timeout": null
|
||||
},
|
||||
"profileType": "radius"
|
||||
},
|
||||
"createdTimestamp": 1611262628767,
|
||||
"lastModifiedTimestamp": 1611262628767,
|
||||
"childProfileIds": [
|
||||
]
|
||||
}
|
||||
]
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"model_type": "Profile",
|
||||
"id": 11,
|
||||
"id": 4,
|
||||
"customerId": 2,
|
||||
"profileType": "rf",
|
||||
"name": "TipWlan-rf",
|
||||
@@ -198,7 +198,7 @@
|
||||
},
|
||||
"profileType": "rf"
|
||||
},
|
||||
"createdTimestamp": 1606778369933,
|
||||
"lastModifiedTimestamp": 1606778369933,
|
||||
"createdTimestamp": 1612285248650,
|
||||
"lastModifiedTimestamp": 1612285248650,
|
||||
"childProfileIds": []
|
||||
}
|
||||
@@ -1,203 +1,75 @@
|
||||
[
|
||||
{
|
||||
"model_type": "Profile",
|
||||
"id": 5,
|
||||
"customerId": 2,
|
||||
"profileType": "ssid",
|
||||
"name": "TipWlan-cloud-3-radios",
|
||||
"details": {
|
||||
"model_type": "SsidConfiguration",
|
||||
"ssid": "TipWlan-cloud-3-radios",
|
||||
"appliedRadios": [
|
||||
"is5GHzL",
|
||||
"is2dot4GHz",
|
||||
"is5GHzU"
|
||||
],
|
||||
"ssidAdminState": "enabled",
|
||||
"secureMode": "wpa2OnlyPSK",
|
||||
"vlanId": 1,
|
||||
"keyStr": "openwifi",
|
||||
"broadcastSsid": "enabled",
|
||||
"keyRefresh": 0,
|
||||
"noLocalSubnets": false,
|
||||
"radiusServiceName": null,
|
||||
"radiusAccountingServiceName": null,
|
||||
"radiusAcountingServiceInterval": null,
|
||||
"captivePortalId": null,
|
||||
"bandwidthLimitDown": 0,
|
||||
"bandwidthLimitUp": 0,
|
||||
"clientBandwidthLimitDown": 0,
|
||||
"clientBandwidthLimitUp": 0,
|
||||
"videoTrafficOnly": false,
|
||||
"radioBasedConfigs": {
|
||||
"is5GHzL": {
|
||||
"model_type": "RadioBasedSsidConfiguration",
|
||||
"enable80211r": null,
|
||||
"enable80211k": null,
|
||||
"enable80211v": null
|
||||
},
|
||||
"is2dot4GHz": {
|
||||
"model_type": "RadioBasedSsidConfiguration",
|
||||
"enable80211r": null,
|
||||
"enable80211k": null,
|
||||
"enable80211v": null
|
||||
},
|
||||
"is5GHz": {
|
||||
"model_type": "RadioBasedSsidConfiguration",
|
||||
"enable80211r": null,
|
||||
"enable80211k": null,
|
||||
"enable80211v": null
|
||||
},
|
||||
"is5GHzU": {
|
||||
"model_type": "RadioBasedSsidConfiguration",
|
||||
"enable80211r": null,
|
||||
"enable80211k": null,
|
||||
"enable80211v": null
|
||||
}
|
||||
},
|
||||
"bonjourGatewayProfileId": null,
|
||||
"enable80211w": null,
|
||||
"wepConfig": null,
|
||||
"forwardMode": "BRIDGE",
|
||||
"profileType": "ssid"
|
||||
},
|
||||
"createdTimestamp": 1606778369598,
|
||||
"lastModifiedTimestamp": 1606778369598,
|
||||
"childProfileIds": [
|
||||
]
|
||||
},
|
||||
{
|
||||
"model_type": "Profile",
|
||||
"id": 15,
|
||||
"customerId": 2,
|
||||
"profileType": "ssid",
|
||||
"name": "TipWlan-cloud-passpoint-access",
|
||||
"details": {
|
||||
"model_type": "SsidConfiguration",
|
||||
"ssid": "TipWlan-cloud-passpoint-access",
|
||||
"appliedRadios": [
|
||||
"is5GHzL",
|
||||
"is5GHzU"
|
||||
],
|
||||
"ssidAdminState": "enabled",
|
||||
"secureMode": "wpa2PSK",
|
||||
"vlanId": 1,
|
||||
"keyStr": "testing123",
|
||||
"broadcastSsid": "enabled",
|
||||
"keyRefresh": 0,
|
||||
"noLocalSubnets": false,
|
||||
"radiusServiceName": null,
|
||||
"radiusAccountingServiceName": null,
|
||||
"radiusAcountingServiceInterval": null,
|
||||
"captivePortalId": null,
|
||||
"bandwidthLimitDown": 0,
|
||||
"bandwidthLimitUp": 0,
|
||||
"clientBandwidthLimitDown": 0,
|
||||
"clientBandwidthLimitUp": 0,
|
||||
"videoTrafficOnly": false,
|
||||
"radioBasedConfigs": {
|
||||
"is5GHzL": {
|
||||
"model_type": "RadioBasedSsidConfiguration",
|
||||
"enable80211r": null,
|
||||
"enable80211k": null,
|
||||
"enable80211v": null
|
||||
},
|
||||
"is2dot4GHz": {
|
||||
"model_type": "RadioBasedSsidConfiguration",
|
||||
"enable80211r": null,
|
||||
"enable80211k": null,
|
||||
"enable80211v": null
|
||||
},
|
||||
"is5GHz": {
|
||||
"model_type": "RadioBasedSsidConfiguration",
|
||||
"enable80211r": null,
|
||||
"enable80211k": null,
|
||||
"enable80211v": null
|
||||
},
|
||||
"is5GHzU": {
|
||||
"model_type": "RadioBasedSsidConfiguration",
|
||||
"enable80211r": null,
|
||||
"enable80211k": null,
|
||||
"enable80211v": null
|
||||
}
|
||||
},
|
||||
"bonjourGatewayProfileId": null,
|
||||
"enable80211w": null,
|
||||
"wepConfig": null,
|
||||
"forwardMode": null,
|
||||
"profileType": "ssid"
|
||||
},
|
||||
"createdTimestamp": 1606778369943,
|
||||
"lastModifiedTimestamp": 1606778370811,
|
||||
"childProfileIds": [
|
||||
24
|
||||
]
|
||||
},
|
||||
{
|
||||
"model_type": "Profile",
|
||||
"id": 16,
|
||||
"customerId": 2,
|
||||
"profileType": "ssid",
|
||||
"name": "TipWlan-cloud-passpoint-osu",
|
||||
"details": {
|
||||
"model_type": "SsidConfiguration",
|
||||
"ssid": "TipWlan-cloud-passpoint-osu",
|
||||
"appliedRadios": [
|
||||
"is2dot4GHz"
|
||||
],
|
||||
"ssidAdminState": "enabled",
|
||||
"secureMode": "open",
|
||||
"vlanId": 1,
|
||||
"keyStr": null,
|
||||
"broadcastSsid": "enabled",
|
||||
"keyRefresh": 0,
|
||||
"noLocalSubnets": false,
|
||||
"radiusServiceName": null,
|
||||
"radiusAccountingServiceName": null,
|
||||
"radiusAcountingServiceInterval": null,
|
||||
"captivePortalId": null,
|
||||
"bandwidthLimitDown": 0,
|
||||
"bandwidthLimitUp": 0,
|
||||
"clientBandwidthLimitDown": 0,
|
||||
"clientBandwidthLimitUp": 0,
|
||||
"videoTrafficOnly": false,
|
||||
"radioBasedConfigs": {
|
||||
"is5GHzL": {
|
||||
"model_type": "RadioBasedSsidConfiguration",
|
||||
"enable80211r": null,
|
||||
"enable80211k": null,
|
||||
"enable80211v": null
|
||||
},
|
||||
"is2dot4GHz": {
|
||||
"model_type": "RadioBasedSsidConfiguration",
|
||||
"enable80211r": null,
|
||||
"enable80211k": null,
|
||||
"enable80211v": null
|
||||
},
|
||||
"is5GHz": {
|
||||
"model_type": "RadioBasedSsidConfiguration",
|
||||
"enable80211r": null,
|
||||
"enable80211k": null,
|
||||
"enable80211v": null
|
||||
},
|
||||
"is5GHzU": {
|
||||
"model_type": "RadioBasedSsidConfiguration",
|
||||
"enable80211r": null,
|
||||
"enable80211k": null,
|
||||
"enable80211v": null
|
||||
}
|
||||
},
|
||||
"bonjourGatewayProfileId": null,
|
||||
"enable80211w": null,
|
||||
"wepConfig": null,
|
||||
"forwardMode": null,
|
||||
"profileType": "ssid"
|
||||
},
|
||||
"createdTimestamp": 1606778369944,
|
||||
"lastModifiedTimestamp": 1606778370352,
|
||||
"childProfileIds": [
|
||||
19,
|
||||
20
|
||||
]
|
||||
}
|
||||
{
|
||||
"model_type": "Profile",
|
||||
"id": 2,
|
||||
"customerId": 2,
|
||||
"profileType": "ssid",
|
||||
"name": "TipWlan-cloud-3-radios",
|
||||
"details": {
|
||||
"model_type": "SsidConfiguration",
|
||||
"ssid": "TipWlan-cloud-3-radios",
|
||||
"appliedRadios": [
|
||||
"is5GHzU",
|
||||
"is2dot4GHz",
|
||||
"is5GHzL"
|
||||
],
|
||||
"ssidAdminState": "enabled",
|
||||
"secureMode": "wpa2OnlyPSK",
|
||||
"vlanId": 1,
|
||||
"keyStr": "openwifi",
|
||||
"broadcastSsid": "enabled",
|
||||
"keyRefresh": 0,
|
||||
"noLocalSubnets": false,
|
||||
"radiusServiceId": 0,
|
||||
"radiusAcountingServiceInterval": 60,
|
||||
"captivePortalId": null,
|
||||
"bandwidthLimitDown": 0,
|
||||
"bandwidthLimitUp": 0,
|
||||
"clientBandwidthLimitDown": 0,
|
||||
"clientBandwidthLimitUp": 0,
|
||||
"videoTrafficOnly": false,
|
||||
"radioBasedConfigs": {
|
||||
"is5GHzU": {
|
||||
"model_type": "RadioBasedSsidConfiguration",
|
||||
"enable80211r": null,
|
||||
"enable80211k": null,
|
||||
"enable80211v": null
|
||||
},
|
||||
"is2dot4GHz": {
|
||||
"model_type": "RadioBasedSsidConfiguration",
|
||||
"enable80211r": null,
|
||||
"enable80211k": null,
|
||||
"enable80211v": null
|
||||
},
|
||||
"is5GHz": {
|
||||
"model_type": "RadioBasedSsidConfiguration",
|
||||
"enable80211r": null,
|
||||
"enable80211k": null,
|
||||
"enable80211v": null
|
||||
},
|
||||
"is5GHzL": {
|
||||
"model_type": "RadioBasedSsidConfiguration",
|
||||
"enable80211r": null,
|
||||
"enable80211k": null,
|
||||
"enable80211v": null
|
||||
}
|
||||
},
|
||||
"bonjourGatewayProfileId": null,
|
||||
"enable80211w": null,
|
||||
"wepConfig": null,
|
||||
"forwardMode": "BRIDGE",
|
||||
"profileType": "ssid",
|
||||
"radiusClientConfiguration": {
|
||||
"model_type": "RadiusNasConfiguration",
|
||||
"nasClientId": "DEFAULT",
|
||||
"nasClientIp": "WAN_IP",
|
||||
"userDefinedNasId": null,
|
||||
"userDefinedNasIp": null,
|
||||
"operatorId": null
|
||||
}
|
||||
},
|
||||
"createdTimestamp": 1612285248638,
|
||||
"lastModifiedTimestamp": 1612285248638,
|
||||
"childProfileIds": []
|
||||
}
|
||||
]
|
||||
|
||||
@@ -1,43 +1,42 @@
|
||||
[
|
||||
{
|
||||
"model_type": "Profile",
|
||||
"id": 18,
|
||||
"customerId": 2,
|
||||
"profileType": "passpoint_venue",
|
||||
"name": "TipWlan-Passpoint-Venue",
|
||||
"details": {
|
||||
"model_type": "PasspointVenueProfile",
|
||||
"venueNameSet": [
|
||||
{
|
||||
"model_type": "PasspointVenueName",
|
||||
"locale": "fr_CA",
|
||||
"dupleIso3Language": "fra",
|
||||
"dupleName": "Exemple de lieu",
|
||||
"defaultDupleSeparator": ":",
|
||||
"venueUrl": "http://www.example.com/info-fra",
|
||||
"asDuple": "fra:Exemple de lieu"
|
||||
},
|
||||
{
|
||||
"model_type": "PasspointVenueName",
|
||||
"locale": "en_CA",
|
||||
"dupleIso3Language": "eng",
|
||||
"dupleName": "Example passpoint_venue",
|
||||
"defaultDupleSeparator": ":",
|
||||
"venueUrl": "http://www.example.com/info-eng",
|
||||
"asDuple": "eng:Example passpoint_venue"
|
||||
}
|
||||
],
|
||||
"venueTypeAssignment": {
|
||||
"model_type": "PasspointVenueTypeAssignment",
|
||||
"venueDescription": "Research and Development Facility",
|
||||
"venueGroupId": 2,
|
||||
"venueTypeId": 8
|
||||
},
|
||||
"profileType": "passpoint_venue"
|
||||
},
|
||||
"createdTimestamp": 1606778369950,
|
||||
"lastModifiedTimestamp": 1606778369950,
|
||||
"childProfileIds": [
|
||||
]
|
||||
}
|
||||
{
|
||||
"model_type": "Profile",
|
||||
"id": 33,
|
||||
"customerId": 2,
|
||||
"profileType": "passpoint_venue",
|
||||
"name": "venue-profile-2021-01-21T21:28:58.934Z",
|
||||
"details": {
|
||||
"model_type": "PasspointVenueProfile",
|
||||
"venueNameSet": [
|
||||
{
|
||||
"model_type": "PasspointVenueName",
|
||||
"locale": "fra",
|
||||
"dupleIso3Language": "fra",
|
||||
"dupleName": "Exemple de lieu",
|
||||
"defaultDupleSeparator": ":",
|
||||
"venueUrl": "http://www.example.com/info-fra",
|
||||
"asDuple": "fra:Exemple de lieu"
|
||||
},
|
||||
{
|
||||
"model_type": "PasspointVenueName",
|
||||
"locale": "eng",
|
||||
"dupleIso3Language": "eng",
|
||||
"dupleName": "Example passpoint_venue",
|
||||
"defaultDupleSeparator": ":",
|
||||
"venueUrl": "http://www.example.com/info-eng",
|
||||
"asDuple": "eng:Example passpoint_venue"
|
||||
}
|
||||
],
|
||||
"venueTypeAssignment": {
|
||||
"model_type": "PasspointVenueTypeAssignment",
|
||||
"venueDescription": "Research and Development Facility",
|
||||
"venueGroupId": 2,
|
||||
"venueTypeId": 8
|
||||
},
|
||||
"profileType": "passpoint_venue"
|
||||
},
|
||||
"createdTimestamp": 1611264538947,
|
||||
"lastModifiedTimestamp": 1611264538947,
|
||||
"childProfileIds": []
|
||||
}
|
||||
]
|
||||
@@ -1,11 +1,9 @@
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<parent>
|
||||
<groupId>com.telecominfraproject.wlan</groupId>
|
||||
<artifactId>tip-wlan-cloud-root-pom</artifactId>
|
||||
<version>0.0.1-SNAPSHOT</version>
|
||||
<version>1.3.0-SNAPSHOT</version>
|
||||
<relativePath>../../wlan-cloud-root</relativePath>
|
||||
</parent>
|
||||
<artifactId>opensync-gateway</artifactId>
|
||||
@@ -16,22 +14,22 @@
|
||||
<dependency>
|
||||
<artifactId>base-container</artifactId>
|
||||
<groupId>com.telecominfraproject.wlan</groupId>
|
||||
<version>${tip-wlan-cloud.release.version}</version>
|
||||
<version>1.3.0-SNAPSHOT</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.telecominfraproject.wlan</groupId>
|
||||
<artifactId>opensync-ext-interface</artifactId>
|
||||
<version>${tip-wlan-cloud.release.version}</version>
|
||||
<version>1.3.0-SNAPSHOT</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<artifactId>client-models</artifactId>
|
||||
<groupId>com.telecominfraproject.wlan</groupId>
|
||||
<version>${tip-wlan-cloud.release.version}</version>
|
||||
<version>1.3.0-SNAPSHOT</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<artifactId>customer-models</artifactId>
|
||||
<groupId>com.telecominfraproject.wlan</groupId>
|
||||
<version>${tip-wlan-cloud.release.version}</version>
|
||||
<version>1.3.0-SNAPSHOT</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.vmware.ovsdb</groupId>
|
||||
@@ -49,13 +47,13 @@
|
||||
<dependency>
|
||||
<artifactId>service-metric-service-interface</artifactId>
|
||||
<groupId>com.telecominfraproject.wlan</groupId>
|
||||
<version>${tip-wlan-cloud.release.version}</version>
|
||||
<version>1.3.0-SNAPSHOT</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<artifactId>status-service-interface</artifactId>
|
||||
<groupId>com.telecominfraproject.wlan</groupId>
|
||||
<version>${tip-wlan-cloud.release.version}</version>
|
||||
<version>1.3.0-SNAPSHOT</version>
|
||||
</dependency>
|
||||
|
||||
<!-- https://mvnrepository.com/artifact/com.google.protobuf/protobuf-java-util -->
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
|
||||
package com.telecominfraproject.wlan.opensync.mqtt;
|
||||
|
||||
import java.nio.charset.Charset;
|
||||
@@ -5,7 +6,7 @@ import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
import org.fusesource.mqtt.client.FutureConnection;
|
||||
import org.fusesource.mqtt.client.BlockingConnection;
|
||||
import org.fusesource.mqtt.client.MQTT;
|
||||
import org.fusesource.mqtt.client.Message;
|
||||
import org.fusesource.mqtt.client.QoS;
|
||||
@@ -20,18 +21,23 @@ import org.springframework.context.event.ContextClosedEvent;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import com.google.protobuf.Descriptors;
|
||||
import com.google.protobuf.MessageOrBuilder;
|
||||
import com.google.protobuf.TypeRegistry;
|
||||
import com.google.protobuf.util.JsonFormat;
|
||||
import com.google.protobuf.util.JsonFormat.TypeRegistry;
|
||||
import com.netflix.servo.DefaultMonitorRegistry;
|
||||
import com.netflix.servo.monitor.BasicCounter;
|
||||
import com.netflix.servo.monitor.BasicTimer;
|
||||
import com.netflix.servo.monitor.Counter;
|
||||
import com.netflix.servo.monitor.MonitorConfig;
|
||||
import com.netflix.servo.monitor.Stopwatch;
|
||||
import com.netflix.servo.monitor.Timer;
|
||||
import com.netflix.servo.tag.TagList;
|
||||
import com.telecominfraproject.wlan.cloudmetrics.CloudMetricsTags;
|
||||
import com.telecominfraproject.wlan.opensync.external.integration.OpensyncExternalIntegrationInterface;
|
||||
import com.telecominfraproject.wlan.opensync.external.integration.utils.StatsPublisherInterface;
|
||||
import com.telecominfraproject.wlan.opensync.util.ZlibUtil;
|
||||
|
||||
import sts.OpensyncStats;
|
||||
import sts.OpensyncStats.Report;
|
||||
import traffic.NetworkMetadata;
|
||||
import traffic.NetworkMetadata.FlowReport;
|
||||
import wc.stats.IpDnsTelemetry;
|
||||
import wc.stats.IpDnsTelemetry.WCStatsReport;
|
||||
|
||||
@Profile("mqtt_receiver")
|
||||
@Component
|
||||
@@ -43,8 +49,25 @@ public class OpensyncMqttClient implements ApplicationListener<ContextClosedEven
|
||||
|
||||
public static Charset utf8 = Charset.forName("UTF-8");
|
||||
|
||||
private final TagList tags = CloudMetricsTags.commonTags;
|
||||
|
||||
private final Counter messagesReceived = new BasicCounter(MonitorConfig.builder("osgw-mqtt-messagesReceived").withTags(tags).build());
|
||||
|
||||
private final Counter messageBytesReceived = new BasicCounter(MonitorConfig.builder("osgw-mqtt-messageBytesReceived").withTags(tags).build());
|
||||
|
||||
private final Timer timerMessageProcess = new BasicTimer(MonitorConfig.builder("osgw-mqtt-messageProcessTimer").withTags(tags).build());
|
||||
|
||||
@Autowired
|
||||
private OpensyncExternalIntegrationInterface extIntegrationInterface;
|
||||
private OpensyncExternalIntegrationInterface opensyncExternalIntegrationInterface;
|
||||
|
||||
// dtop: use anonymous constructor to ensure that the following code always
|
||||
// get executed,
|
||||
// even when somebody adds another constructor in here
|
||||
{
|
||||
DefaultMonitorRegistry.getInstance().register(messagesReceived);
|
||||
DefaultMonitorRegistry.getInstance().register(messageBytesReceived);
|
||||
DefaultMonitorRegistry.getInstance().register(timerMessageProcess);
|
||||
}
|
||||
|
||||
//
|
||||
// See https://github.com/fusesource/mqtt-client for the docs
|
||||
@@ -55,8 +78,7 @@ public class OpensyncMqttClient implements ApplicationListener<ContextClosedEven
|
||||
|
||||
public OpensyncMqttClient(@Autowired io.netty.handler.ssl.SslContext sslContext,
|
||||
@Value("${tip.wlan.mqttBroker.address.internal:testportal.123wlan.com}") String mqttBrokerAddress,
|
||||
@Value("${tip.wlan.mqttBroker.listenPort:1883}") int mqttBrokerListenPort,
|
||||
@Value("${tip.wlan.mqttBroker.user:admin}") String username,
|
||||
@Value("${tip.wlan.mqttBroker.listenPort:1883}") int mqttBrokerListenPort, @Value("${tip.wlan.mqttBroker.user:admin}") String username,
|
||||
@Value("${tip.wlan.mqttBroker.password:admin}") String password,
|
||||
@Value("${mqtt.javax.net.ssl.keyStore:/opt/tip-wlan/certs/client_keystore.jks}") String jdkKeyStoreLocation,
|
||||
@Value("${mqtt.javax.net.ssl.keyStorePassword:mypassword}") String jdkKeyStorePassword,
|
||||
@@ -84,9 +106,9 @@ public class OpensyncMqttClient implements ApplicationListener<ContextClosedEven
|
||||
@Override
|
||||
public void run() {
|
||||
while (keepReconnecting) {
|
||||
FutureConnection futureConnection = null;
|
||||
BlockingConnection blockingConnection = null;
|
||||
try {
|
||||
Thread.sleep(5000);
|
||||
// Thread.sleep(5000);
|
||||
|
||||
// Create a new MQTT connection to the broker.
|
||||
/*
|
||||
@@ -114,133 +136,71 @@ public class OpensyncMqttClient implements ApplicationListener<ContextClosedEven
|
||||
*/
|
||||
|
||||
MQTT mqtt = new MQTT();
|
||||
// mqtt.setHost("tcp://192.168.0.137:61616");
|
||||
mqtt.setHost("tls://" + mqttBrokerAddress + ":" + mqttBrokerListenPort);
|
||||
LOG.info("Connecting to MQTT broker at {}", mqtt.getHost());
|
||||
mqtt.setClientId("opensync_mqtt");
|
||||
mqtt.setUserName(username);
|
||||
mqtt.setPassword(password);
|
||||
// Note: the following does not work with the
|
||||
// serverContext,
|
||||
// it has to be the
|
||||
// clientContext
|
||||
// mqtt.setSslContext(((JdkSslContext)
|
||||
// sslContext).context());
|
||||
// For now we'll rely on regular SSLContext from the JDK
|
||||
blockingConnection = mqtt.blockingConnection();
|
||||
blockingConnection.connect();
|
||||
|
||||
// TODO: revisit this blocking connection, change it to
|
||||
// futureConnection
|
||||
futureConnection = mqtt.futureConnection();
|
||||
futureConnection.connect();
|
||||
LOG.debug("Connected to MQTT broker at {}", mqtt.getHost());
|
||||
|
||||
LOG.info("Connected to MQTT broker at {}", mqtt.getHost());
|
||||
// NB. setting to AT_MOST_ONCE to match the APs message level
|
||||
Topic[] topics = {new Topic("/ap/#", QoS.AT_MOST_ONCE),};
|
||||
|
||||
// Subscribe to topics:
|
||||
//
|
||||
// new Topic("mqtt/example/publish", QoS.AT_LEAST_ONCE),
|
||||
// new Topic("#", QoS.AT_LEAST_ONCE),
|
||||
// new Topic("test/#", QoS.EXACTLY_ONCE),
|
||||
// new Topic("foo/+/bar", QoS.AT_LEAST_ONCE)
|
||||
Topic[] topics = { new Topic("/ap/+/opensync", QoS.AT_LEAST_ONCE), };
|
||||
|
||||
futureConnection.subscribe(topics);
|
||||
blockingConnection.subscribe(topics);
|
||||
LOG.info("Subscribed to mqtt topics {}", Arrays.asList(topics));
|
||||
|
||||
// prepare a JSONPrinter to format protobuf messages as
|
||||
// json
|
||||
List<Descriptors.Descriptor> protobufDescriptors = new ArrayList<>();
|
||||
protobufDescriptors.addAll(OpensyncStats.getDescriptor().getMessageTypes());
|
||||
protobufDescriptors.addAll(IpDnsTelemetry.getDescriptor().getMessageTypes());
|
||||
protobufDescriptors.addAll(NetworkMetadata.getDescriptor().getMessageTypes());
|
||||
TypeRegistry oldRegistry = TypeRegistry.newBuilder().add(protobufDescriptors).build();
|
||||
JsonFormat.Printer jsonPrinter = JsonFormat.printer().includingDefaultValueFields()
|
||||
.omittingInsignificantWhitespace().usingTypeRegistry(oldRegistry);
|
||||
JsonFormat.Printer jsonPrinter =
|
||||
JsonFormat.printer().includingDefaultValueFields().omittingInsignificantWhitespace().usingTypeRegistry(oldRegistry);
|
||||
|
||||
// main loop - receive messages
|
||||
while (true) {
|
||||
Message mqttMsg = futureConnection.receive().await();
|
||||
LOG.debug("{} awaiting mqtt message from broker",mqttClientThread.getName());
|
||||
Message mqttMsg = blockingConnection.receive();
|
||||
|
||||
if (mqttMsg == null) {
|
||||
if (LOG.isTraceEnabled())
|
||||
LOG.trace("NULL message received for blocking connection");
|
||||
continue;
|
||||
}
|
||||
|
||||
LOG.debug("MQTT Topic {}", mqttMsg.getTopic());
|
||||
|
||||
byte payload[] = mqttMsg.getPayload();
|
||||
// we acknowledge right after receive because:
|
||||
// a. none of the stats messages are so important
|
||||
// that
|
||||
// we cannot skip one
|
||||
// b. if there's some kind of problem with the
|
||||
// message
|
||||
// (decoding or processing)
|
||||
// - we want to move on as quickly as possible and
|
||||
// not
|
||||
// let it get stuck in the
|
||||
// queue
|
||||
mqttMsg.ack();
|
||||
|
||||
LOG.trace("received message on topic {} size {}", mqttMsg.getTopic(), payload.length);
|
||||
|
||||
if (payload[0] == 0x78) {
|
||||
// looks like zlib-compressed data, let's
|
||||
// decompress
|
||||
// it before deserializing
|
||||
payload = ZlibUtil.decompress(payload);
|
||||
}
|
||||
|
||||
// attempt to parse the message as protobuf
|
||||
MessageOrBuilder encodedMsg = null;
|
||||
Stopwatch stopwatchTimerMessageProcess = timerMessageProcess.start();
|
||||
try {
|
||||
byte payload[] = mqttMsg.getPayload();
|
||||
messagesReceived.increment();
|
||||
messageBytesReceived.increment(payload.length);
|
||||
|
||||
encodedMsg = Report.parseFrom(payload);
|
||||
|
||||
MQTT_LOG.info("topic = {} Report = {}", mqttMsg.getTopic(),
|
||||
jsonPrinter.print(encodedMsg));
|
||||
|
||||
|
||||
extIntegrationInterface.processMqttMessage(mqttMsg.getTopic(), (Report) encodedMsg);
|
||||
if (payload[0] == 0x78) {
|
||||
// looks like zlib-compressed data, let's
|
||||
// decompress
|
||||
// it before deserializing
|
||||
payload = ZlibUtil.decompress(payload);
|
||||
}
|
||||
// Only supported protobuf on the TIP opensync APs is Report
|
||||
Report statsReport = Report.parseFrom(payload);
|
||||
mqttMsg.ack();
|
||||
MQTT_LOG.info("Topic {}\n{}", mqttMsg.getTopic(), jsonPrinter.print(statsReport));
|
||||
opensyncExternalIntegrationInterface.processMqttMessage(mqttMsg.getTopic(), statsReport);
|
||||
LOG.debug("Dispatched report for topic {} to backend for processing", mqttMsg.getTopic());
|
||||
|
||||
} catch (Exception e) {
|
||||
try {
|
||||
// not a opensync_stats report, attempt to
|
||||
// deserialize as network_metadata
|
||||
encodedMsg = FlowReport.parseFrom(payload);
|
||||
|
||||
MQTT_LOG.info("topic = {} FlowReport = {}", mqttMsg.getTopic(),
|
||||
jsonPrinter.print(encodedMsg));
|
||||
|
||||
extIntegrationInterface.processMqttMessage(mqttMsg.getTopic(),
|
||||
(FlowReport) encodedMsg);
|
||||
} catch (Exception e1) {
|
||||
|
||||
try {
|
||||
// not a opensync_stats report and not
|
||||
// network_metadata report, attempt to
|
||||
// deserialize as WCStatsReport
|
||||
encodedMsg = WCStatsReport.parseFrom(payload);
|
||||
|
||||
MQTT_LOG.info("topic = {} IpDnsTelemetry = {}", mqttMsg.getTopic(),
|
||||
jsonPrinter.print(encodedMsg));
|
||||
|
||||
|
||||
extIntegrationInterface.processMqttMessage(mqttMsg.getTopic(),
|
||||
(WCStatsReport) encodedMsg);
|
||||
} catch (Exception e2) {
|
||||
String msgStr = new String(mqttMsg.getPayload(), utf8);
|
||||
MQTT_LOG.info("topic = {} message = {}", mqttMsg.getTopic(), msgStr);
|
||||
}
|
||||
}
|
||||
LOG.error("Exception processing topic for message {}",mqttMsg, e);
|
||||
} finally {
|
||||
stopwatchTimerMessageProcess.stop();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
} catch (Exception e) {
|
||||
LOG.error("Exception in MQTT receiver", e);
|
||||
} finally {
|
||||
try {
|
||||
if (futureConnection != null) {
|
||||
futureConnection.disconnect();
|
||||
if (blockingConnection != null) {
|
||||
blockingConnection.disconnect();
|
||||
}
|
||||
} catch (Exception e1) {
|
||||
// do nothing
|
||||
@@ -266,4 +226,5 @@ public class OpensyncMqttClient implements ApplicationListener<ContextClosedEven
|
||||
mqttClientThread.interrupt();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -1,13 +1,24 @@
|
||||
package com.telecominfraproject.wlan.opensync.ovsdb;
|
||||
|
||||
import java.util.concurrent.Executors;
|
||||
import java.util.concurrent.RejectedExecutionHandler;
|
||||
import java.util.concurrent.ScheduledExecutorService;
|
||||
import java.util.concurrent.ScheduledThreadPoolExecutor;
|
||||
import java.util.concurrent.ThreadFactory;
|
||||
import java.util.concurrent.ThreadPoolExecutor;
|
||||
import java.util.concurrent.atomic.AtomicInteger;
|
||||
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
|
||||
import com.netflix.servo.DefaultMonitorRegistry;
|
||||
import com.netflix.servo.monitor.BasicCounter;
|
||||
import com.netflix.servo.monitor.Counter;
|
||||
import com.netflix.servo.monitor.MonitorConfig;
|
||||
import com.netflix.servo.monitor.NumberGauge;
|
||||
import com.netflix.servo.tag.TagList;
|
||||
import com.telecominfraproject.wlan.cloudmetrics.CloudMetricsTags;
|
||||
import com.vmware.ovsdb.service.OvsdbPassiveConnectionListener;
|
||||
import com.vmware.ovsdb.service.impl.OvsdbPassiveConnectionListenerImpl;
|
||||
|
||||
@@ -16,12 +27,68 @@ public class OvsdbListenerConfig {
|
||||
|
||||
private static final Logger LOG = LoggerFactory.getLogger(OvsdbListenerConfig.class);
|
||||
|
||||
private final TagList tags = CloudMetricsTags.commonTags;
|
||||
|
||||
final Counter rejectedTasks = new BasicCounter(MonitorConfig.builder("osgw-ovsdb-rejectedTasks").withTags(tags).build());
|
||||
final Counter submittedTasks = new BasicCounter(MonitorConfig.builder("osgw-ovsdb-submittedTasks").withTags(tags).build());
|
||||
final Counter completedTasks = new BasicCounter(MonitorConfig.builder("osgw-ovsdb-completedTasks").withTags(tags).build());
|
||||
|
||||
private AtomicInteger tasksInFlight = new AtomicInteger(0);
|
||||
|
||||
private final NumberGauge tasksInFlightGauge = new NumberGauge(
|
||||
MonitorConfig.builder("osgw-ovsdb-tasksInFlight").withTags(tags).build(), tasksInFlight);
|
||||
|
||||
// dtop: use anonymous constructor to ensure that the following code always
|
||||
// get executed,
|
||||
// even when somebody adds another constructor in here
|
||||
{
|
||||
DefaultMonitorRegistry.getInstance().register(rejectedTasks);
|
||||
DefaultMonitorRegistry.getInstance().register(submittedTasks);
|
||||
DefaultMonitorRegistry.getInstance().register(completedTasks);
|
||||
DefaultMonitorRegistry.getInstance().register(tasksInFlightGauge);
|
||||
}
|
||||
|
||||
@Bean
|
||||
public OvsdbPassiveConnectionListener ovsdbPassiveConnectionListener(
|
||||
@org.springframework.beans.factory.annotation.Value("${tip.wlan.ovsdb.listener.threadPoolSize:10}")
|
||||
int threadPoolSize) {
|
||||
LOG.debug("Configuring OvsdbPassiveConnectionListener with thread pool size {}", threadPoolSize);
|
||||
ScheduledExecutorService executorService = Executors.newScheduledThreadPool(threadPoolSize);
|
||||
|
||||
ThreadFactory threadFactory = new ThreadFactory() {
|
||||
private AtomicInteger thrNum = new AtomicInteger();
|
||||
|
||||
@Override
|
||||
public Thread newThread(Runnable r) {
|
||||
Thread thr = new Thread(r, "ovsdb-exec-pool-" + thrNum.incrementAndGet());
|
||||
thr.setDaemon(true);
|
||||
return thr;
|
||||
}
|
||||
};
|
||||
|
||||
RejectedExecutionHandler rejectedExecHandler = new ThreadPoolExecutor.AbortPolicy() {
|
||||
@Override
|
||||
public void rejectedExecution(Runnable r, ThreadPoolExecutor executor) {
|
||||
rejectedTasks.increment();
|
||||
super.rejectedExecution(r, executor);
|
||||
}
|
||||
};
|
||||
|
||||
ScheduledExecutorService executorService = new ScheduledThreadPoolExecutor(threadPoolSize, threadFactory, rejectedExecHandler) {
|
||||
@Override
|
||||
protected void beforeExecute(Thread t, Runnable r) {
|
||||
submittedTasks.increment();
|
||||
tasksInFlight.incrementAndGet();
|
||||
super.beforeExecute(t, r);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void afterExecute(Runnable r, Throwable t) {
|
||||
completedTasks.increment();
|
||||
tasksInFlight.decrementAndGet();
|
||||
super.afterExecute(r, t);
|
||||
}
|
||||
};
|
||||
|
||||
OvsdbPassiveConnectionListener listener = new OvsdbPassiveConnectionListenerImpl(executorService);
|
||||
return listener;
|
||||
}
|
||||
|
||||
@@ -1,14 +1,21 @@
|
||||
package com.telecominfraproject.wlan.opensync.ovsdb;
|
||||
|
||||
import java.util.HashSet;
|
||||
import java.util.Set;
|
||||
import java.util.Map.Entry;
|
||||
import java.util.Set;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
import java.util.concurrent.atomic.AtomicInteger;
|
||||
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import com.netflix.servo.DefaultMonitorRegistry;
|
||||
import com.netflix.servo.monitor.MonitorConfig;
|
||||
import com.netflix.servo.monitor.Monitors;
|
||||
import com.netflix.servo.monitor.NumberGauge;
|
||||
import com.netflix.servo.tag.TagList;
|
||||
import com.telecominfraproject.wlan.cloudmetrics.CloudMetricsTags;
|
||||
import com.telecominfraproject.wlan.opensync.external.integration.OvsdbSession;
|
||||
import com.telecominfraproject.wlan.opensync.external.integration.OvsdbSessionMapInterface;
|
||||
import com.vmware.ovsdb.service.OvsdbClient;
|
||||
@@ -18,8 +25,22 @@ public class OvsdbSessionMap implements OvsdbSessionMapInterface {
|
||||
|
||||
private static final Logger LOG = LoggerFactory.getLogger(OvsdbSessionMap.class);
|
||||
|
||||
private final TagList tags = CloudMetricsTags.commonTags;
|
||||
|
||||
private AtomicInteger totalEquipmentConnections = new AtomicInteger(0);
|
||||
|
||||
private final NumberGauge totalEquipmentConnectionsGauge = new NumberGauge(
|
||||
MonitorConfig.builder("osgw-totalEquipmentConnections").withTags(tags).build(), totalEquipmentConnections);
|
||||
|
||||
private final ConcurrentHashMap<String, OvsdbSession> connectedClients = new ConcurrentHashMap<>();
|
||||
|
||||
// dtop: use anonymous constructor to ensure that the following code always
|
||||
// get executed,
|
||||
// even when somebody adds another constructor in here
|
||||
{
|
||||
DefaultMonitorRegistry.getInstance().register(totalEquipmentConnectionsGauge);
|
||||
}
|
||||
|
||||
@Override
|
||||
public OvsdbSession getSession(String apId) {
|
||||
LOG.info("Get session for AP {}", apId);
|
||||
@@ -29,7 +50,11 @@ public class OvsdbSessionMap implements OvsdbSessionMapInterface {
|
||||
@Override
|
||||
public OvsdbSession removeSession(String apId) {
|
||||
LOG.info("Removing session for AP {}", apId);
|
||||
return connectedClients.remove(apId);
|
||||
OvsdbSession ret = connectedClients.remove(apId);
|
||||
if(ret!=null) {
|
||||
totalEquipmentConnections.decrementAndGet();
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -37,7 +62,7 @@ public class OvsdbSessionMap implements OvsdbSessionMapInterface {
|
||||
try {
|
||||
LOG.info("Close session for AP {}", apId);
|
||||
connectedClients.get(apId).getOvsdbClient().shutdown();
|
||||
connectedClients.remove(apId);
|
||||
removeSession(apId);
|
||||
LOG.info("Closed ovsdb session for {}", apId);
|
||||
}catch (Exception e) {
|
||||
// do nothing
|
||||
@@ -58,6 +83,8 @@ public class OvsdbSessionMap implements OvsdbSessionMapInterface {
|
||||
}catch (Exception e) {
|
||||
// do nothing
|
||||
}
|
||||
} else {
|
||||
totalEquipmentConnections.incrementAndGet();
|
||||
}
|
||||
|
||||
LOG.info("Created new ovsdb session for {}", apId);
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -10,6 +10,13 @@ import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.context.annotation.Profile;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import com.netflix.servo.DefaultMonitorRegistry;
|
||||
import com.netflix.servo.monitor.BasicCounter;
|
||||
import com.netflix.servo.monitor.Counter;
|
||||
import com.netflix.servo.monitor.MonitorConfig;
|
||||
import com.netflix.servo.monitor.Monitors;
|
||||
import com.netflix.servo.tag.TagList;
|
||||
import com.telecominfraproject.wlan.cloudmetrics.CloudMetricsTags;
|
||||
import com.telecominfraproject.wlan.opensync.ovsdb.dao.OvsdbDao;
|
||||
import com.telecominfraproject.wlan.opensync.util.SslUtil;
|
||||
import com.vmware.ovsdb.callback.ConnectionCallback;
|
||||
@@ -24,6 +31,20 @@ public class TipWlanOvsdbRedirector {
|
||||
|
||||
private static final Logger LOG = LoggerFactory.getLogger(TipWlanOvsdbRedirector.class);
|
||||
|
||||
private final TagList tags = CloudMetricsTags.commonTags;
|
||||
|
||||
private final Counter connectionsAttempted = new BasicCounter(
|
||||
MonitorConfig.builder("osgw-redirector-connectionsAttempted").withTags(tags).build());
|
||||
|
||||
private final Counter connectionsFailed = new BasicCounter(
|
||||
MonitorConfig.builder("osgw-redirector-connectionsFailed").withTags(tags).build());
|
||||
|
||||
private final Counter connectionsCreated = new BasicCounter(
|
||||
MonitorConfig.builder("osgw-redirector-connectionsCreated").withTags(tags).build());
|
||||
|
||||
private final Counter connectionsDropped = new BasicCounter(
|
||||
MonitorConfig.builder("osgw-redirector-connectionsDropped").withTags(tags).build());
|
||||
|
||||
@org.springframework.beans.factory.annotation.Value("${tip.wlan.ovsdb.redirector.listenPort:6643}")
|
||||
private int ovsdbRedirectorListenPort;
|
||||
|
||||
@@ -41,10 +62,21 @@ public class TipWlanOvsdbRedirector {
|
||||
listenForConnections();
|
||||
}
|
||||
|
||||
// dtop: use anonymous constructor to ensure that the following code always
|
||||
// get executed,
|
||||
// even when somebody adds another constructor in here
|
||||
{
|
||||
DefaultMonitorRegistry.getInstance().register(connectionsAttempted);
|
||||
DefaultMonitorRegistry.getInstance().register(connectionsCreated);
|
||||
DefaultMonitorRegistry.getInstance().register(connectionsDropped);
|
||||
DefaultMonitorRegistry.getInstance().register(connectionsFailed);
|
||||
}
|
||||
|
||||
public void listenForConnections() {
|
||||
|
||||
ConnectionCallback connectionCallback = new ConnectionCallback() {
|
||||
public void connected(OvsdbClient ovsdbClient) {
|
||||
connectionsAttempted.increment();
|
||||
String remoteHost = ovsdbClient.getConnectionInfo().getRemoteAddress().getHostAddress();
|
||||
int localPort = ovsdbClient.getConnectionInfo().getLocalPort();
|
||||
String subjectDn = null;
|
||||
@@ -54,8 +86,9 @@ public class TipWlanOvsdbRedirector {
|
||||
String clientCn = SslUtil.extractCN(subjectDn);
|
||||
LOG.info("ovsdbClient redirector connected from {} on port {} clientCn {}", remoteHost, localPort, clientCn);
|
||||
ovsdbDao.performRedirect(ovsdbClient, clientCn);
|
||||
|
||||
connectionsCreated.increment();
|
||||
} catch (Exception e) {
|
||||
connectionsFailed.increment();
|
||||
//something is wrong with the SSL or with the redirect
|
||||
ovsdbClient.shutdown();
|
||||
return;
|
||||
@@ -63,6 +96,7 @@ public class TipWlanOvsdbRedirector {
|
||||
}
|
||||
|
||||
public void disconnected(OvsdbClient ovsdbClient) {
|
||||
connectionsDropped.increment();
|
||||
String remoteHost = ovsdbClient.getConnectionInfo().getRemoteAddress().getHostAddress();
|
||||
int localPort = ovsdbClient.getConnectionInfo().getLocalPort();
|
||||
String subjectDn = null;
|
||||
|
||||
@@ -0,0 +1,81 @@
|
||||
package com.telecominfraproject.wlan.opensync.ovsdb.dao;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.concurrent.CompletableFuture;
|
||||
import java.util.concurrent.ExecutionException;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
import java.util.concurrent.TimeoutException;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import com.vmware.ovsdb.exception.OvsdbClientException;
|
||||
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;
|
||||
import com.vmware.ovsdb.protocol.operation.notation.Condition;
|
||||
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.service.OvsdbClient;
|
||||
|
||||
@Component
|
||||
public class OvsdbCommandConfig extends OvsdbDaoBase {
|
||||
@Autowired
|
||||
OvsdbGet ovsdbGet;
|
||||
|
||||
void configureCommands(OvsdbClient ovsdbClient, String command, Map<String, String> payload, Long delay,
|
||||
Long duration) {
|
||||
LOG.debug("OvsdbCommandConfig::configureCommands command {}, payload {}, delay {} duration {}", command,
|
||||
payload, delay, duration);
|
||||
List<Operation> operations = new ArrayList<>();
|
||||
List<Condition> conditions = new ArrayList<>();
|
||||
Map<String, Value> commandConfigColumns = new HashMap<>();
|
||||
conditions.add(new Condition("command", Function.EQUALS, new Atom<>(command)));
|
||||
commandConfigColumns.put("command", new Atom<>(command));
|
||||
commandConfigColumns.put("payload", com.vmware.ovsdb.protocol.operation.notation.Map.of(payload));
|
||||
commandConfigColumns.put("delay", new Atom<>(delay));
|
||||
commandConfigColumns.put("duration", new Atom<>(duration));
|
||||
commandConfigColumns.put("timestamp", new Atom<>(System.currentTimeMillis()));
|
||||
Row row = new Row(commandConfigColumns);
|
||||
insertOrUpdate(ovsdbClient, command, operations, conditions, row, commandConfigDbTable);
|
||||
try {
|
||||
CompletableFuture<OperationResult[]> fResult = ovsdbClient.transact(ovsdbName, operations);
|
||||
OperationResult[] result = fResult.get(ovsdbTimeoutSec, TimeUnit.SECONDS);
|
||||
LOG.debug(
|
||||
"OvsdbCommandConfig::configureCommands successfully configured command {} for duration {} payload {}",
|
||||
command, duration, payload);
|
||||
for (OperationResult res : result) {
|
||||
LOG.debug("Op Result {}", res);
|
||||
}
|
||||
} catch (OvsdbClientException | InterruptedException | ExecutionException | TimeoutException e) {
|
||||
LOG.error("OvsdbCommandConfig::configureCommands failed.", e);
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Update an existing entry, or insert a new one if entry not found
|
||||
* satisfying conditions
|
||||
*
|
||||
* @param ovsdbClient
|
||||
* @param command
|
||||
* @param operations
|
||||
* @param conditions
|
||||
* @param row
|
||||
* @param ovsdbTableName TODO
|
||||
*/
|
||||
void insertOrUpdate(OvsdbClient ovsdbClient, String command, List<Operation> operations, List<Condition> conditions,
|
||||
Row row, String ovsdbTableName) {
|
||||
if (ovsdbGet.getOvsdbTableRowsForCondition(ovsdbClient,commandConfigDbTable,conditions).isEmpty()) {
|
||||
operations.add(new Insert(ovsdbTableName, row));
|
||||
} else {
|
||||
operations.add(new Update(ovsdbTableName, conditions, row));
|
||||
}
|
||||
}
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,308 @@
|
||||
package com.telecominfraproject.wlan.opensync.ovsdb.dao;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Map.Entry;
|
||||
import java.util.Set;
|
||||
import java.util.concurrent.CompletableFuture;
|
||||
import java.util.concurrent.ExecutionException;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
import java.util.concurrent.TimeoutException;
|
||||
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import com.telecominfraproject.wlan.opensync.external.integration.models.ConnectNodeInfo;
|
||||
import com.telecominfraproject.wlan.opensync.ovsdb.dao.models.enumerations.DhcpFpDbStatus;
|
||||
import com.telecominfraproject.wlan.opensync.ovsdb.dao.models.enumerations.DhcpFpDeviceType;
|
||||
import com.telecominfraproject.wlan.opensync.ovsdb.dao.models.enumerations.DhcpFpManufId;
|
||||
import com.vmware.ovsdb.exception.OvsdbClientException;
|
||||
import com.vmware.ovsdb.protocol.operation.Insert;
|
||||
import com.vmware.ovsdb.protocol.operation.Operation;
|
||||
import com.vmware.ovsdb.protocol.operation.Select;
|
||||
import com.vmware.ovsdb.protocol.operation.Update;
|
||||
import com.vmware.ovsdb.protocol.operation.notation.Atom;
|
||||
import com.vmware.ovsdb.protocol.operation.notation.Condition;
|
||||
import com.vmware.ovsdb.protocol.operation.notation.Function;
|
||||
import com.vmware.ovsdb.protocol.operation.notation.Row;
|
||||
import com.vmware.ovsdb.protocol.operation.notation.Uuid;
|
||||
import com.vmware.ovsdb.protocol.operation.notation.Value;
|
||||
import com.vmware.ovsdb.protocol.operation.result.ErrorResult;
|
||||
import com.vmware.ovsdb.protocol.operation.result.InsertResult;
|
||||
import com.vmware.ovsdb.protocol.operation.result.OperationResult;
|
||||
import com.vmware.ovsdb.protocol.operation.result.SelectResult;
|
||||
import com.vmware.ovsdb.protocol.operation.result.UpdateResult;
|
||||
import com.vmware.ovsdb.service.OvsdbClient;
|
||||
|
||||
public class OvsdbDaoBase {
|
||||
|
||||
static final int MAX_VIF_PER_FREQ = 8;
|
||||
static final Logger LOG = LoggerFactory.getLogger(OvsdbDaoBase.class);
|
||||
public static final String wifiRouteStateDbTable = "Wifi_Route_State";
|
||||
public static final String wifiMasterStateDbTable = "Wifi_Master_State";
|
||||
public static final String HTTP = "http";
|
||||
public static final String ovsdbName = "Open_vSwitch";
|
||||
public static final String awlanNodeDbTable = "AWLAN_Node";
|
||||
public static final String wifiStatsConfigDbTable = "Wifi_Stats_Config";
|
||||
public static final String interfaceDbTable = "Interface";
|
||||
public static final String portDbTable = "Port";
|
||||
public static final String bridgeDbTable = "Bridge";
|
||||
public static final String wifiRadioConfigDbTable = "Wifi_Radio_Config";
|
||||
public static final String wifiRadioStateDbTable = "Wifi_Radio_State";
|
||||
public static final String wifiVifConfigDbTable = "Wifi_VIF_Config";
|
||||
public static final String wifiVifStateDbTable = "Wifi_VIF_State";
|
||||
public static final String wifiInetConfigDbTable = "Wifi_Inet_Config";
|
||||
public static final String wifiInetStateDbTable = "Wifi_Inet_State";
|
||||
public static final String wifiAssociatedClientsDbTable = "Wifi_Associated_Clients";
|
||||
public static final String wifiRrmConfigDbTable = "Wifi_RRM_Config";
|
||||
public static final String nodeConfigTable = "Node_Config";
|
||||
public static final String nodeStateTable = "Node_State";
|
||||
public static final String dhcpLeasedIpDbTable = "DHCP_leased_IP";
|
||||
public static final String commandConfigDbTable = "Command_Config";
|
||||
public static final String commandStateDbTable = "Command_State";
|
||||
public static final String hotspot20IconConfigDbTable = "Hotspot20_Icon_Config";
|
||||
public static final String hotspot20OsuProvidersDbTable = "Hotspot20_OSU_Providers";
|
||||
public static final String hotspot20ConfigDbTable = "Hotspot20_Config";
|
||||
public static final String radiusConfigDbTable = "Radius_Proxy_Config";
|
||||
public static final String apcConfigDbTable = "APC_Config";
|
||||
public static final String apcStateDbTable = "APC_State";
|
||||
public static final String StartDebugEngineApCommand = "startPortForwardingSession";
|
||||
public static final String StopDebugEngineApCommand = "stopSession";
|
||||
|
||||
public static <T> T getSingleValueFromSet(Row row, String columnName) {
|
||||
|
||||
Set<T> set = row != null ? row.getSetColumn(columnName) : null;
|
||||
T ret = (set != null) && !set.isEmpty() ? set.iterator().next() : null;
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
public static void translateDhcpFpValueToString(Entry<String, Value> c, Map<String, String> rowMap) {
|
||||
if (c.getKey().equals("manuf_id")) {
|
||||
rowMap.put(c.getKey(), DhcpFpManufId.getById(Integer.valueOf(c.getValue().toString())).getName());
|
||||
} else if (c.getKey().equals("device_type")) {
|
||||
rowMap.put(c.getKey(), DhcpFpDeviceType.getById(Integer.valueOf(c.getValue().toString())).getName());
|
||||
} else if (c.getKey().equals("db_status")) {
|
||||
rowMap.put(c.getKey(), DhcpFpDbStatus.getById(Integer.valueOf(c.getValue().toString())).getName());
|
||||
} else {
|
||||
rowMap.put(c.getKey(), c.getValue().toString());
|
||||
}
|
||||
}
|
||||
|
||||
@org.springframework.beans.factory.annotation.Value("${tip.wlan.ovsdb.managerAddr:3.88.149.10}")
|
||||
String managerIpAddr;
|
||||
@org.springframework.beans.factory.annotation.Value("${tip.wlan.ovsdb.region:Ottawa}")
|
||||
public String region;
|
||||
@org.springframework.beans.factory.annotation.Value("${tip.wlan.ovsdb.listenPort:6640}")
|
||||
int ovsdbListenPort;
|
||||
@org.springframework.beans.factory.annotation.Value("${tip.wlan.ovsdb.externalPort:6640}")
|
||||
int ovsdbExternalPort;
|
||||
@org.springframework.beans.factory.annotation.Value("${tip.wlan.mqttBroker.address.external:testportal.123wlan.com}")
|
||||
String mqttBrokerAddress;
|
||||
@org.springframework.beans.factory.annotation.Value("${tip.wlan.mqttBroker.listenPort:1883}")
|
||||
int mqttBrokerListenPort;
|
||||
@org.springframework.beans.factory.annotation.Value("${tip.wlan.mqttBroker.externalPort:1883}")
|
||||
int mqttBrokerExternalPort;
|
||||
@org.springframework.beans.factory.annotation.Value("${tip.wlan.ovsdb.timeoutSec:30}")
|
||||
int ovsdbTimeoutSec;
|
||||
@org.springframework.beans.factory.annotation.Value("${tip.wlan.ovsdb.wifi-iface.default_bridge:lan}")
|
||||
public String bridgeNameVifInterfaces;
|
||||
@org.springframework.beans.factory.annotation.Value("${tip.wlan.ovsdb.wifi-iface.default_lan_type:bridge}")
|
||||
public String defaultLanInterfaceType;
|
||||
@org.springframework.beans.factory.annotation.Value("${tip.wlan.ovsdb.wifi-iface.default_lan_name:lan}")
|
||||
public String defaultLanInterfaceName;
|
||||
@org.springframework.beans.factory.annotation.Value("${tip.wlan.ovsdb.wifi-iface.default_wan_type:bridge}")
|
||||
public String defaultWanInterfaceType;
|
||||
@org.springframework.beans.factory.annotation.Value("${tip.wlan.ovsdb.wifi-iface.default_wan_name:wan}")
|
||||
public String defaultWanInterfaceName;
|
||||
@org.springframework.beans.factory.annotation.Value("${tip.wlan.ovsdb.wifi-iface.default_radio0:wlan0}")
|
||||
public String defaultRadio0;
|
||||
@org.springframework.beans.factory.annotation.Value("${tip.wlan.ovsdb.wifi-iface.default_radio1:wlan1}")
|
||||
public String defaultRadio1;
|
||||
@org.springframework.beans.factory.annotation.Value("${tip.wlan.ovsdb.wifi-iface.default_radio2:wlan2}")
|
||||
public String defaultRadio2;
|
||||
@org.springframework.beans.factory.annotation.Value("${tip.wlan.ovsdb.wifi-device.radio0:radio0}")
|
||||
public String radio0;
|
||||
@org.springframework.beans.factory.annotation.Value("${tip.wlan.ovsdb.wifi-device.radio1:radio1}")
|
||||
public String radio1;
|
||||
@org.springframework.beans.factory.annotation.Value("${tip.wlan.ovsdb.wifi-device.radio2:radio2}")
|
||||
public String radio2;
|
||||
@org.springframework.beans.factory.annotation.Value("${tip.wlan.ovsdb.wifi-iface.max:8}")
|
||||
public int maxInterfacesPerRadio;
|
||||
@org.springframework.beans.factory.annotation.Value("${tip.wlan.ovsdb.awlan-node.upgrade_dl_timer:60}")
|
||||
public long upgradeDlTimerSeconds;
|
||||
@org.springframework.beans.factory.annotation.Value("${tip.wlan.ovsdb.awlan-node.upgrade_timer:90}")
|
||||
public long upgradeTimerSeconds;
|
||||
|
||||
@org.springframework.beans.factory.annotation.Value("${tip.wlan.ovsdb.awlan-node.reboot_or_reset_timer:10}")
|
||||
public long rebootOrResetTimerSeconds;
|
||||
|
||||
@org.springframework.beans.factory.annotation.Value("${tip.wlan.externalFileStoreURL:https://localhost:9096}")
|
||||
String externalFileStoreURL;
|
||||
|
||||
@org.springframework.beans.factory.annotation.Value("${tip.wlan.fileStoreDirectory:/tmp/tip-wlan-filestore}")
|
||||
String fileStoreDirectoryName;
|
||||
|
||||
@org.springframework.beans.factory.annotation.Value("${tip.wlan.defaultReportingIntervalSeconds:60}")
|
||||
public int defaultReportingIntervalSeconds;
|
||||
|
||||
@org.springframework.beans.factory.annotation.Value("${tip.wlan.defaultOffChannelReportingIntervalSeconds:120}")
|
||||
public int defaultOffChannelReportingIntervalSeconds;
|
||||
|
||||
public OvsdbDaoBase() {
|
||||
}
|
||||
|
||||
public <T> Set<T> getSet(Row row, String columnName) {
|
||||
|
||||
Set<T> set = row != null ? row.getSetColumn(columnName) : null;
|
||||
|
||||
return set;
|
||||
}
|
||||
|
||||
public void updateEventReportingInterval(OvsdbClient ovsdbClient, long eventReportingIntervalSeconds) {
|
||||
|
||||
try {
|
||||
List<Operation> operations = new ArrayList<>();
|
||||
Map<String, Value> updateColumns = new HashMap<>();
|
||||
|
||||
// turn on stats collection over MQTT: (reporting_interval is in
|
||||
// seconds)
|
||||
// $ ovsh i Wifi_Stats_Config reporting_interval:=10
|
||||
// radio_type:="2.4G" stats_type:="device"
|
||||
|
||||
updateColumns.put("reporting_interval", new Atom<>(eventReportingIntervalSeconds));
|
||||
updateColumns.put("radio_type", new Atom<>("2.4G"));
|
||||
updateColumns.put("stats_type", new Atom<>("event"));
|
||||
|
||||
Row row = new Row(updateColumns);
|
||||
operations.add(new Insert(wifiStatsConfigDbTable, row));
|
||||
|
||||
CompletableFuture<OperationResult[]> fResult = ovsdbClient.transact(ovsdbName, operations);
|
||||
OperationResult[] result = fResult.get(ovsdbTimeoutSec, TimeUnit.SECONDS);
|
||||
|
||||
LOG.debug("Updated {}:", wifiStatsConfigDbTable);
|
||||
|
||||
for (OperationResult res : result) {
|
||||
LOG.debug("updateEventReportingInterval Result {}", res);
|
||||
if (res instanceof InsertResult) {
|
||||
LOG.info("updateEventReportingInterval insert new row result {}", (res));
|
||||
// for insert, make sure it is actually in the table
|
||||
confirmRowExistsInTable(ovsdbClient, ((InsertResult) res).getUuid(), wifiStatsConfigDbTable);
|
||||
}
|
||||
}
|
||||
|
||||
} catch (OvsdbClientException | TimeoutException | ExecutionException | InterruptedException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
void configureWanInterfacesForDhcpSniffing(OvsdbClient ovsdbClient) {
|
||||
List<Operation> operations = new ArrayList<>();
|
||||
Map<String, Value> updateColumns = new HashMap<>();
|
||||
List<Condition> conditions = new ArrayList<>();
|
||||
// Going forward this will be only for WAN, and children will inherit
|
||||
// conditions.add(new Condition("if_name", Function.EQUALS, new Atom<>(defaultWanInterfaceName)));
|
||||
|
||||
updateColumns.put("dhcp_sniff", new Atom<>(true));
|
||||
|
||||
Row row = new Row(updateColumns);
|
||||
operations.add(new Update(wifiInetConfigDbTable, conditions, row));
|
||||
|
||||
try {
|
||||
CompletableFuture<OperationResult[]> fResult = ovsdbClient.transact(ovsdbName, operations);
|
||||
OperationResult[] result = fResult.get(ovsdbTimeoutSec, TimeUnit.SECONDS);
|
||||
|
||||
for (OperationResult res : result) {
|
||||
if (res instanceof UpdateResult) {
|
||||
LOG.info("configureWanInterfacesForDhcpSniffing {}", ((UpdateResult) res).toString());
|
||||
} else if (res instanceof ErrorResult) {
|
||||
LOG.error("configureWanInterfacesForDhcpSniffing error {}", (res));
|
||||
throw new RuntimeException("configureWanInterfacesForDhcpSniffing " + ((ErrorResult) res).getError()
|
||||
+ " " + ((ErrorResult) res).getDetails());
|
||||
}
|
||||
}
|
||||
} catch (OvsdbClientException | InterruptedException | ExecutionException | TimeoutException e) {
|
||||
LOG.error("OvsdbDao::configureWanInterfaces failed.", e);
|
||||
throw new RuntimeException(e);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Check existence of row with a given Uuid in the specified ovsdb table
|
||||
* Used primarily for operation validation.
|
||||
*
|
||||
* @param ovsdbClient
|
||||
* @param rowUuid
|
||||
* @param table
|
||||
*/
|
||||
void confirmRowExistsInTable(OvsdbClient ovsdbClient, Uuid rowUuid, String table) {
|
||||
try {
|
||||
List<Condition> conditions = new ArrayList<>();
|
||||
conditions.add(new Condition("_uuid", Function.EQUALS, new Atom<>(rowUuid)));
|
||||
List<Operation> operations = new ArrayList<>();
|
||||
operations.add(new Select(table, conditions));
|
||||
|
||||
CompletableFuture<OperationResult[]> fResult = ovsdbClient.transact(ovsdbName, operations);
|
||||
OperationResult[] result = fResult.get(ovsdbTimeoutSec, TimeUnit.SECONDS);
|
||||
|
||||
for (OperationResult res : result) {
|
||||
if (res instanceof SelectResult) {
|
||||
LOG.info("Select Result for confirmRowExistsInTable {} with Uuid {} {}", table, rowUuid,
|
||||
((SelectResult) res).getRows());
|
||||
} else if (res instanceof ErrorResult) {
|
||||
LOG.error("confirmRowExistsInTable error {}", (res));
|
||||
throw new RuntimeException("confirmRowExistsInTable " + ((ErrorResult) res).getError() + " "
|
||||
+ ((ErrorResult) res).getDetails());
|
||||
}
|
||||
}
|
||||
} catch (OvsdbClientException | InterruptedException | ExecutionException | TimeoutException e) {
|
||||
LOG.error("Unable to confirm existence of row in table {} for Uuid {}", table, rowUuid, e);
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
}
|
||||
|
||||
void fillInRadioInterfaceNamesAndCountry(OvsdbClient ovsdbClient, ConnectNodeInfo ret) {
|
||||
try {
|
||||
List<Operation> operations = new ArrayList<>();
|
||||
List<Condition> conditions = new ArrayList<>();
|
||||
List<String> columns = new ArrayList<>();
|
||||
|
||||
columns.add("freq_band");
|
||||
columns.add("if_name");
|
||||
columns.add("country");
|
||||
|
||||
operations.add(new Select(wifiRadioStateDbTable, conditions, columns));
|
||||
CompletableFuture<OperationResult[]> fResult = ovsdbClient.transact(ovsdbName, operations);
|
||||
OperationResult[] result = fResult.get(ovsdbTimeoutSec, TimeUnit.SECONDS);
|
||||
|
||||
if (LOG.isDebugEnabled()) {
|
||||
LOG.debug("Select from {}:", wifiRadioStateDbTable);
|
||||
|
||||
for (OperationResult res : result) {
|
||||
LOG.debug("Op Result {}", res);
|
||||
}
|
||||
}
|
||||
|
||||
if ((result != null) && (result.length > 0) && (result[0] instanceof SelectResult)
|
||||
&& !((SelectResult) result[0]).getRows().isEmpty()) {
|
||||
|
||||
for (Row row : ((SelectResult) result[0]).getRows()) {
|
||||
ret.wifiRadioStates.put(getSingleValueFromSet(row, "freq_band"),
|
||||
getSingleValueFromSet(row, "if_name"));
|
||||
ret.country = getSingleValueFromSet(row, "country");
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
} catch (OvsdbClientException | TimeoutException | ExecutionException | InterruptedException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,66 @@
|
||||
package com.telecominfraproject.wlan.opensync.ovsdb.dao;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.concurrent.CompletableFuture;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import com.vmware.ovsdb.protocol.operation.Operation;
|
||||
import com.vmware.ovsdb.protocol.operation.Update;
|
||||
import com.vmware.ovsdb.protocol.operation.notation.Atom;
|
||||
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.service.OvsdbClient;
|
||||
|
||||
@Component
|
||||
public class OvsdbFirmwareConfig extends OvsdbDaoBase {
|
||||
|
||||
void configureFirmwareDownload(OvsdbClient ovsdbClient, String apId, String firmwareUrl, String firmwareVersion,
|
||||
String username) throws Exception {
|
||||
try {
|
||||
LOG.debug("configureFirmwareDownload for {} to version {} url {} username {}", apId,
|
||||
firmwareVersion, firmwareUrl, username);
|
||||
List<Operation> operations = new ArrayList<>();
|
||||
Map<String, Value> updateColumns = new HashMap<>();
|
||||
updateColumns.put("upgrade_dl_timer", new Atom<>(upgradeDlTimerSeconds));
|
||||
updateColumns.put("firmware_url", new Atom<>(firmwareUrl));
|
||||
updateColumns.put("upgrade_timer", new Atom<>(upgradeTimerSeconds));
|
||||
Row row = new Row(updateColumns);
|
||||
operations.add(new Update(awlanNodeDbTable, row));
|
||||
CompletableFuture<OperationResult[]> fResult = ovsdbClient.transact(ovsdbName, operations);
|
||||
OperationResult[] result = fResult.get(ovsdbTimeoutSec, TimeUnit.SECONDS);
|
||||
for (OperationResult r : result) {
|
||||
LOG.debug("Op Result {}", r);
|
||||
}
|
||||
} catch (Exception e) {
|
||||
LOG.error("Could not download firmware {} to AP {}", firmwareVersion, apId, e);
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
}
|
||||
|
||||
void configureFirmwareFlash(OvsdbClient ovsdbClient, String apId, String firmwareVersion, String username) {
|
||||
try {
|
||||
LOG.debug("configureFirmwareFlash on AP {} to load {} setting timer for {} seconds.", apId, firmwareVersion,
|
||||
upgradeTimerSeconds);
|
||||
List<Operation> operations = new ArrayList<>();
|
||||
Map<String, Value> updateColumns = new HashMap<>();
|
||||
updateColumns.put("upgrade_timer", new Atom<>(upgradeTimerSeconds));
|
||||
Row row = new Row(updateColumns);
|
||||
operations.add(new Update(awlanNodeDbTable, row));
|
||||
CompletableFuture<OperationResult[]> fResult = ovsdbClient.transact(ovsdbName, operations);
|
||||
OperationResult[] result = fResult.join();
|
||||
for (OperationResult r : result) {
|
||||
LOG.debug("Op Result {}", r);
|
||||
}
|
||||
} catch (Exception e) {
|
||||
LOG.error("Could not configure timer for flashing firmware {} on AP {}", firmwareVersion, apId, e);
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,182 @@
|
||||
package com.telecominfraproject.wlan.opensync.ovsdb.dao;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.concurrent.CompletableFuture;
|
||||
import java.util.concurrent.ExecutionException;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
import java.util.concurrent.TimeoutException;
|
||||
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import com.telecominfraproject.wlan.opensync.ovsdb.dao.models.CommandConfigInfo;
|
||||
import com.telecominfraproject.wlan.opensync.ovsdb.dao.models.Hotspot20Config;
|
||||
import com.telecominfraproject.wlan.opensync.ovsdb.dao.models.Hotspot20IconConfig;
|
||||
import com.telecominfraproject.wlan.opensync.ovsdb.dao.models.Hotspot20OsuProviders;
|
||||
import com.telecominfraproject.wlan.opensync.ovsdb.dao.models.NodeConfigInfo;
|
||||
import com.telecominfraproject.wlan.opensync.ovsdb.dao.models.RadiusProxyConfigInfo;
|
||||
import com.telecominfraproject.wlan.opensync.ovsdb.dao.models.WifiInetConfigInfo;
|
||||
import com.telecominfraproject.wlan.opensync.ovsdb.dao.models.WifiRadioConfigInfo;
|
||||
import com.telecominfraproject.wlan.opensync.ovsdb.dao.models.WifiStatsConfigInfo;
|
||||
import com.telecominfraproject.wlan.opensync.ovsdb.dao.models.WifiVifConfigInfo;
|
||||
import com.vmware.ovsdb.exception.OvsdbClientException;
|
||||
import com.vmware.ovsdb.protocol.operation.Operation;
|
||||
import com.vmware.ovsdb.protocol.operation.Select;
|
||||
import com.vmware.ovsdb.protocol.operation.notation.Atom;
|
||||
import com.vmware.ovsdb.protocol.operation.notation.Condition;
|
||||
import com.vmware.ovsdb.protocol.operation.notation.Function;
|
||||
import com.vmware.ovsdb.protocol.operation.notation.Row;
|
||||
import com.vmware.ovsdb.protocol.operation.result.OperationResult;
|
||||
import com.vmware.ovsdb.protocol.operation.result.SelectResult;
|
||||
import com.vmware.ovsdb.service.OvsdbClient;
|
||||
|
||||
@Component
|
||||
public class OvsdbGet extends OvsdbDaoBase {
|
||||
|
||||
Map<String, Set<Integer>> getAllowedChannels(OvsdbClient ovsdbClient) {
|
||||
Map<String, Set<Integer>> allowedChannels = new HashMap<>();
|
||||
for (Row row : getOvsdbTableRowsForCondition(ovsdbClient, wifiRadioStateDbTable, null)) {
|
||||
allowedChannels.put(getSingleValueFromSet(row, "freq_band"), row.getSetColumn("allowed_channels"));
|
||||
}
|
||||
return allowedChannels;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get all Rows from given table that satisfy the conditions.
|
||||
*
|
||||
* @param ovsdbClient
|
||||
* @param ovsdbTableName
|
||||
* @param conditions
|
||||
* @return Set of Rows in the table that satisfy the conditions, or all rows
|
||||
* in table if conditions is null or empty.
|
||||
*/
|
||||
Set<Row> getOvsdbTableRowsForCondition(OvsdbClient ovsdbClient, String ovsdbTableName, List<Condition> conditions) {
|
||||
Set<Row> ret = new HashSet<>();
|
||||
List<Operation> operations = new ArrayList<>();
|
||||
if (conditions == null || conditions.isEmpty()) {
|
||||
operations.add(new Select(ovsdbTableName));
|
||||
} else {
|
||||
operations.add(new Select(ovsdbTableName, conditions));
|
||||
}
|
||||
try {
|
||||
CompletableFuture<OperationResult[]> fResult = ovsdbClient.transact(ovsdbName, operations);
|
||||
OperationResult[] result = fResult.get(ovsdbTimeoutSec, TimeUnit.SECONDS);
|
||||
for (Row row : ((SelectResult) result[0]).getRows()) {
|
||||
ret.add(row);
|
||||
}
|
||||
} catch (OvsdbClientException | InterruptedException | ExecutionException | TimeoutException e) {
|
||||
LOG.error("Transaction exception getting rows from {}.", ovsdbTableName, e);
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
NodeConfigInfo getNodeConfigInfo(OvsdbClient ovsdbClient) {
|
||||
return new NodeConfigInfo(getOvsdbTableRowsForCondition(ovsdbClient, nodeConfigTable,
|
||||
List.of(new Condition("module", Function.EQUALS, new Atom<>("ntp")))).iterator().next());
|
||||
}
|
||||
|
||||
Map<String, CommandConfigInfo> getProvisionedCommandConfigs(OvsdbClient ovsdbClient) {
|
||||
Map<String, CommandConfigInfo> ret = new HashMap<>();
|
||||
for (Row row : getOvsdbTableRowsForCondition(ovsdbClient, commandConfigDbTable, null)) {
|
||||
CommandConfigInfo commandConfigInfo = new CommandConfigInfo(row);
|
||||
ret.put(commandConfigInfo.command, commandConfigInfo);
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
Map<String, Hotspot20Config> getProvisionedHotspot20Configs(OvsdbClient ovsdbClient) {
|
||||
Map<String, Hotspot20Config> ret = new HashMap<>();
|
||||
for (Row row : getOvsdbTableRowsForCondition(ovsdbClient, hotspot20ConfigDbTable, null)) {
|
||||
Hotspot20Config hotspot20Config = new Hotspot20Config(row);
|
||||
ret.put(hotspot20Config.osuSsid, hotspot20Config);
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
Map<String, Hotspot20IconConfig> getProvisionedHotspot20IconConfig(OvsdbClient ovsdbClient) {
|
||||
Map<String, Hotspot20IconConfig> ret = new HashMap<>();
|
||||
for (Row row : getOvsdbTableRowsForCondition(ovsdbClient, hotspot20IconConfigDbTable, null)) {
|
||||
Hotspot20IconConfig hotspot20IconConfig = new Hotspot20IconConfig(row);
|
||||
ret.put(hotspot20IconConfig.url, hotspot20IconConfig);
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
Map<String, Hotspot20OsuProviders> getProvisionedHotspot20OsuProviders(OvsdbClient ovsdbClient) {
|
||||
Map<String, Hotspot20OsuProviders> ret = new HashMap<>();
|
||||
for (Row row : getOvsdbTableRowsForCondition(ovsdbClient, hotspot20OsuProvidersDbTable, null)) {
|
||||
Hotspot20OsuProviders hotspot20OsuProviders = new Hotspot20OsuProviders(row);
|
||||
ret.put(hotspot20OsuProviders.osuProviderName, hotspot20OsuProviders);
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
Map<String, WifiInetConfigInfo> getProvisionedWifiInetConfigs(OvsdbClient ovsdbClient) {
|
||||
Map<String, WifiInetConfigInfo> ret = new HashMap<>();
|
||||
for (Row row : getOvsdbTableRowsForCondition(ovsdbClient, wifiInetConfigDbTable, null)) {
|
||||
WifiInetConfigInfo wifiInetConfigInfo = new WifiInetConfigInfo(row);
|
||||
ret.put(wifiInetConfigInfo.ifName, wifiInetConfigInfo);
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
Map<String, WifiRadioConfigInfo> getProvisionedWifiRadioConfigs(OvsdbClient ovsdbClient) {
|
||||
Map<String, WifiRadioConfigInfo> ret = new HashMap<>();
|
||||
for (Row row : getOvsdbTableRowsForCondition(ovsdbClient, wifiRadioConfigDbTable, null)) {
|
||||
WifiRadioConfigInfo wifiRadioConfigInfo = new WifiRadioConfigInfo(row);
|
||||
ret.put(wifiRadioConfigInfo.ifName, wifiRadioConfigInfo);
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
Map<String, WifiStatsConfigInfo> getProvisionedWifiStatsConfigs(OvsdbClient ovsdbClient) {
|
||||
Map<String, WifiStatsConfigInfo> ret = new HashMap<>();
|
||||
for (Row row : getOvsdbTableRowsForCondition(ovsdbClient, wifiStatsConfigDbTable, null)) {
|
||||
WifiStatsConfigInfo wifiStatsConfigInfo = new WifiStatsConfigInfo(row);
|
||||
if (wifiStatsConfigInfo.surveyType == null) {
|
||||
ret.put(wifiStatsConfigInfo.radioType + "_" + wifiStatsConfigInfo.statsType, wifiStatsConfigInfo);
|
||||
} else {
|
||||
ret.put(wifiStatsConfigInfo.radioType + "_" + wifiStatsConfigInfo.statsType + "_"
|
||||
+ wifiStatsConfigInfo.surveyType, wifiStatsConfigInfo);
|
||||
}
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
Map<String, WifiVifConfigInfo> getProvisionedWifiVifConfigs(OvsdbClient ovsdbClient) {
|
||||
Map<String, WifiVifConfigInfo> ret = new HashMap<>();
|
||||
for (Row row : getOvsdbTableRowsForCondition(ovsdbClient, wifiVifConfigDbTable, null)) {
|
||||
WifiVifConfigInfo wifiVifConfigInfo = new WifiVifConfigInfo(row);
|
||||
ret.put(wifiVifConfigInfo.ifName + '_' + wifiVifConfigInfo.ssid, wifiVifConfigInfo);
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
List<String> getWifiVifStates(OvsdbClient ovsdbClient, String ssidName) {
|
||||
List<String> ret = new ArrayList<>();
|
||||
List<Condition> conditions = new ArrayList<>();
|
||||
conditions.add(new Condition("ssid", Function.EQUALS, new Atom<>(ssidName)));
|
||||
for (Row row : getOvsdbTableRowsForCondition(ovsdbClient, wifiVifStateDbTable, null)) {
|
||||
String mac = getSingleValueFromSet(row, "mac");
|
||||
if (mac != null) {
|
||||
ret.add(mac);
|
||||
}
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
Map<String, RadiusProxyConfigInfo> getProvisionedRadiusConfigs(OvsdbClient ovsdbClient) {
|
||||
Map<String, RadiusProxyConfigInfo> ret = new HashMap<>();
|
||||
for (Row row : getOvsdbTableRowsForCondition(ovsdbClient, radiusConfigDbTable, null)) {
|
||||
RadiusProxyConfigInfo radiusProxyConfigInfo = new RadiusProxyConfigInfo(row);
|
||||
ret.put(radiusProxyConfigInfo.radiusConfigName, radiusProxyConfigInfo);
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,872 @@
|
||||
package com.telecominfraproject.wlan.opensync.ovsdb.dao;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.HashSet;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.concurrent.CompletableFuture;
|
||||
import java.util.concurrent.ExecutionException;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
import java.util.concurrent.TimeoutException;
|
||||
import java.util.function.Predicate;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import org.apache.commons.codec.digest.DigestUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import com.telecominfraproject.wlan.opensync.external.integration.models.OpensyncAPConfig;
|
||||
import com.telecominfraproject.wlan.opensync.external.integration.models.OpensyncAPHotspot20Config;
|
||||
import com.telecominfraproject.wlan.opensync.ovsdb.dao.models.Hotspot20Config;
|
||||
import com.telecominfraproject.wlan.opensync.ovsdb.dao.models.Hotspot20IconConfig;
|
||||
import com.telecominfraproject.wlan.opensync.ovsdb.dao.models.Hotspot20OsuProviders;
|
||||
import com.telecominfraproject.wlan.opensync.ovsdb.dao.models.WifiVifConfigInfo;
|
||||
import com.telecominfraproject.wlan.opensync.util.OvsdbToWlanCloudTypeMappingUtility;
|
||||
import com.telecominfraproject.wlan.profile.models.Profile;
|
||||
import com.telecominfraproject.wlan.profile.passpoint.models.PasspointDuple;
|
||||
import com.telecominfraproject.wlan.profile.passpoint.models.PasspointIPv4AddressType;
|
||||
import com.telecominfraproject.wlan.profile.passpoint.models.PasspointIPv6AddressType;
|
||||
import com.telecominfraproject.wlan.profile.passpoint.models.PasspointMccMnc;
|
||||
import com.telecominfraproject.wlan.profile.passpoint.models.PasspointProfile;
|
||||
import com.telecominfraproject.wlan.profile.passpoint.models.operator.PasspointOperatorProfile;
|
||||
import com.telecominfraproject.wlan.profile.passpoint.models.provider.PasspointEapMethods;
|
||||
import com.telecominfraproject.wlan.profile.passpoint.models.provider.PasspointNaiRealmEapAuthInnerNonEap;
|
||||
import com.telecominfraproject.wlan.profile.passpoint.models.provider.PasspointNaiRealmEapAuthParam;
|
||||
import com.telecominfraproject.wlan.profile.passpoint.models.provider.PasspointNaiRealmEapCredType;
|
||||
import com.telecominfraproject.wlan.profile.passpoint.models.provider.PasspointOsuIcon;
|
||||
import com.telecominfraproject.wlan.profile.passpoint.models.provider.PasspointOsuProviderProfile;
|
||||
import com.telecominfraproject.wlan.profile.passpoint.models.venue.PasspointVenueName;
|
||||
import com.telecominfraproject.wlan.profile.passpoint.models.venue.PasspointVenueProfile;
|
||||
import com.telecominfraproject.wlan.profile.passpoint.models.venue.PasspointVenueTypeAssignment;
|
||||
import com.telecominfraproject.wlan.profile.ssid.models.SsidConfiguration;
|
||||
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;
|
||||
import com.vmware.ovsdb.protocol.operation.notation.Condition;
|
||||
import com.vmware.ovsdb.protocol.operation.notation.Function;
|
||||
import com.vmware.ovsdb.protocol.operation.notation.Row;
|
||||
import com.vmware.ovsdb.protocol.operation.notation.Uuid;
|
||||
import com.vmware.ovsdb.protocol.operation.notation.Value;
|
||||
import com.vmware.ovsdb.protocol.operation.result.InsertResult;
|
||||
import com.vmware.ovsdb.protocol.operation.result.OperationResult;
|
||||
import com.vmware.ovsdb.protocol.operation.result.UpdateResult;
|
||||
import com.vmware.ovsdb.protocol.schema.DatabaseSchema;
|
||||
import com.vmware.ovsdb.service.OvsdbClient;
|
||||
|
||||
@Component
|
||||
public class OvsdbHotspotConfig extends OvsdbDaoBase {
|
||||
|
||||
@Autowired
|
||||
OvsdbGet ovsdbGet;
|
||||
|
||||
protected void getNaiRealms(PasspointOsuProviderProfile providerProfile, Set<Atom<String>> naiRealms) {
|
||||
providerProfile.getNaiRealmList().stream().forEach(c -> {
|
||||
|
||||
StringBuffer naiBuffer = new StringBuffer();
|
||||
naiBuffer.append(Integer.toString(c.getEncoding()));
|
||||
naiBuffer.append(",");
|
||||
Iterator<String> realmsIterator = c.getNaiRealms().iterator();
|
||||
if (realmsIterator != null) {
|
||||
while (realmsIterator.hasNext()) {
|
||||
String realm = realmsIterator.next();
|
||||
naiBuffer.append(realm);
|
||||
if (realmsIterator.hasNext()) {
|
||||
naiBuffer.append(";");
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
if (c.getEapMap() == null || c.getEapMap().isEmpty()) {
|
||||
naiRealms.add(new Atom<String>(naiBuffer.toString()));
|
||||
} else {
|
||||
naiBuffer.append(",");
|
||||
|
||||
Map<String, Set<String>> eapMap = c.getEapMap();
|
||||
eapMap.entrySet().stream().forEach(e -> {
|
||||
|
||||
String eapMethodName = e.getKey();
|
||||
String eapMethodId = String.valueOf(PasspointEapMethods.getByName(eapMethodName).getId());
|
||||
naiBuffer.append(eapMethodId);
|
||||
|
||||
for (String credential : e.getValue()) {
|
||||
|
||||
String[] keyValue = credential.split(":");
|
||||
String keyId = String.valueOf(PasspointNaiRealmEapAuthParam.getByName(keyValue[0]).getId());
|
||||
if (keyValue[0].equals(
|
||||
PasspointNaiRealmEapAuthParam.NAI_REALM_EAP_AUTH_NON_EAP_INNER_AUTH.getName())) {
|
||||
|
||||
String valueId = String
|
||||
.valueOf(PasspointNaiRealmEapAuthInnerNonEap.getByName(keyValue[1]).getId());
|
||||
|
||||
naiBuffer.append("[");
|
||||
naiBuffer.append(keyId);
|
||||
naiBuffer.append(":");
|
||||
naiBuffer.append(valueId);
|
||||
naiBuffer.append("]");
|
||||
|
||||
} else if (keyValue[0]
|
||||
.equals(PasspointNaiRealmEapAuthParam.NAI_REALM_EAP_AUTH_CRED_TYPE.getName())
|
||||
|| keyValue[0]
|
||||
.equals(PasspointNaiRealmEapAuthParam.NAI_REALM_EAP_AUTH_TUNNELED_CRED_TYPE
|
||||
.getName())) {
|
||||
|
||||
String valueId = String
|
||||
.valueOf(PasspointNaiRealmEapCredType.getByName(keyValue[1]).getId());
|
||||
|
||||
naiBuffer.append("[");
|
||||
naiBuffer.append(keyId);
|
||||
naiBuffer.append(":");
|
||||
naiBuffer.append(valueId);
|
||||
naiBuffer.append("]");
|
||||
|
||||
}
|
||||
}
|
||||
naiBuffer.append(",");
|
||||
|
||||
});
|
||||
String naiRealm = naiBuffer.toString();
|
||||
if (naiRealm.endsWith(",")) {
|
||||
naiRealm = naiRealm.substring(0, naiRealm.lastIndexOf(","));
|
||||
}
|
||||
naiRealms.add(new Atom<String>(naiRealm));
|
||||
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
protected void getOsuIconUuidsForOsuProvider(OvsdbClient ovsdbClient, PasspointOsuProviderProfile providerProfile,
|
||||
Map<String, Value> rowColumns) {
|
||||
Map<String, Hotspot20IconConfig> osuIconsMap = ovsdbGet.getProvisionedHotspot20IconConfig(ovsdbClient);
|
||||
Set<Uuid> iconsSet = new HashSet<>();
|
||||
if (osuIconsMap.size() > 0) {
|
||||
for (PasspointOsuIcon icon : providerProfile.getOsuIconList()) {
|
||||
if (osuIconsMap.containsKey(icon.getImageUrl())) {
|
||||
iconsSet.add(osuIconsMap.get(icon.getImageUrl()).uuid);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (iconsSet.size() > 0) {
|
||||
com.vmware.ovsdb.protocol.operation.notation.Set iconUuidSet = com.vmware.ovsdb.protocol.operation.notation.Set
|
||||
.of(iconsSet);
|
||||
rowColumns.put("osu_icons", iconUuidSet);
|
||||
}
|
||||
}
|
||||
|
||||
protected void getOsuProviderFriendlyNames(PasspointOsuProviderProfile providerProfile,
|
||||
Map<String, Value> rowColumns) {
|
||||
Set<Atom<String>> providerFriendlyNames = new HashSet<>();
|
||||
for (PasspointDuple friendlyName : providerProfile.getOsuFriendlyName()) {
|
||||
providerFriendlyNames.add(new Atom<String>(friendlyName.getAsDuple()));
|
||||
}
|
||||
|
||||
if (providerFriendlyNames.size() > 0) {
|
||||
com.vmware.ovsdb.protocol.operation.notation.Set providerFriendlyNamesSet = com.vmware.ovsdb.protocol.operation.notation.Set
|
||||
.of(providerFriendlyNames);
|
||||
rowColumns.put("osu_friendly_name", providerFriendlyNamesSet);
|
||||
}
|
||||
}
|
||||
|
||||
protected void getOsuProviderMethodList(PasspointOsuProviderProfile providerProfile,
|
||||
Map<String, Value> rowColumns) {
|
||||
Set<Atom<Integer>> methods = new HashSet<>();
|
||||
for (Integer method : providerProfile.getOsuMethodList()) {
|
||||
methods.add(new Atom<Integer>(method));
|
||||
}
|
||||
if (methods.size() > 0) {
|
||||
com.vmware.ovsdb.protocol.operation.notation.Set methodsSet = com.vmware.ovsdb.protocol.operation.notation.Set
|
||||
.of(methods);
|
||||
rowColumns.put("method_list", methodsSet);
|
||||
}
|
||||
}
|
||||
|
||||
protected void getOsuProviderServiceDescriptions(PasspointOsuProviderProfile providerProfile,
|
||||
Map<String, Value> rowColumns) {
|
||||
Set<Atom<String>> serviceDescriptions = new HashSet<>();
|
||||
for (PasspointDuple serviceDescription : providerProfile.getOsuServiceDescription()) {
|
||||
serviceDescriptions.add(new Atom<String>(serviceDescription.getAsDuple()));
|
||||
}
|
||||
|
||||
if (serviceDescriptions.size() > 0) {
|
||||
com.vmware.ovsdb.protocol.operation.notation.Set serviceDescriptionSet = com.vmware.ovsdb.protocol.operation.notation.Set
|
||||
.of(serviceDescriptions);
|
||||
rowColumns.put("service_description", serviceDescriptionSet);
|
||||
}
|
||||
}
|
||||
|
||||
void configureHotspots(OvsdbClient ovsdbClient, OpensyncAPConfig opensyncApConfig) {
|
||||
|
||||
provisionHotspot2IconConfig(ovsdbClient, opensyncApConfig);
|
||||
provisionHotspot20OsuProviders(ovsdbClient, opensyncApConfig);
|
||||
provisionHotspot20Config(ovsdbClient, opensyncApConfig);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Add the operator specific information, taken from the operator profile
|
||||
* for the given hotspotProfile being configured.
|
||||
*
|
||||
* @param hs20cfg
|
||||
* @param rowColumns
|
||||
* @param hs2Profile
|
||||
*/
|
||||
void getOperatorInformationForPasspointConfiguration(OpensyncAPHotspot20Config hs20cfg,
|
||||
Map<String, Value> rowColumns, PasspointProfile hs2Profile) {
|
||||
PasspointOperatorProfile passpointOperatorProfile = getOperatorProfileForPasspoint(hs20cfg, hs2Profile);
|
||||
|
||||
Set<Atom<String>> domainNames = new HashSet<>();
|
||||
for (String domainName : passpointOperatorProfile.getDomainNameList()) {
|
||||
domainNames.add(new Atom<>(domainName));
|
||||
}
|
||||
if (domainNames.size() > 0) {
|
||||
com.vmware.ovsdb.protocol.operation.notation.Set domainNameSet = com.vmware.ovsdb.protocol.operation.notation.Set
|
||||
.of(domainNames);
|
||||
rowColumns.put("domain_name", domainNameSet);
|
||||
}
|
||||
rowColumns.put("osen", new Atom<>(passpointOperatorProfile.isServerOnlyAuthenticatedL2EncryptionNetwork()));
|
||||
|
||||
Set<Atom<String>> operatorFriendlyName = new HashSet<>();
|
||||
passpointOperatorProfile.getOperatorFriendlyName().stream()
|
||||
.forEach(c -> operatorFriendlyName.add(new Atom<>(c.getAsDuple())));
|
||||
com.vmware.ovsdb.protocol.operation.notation.Set operatorFriendlyNameSet = com.vmware.ovsdb.protocol.operation.notation.Set
|
||||
.of(operatorFriendlyName);
|
||||
rowColumns.put("operator_friendly_name", operatorFriendlyNameSet);
|
||||
|
||||
}
|
||||
|
||||
PasspointOperatorProfile getOperatorProfileForPasspoint(OpensyncAPHotspot20Config hs20cfg,
|
||||
PasspointProfile hs2Profile) {
|
||||
Profile operator = hs20cfg.getHotspot20OperatorSet().stream().filter(new Predicate<Profile>() {
|
||||
|
||||
@Override
|
||||
public boolean test(Profile t) {
|
||||
return t.getId() == hs2Profile.getPasspointOperatorProfileId();
|
||||
}
|
||||
|
||||
}).findFirst().get();
|
||||
|
||||
PasspointOperatorProfile passpointOperatorProfile = (PasspointOperatorProfile) operator.getDetails();
|
||||
return passpointOperatorProfile;
|
||||
}
|
||||
|
||||
/**
|
||||
* Adds map entries the UUIDs for the OSU Providers and Icons based on the
|
||||
* entries in the for providers that are associated with this
|
||||
* hotspotProfile.
|
||||
*
|
||||
* @param ovsdbClient
|
||||
* @param hs20cfg
|
||||
* @param hotspotProfile
|
||||
* @param rowColumns
|
||||
*/
|
||||
void getOsuIconUuidsForPasspointConfiguration(OvsdbClient ovsdbClient, OpensyncAPHotspot20Config hs20cfg,
|
||||
Profile hotspotProfile, Map<String, Value> rowColumns) {
|
||||
Set<Uuid> osuIconUuids = getOsuProvidersInfoForPasspointConfiguration(ovsdbClient, hs20cfg, hotspotProfile,
|
||||
rowColumns);
|
||||
|
||||
if (osuIconUuids.size() > 0) {
|
||||
com.vmware.ovsdb.protocol.operation.notation.Set iconUuids = com.vmware.ovsdb.protocol.operation.notation.Set
|
||||
.of(osuIconUuids);
|
||||
rowColumns.put("operator_icons", iconUuids);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Get providers profiles. Helper method.
|
||||
*
|
||||
* @param hs20cfg
|
||||
* @param hotspotProfile
|
||||
* @return
|
||||
*/
|
||||
List<Profile> getOsuProvidersForPasspoint(OpensyncAPHotspot20Config hs20cfg, Profile hotspotProfile) {
|
||||
List<Profile> providerList = new ArrayList<>();
|
||||
if (hs20cfg.getHotspot20ProviderSet() != null) {
|
||||
providerList = hs20cfg.getHotspot20ProviderSet().stream().filter(new Predicate<Profile>() {
|
||||
|
||||
@Override
|
||||
public boolean test(Profile t) {
|
||||
return hotspotProfile.getChildProfileIds().contains(t.getId());
|
||||
}
|
||||
}).collect(Collectors.toList());
|
||||
|
||||
}
|
||||
return providerList;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get's the OSU Provider related information for a given hotspot, the osu
|
||||
* providers being configured on the ovsdb in Hotspot20_OSU_Providers and
|
||||
* defined as children of the hotspot profile
|
||||
*
|
||||
* @param ovsdbClient
|
||||
* @param hs20cfg
|
||||
* @param hotspotProfile
|
||||
* @param rowColumns
|
||||
* @return
|
||||
*/
|
||||
Set<Uuid> getOsuProvidersInfoForPasspointConfiguration(OvsdbClient ovsdbClient, OpensyncAPHotspot20Config hs20cfg,
|
||||
Profile hotspotProfile, Map<String, Value> rowColumns) {
|
||||
Map<String, Hotspot20OsuProviders> osuProviders = ovsdbGet.getProvisionedHotspot20OsuProviders(ovsdbClient);
|
||||
List<Profile> providerList = getOsuProvidersForPasspoint(hs20cfg, hotspotProfile);
|
||||
|
||||
Set<Uuid> osuProvidersUuids = new HashSet<>();
|
||||
Set<Uuid> osuIconUuids = new HashSet<>();
|
||||
|
||||
StringBuffer mccMncBuffer = new StringBuffer();
|
||||
Set<Atom<String>> naiRealms = new HashSet<>();
|
||||
Set<Atom<String>> roamingOis = new HashSet<>();
|
||||
for (Profile provider : providerList) {
|
||||
PasspointOsuProviderProfile providerProfile = (PasspointOsuProviderProfile) provider.getDetails();
|
||||
|
||||
osuProviders.keySet().stream().filter(new Predicate<String>() {
|
||||
|
||||
@Override
|
||||
public boolean test(String providerNameOnAp) {
|
||||
return providerNameOnAp.startsWith(OvsdbToWlanCloudTypeMappingUtility
|
||||
.getApOsuProviderStringFromOsuProviderName(provider.getName()));
|
||||
}
|
||||
|
||||
}).forEach(p -> {
|
||||
providerProfile.getRoamingOi().stream().forEach(o -> {
|
||||
roamingOis.add(new Atom<>(o));
|
||||
});
|
||||
osuProvidersUuids.add(osuProviders.get(p).uuid);
|
||||
osuIconUuids.addAll(osuProviders.get(p).osuIcons);
|
||||
getNaiRealms(providerProfile, naiRealms);
|
||||
|
||||
for (PasspointMccMnc passpointMccMnc : providerProfile.getMccMncList()) {
|
||||
mccMncBuffer.append(passpointMccMnc.getMccMncPairing());
|
||||
mccMncBuffer.append(";");
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
String mccMncString = mccMncBuffer.toString();
|
||||
if (mccMncString.endsWith(";")) {
|
||||
mccMncString = mccMncString.substring(0, mccMncString.lastIndexOf(";"));
|
||||
}
|
||||
|
||||
rowColumns.put("mcc_mnc", new Atom<>(mccMncString));
|
||||
|
||||
com.vmware.ovsdb.protocol.operation.notation.Set roamingOiSet = com.vmware.ovsdb.protocol.operation.notation.Set
|
||||
.of(roamingOis);
|
||||
rowColumns.put("roaming_oi", roamingOiSet);
|
||||
|
||||
com.vmware.ovsdb.protocol.operation.notation.Set naiRealmsSet = com.vmware.ovsdb.protocol.operation.notation.Set
|
||||
.of(naiRealms);
|
||||
rowColumns.put("nai_realm", naiRealmsSet);
|
||||
|
||||
if (osuProvidersUuids.size() > 0) {
|
||||
com.vmware.ovsdb.protocol.operation.notation.Set providerUuids = com.vmware.ovsdb.protocol.operation.notation.Set
|
||||
.of(osuProvidersUuids);
|
||||
rowColumns.put("osu_providers", providerUuids);
|
||||
}
|
||||
return osuIconUuids;
|
||||
}
|
||||
|
||||
/**
|
||||
* Passpoint configuration requires profile information from children, as
|
||||
* well as information from parent VIF Configurations These values are
|
||||
* placed in the rowColumns map to be passed into the transaction creating
|
||||
* the Hotspot20_Config in ovsdb.
|
||||
*
|
||||
* @param ovsdbClient
|
||||
* @param opensyncApConfig
|
||||
* @param hs20cfg
|
||||
* @param hotspotProfile
|
||||
* @param rowColumns
|
||||
* @param hs2Profile
|
||||
*/
|
||||
void getPasspointConfigurationInformationFromDependencies(OvsdbClient ovsdbClient,
|
||||
OpensyncAPConfig opensyncApConfig, OpensyncAPHotspot20Config hs20cfg, Profile hotspotProfile,
|
||||
Map<String, Value> rowColumns, PasspointProfile hs2Profile) {
|
||||
|
||||
getOperatorInformationForPasspointConfiguration(hs20cfg, rowColumns, hs2Profile);
|
||||
|
||||
getVenueInformationForPasspointConfiguration(hs20cfg, rowColumns, hs2Profile);
|
||||
|
||||
getOsuIconUuidsForPasspointConfiguration(ovsdbClient, hs20cfg, hotspotProfile, rowColumns);
|
||||
|
||||
getVifInformationForPasspointConfiguration(ovsdbClient, opensyncApConfig, rowColumns, hs2Profile);
|
||||
}
|
||||
|
||||
/**
|
||||
* Add the venue specific information, taken from the venue profile for the
|
||||
* given hotspotProfile being configured.
|
||||
*
|
||||
* @param hs20cfg
|
||||
* @param rowColumns
|
||||
* @param hs2Profile
|
||||
*/
|
||||
void getVenueInformationForPasspointConfiguration(OpensyncAPHotspot20Config hs20cfg, Map<String, Value> rowColumns,
|
||||
PasspointProfile hs2Profile) {
|
||||
PasspointVenueProfile passpointVenueProfile = getVenueProfileForPasspoint(hs20cfg, hs2Profile);
|
||||
Set<Atom<String>> venueNames = new HashSet<>();
|
||||
Set<Atom<String>> venueUrls = new HashSet<>();
|
||||
int index = 1;
|
||||
for (PasspointVenueName passpointVenueName : passpointVenueProfile.getVenueNameSet()) {
|
||||
venueNames.add(new Atom<String>(passpointVenueName.getAsDuple()));
|
||||
String url = String.valueOf(index) + ":" + passpointVenueName.getVenueUrl();
|
||||
venueUrls.add(new Atom<String>(url));
|
||||
index++;
|
||||
}
|
||||
com.vmware.ovsdb.protocol.operation.notation.Set venueNameSet = com.vmware.ovsdb.protocol.operation.notation.Set
|
||||
.of(venueNames);
|
||||
com.vmware.ovsdb.protocol.operation.notation.Set venueUrlSet = com.vmware.ovsdb.protocol.operation.notation.Set
|
||||
.of(venueUrls);
|
||||
rowColumns.put("venue_name", venueNameSet);
|
||||
rowColumns.put("venue_url", venueUrlSet);
|
||||
|
||||
PasspointVenueTypeAssignment passpointVenueTypeAssignment = passpointVenueProfile.getVenueTypeAssignment();
|
||||
String groupType = String.valueOf(passpointVenueTypeAssignment.getVenueGroupId()) + ":"
|
||||
+ passpointVenueTypeAssignment.getVenueTypeId();
|
||||
|
||||
rowColumns.put("venue_group_type", new Atom<>(groupType));
|
||||
}
|
||||
|
||||
/**
|
||||
* Get's the Venue Profile for the hotspot, helper method
|
||||
*
|
||||
* @param hs20cfg
|
||||
* @param hs2Profile
|
||||
* @return
|
||||
*/
|
||||
PasspointVenueProfile getVenueProfileForPasspoint(OpensyncAPHotspot20Config hs20cfg, PasspointProfile hs2Profile) {
|
||||
Profile venue = hs20cfg.getHotspot20VenueSet().stream().filter(new Predicate<Profile>() {
|
||||
|
||||
@Override
|
||||
public boolean test(Profile t) {
|
||||
return t.getId() == hs2Profile.getPasspointVenueProfileId();
|
||||
}
|
||||
|
||||
}).findFirst().get();
|
||||
|
||||
PasspointVenueProfile passpointVenueProfile = (PasspointVenueProfile) venue.getDetails();
|
||||
return passpointVenueProfile;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the UUIDs for the associated access Wifi_VIF_Config parents, as well
|
||||
* as the osu_ssid for the "OPEN" Wifi_VIF_Config used to connect to the
|
||||
* passpoint
|
||||
*
|
||||
* @param ovsdbClient
|
||||
* @param opensyncApConfig
|
||||
* @param rowColumns
|
||||
* @param hs2Profile
|
||||
*/
|
||||
void getVifInformationForPasspointConfiguration(OvsdbClient ovsdbClient, OpensyncAPConfig opensyncApConfig,
|
||||
Map<String, Value> rowColumns, PasspointProfile hs2Profile) {
|
||||
Map<String, WifiVifConfigInfo> vifConfigMap = ovsdbGet.getProvisionedWifiVifConfigs(ovsdbClient);
|
||||
|
||||
Set<Uuid> vifConfigs = new HashSet<>();
|
||||
List<Atom<String>> hessids = new ArrayList<>();
|
||||
|
||||
for (Profile ssidProfile : opensyncApConfig.getSsidProfile()) {
|
||||
if (hs2Profile.getAssociatedAccessSsidProfileIds().contains(ssidProfile.getId())) {
|
||||
|
||||
String accessSsidProfileName = ((SsidConfiguration) ssidProfile.getDetails()).getSsid();
|
||||
|
||||
for (WifiVifConfigInfo vifConfig : vifConfigMap.values()) {
|
||||
if (vifConfig.ssid.equals(accessSsidProfileName)) {
|
||||
vifConfigs.add(vifConfig.uuid);
|
||||
}
|
||||
}
|
||||
|
||||
List<String> vifStates = ovsdbGet.getWifiVifStates(ovsdbClient, accessSsidProfileName);
|
||||
for (String mac : vifStates) {
|
||||
hessids.add(new Atom<>(mac));
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
if (vifConfigs.size() > 0) {
|
||||
com.vmware.ovsdb.protocol.operation.notation.Set vifConfigUuids = com.vmware.ovsdb.protocol.operation.notation.Set
|
||||
.of(vifConfigs);
|
||||
rowColumns.put("vif_config", vifConfigUuids);
|
||||
}
|
||||
|
||||
if (hessids.size() > 0) {
|
||||
rowColumns.put("hessid", new Atom<>(hessids.get(0)));
|
||||
}
|
||||
|
||||
for (Profile ssidProfile : opensyncApConfig.getSsidProfile()) {
|
||||
if (hs2Profile.getOsuSsidProfileId() != null) {
|
||||
if (ssidProfile.getId() == hs2Profile.getOsuSsidProfileId()) {
|
||||
rowColumns.put("osu_ssid", new Atom<>(((SsidConfiguration) ssidProfile.getDetails()).getSsid()));
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Configure a Hotspot20 Passpoint for AP
|
||||
*
|
||||
* @param ovsdbClient
|
||||
* @param opensyncApConfig
|
||||
*/
|
||||
void provisionHotspot20Config(OvsdbClient ovsdbClient, OpensyncAPConfig opensyncApConfig) {
|
||||
try {
|
||||
DatabaseSchema schema = ovsdbClient.getSchema(ovsdbName).get(ovsdbTimeoutSec, TimeUnit.SECONDS);
|
||||
if (schema.getTables().containsKey(hotspot20ConfigDbTable)
|
||||
&& schema.getTables().get(hotspot20ConfigDbTable) != null) {
|
||||
Map<String, Hotspot20Config> hotspot20ConfigMap = ovsdbGet.getProvisionedHotspot20Configs(ovsdbClient);
|
||||
|
||||
OpensyncAPHotspot20Config hs20cfg = opensyncApConfig.getHotspotConfig();
|
||||
|
||||
if (hs20cfg.getHotspot20ProfileSet() != null) {
|
||||
List<Operation> operations = new ArrayList<>();
|
||||
for (Profile hotspotProfile : hs20cfg.getHotspot20ProfileSet()) {
|
||||
|
||||
Map<String, Value> rowColumns = new HashMap<>();
|
||||
|
||||
PasspointProfile hs2Profile = (PasspointProfile) hotspotProfile.getDetails();
|
||||
|
||||
getPasspointConfigurationInformationFromDependencies(ovsdbClient, opensyncApConfig, hs20cfg,
|
||||
hotspotProfile, rowColumns, hs2Profile);
|
||||
|
||||
rowColumns.put("deauth_request_timeout", new Atom<>(hs2Profile.getDeauthRequestTimeout()));
|
||||
if (hs2Profile.getTermsAndConditionsFile() != null) {
|
||||
rowColumns.put("tos", new Atom<>(hs2Profile.getTermsAndConditionsFile().getApExportUrl()));
|
||||
}
|
||||
rowColumns.put("enable", new Atom<>(hs2Profile.isEnableInterworkingAndHs20()));
|
||||
rowColumns.put("network_auth_type",
|
||||
new Atom<>("0" + hs2Profile.getNetworkAuthenticationType().getId()));
|
||||
if (hs2Profile.getGasAddr3Behaviour() != null) {
|
||||
rowColumns.put("gas_addr3_behavior", new Atom<>(hs2Profile.getGasAddr3Behaviour().getId()));
|
||||
}
|
||||
rowColumns.put("operating_class", new Atom<>(hs2Profile.getOperatingClass()));
|
||||
rowColumns.put("anqp_domain_id", new Atom<>(hs2Profile.getAnqpDomainId()));
|
||||
rowColumns.put("asra", new Atom<>(hs2Profile.getAdditionalStepsRequiredForAccess() == 1 ? true:false));
|
||||
rowColumns.put("disable_dgaf", new Atom<>(hs2Profile.isDisableDownstreamGroupAddressedForwarding()));
|
||||
rowColumns.put("esr", new Atom<>(hs2Profile.isEmergencyServicesReachable()));
|
||||
if (hs2Profile.getHessid() != null) {
|
||||
rowColumns.put("hessid", new Atom<>(hs2Profile.getHessid().getAddressAsString()));
|
||||
}
|
||||
rowColumns.put("internet", new Atom<>(hs2Profile.isInternetConnectivity()));
|
||||
if (hs2Profile.getQosMapSetConfiguration() != null) {
|
||||
rowColumns.put("qos_map_set", new Atom<>(String.join(",", hs2Profile.getQosMapSetConfiguration())));
|
||||
}
|
||||
rowColumns.put("uesa", new Atom<>(hs2Profile.isUnauthenticatedEmergencyServiceAccessible()));
|
||||
Set<Atom<String>> connectionCapabilities = new HashSet<>();
|
||||
hs2Profile.getConnectionCapabilitySet().stream()
|
||||
.forEach(c -> connectionCapabilities
|
||||
.add(new Atom<>(c.getConnectionCapabilitiesIpProtocol().getId() + ":"
|
||||
+ c.getConnectionCapabilitiesPortNumber() + ":"
|
||||
+ c.getConnectionCapabilitiesStatus().getId())));
|
||||
com.vmware.ovsdb.protocol.operation.notation.Set connectionCapabilitySet = com.vmware.ovsdb.protocol.operation.notation.Set
|
||||
.of(connectionCapabilities);
|
||||
rowColumns.put("connection_capability", connectionCapabilitySet);
|
||||
|
||||
// access_network_type to add when supported by AP
|
||||
if (ovsdbClient.getSchema(ovsdbName).get().getTables().get(hotspot20ConfigDbTable).getColumns().containsKey("access_network_type")) {
|
||||
if (hs2Profile.getAccessNetworkType() != null) {
|
||||
rowColumns.put("access_network_type", new Atom<>(hs2Profile.getAccessNetworkType().getId()));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// # format: <1-octet encoded value as hex str>
|
||||
// # (ipv4_type & 0x3f) << 2 | (ipv6_type & 0x3)
|
||||
// 0x3f = 63 in decimal
|
||||
// 0x3 = 3 in decimal
|
||||
if (PasspointIPv6AddressType.getByName(
|
||||
hs2Profile.getIpAddressTypeAvailability()) != PasspointIPv6AddressType.UNSUPPORTED) {
|
||||
int availability = PasspointIPv6AddressType
|
||||
.getByName(hs2Profile.getIpAddressTypeAvailability()).getId();
|
||||
String hexString = String.format("%02x", (availability & 0x3));
|
||||
rowColumns.put("ipaddr_type_availability", new Atom<>(hexString));
|
||||
}else if (PasspointIPv4AddressType.getByName(
|
||||
hs2Profile.getIpAddressTypeAvailability()) != PasspointIPv4AddressType.UNSUPPORTED) {
|
||||
int availability = PasspointIPv4AddressType
|
||||
.getByName(hs2Profile.getIpAddressTypeAvailability()).getId();
|
||||
String hexString = String.format("%02x", ((availability & 0x3f) << 2));
|
||||
rowColumns.put("ipaddr_type_availability", new Atom<>(hexString));
|
||||
}
|
||||
Row row = new Row(rowColumns);
|
||||
|
||||
Insert newHs20Config = new Insert(hotspot20ConfigDbTable, row);
|
||||
|
||||
operations.add(newHs20Config);
|
||||
|
||||
}
|
||||
|
||||
CompletableFuture<OperationResult[]> fResult = ovsdbClient.transact(ovsdbName, operations);
|
||||
OperationResult[] result = fResult.get(ovsdbTimeoutSec, TimeUnit.SECONDS);
|
||||
|
||||
for (OperationResult res : result) {
|
||||
LOG.debug("provisionHotspot20Config Op Result {}", res);
|
||||
if (res instanceof InsertResult) {
|
||||
LOG.info("provisionHotspot20Config insert new row result {}", (res));
|
||||
// for insert, make sure it is actually in the table
|
||||
confirmRowExistsInTable(ovsdbClient, ((InsertResult) res).getUuid(),
|
||||
hotspot20ConfigDbTable);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
LOG.info("Current Hotspot20_Config {}", hotspot20ConfigMap);
|
||||
} else {
|
||||
LOG.info("Table {} not present in {}. Cannot provision Hotspot20_Config", hotspot20ConfigDbTable,
|
||||
ovsdbName);
|
||||
}
|
||||
} catch (InterruptedException | ExecutionException | TimeoutException | OvsdbClientException e) {
|
||||
LOG.error("Error in provisionHotspot20Config", e);
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Provision the OSU Providers in the Hotspot20_OSU_Providers ovsdb table.
|
||||
*
|
||||
* @param ovsdbClient
|
||||
* @param opensyncApConfig
|
||||
*/
|
||||
void provisionHotspot20OsuProviders(OvsdbClient ovsdbClient, OpensyncAPConfig opensyncApConfig) {
|
||||
try {
|
||||
DatabaseSchema schema = ovsdbClient.getSchema(ovsdbName).get(ovsdbTimeoutSec, TimeUnit.SECONDS);
|
||||
if (schema.getTables().containsKey(hotspot20OsuProvidersDbTable)
|
||||
&& schema.getTables().get(hotspot20OsuProvidersDbTable) != null) {
|
||||
Map<String, Hotspot20OsuProviders> osuProviders = ovsdbGet
|
||||
.getProvisionedHotspot20OsuProviders(ovsdbClient);
|
||||
|
||||
OpensyncAPHotspot20Config hs20cfg = opensyncApConfig.getHotspotConfig();
|
||||
Set<Operation> operations = new HashSet<>();
|
||||
if (hs20cfg.getHotspot20ProviderSet() != null && hs20cfg.getHotspot20ProviderSet().size() > 0) {
|
||||
|
||||
for (Profile provider : hs20cfg.getHotspot20ProviderSet()) {
|
||||
PasspointOsuProviderProfile providerProfile = (PasspointOsuProviderProfile) provider
|
||||
.getDetails();
|
||||
String apOsuProviderName = OvsdbToWlanCloudTypeMappingUtility
|
||||
.getApOsuProviderStringFromOsuProviderName(provider.getName());
|
||||
Map<String, Value> rowColumns = new HashMap<>();
|
||||
rowColumns.put("osu_nai", new Atom<>(providerProfile.getOsuNaiStandalone()));
|
||||
|
||||
rowColumns.put("osu_nai2", new Atom<>(providerProfile.getOsuNaiShared()));
|
||||
|
||||
rowColumns.put("osu_provider_name", new Atom<>(apOsuProviderName));
|
||||
|
||||
getOsuIconUuidsForOsuProvider(ovsdbClient, providerProfile, rowColumns);
|
||||
getOsuProviderFriendlyNames(providerProfile, rowColumns);
|
||||
getOsuProviderMethodList(providerProfile, rowColumns);
|
||||
if (providerProfile.getOsuServerUri() != null) {
|
||||
rowColumns.put("server_uri", new Atom<>(providerProfile.getOsuServerUri()));
|
||||
}
|
||||
getOsuProviderServiceDescriptions(providerProfile, rowColumns);
|
||||
|
||||
Row row = new Row(rowColumns);
|
||||
|
||||
if (!osuProviders.containsKey(apOsuProviderName)) {
|
||||
Insert newOsuProvider = new Insert(hotspot20OsuProvidersDbTable, row);
|
||||
operations.add(newOsuProvider);
|
||||
} else {
|
||||
List<Condition> conditions = new ArrayList<>();
|
||||
conditions.add(new Condition("osu_provider_name", Function.EQUALS,
|
||||
new Atom<>(apOsuProviderName)));
|
||||
Update updatedOsuProvider = new Update(hotspot20OsuProvidersDbTable, conditions, row);
|
||||
operations.add(updatedOsuProvider);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
if (operations.size() > 0) {
|
||||
CompletableFuture<OperationResult[]> fResult = ovsdbClient.transact(ovsdbName,
|
||||
List.copyOf(operations));
|
||||
OperationResult[] result = fResult.get(ovsdbTimeoutSec, TimeUnit.SECONDS);
|
||||
|
||||
for (OperationResult res : result) {
|
||||
LOG.debug("provisionHotspot20OsuProviders Op Result {}", res);
|
||||
if (res instanceof InsertResult) {
|
||||
LOG.info("provisionHotspot20OsuProviders insert new row result {}", (res));
|
||||
// for insert, make sure it is actually in the table
|
||||
confirmRowExistsInTable(ovsdbClient, ((InsertResult) res).getUuid(),
|
||||
hotspot20OsuProvidersDbTable);
|
||||
} else if (res instanceof UpdateResult) {
|
||||
LOG.info("provisionHotspot20OsuProviders update row result {}", (res));
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
} else {
|
||||
LOG.info("Table {} not present in {}. Cannot provision Hotspot20_OSU_Providers",
|
||||
hotspot20OsuProvidersDbTable, ovsdbName);
|
||||
}
|
||||
} catch (InterruptedException | ExecutionException | TimeoutException | OvsdbClientException e) {
|
||||
LOG.error("Error in provisionHotspot20OsuProviders", e);
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
void provisionHotspot2IconConfig(OvsdbClient ovsdbClient, OpensyncAPConfig opensyncApConfig) {
|
||||
try {
|
||||
DatabaseSchema schema = ovsdbClient.getSchema(ovsdbName).get(ovsdbTimeoutSec, TimeUnit.SECONDS);
|
||||
if (schema.getTables().containsKey(hotspot20IconConfigDbTable)
|
||||
&& schema.getTables().get(hotspot20IconConfigDbTable) != null) {
|
||||
Map<String, Hotspot20IconConfig> osuIconConfigs = ovsdbGet
|
||||
.getProvisionedHotspot20IconConfig(ovsdbClient);
|
||||
|
||||
OpensyncAPHotspot20Config hs20cfg = opensyncApConfig.getHotspotConfig();
|
||||
Set<Operation> operations = new HashSet<>();
|
||||
if (hs20cfg.getHotspot20ProviderSet() != null && hs20cfg.getHotspot20ProviderSet().size() > 0) {
|
||||
|
||||
for (Profile provider : hs20cfg.getHotspot20ProviderSet()) {
|
||||
PasspointOsuProviderProfile providerProfile = (PasspointOsuProviderProfile) provider
|
||||
.getDetails();
|
||||
for (PasspointOsuIcon passpointOsuIcon : providerProfile.getOsuIconList()) {
|
||||
Map<String, Value> rowColumns = new HashMap<>();
|
||||
rowColumns.put("name", new Atom<>(passpointOsuIcon.getIconName()));
|
||||
if (schema.getTables().get(hotspot20IconConfigDbTable).getColumns().containsKey("path")) {
|
||||
rowColumns.put("path", new Atom<>(passpointOsuIcon.getFilePath()));
|
||||
}
|
||||
rowColumns.put("url", new Atom<>(passpointOsuIcon.getImageUrl()));
|
||||
rowColumns.put("lang_code", new Atom<>(passpointOsuIcon.getLanguageCode()));
|
||||
rowColumns.put("height", new Atom<>(passpointOsuIcon.getIconHeight()));
|
||||
rowColumns.put("img_type", new Atom<>(PasspointOsuIcon.ICON_TYPE));
|
||||
rowColumns.put("width", new Atom<>(passpointOsuIcon.getIconWidth()));
|
||||
if (passpointOsuIcon.getImageUrl() != null) {
|
||||
String md5Hex = DigestUtils.md5Hex(passpointOsuIcon.getImageUrl()).toUpperCase();
|
||||
if (schema.getTables().get(hotspot20IconConfigDbTable).getColumns()
|
||||
.containsKey("icon_config_name")) {
|
||||
rowColumns.put("icon_config_name", new Atom<>(md5Hex));
|
||||
}
|
||||
}
|
||||
Row row = new Row(rowColumns);
|
||||
|
||||
if (!osuIconConfigs.containsKey(passpointOsuIcon.getImageUrl())) {
|
||||
Insert newHs20Config = new Insert(hotspot20IconConfigDbTable, row);
|
||||
operations.add(newHs20Config);
|
||||
} else {
|
||||
List<Condition> conditions = new ArrayList<>();
|
||||
conditions.add(new Condition("url", Function.EQUALS,
|
||||
new Atom<>(passpointOsuIcon.getImageUrl())));
|
||||
Update newHs20Config = new Update(hotspot20IconConfigDbTable, conditions, row);
|
||||
operations.add(newHs20Config);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if (operations.size() > 0) {
|
||||
CompletableFuture<OperationResult[]> fResult = ovsdbClient.transact(ovsdbName,
|
||||
List.copyOf(operations));
|
||||
OperationResult[] result = fResult.get(ovsdbTimeoutSec, TimeUnit.SECONDS);
|
||||
|
||||
for (OperationResult res : result) {
|
||||
LOG.debug("provisionHotspot20Config Op Result {}", res);
|
||||
if (res instanceof InsertResult) {
|
||||
LOG.info("provisionHotspot20Config insert new row result {}", (res));
|
||||
} else if (res instanceof UpdateResult) {
|
||||
LOG.info("provisionHotspot20Config update row result {}", (res));
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
LOG.info("Table {} not present in {}. Cannot provision Hotspot20_Icon_Config",
|
||||
hotspot20IconConfigDbTable, ovsdbName);
|
||||
}
|
||||
} catch (InterruptedException | ExecutionException | TimeoutException | OvsdbClientException e) {
|
||||
LOG.error("Error in provisionHotspot2IconConfig", e);
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
}
|
||||
|
||||
void removeAllHotspot20Config(OvsdbClient ovsdbClient) {
|
||||
try {
|
||||
// DatabaseSchema schema = ovsdbClient.getSchema(ovsdbName).get(ovsdbTimeoutSec, TimeUnit.SECONDS);
|
||||
// if (schema.getTables().containsKey(hotspot20ConfigDbTable)
|
||||
// && schema.getTables().get(hotspot20ConfigDbTable) != null) {
|
||||
List<Operation> operations = new ArrayList<>();
|
||||
operations.add(new Delete(hotspot20ConfigDbTable));
|
||||
CompletableFuture<OperationResult[]> fResult = ovsdbClient.transact(ovsdbName, operations);
|
||||
OperationResult[] result = fResult.get(ovsdbTimeoutSec, TimeUnit.SECONDS);
|
||||
if (LOG.isDebugEnabled()) {
|
||||
LOG.debug("Removed all existing hotspot configs from {}:", hotspot20ConfigDbTable);
|
||||
for (OperationResult res : result) {
|
||||
LOG.debug("Op Result {}", res);
|
||||
}
|
||||
}
|
||||
// }
|
||||
} catch (InterruptedException | ExecutionException | TimeoutException | OvsdbClientException e) {
|
||||
LOG.error("Error in removeAllHotspot20Config", e);
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
}
|
||||
|
||||
void removeAllHotspot20IconConfig(OvsdbClient ovsdbClient) {
|
||||
try {
|
||||
DatabaseSchema schema = ovsdbClient.getSchema(ovsdbName).get(ovsdbTimeoutSec, TimeUnit.SECONDS);
|
||||
if (schema.getTables().containsKey(hotspot20IconConfigDbTable)
|
||||
&& schema.getTables().get(hotspot20IconConfigDbTable) != null) {
|
||||
List<Operation> operations = new ArrayList<>();
|
||||
|
||||
operations.add(new Delete(hotspot20IconConfigDbTable));
|
||||
|
||||
CompletableFuture<OperationResult[]> fResult = ovsdbClient.transact(ovsdbName, operations);
|
||||
OperationResult[] result = fResult.get(ovsdbTimeoutSec, TimeUnit.SECONDS);
|
||||
|
||||
if (LOG.isDebugEnabled()) {
|
||||
LOG.debug("Removed all existing hotspot icon configs from {}:", hotspot20IconConfigDbTable);
|
||||
|
||||
for (OperationResult res : result) {
|
||||
LOG.debug("Op Result {}", res);
|
||||
}
|
||||
}
|
||||
}
|
||||
} catch (InterruptedException | ExecutionException | TimeoutException | OvsdbClientException e) {
|
||||
LOG.error("Error in removeAllHotspot20IconConfig", e);
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
void removeAllHotspot20OsuProviders(OvsdbClient ovsdbClient) {
|
||||
try {
|
||||
DatabaseSchema schema = ovsdbClient.getSchema(ovsdbName).get(ovsdbTimeoutSec, TimeUnit.SECONDS);
|
||||
if (schema.getTables().containsKey(hotspot20OsuProvidersDbTable)
|
||||
&& schema.getTables().get(hotspot20OsuProvidersDbTable) != null) {
|
||||
List<Operation> operations = new ArrayList<>();
|
||||
|
||||
operations.add(new Delete(hotspot20OsuProvidersDbTable));
|
||||
|
||||
CompletableFuture<OperationResult[]> fResult = ovsdbClient.transact(ovsdbName, operations);
|
||||
OperationResult[] result = fResult.get(ovsdbTimeoutSec, TimeUnit.SECONDS);
|
||||
|
||||
if (LOG.isDebugEnabled()) {
|
||||
LOG.debug("Removed all existing hotspot osu providers from {}:", hotspot20OsuProvidersDbTable);
|
||||
|
||||
for (OperationResult res : result) {
|
||||
LOG.debug("Op Result {}", res);
|
||||
}
|
||||
}
|
||||
}
|
||||
} catch (InterruptedException | ExecutionException | TimeoutException | OvsdbClientException e) {
|
||||
LOG.error("Error in removeAllHotspot20OsuProviders", e);
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
void removeAllPasspointConfigs(OvsdbClient ovsdbClient) {
|
||||
removeAllHotspot20Config(ovsdbClient);
|
||||
removeAllHotspot20OsuProviders(ovsdbClient);
|
||||
removeAllHotspot20IconConfig(ovsdbClient);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,188 @@
|
||||
package com.telecominfraproject.wlan.opensync.ovsdb.dao;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Map.Entry;
|
||||
import java.util.UUID;
|
||||
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import com.telecominfraproject.wlan.opensync.external.integration.models.OpensyncAPInetState;
|
||||
import com.telecominfraproject.wlan.opensync.external.integration.models.OpensyncAPRadioState;
|
||||
import com.telecominfraproject.wlan.opensync.external.integration.models.OpensyncAPVIFState;
|
||||
import com.telecominfraproject.wlan.opensync.external.integration.models.OpensyncAWLANNode;
|
||||
import com.telecominfraproject.wlan.opensync.external.integration.models.OpensyncWifiAssociatedClients;
|
||||
import com.vmware.ovsdb.protocol.methods.RowUpdate;
|
||||
import com.vmware.ovsdb.protocol.methods.TableUpdate;
|
||||
import com.vmware.ovsdb.protocol.methods.TableUpdates;
|
||||
import com.vmware.ovsdb.protocol.operation.notation.Row;
|
||||
import com.vmware.ovsdb.service.OvsdbClient;
|
||||
|
||||
@Component
|
||||
public class OvsdbMonitor extends OvsdbDaoBase {
|
||||
|
||||
List<OpensyncAPInetState> getInitialOpensyncApInetStateForRowUpdate(TableUpdates tableUpdates, String apId,
|
||||
OvsdbClient ovsdbClient) {
|
||||
LOG.debug("getInitialOpensyncApInetStateForRowUpdate:");
|
||||
List<OpensyncAPInetState> ret = new ArrayList<>();
|
||||
try {
|
||||
LOG.debug(wifiInetStateDbTable + "_" + apId + " initial monitor table state received {}", tableUpdates);
|
||||
for (TableUpdate tableUpdate : tableUpdates.getTableUpdates().values()) {
|
||||
for (RowUpdate rowUpdate : tableUpdate.getRowUpdates().values()) {
|
||||
if (rowUpdate.getNew() != null) {
|
||||
ret.addAll(getOpensyncApInetStateForRowUpdate(rowUpdate, apId, ovsdbClient));
|
||||
}
|
||||
}
|
||||
}
|
||||
} catch (Exception e) {
|
||||
throw (e);
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
List<OpensyncAPVIFState> getInitialOpensyncApVifStateForTableUpdates(TableUpdates tableUpdates, String apId,
|
||||
OvsdbClient ovsdbClient) {
|
||||
LOG.debug("getInitialOpensyncApVifStateForTableUpdates:");
|
||||
List<OpensyncAPVIFState> ret = new ArrayList<>();
|
||||
try {
|
||||
LOG.debug(wifiVifStateDbTable + "_" + apId + " initial monitor table state received {}", tableUpdates);
|
||||
for (TableUpdate tableUpdate : tableUpdates.getTableUpdates().values()) {
|
||||
for (RowUpdate rowUpdate : tableUpdate.getRowUpdates().values()) {
|
||||
if (rowUpdate.getNew() != null) {
|
||||
ret.add(new OpensyncAPVIFState(rowUpdate.getNew()));
|
||||
}
|
||||
}
|
||||
}
|
||||
} catch (Exception e) {
|
||||
throw (e);
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
List<OpensyncWifiAssociatedClients> getInitialOpensyncWifiAssociatedClients(TableUpdates tableUpdates, String apId,
|
||||
OvsdbClient ovsdbClient) {
|
||||
LOG.debug("getInitialOpensyncWifiAssociatedClients:");
|
||||
List<OpensyncWifiAssociatedClients> ret = new ArrayList<>();
|
||||
try {
|
||||
LOG.debug(wifiAssociatedClientsDbTable + "_" + apId + " initial monitor table state received {}",
|
||||
tableUpdates);
|
||||
|
||||
for (TableUpdate tableUpdate : tableUpdates.getTableUpdates().values()) {
|
||||
|
||||
for (RowUpdate rowUpdate : tableUpdate.getRowUpdates().values()) {
|
||||
|
||||
if (rowUpdate.getNew() != null) {
|
||||
ret.addAll(getOpensyncWifiAssociatedClients(rowUpdate, apId, ovsdbClient));
|
||||
}
|
||||
}
|
||||
}
|
||||
} catch (Exception e) {
|
||||
throw (e);
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
List<OpensyncAPInetState> getOpensyncApInetStateForRowUpdate(RowUpdate rowUpdate, String apId,
|
||||
OvsdbClient ovsdbClient) {
|
||||
List<OpensyncAPInetState> ret = new ArrayList<>();
|
||||
LOG.debug("OvsdbDao::getOpensyncApInetStateForRowUpdate {} for apId {}", rowUpdate, apId);
|
||||
Row row = null;
|
||||
if (rowUpdate.getNew() != null) {
|
||||
if (rowUpdate.getOld() != null) {
|
||||
row = rowUpdate.getOld();
|
||||
row.getColumns().putAll(rowUpdate.getNew().getColumns());
|
||||
}
|
||||
} else {
|
||||
row = rowUpdate.getOld();
|
||||
}
|
||||
if (row != null) {
|
||||
ret.add(new OpensyncAPInetState(row));
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
List<OpensyncAPRadioState> getOpensyncAPRadioState(TableUpdates tableUpdates, String apId,
|
||||
OvsdbClient ovsdbClient) {
|
||||
List<OpensyncAPRadioState> ret = new ArrayList<>();
|
||||
try {
|
||||
for (Entry<String, TableUpdate> tableUpdate : tableUpdates.getTableUpdates().entrySet()) {
|
||||
for (Entry<UUID, RowUpdate> rowUpdate : tableUpdate.getValue().getRowUpdates().entrySet()) {
|
||||
Row row = rowUpdate.getValue().getNew();
|
||||
if (row != null) {
|
||||
ret.add(new OpensyncAPRadioState(row));
|
||||
}
|
||||
}
|
||||
}
|
||||
} catch (Exception e) {
|
||||
LOG.error("Could not parse update for Wifi_Radio_State", e);
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
List<OpensyncAPVIFState> getOpensyncApVifStateForRowUpdate(RowUpdate rowUpdate, String apId,
|
||||
OvsdbClient ovsdbClient) {
|
||||
List<OpensyncAPVIFState> ret = new ArrayList<>();
|
||||
try {
|
||||
Row row = rowUpdate.getNew(); // add/modify/init
|
||||
if (row == null) {
|
||||
row = rowUpdate.getOld(); // delete/modify
|
||||
}
|
||||
if (row != null) {
|
||||
ret.add(new OpensyncAPVIFState(row));
|
||||
}
|
||||
} catch (Exception e) {
|
||||
LOG.error("Could not parse update for Wifi_VIF_State", e);
|
||||
throw new RuntimeException(e);
|
||||
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
OpensyncAWLANNode getOpensyncAWLANNode(TableUpdates tableUpdates, String apId, OvsdbClient ovsdbClient) {
|
||||
OpensyncAWLANNode tableState = new OpensyncAWLANNode();
|
||||
try {
|
||||
for (TableUpdate tableUpdate : tableUpdates.getTableUpdates().values()) {
|
||||
for (RowUpdate rowUpdate : tableUpdate.getRowUpdates().values()) {
|
||||
Row row = rowUpdate.getNew();
|
||||
if (row != null) {
|
||||
tableState = new OpensyncAWLANNode(row);
|
||||
}
|
||||
}
|
||||
}
|
||||
} catch (Exception e) {
|
||||
LOG.error("Failed to handle AWLAN_Node update", e);
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
return tableState;
|
||||
}
|
||||
|
||||
List<OpensyncWifiAssociatedClients> getOpensyncWifiAssociatedClients(RowUpdate rowUpdate, String apId,
|
||||
OvsdbClient ovsdbClient) {
|
||||
Row row = rowUpdate.getNew();
|
||||
if (row == null) {
|
||||
row = rowUpdate.getOld();
|
||||
}
|
||||
if (row != null) {
|
||||
return List.of(new OpensyncWifiAssociatedClients(row));
|
||||
} else {
|
||||
return List.of();
|
||||
}
|
||||
}
|
||||
|
||||
Map<String, String> getAPCState(RowUpdate rowUpdate, String apId) {
|
||||
Map<String, String> ret = new HashMap<>();
|
||||
if (rowUpdate.getNew() != null) {
|
||||
Row row = rowUpdate.getNew();
|
||||
ret.put("designatedRouterIp", getSingleValueFromSet(row, "dr_addr"));
|
||||
ret.put("backupDesignatedRouterIp", getSingleValueFromSet(row, "bdr_addr"));
|
||||
ret.put("enabled", getSingleValueFromSet(row, "enabled").toString());
|
||||
ret.put("mode", getSingleValueFromSet(row, "mode"));
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -0,0 +1,328 @@
|
||||
package com.telecominfraproject.wlan.opensync.ovsdb.dao;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.HashMap;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Optional;
|
||||
import java.util.Set;
|
||||
import java.util.concurrent.CompletableFuture;
|
||||
import java.util.concurrent.ExecutionException;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
import java.util.concurrent.TimeoutException;
|
||||
import java.util.function.Predicate;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import com.telecominfraproject.wlan.equipment.models.NetworkForwardMode;
|
||||
import com.telecominfraproject.wlan.opensync.external.integration.models.OpensyncAPConfig;
|
||||
import com.telecominfraproject.wlan.opensync.ovsdb.dao.models.WifiInetConfigInfo;
|
||||
import com.telecominfraproject.wlan.profile.models.Profile;
|
||||
import com.telecominfraproject.wlan.profile.network.models.ApNetworkConfiguration;
|
||||
import com.telecominfraproject.wlan.profile.network.models.GreTunnelConfiguration;
|
||||
import com.telecominfraproject.wlan.profile.ssid.models.SsidConfiguration;
|
||||
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;
|
||||
import com.vmware.ovsdb.protocol.operation.notation.Condition;
|
||||
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.ErrorResult;
|
||||
import com.vmware.ovsdb.protocol.operation.result.InsertResult;
|
||||
import com.vmware.ovsdb.protocol.operation.result.OperationResult;
|
||||
import com.vmware.ovsdb.protocol.operation.result.UpdateResult;
|
||||
import com.vmware.ovsdb.service.OvsdbClient;
|
||||
|
||||
@Component
|
||||
public class OvsdbNetworkConfig extends OvsdbDaoBase {
|
||||
|
||||
@Autowired
|
||||
OvsdbGet ovsdbGet;
|
||||
|
||||
void configureGreTunnel(OvsdbClient ovsdbClient, Profile apNetworkConfiguration) {
|
||||
try {
|
||||
LOG.debug("Configure Gre Tunnel {}", apNetworkConfiguration);
|
||||
List<Operation> operations = new ArrayList<>();
|
||||
|
||||
ApNetworkConfiguration details = (ApNetworkConfiguration) apNetworkConfiguration.getDetails();
|
||||
|
||||
for (GreTunnelConfiguration greTunnelConfiguration : details.getGreTunnelConfigurations()) {
|
||||
|
||||
if (greTunnelConfiguration.getGreRemoteInetAddr() == null) {
|
||||
LOG.info("Cannot configure GRE profile without gre_remote_inet_addr");
|
||||
continue;
|
||||
}
|
||||
|
||||
if (greTunnelConfiguration.getGreTunnelName() == null) {
|
||||
LOG.info("Cannot configure GRE profile without if_name");
|
||||
continue;
|
||||
}
|
||||
|
||||
Map<String, Value> tableColumns = new HashMap<>();
|
||||
tableColumns.put("gre_remote_inet_addr",
|
||||
new Atom<>(greTunnelConfiguration.getGreRemoteInetAddr().getHostAddress()));
|
||||
tableColumns.put("if_name", new Atom<>(greTunnelConfiguration.getGreTunnelName()));
|
||||
tableColumns.put("if_type", new Atom<>("gre"));
|
||||
tableColumns.put("enabled", new Atom<>(true));
|
||||
tableColumns.put("network", new Atom<>(true));
|
||||
|
||||
operations.add(new Insert(wifiInetConfigDbTable, new Row(tableColumns)));
|
||||
|
||||
}
|
||||
|
||||
if (operations.isEmpty()) {
|
||||
LOG.info("No GRE tunnels to be configured.");
|
||||
return;
|
||||
}
|
||||
CompletableFuture<OperationResult[]> fResult = ovsdbClient.transact(ovsdbName, operations);
|
||||
OperationResult[] result = fResult.get(ovsdbTimeoutSec, TimeUnit.SECONDS);
|
||||
|
||||
for (OperationResult res : result) {
|
||||
if (res instanceof InsertResult) {
|
||||
LOG.info("configureGreTunnel {}", ((InsertResult) res).toString());
|
||||
} else if (res instanceof UpdateResult) {
|
||||
LOG.info("configureGreTunnel {}", ((UpdateResult) res).toString());
|
||||
} else if (res instanceof ErrorResult) {
|
||||
LOG.error("configureGreTunnel error {}", (res));
|
||||
throw new RuntimeException("configureGreTunnel " + ((ErrorResult) res).getError() + " "
|
||||
+ ((ErrorResult) res).getDetails());
|
||||
}
|
||||
}
|
||||
} catch (OvsdbClientException | InterruptedException | ExecutionException | TimeoutException e) {
|
||||
LOG.error("Couldn't configure Gre Tunnel {}", apNetworkConfiguration, e);
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
}
|
||||
|
||||
void configureGreTunnels(OvsdbClient ovsdbClient, OpensyncAPConfig opensyncApConfig) {
|
||||
|
||||
LOG.info("Configure Gre tunnels {}", opensyncApConfig.getApProfile());
|
||||
if (opensyncApConfig.getApProfile() != null) {
|
||||
configureGreTunnel(ovsdbClient, opensyncApConfig.getApProfile());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Insert or update Wifi_Inet_Interface for Wifi_VIF_Config table entry
|
||||
*
|
||||
* @param ovsdbClient
|
||||
* @param ifName
|
||||
* @param enabled
|
||||
* @param ifType
|
||||
* @param isUpdate
|
||||
* @param isNat
|
||||
*/
|
||||
void configureInetInterface(OvsdbClient ovsdbClient, String ifName, boolean enabled, String ifType,
|
||||
boolean isUpdate, boolean isNat, List<Operation> operations) {
|
||||
Map<String, Value> tableColumns = new HashMap<>();
|
||||
tableColumns.put("if_type", new Atom<>(ifType));
|
||||
tableColumns.put("enabled", new Atom<>(enabled));
|
||||
tableColumns.put("network", new Atom<>(true));
|
||||
tableColumns.put("if_name", new Atom<>(ifName));
|
||||
tableColumns.put("NAT", new Atom<>(isNat));
|
||||
Row row = new Row(tableColumns);
|
||||
if (isUpdate) {
|
||||
List<Condition> conditions = new ArrayList<>();
|
||||
conditions.add(new Condition("if_name", Function.EQUALS, new Atom<>(ifName)));
|
||||
operations.add(new Update(wifiInetConfigDbTable, conditions, row));
|
||||
} else {
|
||||
operations.add(new Insert(wifiInetConfigDbTable, row));
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @param ovsdbClient
|
||||
* @param vifInterfaceName
|
||||
* @param enabled
|
||||
* @param networkForwardMode
|
||||
* @param operations
|
||||
*/
|
||||
void configureInetVifInterface(OvsdbClient ovsdbClient, String vifInterfaceName, boolean enabled,
|
||||
NetworkForwardMode networkForwardMode, List<Operation> operations) {
|
||||
Map<String, WifiInetConfigInfo> inetConfigs = ovsdbGet.getProvisionedWifiInetConfigs(ovsdbClient);
|
||||
if (inetConfigs.containsKey(vifInterfaceName)) {
|
||||
configureInetInterface(ovsdbClient, vifInterfaceName, enabled, "vif", true,
|
||||
(networkForwardMode == NetworkForwardMode.NAT), operations);
|
||||
} else {
|
||||
configureInetInterface(ovsdbClient, vifInterfaceName, enabled, "vif", false,
|
||||
(networkForwardMode == NetworkForwardMode.NAT), operations);
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Use this to do any post configuration interface adjustment (i.e. turn on
|
||||
* dhcp_sniff, etc.)
|
||||
*/
|
||||
void configureInterfaces(OvsdbClient ovsdbClient) {
|
||||
configureWanInterfacesForDhcpSniffing(ovsdbClient);
|
||||
}
|
||||
|
||||
void createVlanInterfaceInGreTunnel(OvsdbClient ovsdbClient, int vlanId, String greTunnel) {
|
||||
try {
|
||||
List<Operation> operations = new ArrayList<>();
|
||||
Map<String, Value> tableColumns = new HashMap<>();
|
||||
Map<String, WifiInetConfigInfo> inetConfigMap = ovsdbGet.getProvisionedWifiInetConfigs(ovsdbClient);
|
||||
WifiInetConfigInfo parentTunnel = inetConfigMap.get(greTunnel);
|
||||
if (parentTunnel == null) {
|
||||
throw new RuntimeException("Cannot get tunnel interface " + parentTunnel + " for vlan " + vlanId);
|
||||
}
|
||||
tableColumns = new HashMap<>();
|
||||
tableColumns.put("if_type", new Atom<>("bridge"));
|
||||
tableColumns.put("vlan_id", new Atom<>(vlanId));
|
||||
tableColumns.put("if_name", new Atom<>(parentTunnel.ifName + "_" + Integer.toString(vlanId)));
|
||||
tableColumns.put("parent_ifname", new Atom<>(parentTunnel.ifName));
|
||||
tableColumns.put("enabled", new Atom<>(true));
|
||||
tableColumns.put("network", new Atom<>(true));
|
||||
Row row = new Row(tableColumns);
|
||||
operations.add(new Insert(wifiInetConfigDbTable, row));
|
||||
CompletableFuture<OperationResult[]> fResult = ovsdbClient.transact(ovsdbName, operations);
|
||||
OperationResult[] result = fResult.get(ovsdbTimeoutSec, TimeUnit.SECONDS);
|
||||
for (OperationResult res : result) {
|
||||
if (res instanceof InsertResult) {
|
||||
LOG.info("createVlanNetworkInterfaces {}", ((InsertResult) res).toString());
|
||||
} else if (res instanceof UpdateResult) {
|
||||
LOG.info("createVlanNetworkInterfaces {}", ((UpdateResult) res).toString());
|
||||
} else if (res instanceof ErrorResult) {
|
||||
LOG.error("createVlanNetworkInterfaces error {}", (res));
|
||||
throw new RuntimeException("createVlanNetworkInterfaces " + ((ErrorResult) res).getError() + " "
|
||||
+ ((ErrorResult) res).getDetails());
|
||||
}
|
||||
}
|
||||
inetConfigMap = ovsdbGet.getProvisionedWifiInetConfigs(ovsdbClient);
|
||||
LOG.debug("Provisioned vlan on greTunnel {}",
|
||||
inetConfigMap.get(parentTunnel.ifName + "_" + Integer.toString(vlanId)));
|
||||
} catch (OvsdbClientException | TimeoutException | ExecutionException | InterruptedException e) {
|
||||
LOG.error("Error in provisioning Vlan", e);
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
void createVlanNetworkInterfaces(OvsdbClient ovsdbClient, int vlanId) {
|
||||
try {
|
||||
List<Operation> operations = new ArrayList<>();
|
||||
Map<String, Value> tableColumns = new HashMap<>();
|
||||
Map<String, WifiInetConfigInfo> inetConfigMap = ovsdbGet.getProvisionedWifiInetConfigs(ovsdbClient);
|
||||
Row row = new Row(tableColumns);
|
||||
|
||||
WifiInetConfigInfo parentWanInterface = inetConfigMap.get(defaultWanInterfaceName);
|
||||
if (parentWanInterface == null) {
|
||||
throw new RuntimeException(
|
||||
"Cannot get wan interface " + defaultWanInterfaceName + " for vlan " + vlanId);
|
||||
}
|
||||
tableColumns = new HashMap<>();
|
||||
tableColumns.put("if_type", new Atom<>("vlan"));
|
||||
tableColumns.put("vlan_id", new Atom<>(vlanId));
|
||||
tableColumns.put("if_name", new Atom<>(parentWanInterface.ifName + "_" + Integer.toString(vlanId)));
|
||||
tableColumns.put("parent_ifname", new Atom<>(parentWanInterface.ifName));
|
||||
tableColumns.put("enabled", new Atom<>(true));
|
||||
tableColumns.put("ip_assign_scheme", new Atom<>("none"));
|
||||
tableColumns.put("NAT", new Atom<>(parentWanInterface.nat));
|
||||
tableColumns.put("mtu", new Atom<>(1500));
|
||||
row = new Row(tableColumns);
|
||||
if (inetConfigMap.containsKey(parentWanInterface.ifName + "_" + Integer.toString(vlanId))) {
|
||||
List<Condition> conditions = new ArrayList<>();
|
||||
conditions.add(new Condition("vlan_id", Function.EQUALS, new Atom<>(vlanId)));
|
||||
conditions.add(new Condition("parent_ifname", Function.EQUALS, new Atom<>(parentWanInterface.ifName)));
|
||||
} else {
|
||||
operations.add(new Insert(wifiInetConfigDbTable, row));
|
||||
}
|
||||
CompletableFuture<OperationResult[]> fResult = ovsdbClient.transact(ovsdbName, operations);
|
||||
OperationResult[] result = fResult.get(ovsdbTimeoutSec, TimeUnit.SECONDS);
|
||||
for (OperationResult res : result) {
|
||||
if (res instanceof InsertResult) {
|
||||
LOG.info("createVlanNetworkInterfaces {}", ((InsertResult) res).toString());
|
||||
} else if (res instanceof UpdateResult) {
|
||||
LOG.info("createVlanNetworkInterfaces {}", ((UpdateResult) res).toString());
|
||||
} else if (res instanceof ErrorResult) {
|
||||
LOG.error("createVlanNetworkInterfaces error {}", (res));
|
||||
throw new RuntimeException("createVlanNetworkInterfaces " + ((ErrorResult) res).getError() + " "
|
||||
+ ((ErrorResult) res).getDetails());
|
||||
}
|
||||
}
|
||||
inetConfigMap = ovsdbGet.getProvisionedWifiInetConfigs(ovsdbClient);
|
||||
LOG.debug("Provisioned vlan on wan {} and lan {}",
|
||||
inetConfigMap.get(parentWanInterface.ifName + "_" + Integer.toString(vlanId)));
|
||||
} catch (OvsdbClientException | TimeoutException | ExecutionException | InterruptedException e) {
|
||||
LOG.error("Error in provisioning Vlan", e);
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
}
|
||||
|
||||
void createVlanNetworkInterfaces(OvsdbClient ovsdbClient, OpensyncAPConfig opensyncApConfig) {
|
||||
Set<Integer> vlans = new HashSet<>();
|
||||
for (Profile ssidProfile : opensyncApConfig.getSsidProfile()) {
|
||||
Integer vlanId = ((SsidConfiguration) ssidProfile.getDetails()).getVlanId();
|
||||
if (vlanId != null && vlanId > 1) {
|
||||
vlans.add(vlanId);
|
||||
}
|
||||
}
|
||||
for (Integer vlanId : vlans) {
|
||||
Optional<GreTunnelConfiguration> tunnelConfiguration = ((ApNetworkConfiguration) opensyncApConfig
|
||||
.getApProfile().getDetails()).getGreTunnelConfigurations().stream()
|
||||
.filter(new Predicate<GreTunnelConfiguration>() {
|
||||
@Override
|
||||
public boolean test(GreTunnelConfiguration t) {
|
||||
return t.getVlanIdsInGreTunnel().contains(vlanId);
|
||||
}
|
||||
}).findFirst();
|
||||
if (tunnelConfiguration.isPresent()) {
|
||||
createVlanInterfaceInGreTunnel(ovsdbClient, vlanId, tunnelConfiguration.get().getGreTunnelName());
|
||||
} else {
|
||||
createVlanNetworkInterfaces(ovsdbClient, vlanId);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void removeAllInetConfigs(OvsdbClient ovsdbClient) {
|
||||
try {
|
||||
Collection<WifiInetConfigInfo> provisionedWifiInetConfigs = ovsdbGet
|
||||
.getProvisionedWifiInetConfigs(ovsdbClient).values();
|
||||
List<Operation> operations = new ArrayList<>();
|
||||
List<Condition> conditions = new ArrayList<>();
|
||||
for (WifiInetConfigInfo wifiInetConfigInfo : provisionedWifiInetConfigs) {
|
||||
if (wifiInetConfigInfo.vlanId > 1 || wifiInetConfigInfo.ifType.equals("vif")
|
||||
|| wifiInetConfigInfo.ifName.startsWith("gre") || wifiInetConfigInfo.ifType.equals("gre")) {
|
||||
conditions = new ArrayList<>();
|
||||
conditions.add(new Condition("if_name", Function.EQUALS, new Atom<>(wifiInetConfigInfo.ifName)));
|
||||
operations.add(new Delete(wifiInetConfigDbTable, conditions));
|
||||
}
|
||||
}
|
||||
CompletableFuture<OperationResult[]> fResult = ovsdbClient.transact(ovsdbName, operations);
|
||||
OperationResult[] result = fResult.get(ovsdbTimeoutSec, TimeUnit.SECONDS);
|
||||
LOG.info("Removed all existing vif, vlan, and gre interface configs from {}:", wifiInetConfigDbTable);
|
||||
for (OperationResult res : result) {
|
||||
LOG.info("Op Result {}", res);
|
||||
}
|
||||
provisionedWifiInetConfigs = ovsdbGet.getProvisionedWifiInetConfigs(ovsdbClient).values();
|
||||
for (WifiInetConfigInfo inetConfigInfo : provisionedWifiInetConfigs) {
|
||||
if (inetConfigInfo.ifType.equals("vif") || inetConfigInfo.ifType.equals("gre")) {
|
||||
throw new RuntimeException(
|
||||
"Failed to remove all vif and gre interface configurations from Wifi_Inet_Config dbTable, still has "
|
||||
+ provisionedWifiInetConfigs.stream().filter(new Predicate<WifiInetConfigInfo>() {
|
||||
@Override
|
||||
public boolean test(WifiInetConfigInfo t) {
|
||||
if ((t.ifType.equals("vif")) || (t.ifType.equals("gre"))) {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}).collect(Collectors.toList()));
|
||||
|
||||
}
|
||||
}
|
||||
} catch (OvsdbClientException | TimeoutException | ExecutionException | InterruptedException e) {
|
||||
LOG.error("Error in removeAllInetConfigs", e);
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,420 @@
|
||||
|
||||
package com.telecominfraproject.wlan.opensync.ovsdb.dao;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.concurrent.CompletableFuture;
|
||||
import java.util.concurrent.ExecutionException;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
import java.util.concurrent.TimeoutException;
|
||||
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import com.telecominfraproject.wlan.opensync.external.integration.models.ConnectNodeInfo;
|
||||
import com.telecominfraproject.wlan.opensync.util.OvsdbToWlanCloudTypeMappingUtility;
|
||||
import com.vmware.ovsdb.exception.OvsdbClientException;
|
||||
import com.vmware.ovsdb.protocol.operation.Operation;
|
||||
import com.vmware.ovsdb.protocol.operation.Select;
|
||||
import com.vmware.ovsdb.protocol.operation.Update;
|
||||
import com.vmware.ovsdb.protocol.operation.notation.Atom;
|
||||
import com.vmware.ovsdb.protocol.operation.notation.Condition;
|
||||
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.ErrorResult;
|
||||
import com.vmware.ovsdb.protocol.operation.result.OperationResult;
|
||||
import com.vmware.ovsdb.protocol.operation.result.SelectResult;
|
||||
import com.vmware.ovsdb.protocol.schema.DatabaseSchema;
|
||||
import com.vmware.ovsdb.service.OvsdbClient;
|
||||
|
||||
@Component
|
||||
public class OvsdbNode extends OvsdbDaoBase {
|
||||
String changeRedirectorAddress(OvsdbClient ovsdbClient, String apId, String newRedirectorAddress) {
|
||||
try {
|
||||
List<Operation> operations = new ArrayList<>();
|
||||
Map<String, Value> updateColumns = new HashMap<>();
|
||||
|
||||
updateColumns.put("redirector_addr", new Atom<>(newRedirectorAddress));
|
||||
|
||||
Row row = new Row(updateColumns);
|
||||
operations.add(new Update(awlanNodeDbTable, row));
|
||||
|
||||
CompletableFuture<OperationResult[]> fResult = ovsdbClient.transact(ovsdbName, operations);
|
||||
OperationResult[] result = fResult.get(ovsdbTimeoutSec, TimeUnit.SECONDS);
|
||||
|
||||
if (LOG.isDebugEnabled()) {
|
||||
LOG.debug("Updated {} redirector_addr = {}", awlanNodeDbTable, newRedirectorAddress);
|
||||
|
||||
for (OperationResult res : result) {
|
||||
LOG.debug("Op Result {}", res);
|
||||
}
|
||||
}
|
||||
|
||||
} catch (OvsdbClientException | TimeoutException | ExecutionException | InterruptedException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
|
||||
return newRedirectorAddress;
|
||||
}
|
||||
|
||||
void fillInLanIpAddressAndMac(OvsdbClient ovsdbClient, ConnectNodeInfo connectNodeInfo, String ifType) {
|
||||
try {
|
||||
List<Operation> operations = new ArrayList<>();
|
||||
List<Condition> conditions = new ArrayList<>();
|
||||
List<String> columns = new ArrayList<>();
|
||||
// populate macAddress, ipV4Address from Wifi_Inet_State
|
||||
|
||||
columns.add("inet_addr");
|
||||
columns.add("hwaddr");
|
||||
columns.add("if_type");
|
||||
columns.add("if_name");
|
||||
|
||||
conditions.add(new Condition("if_type", Function.EQUALS, new Atom<>(ifType)));
|
||||
conditions.add(new Condition("if_name", Function.EQUALS, new Atom<>(defaultLanInterfaceName)));
|
||||
|
||||
operations.add(new Select(wifiInetStateDbTable, conditions, columns));
|
||||
CompletableFuture<OperationResult[]> fResult = ovsdbClient.transact(ovsdbName, operations);
|
||||
OperationResult[] result = fResult.get(ovsdbTimeoutSec, TimeUnit.SECONDS);
|
||||
|
||||
if (LOG.isDebugEnabled()) {
|
||||
LOG.debug("Select from {}:", wifiInetStateDbTable);
|
||||
|
||||
for (OperationResult res : result) {
|
||||
LOG.debug("Op Result {}", res);
|
||||
}
|
||||
}
|
||||
|
||||
Row row = null;
|
||||
if ((result != null) && (result.length > 0) && (result[0] instanceof SelectResult) && !((SelectResult) result[0]).getRows().isEmpty()) {
|
||||
row = ((SelectResult) result[0]).getRows().iterator().next();
|
||||
connectNodeInfo.lanIpV4Address = getSingleValueFromSet(row, "inet_addr");
|
||||
connectNodeInfo.lanIfName = row.getStringColumn("if_name");
|
||||
connectNodeInfo.lanIfType = getSingleValueFromSet(row, "if_type");
|
||||
connectNodeInfo.lanMacAddress = getSingleValueFromSet(row, "hwaddr");
|
||||
|
||||
} else if ((result != null) && (result.length > 0) && (result[0] instanceof ErrorResult)) {
|
||||
LOG.warn("Error reading from {} table: {}", wifiInetStateDbTable, result[0]);
|
||||
}
|
||||
|
||||
} catch (OvsdbClientException | TimeoutException | ExecutionException | InterruptedException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
void fillInWanIpAddressAndMac(OvsdbClient ovsdbClient, ConnectNodeInfo connectNodeInfo, String ifType, String ifName) {
|
||||
try {
|
||||
List<Operation> operations = new ArrayList<>();
|
||||
List<Condition> conditions = new ArrayList<>();
|
||||
List<String> columns = new ArrayList<>();
|
||||
// populate macAddress, ipV4Address from Wifi_Inet_State
|
||||
|
||||
columns.add("inet_addr");
|
||||
columns.add("hwaddr");
|
||||
columns.add("if_name");
|
||||
columns.add("if_type");
|
||||
|
||||
conditions.add(new Condition("if_type", Function.EQUALS, new Atom<>(ifType)));
|
||||
conditions.add(new Condition("if_name", Function.EQUALS, new Atom<>(ifName)));
|
||||
|
||||
operations.add(new Select(wifiInetStateDbTable, conditions, columns));
|
||||
CompletableFuture<OperationResult[]> fResult = ovsdbClient.transact(ovsdbName, operations);
|
||||
OperationResult[] result = fResult.get(ovsdbTimeoutSec, TimeUnit.SECONDS);
|
||||
|
||||
if (LOG.isDebugEnabled()) {
|
||||
LOG.debug("Select from {}:", wifiInetStateDbTable);
|
||||
|
||||
for (OperationResult res : result) {
|
||||
LOG.debug("Op Result {}", res);
|
||||
}
|
||||
}
|
||||
|
||||
Row row = null;
|
||||
if ((result != null) && (result.length > 0) && (result[0] instanceof SelectResult) && !((SelectResult) result[0]).getRows().isEmpty()) {
|
||||
row = ((SelectResult) result[0]).getRows().iterator().next();
|
||||
connectNodeInfo.ipV4Address = getSingleValueFromSet(row, "inet_addr");
|
||||
connectNodeInfo.ifName = row.getStringColumn("if_name");
|
||||
connectNodeInfo.ifType = getSingleValueFromSet(row, "if_type");
|
||||
connectNodeInfo.macAddress = getSingleValueFromSet(row, "hwaddr");
|
||||
|
||||
}
|
||||
|
||||
} catch (OvsdbClientException | TimeoutException | ExecutionException | InterruptedException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
ConnectNodeInfo getConnectNodeInfo(OvsdbClient ovsdbClient) {
|
||||
|
||||
ConnectNodeInfo ret = new ConnectNodeInfo();
|
||||
|
||||
try {
|
||||
List<Operation> operations = new ArrayList<>();
|
||||
List<Condition> conditions = new ArrayList<>();
|
||||
List<String> columns = new ArrayList<>();
|
||||
columns.add("mqtt_settings");
|
||||
columns.add("redirector_addr");
|
||||
columns.add("manager_addr");
|
||||
columns.add("sku_number");
|
||||
columns.add("serial_number");
|
||||
columns.add("model");
|
||||
columns.add("firmware_version");
|
||||
columns.add("platform_version");
|
||||
columns.add("revision");
|
||||
columns.add("version_matrix");
|
||||
columns.add("id");
|
||||
|
||||
DatabaseSchema dbSchema = ovsdbClient.getSchema(ovsdbName).get();
|
||||
Set<String> keys = dbSchema.getTables().get(awlanNodeDbTable).getColumns().keySet();
|
||||
if (keys.containsAll(Set.of("reference_design", "model_description", "manufacturer_url", "manufacturer_name", "manufacturer_date",
|
||||
"certification_region"))) {
|
||||
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);
|
||||
|
||||
if (LOG.isDebugEnabled()) {
|
||||
LOG.debug("Select from {}:", awlanNodeDbTable);
|
||||
|
||||
for (OperationResult res : result) {
|
||||
LOG.debug("Op Result {}", res);
|
||||
}
|
||||
}
|
||||
|
||||
Row row = null;
|
||||
if ((result != null) && (result.length > 0) && (result[0] instanceof SelectResult) && !((SelectResult) result[0]).getRows().isEmpty()) {
|
||||
row = ((SelectResult) result[0]).getRows().iterator().next();
|
||||
}
|
||||
|
||||
ret.mqttSettings = row != null ? row.getMapColumn("mqtt_settings") : null;
|
||||
ret.versionMatrix = row != null ? row.getMapColumn("version_matrix") : null;
|
||||
ret.redirectorAddr = row != null ? row.getStringColumn("redirector_addr") : null;
|
||||
ret.managerAddr = row != null ? row.getStringColumn("manager_addr") : null;
|
||||
|
||||
ret.platformVersion = row != null ? row.getStringColumn("platform_version") : null;
|
||||
ret.firmwareVersion = row != null ? row.getStringColumn("firmware_version") : null;
|
||||
|
||||
ret.revision = row != null ? row.getStringColumn("revision") : null;
|
||||
|
||||
ret.skuNumber = getSingleValueFromSet(row, "sku_number");
|
||||
ret.serialNumber = getSingleValueFromSet(row, "serial_number");
|
||||
ret.model = getSingleValueFromSet(row, "model");
|
||||
|
||||
if (keys.containsAll(Set.of("reference_design", "model_description", "manufacturer_url", "manufacturer_name", "manufacturer_date",
|
||||
"certification_region"))) {
|
||||
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");
|
||||
}
|
||||
|
||||
// now populate macAddress, ipV4Address from Wifi_Inet_State
|
||||
// first look them up for if_name = br-wan
|
||||
fillInWanIpAddressAndMac(ovsdbClient, ret, defaultWanInterfaceType, defaultWanInterfaceName);
|
||||
if ((ret.ipV4Address == null) || (ret.macAddress == null)) {
|
||||
// when not found - look them up for if_name = br-lan
|
||||
fillInWanIpAddressAndMac(ovsdbClient, ret, defaultLanInterfaceType, defaultLanInterfaceName);
|
||||
|
||||
if (ret.ipV4Address == null) {
|
||||
throw new RuntimeException("Could not get inet address for Lan and Wan network interfaces. Node is not ready to connect.");
|
||||
}
|
||||
}
|
||||
fillInLanIpAddressAndMac(ovsdbClient, ret, defaultLanInterfaceType);
|
||||
|
||||
fillInRadioInterfaceNamesAndCountry(ovsdbClient, ret);
|
||||
|
||||
} catch (OvsdbClientException | TimeoutException | ExecutionException | InterruptedException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
LOG.debug("ConnectNodeInfo created {}", ret);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
void performRedirect(OvsdbClient ovsdbClient, String clientCn) {
|
||||
|
||||
List<Operation> operations = new ArrayList<>();
|
||||
List<Condition> conditions = new ArrayList<>();
|
||||
List<String> columns = new ArrayList<>();
|
||||
columns.add("manager_addr");
|
||||
columns.add("sku_number");
|
||||
columns.add("serial_number");
|
||||
columns.add("model");
|
||||
columns.add("firmware_version");
|
||||
|
||||
try {
|
||||
LOG.debug("Starting Redirect");
|
||||
|
||||
operations.add(new Select(awlanNodeDbTable, conditions, columns));
|
||||
CompletableFuture<OperationResult[]> fResult = ovsdbClient.transact(ovsdbName, operations);
|
||||
OperationResult[] result = fResult.get(ovsdbTimeoutSec, TimeUnit.SECONDS);
|
||||
|
||||
LOG.debug("Select from AWLAN_Node:");
|
||||
|
||||
String skuNumber = null;
|
||||
String serialNumber = null;
|
||||
String model = null;
|
||||
String firmwareVersion = null;
|
||||
|
||||
Row row = null;
|
||||
if ((result != null) && (result.length > 0) && !((SelectResult) result[0]).getRows().isEmpty()) {
|
||||
row = ((SelectResult) result[0]).getRows().iterator().next();
|
||||
for (OperationResult res : result) {
|
||||
LOG.debug("Op Result {}", res);
|
||||
}
|
||||
}
|
||||
|
||||
firmwareVersion = row != null ? row.getStringColumn("firmware_version") : null;
|
||||
|
||||
skuNumber = getSingleValueFromSet(row, "sku_number");
|
||||
serialNumber = getSingleValueFromSet(row, "serial_number");
|
||||
model = getSingleValueFromSet(row, "model");
|
||||
|
||||
LOG.info("Redirecting AP Node: clientCn {} serialNumber {} model {} firmwareVersion {} skuNumber {}", clientCn, serialNumber, model,
|
||||
firmwareVersion, skuNumber);
|
||||
|
||||
// Update table AWLAN_Node - set manager_addr
|
||||
operations.clear();
|
||||
Map<String, Value> updateColumns = new HashMap<>();
|
||||
|
||||
updateColumns.put("manager_addr", new Atom<>("ssl:" + managerIpAddr + ":" + ovsdbExternalPort));
|
||||
|
||||
row = new Row(updateColumns);
|
||||
operations.add(new Update(awlanNodeDbTable, row));
|
||||
|
||||
fResult = ovsdbClient.transact(ovsdbName, operations);
|
||||
result = fResult.get(ovsdbTimeoutSec, TimeUnit.SECONDS);
|
||||
|
||||
LOG.debug("Updated AWLAN_Node:");
|
||||
|
||||
for (OperationResult res : result) {
|
||||
LOG.debug("Op Result {}", res);
|
||||
}
|
||||
|
||||
LOG.debug("Redirect Done");
|
||||
} catch (ExecutionException | InterruptedException | OvsdbClientException | TimeoutException e) {
|
||||
LOG.error("Error when redirecting AP Node", e);
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
void rebootOrResetAp(OvsdbClient ovsdbClient, String desiredApAction) {
|
||||
try {
|
||||
LOG.debug("rebootOrResetAp on AP perform {}, setting timer for {} seconds.", desiredApAction, rebootOrResetTimerSeconds);
|
||||
List<Operation> operations = new ArrayList<>();
|
||||
Map<String, Value> updateColumns = new HashMap<>();
|
||||
updateColumns.put("firmware_url", new Atom<>(desiredApAction));
|
||||
updateColumns.put("upgrade_timer", new Atom<>(rebootOrResetTimerSeconds));
|
||||
Row row = new Row(updateColumns);
|
||||
operations.add(new Update(awlanNodeDbTable, row));
|
||||
CompletableFuture<OperationResult[]> fResult = ovsdbClient.transact(ovsdbName, operations);
|
||||
|
||||
OperationResult[] result = fResult.join();
|
||||
for (OperationResult r : result) {
|
||||
LOG.debug("Op Result {}", r);
|
||||
}
|
||||
} catch (OvsdbClientException e) {
|
||||
LOG.error("Could not trigger {}", desiredApAction, e);
|
||||
throw new RuntimeException(e);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
ConnectNodeInfo updateConnectNodeInfoOnConnect(OvsdbClient ovsdbClient, String clientCn, ConnectNodeInfo incomingConnectNodeInfo,
|
||||
boolean preventCnAlteration) {
|
||||
ConnectNodeInfo ret = incomingConnectNodeInfo.clone();
|
||||
|
||||
try {
|
||||
List<Operation> operations = new ArrayList<>();
|
||||
Map<String, Value> updateColumns = new HashMap<>();
|
||||
|
||||
// set device_mode = cloud - plume's APs do not use it
|
||||
// updateColumns.put("device_mode", new Atom<String>("cloud") );
|
||||
|
||||
// update sku_number if it was empty
|
||||
if (( ret.skuNumber == null) || ret.skuNumber.isEmpty() || ret.skuNumber.equals("unknown") || ret.skuNumber.startsWith("tip.wlan_")) {
|
||||
if ((ret.certificationRegion != null && !ret.certificationRegion.equals("unknown") ) && (ret.model != null && !ret.model.equals("unknown"))) {
|
||||
if (ret.model.endsWith("-" + ret.certificationRegion)) {
|
||||
updateColumns.put("sku_number", new Atom<>("TIP-" + ret.model));
|
||||
ret.skuNumber = "TIP-" + ret.model;
|
||||
} else {
|
||||
updateColumns.put("sku_number", new Atom<>("TIP-" + ret.model + "-" + ret.certificationRegion));
|
||||
ret.skuNumber = "TIP-" + ret.model + "-" + ret.certificationRegion;
|
||||
}
|
||||
} else if ((ret.country != null ) && (ret.model != null && !ret.model.equals("unknown"))) {
|
||||
if (ret.model.endsWith("-" + ret.country)) {
|
||||
updateColumns.put("sku_number", new Atom<>("TIP-" + ret.model));
|
||||
ret.skuNumber = "TIP-" + ret.model;
|
||||
} else {
|
||||
updateColumns.put("sku_number", new Atom<>("TIP-" + ret.model + "-" + ret.country));
|
||||
ret.skuNumber = "TIP-" + ret.model + "-" + ret.country;
|
||||
}
|
||||
} else if (ret.model != null && !ret.model.equals("unknown")){
|
||||
updateColumns.put("sku_number", new Atom<>("TIP-" + ret.model));
|
||||
ret.skuNumber = "TIP-" + ret.model;
|
||||
}
|
||||
}
|
||||
|
||||
// Configure the MQTT connection
|
||||
// ovsh u AWLAN_Node
|
||||
// mqtt_settings:ins:'["map",[["broker","testportal.123wlan.com"],["topics","/ap/dev-ap-0300/opensync"],["qos","0"],["port","1883"],["remote_log","1"]]]'
|
||||
Map<String, String> newMqttSettings = new HashMap<>();
|
||||
newMqttSettings.put("broker", mqttBrokerAddress);
|
||||
String mqttClientName = OvsdbToWlanCloudTypeMappingUtility.getAlteredClientCnIfRequired(clientCn, incomingConnectNodeInfo, preventCnAlteration);
|
||||
newMqttSettings.put("topics", "/ap/" + mqttClientName + "/opensync");
|
||||
newMqttSettings.put("port", "" + mqttBrokerExternalPort);
|
||||
newMqttSettings.put("compress", "zlib");
|
||||
newMqttSettings.put("qos", "0");
|
||||
newMqttSettings.put("remote_log", "1");
|
||||
|
||||
if ((ret.mqttSettings == null) || !ret.mqttSettings.equals(newMqttSettings)) {
|
||||
@SuppressWarnings("unchecked")
|
||||
com.vmware.ovsdb.protocol.operation.notation.Map<String, String> mgttSettings =
|
||||
com.vmware.ovsdb.protocol.operation.notation.Map.of(newMqttSettings);
|
||||
ret.mqttSettings = newMqttSettings;
|
||||
updateColumns.put("mqtt_settings", mgttSettings);
|
||||
}
|
||||
|
||||
if (!updateColumns.isEmpty()) {
|
||||
Row row = new Row(updateColumns);
|
||||
operations.add(new Update(awlanNodeDbTable, row));
|
||||
|
||||
CompletableFuture<OperationResult[]> fResult = ovsdbClient.transact(ovsdbName, operations);
|
||||
OperationResult[] result = fResult.get(ovsdbTimeoutSec, TimeUnit.SECONDS);
|
||||
|
||||
if (LOG.isDebugEnabled()) {
|
||||
LOG.debug("Updated {}:", awlanNodeDbTable);
|
||||
|
||||
for (OperationResult res : result) {
|
||||
LOG.debug("Op Result {}", res);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
} catch (OvsdbClientException | TimeoutException | ExecutionException | InterruptedException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,170 @@
|
||||
|
||||
package com.telecominfraproject.wlan.opensync.ovsdb.dao;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.concurrent.CompletableFuture;
|
||||
import java.util.concurrent.ExecutionException;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
import java.util.concurrent.TimeoutException;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
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;
|
||||
import com.vmware.ovsdb.protocol.operation.notation.Condition;
|
||||
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.InsertResult;
|
||||
import com.vmware.ovsdb.protocol.operation.result.OperationResult;
|
||||
import com.vmware.ovsdb.protocol.operation.result.UpdateResult;
|
||||
import com.vmware.ovsdb.service.OvsdbClient;
|
||||
|
||||
@Component
|
||||
public class OvsdbNodeConfig extends OvsdbDaoBase {
|
||||
|
||||
@Autowired
|
||||
OvsdbGet ovsdbGet;
|
||||
|
||||
public void configureNtpServer(OvsdbClient ovsdbClient, OpensyncAPConfig opensyncAPConfig) {
|
||||
try {
|
||||
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;
|
||||
}
|
||||
LOG.debug("configureNtpServer update Node_Config to {}", apNetworkConfig.getNtpServer().getValue());
|
||||
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)));
|
||||
CompletableFuture<OperationResult[]> fResult = ovsdbClient.transact(ovsdbName, operations);
|
||||
OperationResult[] result = fResult.get(ovsdbTimeoutSec, TimeUnit.SECONDS);
|
||||
for (OperationResult res : result) {
|
||||
LOG.debug("configureNtpServer result {}", res);
|
||||
}
|
||||
} catch (OvsdbClientException | InterruptedException | ExecutionException | TimeoutException e) {
|
||||
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);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public String processBlinkRequest(OvsdbClient ovsdbClient, String apId, boolean blinkAllLEDs) {
|
||||
|
||||
String ret = null;
|
||||
try {
|
||||
|
||||
LOG.debug("processBlinkRequest set BlinkLEDs to {}", blinkAllLEDs);
|
||||
Map<String, Value> columns = new HashMap<>();
|
||||
if (blinkAllLEDs) {
|
||||
columns.put("module", new Atom<>("led"));
|
||||
columns.put("key", new Atom<>("led_blink"));
|
||||
columns.put("value", new Atom<>("on"));
|
||||
} else {
|
||||
columns.put("module", new Atom<>("led"));
|
||||
columns.put("key", new Atom<>("led_off"));
|
||||
columns.put("value", new Atom<>("off"));
|
||||
}
|
||||
List<Operation> operations = new ArrayList<>();
|
||||
operations.add(new Update(nodeConfigTable, List.of(new Condition("module", Function.EQUALS, new Atom<>("led"))), 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("processBlinkRequest update result {}", res);
|
||||
ret = "processBlinkRequest 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) {
|
||||
if (res instanceof InsertResult) {
|
||||
LOG.debug("processBlinkRequest insert result {}", res);
|
||||
ret = "processBlinkRequest insert result " + res;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return ret;
|
||||
} catch (OvsdbClientException | InterruptedException | ExecutionException | TimeoutException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
}
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user