mirror of
https://github.com/Telecominfraproject/wlan-cloud-opensync-controller.git
synced 2025-11-01 11:07:49 +00:00
Compare commits
256 Commits
release-te
...
WIFI-2079-
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
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 | ||
|
|
6ece024535 | ||
|
|
4837b0e026 | ||
|
|
0eca082a4d | ||
|
|
db4672a9a2 | ||
|
|
9e58a9d7b7 | ||
|
|
f083c3488c | ||
|
|
b28655a5bd | ||
|
|
124b6054b5 | ||
|
|
d79917d20f | ||
|
|
c0bb71aed2 | ||
|
|
5e32798159 |
@@ -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;
|
||||
}
|
||||
@@ -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;
|
||||
@@ -88,15 +94,13 @@ import sts.OpensyncStats.Client;
|
||||
import sts.OpensyncStats.ClientReport;
|
||||
import sts.OpensyncStats.EventReport;
|
||||
import sts.OpensyncStats.EventReport.ClientAssocEvent;
|
||||
import sts.OpensyncStats.EventType;
|
||||
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 {
|
||||
@@ -126,12 +130,11 @@ public class OpensyncExternalIntegrationCloudTest {
|
||||
@MockBean(answer = Answers.RETURNS_MOCKS)
|
||||
OpensyncCloudGatewayController gatewayController;
|
||||
@MockBean
|
||||
OpensyncExternalIntegrationMqttMessageProcessor opensyncExternalIntegrationMqttProcessor;
|
||||
MqttStatsPublisher opensyncExternalIntegrationMqttProcessor;
|
||||
|
||||
@Autowired
|
||||
OpensyncExternalIntegrationCloud opensyncExternalIntegrationCloud;
|
||||
|
||||
|
||||
MockitoSession mockito;
|
||||
|
||||
@Configuration
|
||||
@@ -162,30 +165,18 @@ public class OpensyncExternalIntegrationCloudTest {
|
||||
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testGetCustomerEquipment() {
|
||||
|
||||
Equipment equipment = new Equipment();
|
||||
equipment.setDetails(ApElementConfiguration.createWithDefaults());
|
||||
|
||||
Mockito.when(
|
||||
equipmentServiceInterface.getByInventoryIdOrNull(ArgumentMatchers.eq("Test_Client_21P10C68818122")))
|
||||
.thenReturn(equipment);
|
||||
assertNotNull(opensyncExternalIntegrationCloud.getCustomerEquipment("Test_Client_21P10C68818122"));
|
||||
assertNull(opensyncExternalIntegrationCloud.getCustomerEquipment("Test_Client_21P10C68818133"));
|
||||
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testApConnected() {
|
||||
|
||||
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();
|
||||
@@ -204,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);
|
||||
@@ -234,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());
|
||||
|
||||
}
|
||||
|
||||
@@ -260,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);
|
||||
@@ -297,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<>();
|
||||
@@ -319,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);
|
||||
|
||||
@@ -351,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());
|
||||
|
||||
}
|
||||
|
||||
@@ -364,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);
|
||||
@@ -387,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);
|
||||
@@ -452,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"));
|
||||
|
||||
@@ -476,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";
|
||||
@@ -503,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
|
||||
@@ -603,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);
|
||||
|
||||
@@ -638,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);
|
||||
|
||||
@@ -678,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");
|
||||
@@ -703,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);
|
||||
@@ -713,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);
|
||||
@@ -726,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);
|
||||
|
||||
}
|
||||
@@ -765,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);
|
||||
@@ -774,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
|
||||
@@ -811,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);
|
||||
@@ -827,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<>();
|
||||
|
||||
@@ -851,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());
|
||||
|
||||
@@ -859,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);
|
||||
@@ -910,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;
|
||||
@@ -39,8 +39,13 @@ import com.telecominfraproject.wlan.core.model.equipment.MacAddress;
|
||||
import com.telecominfraproject.wlan.core.model.equipment.RadioType;
|
||||
import com.telecominfraproject.wlan.customer.service.CustomerServiceInterface;
|
||||
import com.telecominfraproject.wlan.equipment.EquipmentServiceInterface;
|
||||
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.routing.RoutingServiceInterface;
|
||||
@@ -53,26 +58,28 @@ import com.telecominfraproject.wlan.status.models.Status;
|
||||
import com.telecominfraproject.wlan.status.models.StatusDataType;
|
||||
|
||||
import sts.OpensyncStats.AssocType;
|
||||
import sts.OpensyncStats.ChannelSwitchReason;
|
||||
import sts.OpensyncStats.Client;
|
||||
import sts.OpensyncStats.ClientReport;
|
||||
import sts.OpensyncStats.DNSProbeMetric;
|
||||
import sts.OpensyncStats.EventReport;
|
||||
import sts.OpensyncStats.EventReport.ChannelSwitchEvent;
|
||||
import sts.OpensyncStats.EventReport.ClientAssocEvent;
|
||||
import sts.OpensyncStats.NetworkProbe;
|
||||
import sts.OpensyncStats.RADIUSMetrics;
|
||||
import sts.OpensyncStats.RadioBandType;
|
||||
import sts.OpensyncStats.Report;
|
||||
import sts.OpensyncStats.StateUpDown;
|
||||
import sts.OpensyncStats.VLANMetrics;
|
||||
import sts.OpensyncStats.EventReport.ClientAssocEvent;
|
||||
|
||||
@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;
|
||||
@@ -98,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;
|
||||
|
||||
@@ -108,8 +116,8 @@ public class OpensyncExternalIntegrationMqttMessageProcessorTest {
|
||||
static class Config {
|
||||
|
||||
@Bean
|
||||
public OpensyncExternalIntegrationMqttMessageProcessor opensyncExternalIntegrationMqttMessageProcessor() {
|
||||
return new OpensyncExternalIntegrationMqttMessageProcessor();
|
||||
public StatsPublisherInterface mqttStatsPublisher() {
|
||||
return new MqttStatsPublisher();
|
||||
}
|
||||
|
||||
}
|
||||
@@ -117,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();
|
||||
|
||||
}
|
||||
|
||||
@@ -127,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));
|
||||
|
||||
}
|
||||
|
||||
@@ -142,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));
|
||||
@@ -164,6 +174,19 @@ public class OpensyncExternalIntegrationMqttMessageProcessorTest {
|
||||
|
||||
@Test
|
||||
public void testProcessMqttMessageStringReport() {
|
||||
Equipment equipment = new Equipment();
|
||||
|
||||
equipment.setDetails(ApElementConfiguration.createWithDefaults());
|
||||
equipment.setId(1L); equipment.setCustomerId(2);
|
||||
|
||||
Mockito.when(
|
||||
equipmentServiceInterface.getByInventoryIdOrNull(ArgumentMatchers.eq("Test_Client_21P10C68818122")))
|
||||
.thenReturn(equipment);
|
||||
|
||||
equipment.setProfileId(0L);
|
||||
|
||||
Mockito.when(equipmentServiceInterface.getOrNull(1L)).thenReturn(equipment);
|
||||
Mockito.when(equipmentServiceInterface.get(1L)).thenReturn(equipment);
|
||||
|
||||
Report report = Report.newBuilder().setNodeID("21P10C68818122")
|
||||
.addAllClients(getOpensyncStatsClientReportsList())
|
||||
@@ -173,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);
|
||||
|
||||
@@ -190,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)))
|
||||
@@ -203,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);
|
||||
@@ -296,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);
|
||||
@@ -313,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<>();
|
||||
|
||||
@@ -338,18 +342,25 @@ 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());
|
||||
|
||||
List<ChannelSwitchEvent> channelSwitchEventList = new ArrayList<>();
|
||||
channelSwitchEventList.add(channelSwitchEventBuilder.build());
|
||||
|
||||
eventReportBuilder.addAllClientSession(clientSessionList);
|
||||
eventReportBuilder.addAllChannelSwitch(channelSwitchEventList);
|
||||
|
||||
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,14 +2,20 @@ 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;
|
||||
|
||||
public static long getSerialversionuid() {
|
||||
return serialVersionUID;
|
||||
}
|
||||
|
||||
public String ifName;
|
||||
public Map<String, String> dhcpd;
|
||||
public String unpnpMode;
|
||||
@@ -37,224 +43,344 @@ public class OpensyncAPInetState extends BaseJsonModel {
|
||||
public Uuid _uuid;
|
||||
public Uuid version;
|
||||
public String greLocalInetAddr;
|
||||
|
||||
public String greRemoteMacAddr;
|
||||
|
||||
public OpensyncAPInetState() {
|
||||
super();
|
||||
dns = new HashMap<>();
|
||||
dhcpc = new HashMap<>();
|
||||
}
|
||||
|
||||
public String getIfName() {
|
||||
return ifName;
|
||||
public OpensyncAPInetState(Row row) {
|
||||
dns = new HashMap<>();
|
||||
dhcpc = new HashMap<>();
|
||||
|
||||
Map<String, Value> map = row.getColumns();
|
||||
|
||||
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 setIfName(String ifName) {
|
||||
this.ifName = ifName;
|
||||
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 Map<String, String> getDhcpd() {
|
||||
return dhcpd;
|
||||
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 setDhcpd(Map<String, String> dhcpd) {
|
||||
this.dhcpd = dhcpd;
|
||||
@Override
|
||||
public boolean equals(Object obj) {
|
||||
if (this == obj) {
|
||||
return true;
|
||||
}
|
||||
|
||||
public String getUnpnpMode() {
|
||||
return unpnpMode;
|
||||
if (obj == null) {
|
||||
return false;
|
||||
}
|
||||
|
||||
public void setUnpnpMode(String unpnpMode) {
|
||||
this.unpnpMode = unpnpMode;
|
||||
if (getClass() != obj.getClass()) {
|
||||
return false;
|
||||
}
|
||||
|
||||
public String getIfType() {
|
||||
return ifType;
|
||||
OpensyncAPInetState other = (OpensyncAPInetState) obj;
|
||||
if (!Objects.equals(_uuid, other._uuid)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
public void setIfType(String ifType) {
|
||||
this.ifType = ifType;
|
||||
if (!Objects.equals(broadcast, other.broadcast)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
public String getSoftwdsMacAddr() {
|
||||
return softwdsMacAddr;
|
||||
if (!Objects.equals(dhcpc, other.dhcpc)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
public void setSoftwdsMacAddr(String softwdsMacAddr) {
|
||||
this.softwdsMacAddr = softwdsMacAddr;
|
||||
if (!Objects.equals(dhcpd, other.dhcpd)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
public boolean isEnabled() {
|
||||
return enabled;
|
||||
if (!Objects.equals(dns, other.dns)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
public void setEnabled(boolean enabled) {
|
||||
this.enabled = enabled;
|
||||
if (enabled != other.enabled) {
|
||||
return false;
|
||||
}
|
||||
|
||||
public boolean isSofwdsWrap() {
|
||||
return sofwdsWrap;
|
||||
if (!Objects.equals(gateway, other.gateway)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
public void setSofwdsWrap(boolean sofwdsWrap) {
|
||||
this.sofwdsWrap = sofwdsWrap;
|
||||
if (!Objects.equals(greIfName, other.greIfName)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
public int getVlanId() {
|
||||
return vlanId;
|
||||
if (!Objects.equals(greLocalInetAddr, other.greLocalInetAddr)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
public void setVlanId(int vlanId) {
|
||||
this.vlanId = vlanId;
|
||||
if (!Objects.equals(greRemoteInetAddr, other.greRemoteInetAddr)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
public String getNetmask() {
|
||||
return netmask;
|
||||
if (!Objects.equals(hwAddr, other.hwAddr)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
public void setNetmask(String netmask) {
|
||||
this.netmask = netmask;
|
||||
if (!Objects.equals(ifName, other.ifName)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
public boolean isNat() {
|
||||
return nat;
|
||||
if (!Objects.equals(ifType, other.ifType)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
public void setNat(boolean nat) {
|
||||
this.nat = nat;
|
||||
if (!Objects.equals(ifUuid, other.ifUuid)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
public String getGreRemoteInetAddr() {
|
||||
return greRemoteInetAddr;
|
||||
if (!Objects.equals(inetAddr, other.inetAddr)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
public void setGreRemoteInetAddr(String greRemoteInetAddr) {
|
||||
this.greRemoteInetAddr = greRemoteInetAddr;
|
||||
if (!Objects.equals(inetConfig, other.inetConfig)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
public String getIfUuid() {
|
||||
return ifUuid;
|
||||
if (!Objects.equals(ipAssignScheme, other.ipAssignScheme)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
public void setIfUuid(String ifUuid) {
|
||||
this.ifUuid = ifUuid;
|
||||
if (mtw != other.mtw) {
|
||||
return false;
|
||||
}
|
||||
|
||||
public String getInetAddr() {
|
||||
return inetAddr;
|
||||
if (nat != other.nat) {
|
||||
return false;
|
||||
}
|
||||
|
||||
public void setInetAddr(String inetAddr) {
|
||||
this.inetAddr = inetAddr;
|
||||
if (!Objects.equals(netmask, other.netmask)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
public String getHwAddr() {
|
||||
return hwAddr;
|
||||
if (network != other.network) {
|
||||
return false;
|
||||
}
|
||||
|
||||
public void setHwAddr(String hwAddr) {
|
||||
this.hwAddr = hwAddr;
|
||||
if (!Objects.equals(parentIfName, other.parentIfName)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
public int getMtw() {
|
||||
return mtw;
|
||||
if (!Objects.equals(greRemoteMacAddr, other.greRemoteMacAddr)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
public void setMtw(int mtw) {
|
||||
this.mtw = mtw;
|
||||
if (!Objects.equals(softwdsMacAddr, other.softwdsMacAddr)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
public boolean isNetwork() {
|
||||
return network;
|
||||
if (sofwdsWrap != other.sofwdsWrap) {
|
||||
return false;
|
||||
}
|
||||
|
||||
public void setNetwork(boolean network) {
|
||||
this.network = network;
|
||||
if (!Objects.equals(unpnpMode, other.unpnpMode)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
public Map<String, String> getDns() {
|
||||
return dns;
|
||||
if (!Objects.equals(version, other.version)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
public void setDns(Map<String, String> dns) {
|
||||
this.dns = dns;
|
||||
if (vlanId != other.vlanId) {
|
||||
return false;
|
||||
}
|
||||
|
||||
public String getParentIfName() {
|
||||
return parentIfName;
|
||||
}
|
||||
|
||||
public void setParentIfName(String parentIfName) {
|
||||
this.parentIfName = parentIfName;
|
||||
}
|
||||
|
||||
public String getGreIfName() {
|
||||
return greIfName;
|
||||
}
|
||||
|
||||
public void setGreIfName(String greIfName) {
|
||||
this.greIfName = greIfName;
|
||||
}
|
||||
|
||||
public String getBroadcast() {
|
||||
return broadcast;
|
||||
}
|
||||
|
||||
public void setBroadcast(String broadcast) {
|
||||
this.broadcast = broadcast;
|
||||
}
|
||||
|
||||
public Map<String, String> getDhcpc() {
|
||||
return dhcpc;
|
||||
}
|
||||
|
||||
public void setDhcpc(Map<String, String> dhcpc) {
|
||||
this.dhcpc = dhcpc;
|
||||
}
|
||||
|
||||
public String getGateway() {
|
||||
return gateway;
|
||||
}
|
||||
|
||||
public void setGateway(String gateway) {
|
||||
this.gateway = gateway;
|
||||
}
|
||||
|
||||
public String getIpAssignScheme() {
|
||||
return ipAssignScheme;
|
||||
}
|
||||
|
||||
public void setIpAssignScheme(String ipAssignScheme) {
|
||||
this.ipAssignScheme = ipAssignScheme;
|
||||
}
|
||||
|
||||
public String getInetConfig() {
|
||||
return inetConfig;
|
||||
}
|
||||
|
||||
public void setInetConfig(String inetConfig) {
|
||||
this.inetConfig = inetConfig;
|
||||
}
|
||||
|
||||
public static long getSerialversionuid() {
|
||||
return serialVersionUID;
|
||||
return true;
|
||||
}
|
||||
|
||||
public Uuid get_uuid() {
|
||||
return _uuid;
|
||||
}
|
||||
|
||||
public void set_uuid(Uuid _uuid) {
|
||||
this._uuid = _uuid;
|
||||
public String getBroadcast() {
|
||||
return broadcast;
|
||||
}
|
||||
|
||||
public Map<String, String> getDhcpc() {
|
||||
return dhcpc;
|
||||
}
|
||||
|
||||
public Map<String, String> getDhcpd() {
|
||||
return dhcpd;
|
||||
}
|
||||
|
||||
public Map<String, String> getDns() {
|
||||
return dns;
|
||||
}
|
||||
|
||||
public String getGateway() {
|
||||
return gateway;
|
||||
}
|
||||
|
||||
public String getGreIfName() {
|
||||
return greIfName;
|
||||
}
|
||||
|
||||
public String getGreLocalInetAddr() {
|
||||
return greLocalInetAddr;
|
||||
}
|
||||
|
||||
public String getGreRemoteInetAddr() {
|
||||
return greRemoteInetAddr;
|
||||
}
|
||||
|
||||
public String getGreRemoteMacAddr() {
|
||||
return this.greRemoteMacAddr;
|
||||
}
|
||||
|
||||
public String getHwAddr() {
|
||||
return hwAddr;
|
||||
}
|
||||
|
||||
public String getIfName() {
|
||||
return ifName;
|
||||
}
|
||||
|
||||
public String getIfType() {
|
||||
return ifType;
|
||||
}
|
||||
|
||||
public String getIfUuid() {
|
||||
return ifUuid;
|
||||
}
|
||||
|
||||
public String getInetAddr() {
|
||||
return inetAddr;
|
||||
}
|
||||
|
||||
public String getInetConfig() {
|
||||
return inetConfig;
|
||||
}
|
||||
|
||||
public String getIpAssignScheme() {
|
||||
return ipAssignScheme;
|
||||
}
|
||||
|
||||
public int getMtw() {
|
||||
return mtw;
|
||||
}
|
||||
|
||||
public String getNetmask() {
|
||||
return netmask;
|
||||
}
|
||||
|
||||
public String getParentIfName() {
|
||||
return parentIfName;
|
||||
}
|
||||
|
||||
public String getSoftwdsMacAddr() {
|
||||
return softwdsMacAddr;
|
||||
}
|
||||
|
||||
public String getUnpnpMode() {
|
||||
return unpnpMode;
|
||||
}
|
||||
|
||||
public Uuid getVersion() {
|
||||
return version;
|
||||
}
|
||||
|
||||
public void setVersion(Uuid version) {
|
||||
this.version = version;
|
||||
public int getVlanId() {
|
||||
return vlanId;
|
||||
}
|
||||
|
||||
@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 boolean isEnabled() {
|
||||
return enabled;
|
||||
}
|
||||
|
||||
public boolean isNat() {
|
||||
return nat;
|
||||
}
|
||||
|
||||
public boolean isNetwork() {
|
||||
return network;
|
||||
}
|
||||
|
||||
public boolean isSofwdsWrap() {
|
||||
return sofwdsWrap;
|
||||
}
|
||||
|
||||
public void set_uuid(Uuid _uuid) {
|
||||
this._uuid = _uuid;
|
||||
}
|
||||
|
||||
public void setBroadcast(String broadcast) {
|
||||
this.broadcast = broadcast;
|
||||
}
|
||||
|
||||
public void setDhcpc(Map<String, String> dhcpc) {
|
||||
this.dhcpc = dhcpc;
|
||||
}
|
||||
|
||||
public void setDhcpd(Map<String, String> dhcpd) {
|
||||
this.dhcpd = dhcpd;
|
||||
}
|
||||
|
||||
public void setDns(Map<String, String> dns) {
|
||||
this.dns = dns;
|
||||
}
|
||||
|
||||
public void setEnabled(boolean enabled) {
|
||||
this.enabled = enabled;
|
||||
}
|
||||
|
||||
public void setGateway(String gateway) {
|
||||
this.gateway = gateway;
|
||||
}
|
||||
|
||||
public void setGreIfName(String greIfName) {
|
||||
this.greIfName = greIfName;
|
||||
}
|
||||
|
||||
public void setGreLocalInetAddr(String greLocalInetAddr) {
|
||||
@@ -262,184 +388,80 @@ public class OpensyncAPInetState extends BaseJsonModel {
|
||||
|
||||
}
|
||||
|
||||
public String getGreLocalInetAddr() {
|
||||
return greLocalInetAddr;
|
||||
public void setGreRemoteInetAddr(String greRemoteInetAddr) {
|
||||
this.greRemoteInetAddr = greRemoteInetAddr;
|
||||
}
|
||||
|
||||
public void setGreRemoteMacAddr(String greRemoteMacAddr) {
|
||||
this.greRemoteMacAddr = greRemoteMacAddr;
|
||||
}
|
||||
|
||||
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 setHwAddr(String hwAddr) {
|
||||
this.hwAddr = hwAddr;
|
||||
}
|
||||
|
||||
@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 setIfName(String ifName) {
|
||||
this.ifName = ifName;
|
||||
}
|
||||
|
||||
public void setIfType(String ifType) {
|
||||
this.ifType = ifType;
|
||||
}
|
||||
|
||||
public void setIfUuid(String ifUuid) {
|
||||
this.ifUuid = ifUuid;
|
||||
}
|
||||
|
||||
public void setInetAddr(String inetAddr) {
|
||||
this.inetAddr = inetAddr;
|
||||
}
|
||||
|
||||
public void setInetConfig(String inetConfig) {
|
||||
this.inetConfig = inetConfig;
|
||||
}
|
||||
|
||||
public void setIpAssignScheme(String ipAssignScheme) {
|
||||
this.ipAssignScheme = ipAssignScheme;
|
||||
}
|
||||
|
||||
public void setMtw(int mtw) {
|
||||
this.mtw = mtw;
|
||||
}
|
||||
|
||||
public void setNat(boolean nat) {
|
||||
this.nat = nat;
|
||||
}
|
||||
|
||||
public void setNetmask(String netmask) {
|
||||
this.netmask = netmask;
|
||||
}
|
||||
|
||||
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
|
||||
|
||||
@@ -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();
|
||||
|
||||
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) {
|
||||
|
||||
Set<Long> allowedChannels = getSet(row, "allowed_channels");
|
||||
|
||||
Set<Integer> allowed = new HashSet<>();
|
||||
for (Long channel : allowedChannels) {
|
||||
allowed.add(channel.intValue());
|
||||
}
|
||||
this.setAllowedChannels(allowed);
|
||||
}
|
||||
if (map.get("channels") != null) {
|
||||
|
||||
Map<String, String> channels = row.getMapColumn("channels");
|
||||
this.setChannels(channels);
|
||||
}
|
||||
|
||||
public void setTemperatureControl(int temperatureControl) {
|
||||
this.temperatureControl = temperatureControl;
|
||||
}
|
||||
Set<Uuid> vifStates = row.getSetColumn("vif_states");
|
||||
this.setVifStates(vifStates);
|
||||
|
||||
public boolean isThermalDowngraded() {
|
||||
return thermalDowngraded;
|
||||
}
|
||||
|
||||
public void setThermalDowngraded(boolean thermalDowngraded) {
|
||||
this.thermalDowngraded = thermalDowngraded;
|
||||
}
|
||||
|
||||
public boolean isDfsDemo() {
|
||||
return dfsDemo;
|
||||
}
|
||||
|
||||
public void setDfsDemo(boolean dfsDemo) {
|
||||
this.dfsDemo = dfsDemo;
|
||||
}
|
||||
|
||||
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();
|
||||
|
||||
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 int getVifRadioIdx() {
|
||||
return 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 void setVifRadioIdx(int vifRadioIdx) {
|
||||
this.vifRadioIdx = vifRadioIdx;
|
||||
if ((map.get("enabled") != null)
|
||||
&& map.get("enabled").getClass().equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
|
||||
this.setEnabled(row.getBooleanColumn("enabled"));
|
||||
}
|
||||
|
||||
public String getParent() {
|
||||
return parent;
|
||||
Long ftPsk = getSingleValueFromSet(row, "ft_psk");
|
||||
if (ftPsk != null) {
|
||||
this.setFtPsk(ftPsk.intValue());
|
||||
}
|
||||
|
||||
public void setParent(String parent) {
|
||||
this.parent = parent;
|
||||
Long ftMobilityDomain = getSingleValueFromSet(row, "ft_mobility_domain");
|
||||
if (ftMobilityDomain != null) {
|
||||
this.setFtMobilityDomain(ftMobilityDomain.intValue());
|
||||
}
|
||||
|
||||
public String getState() {
|
||||
return 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 void setState(String state) {
|
||||
this.state = state;
|
||||
if ((map.get("mode") != null)
|
||||
&& map.get("mode").getClass().equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
|
||||
this.setMode(row.getStringColumn("mode"));
|
||||
}
|
||||
|
||||
public String getMac() {
|
||||
return 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 void setMac(String mac) {
|
||||
this.mac = mac;
|
||||
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 boolean isApBridge() {
|
||||
return apBridge;
|
||||
List<Uuid> associatedClientsList = new ArrayList<>();
|
||||
|
||||
Set<Uuid> clients = row.getSetColumn("associated_clients");
|
||||
associatedClientsList.addAll(clients);
|
||||
|
||||
this.setAssociatedClients(associatedClientsList);
|
||||
|
||||
if (map.get("security") != null) {
|
||||
this.setSecurity(row.getMapColumn("security"));
|
||||
}
|
||||
|
||||
public void setApBridge(boolean apBridge) {
|
||||
this.apBridge = apBridge;
|
||||
if ((map.get("_version") != null)
|
||||
&& map.get("_version").getClass().equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
|
||||
this.setVersion(row.getUuidColumn("_version"));
|
||||
}
|
||||
|
||||
public boolean isUapsdEnable() {
|
||||
return uapsdEnable;
|
||||
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 setUapsdEnable(boolean uapsdEnable) {
|
||||
this.uapsdEnable = uapsdEnable;
|
||||
}
|
||||
|
||||
public boolean isWds() {
|
||||
return wds;
|
||||
}
|
||||
|
||||
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;
|
||||
}
|
||||
|
||||
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;
|
||||
// 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"));
|
||||
}
|
||||
|
||||
public String getModel() {
|
||||
return model;
|
||||
if (map.get("mqtt_headers") != null) {
|
||||
this.setMqttHeaders(row.getMapColumn("mqtt_headers"));
|
||||
}
|
||||
|
||||
public void setModel(String model) {
|
||||
this.model = model;
|
||||
if (map.get("mqtt_topics") != null) {
|
||||
this.setMqttHeaders(row.getMapColumn("mqtt_topics"));
|
||||
}
|
||||
|
||||
public String getSkuNumber() {
|
||||
return skuNumber;
|
||||
if ((map.get("model") != null) && map.get("model").getClass().equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
|
||||
this.setModel(row.getStringColumn("model"));
|
||||
}
|
||||
|
||||
public void setSkuNumber(String skuNumber) {
|
||||
this.skuNumber = skuNumber;
|
||||
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"));
|
||||
}
|
||||
|
||||
public String getId() {
|
||||
return id;
|
||||
if (map.get("id") != null) {
|
||||
this.setId(getSingleValueFromSet(row, "id"));
|
||||
}
|
||||
|
||||
public void setId(String id) {
|
||||
this.id = id;
|
||||
if (map.get("reference_design") != null) {
|
||||
this.setReferenceDesign(row.getStringColumn("reference_design"));
|
||||
}
|
||||
|
||||
public Map<String, String> getVersionMatrix() {
|
||||
return versionMatrix;
|
||||
if (map.get("qr_code") != null) {
|
||||
this.setQrCode(row.getMapColumn("qr_code"));
|
||||
}
|
||||
|
||||
public void setVersionMatrix(Map<String, String> versionMatrix) {
|
||||
this.versionMatrix = versionMatrix;
|
||||
if ((map.get("model_description") != null)) {
|
||||
this.setModelDescription(row.getStringColumn("model_description"));
|
||||
}
|
||||
|
||||
public String getFirmwareVersion() {
|
||||
return firmwareVersion;
|
||||
if ((map.get("manufacturer_url") != null)) {
|
||||
this.setManufacturerUrl(row.getStringColumn("manufacturer_url"));
|
||||
}
|
||||
|
||||
public void setFirmwareVersion(String firmwareVersion) {
|
||||
this.firmwareVersion = firmwareVersion;
|
||||
if ((map.get("manufacturer_name") != null)) {
|
||||
this.setManufacturerName(row.getStringColumn("manufacturer_name"));
|
||||
}
|
||||
|
||||
public String getFirmwareUrl() {
|
||||
return firmwareUrl;
|
||||
if ((map.get("manufacturer_date") != null)) {
|
||||
this.setManufacturerDate(row.getStringColumn("manufacturer_date"));
|
||||
}
|
||||
|
||||
public void setFirmwareUrl(String firmwareUrl) {
|
||||
this.firmwareUrl = firmwareUrl;
|
||||
if (map.get("certification_region") != null) {
|
||||
this.setCertificationRegion(row.getStringColumn("certification_region"));
|
||||
}
|
||||
|
||||
public int getUpgradeDlTimer() {
|
||||
return upgradeDlTimer;
|
||||
if (map.get("version_matrix") != null) {
|
||||
this.setVersionMatrix(row.getMapColumn("version_matrix"));
|
||||
}
|
||||
|
||||
public void setUpgradeDlTimer(int upgradeDlTimer) {
|
||||
this.upgradeDlTimer = upgradeDlTimer;
|
||||
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"));
|
||||
}
|
||||
|
||||
public String getPlatformVersion() {
|
||||
return platformVersion;
|
||||
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"));
|
||||
}
|
||||
|
||||
public void setPlatformVersion(String platformVersion) {
|
||||
this.platformVersion = platformVersion;
|
||||
if ((map.get("_uuid") != null) && map.get("_uuid").getClass().equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
|
||||
this.setVersion(row.getUuidColumn("_uuid"));
|
||||
}
|
||||
|
||||
public String getFirmwarePass() {
|
||||
return firmwarePass;
|
||||
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());
|
||||
}
|
||||
|
||||
public void setFirmwarePass(String firmwarePass) {
|
||||
this.firmwarePass = firmwarePass;
|
||||
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"));
|
||||
}
|
||||
|
||||
public int getUpgradeTimer() {
|
||||
return upgradeTimer;
|
||||
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"));
|
||||
}
|
||||
|
||||
public void setUpgradeTimer(int upgradeTimer) {
|
||||
this.upgradeTimer = upgradeTimer;
|
||||
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());
|
||||
}
|
||||
|
||||
public int getMaxBackoff() {
|
||||
return maxBackoff;
|
||||
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());
|
||||
}
|
||||
|
||||
public void setMaxBackoff(int maxBackoff) {
|
||||
this.maxBackoff = maxBackoff;
|
||||
if (map.get("led_config") != null) {
|
||||
this.setLedConfig(row.getMapColumn("led_config"));
|
||||
}
|
||||
|
||||
public Map<String, String> getLedConfig() {
|
||||
return ledConfig;
|
||||
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"));
|
||||
}
|
||||
|
||||
public void setLedConfig(Map<String, String> ledConfig) {
|
||||
this.ledConfig = ledConfig;
|
||||
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"));
|
||||
}
|
||||
|
||||
public String getRedirectorAddr() {
|
||||
return redirectorAddr;
|
||||
if ((map.get("_version") != null) && map.get("_version").getClass().equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
|
||||
this.setVersion(row.getUuidColumn("_version"));
|
||||
}
|
||||
|
||||
public void setRedirectorAddr(String redirectorAddr) {
|
||||
this.redirectorAddr = redirectorAddr;
|
||||
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"));
|
||||
}
|
||||
|
||||
public Map<String, String> getMqttHeaders() {
|
||||
return mqttHeaders;
|
||||
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());
|
||||
}
|
||||
|
||||
public void setMqttHeaders(Map<String, String> mqttHeaders) {
|
||||
this.mqttHeaders = mqttHeaders;
|
||||
if ((map.get("revision") != null) && map.get("revision").getClass().equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
|
||||
this.setRevision(row.getStringColumn("revision"));
|
||||
}
|
||||
|
||||
public String getSerialNumber() {
|
||||
return serialNumber;
|
||||
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"));
|
||||
}
|
||||
|
||||
public void setSerialNumber(String serialNumber) {
|
||||
this.serialNumber = serialNumber;
|
||||
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 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;
|
||||
}
|
||||
|
||||
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;
|
||||
if ((map.get("mac") != null)
|
||||
&& map.get("mac").getClass().equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
|
||||
this.setMac(row.getStringColumn("mac"));
|
||||
}
|
||||
|
||||
public void setMac(String mac) {
|
||||
this.mac = mac;
|
||||
if (row.getSetColumn("capabilities") != null) {
|
||||
this.setCapabilities(row.getSetColumn("capabilities"));
|
||||
}
|
||||
|
||||
public String getState() {
|
||||
return state;
|
||||
if ((map.get("state") != null)
|
||||
&& map.get("state").getClass().equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
|
||||
this.setState(row.getStringColumn("state"));
|
||||
}
|
||||
|
||||
public void setState(String state) {
|
||||
this.state = state;
|
||||
if ((map.get("_version") != null)
|
||||
&& map.get("_version").getClass().equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
|
||||
this.setVersion(row.getUuidColumn("_version"));
|
||||
}
|
||||
|
||||
public Set<String> getCapabilities() {
|
||||
return capabilities;
|
||||
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 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;
|
||||
}
|
||||
|
||||
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);
|
||||
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,12 +1,12 @@
|
||||
{
|
||||
"model_type": "Equipment",
|
||||
"id": 51,
|
||||
"id": 1,
|
||||
"customerId": 2,
|
||||
"profileId": 5,
|
||||
"profileId": 8,
|
||||
"locationId": 8,
|
||||
"equipmentType": "AP",
|
||||
"inventoryId": "Test_Client_21P10C68818122",
|
||||
"name": "Test_Client_21P10C68818122",
|
||||
"inventoryId": "Open_AP_21P10C68818122",
|
||||
"name": "Open_AP_21P10C68818122",
|
||||
"details": {
|
||||
"model_type": "ApElementConfiguration",
|
||||
"equipmentModel": "EA8300-CA",
|
||||
@@ -21,7 +21,7 @@
|
||||
"staticDnsIp1": null,
|
||||
"staticDnsIp2": null,
|
||||
"peerInfoList": [],
|
||||
"deviceName": "Default Device Name",
|
||||
"deviceName": "Open_AP_21P10C68818122",
|
||||
"locationData": null,
|
||||
"locallyConfiguredMgmtVlan": 0,
|
||||
"locallyConfigured": false,
|
||||
@@ -32,73 +32,246 @@
|
||||
"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,
|
||||
"bannedChannels": [],
|
||||
"allowedChannels": [],
|
||||
"manualBackupChannelNumber": 11,
|
||||
"rxCellSizeDb": {
|
||||
"model_type": "SourceSelectionValue",
|
||||
"source": "auto",
|
||||
"source": "profile",
|
||||
"value": -90
|
||||
},
|
||||
"probeResponseThresholdDb": {
|
||||
"model_type": "SourceSelectionValue",
|
||||
"source": "auto",
|
||||
"source": "profile",
|
||||
"value": -90
|
||||
},
|
||||
"clientDisconnectThresholdDb": {
|
||||
"model_type": "SourceSelectionValue",
|
||||
"source": "auto",
|
||||
"source": "profile",
|
||||
"value": -90
|
||||
},
|
||||
"eirpTxPower": {
|
||||
"model_type": "SourceSelectionValue",
|
||||
"source": "auto",
|
||||
"value": 32
|
||||
"source": "profile",
|
||||
"value": 18
|
||||
},
|
||||
"perimeterDetectionEnabled": true,
|
||||
"bestAPSteerType": "both",
|
||||
"deauthAttackDetection": null,
|
||||
"allowedChannelsPowerLevels": [],
|
||||
"activeChannel": 6
|
||||
"allowedChannelsPowerLevels": [
|
||||
{
|
||||
"model_type": "ChannelPowerLevel",
|
||||
"channelNumber": 1,
|
||||
"powerLevel": 18,
|
||||
"dfs": false,
|
||||
"channelWidth": 20
|
||||
},
|
||||
"is5GHzU": {
|
||||
"model_type": "ElementRadioConfiguration",
|
||||
"radioType": "is5GHzU",
|
||||
"channelNumber": 149,
|
||||
"manualChannelNumber": 149,
|
||||
"backupChannelNumber": 154,
|
||||
"bannedChannels": [],
|
||||
"allowedChannels": [],
|
||||
"rxCellSizeDb": {
|
||||
"model_type": "SourceSelectionValue",
|
||||
"source": "auto",
|
||||
"value": -90
|
||||
{
|
||||
"model_type": "ChannelPowerLevel",
|
||||
"channelNumber": 2,
|
||||
"powerLevel": 18,
|
||||
"dfs": false,
|
||||
"channelWidth": 20
|
||||
},
|
||||
"probeResponseThresholdDb": {
|
||||
"model_type": "SourceSelectionValue",
|
||||
"source": "auto",
|
||||
"value": -90
|
||||
{
|
||||
"model_type": "ChannelPowerLevel",
|
||||
"channelNumber": 3,
|
||||
"powerLevel": 18,
|
||||
"dfs": false,
|
||||
"channelWidth": 20
|
||||
},
|
||||
"clientDisconnectThresholdDb": {
|
||||
"model_type": "SourceSelectionValue",
|
||||
"source": "auto",
|
||||
"value": -90
|
||||
{
|
||||
"model_type": "ChannelPowerLevel",
|
||||
"channelNumber": 4,
|
||||
"powerLevel": 18,
|
||||
"dfs": false,
|
||||
"channelWidth": 20
|
||||
},
|
||||
"eirpTxPower": {
|
||||
"model_type": "SourceSelectionValue",
|
||||
"source": "auto",
|
||||
"value": 32
|
||||
{
|
||||
"model_type": "ChannelPowerLevel",
|
||||
"channelNumber": 5,
|
||||
"powerLevel": 18,
|
||||
"dfs": false,
|
||||
"channelWidth": 20
|
||||
},
|
||||
"perimeterDetectionEnabled": true,
|
||||
"bestAPSteerType": "both",
|
||||
"deauthAttackDetection": null,
|
||||
"allowedChannelsPowerLevels": [],
|
||||
"activeChannel": 149
|
||||
{
|
||||
"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",
|
||||
@@ -106,33 +279,88 @@
|
||||
"channelNumber": 36,
|
||||
"manualChannelNumber": 36,
|
||||
"backupChannelNumber": 44,
|
||||
"bannedChannels": [],
|
||||
"allowedChannels": [],
|
||||
"manualBackupChannelNumber": 44,
|
||||
"rxCellSizeDb": {
|
||||
"model_type": "SourceSelectionValue",
|
||||
"source": "auto",
|
||||
"source": "profile",
|
||||
"value": -90
|
||||
},
|
||||
"probeResponseThresholdDb": {
|
||||
"model_type": "SourceSelectionValue",
|
||||
"source": "auto",
|
||||
"source": "profile",
|
||||
"value": -90
|
||||
},
|
||||
"clientDisconnectThresholdDb": {
|
||||
"model_type": "SourceSelectionValue",
|
||||
"source": "auto",
|
||||
"source": "profile",
|
||||
"value": -90
|
||||
},
|
||||
"eirpTxPower": {
|
||||
"model_type": "SourceSelectionValue",
|
||||
"source": "auto",
|
||||
"value": 32
|
||||
"source": "profile",
|
||||
"value": 18
|
||||
},
|
||||
"perimeterDetectionEnabled": true,
|
||||
"bestAPSteerType": "both",
|
||||
"deauthAttackDetection": null,
|
||||
"allowedChannelsPowerLevels": [],
|
||||
"activeChannel": 36
|
||||
"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
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"advancedRadioMap": {
|
||||
@@ -143,22 +371,28 @@
|
||||
"fragmentationThresholdBytes": 2346,
|
||||
"uapsdState": "enabled",
|
||||
"stationIsolation": "disabled",
|
||||
"multicastRate": {
|
||||
"model_type": "SourceSelectionMulticast",
|
||||
"source": "profile",
|
||||
"value": "auto"
|
||||
},
|
||||
"managementRate": {
|
||||
"model_type": "SourceSelectionManagement",
|
||||
"source": "auto",
|
||||
"source": "profile",
|
||||
"value": "auto"
|
||||
},
|
||||
"bestApSettings": {
|
||||
"model_type": "SourceSelectionSteering",
|
||||
"source": "auto",
|
||||
"source": "manual",
|
||||
"value": {
|
||||
"model_type": "RadioBestApSettings",
|
||||
"mlComputed": true,
|
||||
"dropInSnrPercentage": 30,
|
||||
"minLoadFactor": 40
|
||||
"dropInSnrPercentage": 20,
|
||||
"minLoadFactor": 50
|
||||
}
|
||||
},
|
||||
"legacyBSSRate": "enabled",
|
||||
"dtimPeriod": 2,
|
||||
"deauthAttackDetection": null
|
||||
},
|
||||
"is5GHzU": {
|
||||
@@ -168,14 +402,19 @@
|
||||
"fragmentationThresholdBytes": 2346,
|
||||
"uapsdState": "enabled",
|
||||
"stationIsolation": "disabled",
|
||||
"multicastRate": {
|
||||
"model_type": "SourceSelectionMulticast",
|
||||
"source": "profile",
|
||||
"value": "auto"
|
||||
},
|
||||
"managementRate": {
|
||||
"model_type": "SourceSelectionManagement",
|
||||
"source": "auto",
|
||||
"source": "profile",
|
||||
"value": "auto"
|
||||
},
|
||||
"bestApSettings": {
|
||||
"model_type": "SourceSelectionSteering",
|
||||
"source": "auto",
|
||||
"source": "manual",
|
||||
"value": {
|
||||
"model_type": "RadioBestApSettings",
|
||||
"mlComputed": true,
|
||||
@@ -184,6 +423,7 @@
|
||||
}
|
||||
},
|
||||
"legacyBSSRate": "enabled",
|
||||
"dtimPeriod": 2,
|
||||
"deauthAttackDetection": null
|
||||
},
|
||||
"is5GHzL": {
|
||||
@@ -193,14 +433,19 @@
|
||||
"fragmentationThresholdBytes": 2346,
|
||||
"uapsdState": "enabled",
|
||||
"stationIsolation": "disabled",
|
||||
"multicastRate": {
|
||||
"model_type": "SourceSelectionMulticast",
|
||||
"source": "profile",
|
||||
"value": "auto"
|
||||
},
|
||||
"managementRate": {
|
||||
"model_type": "SourceSelectionManagement",
|
||||
"source": "auto",
|
||||
"source": "profile",
|
||||
"value": "auto"
|
||||
},
|
||||
"bestApSettings": {
|
||||
"model_type": "SourceSelectionSteering",
|
||||
"source": "auto",
|
||||
"source": "manual",
|
||||
"value": {
|
||||
"model_type": "RadioBestApSettings",
|
||||
"mlComputed": true,
|
||||
@@ -209,13 +454,19 @@
|
||||
}
|
||||
},
|
||||
"legacyBSSRate": "enabled",
|
||||
"dtimPeriod": 2,
|
||||
"deauthAttackDetection": null
|
||||
}
|
||||
}
|
||||
},
|
||||
"latitude": null,
|
||||
"longitude": null,
|
||||
"baseMacAddress": {
|
||||
"model_type": "MacAddress",
|
||||
"address": "JPWi7y5T",
|
||||
"addressAsString": "24:f5:a2:ef:2e:53"
|
||||
},
|
||||
"serial": "21P10C68818122",
|
||||
"createdTimestamp": 1591653239821,
|
||||
"lastModifiedTimestamp": 1591653241398
|
||||
"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"
|
||||
"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:30",
|
||||
"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:30",
|
||||
"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:30",
|
||||
"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:30",
|
||||
"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:30",
|
||||
"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:30",
|
||||
"timezone" : "US/Eastern"
|
||||
}
|
||||
"SATURDAY": {
|
||||
"model_type": "LocationActivityDetails",
|
||||
"busyTime": "13:30",
|
||||
"quietTime": "3:00",
|
||||
"timezone": "US/Eastern"
|
||||
}
|
||||
},
|
||||
"createdTimestamp" : 1590607043540,
|
||||
"lastModifiedTimestamp" : 1590607043540
|
||||
"maintenanceWindow": null,
|
||||
"rrmEnabled": true,
|
||||
"timezone": "US/Eastern"
|
||||
},
|
||||
"createdTimestamp": 1612285243534,
|
||||
"lastModifiedTimestamp": 1612285243534
|
||||
}
|
||||
@@ -1,9 +1,9 @@
|
||||
{
|
||||
"model_type": "Profile",
|
||||
"id": 23,
|
||||
"id": 8,
|
||||
"customerId": 2,
|
||||
"profileType": "equipment_ap",
|
||||
"name": "ApProfile-3-radios-passpoint",
|
||||
"name": "ApProfile-3-radios",
|
||||
"details": {
|
||||
"model_type": "ApNetworkConfiguration",
|
||||
"networkConfigVersion": "AP-1",
|
||||
@@ -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,14 +37,22 @@
|
||||
"bestAPSteerType": "both"
|
||||
}
|
||||
},
|
||||
"greTunnelConfigurations": [
|
||||
{
|
||||
"model_type": "GreTunnelConfiguration",
|
||||
"greTunnelName": "gre1",
|
||||
"greRemoteInetAddr": "192.168.1.101",
|
||||
"vlanIdsInGreTunnel": [
|
||||
100
|
||||
]
|
||||
}
|
||||
],
|
||||
"profileType": "equipment_ap"
|
||||
},
|
||||
"createdTimestamp": 1605711197140,
|
||||
"lastModifiedTimestamp": 1605711197140,
|
||||
"createdTimestamp": 1612285248925,
|
||||
"lastModifiedTimestamp": 1612285628377,
|
||||
"childProfileIds": [
|
||||
16,
|
||||
21,
|
||||
22,
|
||||
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",
|
||||
"name": "Default",
|
||||
"browserTitle": "Captive-portal",
|
||||
"headerContent": "Captive Portal",
|
||||
"userAcceptancePolicy": "Use this network at your own risk. No warranty of any kind.",
|
||||
"successPageMarkdownText": "Welcome to the network",
|
||||
"redirectURL": "",
|
||||
"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": 60,
|
||||
"logoFile": null,
|
||||
"backgroundFile": null,
|
||||
"walledGardenAllowlist": [],
|
||||
"usernamePasswordFile": {
|
||||
"sessionTimeoutInMinutes": 10,
|
||||
"logoFile": {
|
||||
"model_type": "ManagedFileInfo",
|
||||
"md5checksum": null,
|
||||
"lastModifiedTimestamp": null,
|
||||
"apExportUrl": "userList",
|
||||
"fileCategory": "UsernamePasswordList",
|
||||
"fileType": "TEXT",
|
||||
"altSlot": true
|
||||
"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": 42,
|
||||
"maxUsersWithSameCredentials": 3,
|
||||
"externalPolicyFile": null,
|
||||
"backgroundPosition": "left_top",
|
||||
"backgroundRepeat": "no_repeat",
|
||||
"radiusServiceName": null,
|
||||
"expiryType": "unlimited",
|
||||
"radiusServiceId": 0,
|
||||
"expiryType": "time_limited",
|
||||
"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"
|
||||
}
|
||||
"macAllowList": [
|
||||
],
|
||||
"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"
|
||||
},
|
||||
"createdTimestamp": 1602183994959,
|
||||
"lastModifiedTimestamp": 1602183994959,
|
||||
"childProfileIds": []
|
||||
}
|
||||
"createdTimestamp": 1611857459118,
|
||||
"lastModifiedTimestamp": 1611857459118,
|
||||
"childProfileIds": [
|
||||
]
|
||||
}
|
||||
]
|
||||
@@ -1,72 +0,0 @@
|
||||
[
|
||||
{
|
||||
"model_type": "Profile",
|
||||
"id": 24,
|
||||
"customerId": 2,
|
||||
"profileType": "passpoint",
|
||||
"name": "TipWlan-Hotspot20-Config",
|
||||
"details": {
|
||||
"model_type": "PasspointProfile",
|
||||
"enableInterworkingAndHs20": true,
|
||||
"hessid": null,
|
||||
"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,
|
||||
"associatedAccessSsidNames": [
|
||||
"TipWlan-cloud-hotspot-access"
|
||||
],
|
||||
"osuSsidName": "TipWlan-cloud-hotspot-osu",
|
||||
"operatorProfileName": "TipWlan-Hotspot20-Operator",
|
||||
"venueProfileName": "TipWlan-Hotspot20-Venue",
|
||||
"idProviderProfileNames": [
|
||||
"TipWlan-Hotspot20-OSU-Provider-2",
|
||||
"TipWlan-Hotspot20-OSU-Provider"
|
||||
],
|
||||
"accessNetworkType": "free_public_network",
|
||||
"networkAuthenticationType": "acceptance_of_terms_and_conditions",
|
||||
"associatedSsids": [
|
||||
"TipWlan-cloud-hotspot-access"
|
||||
],
|
||||
"profileType": "passpoint"
|
||||
},
|
||||
"createdTimestamp": 1605711223339,
|
||||
"lastModifiedTimestamp": 1605711223339,
|
||||
"childProfileIds": [
|
||||
17,
|
||||
18,
|
||||
19,
|
||||
20
|
||||
]
|
||||
}
|
||||
]
|
||||
@@ -1,270 +0,0 @@
|
||||
[
|
||||
{
|
||||
"model_type": "Profile",
|
||||
"id": 19,
|
||||
"customerId": 2,
|
||||
"profileType": "passpoint_osu_id_provider",
|
||||
"name": "TipWlan-Hotspot20-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": 1605711165325,
|
||||
"lastModifiedTimestamp": 1605711165325,
|
||||
"childProfileIds": [
|
||||
]
|
||||
},
|
||||
{
|
||||
"model_type": "Profile",
|
||||
"id": 20,
|
||||
"customerId": 2,
|
||||
"profileType": "passpoint_osu_id_provider",
|
||||
"name": "TipWlan-Hotspot20-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": 1605711165330,
|
||||
"lastModifiedTimestamp": 1605711165330,
|
||||
"childProfileIds": [
|
||||
]
|
||||
}
|
||||
]
|
||||
@@ -1,299 +0,0 @@
|
||||
[
|
||||
{
|
||||
"model_type": "Profile",
|
||||
"id": 22,
|
||||
"customerId": 2,
|
||||
"profileType": "service_metrics_collection_config",
|
||||
"name": "Metrics-Profile-Passpoint",
|
||||
"details": {
|
||||
"model_type": "ServiceMetricsCollectionConfigProfile",
|
||||
"radioTypes": [
|
||||
"is5GHzL",
|
||||
"is2dot4GHz",
|
||||
"is5GHzU"
|
||||
],
|
||||
"serviceMetricDataTypes": [
|
||||
"ApNode",
|
||||
"ApSsid",
|
||||
"Client",
|
||||
"Channel",
|
||||
"Neighbour"
|
||||
],
|
||||
"metricConfigParameterMap": {
|
||||
"ApNode": [
|
||||
{
|
||||
"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": "is5GHzU",
|
||||
"serviceMetricDataType": "ApNode",
|
||||
"statsReportFormat": "RAW"
|
||||
},
|
||||
{
|
||||
"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": 60,
|
||||
"channelSurveyType": "ON_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": "is2dot4GHz",
|
||||
"serviceMetricDataType": "ApNode",
|
||||
"statsReportFormat": "RAW"
|
||||
}
|
||||
],
|
||||
"ApSsid": [
|
||||
{
|
||||
"model_type": "ServiceMetricRadioConfigParameters",
|
||||
"samplingInterval": 30,
|
||||
"reportingIntervalSeconds": 60,
|
||||
"radioType": "is5GHzL",
|
||||
"serviceMetricDataType": "ApSsid"
|
||||
},
|
||||
{
|
||||
"model_type": "ServiceMetricRadioConfigParameters",
|
||||
"samplingInterval": 30,
|
||||
"reportingIntervalSeconds": 60,
|
||||
"radioType": "is2dot4GHz",
|
||||
"serviceMetricDataType": "ApSsid"
|
||||
},
|
||||
{
|
||||
"model_type": "ServiceMetricRadioConfigParameters",
|
||||
"samplingInterval": 30,
|
||||
"reportingIntervalSeconds": 60,
|
||||
"radioType": "is5GHzU",
|
||||
"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": 60,
|
||||
"channelSurveyType": "ON_CHANNEL",
|
||||
"scanIntervalMillis": 0,
|
||||
"percentUtilizationThreshold": 10,
|
||||
"delayMillisecondsThreshold": 600,
|
||||
"radioType": "is2dot4GHz",
|
||||
"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": 60,
|
||||
"channelSurveyType": "ON_CHANNEL",
|
||||
"scanIntervalMillis": 0,
|
||||
"percentUtilizationThreshold": 10,
|
||||
"delayMillisecondsThreshold": 600,
|
||||
"radioType": "is5GHzL",
|
||||
"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": 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": "is2dot4GHz",
|
||||
"serviceMetricDataType": "Channel",
|
||||
"statsReportFormat": "RAW"
|
||||
}
|
||||
],
|
||||
"Neighbour": [
|
||||
{
|
||||
"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": 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": 60,
|
||||
"channelSurveyType": "ON_CHANNEL",
|
||||
"scanIntervalMillis": 0,
|
||||
"percentUtilizationThreshold": 10,
|
||||
"delayMillisecondsThreshold": 600,
|
||||
"radioType": "is2dot4GHz",
|
||||
"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"
|
||||
}
|
||||
]
|
||||
},
|
||||
"profileType": "service_metrics_collection_config"
|
||||
},
|
||||
"createdTimestamp": 1605711195528,
|
||||
"lastModifiedTimestamp": 1605711195528,
|
||||
"childProfileIds": [
|
||||
]
|
||||
}
|
||||
]
|
||||
@@ -1,37 +0,0 @@
|
||||
[
|
||||
{
|
||||
"model_type": "Profile",
|
||||
"id": 17,
|
||||
"customerId": 2,
|
||||
"profileType": "passpoint_operator",
|
||||
"name": "TipWlan-Hotspot20-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": 1605711164952,
|
||||
"lastModifiedTimestamp": 1605711164952,
|
||||
"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,9 +1,9 @@
|
||||
{
|
||||
"model_type": "Profile",
|
||||
"id": 21,
|
||||
"id": 4,
|
||||
"customerId": 2,
|
||||
"profileType": "rf",
|
||||
"name": "TipWlan-rf-passpoint",
|
||||
"name": "TipWlan-rf",
|
||||
"details": {
|
||||
"model_type": "RfConfiguration",
|
||||
"rfConfigMap": {
|
||||
@@ -11,7 +11,7 @@
|
||||
"model_type": "RfElementConfiguration",
|
||||
"radioType": "is5GHz",
|
||||
"radioMode": "modeAC",
|
||||
"rf": "TipWlan-rf-passpoint",
|
||||
"rf": "TipWlan-rf",
|
||||
"beaconInterval": 100,
|
||||
"forceScanDuringVoice": "disabled",
|
||||
"rtsCtsThreshold": 65535,
|
||||
@@ -58,7 +58,7 @@
|
||||
"model_type": "RfElementConfiguration",
|
||||
"radioType": "is2dot4GHz",
|
||||
"radioMode": "modeN",
|
||||
"rf": "TipWlan-rf-passpoint",
|
||||
"rf": "TipWlan-rf",
|
||||
"beaconInterval": 100,
|
||||
"forceScanDuringVoice": "disabled",
|
||||
"rtsCtsThreshold": 65535,
|
||||
@@ -105,7 +105,7 @@
|
||||
"model_type": "RfElementConfiguration",
|
||||
"radioType": "is5GHzU",
|
||||
"radioMode": "modeAC",
|
||||
"rf": "TipWlan-rf-passpoint",
|
||||
"rf": "TipWlan-rf",
|
||||
"beaconInterval": 100,
|
||||
"forceScanDuringVoice": "disabled",
|
||||
"rtsCtsThreshold": 65535,
|
||||
@@ -152,7 +152,7 @@
|
||||
"model_type": "RfElementConfiguration",
|
||||
"radioType": "is5GHzL",
|
||||
"radioMode": "modeAC",
|
||||
"rf": "TipWlan-rf-passpoint",
|
||||
"rf": "TipWlan-rf",
|
||||
"beaconInterval": 100,
|
||||
"forceScanDuringVoice": "disabled",
|
||||
"rtsCtsThreshold": 65535,
|
||||
@@ -198,8 +198,7 @@
|
||||
},
|
||||
"profileType": "rf"
|
||||
},
|
||||
"createdTimestamp": 1605711191976,
|
||||
"lastModifiedTimestamp": 1605711191976,
|
||||
"childProfileIds": [
|
||||
]
|
||||
"createdTimestamp": 1612285248650,
|
||||
"lastModifiedTimestamp": 1612285248650,
|
||||
"childProfileIds": []
|
||||
}
|
||||
@@ -1,26 +1,27 @@
|
||||
[
|
||||
{
|
||||
{
|
||||
"model_type": "Profile",
|
||||
"id": 15,
|
||||
"id": 2,
|
||||
"customerId": 2,
|
||||
"profileType": "ssid",
|
||||
"name": "TipWlan-cloud-hotspot-access",
|
||||
"name": "TipWlan-cloud-3-radios",
|
||||
"details": {
|
||||
"model_type": "SsidConfiguration",
|
||||
"ssid": "TipWlan-cloud-hotspot-access",
|
||||
"ssid": "TipWlan-cloud-3-radios",
|
||||
"appliedRadios": [
|
||||
"is5GHzL",
|
||||
"is5GHzU"
|
||||
"is5GHzU",
|
||||
"is2dot4GHz",
|
||||
"is5GHzL"
|
||||
],
|
||||
"ssidAdminState": "enabled",
|
||||
"secureMode": "wpa2PSK",
|
||||
"secureMode": "wpa2OnlyPSK",
|
||||
"vlanId": 1,
|
||||
"keyStr": "testing123",
|
||||
"keyStr": "openwifi",
|
||||
"broadcastSsid": "enabled",
|
||||
"keyRefresh": 0,
|
||||
"noLocalSubnets": false,
|
||||
"radiusServiceName": null,
|
||||
"radiusAccountingServiceName": null,
|
||||
"radiusServiceId": 0,
|
||||
"radiusAcountingServiceInterval": 60,
|
||||
"captivePortalId": null,
|
||||
"bandwidthLimitDown": 0,
|
||||
"bandwidthLimitUp": 0,
|
||||
@@ -28,7 +29,7 @@
|
||||
"clientBandwidthLimitUp": 0,
|
||||
"videoTrafficOnly": false,
|
||||
"radioBasedConfigs": {
|
||||
"is5GHz": {
|
||||
"is5GHzU": {
|
||||
"model_type": "RadioBasedSsidConfiguration",
|
||||
"enable80211r": null,
|
||||
"enable80211k": null,
|
||||
@@ -40,7 +41,7 @@
|
||||
"enable80211k": null,
|
||||
"enable80211v": null
|
||||
},
|
||||
"is5GHzU": {
|
||||
"is5GHz": {
|
||||
"model_type": "RadioBasedSsidConfiguration",
|
||||
"enable80211r": null,
|
||||
"enable80211k": null,
|
||||
@@ -56,79 +57,19 @@
|
||||
"bonjourGatewayProfileId": null,
|
||||
"enable80211w": null,
|
||||
"wepConfig": null,
|
||||
"forwardMode": null,
|
||||
"profileType": "ssid"
|
||||
},
|
||||
"createdTimestamp": 1605711164949,
|
||||
"lastModifiedTimestamp": 1605711223372,
|
||||
"childProfileIds": [
|
||||
24
|
||||
]
|
||||
},
|
||||
{
|
||||
"model_type": "Profile",
|
||||
"id": 16,
|
||||
"customerId": 2,
|
||||
"forwardMode": "BRIDGE",
|
||||
"profileType": "ssid",
|
||||
"name": "TipWlan-cloud-hotspot-osu",
|
||||
"details": {
|
||||
"model_type": "SsidConfiguration",
|
||||
"ssid": "TipWlan-cloud-hotspot-osu",
|
||||
"appliedRadios": [
|
||||
"is2dot4GHz"
|
||||
],
|
||||
"ssidAdminState": "enabled",
|
||||
"secureMode": "open",
|
||||
"vlanId": 1,
|
||||
"keyStr": null,
|
||||
"broadcastSsid": "enabled",
|
||||
"keyRefresh": 0,
|
||||
"noLocalSubnets": false,
|
||||
"radiusServiceName": null,
|
||||
"radiusAccountingServiceName": null,
|
||||
"captivePortalId": null,
|
||||
"bandwidthLimitDown": 0,
|
||||
"bandwidthLimitUp": 0,
|
||||
"clientBandwidthLimitDown": 0,
|
||||
"clientBandwidthLimitUp": 0,
|
||||
"videoTrafficOnly": false,
|
||||
"radioBasedConfigs": {
|
||||
"is5GHz": {
|
||||
"model_type": "RadioBasedSsidConfiguration",
|
||||
"enable80211r": null,
|
||||
"enable80211k": null,
|
||||
"enable80211v": null
|
||||
},
|
||||
"is2dot4GHz": {
|
||||
"model_type": "RadioBasedSsidConfiguration",
|
||||
"enable80211r": null,
|
||||
"enable80211k": null,
|
||||
"enable80211v": null
|
||||
},
|
||||
"is5GHzU": {
|
||||
"model_type": "RadioBasedSsidConfiguration",
|
||||
"enable80211r": null,
|
||||
"enable80211k": null,
|
||||
"enable80211v": null
|
||||
},
|
||||
"is5GHzL": {
|
||||
"model_type": "RadioBasedSsidConfiguration",
|
||||
"enable80211r": null,
|
||||
"enable80211k": null,
|
||||
"enable80211v": null
|
||||
"radiusClientConfiguration": {
|
||||
"model_type": "RadiusNasConfiguration",
|
||||
"nasClientId": "DEFAULT",
|
||||
"nasClientIp": "WAN_IP",
|
||||
"userDefinedNasId": null,
|
||||
"userDefinedNasIp": null,
|
||||
"operatorId": null
|
||||
}
|
||||
},
|
||||
"bonjourGatewayProfileId": null,
|
||||
"enable80211w": null,
|
||||
"wepConfig": null,
|
||||
"forwardMode": null,
|
||||
"profileType": "ssid"
|
||||
},
|
||||
"createdTimestamp": 1605711164950,
|
||||
"lastModifiedTimestamp": 1605711171732,
|
||||
"childProfileIds": [
|
||||
19,
|
||||
20
|
||||
]
|
||||
}
|
||||
"createdTimestamp": 1612285248638,
|
||||
"lastModifiedTimestamp": 1612285248638,
|
||||
"childProfileIds": []
|
||||
}
|
||||
]
|
||||
|
||||
@@ -1,43 +0,0 @@
|
||||
[
|
||||
{
|
||||
"model_type": "Profile",
|
||||
"id": 18,
|
||||
"customerId": 2,
|
||||
"profileType": "passpoint_venue",
|
||||
"name": "TipWlan-Hotspot20-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": "ProfileVenueTypeAssignment",
|
||||
"venueDescription": "Research and Development Facility",
|
||||
"venueGroupId": 2,
|
||||
"venueTypeId": 8
|
||||
},
|
||||
"profileType": "passpoint_venue"
|
||||
},
|
||||
"createdTimestamp": 1605711164956,
|
||||
"lastModifiedTimestamp": 1605711164956,
|
||||
"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
|
||||
|
||||
@@ -7,6 +7,7 @@
|
||||
<listEntry value="1"/>
|
||||
</listAttribute>
|
||||
<booleanAttribute key="org.eclipse.jdt.launching.ATTR_EXCLUDE_TEST_CODE" value="true"/>
|
||||
<booleanAttribute key="org.eclipse.jdt.launching.ATTR_SHOW_CODEDETAILS_IN_EXCEPTION_MESSAGES" value="true"/>
|
||||
<booleanAttribute key="org.eclipse.jdt.launching.ATTR_USE_CLASSPATH_ONLY_JAR" value="false"/>
|
||||
<booleanAttribute key="org.eclipse.jdt.launching.ATTR_USE_START_ON_FIRST_THREAD" value="true"/>
|
||||
<listAttribute key="org.eclipse.jdt.launching.CLASSPATH">
|
||||
|
||||
@@ -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,12 +1,12 @@
|
||||
{
|
||||
"model_type": "Equipment",
|
||||
"id": 51,
|
||||
"id": 1,
|
||||
"customerId": 2,
|
||||
"profileId": 5,
|
||||
"profileId": 8,
|
||||
"locationId": 8,
|
||||
"equipmentType": "AP",
|
||||
"inventoryId": "Test_Client_21P10C68818122",
|
||||
"name": "Test_Client_21P10C68818122",
|
||||
"inventoryId": "Open_AP_21P10C68818122",
|
||||
"name": "Open_AP_21P10C68818122",
|
||||
"details": {
|
||||
"model_type": "ApElementConfiguration",
|
||||
"equipmentModel": "EA8300-CA",
|
||||
@@ -21,7 +21,7 @@
|
||||
"staticDnsIp1": null,
|
||||
"staticDnsIp2": null,
|
||||
"peerInfoList": [],
|
||||
"deviceName": "Default Device Name",
|
||||
"deviceName": "Open_AP_21P10C68818122",
|
||||
"locationData": null,
|
||||
"locallyConfiguredMgmtVlan": 0,
|
||||
"locallyConfigured": false,
|
||||
@@ -32,73 +32,246 @@
|
||||
"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,
|
||||
"bannedChannels": [],
|
||||
"allowedChannels": [],
|
||||
"manualBackupChannelNumber": 11,
|
||||
"rxCellSizeDb": {
|
||||
"model_type": "SourceSelectionValue",
|
||||
"source": "auto",
|
||||
"source": "profile",
|
||||
"value": -90
|
||||
},
|
||||
"probeResponseThresholdDb": {
|
||||
"model_type": "SourceSelectionValue",
|
||||
"source": "auto",
|
||||
"source": "profile",
|
||||
"value": -90
|
||||
},
|
||||
"clientDisconnectThresholdDb": {
|
||||
"model_type": "SourceSelectionValue",
|
||||
"source": "auto",
|
||||
"source": "profile",
|
||||
"value": -90
|
||||
},
|
||||
"eirpTxPower": {
|
||||
"model_type": "SourceSelectionValue",
|
||||
"source": "auto",
|
||||
"value": 32
|
||||
"source": "profile",
|
||||
"value": 18
|
||||
},
|
||||
"perimeterDetectionEnabled": true,
|
||||
"bestAPSteerType": "both",
|
||||
"deauthAttackDetection": null,
|
||||
"allowedChannelsPowerLevels": [],
|
||||
"activeChannel": 6
|
||||
"allowedChannelsPowerLevels": [
|
||||
{
|
||||
"model_type": "ChannelPowerLevel",
|
||||
"channelNumber": 1,
|
||||
"powerLevel": 18,
|
||||
"dfs": false,
|
||||
"channelWidth": 20
|
||||
},
|
||||
"is5GHzU": {
|
||||
"model_type": "ElementRadioConfiguration",
|
||||
"radioType": "is5GHzU",
|
||||
"channelNumber": 149,
|
||||
"manualChannelNumber": 149,
|
||||
"backupChannelNumber": 154,
|
||||
"bannedChannels": [],
|
||||
"allowedChannels": [],
|
||||
"rxCellSizeDb": {
|
||||
"model_type": "SourceSelectionValue",
|
||||
"source": "auto",
|
||||
"value": -90
|
||||
{
|
||||
"model_type": "ChannelPowerLevel",
|
||||
"channelNumber": 2,
|
||||
"powerLevel": 18,
|
||||
"dfs": false,
|
||||
"channelWidth": 20
|
||||
},
|
||||
"probeResponseThresholdDb": {
|
||||
"model_type": "SourceSelectionValue",
|
||||
"source": "auto",
|
||||
"value": -90
|
||||
{
|
||||
"model_type": "ChannelPowerLevel",
|
||||
"channelNumber": 3,
|
||||
"powerLevel": 18,
|
||||
"dfs": false,
|
||||
"channelWidth": 20
|
||||
},
|
||||
"clientDisconnectThresholdDb": {
|
||||
"model_type": "SourceSelectionValue",
|
||||
"source": "auto",
|
||||
"value": -90
|
||||
{
|
||||
"model_type": "ChannelPowerLevel",
|
||||
"channelNumber": 4,
|
||||
"powerLevel": 18,
|
||||
"dfs": false,
|
||||
"channelWidth": 20
|
||||
},
|
||||
"eirpTxPower": {
|
||||
"model_type": "SourceSelectionValue",
|
||||
"source": "auto",
|
||||
"value": 32
|
||||
{
|
||||
"model_type": "ChannelPowerLevel",
|
||||
"channelNumber": 5,
|
||||
"powerLevel": 18,
|
||||
"dfs": false,
|
||||
"channelWidth": 20
|
||||
},
|
||||
"perimeterDetectionEnabled": true,
|
||||
"bestAPSteerType": "both",
|
||||
"deauthAttackDetection": null,
|
||||
"allowedChannelsPowerLevels": [],
|
||||
"activeChannel": 149
|
||||
{
|
||||
"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",
|
||||
@@ -106,33 +279,88 @@
|
||||
"channelNumber": 36,
|
||||
"manualChannelNumber": 36,
|
||||
"backupChannelNumber": 44,
|
||||
"bannedChannels": [],
|
||||
"allowedChannels": [],
|
||||
"manualBackupChannelNumber": 44,
|
||||
"rxCellSizeDb": {
|
||||
"model_type": "SourceSelectionValue",
|
||||
"source": "auto",
|
||||
"source": "profile",
|
||||
"value": -90
|
||||
},
|
||||
"probeResponseThresholdDb": {
|
||||
"model_type": "SourceSelectionValue",
|
||||
"source": "auto",
|
||||
"source": "profile",
|
||||
"value": -90
|
||||
},
|
||||
"clientDisconnectThresholdDb": {
|
||||
"model_type": "SourceSelectionValue",
|
||||
"source": "auto",
|
||||
"source": "profile",
|
||||
"value": -90
|
||||
},
|
||||
"eirpTxPower": {
|
||||
"model_type": "SourceSelectionValue",
|
||||
"source": "auto",
|
||||
"value": 32
|
||||
"source": "profile",
|
||||
"value": 18
|
||||
},
|
||||
"perimeterDetectionEnabled": true,
|
||||
"bestAPSteerType": "both",
|
||||
"deauthAttackDetection": null,
|
||||
"allowedChannelsPowerLevels": [],
|
||||
"activeChannel": 36
|
||||
"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
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"advancedRadioMap": {
|
||||
@@ -143,22 +371,28 @@
|
||||
"fragmentationThresholdBytes": 2346,
|
||||
"uapsdState": "enabled",
|
||||
"stationIsolation": "disabled",
|
||||
"multicastRate": {
|
||||
"model_type": "SourceSelectionMulticast",
|
||||
"source": "profile",
|
||||
"value": "auto"
|
||||
},
|
||||
"managementRate": {
|
||||
"model_type": "SourceSelectionManagement",
|
||||
"source": "auto",
|
||||
"source": "profile",
|
||||
"value": "auto"
|
||||
},
|
||||
"bestApSettings": {
|
||||
"model_type": "SourceSelectionSteering",
|
||||
"source": "auto",
|
||||
"source": "manual",
|
||||
"value": {
|
||||
"model_type": "RadioBestApSettings",
|
||||
"mlComputed": true,
|
||||
"dropInSnrPercentage": 30,
|
||||
"minLoadFactor": 40
|
||||
"dropInSnrPercentage": 20,
|
||||
"minLoadFactor": 50
|
||||
}
|
||||
},
|
||||
"legacyBSSRate": "enabled",
|
||||
"dtimPeriod": 2,
|
||||
"deauthAttackDetection": null
|
||||
},
|
||||
"is5GHzU": {
|
||||
@@ -168,14 +402,19 @@
|
||||
"fragmentationThresholdBytes": 2346,
|
||||
"uapsdState": "enabled",
|
||||
"stationIsolation": "disabled",
|
||||
"multicastRate": {
|
||||
"model_type": "SourceSelectionMulticast",
|
||||
"source": "profile",
|
||||
"value": "auto"
|
||||
},
|
||||
"managementRate": {
|
||||
"model_type": "SourceSelectionManagement",
|
||||
"source": "auto",
|
||||
"source": "profile",
|
||||
"value": "auto"
|
||||
},
|
||||
"bestApSettings": {
|
||||
"model_type": "SourceSelectionSteering",
|
||||
"source": "auto",
|
||||
"source": "manual",
|
||||
"value": {
|
||||
"model_type": "RadioBestApSettings",
|
||||
"mlComputed": true,
|
||||
@@ -184,6 +423,7 @@
|
||||
}
|
||||
},
|
||||
"legacyBSSRate": "enabled",
|
||||
"dtimPeriod": 2,
|
||||
"deauthAttackDetection": null
|
||||
},
|
||||
"is5GHzL": {
|
||||
@@ -193,14 +433,19 @@
|
||||
"fragmentationThresholdBytes": 2346,
|
||||
"uapsdState": "enabled",
|
||||
"stationIsolation": "disabled",
|
||||
"multicastRate": {
|
||||
"model_type": "SourceSelectionMulticast",
|
||||
"source": "profile",
|
||||
"value": "auto"
|
||||
},
|
||||
"managementRate": {
|
||||
"model_type": "SourceSelectionManagement",
|
||||
"source": "auto",
|
||||
"source": "profile",
|
||||
"value": "auto"
|
||||
},
|
||||
"bestApSettings": {
|
||||
"model_type": "SourceSelectionSteering",
|
||||
"source": "auto",
|
||||
"source": "manual",
|
||||
"value": {
|
||||
"model_type": "RadioBestApSettings",
|
||||
"mlComputed": true,
|
||||
@@ -209,13 +454,19 @@
|
||||
}
|
||||
},
|
||||
"legacyBSSRate": "enabled",
|
||||
"dtimPeriod": 2,
|
||||
"deauthAttackDetection": null
|
||||
}
|
||||
}
|
||||
},
|
||||
"latitude": null,
|
||||
"longitude": null,
|
||||
"baseMacAddress": {
|
||||
"model_type": "MacAddress",
|
||||
"address": "JPWi7y5T",
|
||||
"addressAsString": "24:f5:a2:ef:2e:53"
|
||||
},
|
||||
"serial": "21P10C68818122",
|
||||
"createdTimestamp": 1591653239821,
|
||||
"lastModifiedTimestamp": 1591653241398
|
||||
"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"
|
||||
"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:30",
|
||||
"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:30",
|
||||
"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:30",
|
||||
"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:30",
|
||||
"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:30",
|
||||
"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:30",
|
||||
"timezone" : "US/Eastern"
|
||||
}
|
||||
"SATURDAY": {
|
||||
"model_type": "LocationActivityDetails",
|
||||
"busyTime": "13:30",
|
||||
"quietTime": "3:00",
|
||||
"timezone": "US/Eastern"
|
||||
}
|
||||
},
|
||||
"createdTimestamp" : 1590607043540,
|
||||
"lastModifiedTimestamp" : 1590607043540
|
||||
"maintenanceWindow": null,
|
||||
"rrmEnabled": true,
|
||||
"timezone": "US/Eastern"
|
||||
},
|
||||
"createdTimestamp": 1612285243534,
|
||||
"lastModifiedTimestamp": 1612285243534
|
||||
}
|
||||
@@ -1,9 +1,9 @@
|
||||
{
|
||||
"model_type": "Profile",
|
||||
"id": 23,
|
||||
"id": 8,
|
||||
"customerId": 2,
|
||||
"profileType": "equipment_ap",
|
||||
"name": "ApProfile-3-radios-passpoint",
|
||||
"name": "ApProfile-3-radios",
|
||||
"details": {
|
||||
"model_type": "ApNetworkConfiguration",
|
||||
"networkConfigVersion": "AP-1",
|
||||
@@ -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,14 +37,22 @@
|
||||
"bestAPSteerType": "both"
|
||||
}
|
||||
},
|
||||
"greTunnelConfigurations": [
|
||||
{
|
||||
"model_type": "GreTunnelConfiguration",
|
||||
"greTunnelName": "gre1",
|
||||
"greRemoteInetAddr": "192.168.1.101",
|
||||
"vlanIdsInGreTunnel": [
|
||||
100
|
||||
]
|
||||
}
|
||||
],
|
||||
"profileType": "equipment_ap"
|
||||
},
|
||||
"createdTimestamp": 1605711197140,
|
||||
"lastModifiedTimestamp": 1605711197140,
|
||||
"createdTimestamp": 1612285248925,
|
||||
"lastModifiedTimestamp": 1612285628377,
|
||||
"childProfileIds": [
|
||||
16,
|
||||
21,
|
||||
22,
|
||||
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",
|
||||
"name": "Default",
|
||||
"browserTitle": "Captive-portal",
|
||||
"headerContent": "Captive Portal",
|
||||
"userAcceptancePolicy": "Use this network at your own risk. No warranty of any kind.",
|
||||
"successPageMarkdownText": "Welcome to the network",
|
||||
"redirectURL": "",
|
||||
"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": 60,
|
||||
"logoFile": null,
|
||||
"backgroundFile": null,
|
||||
"walledGardenAllowlist": [],
|
||||
"usernamePasswordFile": {
|
||||
"sessionTimeoutInMinutes": 10,
|
||||
"logoFile": {
|
||||
"model_type": "ManagedFileInfo",
|
||||
"md5checksum": null,
|
||||
"lastModifiedTimestamp": null,
|
||||
"apExportUrl": "userList",
|
||||
"fileCategory": "UsernamePasswordList",
|
||||
"fileType": "TEXT",
|
||||
"altSlot": true
|
||||
"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": 42,
|
||||
"maxUsersWithSameCredentials": 3,
|
||||
"externalPolicyFile": null,
|
||||
"backgroundPosition": "left_top",
|
||||
"backgroundRepeat": "no_repeat",
|
||||
"radiusServiceName": null,
|
||||
"expiryType": "unlimited",
|
||||
"radiusServiceId": 0,
|
||||
"expiryType": "time_limited",
|
||||
"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"
|
||||
}
|
||||
"macAllowList": [
|
||||
],
|
||||
"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"
|
||||
},
|
||||
"createdTimestamp": 1602183994959,
|
||||
"lastModifiedTimestamp": 1602183994959,
|
||||
"childProfileIds": []
|
||||
}
|
||||
"createdTimestamp": 1611857459118,
|
||||
"lastModifiedTimestamp": 1611857459118,
|
||||
"childProfileIds": [
|
||||
]
|
||||
}
|
||||
]
|
||||
@@ -1,14 +1,16 @@
|
||||
[
|
||||
{
|
||||
"model_type": "Profile",
|
||||
"id": 24,
|
||||
"id": 37,
|
||||
"customerId": 2,
|
||||
"profileType": "passpoint",
|
||||
"name": "TipWlan-Hotspot20-Config",
|
||||
"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,
|
||||
@@ -43,30 +45,27 @@
|
||||
"disableDownstreamGroupAddressedForwarding": false,
|
||||
"enable2pt4GHz": true,
|
||||
"enable5GHz": true,
|
||||
"associatedAccessSsidNames": [
|
||||
"TipWlan-cloud-hotspot-access"
|
||||
"associatedAccessSsidProfileIds": [
|
||||
32
|
||||
],
|
||||
"osuSsidName": "TipWlan-cloud-hotspot-osu",
|
||||
"operatorProfileName": "TipWlan-Hotspot20-Operator",
|
||||
"venueProfileName": "TipWlan-Hotspot20-Venue",
|
||||
"idProviderProfileNames": [
|
||||
"TipWlan-Hotspot20-OSU-Provider-2",
|
||||
"TipWlan-Hotspot20-OSU-Provider"
|
||||
"osuSsidProfileId": 31,
|
||||
"passpointOperatorProfileId": 34,
|
||||
"passpointVenueProfileId": 33,
|
||||
"passpointOsuProviderProfileIds": [
|
||||
35,
|
||||
36
|
||||
],
|
||||
"accessNetworkType": "free_public_network",
|
||||
"networkAuthenticationType": "acceptance_of_terms_and_conditions",
|
||||
"associatedSsids": [
|
||||
"TipWlan-cloud-hotspot-access"
|
||||
],
|
||||
"profileType": "passpoint"
|
||||
},
|
||||
"createdTimestamp": 1605711223339,
|
||||
"lastModifiedTimestamp": 1605711223339,
|
||||
"createdTimestamp": 0,
|
||||
"lastModifiedTimestamp": 1611264539331,
|
||||
"childProfileIds": [
|
||||
17,
|
||||
18,
|
||||
19,
|
||||
20
|
||||
33,
|
||||
34,
|
||||
35,
|
||||
36
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
|
||||
@@ -1,13 +1,12 @@
|
||||
[
|
||||
{
|
||||
"model_type": "Profile",
|
||||
"id": 19,
|
||||
"id": 35,
|
||||
"customerId": 2,
|
||||
"profileType": "passpoint_osu_id_provider",
|
||||
"name": "TipWlan-Hotspot20-OSU-Provider",
|
||||
"name": "provider1-profile-2021-01-21T21:28:59.057Z",
|
||||
"details": {
|
||||
"model_type": "PasspointOsuProviderProfile",
|
||||
"domainName": "rogers.com",
|
||||
"mccMncList": [
|
||||
{
|
||||
"model_type": "PasspointMccMnc",
|
||||
@@ -81,7 +80,7 @@
|
||||
"osuFriendlyName": [
|
||||
{
|
||||
"model_type": "PasspointDuple",
|
||||
"locale": "en_CA",
|
||||
"locale": "eng",
|
||||
"dupleIso3Language": "eng",
|
||||
"dupleName": "Example provider rogers",
|
||||
"defaultDupleSeparator": ":",
|
||||
@@ -89,7 +88,7 @@
|
||||
},
|
||||
{
|
||||
"model_type": "PasspointDuple",
|
||||
"locale": "fr_CA",
|
||||
"locale": "fra",
|
||||
"dupleIso3Language": "fra",
|
||||
"dupleName": "Exemple de fournisseur rogers",
|
||||
"defaultDupleSeparator": ":",
|
||||
@@ -105,7 +104,7 @@
|
||||
"osuServiceDescription": [
|
||||
{
|
||||
"model_type": "PasspointDuple",
|
||||
"locale": "en_CA",
|
||||
"locale": "eng",
|
||||
"dupleIso3Language": "eng",
|
||||
"dupleName": "Example services rogers",
|
||||
"defaultDupleSeparator": ":",
|
||||
@@ -113,7 +112,7 @@
|
||||
},
|
||||
{
|
||||
"model_type": "PasspointDuple",
|
||||
"locale": "fr_CA",
|
||||
"locale": "fra",
|
||||
"dupleIso3Language": "fra",
|
||||
"dupleName": "Exemples de services rogers",
|
||||
"defaultDupleSeparator": ":",
|
||||
@@ -121,27 +120,23 @@
|
||||
}
|
||||
],
|
||||
"roamingOi": [
|
||||
1,
|
||||
2,
|
||||
3,
|
||||
4
|
||||
"BAA2D00100",
|
||||
"BAA2D00000"
|
||||
],
|
||||
"profileType": "passpoint_osu_id_provider"
|
||||
},
|
||||
"createdTimestamp": 1605711165325,
|
||||
"lastModifiedTimestamp": 1605711165325,
|
||||
"childProfileIds": [
|
||||
]
|
||||
"createdTimestamp": 1611264539070,
|
||||
"lastModifiedTimestamp": 1611264539070,
|
||||
"childProfileIds": []
|
||||
},
|
||||
{
|
||||
"model_type": "Profile",
|
||||
"id": 20,
|
||||
"id": 36,
|
||||
"customerId": 2,
|
||||
"profileType": "passpoint_osu_id_provider",
|
||||
"name": "TipWlan-Hotspot20-OSU-Provider-2",
|
||||
"name": "provider2-profile-2021-01-21T21:28:59.118Z",
|
||||
"details": {
|
||||
"model_type": "PasspointOsuProviderProfile",
|
||||
"domainName": "telus.com",
|
||||
"mccMncList": [
|
||||
{
|
||||
"model_type": "PasspointMccMnc",
|
||||
@@ -215,7 +210,7 @@
|
||||
"osuFriendlyName": [
|
||||
{
|
||||
"model_type": "PasspointDuple",
|
||||
"locale": "en_CA",
|
||||
"locale": "eng",
|
||||
"dupleIso3Language": "eng",
|
||||
"dupleName": "Example provider telus",
|
||||
"defaultDupleSeparator": ":",
|
||||
@@ -223,7 +218,7 @@
|
||||
},
|
||||
{
|
||||
"model_type": "PasspointDuple",
|
||||
"locale": "fr_CA",
|
||||
"locale": "fra",
|
||||
"dupleIso3Language": "fra",
|
||||
"dupleName": "Exemple de fournisseur telus",
|
||||
"defaultDupleSeparator": ":",
|
||||
@@ -239,7 +234,7 @@
|
||||
"osuServiceDescription": [
|
||||
{
|
||||
"model_type": "PasspointDuple",
|
||||
"locale": "en_CA",
|
||||
"locale": "eng",
|
||||
"dupleIso3Language": "eng",
|
||||
"dupleName": "Example services telus",
|
||||
"defaultDupleSeparator": ":",
|
||||
@@ -247,7 +242,7 @@
|
||||
},
|
||||
{
|
||||
"model_type": "PasspointDuple",
|
||||
"locale": "fr_CA",
|
||||
"locale": "fra",
|
||||
"dupleIso3Language": "fra",
|
||||
"dupleName": "Exemples de services telus",
|
||||
"defaultDupleSeparator": ":",
|
||||
@@ -255,16 +250,14 @@
|
||||
}
|
||||
],
|
||||
"roamingOi": [
|
||||
1,
|
||||
2,
|
||||
3,
|
||||
4
|
||||
"004096",
|
||||
"005014",
|
||||
"F4F5E8F5F4"
|
||||
],
|
||||
"profileType": "passpoint_osu_id_provider"
|
||||
},
|
||||
"createdTimestamp": 1605711165330,
|
||||
"lastModifiedTimestamp": 1605711165330,
|
||||
"childProfileIds": [
|
||||
]
|
||||
"createdTimestamp": 1611264539131,
|
||||
"lastModifiedTimestamp": 1611264539131,
|
||||
"childProfileIds": []
|
||||
}
|
||||
]
|
||||
@@ -1,10 +1,10 @@
|
||||
[
|
||||
{
|
||||
"model_type": "Profile",
|
||||
"id": 22,
|
||||
"id": 10,
|
||||
"customerId": 2,
|
||||
"profileType": "service_metrics_collection_config",
|
||||
"name": "Metrics-Profile-Passpoint",
|
||||
"name": "Metrics-Profile-3-Radios",
|
||||
"details": {
|
||||
"model_type": "ServiceMetricsCollectionConfigProfile",
|
||||
"radioTypes": [
|
||||
@@ -21,30 +21,6 @@
|
||||
],
|
||||
"metricConfigParameterMap": {
|
||||
"ApNode": [
|
||||
{
|
||||
"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": "is5GHzU",
|
||||
"serviceMetricDataType": "ApNode",
|
||||
"statsReportFormat": "RAW"
|
||||
},
|
||||
{
|
||||
"model_type": "ServiceMetricSurveyConfigParameters",
|
||||
"samplingInterval": 30,
|
||||
@@ -69,18 +45,6 @@
|
||||
"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"
|
||||
},
|
||||
{
|
||||
"model_type": "ServiceMetricSurveyConfigParameters",
|
||||
"samplingInterval": 30,
|
||||
@@ -92,9 +56,52 @@
|
||||
"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,
|
||||
@@ -108,13 +115,6 @@
|
||||
"reportingIntervalSeconds": 60,
|
||||
"radioType": "is2dot4GHz",
|
||||
"serviceMetricDataType": "ApSsid"
|
||||
},
|
||||
{
|
||||
"model_type": "ServiceMetricRadioConfigParameters",
|
||||
"samplingInterval": 30,
|
||||
"reportingIntervalSeconds": 60,
|
||||
"radioType": "is5GHzU",
|
||||
"serviceMetricDataType": "ApSsid"
|
||||
}
|
||||
],
|
||||
"Client": [
|
||||
@@ -144,12 +144,12 @@
|
||||
{
|
||||
"model_type": "ServiceMetricSurveyConfigParameters",
|
||||
"samplingInterval": 30,
|
||||
"reportingIntervalSeconds": 60,
|
||||
"channelSurveyType": "ON_CHANNEL",
|
||||
"reportingIntervalSeconds": 120,
|
||||
"channelSurveyType": "OFF_CHANNEL",
|
||||
"scanIntervalMillis": 0,
|
||||
"percentUtilizationThreshold": 10,
|
||||
"delayMillisecondsThreshold": 600,
|
||||
"radioType": "is2dot4GHz",
|
||||
"radioType": "is5GHzL",
|
||||
"serviceMetricDataType": "Channel",
|
||||
"statsReportFormat": "RAW"
|
||||
},
|
||||
@@ -168,12 +168,12 @@
|
||||
{
|
||||
"model_type": "ServiceMetricSurveyConfigParameters",
|
||||
"samplingInterval": 30,
|
||||
"reportingIntervalSeconds": 60,
|
||||
"channelSurveyType": "ON_CHANNEL",
|
||||
"reportingIntervalSeconds": 120,
|
||||
"channelSurveyType": "OFF_CHANNEL",
|
||||
"scanIntervalMillis": 0,
|
||||
"percentUtilizationThreshold": 10,
|
||||
"delayMillisecondsThreshold": 600,
|
||||
"radioType": "is5GHzL",
|
||||
"radioType": "is2dot4GHz",
|
||||
"serviceMetricDataType": "Channel",
|
||||
"statsReportFormat": "RAW"
|
||||
},
|
||||
@@ -192,41 +192,29 @@
|
||||
{
|
||||
"model_type": "ServiceMetricSurveyConfigParameters",
|
||||
"samplingInterval": 30,
|
||||
"reportingIntervalSeconds": 120,
|
||||
"channelSurveyType": "OFF_CHANNEL",
|
||||
"reportingIntervalSeconds": 60,
|
||||
"channelSurveyType": "ON_CHANNEL",
|
||||
"scanIntervalMillis": 0,
|
||||
"percentUtilizationThreshold": 10,
|
||||
"delayMillisecondsThreshold": 600,
|
||||
"radioType": "is5GHzL",
|
||||
"radioType": "is2dot4GHz",
|
||||
"serviceMetricDataType": "Channel",
|
||||
"statsReportFormat": "RAW"
|
||||
},
|
||||
{
|
||||
"model_type": "ServiceMetricSurveyConfigParameters",
|
||||
"samplingInterval": 30,
|
||||
"reportingIntervalSeconds": 120,
|
||||
"channelSurveyType": "OFF_CHANNEL",
|
||||
"reportingIntervalSeconds": 60,
|
||||
"channelSurveyType": "ON_CHANNEL",
|
||||
"scanIntervalMillis": 0,
|
||||
"percentUtilizationThreshold": 10,
|
||||
"delayMillisecondsThreshold": 600,
|
||||
"radioType": "is2dot4GHz",
|
||||
"radioType": "is5GHzL",
|
||||
"serviceMetricDataType": "Channel",
|
||||
"statsReportFormat": "RAW"
|
||||
}
|
||||
],
|
||||
"Neighbour": [
|
||||
{
|
||||
"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,
|
||||
@@ -251,18 +239,6 @@
|
||||
"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"
|
||||
},
|
||||
{
|
||||
"model_type": "ServiceMetricSurveyConfigParameters",
|
||||
"samplingInterval": 30,
|
||||
@@ -286,13 +262,37 @@
|
||||
"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": 1605711195528,
|
||||
"lastModifiedTimestamp": 1605711195528,
|
||||
"createdTimestamp": 1606778369931,
|
||||
"lastModifiedTimestamp": 1606778369931,
|
||||
"childProfileIds": [
|
||||
]
|
||||
}
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
[
|
||||
{
|
||||
{
|
||||
"model_type": "Profile",
|
||||
"id": 17,
|
||||
"id": 34,
|
||||
"customerId": 2,
|
||||
"profileType": "passpoint_operator",
|
||||
"name": "TipWlan-Hotspot20-Operator",
|
||||
"name": "operator-profile-2021-01-21T21:28:58.994Z",
|
||||
"details": {
|
||||
"model_type": "PasspointOperatorProfile",
|
||||
"serverOnlyAuthenticatedL2EncryptionNetwork": false,
|
||||
@@ -12,26 +12,30 @@
|
||||
"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",
|
||||
"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": 1605711164952,
|
||||
"lastModifiedTimestamp": 1605711164952,
|
||||
"childProfileIds": [
|
||||
]
|
||||
}
|
||||
"createdTimestamp": 1611264539004,
|
||||
"lastModifiedTimestamp": 1611264539004,
|
||||
"childProfileIds": []
|
||||
}
|
||||
]
|
||||
@@ -7,28 +7,18 @@
|
||||
"name": "Radius-Profile",
|
||||
"details": {
|
||||
"model_type": "RadiusProfile",
|
||||
"subnetConfiguration": null,
|
||||
"serviceRegionMap": {
|
||||
"Ottawa": {
|
||||
"model_type": "RadiusServiceRegion",
|
||||
"serverMap": {
|
||||
"Radius-Profile": [
|
||||
{
|
||||
"primaryRadiusAuthServer": {
|
||||
"model_type": "RadiusServer",
|
||||
"ipAddress": "192.168.0.1",
|
||||
"secret": "testing123",
|
||||
"authPort": 1812,
|
||||
"port": 1812,
|
||||
"timeout": null
|
||||
}
|
||||
]
|
||||
},
|
||||
"regionName": "Ottawa"
|
||||
}
|
||||
},
|
||||
"profileType": "radius"
|
||||
},
|
||||
"createdTimestamp": 1601961451668,
|
||||
"lastModifiedTimestamp": 1601961451668,
|
||||
"childProfileIds": []
|
||||
"createdTimestamp": 1611262628767,
|
||||
"lastModifiedTimestamp": 1611262628767,
|
||||
"childProfileIds": [
|
||||
]
|
||||
}
|
||||
]
|
||||
@@ -1,9 +1,9 @@
|
||||
{
|
||||
"model_type": "Profile",
|
||||
"id": 21,
|
||||
"id": 4,
|
||||
"customerId": 2,
|
||||
"profileType": "rf",
|
||||
"name": "TipWlan-rf-passpoint",
|
||||
"name": "TipWlan-rf",
|
||||
"details": {
|
||||
"model_type": "RfConfiguration",
|
||||
"rfConfigMap": {
|
||||
@@ -11,7 +11,7 @@
|
||||
"model_type": "RfElementConfiguration",
|
||||
"radioType": "is5GHz",
|
||||
"radioMode": "modeAC",
|
||||
"rf": "TipWlan-rf-passpoint",
|
||||
"rf": "TipWlan-rf",
|
||||
"beaconInterval": 100,
|
||||
"forceScanDuringVoice": "disabled",
|
||||
"rtsCtsThreshold": 65535,
|
||||
@@ -58,7 +58,7 @@
|
||||
"model_type": "RfElementConfiguration",
|
||||
"radioType": "is2dot4GHz",
|
||||
"radioMode": "modeN",
|
||||
"rf": "TipWlan-rf-passpoint",
|
||||
"rf": "TipWlan-rf",
|
||||
"beaconInterval": 100,
|
||||
"forceScanDuringVoice": "disabled",
|
||||
"rtsCtsThreshold": 65535,
|
||||
@@ -105,7 +105,7 @@
|
||||
"model_type": "RfElementConfiguration",
|
||||
"radioType": "is5GHzU",
|
||||
"radioMode": "modeAC",
|
||||
"rf": "TipWlan-rf-passpoint",
|
||||
"rf": "TipWlan-rf",
|
||||
"beaconInterval": 100,
|
||||
"forceScanDuringVoice": "disabled",
|
||||
"rtsCtsThreshold": 65535,
|
||||
@@ -152,7 +152,7 @@
|
||||
"model_type": "RfElementConfiguration",
|
||||
"radioType": "is5GHzL",
|
||||
"radioMode": "modeAC",
|
||||
"rf": "TipWlan-rf-passpoint",
|
||||
"rf": "TipWlan-rf",
|
||||
"beaconInterval": 100,
|
||||
"forceScanDuringVoice": "disabled",
|
||||
"rtsCtsThreshold": 65535,
|
||||
@@ -198,8 +198,7 @@
|
||||
},
|
||||
"profileType": "rf"
|
||||
},
|
||||
"createdTimestamp": 1605711191976,
|
||||
"lastModifiedTimestamp": 1605711191976,
|
||||
"childProfileIds": [
|
||||
]
|
||||
"createdTimestamp": 1612285248650,
|
||||
"lastModifiedTimestamp": 1612285248650,
|
||||
"childProfileIds": []
|
||||
}
|
||||
@@ -1,26 +1,27 @@
|
||||
[
|
||||
{
|
||||
{
|
||||
"model_type": "Profile",
|
||||
"id": 15,
|
||||
"id": 2,
|
||||
"customerId": 2,
|
||||
"profileType": "ssid",
|
||||
"name": "TipWlan-cloud-hotspot-access",
|
||||
"name": "TipWlan-cloud-3-radios",
|
||||
"details": {
|
||||
"model_type": "SsidConfiguration",
|
||||
"ssid": "TipWlan-cloud-hotspot-access",
|
||||
"ssid": "TipWlan-cloud-3-radios",
|
||||
"appliedRadios": [
|
||||
"is5GHzL",
|
||||
"is5GHzU"
|
||||
"is5GHzU",
|
||||
"is2dot4GHz",
|
||||
"is5GHzL"
|
||||
],
|
||||
"ssidAdminState": "enabled",
|
||||
"secureMode": "wpa2PSK",
|
||||
"secureMode": "wpa2OnlyPSK",
|
||||
"vlanId": 1,
|
||||
"keyStr": "testing123",
|
||||
"keyStr": "openwifi",
|
||||
"broadcastSsid": "enabled",
|
||||
"keyRefresh": 0,
|
||||
"noLocalSubnets": false,
|
||||
"radiusServiceName": null,
|
||||
"radiusAccountingServiceName": null,
|
||||
"radiusServiceId": 0,
|
||||
"radiusAcountingServiceInterval": 60,
|
||||
"captivePortalId": null,
|
||||
"bandwidthLimitDown": 0,
|
||||
"bandwidthLimitUp": 0,
|
||||
@@ -28,7 +29,7 @@
|
||||
"clientBandwidthLimitUp": 0,
|
||||
"videoTrafficOnly": false,
|
||||
"radioBasedConfigs": {
|
||||
"is5GHz": {
|
||||
"is5GHzU": {
|
||||
"model_type": "RadioBasedSsidConfiguration",
|
||||
"enable80211r": null,
|
||||
"enable80211k": null,
|
||||
@@ -40,7 +41,7 @@
|
||||
"enable80211k": null,
|
||||
"enable80211v": null
|
||||
},
|
||||
"is5GHzU": {
|
||||
"is5GHz": {
|
||||
"model_type": "RadioBasedSsidConfiguration",
|
||||
"enable80211r": null,
|
||||
"enable80211k": null,
|
||||
@@ -56,79 +57,19 @@
|
||||
"bonjourGatewayProfileId": null,
|
||||
"enable80211w": null,
|
||||
"wepConfig": null,
|
||||
"forwardMode": null,
|
||||
"profileType": "ssid"
|
||||
},
|
||||
"createdTimestamp": 1605711164949,
|
||||
"lastModifiedTimestamp": 1605711223372,
|
||||
"childProfileIds": [
|
||||
24
|
||||
]
|
||||
},
|
||||
{
|
||||
"model_type": "Profile",
|
||||
"id": 16,
|
||||
"customerId": 2,
|
||||
"forwardMode": "BRIDGE",
|
||||
"profileType": "ssid",
|
||||
"name": "TipWlan-cloud-hotspot-osu",
|
||||
"details": {
|
||||
"model_type": "SsidConfiguration",
|
||||
"ssid": "TipWlan-cloud-hotspot-osu",
|
||||
"appliedRadios": [
|
||||
"is2dot4GHz"
|
||||
],
|
||||
"ssidAdminState": "enabled",
|
||||
"secureMode": "open",
|
||||
"vlanId": 1,
|
||||
"keyStr": null,
|
||||
"broadcastSsid": "enabled",
|
||||
"keyRefresh": 0,
|
||||
"noLocalSubnets": false,
|
||||
"radiusServiceName": null,
|
||||
"radiusAccountingServiceName": null,
|
||||
"captivePortalId": null,
|
||||
"bandwidthLimitDown": 0,
|
||||
"bandwidthLimitUp": 0,
|
||||
"clientBandwidthLimitDown": 0,
|
||||
"clientBandwidthLimitUp": 0,
|
||||
"videoTrafficOnly": false,
|
||||
"radioBasedConfigs": {
|
||||
"is5GHz": {
|
||||
"model_type": "RadioBasedSsidConfiguration",
|
||||
"enable80211r": null,
|
||||
"enable80211k": null,
|
||||
"enable80211v": null
|
||||
},
|
||||
"is2dot4GHz": {
|
||||
"model_type": "RadioBasedSsidConfiguration",
|
||||
"enable80211r": null,
|
||||
"enable80211k": null,
|
||||
"enable80211v": null
|
||||
},
|
||||
"is5GHzU": {
|
||||
"model_type": "RadioBasedSsidConfiguration",
|
||||
"enable80211r": null,
|
||||
"enable80211k": null,
|
||||
"enable80211v": null
|
||||
},
|
||||
"is5GHzL": {
|
||||
"model_type": "RadioBasedSsidConfiguration",
|
||||
"enable80211r": null,
|
||||
"enable80211k": null,
|
||||
"enable80211v": null
|
||||
"radiusClientConfiguration": {
|
||||
"model_type": "RadiusNasConfiguration",
|
||||
"nasClientId": "DEFAULT",
|
||||
"nasClientIp": "WAN_IP",
|
||||
"userDefinedNasId": null,
|
||||
"userDefinedNasIp": null,
|
||||
"operatorId": null
|
||||
}
|
||||
},
|
||||
"bonjourGatewayProfileId": null,
|
||||
"enable80211w": null,
|
||||
"wepConfig": null,
|
||||
"forwardMode": null,
|
||||
"profileType": "ssid"
|
||||
},
|
||||
"createdTimestamp": 1605711164950,
|
||||
"lastModifiedTimestamp": 1605711171732,
|
||||
"childProfileIds": [
|
||||
19,
|
||||
20
|
||||
]
|
||||
}
|
||||
"createdTimestamp": 1612285248638,
|
||||
"lastModifiedTimestamp": 1612285248638,
|
||||
"childProfileIds": []
|
||||
}
|
||||
]
|
||||
|
||||
@@ -1,16 +1,16 @@
|
||||
[
|
||||
{
|
||||
{
|
||||
"model_type": "Profile",
|
||||
"id": 18,
|
||||
"id": 33,
|
||||
"customerId": 2,
|
||||
"profileType": "passpoint_venue",
|
||||
"name": "TipWlan-Hotspot20-Venue",
|
||||
"name": "venue-profile-2021-01-21T21:28:58.934Z",
|
||||
"details": {
|
||||
"model_type": "PasspointVenueProfile",
|
||||
"venueNameSet": [
|
||||
{
|
||||
"model_type": "PasspointVenueName",
|
||||
"locale": "fr_CA",
|
||||
"locale": "fra",
|
||||
"dupleIso3Language": "fra",
|
||||
"dupleName": "Exemple de lieu",
|
||||
"defaultDupleSeparator": ":",
|
||||
@@ -19,7 +19,7 @@
|
||||
},
|
||||
{
|
||||
"model_type": "PasspointVenueName",
|
||||
"locale": "en_CA",
|
||||
"locale": "eng",
|
||||
"dupleIso3Language": "eng",
|
||||
"dupleName": "Example passpoint_venue",
|
||||
"defaultDupleSeparator": ":",
|
||||
@@ -28,16 +28,15 @@
|
||||
}
|
||||
],
|
||||
"venueTypeAssignment": {
|
||||
"model_type": "ProfileVenueTypeAssignment",
|
||||
"model_type": "PasspointVenueTypeAssignment",
|
||||
"venueDescription": "Research and Development Facility",
|
||||
"venueGroupId": 2,
|
||||
"venueTypeId": 8
|
||||
},
|
||||
"profileType": "passpoint_venue"
|
||||
},
|
||||
"createdTimestamp": 1605711164956,
|
||||
"lastModifiedTimestamp": 1605711164956,
|
||||
"childProfileIds": [
|
||||
]
|
||||
}
|
||||
"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,12 +1,12 @@
|
||||
{
|
||||
"model_type": "Equipment",
|
||||
"id": 51,
|
||||
"id": 1,
|
||||
"customerId": 2,
|
||||
"profileId": 5,
|
||||
"profileId": 8,
|
||||
"locationId": 8,
|
||||
"equipmentType": "AP",
|
||||
"inventoryId": "Test_Client_21P10C68818122",
|
||||
"name": "Test_Client_21P10C68818122",
|
||||
"inventoryId": "Open_AP_21P10C68818122",
|
||||
"name": "Open_AP_21P10C68818122",
|
||||
"details": {
|
||||
"model_type": "ApElementConfiguration",
|
||||
"equipmentModel": "EA8300-CA",
|
||||
@@ -21,7 +21,7 @@
|
||||
"staticDnsIp1": null,
|
||||
"staticDnsIp2": null,
|
||||
"peerInfoList": [],
|
||||
"deviceName": "Default Device Name",
|
||||
"deviceName": "Open_AP_21P10C68818122",
|
||||
"locationData": null,
|
||||
"locallyConfiguredMgmtVlan": 0,
|
||||
"locallyConfigured": false,
|
||||
@@ -32,73 +32,246 @@
|
||||
"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,
|
||||
"bannedChannels": [],
|
||||
"allowedChannels": [],
|
||||
"manualBackupChannelNumber": 11,
|
||||
"rxCellSizeDb": {
|
||||
"model_type": "SourceSelectionValue",
|
||||
"source": "auto",
|
||||
"source": "profile",
|
||||
"value": -90
|
||||
},
|
||||
"probeResponseThresholdDb": {
|
||||
"model_type": "SourceSelectionValue",
|
||||
"source": "auto",
|
||||
"source": "profile",
|
||||
"value": -90
|
||||
},
|
||||
"clientDisconnectThresholdDb": {
|
||||
"model_type": "SourceSelectionValue",
|
||||
"source": "auto",
|
||||
"source": "profile",
|
||||
"value": -90
|
||||
},
|
||||
"eirpTxPower": {
|
||||
"model_type": "SourceSelectionValue",
|
||||
"source": "auto",
|
||||
"value": 32
|
||||
"source": "profile",
|
||||
"value": 18
|
||||
},
|
||||
"perimeterDetectionEnabled": true,
|
||||
"bestAPSteerType": "both",
|
||||
"deauthAttackDetection": null,
|
||||
"allowedChannelsPowerLevels": [],
|
||||
"activeChannel": 6
|
||||
"allowedChannelsPowerLevels": [
|
||||
{
|
||||
"model_type": "ChannelPowerLevel",
|
||||
"channelNumber": 1,
|
||||
"powerLevel": 18,
|
||||
"dfs": false,
|
||||
"channelWidth": 20
|
||||
},
|
||||
"is5GHzU": {
|
||||
"model_type": "ElementRadioConfiguration",
|
||||
"radioType": "is5GHzU",
|
||||
"channelNumber": 149,
|
||||
"manualChannelNumber": 149,
|
||||
"backupChannelNumber": 154,
|
||||
"bannedChannels": [],
|
||||
"allowedChannels": [],
|
||||
"rxCellSizeDb": {
|
||||
"model_type": "SourceSelectionValue",
|
||||
"source": "auto",
|
||||
"value": -90
|
||||
{
|
||||
"model_type": "ChannelPowerLevel",
|
||||
"channelNumber": 2,
|
||||
"powerLevel": 18,
|
||||
"dfs": false,
|
||||
"channelWidth": 20
|
||||
},
|
||||
"probeResponseThresholdDb": {
|
||||
"model_type": "SourceSelectionValue",
|
||||
"source": "auto",
|
||||
"value": -90
|
||||
{
|
||||
"model_type": "ChannelPowerLevel",
|
||||
"channelNumber": 3,
|
||||
"powerLevel": 18,
|
||||
"dfs": false,
|
||||
"channelWidth": 20
|
||||
},
|
||||
"clientDisconnectThresholdDb": {
|
||||
"model_type": "SourceSelectionValue",
|
||||
"source": "auto",
|
||||
"value": -90
|
||||
{
|
||||
"model_type": "ChannelPowerLevel",
|
||||
"channelNumber": 4,
|
||||
"powerLevel": 18,
|
||||
"dfs": false,
|
||||
"channelWidth": 20
|
||||
},
|
||||
"eirpTxPower": {
|
||||
"model_type": "SourceSelectionValue",
|
||||
"source": "auto",
|
||||
"value": 32
|
||||
{
|
||||
"model_type": "ChannelPowerLevel",
|
||||
"channelNumber": 5,
|
||||
"powerLevel": 18,
|
||||
"dfs": false,
|
||||
"channelWidth": 20
|
||||
},
|
||||
"perimeterDetectionEnabled": true,
|
||||
"bestAPSteerType": "both",
|
||||
"deauthAttackDetection": null,
|
||||
"allowedChannelsPowerLevels": [],
|
||||
"activeChannel": 149
|
||||
{
|
||||
"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",
|
||||
@@ -106,33 +279,88 @@
|
||||
"channelNumber": 36,
|
||||
"manualChannelNumber": 36,
|
||||
"backupChannelNumber": 44,
|
||||
"bannedChannels": [],
|
||||
"allowedChannels": [],
|
||||
"manualBackupChannelNumber": 44,
|
||||
"rxCellSizeDb": {
|
||||
"model_type": "SourceSelectionValue",
|
||||
"source": "auto",
|
||||
"source": "profile",
|
||||
"value": -90
|
||||
},
|
||||
"probeResponseThresholdDb": {
|
||||
"model_type": "SourceSelectionValue",
|
||||
"source": "auto",
|
||||
"source": "profile",
|
||||
"value": -90
|
||||
},
|
||||
"clientDisconnectThresholdDb": {
|
||||
"model_type": "SourceSelectionValue",
|
||||
"source": "auto",
|
||||
"source": "profile",
|
||||
"value": -90
|
||||
},
|
||||
"eirpTxPower": {
|
||||
"model_type": "SourceSelectionValue",
|
||||
"source": "auto",
|
||||
"value": 32
|
||||
"source": "profile",
|
||||
"value": 18
|
||||
},
|
||||
"perimeterDetectionEnabled": true,
|
||||
"bestAPSteerType": "both",
|
||||
"deauthAttackDetection": null,
|
||||
"allowedChannelsPowerLevels": [],
|
||||
"activeChannel": 36
|
||||
"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
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"advancedRadioMap": {
|
||||
@@ -143,22 +371,28 @@
|
||||
"fragmentationThresholdBytes": 2346,
|
||||
"uapsdState": "enabled",
|
||||
"stationIsolation": "disabled",
|
||||
"multicastRate": {
|
||||
"model_type": "SourceSelectionMulticast",
|
||||
"source": "profile",
|
||||
"value": "auto"
|
||||
},
|
||||
"managementRate": {
|
||||
"model_type": "SourceSelectionManagement",
|
||||
"source": "auto",
|
||||
"source": "profile",
|
||||
"value": "auto"
|
||||
},
|
||||
"bestApSettings": {
|
||||
"model_type": "SourceSelectionSteering",
|
||||
"source": "auto",
|
||||
"source": "manual",
|
||||
"value": {
|
||||
"model_type": "RadioBestApSettings",
|
||||
"mlComputed": true,
|
||||
"dropInSnrPercentage": 30,
|
||||
"minLoadFactor": 40
|
||||
"dropInSnrPercentage": 20,
|
||||
"minLoadFactor": 50
|
||||
}
|
||||
},
|
||||
"legacyBSSRate": "enabled",
|
||||
"dtimPeriod": 2,
|
||||
"deauthAttackDetection": null
|
||||
},
|
||||
"is5GHzU": {
|
||||
@@ -168,14 +402,19 @@
|
||||
"fragmentationThresholdBytes": 2346,
|
||||
"uapsdState": "enabled",
|
||||
"stationIsolation": "disabled",
|
||||
"multicastRate": {
|
||||
"model_type": "SourceSelectionMulticast",
|
||||
"source": "profile",
|
||||
"value": "auto"
|
||||
},
|
||||
"managementRate": {
|
||||
"model_type": "SourceSelectionManagement",
|
||||
"source": "auto",
|
||||
"source": "profile",
|
||||
"value": "auto"
|
||||
},
|
||||
"bestApSettings": {
|
||||
"model_type": "SourceSelectionSteering",
|
||||
"source": "auto",
|
||||
"source": "manual",
|
||||
"value": {
|
||||
"model_type": "RadioBestApSettings",
|
||||
"mlComputed": true,
|
||||
@@ -184,6 +423,7 @@
|
||||
}
|
||||
},
|
||||
"legacyBSSRate": "enabled",
|
||||
"dtimPeriod": 2,
|
||||
"deauthAttackDetection": null
|
||||
},
|
||||
"is5GHzL": {
|
||||
@@ -193,14 +433,19 @@
|
||||
"fragmentationThresholdBytes": 2346,
|
||||
"uapsdState": "enabled",
|
||||
"stationIsolation": "disabled",
|
||||
"multicastRate": {
|
||||
"model_type": "SourceSelectionMulticast",
|
||||
"source": "profile",
|
||||
"value": "auto"
|
||||
},
|
||||
"managementRate": {
|
||||
"model_type": "SourceSelectionManagement",
|
||||
"source": "auto",
|
||||
"source": "profile",
|
||||
"value": "auto"
|
||||
},
|
||||
"bestApSettings": {
|
||||
"model_type": "SourceSelectionSteering",
|
||||
"source": "auto",
|
||||
"source": "manual",
|
||||
"value": {
|
||||
"model_type": "RadioBestApSettings",
|
||||
"mlComputed": true,
|
||||
@@ -209,13 +454,19 @@
|
||||
}
|
||||
},
|
||||
"legacyBSSRate": "enabled",
|
||||
"dtimPeriod": 2,
|
||||
"deauthAttackDetection": null
|
||||
}
|
||||
}
|
||||
},
|
||||
"latitude": null,
|
||||
"longitude": null,
|
||||
"baseMacAddress": {
|
||||
"model_type": "MacAddress",
|
||||
"address": "JPWi7y5T",
|
||||
"addressAsString": "24:f5:a2:ef:2e:53"
|
||||
},
|
||||
"serial": "21P10C68818122",
|
||||
"createdTimestamp": 1591653239821,
|
||||
"lastModifiedTimestamp": 1591653241398
|
||||
"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"
|
||||
"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:30",
|
||||
"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:30",
|
||||
"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:30",
|
||||
"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:30",
|
||||
"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:30",
|
||||
"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:30",
|
||||
"timezone" : "US/Eastern"
|
||||
}
|
||||
"SATURDAY": {
|
||||
"model_type": "LocationActivityDetails",
|
||||
"busyTime": "13:30",
|
||||
"quietTime": "3:00",
|
||||
"timezone": "US/Eastern"
|
||||
}
|
||||
},
|
||||
"createdTimestamp" : 1590607043540,
|
||||
"lastModifiedTimestamp" : 1590607043540
|
||||
"maintenanceWindow": null,
|
||||
"rrmEnabled": true,
|
||||
"timezone": "US/Eastern"
|
||||
},
|
||||
"createdTimestamp": 1612285243534,
|
||||
"lastModifiedTimestamp": 1612285243534
|
||||
}
|
||||
@@ -1,9 +1,9 @@
|
||||
{
|
||||
"model_type": "Profile",
|
||||
"id": 23,
|
||||
"id": 8,
|
||||
"customerId": 2,
|
||||
"profileType": "equipment_ap",
|
||||
"name": "ApProfile-3-radios-passpoint",
|
||||
"name": "ApProfile-3-radios",
|
||||
"details": {
|
||||
"model_type": "ApNetworkConfiguration",
|
||||
"networkConfigVersion": "AP-1",
|
||||
@@ -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,14 +37,22 @@
|
||||
"bestAPSteerType": "both"
|
||||
}
|
||||
},
|
||||
"greTunnelConfigurations": [
|
||||
{
|
||||
"model_type": "GreTunnelConfiguration",
|
||||
"greTunnelName": "gre1",
|
||||
"greRemoteInetAddr": "192.168.1.101",
|
||||
"vlanIdsInGreTunnel": [
|
||||
100
|
||||
]
|
||||
}
|
||||
],
|
||||
"profileType": "equipment_ap"
|
||||
},
|
||||
"createdTimestamp": 1605711197140,
|
||||
"lastModifiedTimestamp": 1605711197140,
|
||||
"createdTimestamp": 1612285248925,
|
||||
"lastModifiedTimestamp": 1612285628377,
|
||||
"childProfileIds": [
|
||||
16,
|
||||
21,
|
||||
22,
|
||||
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",
|
||||
"name": "Default",
|
||||
"browserTitle": "Captive-portal",
|
||||
"headerContent": "Captive Portal",
|
||||
"userAcceptancePolicy": "Use this network at your own risk. No warranty of any kind.",
|
||||
"successPageMarkdownText": "Welcome to the network",
|
||||
"redirectURL": "",
|
||||
"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": 60,
|
||||
"logoFile": null,
|
||||
"backgroundFile": null,
|
||||
"walledGardenAllowlist": [],
|
||||
"usernamePasswordFile": {
|
||||
"sessionTimeoutInMinutes": 10,
|
||||
"logoFile": {
|
||||
"model_type": "ManagedFileInfo",
|
||||
"md5checksum": null,
|
||||
"lastModifiedTimestamp": null,
|
||||
"apExportUrl": "userList",
|
||||
"fileCategory": "UsernamePasswordList",
|
||||
"fileType": "TEXT",
|
||||
"altSlot": true
|
||||
"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": 42,
|
||||
"maxUsersWithSameCredentials": 3,
|
||||
"externalPolicyFile": null,
|
||||
"backgroundPosition": "left_top",
|
||||
"backgroundRepeat": "no_repeat",
|
||||
"radiusServiceName": null,
|
||||
"expiryType": "unlimited",
|
||||
"radiusServiceId": 0,
|
||||
"expiryType": "time_limited",
|
||||
"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"
|
||||
}
|
||||
"macAllowList": [
|
||||
],
|
||||
"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"
|
||||
},
|
||||
"createdTimestamp": 1602183994959,
|
||||
"lastModifiedTimestamp": 1602183994959,
|
||||
"childProfileIds": []
|
||||
}
|
||||
"createdTimestamp": 1611857459118,
|
||||
"lastModifiedTimestamp": 1611857459118,
|
||||
"childProfileIds": [
|
||||
]
|
||||
}
|
||||
]
|
||||
@@ -1,14 +1,16 @@
|
||||
[
|
||||
{
|
||||
"model_type": "Profile",
|
||||
"id": 24,
|
||||
"id": 37,
|
||||
"customerId": 2,
|
||||
"profileType": "passpoint",
|
||||
"name": "TipWlan-Hotspot20-Config",
|
||||
"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,
|
||||
@@ -43,30 +45,27 @@
|
||||
"disableDownstreamGroupAddressedForwarding": false,
|
||||
"enable2pt4GHz": true,
|
||||
"enable5GHz": true,
|
||||
"associatedAccessSsidNames": [
|
||||
"TipWlan-cloud-hotspot-access"
|
||||
"associatedAccessSsidProfileIds": [
|
||||
32
|
||||
],
|
||||
"osuSsidName": "TipWlan-cloud-hotspot-osu",
|
||||
"operatorProfileName": "TipWlan-Hotspot20-Operator",
|
||||
"venueProfileName": "TipWlan-Hotspot20-Venue",
|
||||
"idProviderProfileNames": [
|
||||
"TipWlan-Hotspot20-OSU-Provider-2",
|
||||
"TipWlan-Hotspot20-OSU-Provider"
|
||||
"osuSsidProfileId": 31,
|
||||
"passpointOperatorProfileId": 34,
|
||||
"passpointVenueProfileId": 33,
|
||||
"passpointOsuProviderProfileIds": [
|
||||
35,
|
||||
36
|
||||
],
|
||||
"accessNetworkType": "free_public_network",
|
||||
"networkAuthenticationType": "acceptance_of_terms_and_conditions",
|
||||
"associatedSsids": [
|
||||
"TipWlan-cloud-hotspot-access"
|
||||
],
|
||||
"profileType": "passpoint"
|
||||
},
|
||||
"createdTimestamp": 1605711223339,
|
||||
"lastModifiedTimestamp": 1605711223339,
|
||||
"createdTimestamp": 0,
|
||||
"lastModifiedTimestamp": 1611264539331,
|
||||
"childProfileIds": [
|
||||
17,
|
||||
18,
|
||||
19,
|
||||
20
|
||||
33,
|
||||
34,
|
||||
35,
|
||||
36
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
|
||||
@@ -1,13 +1,12 @@
|
||||
[
|
||||
{
|
||||
"model_type": "Profile",
|
||||
"id": 19,
|
||||
"id": 35,
|
||||
"customerId": 2,
|
||||
"profileType": "passpoint_osu_id_provider",
|
||||
"name": "TipWlan-Hotspot20-OSU-Provider",
|
||||
"name": "provider1-profile-2021-01-21T21:28:59.057Z",
|
||||
"details": {
|
||||
"model_type": "PasspointOsuProviderProfile",
|
||||
"domainName": "rogers.com",
|
||||
"mccMncList": [
|
||||
{
|
||||
"model_type": "PasspointMccMnc",
|
||||
@@ -81,7 +80,7 @@
|
||||
"osuFriendlyName": [
|
||||
{
|
||||
"model_type": "PasspointDuple",
|
||||
"locale": "en_CA",
|
||||
"locale": "eng",
|
||||
"dupleIso3Language": "eng",
|
||||
"dupleName": "Example provider rogers",
|
||||
"defaultDupleSeparator": ":",
|
||||
@@ -89,7 +88,7 @@
|
||||
},
|
||||
{
|
||||
"model_type": "PasspointDuple",
|
||||
"locale": "fr_CA",
|
||||
"locale": "fra",
|
||||
"dupleIso3Language": "fra",
|
||||
"dupleName": "Exemple de fournisseur rogers",
|
||||
"defaultDupleSeparator": ":",
|
||||
@@ -105,7 +104,7 @@
|
||||
"osuServiceDescription": [
|
||||
{
|
||||
"model_type": "PasspointDuple",
|
||||
"locale": "en_CA",
|
||||
"locale": "eng",
|
||||
"dupleIso3Language": "eng",
|
||||
"dupleName": "Example services rogers",
|
||||
"defaultDupleSeparator": ":",
|
||||
@@ -113,7 +112,7 @@
|
||||
},
|
||||
{
|
||||
"model_type": "PasspointDuple",
|
||||
"locale": "fr_CA",
|
||||
"locale": "fra",
|
||||
"dupleIso3Language": "fra",
|
||||
"dupleName": "Exemples de services rogers",
|
||||
"defaultDupleSeparator": ":",
|
||||
@@ -121,27 +120,23 @@
|
||||
}
|
||||
],
|
||||
"roamingOi": [
|
||||
1,
|
||||
2,
|
||||
3,
|
||||
4
|
||||
"BAA2D00100",
|
||||
"BAA2D00000"
|
||||
],
|
||||
"profileType": "passpoint_osu_id_provider"
|
||||
},
|
||||
"createdTimestamp": 1605711165325,
|
||||
"lastModifiedTimestamp": 1605711165325,
|
||||
"childProfileIds": [
|
||||
]
|
||||
"createdTimestamp": 1611264539070,
|
||||
"lastModifiedTimestamp": 1611264539070,
|
||||
"childProfileIds": []
|
||||
},
|
||||
{
|
||||
"model_type": "Profile",
|
||||
"id": 20,
|
||||
"id": 36,
|
||||
"customerId": 2,
|
||||
"profileType": "passpoint_osu_id_provider",
|
||||
"name": "TipWlan-Hotspot20-OSU-Provider-2",
|
||||
"name": "provider2-profile-2021-01-21T21:28:59.118Z",
|
||||
"details": {
|
||||
"model_type": "PasspointOsuProviderProfile",
|
||||
"domainName": "telus.com",
|
||||
"mccMncList": [
|
||||
{
|
||||
"model_type": "PasspointMccMnc",
|
||||
@@ -215,7 +210,7 @@
|
||||
"osuFriendlyName": [
|
||||
{
|
||||
"model_type": "PasspointDuple",
|
||||
"locale": "en_CA",
|
||||
"locale": "eng",
|
||||
"dupleIso3Language": "eng",
|
||||
"dupleName": "Example provider telus",
|
||||
"defaultDupleSeparator": ":",
|
||||
@@ -223,7 +218,7 @@
|
||||
},
|
||||
{
|
||||
"model_type": "PasspointDuple",
|
||||
"locale": "fr_CA",
|
||||
"locale": "fra",
|
||||
"dupleIso3Language": "fra",
|
||||
"dupleName": "Exemple de fournisseur telus",
|
||||
"defaultDupleSeparator": ":",
|
||||
@@ -239,7 +234,7 @@
|
||||
"osuServiceDescription": [
|
||||
{
|
||||
"model_type": "PasspointDuple",
|
||||
"locale": "en_CA",
|
||||
"locale": "eng",
|
||||
"dupleIso3Language": "eng",
|
||||
"dupleName": "Example services telus",
|
||||
"defaultDupleSeparator": ":",
|
||||
@@ -247,7 +242,7 @@
|
||||
},
|
||||
{
|
||||
"model_type": "PasspointDuple",
|
||||
"locale": "fr_CA",
|
||||
"locale": "fra",
|
||||
"dupleIso3Language": "fra",
|
||||
"dupleName": "Exemples de services telus",
|
||||
"defaultDupleSeparator": ":",
|
||||
@@ -255,16 +250,14 @@
|
||||
}
|
||||
],
|
||||
"roamingOi": [
|
||||
1,
|
||||
2,
|
||||
3,
|
||||
4
|
||||
"004096",
|
||||
"005014",
|
||||
"F4F5E8F5F4"
|
||||
],
|
||||
"profileType": "passpoint_osu_id_provider"
|
||||
},
|
||||
"createdTimestamp": 1605711165330,
|
||||
"lastModifiedTimestamp": 1605711165330,
|
||||
"childProfileIds": [
|
||||
]
|
||||
"createdTimestamp": 1611264539131,
|
||||
"lastModifiedTimestamp": 1611264539131,
|
||||
"childProfileIds": []
|
||||
}
|
||||
]
|
||||
@@ -1,10 +1,10 @@
|
||||
[
|
||||
{
|
||||
"model_type": "Profile",
|
||||
"id": 22,
|
||||
"id": 10,
|
||||
"customerId": 2,
|
||||
"profileType": "service_metrics_collection_config",
|
||||
"name": "Metrics-Profile-Passpoint",
|
||||
"name": "Metrics-Profile-3-Radios",
|
||||
"details": {
|
||||
"model_type": "ServiceMetricsCollectionConfigProfile",
|
||||
"radioTypes": [
|
||||
@@ -21,30 +21,6 @@
|
||||
],
|
||||
"metricConfigParameterMap": {
|
||||
"ApNode": [
|
||||
{
|
||||
"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": "is5GHzU",
|
||||
"serviceMetricDataType": "ApNode",
|
||||
"statsReportFormat": "RAW"
|
||||
},
|
||||
{
|
||||
"model_type": "ServiceMetricSurveyConfigParameters",
|
||||
"samplingInterval": 30,
|
||||
@@ -69,18 +45,6 @@
|
||||
"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"
|
||||
},
|
||||
{
|
||||
"model_type": "ServiceMetricSurveyConfigParameters",
|
||||
"samplingInterval": 30,
|
||||
@@ -92,9 +56,52 @@
|
||||
"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,
|
||||
@@ -108,13 +115,6 @@
|
||||
"reportingIntervalSeconds": 60,
|
||||
"radioType": "is2dot4GHz",
|
||||
"serviceMetricDataType": "ApSsid"
|
||||
},
|
||||
{
|
||||
"model_type": "ServiceMetricRadioConfigParameters",
|
||||
"samplingInterval": 30,
|
||||
"reportingIntervalSeconds": 60,
|
||||
"radioType": "is5GHzU",
|
||||
"serviceMetricDataType": "ApSsid"
|
||||
}
|
||||
],
|
||||
"Client": [
|
||||
@@ -144,12 +144,12 @@
|
||||
{
|
||||
"model_type": "ServiceMetricSurveyConfigParameters",
|
||||
"samplingInterval": 30,
|
||||
"reportingIntervalSeconds": 60,
|
||||
"channelSurveyType": "ON_CHANNEL",
|
||||
"reportingIntervalSeconds": 120,
|
||||
"channelSurveyType": "OFF_CHANNEL",
|
||||
"scanIntervalMillis": 0,
|
||||
"percentUtilizationThreshold": 10,
|
||||
"delayMillisecondsThreshold": 600,
|
||||
"radioType": "is2dot4GHz",
|
||||
"radioType": "is5GHzL",
|
||||
"serviceMetricDataType": "Channel",
|
||||
"statsReportFormat": "RAW"
|
||||
},
|
||||
@@ -168,12 +168,12 @@
|
||||
{
|
||||
"model_type": "ServiceMetricSurveyConfigParameters",
|
||||
"samplingInterval": 30,
|
||||
"reportingIntervalSeconds": 60,
|
||||
"channelSurveyType": "ON_CHANNEL",
|
||||
"reportingIntervalSeconds": 120,
|
||||
"channelSurveyType": "OFF_CHANNEL",
|
||||
"scanIntervalMillis": 0,
|
||||
"percentUtilizationThreshold": 10,
|
||||
"delayMillisecondsThreshold": 600,
|
||||
"radioType": "is5GHzL",
|
||||
"radioType": "is2dot4GHz",
|
||||
"serviceMetricDataType": "Channel",
|
||||
"statsReportFormat": "RAW"
|
||||
},
|
||||
@@ -192,41 +192,29 @@
|
||||
{
|
||||
"model_type": "ServiceMetricSurveyConfigParameters",
|
||||
"samplingInterval": 30,
|
||||
"reportingIntervalSeconds": 120,
|
||||
"channelSurveyType": "OFF_CHANNEL",
|
||||
"reportingIntervalSeconds": 60,
|
||||
"channelSurveyType": "ON_CHANNEL",
|
||||
"scanIntervalMillis": 0,
|
||||
"percentUtilizationThreshold": 10,
|
||||
"delayMillisecondsThreshold": 600,
|
||||
"radioType": "is5GHzL",
|
||||
"radioType": "is2dot4GHz",
|
||||
"serviceMetricDataType": "Channel",
|
||||
"statsReportFormat": "RAW"
|
||||
},
|
||||
{
|
||||
"model_type": "ServiceMetricSurveyConfigParameters",
|
||||
"samplingInterval": 30,
|
||||
"reportingIntervalSeconds": 120,
|
||||
"channelSurveyType": "OFF_CHANNEL",
|
||||
"reportingIntervalSeconds": 60,
|
||||
"channelSurveyType": "ON_CHANNEL",
|
||||
"scanIntervalMillis": 0,
|
||||
"percentUtilizationThreshold": 10,
|
||||
"delayMillisecondsThreshold": 600,
|
||||
"radioType": "is2dot4GHz",
|
||||
"radioType": "is5GHzL",
|
||||
"serviceMetricDataType": "Channel",
|
||||
"statsReportFormat": "RAW"
|
||||
}
|
||||
],
|
||||
"Neighbour": [
|
||||
{
|
||||
"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,
|
||||
@@ -251,18 +239,6 @@
|
||||
"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"
|
||||
},
|
||||
{
|
||||
"model_type": "ServiceMetricSurveyConfigParameters",
|
||||
"samplingInterval": 30,
|
||||
@@ -286,13 +262,37 @@
|
||||
"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": 1605711195528,
|
||||
"lastModifiedTimestamp": 1605711195528,
|
||||
"createdTimestamp": 1606778369931,
|
||||
"lastModifiedTimestamp": 1606778369931,
|
||||
"childProfileIds": [
|
||||
]
|
||||
}
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
[
|
||||
{
|
||||
{
|
||||
"model_type": "Profile",
|
||||
"id": 17,
|
||||
"id": 34,
|
||||
"customerId": 2,
|
||||
"profileType": "passpoint_operator",
|
||||
"name": "TipWlan-Hotspot20-Operator",
|
||||
"name": "operator-profile-2021-01-21T21:28:58.994Z",
|
||||
"details": {
|
||||
"model_type": "PasspointOperatorProfile",
|
||||
"serverOnlyAuthenticatedL2EncryptionNetwork": false,
|
||||
@@ -12,26 +12,30 @@
|
||||
"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",
|
||||
"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": 1605711164952,
|
||||
"lastModifiedTimestamp": 1605711164952,
|
||||
"childProfileIds": [
|
||||
]
|
||||
}
|
||||
"createdTimestamp": 1611264539004,
|
||||
"lastModifiedTimestamp": 1611264539004,
|
||||
"childProfileIds": []
|
||||
}
|
||||
]
|
||||
@@ -7,28 +7,18 @@
|
||||
"name": "Radius-Profile",
|
||||
"details": {
|
||||
"model_type": "RadiusProfile",
|
||||
"subnetConfiguration": null,
|
||||
"serviceRegionMap": {
|
||||
"Ottawa": {
|
||||
"model_type": "RadiusServiceRegion",
|
||||
"serverMap": {
|
||||
"Radius-Profile": [
|
||||
{
|
||||
"primaryRadiusAuthServer": {
|
||||
"model_type": "RadiusServer",
|
||||
"ipAddress": "192.168.0.1",
|
||||
"secret": "testing123",
|
||||
"authPort": 1812,
|
||||
"port": 1812,
|
||||
"timeout": null
|
||||
}
|
||||
]
|
||||
},
|
||||
"regionName": "Ottawa"
|
||||
}
|
||||
},
|
||||
"profileType": "radius"
|
||||
},
|
||||
"createdTimestamp": 1601961451668,
|
||||
"lastModifiedTimestamp": 1601961451668,
|
||||
"childProfileIds": []
|
||||
"createdTimestamp": 1611262628767,
|
||||
"lastModifiedTimestamp": 1611262628767,
|
||||
"childProfileIds": [
|
||||
]
|
||||
}
|
||||
]
|
||||
@@ -1,9 +1,9 @@
|
||||
{
|
||||
"model_type": "Profile",
|
||||
"id": 21,
|
||||
"id": 4,
|
||||
"customerId": 2,
|
||||
"profileType": "rf",
|
||||
"name": "TipWlan-rf-passpoint",
|
||||
"name": "TipWlan-rf",
|
||||
"details": {
|
||||
"model_type": "RfConfiguration",
|
||||
"rfConfigMap": {
|
||||
@@ -11,7 +11,7 @@
|
||||
"model_type": "RfElementConfiguration",
|
||||
"radioType": "is5GHz",
|
||||
"radioMode": "modeAC",
|
||||
"rf": "TipWlan-rf-passpoint",
|
||||
"rf": "TipWlan-rf",
|
||||
"beaconInterval": 100,
|
||||
"forceScanDuringVoice": "disabled",
|
||||
"rtsCtsThreshold": 65535,
|
||||
@@ -58,7 +58,7 @@
|
||||
"model_type": "RfElementConfiguration",
|
||||
"radioType": "is2dot4GHz",
|
||||
"radioMode": "modeN",
|
||||
"rf": "TipWlan-rf-passpoint",
|
||||
"rf": "TipWlan-rf",
|
||||
"beaconInterval": 100,
|
||||
"forceScanDuringVoice": "disabled",
|
||||
"rtsCtsThreshold": 65535,
|
||||
@@ -105,7 +105,7 @@
|
||||
"model_type": "RfElementConfiguration",
|
||||
"radioType": "is5GHzU",
|
||||
"radioMode": "modeAC",
|
||||
"rf": "TipWlan-rf-passpoint",
|
||||
"rf": "TipWlan-rf",
|
||||
"beaconInterval": 100,
|
||||
"forceScanDuringVoice": "disabled",
|
||||
"rtsCtsThreshold": 65535,
|
||||
@@ -152,7 +152,7 @@
|
||||
"model_type": "RfElementConfiguration",
|
||||
"radioType": "is5GHzL",
|
||||
"radioMode": "modeAC",
|
||||
"rf": "TipWlan-rf-passpoint",
|
||||
"rf": "TipWlan-rf",
|
||||
"beaconInterval": 100,
|
||||
"forceScanDuringVoice": "disabled",
|
||||
"rtsCtsThreshold": 65535,
|
||||
@@ -198,8 +198,7 @@
|
||||
},
|
||||
"profileType": "rf"
|
||||
},
|
||||
"createdTimestamp": 1605711191976,
|
||||
"lastModifiedTimestamp": 1605711191976,
|
||||
"childProfileIds": [
|
||||
]
|
||||
"createdTimestamp": 1612285248650,
|
||||
"lastModifiedTimestamp": 1612285248650,
|
||||
"childProfileIds": []
|
||||
}
|
||||
@@ -1,26 +1,27 @@
|
||||
[
|
||||
{
|
||||
{
|
||||
"model_type": "Profile",
|
||||
"id": 15,
|
||||
"id": 2,
|
||||
"customerId": 2,
|
||||
"profileType": "ssid",
|
||||
"name": "TipWlan-cloud-hotspot-access",
|
||||
"name": "TipWlan-cloud-3-radios",
|
||||
"details": {
|
||||
"model_type": "SsidConfiguration",
|
||||
"ssid": "TipWlan-cloud-hotspot-access",
|
||||
"ssid": "TipWlan-cloud-3-radios",
|
||||
"appliedRadios": [
|
||||
"is5GHzL",
|
||||
"is5GHzU"
|
||||
"is5GHzU",
|
||||
"is2dot4GHz",
|
||||
"is5GHzL"
|
||||
],
|
||||
"ssidAdminState": "enabled",
|
||||
"secureMode": "wpa2PSK",
|
||||
"secureMode": "wpa2OnlyPSK",
|
||||
"vlanId": 1,
|
||||
"keyStr": "testing123",
|
||||
"keyStr": "openwifi",
|
||||
"broadcastSsid": "enabled",
|
||||
"keyRefresh": 0,
|
||||
"noLocalSubnets": false,
|
||||
"radiusServiceName": null,
|
||||
"radiusAccountingServiceName": null,
|
||||
"radiusServiceId": 0,
|
||||
"radiusAcountingServiceInterval": 60,
|
||||
"captivePortalId": null,
|
||||
"bandwidthLimitDown": 0,
|
||||
"bandwidthLimitUp": 0,
|
||||
@@ -28,7 +29,7 @@
|
||||
"clientBandwidthLimitUp": 0,
|
||||
"videoTrafficOnly": false,
|
||||
"radioBasedConfigs": {
|
||||
"is5GHz": {
|
||||
"is5GHzU": {
|
||||
"model_type": "RadioBasedSsidConfiguration",
|
||||
"enable80211r": null,
|
||||
"enable80211k": null,
|
||||
@@ -40,7 +41,7 @@
|
||||
"enable80211k": null,
|
||||
"enable80211v": null
|
||||
},
|
||||
"is5GHzU": {
|
||||
"is5GHz": {
|
||||
"model_type": "RadioBasedSsidConfiguration",
|
||||
"enable80211r": null,
|
||||
"enable80211k": null,
|
||||
@@ -56,79 +57,19 @@
|
||||
"bonjourGatewayProfileId": null,
|
||||
"enable80211w": null,
|
||||
"wepConfig": null,
|
||||
"forwardMode": null,
|
||||
"profileType": "ssid"
|
||||
},
|
||||
"createdTimestamp": 1605711164949,
|
||||
"lastModifiedTimestamp": 1605711223372,
|
||||
"childProfileIds": [
|
||||
24
|
||||
]
|
||||
},
|
||||
{
|
||||
"model_type": "Profile",
|
||||
"id": 16,
|
||||
"customerId": 2,
|
||||
"forwardMode": "BRIDGE",
|
||||
"profileType": "ssid",
|
||||
"name": "TipWlan-cloud-hotspot-osu",
|
||||
"details": {
|
||||
"model_type": "SsidConfiguration",
|
||||
"ssid": "TipWlan-cloud-hotspot-osu",
|
||||
"appliedRadios": [
|
||||
"is2dot4GHz"
|
||||
],
|
||||
"ssidAdminState": "enabled",
|
||||
"secureMode": "open",
|
||||
"vlanId": 1,
|
||||
"keyStr": null,
|
||||
"broadcastSsid": "enabled",
|
||||
"keyRefresh": 0,
|
||||
"noLocalSubnets": false,
|
||||
"radiusServiceName": null,
|
||||
"radiusAccountingServiceName": null,
|
||||
"captivePortalId": null,
|
||||
"bandwidthLimitDown": 0,
|
||||
"bandwidthLimitUp": 0,
|
||||
"clientBandwidthLimitDown": 0,
|
||||
"clientBandwidthLimitUp": 0,
|
||||
"videoTrafficOnly": false,
|
||||
"radioBasedConfigs": {
|
||||
"is5GHz": {
|
||||
"model_type": "RadioBasedSsidConfiguration",
|
||||
"enable80211r": null,
|
||||
"enable80211k": null,
|
||||
"enable80211v": null
|
||||
},
|
||||
"is2dot4GHz": {
|
||||
"model_type": "RadioBasedSsidConfiguration",
|
||||
"enable80211r": null,
|
||||
"enable80211k": null,
|
||||
"enable80211v": null
|
||||
},
|
||||
"is5GHzU": {
|
||||
"model_type": "RadioBasedSsidConfiguration",
|
||||
"enable80211r": null,
|
||||
"enable80211k": null,
|
||||
"enable80211v": null
|
||||
},
|
||||
"is5GHzL": {
|
||||
"model_type": "RadioBasedSsidConfiguration",
|
||||
"enable80211r": null,
|
||||
"enable80211k": null,
|
||||
"enable80211v": null
|
||||
"radiusClientConfiguration": {
|
||||
"model_type": "RadiusNasConfiguration",
|
||||
"nasClientId": "DEFAULT",
|
||||
"nasClientIp": "WAN_IP",
|
||||
"userDefinedNasId": null,
|
||||
"userDefinedNasIp": null,
|
||||
"operatorId": null
|
||||
}
|
||||
},
|
||||
"bonjourGatewayProfileId": null,
|
||||
"enable80211w": null,
|
||||
"wepConfig": null,
|
||||
"forwardMode": null,
|
||||
"profileType": "ssid"
|
||||
},
|
||||
"createdTimestamp": 1605711164950,
|
||||
"lastModifiedTimestamp": 1605711171732,
|
||||
"childProfileIds": [
|
||||
19,
|
||||
20
|
||||
]
|
||||
}
|
||||
"createdTimestamp": 1612285248638,
|
||||
"lastModifiedTimestamp": 1612285248638,
|
||||
"childProfileIds": []
|
||||
}
|
||||
]
|
||||
|
||||
@@ -1,16 +1,16 @@
|
||||
[
|
||||
{
|
||||
{
|
||||
"model_type": "Profile",
|
||||
"id": 18,
|
||||
"id": 33,
|
||||
"customerId": 2,
|
||||
"profileType": "passpoint_venue",
|
||||
"name": "TipWlan-Hotspot20-Venue",
|
||||
"name": "venue-profile-2021-01-21T21:28:58.934Z",
|
||||
"details": {
|
||||
"model_type": "PasspointVenueProfile",
|
||||
"venueNameSet": [
|
||||
{
|
||||
"model_type": "PasspointVenueName",
|
||||
"locale": "fr_CA",
|
||||
"locale": "fra",
|
||||
"dupleIso3Language": "fra",
|
||||
"dupleName": "Exemple de lieu",
|
||||
"defaultDupleSeparator": ":",
|
||||
@@ -19,7 +19,7 @@
|
||||
},
|
||||
{
|
||||
"model_type": "PasspointVenueName",
|
||||
"locale": "en_CA",
|
||||
"locale": "eng",
|
||||
"dupleIso3Language": "eng",
|
||||
"dupleName": "Example passpoint_venue",
|
||||
"defaultDupleSeparator": ":",
|
||||
@@ -28,16 +28,15 @@
|
||||
}
|
||||
],
|
||||
"venueTypeAssignment": {
|
||||
"model_type": "ProfileVenueTypeAssignment",
|
||||
"model_type": "PasspointVenueTypeAssignment",
|
||||
"venueDescription": "Research and Development Facility",
|
||||
"venueGroupId": 2,
|
||||
"venueTypeId": 8
|
||||
},
|
||||
"profileType": "passpoint_venue"
|
||||
},
|
||||
"createdTimestamp": 1605711164956,
|
||||
"lastModifiedTimestamp": 1605711164956,
|
||||
"childProfileIds": [
|
||||
]
|
||||
}
|
||||
"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,12 +1,12 @@
|
||||
{
|
||||
"model_type": "Equipment",
|
||||
"id": 51,
|
||||
"id": 1,
|
||||
"customerId": 2,
|
||||
"profileId": 5,
|
||||
"profileId": 8,
|
||||
"locationId": 8,
|
||||
"equipmentType": "AP",
|
||||
"inventoryId": "Test_Client_21P10C68818122",
|
||||
"name": "Test_Client_21P10C68818122",
|
||||
"inventoryId": "Open_AP_21P10C68818122",
|
||||
"name": "Open_AP_21P10C68818122",
|
||||
"details": {
|
||||
"model_type": "ApElementConfiguration",
|
||||
"equipmentModel": "EA8300-CA",
|
||||
@@ -21,7 +21,7 @@
|
||||
"staticDnsIp1": null,
|
||||
"staticDnsIp2": null,
|
||||
"peerInfoList": [],
|
||||
"deviceName": "Default Device Name",
|
||||
"deviceName": "Open_AP_21P10C68818122",
|
||||
"locationData": null,
|
||||
"locallyConfiguredMgmtVlan": 0,
|
||||
"locallyConfigured": false,
|
||||
@@ -32,73 +32,246 @@
|
||||
"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,
|
||||
"bannedChannels": [],
|
||||
"allowedChannels": [],
|
||||
"manualBackupChannelNumber": 11,
|
||||
"rxCellSizeDb": {
|
||||
"model_type": "SourceSelectionValue",
|
||||
"source": "auto",
|
||||
"source": "profile",
|
||||
"value": -90
|
||||
},
|
||||
"probeResponseThresholdDb": {
|
||||
"model_type": "SourceSelectionValue",
|
||||
"source": "auto",
|
||||
"source": "profile",
|
||||
"value": -90
|
||||
},
|
||||
"clientDisconnectThresholdDb": {
|
||||
"model_type": "SourceSelectionValue",
|
||||
"source": "auto",
|
||||
"source": "profile",
|
||||
"value": -90
|
||||
},
|
||||
"eirpTxPower": {
|
||||
"model_type": "SourceSelectionValue",
|
||||
"source": "auto",
|
||||
"value": 32
|
||||
"source": "profile",
|
||||
"value": 18
|
||||
},
|
||||
"perimeterDetectionEnabled": true,
|
||||
"bestAPSteerType": "both",
|
||||
"deauthAttackDetection": null,
|
||||
"allowedChannelsPowerLevels": [],
|
||||
"activeChannel": 6
|
||||
"allowedChannelsPowerLevels": [
|
||||
{
|
||||
"model_type": "ChannelPowerLevel",
|
||||
"channelNumber": 1,
|
||||
"powerLevel": 18,
|
||||
"dfs": false,
|
||||
"channelWidth": 20
|
||||
},
|
||||
"is5GHzU": {
|
||||
"model_type": "ElementRadioConfiguration",
|
||||
"radioType": "is5GHzU",
|
||||
"channelNumber": 149,
|
||||
"manualChannelNumber": 149,
|
||||
"backupChannelNumber": 154,
|
||||
"bannedChannels": [],
|
||||
"allowedChannels": [],
|
||||
"rxCellSizeDb": {
|
||||
"model_type": "SourceSelectionValue",
|
||||
"source": "auto",
|
||||
"value": -90
|
||||
{
|
||||
"model_type": "ChannelPowerLevel",
|
||||
"channelNumber": 2,
|
||||
"powerLevel": 18,
|
||||
"dfs": false,
|
||||
"channelWidth": 20
|
||||
},
|
||||
"probeResponseThresholdDb": {
|
||||
"model_type": "SourceSelectionValue",
|
||||
"source": "auto",
|
||||
"value": -90
|
||||
{
|
||||
"model_type": "ChannelPowerLevel",
|
||||
"channelNumber": 3,
|
||||
"powerLevel": 18,
|
||||
"dfs": false,
|
||||
"channelWidth": 20
|
||||
},
|
||||
"clientDisconnectThresholdDb": {
|
||||
"model_type": "SourceSelectionValue",
|
||||
"source": "auto",
|
||||
"value": -90
|
||||
{
|
||||
"model_type": "ChannelPowerLevel",
|
||||
"channelNumber": 4,
|
||||
"powerLevel": 18,
|
||||
"dfs": false,
|
||||
"channelWidth": 20
|
||||
},
|
||||
"eirpTxPower": {
|
||||
"model_type": "SourceSelectionValue",
|
||||
"source": "auto",
|
||||
"value": 32
|
||||
{
|
||||
"model_type": "ChannelPowerLevel",
|
||||
"channelNumber": 5,
|
||||
"powerLevel": 18,
|
||||
"dfs": false,
|
||||
"channelWidth": 20
|
||||
},
|
||||
"perimeterDetectionEnabled": true,
|
||||
"bestAPSteerType": "both",
|
||||
"deauthAttackDetection": null,
|
||||
"allowedChannelsPowerLevels": [],
|
||||
"activeChannel": 149
|
||||
{
|
||||
"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",
|
||||
@@ -106,33 +279,88 @@
|
||||
"channelNumber": 36,
|
||||
"manualChannelNumber": 36,
|
||||
"backupChannelNumber": 44,
|
||||
"bannedChannels": [],
|
||||
"allowedChannels": [],
|
||||
"manualBackupChannelNumber": 44,
|
||||
"rxCellSizeDb": {
|
||||
"model_type": "SourceSelectionValue",
|
||||
"source": "auto",
|
||||
"source": "profile",
|
||||
"value": -90
|
||||
},
|
||||
"probeResponseThresholdDb": {
|
||||
"model_type": "SourceSelectionValue",
|
||||
"source": "auto",
|
||||
"source": "profile",
|
||||
"value": -90
|
||||
},
|
||||
"clientDisconnectThresholdDb": {
|
||||
"model_type": "SourceSelectionValue",
|
||||
"source": "auto",
|
||||
"source": "profile",
|
||||
"value": -90
|
||||
},
|
||||
"eirpTxPower": {
|
||||
"model_type": "SourceSelectionValue",
|
||||
"source": "auto",
|
||||
"value": 32
|
||||
"source": "profile",
|
||||
"value": 18
|
||||
},
|
||||
"perimeterDetectionEnabled": true,
|
||||
"bestAPSteerType": "both",
|
||||
"deauthAttackDetection": null,
|
||||
"allowedChannelsPowerLevels": [],
|
||||
"activeChannel": 36
|
||||
"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
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"advancedRadioMap": {
|
||||
@@ -143,22 +371,28 @@
|
||||
"fragmentationThresholdBytes": 2346,
|
||||
"uapsdState": "enabled",
|
||||
"stationIsolation": "disabled",
|
||||
"multicastRate": {
|
||||
"model_type": "SourceSelectionMulticast",
|
||||
"source": "profile",
|
||||
"value": "auto"
|
||||
},
|
||||
"managementRate": {
|
||||
"model_type": "SourceSelectionManagement",
|
||||
"source": "auto",
|
||||
"source": "profile",
|
||||
"value": "auto"
|
||||
},
|
||||
"bestApSettings": {
|
||||
"model_type": "SourceSelectionSteering",
|
||||
"source": "auto",
|
||||
"source": "manual",
|
||||
"value": {
|
||||
"model_type": "RadioBestApSettings",
|
||||
"mlComputed": true,
|
||||
"dropInSnrPercentage": 30,
|
||||
"minLoadFactor": 40
|
||||
"dropInSnrPercentage": 20,
|
||||
"minLoadFactor": 50
|
||||
}
|
||||
},
|
||||
"legacyBSSRate": "enabled",
|
||||
"dtimPeriod": 2,
|
||||
"deauthAttackDetection": null
|
||||
},
|
||||
"is5GHzU": {
|
||||
@@ -168,14 +402,19 @@
|
||||
"fragmentationThresholdBytes": 2346,
|
||||
"uapsdState": "enabled",
|
||||
"stationIsolation": "disabled",
|
||||
"multicastRate": {
|
||||
"model_type": "SourceSelectionMulticast",
|
||||
"source": "profile",
|
||||
"value": "auto"
|
||||
},
|
||||
"managementRate": {
|
||||
"model_type": "SourceSelectionManagement",
|
||||
"source": "auto",
|
||||
"source": "profile",
|
||||
"value": "auto"
|
||||
},
|
||||
"bestApSettings": {
|
||||
"model_type": "SourceSelectionSteering",
|
||||
"source": "auto",
|
||||
"source": "manual",
|
||||
"value": {
|
||||
"model_type": "RadioBestApSettings",
|
||||
"mlComputed": true,
|
||||
@@ -184,6 +423,7 @@
|
||||
}
|
||||
},
|
||||
"legacyBSSRate": "enabled",
|
||||
"dtimPeriod": 2,
|
||||
"deauthAttackDetection": null
|
||||
},
|
||||
"is5GHzL": {
|
||||
@@ -193,14 +433,19 @@
|
||||
"fragmentationThresholdBytes": 2346,
|
||||
"uapsdState": "enabled",
|
||||
"stationIsolation": "disabled",
|
||||
"multicastRate": {
|
||||
"model_type": "SourceSelectionMulticast",
|
||||
"source": "profile",
|
||||
"value": "auto"
|
||||
},
|
||||
"managementRate": {
|
||||
"model_type": "SourceSelectionManagement",
|
||||
"source": "auto",
|
||||
"source": "profile",
|
||||
"value": "auto"
|
||||
},
|
||||
"bestApSettings": {
|
||||
"model_type": "SourceSelectionSteering",
|
||||
"source": "auto",
|
||||
"source": "manual",
|
||||
"value": {
|
||||
"model_type": "RadioBestApSettings",
|
||||
"mlComputed": true,
|
||||
@@ -209,13 +454,19 @@
|
||||
}
|
||||
},
|
||||
"legacyBSSRate": "enabled",
|
||||
"dtimPeriod": 2,
|
||||
"deauthAttackDetection": null
|
||||
}
|
||||
}
|
||||
},
|
||||
"latitude": null,
|
||||
"longitude": null,
|
||||
"baseMacAddress": {
|
||||
"model_type": "MacAddress",
|
||||
"address": "JPWi7y5T",
|
||||
"addressAsString": "24:f5:a2:ef:2e:53"
|
||||
},
|
||||
"serial": "21P10C68818122",
|
||||
"createdTimestamp": 1591653239821,
|
||||
"lastModifiedTimestamp": 1591653241398
|
||||
"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"
|
||||
"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:30",
|
||||
"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:30",
|
||||
"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:30",
|
||||
"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:30",
|
||||
"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:30",
|
||||
"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:30",
|
||||
"timezone" : "US/Eastern"
|
||||
}
|
||||
"SATURDAY": {
|
||||
"model_type": "LocationActivityDetails",
|
||||
"busyTime": "13:30",
|
||||
"quietTime": "3:00",
|
||||
"timezone": "US/Eastern"
|
||||
}
|
||||
},
|
||||
"createdTimestamp" : 1590607043540,
|
||||
"lastModifiedTimestamp" : 1590607043540
|
||||
"maintenanceWindow": null,
|
||||
"rrmEnabled": true,
|
||||
"timezone": "US/Eastern"
|
||||
},
|
||||
"createdTimestamp": 1612285243534,
|
||||
"lastModifiedTimestamp": 1612285243534
|
||||
}
|
||||
@@ -1,9 +1,9 @@
|
||||
{
|
||||
"model_type": "Profile",
|
||||
"id": 23,
|
||||
"id": 8,
|
||||
"customerId": 2,
|
||||
"profileType": "equipment_ap",
|
||||
"name": "ApProfile-3-radios-passpoint",
|
||||
"name": "ApProfile-3-radios",
|
||||
"details": {
|
||||
"model_type": "ApNetworkConfiguration",
|
||||
"networkConfigVersion": "AP-1",
|
||||
@@ -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,14 +37,22 @@
|
||||
"bestAPSteerType": "both"
|
||||
}
|
||||
},
|
||||
"greTunnelConfigurations": [
|
||||
{
|
||||
"model_type": "GreTunnelConfiguration",
|
||||
"greTunnelName": "gre1",
|
||||
"greRemoteInetAddr": "192.168.1.101",
|
||||
"vlanIdsInGreTunnel": [
|
||||
100
|
||||
]
|
||||
}
|
||||
],
|
||||
"profileType": "equipment_ap"
|
||||
},
|
||||
"createdTimestamp": 1605711197140,
|
||||
"lastModifiedTimestamp": 1605711197140,
|
||||
"createdTimestamp": 1612285248925,
|
||||
"lastModifiedTimestamp": 1612285628377,
|
||||
"childProfileIds": [
|
||||
16,
|
||||
21,
|
||||
22,
|
||||
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",
|
||||
"name": "Default",
|
||||
"browserTitle": "Captive-portal",
|
||||
"headerContent": "Captive Portal",
|
||||
"userAcceptancePolicy": "Use this network at your own risk. No warranty of any kind.",
|
||||
"successPageMarkdownText": "Welcome to the network",
|
||||
"redirectURL": "",
|
||||
"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": 60,
|
||||
"logoFile": null,
|
||||
"backgroundFile": null,
|
||||
"walledGardenAllowlist": [],
|
||||
"usernamePasswordFile": {
|
||||
"sessionTimeoutInMinutes": 10,
|
||||
"logoFile": {
|
||||
"model_type": "ManagedFileInfo",
|
||||
"md5checksum": null,
|
||||
"lastModifiedTimestamp": null,
|
||||
"apExportUrl": "userList",
|
||||
"fileCategory": "UsernamePasswordList",
|
||||
"fileType": "TEXT",
|
||||
"altSlot": true
|
||||
"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": 42,
|
||||
"maxUsersWithSameCredentials": 3,
|
||||
"externalPolicyFile": null,
|
||||
"backgroundPosition": "left_top",
|
||||
"backgroundRepeat": "no_repeat",
|
||||
"radiusServiceName": null,
|
||||
"expiryType": "unlimited",
|
||||
"radiusServiceId": 0,
|
||||
"expiryType": "time_limited",
|
||||
"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"
|
||||
}
|
||||
"macAllowList": [
|
||||
],
|
||||
"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"
|
||||
},
|
||||
"createdTimestamp": 1602183994959,
|
||||
"lastModifiedTimestamp": 1602183994959,
|
||||
"childProfileIds": []
|
||||
}
|
||||
"createdTimestamp": 1611857459118,
|
||||
"lastModifiedTimestamp": 1611857459118,
|
||||
"childProfileIds": [
|
||||
]
|
||||
}
|
||||
]
|
||||
@@ -1,14 +1,16 @@
|
||||
[
|
||||
{
|
||||
"model_type": "Profile",
|
||||
"id": 24,
|
||||
"id": 37,
|
||||
"customerId": 2,
|
||||
"profileType": "passpoint",
|
||||
"name": "TipWlan-Hotspot20-Config",
|
||||
"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,
|
||||
@@ -43,30 +45,27 @@
|
||||
"disableDownstreamGroupAddressedForwarding": false,
|
||||
"enable2pt4GHz": true,
|
||||
"enable5GHz": true,
|
||||
"associatedAccessSsidNames": [
|
||||
"TipWlan-cloud-hotspot-access"
|
||||
"associatedAccessSsidProfileIds": [
|
||||
32
|
||||
],
|
||||
"osuSsidName": "TipWlan-cloud-hotspot-osu",
|
||||
"operatorProfileName": "TipWlan-Hotspot20-Operator",
|
||||
"venueProfileName": "TipWlan-Hotspot20-Venue",
|
||||
"idProviderProfileNames": [
|
||||
"TipWlan-Hotspot20-OSU-Provider-2",
|
||||
"TipWlan-Hotspot20-OSU-Provider"
|
||||
"osuSsidProfileId": 31,
|
||||
"passpointOperatorProfileId": 34,
|
||||
"passpointVenueProfileId": 33,
|
||||
"passpointOsuProviderProfileIds": [
|
||||
35,
|
||||
36
|
||||
],
|
||||
"accessNetworkType": "free_public_network",
|
||||
"networkAuthenticationType": "acceptance_of_terms_and_conditions",
|
||||
"associatedSsids": [
|
||||
"TipWlan-cloud-hotspot-access"
|
||||
],
|
||||
"profileType": "passpoint"
|
||||
},
|
||||
"createdTimestamp": 1605711223339,
|
||||
"lastModifiedTimestamp": 1605711223339,
|
||||
"createdTimestamp": 0,
|
||||
"lastModifiedTimestamp": 1611264539331,
|
||||
"childProfileIds": [
|
||||
17,
|
||||
18,
|
||||
19,
|
||||
20
|
||||
33,
|
||||
34,
|
||||
35,
|
||||
36
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
|
||||
@@ -1,13 +1,12 @@
|
||||
[
|
||||
{
|
||||
"model_type": "Profile",
|
||||
"id": 19,
|
||||
"id": 35,
|
||||
"customerId": 2,
|
||||
"profileType": "passpoint_osu_id_provider",
|
||||
"name": "TipWlan-Hotspot20-OSU-Provider",
|
||||
"name": "provider1-profile-2021-01-21T21:28:59.057Z",
|
||||
"details": {
|
||||
"model_type": "PasspointOsuProviderProfile",
|
||||
"domainName": "rogers.com",
|
||||
"mccMncList": [
|
||||
{
|
||||
"model_type": "PasspointMccMnc",
|
||||
@@ -81,7 +80,7 @@
|
||||
"osuFriendlyName": [
|
||||
{
|
||||
"model_type": "PasspointDuple",
|
||||
"locale": "en_CA",
|
||||
"locale": "eng",
|
||||
"dupleIso3Language": "eng",
|
||||
"dupleName": "Example provider rogers",
|
||||
"defaultDupleSeparator": ":",
|
||||
@@ -89,7 +88,7 @@
|
||||
},
|
||||
{
|
||||
"model_type": "PasspointDuple",
|
||||
"locale": "fr_CA",
|
||||
"locale": "fra",
|
||||
"dupleIso3Language": "fra",
|
||||
"dupleName": "Exemple de fournisseur rogers",
|
||||
"defaultDupleSeparator": ":",
|
||||
@@ -105,7 +104,7 @@
|
||||
"osuServiceDescription": [
|
||||
{
|
||||
"model_type": "PasspointDuple",
|
||||
"locale": "en_CA",
|
||||
"locale": "eng",
|
||||
"dupleIso3Language": "eng",
|
||||
"dupleName": "Example services rogers",
|
||||
"defaultDupleSeparator": ":",
|
||||
@@ -113,7 +112,7 @@
|
||||
},
|
||||
{
|
||||
"model_type": "PasspointDuple",
|
||||
"locale": "fr_CA",
|
||||
"locale": "fra",
|
||||
"dupleIso3Language": "fra",
|
||||
"dupleName": "Exemples de services rogers",
|
||||
"defaultDupleSeparator": ":",
|
||||
@@ -121,27 +120,23 @@
|
||||
}
|
||||
],
|
||||
"roamingOi": [
|
||||
1,
|
||||
2,
|
||||
3,
|
||||
4
|
||||
"BAA2D00100",
|
||||
"BAA2D00000"
|
||||
],
|
||||
"profileType": "passpoint_osu_id_provider"
|
||||
},
|
||||
"createdTimestamp": 1605711165325,
|
||||
"lastModifiedTimestamp": 1605711165325,
|
||||
"childProfileIds": [
|
||||
]
|
||||
"createdTimestamp": 1611264539070,
|
||||
"lastModifiedTimestamp": 1611264539070,
|
||||
"childProfileIds": []
|
||||
},
|
||||
{
|
||||
"model_type": "Profile",
|
||||
"id": 20,
|
||||
"id": 36,
|
||||
"customerId": 2,
|
||||
"profileType": "passpoint_osu_id_provider",
|
||||
"name": "TipWlan-Hotspot20-OSU-Provider-2",
|
||||
"name": "provider2-profile-2021-01-21T21:28:59.118Z",
|
||||
"details": {
|
||||
"model_type": "PasspointOsuProviderProfile",
|
||||
"domainName": "telus.com",
|
||||
"mccMncList": [
|
||||
{
|
||||
"model_type": "PasspointMccMnc",
|
||||
@@ -215,7 +210,7 @@
|
||||
"osuFriendlyName": [
|
||||
{
|
||||
"model_type": "PasspointDuple",
|
||||
"locale": "en_CA",
|
||||
"locale": "eng",
|
||||
"dupleIso3Language": "eng",
|
||||
"dupleName": "Example provider telus",
|
||||
"defaultDupleSeparator": ":",
|
||||
@@ -223,7 +218,7 @@
|
||||
},
|
||||
{
|
||||
"model_type": "PasspointDuple",
|
||||
"locale": "fr_CA",
|
||||
"locale": "fra",
|
||||
"dupleIso3Language": "fra",
|
||||
"dupleName": "Exemple de fournisseur telus",
|
||||
"defaultDupleSeparator": ":",
|
||||
@@ -239,7 +234,7 @@
|
||||
"osuServiceDescription": [
|
||||
{
|
||||
"model_type": "PasspointDuple",
|
||||
"locale": "en_CA",
|
||||
"locale": "eng",
|
||||
"dupleIso3Language": "eng",
|
||||
"dupleName": "Example services telus",
|
||||
"defaultDupleSeparator": ":",
|
||||
@@ -247,7 +242,7 @@
|
||||
},
|
||||
{
|
||||
"model_type": "PasspointDuple",
|
||||
"locale": "fr_CA",
|
||||
"locale": "fra",
|
||||
"dupleIso3Language": "fra",
|
||||
"dupleName": "Exemples de services telus",
|
||||
"defaultDupleSeparator": ":",
|
||||
@@ -255,16 +250,14 @@
|
||||
}
|
||||
],
|
||||
"roamingOi": [
|
||||
1,
|
||||
2,
|
||||
3,
|
||||
4
|
||||
"004096",
|
||||
"005014",
|
||||
"F4F5E8F5F4"
|
||||
],
|
||||
"profileType": "passpoint_osu_id_provider"
|
||||
},
|
||||
"createdTimestamp": 1605711165330,
|
||||
"lastModifiedTimestamp": 1605711165330,
|
||||
"childProfileIds": [
|
||||
]
|
||||
"createdTimestamp": 1611264539131,
|
||||
"lastModifiedTimestamp": 1611264539131,
|
||||
"childProfileIds": []
|
||||
}
|
||||
]
|
||||
@@ -1,10 +1,10 @@
|
||||
[
|
||||
{
|
||||
"model_type": "Profile",
|
||||
"id": 22,
|
||||
"id": 10,
|
||||
"customerId": 2,
|
||||
"profileType": "service_metrics_collection_config",
|
||||
"name": "Metrics-Profile-Passpoint",
|
||||
"name": "Metrics-Profile-3-Radios",
|
||||
"details": {
|
||||
"model_type": "ServiceMetricsCollectionConfigProfile",
|
||||
"radioTypes": [
|
||||
@@ -21,30 +21,6 @@
|
||||
],
|
||||
"metricConfigParameterMap": {
|
||||
"ApNode": [
|
||||
{
|
||||
"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": "is5GHzU",
|
||||
"serviceMetricDataType": "ApNode",
|
||||
"statsReportFormat": "RAW"
|
||||
},
|
||||
{
|
||||
"model_type": "ServiceMetricSurveyConfigParameters",
|
||||
"samplingInterval": 30,
|
||||
@@ -69,18 +45,6 @@
|
||||
"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"
|
||||
},
|
||||
{
|
||||
"model_type": "ServiceMetricSurveyConfigParameters",
|
||||
"samplingInterval": 30,
|
||||
@@ -92,9 +56,52 @@
|
||||
"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,
|
||||
@@ -108,13 +115,6 @@
|
||||
"reportingIntervalSeconds": 60,
|
||||
"radioType": "is2dot4GHz",
|
||||
"serviceMetricDataType": "ApSsid"
|
||||
},
|
||||
{
|
||||
"model_type": "ServiceMetricRadioConfigParameters",
|
||||
"samplingInterval": 30,
|
||||
"reportingIntervalSeconds": 60,
|
||||
"radioType": "is5GHzU",
|
||||
"serviceMetricDataType": "ApSsid"
|
||||
}
|
||||
],
|
||||
"Client": [
|
||||
@@ -144,12 +144,12 @@
|
||||
{
|
||||
"model_type": "ServiceMetricSurveyConfigParameters",
|
||||
"samplingInterval": 30,
|
||||
"reportingIntervalSeconds": 60,
|
||||
"channelSurveyType": "ON_CHANNEL",
|
||||
"reportingIntervalSeconds": 120,
|
||||
"channelSurveyType": "OFF_CHANNEL",
|
||||
"scanIntervalMillis": 0,
|
||||
"percentUtilizationThreshold": 10,
|
||||
"delayMillisecondsThreshold": 600,
|
||||
"radioType": "is2dot4GHz",
|
||||
"radioType": "is5GHzL",
|
||||
"serviceMetricDataType": "Channel",
|
||||
"statsReportFormat": "RAW"
|
||||
},
|
||||
@@ -168,12 +168,12 @@
|
||||
{
|
||||
"model_type": "ServiceMetricSurveyConfigParameters",
|
||||
"samplingInterval": 30,
|
||||
"reportingIntervalSeconds": 60,
|
||||
"channelSurveyType": "ON_CHANNEL",
|
||||
"reportingIntervalSeconds": 120,
|
||||
"channelSurveyType": "OFF_CHANNEL",
|
||||
"scanIntervalMillis": 0,
|
||||
"percentUtilizationThreshold": 10,
|
||||
"delayMillisecondsThreshold": 600,
|
||||
"radioType": "is5GHzL",
|
||||
"radioType": "is2dot4GHz",
|
||||
"serviceMetricDataType": "Channel",
|
||||
"statsReportFormat": "RAW"
|
||||
},
|
||||
@@ -192,41 +192,29 @@
|
||||
{
|
||||
"model_type": "ServiceMetricSurveyConfigParameters",
|
||||
"samplingInterval": 30,
|
||||
"reportingIntervalSeconds": 120,
|
||||
"channelSurveyType": "OFF_CHANNEL",
|
||||
"reportingIntervalSeconds": 60,
|
||||
"channelSurveyType": "ON_CHANNEL",
|
||||
"scanIntervalMillis": 0,
|
||||
"percentUtilizationThreshold": 10,
|
||||
"delayMillisecondsThreshold": 600,
|
||||
"radioType": "is5GHzL",
|
||||
"radioType": "is2dot4GHz",
|
||||
"serviceMetricDataType": "Channel",
|
||||
"statsReportFormat": "RAW"
|
||||
},
|
||||
{
|
||||
"model_type": "ServiceMetricSurveyConfigParameters",
|
||||
"samplingInterval": 30,
|
||||
"reportingIntervalSeconds": 120,
|
||||
"channelSurveyType": "OFF_CHANNEL",
|
||||
"reportingIntervalSeconds": 60,
|
||||
"channelSurveyType": "ON_CHANNEL",
|
||||
"scanIntervalMillis": 0,
|
||||
"percentUtilizationThreshold": 10,
|
||||
"delayMillisecondsThreshold": 600,
|
||||
"radioType": "is2dot4GHz",
|
||||
"radioType": "is5GHzL",
|
||||
"serviceMetricDataType": "Channel",
|
||||
"statsReportFormat": "RAW"
|
||||
}
|
||||
],
|
||||
"Neighbour": [
|
||||
{
|
||||
"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,
|
||||
@@ -251,18 +239,6 @@
|
||||
"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"
|
||||
},
|
||||
{
|
||||
"model_type": "ServiceMetricSurveyConfigParameters",
|
||||
"samplingInterval": 30,
|
||||
@@ -286,13 +262,37 @@
|
||||
"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": 1605711195528,
|
||||
"lastModifiedTimestamp": 1605711195528,
|
||||
"createdTimestamp": 1606778369931,
|
||||
"lastModifiedTimestamp": 1606778369931,
|
||||
"childProfileIds": [
|
||||
]
|
||||
}
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
[
|
||||
{
|
||||
{
|
||||
"model_type": "Profile",
|
||||
"id": 17,
|
||||
"id": 34,
|
||||
"customerId": 2,
|
||||
"profileType": "passpoint_operator",
|
||||
"name": "TipWlan-Hotspot20-Operator",
|
||||
"name": "operator-profile-2021-01-21T21:28:58.994Z",
|
||||
"details": {
|
||||
"model_type": "PasspointOperatorProfile",
|
||||
"serverOnlyAuthenticatedL2EncryptionNetwork": false,
|
||||
@@ -12,26 +12,30 @@
|
||||
"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",
|
||||
"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": 1605711164952,
|
||||
"lastModifiedTimestamp": 1605711164952,
|
||||
"childProfileIds": [
|
||||
]
|
||||
}
|
||||
"createdTimestamp": 1611264539004,
|
||||
"lastModifiedTimestamp": 1611264539004,
|
||||
"childProfileIds": []
|
||||
}
|
||||
]
|
||||
@@ -7,28 +7,18 @@
|
||||
"name": "Radius-Profile",
|
||||
"details": {
|
||||
"model_type": "RadiusProfile",
|
||||
"subnetConfiguration": null,
|
||||
"serviceRegionMap": {
|
||||
"Ottawa": {
|
||||
"model_type": "RadiusServiceRegion",
|
||||
"serverMap": {
|
||||
"Radius-Profile": [
|
||||
{
|
||||
"primaryRadiusAuthServer": {
|
||||
"model_type": "RadiusServer",
|
||||
"ipAddress": "192.168.0.1",
|
||||
"secret": "testing123",
|
||||
"authPort": 1812,
|
||||
"port": 1812,
|
||||
"timeout": null
|
||||
}
|
||||
]
|
||||
},
|
||||
"regionName": "Ottawa"
|
||||
}
|
||||
},
|
||||
"profileType": "radius"
|
||||
},
|
||||
"createdTimestamp": 1601961451668,
|
||||
"lastModifiedTimestamp": 1601961451668,
|
||||
"childProfileIds": []
|
||||
"createdTimestamp": 1611262628767,
|
||||
"lastModifiedTimestamp": 1611262628767,
|
||||
"childProfileIds": [
|
||||
]
|
||||
}
|
||||
]
|
||||
@@ -1,9 +1,9 @@
|
||||
{
|
||||
"model_type": "Profile",
|
||||
"id": 21,
|
||||
"id": 4,
|
||||
"customerId": 2,
|
||||
"profileType": "rf",
|
||||
"name": "TipWlan-rf-passpoint",
|
||||
"name": "TipWlan-rf",
|
||||
"details": {
|
||||
"model_type": "RfConfiguration",
|
||||
"rfConfigMap": {
|
||||
@@ -11,7 +11,7 @@
|
||||
"model_type": "RfElementConfiguration",
|
||||
"radioType": "is5GHz",
|
||||
"radioMode": "modeAC",
|
||||
"rf": "TipWlan-rf-passpoint",
|
||||
"rf": "TipWlan-rf",
|
||||
"beaconInterval": 100,
|
||||
"forceScanDuringVoice": "disabled",
|
||||
"rtsCtsThreshold": 65535,
|
||||
@@ -58,7 +58,7 @@
|
||||
"model_type": "RfElementConfiguration",
|
||||
"radioType": "is2dot4GHz",
|
||||
"radioMode": "modeN",
|
||||
"rf": "TipWlan-rf-passpoint",
|
||||
"rf": "TipWlan-rf",
|
||||
"beaconInterval": 100,
|
||||
"forceScanDuringVoice": "disabled",
|
||||
"rtsCtsThreshold": 65535,
|
||||
@@ -105,7 +105,7 @@
|
||||
"model_type": "RfElementConfiguration",
|
||||
"radioType": "is5GHzU",
|
||||
"radioMode": "modeAC",
|
||||
"rf": "TipWlan-rf-passpoint",
|
||||
"rf": "TipWlan-rf",
|
||||
"beaconInterval": 100,
|
||||
"forceScanDuringVoice": "disabled",
|
||||
"rtsCtsThreshold": 65535,
|
||||
@@ -152,7 +152,7 @@
|
||||
"model_type": "RfElementConfiguration",
|
||||
"radioType": "is5GHzL",
|
||||
"radioMode": "modeAC",
|
||||
"rf": "TipWlan-rf-passpoint",
|
||||
"rf": "TipWlan-rf",
|
||||
"beaconInterval": 100,
|
||||
"forceScanDuringVoice": "disabled",
|
||||
"rtsCtsThreshold": 65535,
|
||||
@@ -198,8 +198,7 @@
|
||||
},
|
||||
"profileType": "rf"
|
||||
},
|
||||
"createdTimestamp": 1605711191976,
|
||||
"lastModifiedTimestamp": 1605711191976,
|
||||
"childProfileIds": [
|
||||
]
|
||||
"createdTimestamp": 1612285248650,
|
||||
"lastModifiedTimestamp": 1612285248650,
|
||||
"childProfileIds": []
|
||||
}
|
||||
@@ -1,26 +1,27 @@
|
||||
[
|
||||
{
|
||||
{
|
||||
"model_type": "Profile",
|
||||
"id": 15,
|
||||
"id": 2,
|
||||
"customerId": 2,
|
||||
"profileType": "ssid",
|
||||
"name": "TipWlan-cloud-hotspot-access",
|
||||
"name": "TipWlan-cloud-3-radios",
|
||||
"details": {
|
||||
"model_type": "SsidConfiguration",
|
||||
"ssid": "TipWlan-cloud-hotspot-access",
|
||||
"ssid": "TipWlan-cloud-3-radios",
|
||||
"appliedRadios": [
|
||||
"is5GHzL",
|
||||
"is5GHzU"
|
||||
"is5GHzU",
|
||||
"is2dot4GHz",
|
||||
"is5GHzL"
|
||||
],
|
||||
"ssidAdminState": "enabled",
|
||||
"secureMode": "wpa2PSK",
|
||||
"secureMode": "wpa2OnlyPSK",
|
||||
"vlanId": 1,
|
||||
"keyStr": "testing123",
|
||||
"keyStr": "openwifi",
|
||||
"broadcastSsid": "enabled",
|
||||
"keyRefresh": 0,
|
||||
"noLocalSubnets": false,
|
||||
"radiusServiceName": null,
|
||||
"radiusAccountingServiceName": null,
|
||||
"radiusServiceId": 0,
|
||||
"radiusAcountingServiceInterval": 60,
|
||||
"captivePortalId": null,
|
||||
"bandwidthLimitDown": 0,
|
||||
"bandwidthLimitUp": 0,
|
||||
@@ -28,7 +29,7 @@
|
||||
"clientBandwidthLimitUp": 0,
|
||||
"videoTrafficOnly": false,
|
||||
"radioBasedConfigs": {
|
||||
"is5GHz": {
|
||||
"is5GHzU": {
|
||||
"model_type": "RadioBasedSsidConfiguration",
|
||||
"enable80211r": null,
|
||||
"enable80211k": null,
|
||||
@@ -40,7 +41,7 @@
|
||||
"enable80211k": null,
|
||||
"enable80211v": null
|
||||
},
|
||||
"is5GHzU": {
|
||||
"is5GHz": {
|
||||
"model_type": "RadioBasedSsidConfiguration",
|
||||
"enable80211r": null,
|
||||
"enable80211k": null,
|
||||
@@ -56,79 +57,19 @@
|
||||
"bonjourGatewayProfileId": null,
|
||||
"enable80211w": null,
|
||||
"wepConfig": null,
|
||||
"forwardMode": null,
|
||||
"profileType": "ssid"
|
||||
},
|
||||
"createdTimestamp": 1605711164949,
|
||||
"lastModifiedTimestamp": 1605711223372,
|
||||
"childProfileIds": [
|
||||
24
|
||||
]
|
||||
},
|
||||
{
|
||||
"model_type": "Profile",
|
||||
"id": 16,
|
||||
"customerId": 2,
|
||||
"forwardMode": "BRIDGE",
|
||||
"profileType": "ssid",
|
||||
"name": "TipWlan-cloud-hotspot-osu",
|
||||
"details": {
|
||||
"model_type": "SsidConfiguration",
|
||||
"ssid": "TipWlan-cloud-hotspot-osu",
|
||||
"appliedRadios": [
|
||||
"is2dot4GHz"
|
||||
],
|
||||
"ssidAdminState": "enabled",
|
||||
"secureMode": "open",
|
||||
"vlanId": 1,
|
||||
"keyStr": null,
|
||||
"broadcastSsid": "enabled",
|
||||
"keyRefresh": 0,
|
||||
"noLocalSubnets": false,
|
||||
"radiusServiceName": null,
|
||||
"radiusAccountingServiceName": null,
|
||||
"captivePortalId": null,
|
||||
"bandwidthLimitDown": 0,
|
||||
"bandwidthLimitUp": 0,
|
||||
"clientBandwidthLimitDown": 0,
|
||||
"clientBandwidthLimitUp": 0,
|
||||
"videoTrafficOnly": false,
|
||||
"radioBasedConfigs": {
|
||||
"is5GHz": {
|
||||
"model_type": "RadioBasedSsidConfiguration",
|
||||
"enable80211r": null,
|
||||
"enable80211k": null,
|
||||
"enable80211v": null
|
||||
},
|
||||
"is2dot4GHz": {
|
||||
"model_type": "RadioBasedSsidConfiguration",
|
||||
"enable80211r": null,
|
||||
"enable80211k": null,
|
||||
"enable80211v": null
|
||||
},
|
||||
"is5GHzU": {
|
||||
"model_type": "RadioBasedSsidConfiguration",
|
||||
"enable80211r": null,
|
||||
"enable80211k": null,
|
||||
"enable80211v": null
|
||||
},
|
||||
"is5GHzL": {
|
||||
"model_type": "RadioBasedSsidConfiguration",
|
||||
"enable80211r": null,
|
||||
"enable80211k": null,
|
||||
"enable80211v": null
|
||||
"radiusClientConfiguration": {
|
||||
"model_type": "RadiusNasConfiguration",
|
||||
"nasClientId": "DEFAULT",
|
||||
"nasClientIp": "WAN_IP",
|
||||
"userDefinedNasId": null,
|
||||
"userDefinedNasIp": null,
|
||||
"operatorId": null
|
||||
}
|
||||
},
|
||||
"bonjourGatewayProfileId": null,
|
||||
"enable80211w": null,
|
||||
"wepConfig": null,
|
||||
"forwardMode": null,
|
||||
"profileType": "ssid"
|
||||
},
|
||||
"createdTimestamp": 1605711164950,
|
||||
"lastModifiedTimestamp": 1605711171732,
|
||||
"childProfileIds": [
|
||||
19,
|
||||
20
|
||||
]
|
||||
}
|
||||
"createdTimestamp": 1612285248638,
|
||||
"lastModifiedTimestamp": 1612285248638,
|
||||
"childProfileIds": []
|
||||
}
|
||||
]
|
||||
|
||||
@@ -1,16 +1,16 @@
|
||||
[
|
||||
{
|
||||
{
|
||||
"model_type": "Profile",
|
||||
"id": 18,
|
||||
"id": 33,
|
||||
"customerId": 2,
|
||||
"profileType": "passpoint_venue",
|
||||
"name": "TipWlan-Hotspot20-Venue",
|
||||
"name": "venue-profile-2021-01-21T21:28:58.934Z",
|
||||
"details": {
|
||||
"model_type": "PasspointVenueProfile",
|
||||
"venueNameSet": [
|
||||
{
|
||||
"model_type": "PasspointVenueName",
|
||||
"locale": "fr_CA",
|
||||
"locale": "fra",
|
||||
"dupleIso3Language": "fra",
|
||||
"dupleName": "Exemple de lieu",
|
||||
"defaultDupleSeparator": ":",
|
||||
@@ -19,7 +19,7 @@
|
||||
},
|
||||
{
|
||||
"model_type": "PasspointVenueName",
|
||||
"locale": "en_CA",
|
||||
"locale": "eng",
|
||||
"dupleIso3Language": "eng",
|
||||
"dupleName": "Example passpoint_venue",
|
||||
"defaultDupleSeparator": ":",
|
||||
@@ -28,16 +28,15 @@
|
||||
}
|
||||
],
|
||||
"venueTypeAssignment": {
|
||||
"model_type": "ProfileVenueTypeAssignment",
|
||||
"model_type": "PasspointVenueTypeAssignment",
|
||||
"venueDescription": "Research and Development Facility",
|
||||
"venueGroupId": 2,
|
||||
"venueTypeId": 8
|
||||
},
|
||||
"profileType": "passpoint_venue"
|
||||
},
|
||||
"createdTimestamp": 1605711164956,
|
||||
"lastModifiedTimestamp": 1605711164956,
|
||||
"childProfileIds": [
|
||||
]
|
||||
}
|
||||
"createdTimestamp": 1611264538947,
|
||||
"lastModifiedTimestamp": 1611264538947,
|
||||
"childProfileIds": []
|
||||
}
|
||||
]
|
||||
@@ -7,6 +7,7 @@
|
||||
<listEntry value="1"/>
|
||||
</listAttribute>
|
||||
<booleanAttribute key="org.eclipse.jdt.launching.ATTR_EXCLUDE_TEST_CODE" value="true"/>
|
||||
<booleanAttribute key="org.eclipse.jdt.launching.ATTR_SHOW_CODEDETAILS_IN_EXCEPTION_MESSAGES" value="true"/>
|
||||
<booleanAttribute key="org.eclipse.jdt.launching.ATTR_USE_CLASSPATH_ONLY_JAR" value="false"/>
|
||||
<booleanAttribute key="org.eclipse.jdt.launching.ATTR_USE_START_ON_FIRST_THREAD" value="true"/>
|
||||
<stringAttribute key="org.eclipse.jdt.launching.CLASSPATH_PROVIDER" value="org.eclipse.m2e.launchconfig.classpathProvider"/>
|
||||
|
||||
@@ -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,73 +136,45 @@ 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());
|
||||
|
||||
Stopwatch stopwatchTimerMessageProcess = timerMessageProcess.start();
|
||||
try {
|
||||
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);
|
||||
messagesReceived.increment();
|
||||
messageBytesReceived.increment(payload.length);
|
||||
|
||||
if (payload[0] == 0x78) {
|
||||
// looks like zlib-compressed data, let's
|
||||
@@ -188,59 +182,25 @@ public class OpensyncMqttClient implements ApplicationListener<ContextClosedEven
|
||||
// it before deserializing
|
||||
payload = ZlibUtil.decompress(payload);
|
||||
}
|
||||
|
||||
// attempt to parse the message as protobuf
|
||||
MessageOrBuilder encodedMsg = null;
|
||||
try {
|
||||
|
||||
encodedMsg = Report.parseFrom(payload);
|
||||
|
||||
MQTT_LOG.info("topic = {} Report = {}", mqttMsg.getTopic(),
|
||||
jsonPrinter.print(encodedMsg));
|
||||
|
||||
|
||||
extIntegrationInterface.processMqttMessage(mqttMsg.getTopic(), (Report) encodedMsg);
|
||||
// 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);
|
||||
|
||||
@@ -1,52 +1,48 @@
|
||||
|
||||
package com.telecominfraproject.wlan.opensync.ovsdb;
|
||||
|
||||
import java.security.cert.X509Certificate;
|
||||
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 javax.annotation.PostConstruct;
|
||||
|
||||
import com.google.common.collect.ImmutableMap;
|
||||
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.core.model.equipment.MacAddress;
|
||||
import com.telecominfraproject.wlan.core.model.equipment.RadioType;
|
||||
import com.telecominfraproject.wlan.equipment.models.CellSizeAttributes;
|
||||
import com.telecominfraproject.wlan.opensync.external.integration.OpensyncExternalIntegrationInterface;
|
||||
import com.telecominfraproject.wlan.opensync.external.integration.OpensyncExternalIntegrationInterface.RowUpdateOperation;
|
||||
import com.telecominfraproject.wlan.opensync.external.integration.OvsdbClientInterface;
|
||||
import com.telecominfraproject.wlan.opensync.external.integration.OvsdbSession;
|
||||
import com.telecominfraproject.wlan.opensync.external.integration.OvsdbSessionMapInterface;
|
||||
import com.telecominfraproject.wlan.opensync.external.integration.models.*;
|
||||
import com.telecominfraproject.wlan.opensync.ovsdb.dao.OvsdbDao;
|
||||
import com.telecominfraproject.wlan.opensync.ovsdb.dao.OvsdbMonitor;
|
||||
import com.telecominfraproject.wlan.opensync.ovsdb.metrics.OvsdbClientWithMetrics;
|
||||
import com.telecominfraproject.wlan.opensync.ovsdb.metrics.OvsdbMetrics;
|
||||
import com.telecominfraproject.wlan.opensync.util.OvsdbStringConstants;
|
||||
import com.telecominfraproject.wlan.opensync.util.SslUtil;
|
||||
import com.vmware.ovsdb.callback.ConnectionCallback;
|
||||
import com.vmware.ovsdb.exception.OvsdbClientException;
|
||||
import com.vmware.ovsdb.protocol.methods.*;
|
||||
import com.vmware.ovsdb.protocol.operation.notation.Row;
|
||||
import com.vmware.ovsdb.protocol.operation.notation.Value;
|
||||
import com.vmware.ovsdb.service.OvsdbClient;
|
||||
import com.vmware.ovsdb.service.OvsdbPassiveConnectionListener;
|
||||
import io.netty.handler.ssl.SslContext;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.context.annotation.Profile;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import com.google.common.collect.ImmutableMap;
|
||||
import com.telecominfraproject.wlan.core.model.equipment.MacAddress;
|
||||
import com.telecominfraproject.wlan.core.model.equipment.RadioType;
|
||||
import com.telecominfraproject.wlan.opensync.external.integration.OpensyncExternalIntegrationInterface;
|
||||
import com.telecominfraproject.wlan.opensync.external.integration.OpensyncExternalIntegrationInterface.RowUpdateOperation;
|
||||
import com.telecominfraproject.wlan.opensync.external.integration.OvsdbClientInterface;
|
||||
import com.telecominfraproject.wlan.opensync.external.integration.OvsdbSession;
|
||||
import com.telecominfraproject.wlan.opensync.external.integration.OvsdbSessionMapInterface;
|
||||
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.OpensyncAPInetState;
|
||||
import com.telecominfraproject.wlan.opensync.external.integration.models.OpensyncAPVIFState;
|
||||
import com.telecominfraproject.wlan.opensync.external.integration.models.OpensyncWifiAssociatedClients;
|
||||
import com.telecominfraproject.wlan.opensync.ovsdb.dao.OvsdbDao;
|
||||
import com.telecominfraproject.wlan.opensync.ovsdb.dao.utilities.OvsdbStringConstants;
|
||||
import com.telecominfraproject.wlan.opensync.util.SslUtil;
|
||||
import com.telecominfraproject.wlan.profile.network.models.ApNetworkConfiguration;
|
||||
import com.vmware.ovsdb.callback.ConnectionCallback;
|
||||
import com.vmware.ovsdb.callback.MonitorCallback;
|
||||
import com.vmware.ovsdb.exception.OvsdbClientException;
|
||||
import com.vmware.ovsdb.protocol.methods.MonitorRequest;
|
||||
import com.vmware.ovsdb.protocol.methods.MonitorRequests;
|
||||
import com.vmware.ovsdb.protocol.methods.MonitorSelect;
|
||||
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;
|
||||
import com.vmware.ovsdb.service.OvsdbPassiveConnectionListener;
|
||||
|
||||
import io.netty.handler.ssl.SslContext;
|
||||
import javax.annotation.PostConstruct;
|
||||
import java.security.cert.X509Certificate;
|
||||
import java.util.*;
|
||||
import java.util.concurrent.CompletableFuture;
|
||||
import java.util.concurrent.ExecutionException;
|
||||
|
||||
@Profile("ovsdb_manager")
|
||||
@Component
|
||||
@@ -54,6 +50,16 @@ public class TipWlanOvsdbClient implements OvsdbClientInterface {
|
||||
|
||||
private static final Logger LOG = LoggerFactory.getLogger(TipWlanOvsdbClient.class);
|
||||
|
||||
private final TagList tags = CloudMetricsTags.commonTags;
|
||||
|
||||
private final Counter connectionsAttempted = new BasicCounter(MonitorConfig.builder("osgw-connectionsAttempted").withTags(tags).build());
|
||||
|
||||
private final Counter connectionsFailed = new BasicCounter(MonitorConfig.builder("osgw-connectionsFailed").withTags(tags).build());
|
||||
|
||||
private final Counter connectionsCreated = new BasicCounter(MonitorConfig.builder("osgw-connectionsCreated").withTags(tags).build());
|
||||
|
||||
private final Counter connectionsDropped = new BasicCounter(MonitorConfig.builder("osgw-connectionsDropped").withTags(tags).build());
|
||||
|
||||
@org.springframework.beans.factory.annotation.Value("${tip.wlan.ovsdb.listenPort:6640}")
|
||||
private int ovsdbListenPort;
|
||||
|
||||
@@ -63,6 +69,9 @@ public class TipWlanOvsdbClient implements OvsdbClientInterface {
|
||||
@org.springframework.beans.factory.annotation.Value("${tip.wlan.preventClientCnAlteration:false}")
|
||||
private boolean preventClientCnAlteration;
|
||||
|
||||
@org.springframework.beans.factory.annotation.Value("${tip.wlan.defaultCommandDurationSec:3600}")
|
||||
private long defaultCommandDurationSec;
|
||||
|
||||
@Autowired
|
||||
private SslContext sslContext;
|
||||
|
||||
@@ -78,6 +87,22 @@ public class TipWlanOvsdbClient implements OvsdbClientInterface {
|
||||
@Autowired
|
||||
private OvsdbSessionMapInterface ovsdbSessionMapInterface;
|
||||
|
||||
@Autowired
|
||||
private OvsdbMetrics ovsdbMetrics;
|
||||
|
||||
@org.springframework.beans.factory.annotation.Value("${tip.wlan.manager.collectionIntervalSec.event:60}")
|
||||
private long collectionIntervalSecEvent;
|
||||
|
||||
// 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);
|
||||
}
|
||||
|
||||
@PostConstruct
|
||||
private void postCreate() {
|
||||
listenForConnections();
|
||||
@@ -90,12 +115,17 @@ public class TipWlanOvsdbClient implements OvsdbClientInterface {
|
||||
@Override
|
||||
public void connected(OvsdbClient ovsdbClient) {
|
||||
|
||||
connectionsAttempted.increment();
|
||||
|
||||
if (!(ovsdbClient instanceof OvsdbClientWithMetrics)) {
|
||||
ovsdbClient = new OvsdbClientWithMetrics(ovsdbClient, ovsdbMetrics);
|
||||
}
|
||||
|
||||
String remoteHost = ovsdbClient.getConnectionInfo().getRemoteAddress().getHostAddress();
|
||||
int localPort = ovsdbClient.getConnectionInfo().getLocalPort();
|
||||
String subjectDn = null;
|
||||
String subjectDn;
|
||||
try {
|
||||
subjectDn = ((X509Certificate) ovsdbClient.getConnectionInfo().getRemoteCertificate())
|
||||
.getSubjectDN().getName();
|
||||
subjectDn = ((X509Certificate) ovsdbClient.getConnectionInfo().getRemoteCertificate()).getSubjectDN().getName();
|
||||
|
||||
String clientCn = SslUtil.extractCN(subjectDn);
|
||||
LOG.info("ovsdbClient connecting from {} on port {} clientCn {}", remoteHost, localPort, clientCn);
|
||||
@@ -110,41 +140,36 @@ public class TipWlanOvsdbClient implements OvsdbClientInterface {
|
||||
|
||||
extIntegrationInterface.apConnected(key, connectNodeInfo);
|
||||
|
||||
// push configuration to AP
|
||||
connectNodeInfo = processConnectRequest(ovsdbClient, clientCn, connectNodeInfo);
|
||||
processConnectRequest(ovsdbClient, clientCn, connectNodeInfo);
|
||||
|
||||
monitorOvsdbStateTables(ovsdbClient, key);
|
||||
|
||||
connectionsCreated.increment();
|
||||
LOG.info("ovsdbClient connected from {} on port {} AP {} ", remoteHost, localPort, key);
|
||||
LOG.info("ovsdbClient connectedClients = {}", ovsdbSessionMapInterface.getNumSessions());
|
||||
|
||||
} catch (IllegalStateException e) {
|
||||
connectionsFailed.increment();
|
||||
LOG.error("autoprovisioning error {}", e.getMessage(), e);
|
||||
// something is wrong with the SSL
|
||||
ovsdbClient.shutdown();
|
||||
return;
|
||||
} catch (Exception e) {
|
||||
connectionsFailed.increment();
|
||||
LOG.error("ovsdbClient error", e);
|
||||
// something is wrong with the SSL
|
||||
ovsdbClient.shutdown();
|
||||
return;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void disconnected(OvsdbClient ovsdbClient) {
|
||||
String remoteHost = ovsdbClient.getConnectionInfo().getRemoteAddress().getHostAddress();
|
||||
int localPort = ovsdbClient.getConnectionInfo().getLocalPort();
|
||||
String subjectDn = null;
|
||||
try {
|
||||
subjectDn = ((X509Certificate) ovsdbClient.getConnectionInfo().getRemoteCertificate())
|
||||
.getSubjectDN().getName();
|
||||
} catch (Exception e) {
|
||||
// do nothing
|
||||
}
|
||||
|
||||
String clientCn = SslUtil.extractCN(subjectDn);
|
||||
connectionsDropped.increment();
|
||||
|
||||
String remoteHost;
|
||||
int localPort;
|
||||
String clientCn;
|
||||
|
||||
// disconnected - deregister ovsdbClient from our
|
||||
// connectedClients table
|
||||
@@ -154,22 +179,37 @@ public class TipWlanOvsdbClient implements OvsdbClientInterface {
|
||||
// so we are doing a reverse lookup here, and then if we find
|
||||
// the key we will
|
||||
// remove the entry from the connectedClients.
|
||||
String key = ovsdbSessionMapInterface.lookupClientId(ovsdbClient);
|
||||
String key;
|
||||
|
||||
try {
|
||||
remoteHost = ovsdbClient.getConnectionInfo().getRemoteAddress().getHostAddress();
|
||||
localPort = ovsdbClient.getConnectionInfo().getLocalPort();
|
||||
String subjectDn = null;
|
||||
try {
|
||||
subjectDn = ((X509Certificate) ovsdbClient.getConnectionInfo().getRemoteCertificate()).getSubjectDN().getName();
|
||||
} catch (Exception e) {
|
||||
// do nothing
|
||||
}
|
||||
clientCn = SslUtil.extractCN(subjectDn);
|
||||
key = ovsdbSessionMapInterface.lookupClientId(ovsdbClient);
|
||||
if (key != null) {
|
||||
try {
|
||||
extIntegrationInterface.apDisconnected(key);
|
||||
ovsdbSessionMapInterface.removeSession(key);
|
||||
} catch (Exception e) {
|
||||
LOG.debug("Unable to process ap disconnect. {}", e.getMessage());
|
||||
} finally {
|
||||
ovsdbClient.shutdown();
|
||||
}
|
||||
}
|
||||
LOG.info("ovsdbClient disconnected from {} on port {} clientCn {} AP {} ", remoteHost, localPort, clientCn, key);
|
||||
LOG.info("ovsdbClient connectedClients = {}", ovsdbSessionMapInterface.getNumSessions());
|
||||
} finally {
|
||||
try {
|
||||
ovsdbClient.shutdown();
|
||||
} catch (Exception e) {
|
||||
LOG.error("Caught Exception shutting down ovsdb client, may have already been disconnected", e);
|
||||
}
|
||||
|
||||
LOG.info("ovsdbClient disconnected from {} on port {} clientCn {} AP {} ", remoteHost, localPort,
|
||||
clientCn, key);
|
||||
LOG.info("ovsdbClient connectedClients = {}", ovsdbSessionMapInterface.getNumSessions());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -180,12 +220,10 @@ public class TipWlanOvsdbClient implements OvsdbClientInterface {
|
||||
LOG.info("Manager waiting for connection on port {}...", ovsdbListenPort);
|
||||
}
|
||||
|
||||
private ConnectNodeInfo processConnectRequest(OvsdbClient ovsdbClient, String clientCn,
|
||||
ConnectNodeInfo connectNodeInfo) {
|
||||
private void processConnectRequest(OvsdbClient ovsdbClient, String clientCn, ConnectNodeInfo connectNodeInfo) {
|
||||
|
||||
LOG.debug("Starting Client connect");
|
||||
connectNodeInfo = ovsdbDao.updateConnectNodeInfoOnConnect(ovsdbClient, clientCn, connectNodeInfo,
|
||||
preventClientCnAlteration);
|
||||
connectNodeInfo = ovsdbDao.updateConnectNodeInfoOnConnect(ovsdbClient, clientCn, connectNodeInfo, preventClientCnAlteration);
|
||||
|
||||
// successfully connected - register it in our
|
||||
// connectedClients table
|
||||
@@ -193,43 +231,43 @@ public class TipWlanOvsdbClient implements OvsdbClientInterface {
|
||||
|
||||
LOG.debug("Client {} connect for AP {}", clientCn, apId);
|
||||
|
||||
ovsdbDao.removeAllPasspointConfigs(ovsdbClient);
|
||||
ovsdbDao.removeAllSsids(ovsdbClient); // always
|
||||
ovsdbDao.removeAllInetConfigs(ovsdbClient);
|
||||
ovsdbDao.removeWifiRrm(ovsdbClient);
|
||||
ovsdbDao.removeRadsecRadiusAndRealmConfigs(ovsdbClient);
|
||||
ovsdbDao.removeAllStatsConfigs(ovsdbClient); // always
|
||||
|
||||
extIntegrationInterface.clearEquipmentStatus(apId);
|
||||
|
||||
OpensyncAPConfig opensyncAPConfig = extIntegrationInterface.getApConfig(apId);
|
||||
|
||||
if (opensyncAPConfig != null) {
|
||||
// cleanup existing
|
||||
ovsdbDao.removeAllStatsConfigs(ovsdbClient); // always
|
||||
ovsdbDao.removeAllPasspointConfigs(ovsdbClient);
|
||||
ovsdbDao.removeWifiRrm(ovsdbClient);
|
||||
ovsdbDao.removeAllSsids(ovsdbClient, opensyncAPConfig); // always
|
||||
ovsdbDao.removeAllGreTunnels(ovsdbClient, opensyncAPConfig);
|
||||
// reconfigure
|
||||
ovsdbDao.configureWifiRadios(ovsdbClient, opensyncAPConfig);
|
||||
ovsdbDao.configureInterfaces(ovsdbClient);
|
||||
ovsdbDao.configureGreTunnels(ovsdbClient, opensyncAPConfig);
|
||||
ovsdbDao.configureSsids(ovsdbClient, opensyncAPConfig);
|
||||
ovsdbDao.configureNode(ovsdbClient, opensyncAPConfig);
|
||||
ovsdbDao.configureWifiRrm(ovsdbClient, opensyncAPConfig);
|
||||
ovsdbDao.configureGreTunnels(ovsdbClient, opensyncAPConfig);
|
||||
ovsdbDao.createVlanNetworkInterfaces(ovsdbClient, opensyncAPConfig);
|
||||
ovsdbDao.configureRadsecRadiusAndRealm(ovsdbClient, opensyncAPConfig);
|
||||
ovsdbDao.configureSsids(ovsdbClient, opensyncAPConfig);
|
||||
if (opensyncAPConfig.getHotspotConfig() != null) {
|
||||
ovsdbDao.configureHotspots(ovsdbClient, opensyncAPConfig);
|
||||
}
|
||||
ovsdbDao.configureStatsFromProfile(ovsdbClient, opensyncAPConfig);
|
||||
if (((ApNetworkConfiguration) opensyncAPConfig.getApProfile().getDetails()).getSyntheticClientEnabled()) {
|
||||
ovsdbDao.enableNetworkProbeForSyntheticClient(ovsdbClient);
|
||||
}
|
||||
} else {
|
||||
ovsdbDao.removeAllPasspointConfigs(ovsdbClient);
|
||||
ovsdbDao.removeAllStatsConfigs(ovsdbClient); // always
|
||||
ovsdbDao.removeWifiRrm(ovsdbClient);
|
||||
ovsdbDao.removeAllSsids(ovsdbClient); // always
|
||||
ovsdbDao.removeAllGreTunnels(ovsdbClient, null);
|
||||
}
|
||||
|
||||
ovsdbDao.configureInterfaces(ovsdbClient);
|
||||
ovsdbDao.configureWifiRadios(ovsdbClient, opensyncAPConfig);
|
||||
|
||||
ovsdbDao.configureStatsFromProfile(ovsdbClient, opensyncAPConfig);
|
||||
if (ovsdbDao.getDeviceStatsReportingInterval(ovsdbClient) != collectionIntervalSecDeviceStats) {
|
||||
ovsdbDao.updateDeviceStatsReportingInterval(ovsdbClient, collectionIntervalSecDeviceStats);
|
||||
}
|
||||
ovsdbDao.enableNetworkProbeForSyntheticClient(ovsdbClient);
|
||||
ovsdbDao.updateEventReportingInterval(ovsdbClient, collectionIntervalSecEvent);
|
||||
|
||||
} else {
|
||||
LOG.info("No Configuration available for {}", apId);
|
||||
}
|
||||
|
||||
LOG.debug("Client connect Done");
|
||||
return connectNodeInfo;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -249,9 +287,16 @@ public class TipWlanOvsdbClient implements OvsdbClientInterface {
|
||||
throw new IllegalStateException("AP with id " + apId + " is not connected");
|
||||
}
|
||||
|
||||
String ret = ovsdbDao.changeRedirectorAddress(ovsdbSession.getOvsdbClient(), apId, newRedirectorAddress);
|
||||
return ovsdbDao.changeRedirectorAddress(ovsdbSession.getOvsdbClient(), apId, newRedirectorAddress);
|
||||
}
|
||||
|
||||
return ret;
|
||||
public String processBlinkRequest(String apId, boolean blinkAllLEDs) {
|
||||
OvsdbSession ovsdbSession = ovsdbSessionMapInterface.getSession(apId);
|
||||
if (ovsdbSession == null) {
|
||||
throw new IllegalStateException("AP with id " + apId + " is not connected");
|
||||
}
|
||||
|
||||
return ovsdbDao.processBlinkRequest(ovsdbSession.getOvsdbClient(), apId, blinkAllLEDs);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -270,26 +315,37 @@ public class TipWlanOvsdbClient implements OvsdbClientInterface {
|
||||
LOG.warn("AP with id " + apId + " does not have a config to apply.");
|
||||
return;
|
||||
}
|
||||
ovsdbDao.removeAllStatsConfigs(ovsdbClient); // always
|
||||
ovsdbDao.removeAllPasspointConfigs(ovsdbClient);
|
||||
ovsdbDao.removeWifiRrm(ovsdbClient);
|
||||
ovsdbDao.removeAllSsids(ovsdbClient, opensyncAPConfig); // always
|
||||
ovsdbDao.removeAllGreTunnels(ovsdbClient, opensyncAPConfig);
|
||||
|
||||
ovsdbDao.configureWifiRadios(ovsdbClient, opensyncAPConfig);
|
||||
ovsdbDao.configureInterfaces(ovsdbClient);
|
||||
ovsdbDao.configureGreTunnels(ovsdbClient, opensyncAPConfig);
|
||||
ovsdbDao.configureSsids(ovsdbClient, opensyncAPConfig);
|
||||
ovsdbDao.removeAllPasspointConfigs(ovsdbClient);
|
||||
ovsdbDao.removeAllSsids(ovsdbClient); // always
|
||||
ovsdbDao.removeAllInetConfigs(ovsdbClient);
|
||||
ovsdbDao.removeWifiRrm(ovsdbClient);
|
||||
ovsdbDao.removeRadsecRadiusAndRealmConfigs(ovsdbClient);
|
||||
ovsdbDao.removeAllStatsConfigs(ovsdbClient);
|
||||
|
||||
extIntegrationInterface.clearEquipmentStatus(apId);
|
||||
|
||||
ovsdbDao.configureNode(ovsdbClient, opensyncAPConfig);
|
||||
ovsdbDao.configureWifiRrm(ovsdbClient, opensyncAPConfig);
|
||||
ovsdbDao.configureGreTunnels(ovsdbClient, opensyncAPConfig);
|
||||
ovsdbDao.createVlanNetworkInterfaces(ovsdbClient, opensyncAPConfig);
|
||||
ovsdbDao.configureRadsecRadiusAndRealm(ovsdbClient, opensyncAPConfig);
|
||||
ovsdbDao.configureSsids(ovsdbClient, opensyncAPConfig);
|
||||
if (opensyncAPConfig.getHotspotConfig() != null) {
|
||||
ovsdbDao.configureHotspots(ovsdbClient, opensyncAPConfig);
|
||||
}
|
||||
|
||||
ovsdbDao.configureInterfaces(ovsdbClient);
|
||||
ovsdbDao.configureWifiRadios(ovsdbClient, opensyncAPConfig);
|
||||
|
||||
ovsdbDao.configureStatsFromProfile(ovsdbClient, opensyncAPConfig);
|
||||
if (ovsdbDao.getDeviceStatsReportingInterval(ovsdbClient) != collectionIntervalSecDeviceStats) {
|
||||
ovsdbDao.updateDeviceStatsReportingInterval(ovsdbClient, collectionIntervalSecDeviceStats);
|
||||
}
|
||||
LOG.debug("Finished processConfigChanged for {}", apId);
|
||||
ovsdbDao.enableNetworkProbeForSyntheticClient(ovsdbClient);
|
||||
ovsdbDao.updateEventReportingInterval(ovsdbClient, collectionIntervalSecEvent);
|
||||
|
||||
LOG.debug("Finished processConfigChanged for {}", apId);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -323,17 +379,20 @@ public class TipWlanOvsdbClient implements OvsdbClientInterface {
|
||||
} catch (OvsdbClientException e) {
|
||||
LOG.debug("Could not enable monitor for Wifi_Radio_State table. {}", e.getMessage());
|
||||
}
|
||||
|
||||
try {
|
||||
monitorWifiInetStateDbTable(ovsdbClient, key);
|
||||
} catch (OvsdbClientException e) {
|
||||
LOG.debug("Could not enable monitor for Wifi_Inet_State table. {}", e.getMessage());
|
||||
}
|
||||
|
||||
try {
|
||||
monitorWifiVifStateDbTable(ovsdbClient, key);
|
||||
} catch (OvsdbClientException e) {
|
||||
LOG.debug("Could not enable monitor for Wifi_VIF_State table. {}", e.getMessage());
|
||||
|
||||
}
|
||||
|
||||
try {
|
||||
monitorWifiAssociatedClientsDbTable(ovsdbClient, key);
|
||||
} catch (OvsdbClientException e) {
|
||||
@@ -346,6 +405,7 @@ public class TipWlanOvsdbClient implements OvsdbClientInterface {
|
||||
LOG.debug("Could not enable monitor for AWLAN_Node table. {}", e.getMessage());
|
||||
|
||||
}
|
||||
|
||||
try {
|
||||
monitorDhcpLeasedIpDbTable(ovsdbClient, key);
|
||||
} catch (OvsdbClientException e) {
|
||||
@@ -359,22 +419,30 @@ public class TipWlanOvsdbClient implements OvsdbClientInterface {
|
||||
LOG.debug("Could not enable monitor for Command_State table. {}", e.getMessage());
|
||||
|
||||
}
|
||||
LOG.debug("Finished (re)setting monitors for AP {}", key);
|
||||
|
||||
try {
|
||||
monitorNodeStateTable(ovsdbClient, key);
|
||||
} catch (OvsdbClientException e) {
|
||||
LOG.debug("Could not enable monitor for Node_State table. {}", e.getMessage());
|
||||
}
|
||||
|
||||
try {
|
||||
if (ovsdbClient.getSchema(OvsdbDao.ovsdbName).get().getTables().containsKey("APC_State")) {
|
||||
monitorAPCStateTable(ovsdbClient, key);
|
||||
}
|
||||
} catch (InterruptedException | ExecutionException | OvsdbClientException e) {
|
||||
LOG.debug("Could not enable monitor for APC_State table. {}", e);
|
||||
}
|
||||
LOG.debug("Finished (re)setting monitors for AP {}", key);
|
||||
}
|
||||
|
||||
private void monitorDhcpLeasedIpDbTable(OvsdbClient ovsdbClient, String key) throws OvsdbClientException {
|
||||
|
||||
CompletableFuture<TableUpdates> awCf = ovsdbClient.monitor(OvsdbDao.ovsdbName,
|
||||
OvsdbDao.dhcpLeasedIpDbTable + "_" + key,
|
||||
new MonitorRequests(ImmutableMap.of(OvsdbDao.dhcpLeasedIpDbTable,
|
||||
new MonitorRequest(new MonitorSelect(true, true, true, true)))),
|
||||
new MonitorCallback() {
|
||||
|
||||
@Override
|
||||
public void update(TableUpdates tableUpdates) {
|
||||
LOG.info(OvsdbDao.dhcpLeasedIpDbTable + "_" + key + " monitor callback received {}",
|
||||
tableUpdates);
|
||||
CompletableFuture<TableUpdates> awCf = ovsdbClient.monitor(OvsdbDao.ovsdbName, OvsdbDao.dhcpLeasedIpDbTable + "_" + key,
|
||||
new MonitorRequests(ImmutableMap.of(OvsdbDao.dhcpLeasedIpDbTable, new MonitorRequest(new MonitorSelect(true, true, true, true)))),
|
||||
tableUpdates -> {
|
||||
try {
|
||||
LOG.info(OvsdbDao.dhcpLeasedIpDbTable + "_" + key + " monitor callback received {}", tableUpdates);
|
||||
|
||||
List<Map<String, String>> insert = new ArrayList<>();
|
||||
List<Map<String, String>> delete = new ArrayList<>();
|
||||
@@ -386,9 +454,7 @@ public class TipWlanOvsdbClient implements OvsdbClientInterface {
|
||||
if (rowUpdate.getNew() == null) {
|
||||
Map<String, String> rowMap = new HashMap<>();
|
||||
|
||||
rowUpdate.getOld().getColumns().entrySet().stream().forEach(c -> {
|
||||
OvsdbDao.translateDhcpFpValueToString(c, rowMap);
|
||||
});
|
||||
rowUpdate.getOld().getColumns().entrySet().forEach(c -> OvsdbDao.translateDhcpFpValueToString(c, rowMap));
|
||||
|
||||
delete.add(rowMap);
|
||||
// delete
|
||||
@@ -396,9 +462,7 @@ public class TipWlanOvsdbClient implements OvsdbClientInterface {
|
||||
// insert
|
||||
Map<String, String> rowMap = new HashMap<>();
|
||||
|
||||
rowUpdate.getNew().getColumns().entrySet().stream().forEach(c -> {
|
||||
OvsdbDao.translateDhcpFpValueToString(c, rowMap);
|
||||
});
|
||||
rowUpdate.getNew().getColumns().entrySet().forEach(c -> OvsdbDao.translateDhcpFpValueToString(c, rowMap));
|
||||
|
||||
insert.add(rowMap);
|
||||
} else {
|
||||
@@ -407,9 +471,7 @@ public class TipWlanOvsdbClient implements OvsdbClientInterface {
|
||||
Map<String, String> rowMap = new HashMap<>();
|
||||
|
||||
rowUpdate.getOld().getColumns().putAll(rowUpdate.getNew().getColumns());
|
||||
rowUpdate.getOld().getColumns().entrySet().stream().forEach(c -> {
|
||||
OvsdbDao.translateDhcpFpValueToString(c, rowMap);
|
||||
});
|
||||
rowUpdate.getOld().getColumns().entrySet().forEach(c -> OvsdbDao.translateDhcpFpValueToString(c, rowMap));
|
||||
|
||||
update.add(rowMap);
|
||||
|
||||
@@ -430,7 +492,8 @@ public class TipWlanOvsdbClient implements OvsdbClientInterface {
|
||||
extIntegrationInterface.dhcpLeasedIpDbTableUpdate(update, key, RowUpdateOperation.MODIFY);
|
||||
|
||||
}
|
||||
|
||||
} catch (Exception e) {
|
||||
LOG.error("dhcpLeasedIpDbTableUpdate failed", e);
|
||||
}
|
||||
|
||||
});
|
||||
@@ -441,15 +504,10 @@ public class TipWlanOvsdbClient implements OvsdbClientInterface {
|
||||
|
||||
private void monitorCommandStateDbTable(OvsdbClient ovsdbClient, String key) throws OvsdbClientException {
|
||||
|
||||
CompletableFuture<TableUpdates> csCf = ovsdbClient.monitor(OvsdbDao.ovsdbName,
|
||||
OvsdbDao.commandStateDbTable + "_" + key,
|
||||
new MonitorRequests(ImmutableMap.of(OvsdbDao.commandStateDbTable, new MonitorRequest())),
|
||||
new MonitorCallback() {
|
||||
|
||||
@Override
|
||||
public void update(TableUpdates tableUpdates) {
|
||||
LOG.info(OvsdbDao.commandStateDbTable + "_" + key + " monitor callback received {}",
|
||||
tableUpdates);
|
||||
CompletableFuture<TableUpdates> csCf = ovsdbClient.monitor(OvsdbDao.ovsdbName, OvsdbDao.commandStateDbTable + "_" + key,
|
||||
new MonitorRequests(ImmutableMap.of(OvsdbDao.commandStateDbTable, new MonitorRequest())), tableUpdates -> {
|
||||
try {
|
||||
LOG.info(OvsdbDao.commandStateDbTable + "_" + key + " monitor callback received {}", tableUpdates);
|
||||
|
||||
List<Map<String, String>> insert = new ArrayList<>();
|
||||
List<Map<String, String>> delete = new ArrayList<>();
|
||||
@@ -461,9 +519,7 @@ public class TipWlanOvsdbClient implements OvsdbClientInterface {
|
||||
if (rowUpdate.getNew() == null) {
|
||||
Map<String, String> rowMap = new HashMap<>();
|
||||
|
||||
rowUpdate.getOld().getColumns().entrySet().stream().forEach(c -> {
|
||||
rowMap.put(c.getKey(), c.getValue().toString());
|
||||
});
|
||||
rowUpdate.getOld().getColumns().forEach((key1, value) -> rowMap.put(key1, value.toString()));
|
||||
|
||||
delete.add(rowMap);
|
||||
// delete
|
||||
@@ -471,9 +527,7 @@ public class TipWlanOvsdbClient implements OvsdbClientInterface {
|
||||
// insert
|
||||
Map<String, String> rowMap = new HashMap<>();
|
||||
|
||||
rowUpdate.getNew().getColumns().entrySet().stream().forEach(c -> {
|
||||
rowMap.put(c.getKey(), c.getValue().toString());
|
||||
});
|
||||
rowUpdate.getNew().getColumns().forEach((key1, value) -> rowMap.put(key1, value.toString()));
|
||||
|
||||
insert.add(rowMap);
|
||||
} else {
|
||||
@@ -482,9 +536,7 @@ public class TipWlanOvsdbClient implements OvsdbClientInterface {
|
||||
Map<String, String> rowMap = new HashMap<>();
|
||||
|
||||
rowUpdate.getOld().getColumns().putAll(rowUpdate.getNew().getColumns());
|
||||
rowUpdate.getOld().getColumns().entrySet().stream().forEach(c -> {
|
||||
rowMap.put(c.getKey(), c.getValue().toString());
|
||||
});
|
||||
rowUpdate.getOld().getColumns().forEach((key1, value) -> rowMap.put(key1, value.toString()));
|
||||
|
||||
update.add(rowMap);
|
||||
|
||||
@@ -505,7 +557,8 @@ public class TipWlanOvsdbClient implements OvsdbClientInterface {
|
||||
extIntegrationInterface.commandStateDbTableUpdate(update, key, RowUpdateOperation.MODIFY);
|
||||
|
||||
}
|
||||
|
||||
} catch (Exception e) {
|
||||
LOG.error("commandStateDbTableUpdate failed", e);
|
||||
}
|
||||
|
||||
});
|
||||
@@ -515,36 +568,27 @@ public class TipWlanOvsdbClient implements OvsdbClientInterface {
|
||||
}
|
||||
|
||||
private void monitorAwlanNodeDbTable(OvsdbClient ovsdbClient, String key) throws OvsdbClientException {
|
||||
CompletableFuture<TableUpdates> awCf = ovsdbClient.monitor(OvsdbDao.ovsdbName,
|
||||
OvsdbDao.awlanNodeDbTable + "_" + key,
|
||||
CompletableFuture<TableUpdates> awCf = ovsdbClient.monitor(OvsdbDao.ovsdbName, OvsdbDao.awlanNodeDbTable + "_" + key,
|
||||
new MonitorRequests(ImmutableMap.of(OvsdbDao.awlanNodeDbTable, new MonitorRequest(new MonitorSelect(true, false, false, true)))),
|
||||
new MonitorCallback() {
|
||||
|
||||
@Override
|
||||
public void update(TableUpdates tableUpdates) {
|
||||
tableUpdates -> {
|
||||
try {
|
||||
LOG.info(OvsdbDao.awlanNodeDbTable + "_" + key + " monitor callback received {}", tableUpdates);
|
||||
|
||||
extIntegrationInterface.awlanNodeDbTableUpdate(
|
||||
ovsdbDao.getOpensyncAWLANNode(tableUpdates, key, ovsdbClient), key);
|
||||
extIntegrationInterface.awlanNodeDbTableUpdate(ovsdbDao.getOpensyncAWLANNode(tableUpdates, key, ovsdbClient), key);
|
||||
} catch (Exception e) {
|
||||
LOG.error("awlanNodeDbTableUpdate failed", e);
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
awCf.join();
|
||||
|
||||
extIntegrationInterface.awlanNodeDbTableUpdate(ovsdbDao.getOpensyncAWLANNode(awCf.join(), key, ovsdbClient), key);
|
||||
}
|
||||
|
||||
private void monitorWifiAssociatedClientsDbTable(OvsdbClient ovsdbClient, String key) throws OvsdbClientException {
|
||||
CompletableFuture<TableUpdates> acCf = ovsdbClient.monitor(OvsdbDao.ovsdbName,
|
||||
OvsdbDao.wifiAssociatedClientsDbTable + "_" + key,
|
||||
new MonitorRequests(ImmutableMap.of(OvsdbDao.wifiAssociatedClientsDbTable, new MonitorRequest())),
|
||||
new MonitorCallback() {
|
||||
CompletableFuture<TableUpdates> acCf = ovsdbClient.monitor(OvsdbDao.ovsdbName, OvsdbDao.wifiAssociatedClientsDbTable + "_" + key,
|
||||
new MonitorRequests(ImmutableMap.of(OvsdbDao.wifiAssociatedClientsDbTable, new MonitorRequest())), tableUpdates -> {
|
||||
|
||||
@Override
|
||||
public void update(TableUpdates tableUpdates) {
|
||||
|
||||
LOG.info(OvsdbDao.wifiAssociatedClientsDbTable + "_" + key + " monitor callback received {}",
|
||||
tableUpdates);
|
||||
try {
|
||||
LOG.info(OvsdbDao.wifiAssociatedClientsDbTable + "_" + key + " monitor callback received {}", tableUpdates);
|
||||
|
||||
List<OpensyncWifiAssociatedClients> associatedClients = new ArrayList<>();
|
||||
|
||||
@@ -554,13 +598,14 @@ public class TipWlanOvsdbClient implements OvsdbClientInterface {
|
||||
if ((rowUpdate.getOld() != null) && (rowUpdate.getNew() == null)) {
|
||||
Row row = rowUpdate.getOld();
|
||||
String deletedClientMac = row.getStringColumn("mac");
|
||||
// take care of the deletes as we go through
|
||||
// the updates, as we want to delete before
|
||||
// take care of the deletes as we go
|
||||
// through
|
||||
// the updates, as we want to delete
|
||||
// before
|
||||
// adding anyway.
|
||||
extIntegrationInterface.wifiAssociatedClientsDbTableDelete(deletedClientMac, key);
|
||||
} else {
|
||||
associatedClients.addAll(
|
||||
ovsdbDao.getOpensyncWifiAssociatedClients(rowUpdate, key, ovsdbClient));
|
||||
associatedClients.addAll(ovsdbDao.getOpensyncWifiAssociatedClients(rowUpdate, key, ovsdbClient));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -568,27 +613,22 @@ public class TipWlanOvsdbClient implements OvsdbClientInterface {
|
||||
|
||||
// now address the update/add
|
||||
extIntegrationInterface.wifiAssociatedClientsDbTableUpdate(associatedClients, key);
|
||||
|
||||
} catch (Exception e) {
|
||||
LOG.error("wifiAssociatedClientsDbTableUpdate failed", e);
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
acCf.join();
|
||||
extIntegrationInterface.wifiAssociatedClientsDbTableUpdate(ovsdbDao.getInitialOpensyncWifiAssociatedClients(acCf.join(), key, ovsdbClient), key);
|
||||
|
||||
}
|
||||
|
||||
private void monitorWifiInetStateDbTable(OvsdbClient ovsdbClient, String key) throws OvsdbClientException {
|
||||
CompletableFuture<TableUpdates> isCf = ovsdbClient.monitor(OvsdbDao.ovsdbName,
|
||||
OvsdbDao.wifiInetStateDbTable + "_" + key,
|
||||
new MonitorRequests(ImmutableMap.of(OvsdbDao.wifiInetStateDbTable,
|
||||
new MonitorRequest(new MonitorSelect(true, true, true, true)))),
|
||||
new MonitorCallback() {
|
||||
|
||||
@Override
|
||||
public void update(TableUpdates tableUpdates) {
|
||||
LOG.info(OvsdbDao.ovsdbName,
|
||||
OvsdbDao.wifiInetStateDbTable + "_" + key + " monitor callback received {}",
|
||||
tableUpdates);
|
||||
CompletableFuture<TableUpdates> isCf = ovsdbClient.monitor(OvsdbDao.ovsdbName, OvsdbDao.wifiInetStateDbTable + "_" + key,
|
||||
new MonitorRequests(ImmutableMap.of(OvsdbDao.wifiInetStateDbTable, new MonitorRequest(new MonitorSelect(true, true, true, true)))),
|
||||
tableUpdates -> {
|
||||
try {
|
||||
LOG.info(OvsdbDao.wifiInetStateDbTable + "_" + key + " monitor callback received {}", tableUpdates);
|
||||
|
||||
List<OpensyncAPInetState> inetStateInsertOrUpdate = new ArrayList<>();
|
||||
List<OpensyncAPInetState> inetStateDelete = new ArrayList<>();
|
||||
@@ -598,11 +638,9 @@ public class TipWlanOvsdbClient implements OvsdbClientInterface {
|
||||
for (RowUpdate rowUpdate : tableUpdate.getRowUpdates().values()) {
|
||||
|
||||
if (rowUpdate.getNew() == null) {
|
||||
inetStateDelete.addAll(
|
||||
ovsdbDao.getOpensyncApInetStateForRowUpdate(rowUpdate, key, ovsdbClient));
|
||||
inetStateDelete.addAll(ovsdbDao.getOpensyncApInetStateForRowUpdate(rowUpdate, key, ovsdbClient));
|
||||
} else {
|
||||
inetStateInsertOrUpdate.addAll(
|
||||
ovsdbDao.getOpensyncApInetStateForRowUpdate(rowUpdate, key, ovsdbClient));
|
||||
inetStateInsertOrUpdate.addAll(ovsdbDao.getOpensyncApInetStateForRowUpdate(rowUpdate, key, ovsdbClient));
|
||||
}
|
||||
|
||||
}
|
||||
@@ -613,46 +651,39 @@ public class TipWlanOvsdbClient implements OvsdbClientInterface {
|
||||
|
||||
// now process updates and mutations
|
||||
extIntegrationInterface.wifiInetStateDbTableUpdate(inetStateInsertOrUpdate, key);
|
||||
|
||||
} catch (Exception e) {
|
||||
LOG.error("wifiInetStateDbTableUpdate failed", e);
|
||||
}
|
||||
|
||||
});
|
||||
isCf.join();
|
||||
|
||||
extIntegrationInterface.wifiInetStateDbTableUpdate(ovsdbDao.getInitialOpensyncApInetStateForRowUpdate(isCf.join(), key, ovsdbClient), key);
|
||||
|
||||
}
|
||||
|
||||
private void monitorWifiRadioStateDbTable(OvsdbClient ovsdbClient, String key) throws OvsdbClientException {
|
||||
|
||||
CompletableFuture<TableUpdates> rsCf = ovsdbClient.monitor(OvsdbDao.ovsdbName,
|
||||
OvsdbDao.wifiRadioStateDbTable + "_" + key,
|
||||
CompletableFuture<TableUpdates> rsCf = ovsdbClient.monitor(OvsdbDao.ovsdbName, OvsdbDao.wifiRadioStateDbTable + "_" + key,
|
||||
new MonitorRequests(ImmutableMap.of(OvsdbDao.wifiRadioStateDbTable, new MonitorRequest(new MonitorSelect(true, false, false, true)))),
|
||||
new MonitorCallback() {
|
||||
tableUpdates -> {
|
||||
try {
|
||||
LOG.info(OvsdbDao.wifiRadioStateDbTable + "_" + key + " monitor callback received {}", tableUpdates);
|
||||
|
||||
@Override
|
||||
public void update(TableUpdates tableUpdates) {
|
||||
LOG.info(OvsdbDao.wifiRadioStateDbTable + "_" + key + " monitor callback received {}",
|
||||
tableUpdates);
|
||||
|
||||
extIntegrationInterface.wifiRadioStatusDbTableUpdate(
|
||||
ovsdbDao.getOpensyncAPRadioState(tableUpdates, key, ovsdbClient), key);
|
||||
extIntegrationInterface.wifiRadioStatusDbTableUpdate(ovsdbDao.getOpensyncAPRadioState(tableUpdates, key, ovsdbClient), key);
|
||||
} catch (Exception e) {
|
||||
LOG.error("wifiRadioStatusDbTableUpdate failed", e);
|
||||
}
|
||||
|
||||
});
|
||||
rsCf.join();
|
||||
|
||||
extIntegrationInterface.wifiRadioStatusDbTableUpdate(ovsdbDao.getOpensyncAPRadioState(rsCf.join(), key, ovsdbClient), key);
|
||||
}
|
||||
|
||||
private void monitorWifiVifStateDbTable(OvsdbClient ovsdbClient, String key) throws OvsdbClientException {
|
||||
|
||||
CompletableFuture<TableUpdates> vsCf = ovsdbClient.monitor(OvsdbDao.ovsdbName,
|
||||
OvsdbDao.wifiVifStateDbTable + "_" + key,
|
||||
new MonitorRequests(ImmutableMap.of(OvsdbDao.wifiVifStateDbTable, new MonitorRequest(new MonitorSelect(true, true, true, true)))),
|
||||
new MonitorCallback() {
|
||||
|
||||
@Override
|
||||
public void update(TableUpdates tableUpdates) {
|
||||
LOG.info(OvsdbDao.wifiVifStateDbTable + "_" + key + " monitor callback received {}",
|
||||
tableUpdates);
|
||||
CompletableFuture<TableUpdates> vsCf = ovsdbClient.monitor(OvsdbDao.ovsdbName, OvsdbDao.wifiVifStateDbTable + "_" + key,
|
||||
new MonitorRequests(ImmutableMap.of(OvsdbDao.wifiVifStateDbTable, new MonitorRequest(new MonitorSelect(false, true, true, true)))),
|
||||
tableUpdates -> {
|
||||
try {
|
||||
LOG.info(OvsdbDao.wifiVifStateDbTable + "_" + key + " monitor callback received {}", tableUpdates);
|
||||
|
||||
List<OpensyncAPVIFState> vifsToDelete = new ArrayList<>();
|
||||
List<OpensyncAPVIFState> vifsToInsertOrUpdate = new ArrayList<>();
|
||||
@@ -662,14 +693,12 @@ public class TipWlanOvsdbClient implements OvsdbClientInterface {
|
||||
|
||||
if (rowUpdate.getNew() == null) {
|
||||
// this is a deletion
|
||||
vifsToDelete.addAll(
|
||||
ovsdbDao.getOpensyncApVifStateForRowUpdate(rowUpdate, key, ovsdbClient));
|
||||
vifsToDelete.addAll(ovsdbDao.getOpensyncApVifStateForRowUpdate(rowUpdate, key, ovsdbClient));
|
||||
|
||||
} else {
|
||||
// either an insert or
|
||||
// mutuate/update
|
||||
vifsToInsertOrUpdate.addAll(
|
||||
ovsdbDao.getOpensyncApVifStateForRowUpdate(rowUpdate, key, ovsdbClient));
|
||||
vifsToInsertOrUpdate.addAll(ovsdbDao.getOpensyncApVifStateForRowUpdate(rowUpdate, key, ovsdbClient));
|
||||
|
||||
}
|
||||
|
||||
@@ -684,18 +713,79 @@ public class TipWlanOvsdbClient implements OvsdbClientInterface {
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
} catch (Exception e) {
|
||||
LOG.error("wifiVIFStateDbTableUpdate failed", e);
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
vsCf.join();
|
||||
|
||||
}
|
||||
|
||||
private void monitorNodeStateTable(OvsdbClient ovsdbClient, String key) throws OvsdbClientException {
|
||||
CompletableFuture<TableUpdates> nsCf = ovsdbClient.monitor(OvsdbDao.ovsdbName, OvsdbDao.nodeStateTable + "_" + key,
|
||||
new MonitorRequests(ImmutableMap.of(OvsdbDao.nodeStateTable, new MonitorRequest(new MonitorSelect(true, true, true, true)))), tableUpdates -> {
|
||||
LOG.info(OvsdbDao.nodeStateTable + "_" + key + " monitor callback received {}");
|
||||
extIntegrationInterface.nodeStateDbTableUpdate(processNodeStateTableUpdate(key, tableUpdates), key);
|
||||
|
||||
});
|
||||
extIntegrationInterface.nodeStateDbTableUpdate(processNodeStateTableUpdate(key, nsCf.join()), key);
|
||||
}
|
||||
|
||||
private List<Map<String,String>> processNodeStateTableUpdate(String key, TableUpdates tableUpdates) {
|
||||
List<Map<String, String>> updates = new ArrayList<>();
|
||||
tableUpdates.getTableUpdates().forEach((key1, value) -> {
|
||||
LOG.info("TableUpdate for {}", key1);
|
||||
value.getRowUpdates().values().forEach(r -> {
|
||||
if (r.getOld() != null) {
|
||||
LOG.info("Node_State old row {}", r.getOld().getColumns());
|
||||
}
|
||||
if (r.getNew() != null) {
|
||||
LOG.info("Node_State new row {}", r.getNew().getColumns());
|
||||
Map<String, Value> columns = r.getNew().getColumns();
|
||||
Map<String, String> update = new HashMap<>();
|
||||
update.put("key", columns.get("key").toString());
|
||||
update.put("module", columns.get("module").toString());
|
||||
update.put("persist", columns.get("persist").toString());
|
||||
update.put("value", columns.get("value").toString());
|
||||
updates.add(update);
|
||||
}
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
return updates;
|
||||
}
|
||||
|
||||
private void monitorAPCStateTable(OvsdbClient ovsdbClient, String key) throws OvsdbClientException {
|
||||
CompletableFuture<TableUpdates> nsCf = ovsdbClient.monitor(OvsdbDao.ovsdbName, OvsdbDao.apcStateDbTable + "_" + key,
|
||||
new MonitorRequests(ImmutableMap.of(OvsdbDao.apcStateDbTable, new MonitorRequest(new MonitorSelect(true, true, true, true)))), tableUpdates -> {
|
||||
LOG.info(OvsdbDao.apcStateDbTable + "_" + key + " monitor callback received {}");
|
||||
tableUpdates.getTableUpdates().forEach((key1, value) -> {
|
||||
LOG.info("TableUpdate for {}", key1);
|
||||
value.getRowUpdates().values().forEach(r -> {
|
||||
|
||||
Map<String, String> apcStateAttributes = ovsdbDao.getAPCState(r, key);
|
||||
|
||||
extIntegrationInterface.apcStateDbTableUpdate(apcStateAttributes, key, RowUpdateOperation.MODIFY);
|
||||
|
||||
});
|
||||
|
||||
});
|
||||
});
|
||||
try {
|
||||
extIntegrationInterface.apcStateDbTableUpdate(
|
||||
ovsdbDao.getAPCState(nsCf.join().getTableUpdates().entrySet().iterator().next().getValue().getRowUpdates().values().iterator().next(), key),
|
||||
key, RowUpdateOperation.INIT);
|
||||
} catch (Exception e) {
|
||||
LOG.error("Could not get INIT state for {}", OvsdbDao.apcStateDbTable, e);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public String closeSession(String apId) {
|
||||
OvsdbSession session = ovsdbSessionMapInterface.getSession(apId);
|
||||
if (session != null) {
|
||||
try {
|
||||
session.getOvsdbClient().shutdown();
|
||||
} catch (Exception e) {
|
||||
@@ -703,18 +793,17 @@ public class TipWlanOvsdbClient implements OvsdbClientInterface {
|
||||
return "Failed to close session to " + apId + " " + e.getLocalizedMessage();
|
||||
|
||||
}
|
||||
}
|
||||
LOG.debug("Closed session to " + apId);
|
||||
return "Closed session to " + apId;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String processFirmwareDownload(String apId, String firmwareUrl, String firmwareVersion, String username,
|
||||
String validationCode) {
|
||||
public String processFirmwareDownload(String apId, String firmwareUrl, String firmwareVersion, String username) {
|
||||
try {
|
||||
OvsdbSession session = ovsdbSessionMapInterface.getSession(apId);
|
||||
|
||||
ovsdbDao.configureFirmwareDownload(session.getOvsdbClient(), apId, firmwareUrl, firmwareVersion, username,
|
||||
validationCode);
|
||||
ovsdbDao.configureFirmwareDownload(session.getOvsdbClient(), apId, firmwareUrl, firmwareVersion, username);
|
||||
} catch (Exception e) {
|
||||
LOG.error("Failed to initialize firmware download to " + apId + " " + e.getLocalizedMessage());
|
||||
return "Failed to initialize firmware download to " + apId + " " + e.getLocalizedMessage();
|
||||
@@ -740,32 +829,22 @@ public class TipWlanOvsdbClient implements OvsdbClientInterface {
|
||||
|
||||
@Override
|
||||
public String startDebugEngine(String apId, String gatewayHostname, Integer gatewayPort) {
|
||||
LOG.debug("TipWlanOvsdbClient::startDebugEngine apId {} gatewayHostname {} gatewayPort {}", apId,
|
||||
gatewayHostname, gatewayPort);
|
||||
LOG.debug("TipWlanOvsdbClient::startDebugEngine apId {} gatewayHostname {} gatewayPort {}", apId, gatewayHostname, gatewayPort);
|
||||
|
||||
try {
|
||||
OvsdbSession session = ovsdbSessionMapInterface.getSession(apId);
|
||||
OvsdbClient ovsdbClient = session.getOvsdbClient();
|
||||
|
||||
// TODO: need to establish what the command will be to start debug
|
||||
// logging, on the AP side
|
||||
// For now, use start_debug_engine
|
||||
// Map will have gateway_host and gateway_port for now
|
||||
// Delay/Duration TBD, just use 0s for now
|
||||
Map<String, String> payload = new HashMap<>();
|
||||
payload.put("gateway_hostname", gatewayHostname);
|
||||
payload.put("gateway_port", gatewayPort.toString());
|
||||
ovsdbDao.configureCommands(ovsdbClient, OvsdbDao.StartDebugEngineApCommand, payload, Long.valueOf(0L),
|
||||
Long.valueOf(0L));
|
||||
ovsdbDao.configureCommands(ovsdbClient, OvsdbDao.StartDebugEngineApCommand, payload, 0L, defaultCommandDurationSec);
|
||||
|
||||
LOG.debug("Started debug engine on AP {} with gateway {} port {}", apId, gatewayHostname, gatewayPort);
|
||||
return "Started debug engine on AP " + apId + " with gateway " + gatewayHostname + " port " + gatewayPort;
|
||||
} catch (Exception e) {
|
||||
LOG.error(
|
||||
"TipWlanOvsdbClient::startDebugEngine Failed to start debug engine on AP {} with gateway {} port {}",
|
||||
apId, gatewayHostname, gatewayPort, e);
|
||||
return "Failed to start debug engine on AP " + apId + " with gateway " + gatewayHostname + " port "
|
||||
+ gatewayPort;
|
||||
LOG.error("TipWlanOvsdbClient::startDebugEngine Failed to start debug engine on AP {} with gateway {} port {}", apId, gatewayHostname, gatewayPort,
|
||||
e);
|
||||
return "Failed to start debug engine on AP " + apId + " with gateway " + gatewayHostname + " port " + gatewayPort;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -776,10 +855,8 @@ public class TipWlanOvsdbClient implements OvsdbClientInterface {
|
||||
try {
|
||||
OvsdbSession session = ovsdbSessionMapInterface.getSession(apId);
|
||||
OvsdbClient ovsdbClient = session.getOvsdbClient();
|
||||
|
||||
Map<String, String> payload = new HashMap<>();
|
||||
ovsdbDao.configureCommands(ovsdbClient, OvsdbDao.StopDebugEngineApCommand, payload, Long.valueOf(0L),
|
||||
Long.valueOf(0L));
|
||||
ovsdbDao.configureCommands(ovsdbClient, OvsdbDao.StopDebugEngineApCommand, payload, 0L, 0L);
|
||||
|
||||
LOG.debug("TipWlanOvsdbClient::stopDebugEngine Stop debug engine on AP {}", apId);
|
||||
return "Stop debug engine on AP " + apId;
|
||||
@@ -812,8 +889,7 @@ public class TipWlanOvsdbClient implements OvsdbClientInterface {
|
||||
}
|
||||
} catch (Exception e) {
|
||||
if (switchBanks) {
|
||||
LOG.debug("TipWlanOvsdbClient::processRebootRequest failed to trigger switch software bank on AP {}",
|
||||
apId, e);
|
||||
LOG.debug("TipWlanOvsdbClient::processRebootRequest failed to trigger switch software bank on AP {}", apId, e);
|
||||
return "failed to trigger switch software bank on AP " + apId;
|
||||
} else {
|
||||
LOG.error("TipWlanOvsdbClient::processRebootRequest failed to trigger reboot of AP {}", apId, e);
|
||||
@@ -859,19 +935,33 @@ public class TipWlanOvsdbClient implements OvsdbClientInterface {
|
||||
return key;
|
||||
}
|
||||
|
||||
public String processNewChannelsRequest(String apId, Map<RadioType, Integer> channelMap) {
|
||||
LOG.debug("TipWlanOvsdbClient::processNewChannelsRequest for AP {}", apId);
|
||||
public String processNewChannelsRequest(String apId, Map<RadioType, Integer> backupChannelMap, Map<RadioType, Integer> primaryChannelMap) {
|
||||
LOG.info("TipWlanOvsdbClient::processNewChannelsRequest for AP {}", apId);
|
||||
|
||||
try {
|
||||
OvsdbSession session = ovsdbSessionMapInterface.getSession(apId);
|
||||
OvsdbClient ovsdbClient = session.getOvsdbClient();
|
||||
ovsdbDao.processNewChannelsRequest(ovsdbClient, channelMap);
|
||||
LOG.debug("TipWlanOvsdbClient::processNewChannelsRequest change backup channels for AP {}", apId);
|
||||
return "Triggered a factory reset of AP " + apId;
|
||||
ovsdbDao.processNewChannelsRequest(ovsdbClient, backupChannelMap, primaryChannelMap);
|
||||
LOG.info("TipWlanOvsdbClient::processNewChannelsRequest change backup and/or primary channels for AP {}", apId);
|
||||
return " change backup and/or primary channels for AP " + apId;
|
||||
} catch (Exception e) {
|
||||
LOG.error("TipWlanOvsdbClient::processNewChannelsRequest failed to change backup channels for AP {}", apId,
|
||||
e);
|
||||
return " failed to change backup channels for AP " + apId;
|
||||
LOG.error("TipWlanOvsdbClient::processNewChannelsRequest failed to change backup and/or primary channels for AP {}", apId, e);
|
||||
return "failed to change backup and/or primary channels for AP " + apId;
|
||||
}
|
||||
}
|
||||
|
||||
public String processCellSizeAttributesRequest(String apId, Map<RadioType, CellSizeAttributes> cellSizeAttributeMap) {
|
||||
LOG.info("TipWlanOvsdbClient::processCellSizeAttributesRequest for AP {}", apId);
|
||||
|
||||
try {
|
||||
OvsdbSession session = ovsdbSessionMapInterface.getSession(apId);
|
||||
OvsdbClient ovsdbClient = session.getOvsdbClient();
|
||||
ovsdbDao.processCellSizeAttributesRequest(ovsdbClient, cellSizeAttributeMap);
|
||||
LOG.info("TipWlanOvsdbClient::processCellSizeAttributesRequest change cellSizeAttributes for AP {}", apId);
|
||||
return " change cell size attributes for AP " + apId;
|
||||
} catch (Exception e) {
|
||||
LOG.error("TipWlanOvsdbClient::processCellSizeAttributesRequest failed to change cell size attributes for AP {}", apId, e);
|
||||
return "failed to change cell size attributes for AP " + apId;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user