Compare commits

..

39 Commits

Author SHA1 Message Date
Eugene Taranov
a659a8d253 disabled PR 2020-06-18 22:26:33 +03:00
Eugene Taranov
54591306cd cleanup 2020-06-18 22:26:16 +03:00
Eugene Taranov
f108f3c475 disabled cache 2020-06-18 22:25:49 +03:00
Eugene Taranov
efc7d3289a enable caching 2020-06-18 22:18:32 +03:00
Eugene Taranov
ad3b88f64d test 2020-06-18 22:12:26 +03:00
Eugene Taranov
d33fb9c53a test 2020-06-18 20:56:38 +03:00
Eugene Taranov
9c52ad0612 test 2020-06-18 20:53:38 +03:00
Eugene Taranov
34c0876e7e test 2020-06-18 18:23:28 +03:00
Eugene Taranov
193f6cc391 added project key 2020-06-18 18:16:35 +03:00
Eugene Taranov
f735953ce8 test 2020-06-18 17:56:04 +03:00
Eugene Taranov
1dcb047aec test 2020-06-18 17:50:30 +03:00
Eugene Taranov
222da2583e test 2020-06-18 17:47:08 +03:00
Eugene Taranov
62a38be246 test 2020-06-18 17:45:33 +03:00
Eugene Taranov
2459d00226 test 2020-06-18 17:34:31 +03:00
Eugene Taranov
ffdd2dbdbe separated mvn build and sonar steps 2020-06-18 17:28:55 +03:00
Eugene Taranov
b0c946efc7 fix2 2020-06-18 17:24:46 +03:00
Eugene Taranov
febc5e508a fix 2020-06-18 17:21:49 +03:00
Eugene Taranov
00174b239b added sonar.projectKey 2020-06-18 17:19:12 +03:00
Eugene Taranov
b7daf2f712 test 2020-06-18 16:40:34 +03:00
Eugene Taranov
034433ad16 enabled opensync-gateway 2020-06-18 16:37:05 +03:00
Eugene Taranov
1ca0017f76 test 2020-06-18 16:27:05 +03:00
Eugene Taranov
5bc5327d25 added opensync-ext-static 2020-06-18 16:20:31 +03:00
Eugene Taranov
8cbcf72069 enabled opensync-ext-cloud 2020-06-18 16:11:49 +03:00
Eugene Taranov
9c03c32ae8 test 2020-06-18 16:09:49 +03:00
Eugene Taranov
859d51bc17 disabled opensync-ext-cloud 2020-06-18 15:10:49 +03:00
Eugene Taranov
7b73b808af added opensync-ext-interface 2020-06-18 15:05:06 +03:00
Eugene Taranov
e27c7daf74 job matrix 2020-06-18 15:02:22 +03:00
Eugene Taranov
d712c9e7dc trigger 2020-06-18 14:53:51 +03:00
Eugene Taranov
cb8f80d466 disabled test 2020-06-18 14:45:23 +03:00
Eugene Taranov
770bb48a69 added maven env 2020-06-18 14:43:04 +03:00
Eugene Taranov
e34794d482 added MAVEN_REPO_USERNAME ? 2020-06-18 14:40:45 +03:00
Eugene Taranov
988f094ed4 test 2020-06-18 14:39:35 +03:00
Eugene Taranov
1df4e5ab08 split mvn build and sonar analysis 2020-06-18 14:38:57 +03:00
Eugene Taranov
e6ca8f1d53 added maven creds 2020-06-18 14:36:03 +03:00
Eugene Taranov
2a9f306b93 added maven cerdentials 2020-06-18 14:23:45 +03:00
Eugene Taranov
2dde38b719 added dep 2020-06-18 14:14:29 +03:00
Eugene Taranov
29d6f163bb fix pr 2020-06-18 14:04:33 +03:00
Eugene Taranov
ff9894eded enable pr 2020-06-18 14:03:39 +03:00
Eugene Taranov
c1fbf4f32f TOOLS-23: sonar code analysis 2020-06-18 14:02:13 +03:00
172 changed files with 15911 additions and 25834 deletions

View File

@@ -1,47 +0,0 @@
<settings>
<servers>
<server>
<id>tip-wlan-cloud-maven-repo</id>
<username>${env.MAVEN_REPO_USERNAME}</username>
<password>${env.MAVEN_REPO_PASSWORD}</password>
</server>
<server>
<id>jfrog-spring-milestones</id>
<username>${env.MAVEN_REPO_USERNAME}</username>
<password>${env.MAVEN_REPO_PASSWORD}</password>
</server>
<server>
<id>jfrog-maven-central</id>
<username>${env.MAVEN_REPO_USERNAME}</username>
<password>${env.MAVEN_REPO_PASSWORD}</password>
</server>
</servers>
<mirrors>
<mirror>
<id>jfrog-maven-central</id>
<name>Mirror Repository</name>
<url>https://tip.jfrog.io/artifactory/maven-central</url>
<mirrorOf>central</mirrorOf>
</mirror>
<mirror>
<id>jfrog-spring-milestones</id>
<url>https://tip.jfrog.io/artifactory/spring-milestones</url>
<mirrorOf>spring-milestones</mirrorOf>
</mirror>
</mirrors>
<profiles>
<profile>
<id>schema-publisher</id>
<properties>
<schema-repository-user>${env.MAVEN_REPO_USERNAME}</schema-repository-user>
<schema-repository-password>${env.MAVEN_REPO_PASSWORD}</schema-repository-password>
</properties>
</profile>
</profiles>
<activeProfiles>
<activeProfile>schema-publisher</activeProfile>
</activeProfiles>
</settings>

View File

@@ -7,7 +7,6 @@ on:
env: env:
SONAR_URL: https://sonarcloud.io SONAR_URL: https://sonarcloud.io
SONAR_ORGANIZATION: telecominfraproject SONAR_ORGANIZATION: telecominfraproject
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
jobs: jobs:
sonar: sonar:
@@ -40,24 +39,18 @@ jobs:
uses: actions/setup-java@v1 uses: actions/setup-java@v1
with: with:
java-version: 14 java-version: 14
- name: Cache Maven packages server-id: tip-wlan-cloud-maven-repo
uses: actions/cache@v1 server-username: MAVEN_REPO_USERNAME
with: server-password: MAVEN_REPO_PASSWORD
path: ~/.m2/repository/
key: ${{ runner.os }}-m2
- name: Configure maven settings.xml
run: cp wlan-cloud-opensync-controller/.github/workflows/maven_settings_template.xml /home/runner/.m2/settings.xml
- name: Maven build - name: Maven build
working-directory: wlan-cloud-opensync-controller/${{ matrix.project }} working-directory: wlan-cloud-opensync-controller/${{ matrix.project }}
env: env:
MAVEN_REPO_USERNAME: build-pipeline MAVEN_REPO_USERNAME: build-pipeline
MAVEN_REPO_PASSWORD: ${{ secrets.MAVEN_REPO_PASSWORD }} MAVEN_REPO_PASSWORD: ${{ secrets.MAVEN_REPO_PASSWORD }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: mvn clean install run: mvn clean install
- name: Run sonar - name: Run sonar
working-directory: wlan-cloud-opensync-controller/${{ matrix.project }} working-directory: wlan-cloud-opensync-controller/${{ matrix.project }}
env: env:
MAVEN_REPO_USERNAME: build-pipeline MAVEN_REPO_USERNAME: build-pipeline
MAVEN_REPO_PASSWORD: ${{ secrets.MAVEN_REPO_PASSWORD }} MAVEN_REPO_PASSWORD: ${{ secrets.MAVEN_REPO_PASSWORD }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: mvn sonar:sonar -Dsonar.host.url=${{ env.SONAR_URL }} -Dsonar.login=${{ secrets.SONAR_LOGIN }} -Dsonar.organization=${{ env.SONAR_ORGANIZATION }} -Dsonar.projectKey=com.telecominfraproject.wlan:${{ matrix.project }} run: mvn sonar:sonar -Dsonar.host.url=${{ env.SONAR_URL }} -Dsonar.login=${{ secrets.SONAR_LOGIN }} -Dsonar.organization=${{ env.SONAR_ORGANIZATION }} -Dsonar.projectKey=com.telecominfraproject.wlan:${{ matrix.project }}

29
LICENSE
View File

@@ -1,29 +0,0 @@
BSD 3-Clause License
Copyright (c) 2020, Telecom Infra Project
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
1. Redistributions of source code must retain the above copyright notice, this
list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation
and/or other materials provided with the distribution.
3. Neither the name of the copyright holder nor the names of its
contributors may be used to endorse or promote products derived from
this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

View File

@@ -1,13 +1,7 @@
# wlan-opensync-wifi-controller # tip-wlan-opensync-wifi-controller
Opensync Wifi Controller - accepts connections from the access points, pushes configuration, reads metrics from the topics on MQTT broker. Opensync Wifi Controller - accepts connections from the access points, pushes configuration, reads metrics from the topics on MQTT broker.
Components in this repository depend on other wlan-cloud repositories. Components in this repository depend on other tip-wlan repositories.
How to build components in this repository - checkout [wlan-cloud-workspace](https://github.com/Telecominfraproject/wlan-cloud-workspace) repository and follow its build instructions. How to build components in this repository - checkout [tip-wlan-cloud-workspace](https://github.com/Telecominfraproject/tip-wlan-cloud-workspace) repository and follow its build instructions.
There are several variants of the Opensync Wifi Controller:
* statically configured by the json files - see the projects: opensync-ext-static, opensync-gateway-static-process, opensync-gateway-static-docker
* dynamically configured using REST APIs and provisioning workflows of the CloudSDK - see the projects: opensync-ext-cloud, opensync-gateway-cloud-process, opensync-gateway-cloud-docker
All the variants mentionined above are using common components defined in projects opensync-gateway and opensync-ext-interface

1
opensync-ext-cloud/.gitignore vendored Normal file
View File

@@ -0,0 +1 @@
/target/

View File

@@ -1,10 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?> <?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> <modelVersion>4.0.0</modelVersion>
<parent> <parent>
<groupId>com.telecominfraproject.wlan</groupId> <groupId>com.telecominfraproject.wlan</groupId>
<artifactId>tip-wlan-cloud-root-pom</artifactId> <artifactId>tip-wlan-cloud-root-pom</artifactId>
<version>1.3.0-SNAPSHOT</version> <version>0.0.1-SNAPSHOT</version>
<relativePath>../../wlan-cloud-root</relativePath> <relativePath>../../wlan-cloud-root</relativePath>
</parent> </parent>
<artifactId>opensync-ext-cloud</artifactId> <artifactId>opensync-ext-cloud</artifactId>
@@ -14,126 +16,107 @@
<dependency> <dependency>
<groupId>com.telecominfraproject.wlan</groupId> <groupId>com.telecominfraproject.wlan</groupId>
<artifactId>opensync-ext-interface</artifactId> <artifactId>opensync-ext-interface</artifactId>
<version>1.3.0-SNAPSHOT</version> <version>${tip-wlan-cloud.release.version}</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>com.telecominfraproject.wlan</groupId> <groupId>com.telecominfraproject.wlan</groupId>
<artifactId>opensync-gateway</artifactId> <artifactId>opensync-gateway</artifactId>
<version>1.3.0-SNAPSHOT</version> <version>${tip-wlan-cloud.release.version}</version>
</dependency> </dependency>
<dependency> <dependency>
<artifactId>base-client</artifactId> <artifactId>base-container</artifactId>
<groupId>com.telecominfraproject.wlan</groupId> <groupId>com.telecominfraproject.wlan</groupId>
<version>1.3.0-SNAPSHOT</version> <version>${tip-wlan-cloud.release.version}</version>
</dependency> </dependency>
<dependency> <dependency>
<artifactId>equipment-gateway-models</artifactId> <artifactId>equipment-gateway-models</artifactId>
<groupId>com.telecominfraproject.wlan</groupId> <groupId>com.telecominfraproject.wlan</groupId>
<version>1.3.0-SNAPSHOT</version> <version>${tip-wlan-cloud.release.version}</version>
</dependency> </dependency>
<dependency> <dependency>
<artifactId>customer-service-interface</artifactId> <artifactId>customer-service-interface</artifactId>
<groupId>com.telecominfraproject.wlan</groupId> <groupId>com.telecominfraproject.wlan</groupId>
<version>1.3.0-SNAPSHOT</version> <version>${tip-wlan-cloud.release.version}</version>
</dependency> </dependency>
<dependency> <dependency>
<artifactId>location-service-interface</artifactId> <artifactId>location-service-interface</artifactId>
<groupId>com.telecominfraproject.wlan</groupId> <groupId>com.telecominfraproject.wlan</groupId>
<version>1.3.0-SNAPSHOT</version> <version>${tip-wlan-cloud.release.version}</version>
</dependency> </dependency>
<dependency> <dependency>
<artifactId>equipment-service-interface</artifactId> <artifactId>equipment-service-interface</artifactId>
<groupId>com.telecominfraproject.wlan</groupId> <groupId>com.telecominfraproject.wlan</groupId>
<version>1.3.0-SNAPSHOT</version> <version>${tip-wlan-cloud.release.version}</version>
</dependency> </dependency>
<dependency> <dependency>
<artifactId>profile-service-interface</artifactId> <artifactId>profile-service-interface</artifactId>
<groupId>com.telecominfraproject.wlan</groupId> <groupId>com.telecominfraproject.wlan</groupId>
<version>1.3.0-SNAPSHOT</version> <version>${tip-wlan-cloud.release.version}</version>
</dependency> </dependency>
<dependency> <dependency>
<artifactId>portal-user-service-interface</artifactId> <artifactId>portal-user-service-interface</artifactId>
<groupId>com.telecominfraproject.wlan</groupId> <groupId>com.telecominfraproject.wlan</groupId>
<version>1.3.0-SNAPSHOT</version> <version>${tip-wlan-cloud.release.version}</version>
</dependency> </dependency>
<dependency> <dependency>
<artifactId>service-metric-service-interface</artifactId> <artifactId>service-metric-service-interface</artifactId>
<groupId>com.telecominfraproject.wlan</groupId> <groupId>com.telecominfraproject.wlan</groupId>
<version>1.3.0-SNAPSHOT</version> <version>${tip-wlan-cloud.release.version}</version>
</dependency>
<dependency>
<artifactId>service-metric-models</artifactId>
<groupId>com.telecominfraproject.wlan</groupId>
<version>1.3.0-SNAPSHOT</version>
</dependency> </dependency>
<dependency> <dependency>
<artifactId>system-event-service-interface</artifactId> <artifactId>system-event-service-interface</artifactId>
<groupId>com.telecominfraproject.wlan</groupId> <groupId>com.telecominfraproject.wlan</groupId>
<version>1.3.0-SNAPSHOT</version> <version>${tip-wlan-cloud.release.version}</version>
</dependency>
<dependency>
<artifactId>system-event-models</artifactId>
<groupId>com.telecominfraproject.wlan</groupId>
<version>1.3.0-SNAPSHOT</version>
</dependency> </dependency>
<dependency> <dependency>
<artifactId>alarm-service-interface</artifactId> <artifactId>alarm-service-interface</artifactId>
<groupId>com.telecominfraproject.wlan</groupId> <groupId>com.telecominfraproject.wlan</groupId>
<version>1.3.0-SNAPSHOT</version> <version>${tip-wlan-cloud.release.version}</version>
</dependency> </dependency>
<dependency> <dependency>
<artifactId>status-service-interface</artifactId> <artifactId>status-service-interface</artifactId>
<groupId>com.telecominfraproject.wlan</groupId> <groupId>com.telecominfraproject.wlan</groupId>
<version>1.3.0-SNAPSHOT</version> <version>${tip-wlan-cloud.release.version}</version>
</dependency> </dependency>
<dependency> <dependency>
<artifactId>client-service-interface</artifactId> <artifactId>client-service-interface</artifactId>
<groupId>com.telecominfraproject.wlan</groupId> <groupId>com.telecominfraproject.wlan</groupId>
<version>1.3.0-SNAPSHOT</version> <version>${tip-wlan-cloud.release.version}</version>
</dependency>
<dependency>
<artifactId>client-models</artifactId>
<groupId>com.telecominfraproject.wlan</groupId>
<version>1.3.0-SNAPSHOT</version>
</dependency> </dependency>
<dependency> <dependency>
<artifactId>routing-service-interface</artifactId> <artifactId>routing-service-interface</artifactId>
<groupId>com.telecominfraproject.wlan</groupId> <groupId>com.telecominfraproject.wlan</groupId>
<version>1.3.0-SNAPSHOT</version> <version>${tip-wlan-cloud.release.version}</version>
</dependency> </dependency>
<dependency> <dependency>
<artifactId>firmware-service-interface</artifactId> <artifactId>firmware-service-interface</artifactId>
<groupId>com.telecominfraproject.wlan</groupId> <groupId>com.telecominfraproject.wlan</groupId>
<version>1.3.0-SNAPSHOT</version> <version>${tip-wlan-cloud.release.version}</version>
</dependency> </dependency>
<dependency> <dependency>
<artifactId>manufacturer-service-interface</artifactId> <artifactId>manufacturer-service-interface</artifactId>
<groupId>com.telecominfraproject.wlan</groupId> <groupId>com.telecominfraproject.wlan</groupId>
<version>1.3.0-SNAPSHOT</version> <version>${tip-wlan-cloud.release.version}</version>
</dependency> </dependency>
<dependency> <dependency>
<artifactId>cloud-event-dispatcher-interface</artifactId> <artifactId>cloud-event-dispatcher-interface</artifactId>
<groupId>com.telecominfraproject.wlan</groupId> <groupId>com.telecominfraproject.wlan</groupId>
<version>1.3.0-SNAPSHOT</version> <version>${tip-wlan-cloud.release.version}</version>
</dependency> </dependency>
</dependencies> </dependencies>

View File

@@ -1,8 +1,8 @@
package com.telecominfraproject.wlan.opensync.external.integration.controller; package com.telecominfraproject.wlan.opensync.external.integration.controller;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
import java.util.Collections;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentHashMap;
@@ -11,7 +11,6 @@ import java.util.concurrent.locks.Lock;
import java.util.concurrent.locks.ReadWriteLock; import java.util.concurrent.locks.ReadWriteLock;
import java.util.concurrent.locks.ReentrantReadWriteLock; import java.util.concurrent.locks.ReentrantReadWriteLock;
import java.util.function.BiFunction; import java.util.function.BiFunction;
import java.util.function.Consumer;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
@@ -25,44 +24,27 @@ import org.springframework.security.web.bind.annotation.AuthenticationPrincipal;
import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import com.telecominfraproject.wlan.core.client.PingClient;
import com.telecominfraproject.wlan.core.model.equipment.RadioType;
import com.telecominfraproject.wlan.core.model.service.GatewayType;
import com.telecominfraproject.wlan.core.model.service.ServiceInstanceInformation; import com.telecominfraproject.wlan.core.model.service.ServiceInstanceInformation;
import com.telecominfraproject.wlan.core.server.container.ConnectorProperties; 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.CEGWBaseCommand;
import com.telecominfraproject.wlan.equipmentgateway.models.CEGWBlinkRequest; import com.telecominfraproject.wlan.equipmentgateway.models.CEGWBlinkRequest;
import com.telecominfraproject.wlan.equipmentgateway.models.CEGWChangeRedirectorHost;
import com.telecominfraproject.wlan.equipmentgateway.models.CEGWClientBlocklistChangeNotification;
import com.telecominfraproject.wlan.equipmentgateway.models.CEGWCloseSessionRequest; import com.telecominfraproject.wlan.equipmentgateway.models.CEGWCloseSessionRequest;
import com.telecominfraproject.wlan.equipmentgateway.models.CEGWCommandResultCode; import com.telecominfraproject.wlan.equipmentgateway.models.CEGWCommandResultCode;
import com.telecominfraproject.wlan.equipmentgateway.models.CEGWConfigChangeNotification; import com.telecominfraproject.wlan.equipmentgateway.models.CEGWConfigChangeNotification;
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.CEGWRouteCheck;
import com.telecominfraproject.wlan.equipmentgateway.models.CEGWStartDebugEngine; 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.EquipmentCommand;
import com.telecominfraproject.wlan.equipmentgateway.models.EquipmentCommandResponse; import com.telecominfraproject.wlan.equipmentgateway.models.EquipmentCommandResponse;
import com.telecominfraproject.wlan.equipmentgateway.models.GatewayDefaults; import com.telecominfraproject.wlan.equipmentgateway.models.GatewayDefaults;
import com.telecominfraproject.wlan.opensync.external.integration.OvsdbClientInterface; import com.telecominfraproject.wlan.opensync.external.integration.ConnectusOvsdbClientInterface;
import com.telecominfraproject.wlan.opensync.external.integration.OvsdbSession; import com.telecominfraproject.wlan.opensync.external.integration.OvsdbSession;
import com.telecominfraproject.wlan.opensync.external.integration.OvsdbSessionMapInterface; import com.telecominfraproject.wlan.opensync.external.integration.OvsdbSessionMapInterface;
import com.telecominfraproject.wlan.routing.RoutingServiceInterface; import com.telecominfraproject.wlan.routing.RoutingServiceInterface;
import com.telecominfraproject.wlan.routing.models.EquipmentGatewayRecord; import com.telecominfraproject.wlan.routing.models.EquipmentGatewayRecord;
import com.telecominfraproject.wlan.routing.models.EquipmentRoutingRecord; import com.telecominfraproject.wlan.routing.models.EquipmentRoutingRecord;
import com.telecominfraproject.wlan.server.exceptions.ConfigurationException; import com.telecominfraproject.wlan.server.exceptions.ConfigurationException;
import com.telecominfraproject.wlan.status.equipment.models.EquipmentResetMethod;
/** /**
* Opensync Gateway Controller - integration code for cloud deployment * Opensync Gateway Controller - integration code for cloud deployment
@@ -76,8 +58,8 @@ import com.telecominfraproject.wlan.status.equipment.models.EquipmentResetMethod
@RequestMapping(value = "/api") @RequestMapping(value = "/api")
public class OpensyncCloudGatewayController { public class OpensyncCloudGatewayController {
public static class ListOfEquipmentCommandResponses extends ArrayList<EquipmentCommandResponse> {
public static class ListOfEquipmentCommandResponses extends ArrayList<EquipmentCommandResponse> {
private static final long serialVersionUID = 3070319062835500930L; private static final long serialVersionUID = 3070319062835500930L;
} }
@@ -91,10 +73,7 @@ public class OpensyncCloudGatewayController {
private ServiceInstanceInformation serviceInstanceInfo; private ServiceInstanceInformation serviceInstanceInfo;
@Autowired @Autowired
private OvsdbClientInterface tipwlanOvsdbClient; private ConnectusOvsdbClientInterface connectusOvsdbClient;
@Autowired
private PingClient pingClient;
/** /**
* Flag indicates if this gateway has registered with routing service * Flag indicates if this gateway has registered with routing service
@@ -123,8 +102,7 @@ public class OpensyncCloudGatewayController {
/** /**
* latestTimetamp used when updating {@link #activeCustomerMap} * latestTimetamp used when updating {@link #activeCustomerMap}
*/ */
private final BiFunction<Long, Long, Long> latestTimestamp = new BiFunction<>() { private final BiFunction<Long, Long, Long> latestTimestamp = new BiFunction<Long, Long, Long>() {
@Override @Override
public Long apply(Long oldValue, Long newValue) { public Long apply(Long oldValue, Long newValue) {
if (newValue.compareTo(oldValue) > 0) { if (newValue.compareTo(oldValue) > 0) {
@@ -139,142 +117,90 @@ public class OpensyncCloudGatewayController {
@RequestMapping(value = "/commands", method = RequestMethod.POST) @RequestMapping(value = "/commands", method = RequestMethod.POST)
public ListOfEquipmentCommandResponses sendCommands(@RequestBody List<CEGWBaseCommand> commands) { public ListOfEquipmentCommandResponses sendCommands(@RequestBody List<CEGWBaseCommand> commands) {
ListOfEquipmentCommandResponses ret = new ListOfEquipmentCommandResponses(); ListOfEquipmentCommandResponses ret = new ListOfEquipmentCommandResponses();
if (commands == null) { if(commands == null) {
return ret; return ret;
} }
commands.stream().forEach(new Consumer<CEGWBaseCommand>() { commands.stream().forEach(command -> {
@Override
public void accept(CEGWBaseCommand command) {
LOG.debug("sendCommands - processing {}", command); LOG.debug("sendCommands - processing {}", command);
String inventoryId = command.getInventoryId(); String inventoryId = command.getInventoryId();
if (com.telecominfraproject.wlan.core.model.json.BaseJsonModel.hasUnsupportedValue(command)) { if (com.telecominfraproject.wlan.core.model.json.BaseJsonModel.hasUnsupportedValue(command)) {
LOG.error("[{}] Failed to deliver command {}, command contains unsupported value", inventoryId, 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, ret.add( new EquipmentCommandResponse(CEGWCommandResultCode.UnsupportedCommand,
registeredGateway == null ? null : registeredGateway.getHostname(), registeredGateway == null ? -1 : registeredGateway.getPort())); "Unsupported value in command for " + inventoryId, command, registeredGateway.getHostname(), registeredGateway.getPort()) );
return; return;
} }
OvsdbSession session = ovsdbSessionMapInterface.getSession(inventoryId); OvsdbSession session = ovsdbSessionMapInterface.getSession(inventoryId);
if (session == null) { if (session == null) {
LOG.warn("[{}] Failed to deliver command {}, equipment session not found", inventoryId, command); LOG.warn("[{}] Failed to deliver command {}, equipment session not found", inventoryId, command);
ret.add(new EquipmentCommandResponse(CEGWCommandResultCode.NoRouteToCE, "No session found for " + inventoryId, command, ret.add( new EquipmentCommandResponse(CEGWCommandResultCode.NoRouteToCE,
registeredGateway == null ? null : registeredGateway.getHostname(), registeredGateway == null ? -1 : registeredGateway.getPort())); "No session found for " + inventoryId, command, registeredGateway.getHostname(), registeredGateway.getPort()) );
return; return;
} }
switch (command.getCommandType()) { switch (command.getCommandType()) {
case ConfigChangeNotification: case ConfigChangeNotification:
ret.add(sendConfigChangeNotification(session, (CEGWConfigChangeNotification) command)); ret.add( sendConfigChangeNotification(session, (CEGWConfigChangeNotification) command) );
break; break;
case CloseSessionRequest: case CloseSessionRequest:
ret.add(closeSession(session, (CEGWCloseSessionRequest) command)); ret.add( closeSession(session, (CEGWCloseSessionRequest) command) );
break; break;
case CheckRouting: case CheckRouting:
ret.add(checkEquipmentRouting(session, (CEGWRouteCheck) command)); ret.add( checkEquipmentRouting(session, (CEGWRouteCheck) command) );
break; break;
case BlinkRequest: case BlinkRequest:
ret.add(processBlinkRequest(session, (CEGWBlinkRequest) command)); ret.add( processBlinkRequest(session, (CEGWBlinkRequest) command) );
break;
case ChangeRedirectorHost:
ret.add(processChangeRedirector(session, (CEGWChangeRedirectorHost) command));
break; break;
case StartDebugEngine: case StartDebugEngine:
ret.add(processStartDebugEngine(session, (CEGWStartDebugEngine) command)); ret.add ( processChangeRedirector(session, (CEGWStartDebugEngine) command) );
break; break;
case StopDebugEngine:
ret.add(processStopDebugEngine(session, (CEGWStopDebugEngine) command));
break;
case FirmwareDownloadRequest:
ret.add(processFirmwareDownload(session, (CEGWFirmwareDownloadRequest) command));
break;
case FirmwareFlashRequest:
ret.add(processFirmwareFlash(session, (CEGWFirmwareFlashRequest) command));
break;
case RadioReset:
ret.add(processRadioReset(session, (CEGWRadioResetRequest) command));
break;
case RebootRequest:
ret.add(processRadioReboot(session, (CEGWRebootRequest) command));
break;
case ClientBlocklistChangeNotification:
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: default:
LOG.warn("[{}] Failed to deliver command {}, unsupported command type", inventoryId, command); LOG.warn("[{}] Failed to deliver command {}, unsupported command type", inventoryId, command);
ret.add(new EquipmentCommandResponse(CEGWCommandResultCode.UnsupportedCommand, ret.add ( new EquipmentCommandResponse(CEGWCommandResultCode.UnsupportedCommand,
"Invalid command type (" + command.getCommandType() + ") for equipment (" + inventoryId + ")", command, "Invalid command type (" + command.getCommandType() + ") for equipment (" + inventoryId + ")",
registeredGateway == null ? null : registeredGateway.getHostname(), command, registeredGateway.getHostname(), registeredGateway.getPort()) );
registeredGateway == null ? -1 : registeredGateway.getPort()));
} }
}
}); });
return ret; return ret;
} }
private EquipmentCommandResponse processFirmwareDownload(OvsdbSession session, CEGWFirmwareDownloadRequest command) {
return sendMessage(session, command.getInventoryId(), command);
}
private EquipmentCommandResponse processFirmwareFlash(OvsdbSession session, CEGWFirmwareFlashRequest command) {
return sendMessage(session, command.getInventoryId(), command);
}
private EquipmentCommandResponse processRadioReset(OvsdbSession session, CEGWRadioResetRequest command) {
return sendMessage(session, command.getInventoryId(), command);
}
private EquipmentCommandResponse processRadioReboot(OvsdbSession session, CEGWRebootRequest command) {
return sendMessage(session, command.getInventoryId(), command);
}
@RequestMapping(value = "/defaults", method = RequestMethod.GET) @RequestMapping(value = "/defaults", method = RequestMethod.GET)
public GatewayDefaults retrieveGatewayDefaults() { public GatewayDefaults retrieveGatewayDefaults() {
return new GatewayDefaults(); return new GatewayDefaults();
} }
/** /**
* Verify a route to customer equipment * Verify a route to customer equipment
* *
* @param session * @param session
* @param command * @param command
* @param protocolVersion
* @return NoRouteToCE if route Id does not match or Success * @return NoRouteToCE if route Id does not match or Success
*/ */
private EquipmentCommandResponse checkEquipmentRouting(OvsdbSession session, CEGWRouteCheck command) { private EquipmentCommandResponse checkEquipmentRouting(OvsdbSession session, CEGWRouteCheck command) {
if (null != command.getRoutingId()) { if (null != command.getRoutingId()) {
if (!command.getRoutingId().equals(session.getRoutingId())) { if (!command.getRoutingId().equals(session.getRoutingId())) {
LOG.info("[E:{} R:{}] Stale routing entry ({}) detected", command.getInventoryId(), session.getRoutingId(), LOG.info("[C:{} E:{} R:{}] Stale routing entry ({}) detected", session.getCustomerId(),
command.getRoutingId()); command.getInventoryId(), session.getRoutingId(), command.getRoutingId());
return new EquipmentCommandResponse(CEGWCommandResultCode.NoRouteToCE, "Inactive Route Identifer", command, return new EquipmentCommandResponse(CEGWCommandResultCode.NoRouteToCE,
registeredGateway == null ? null : registeredGateway.getHostname(), registeredGateway == null ? -1 : registeredGateway.getPort()); "Inactive Route Identifer", command,
registeredGateway.getHostname(), registeredGateway.getPort());
} }
} }
return new EquipmentCommandResponse(CEGWCommandResultCode.Success, "Route active", command, return new EquipmentCommandResponse(CEGWCommandResultCode.Success, "Route active",
registeredGateway == null ? null : registeredGateway.getHostname(), registeredGateway == null ? -1 : registeredGateway.getPort()); command, registeredGateway.getHostname(), registeredGateway.getPort());
} }
private EquipmentCommandResponse sendConfigChangeNotification(OvsdbSession session, CEGWConfigChangeNotification command) { private EquipmentCommandResponse sendConfigChangeNotification(OvsdbSession session,
CEGWConfigChangeNotification command) {
return sendMessage(session, command.getInventoryId(), command); return sendMessage(session, command.getInventoryId(), command);
} }
@@ -285,141 +211,50 @@ public class OpensyncCloudGatewayController {
} catch (Exception e) { } catch (Exception e) {
LOG.error("[{}] Failed to close session on CE: {}", command.getInventoryId(), e.getLocalizedMessage()); LOG.error("[{}] Failed to close session on CE: {}", command.getInventoryId(), e.getLocalizedMessage());
return new EquipmentCommandResponse(CEGWCommandResultCode.FailedToSend, return new EquipmentCommandResponse(CEGWCommandResultCode.FailedToSend,
"Failed to send command " + command.getCommandType() + " to " + command.getInventoryId() + ": " + e.getMessage(), command, "Failed to send command " + command.getCommandType() + " to " + command.getInventoryId() + ": "
registeredGateway == null ? null : registeredGateway.getHostname(), registeredGateway == null ? -1 : registeredGateway.getPort()); + e.getMessage(), command,
registeredGateway.getHostname(), registeredGateway.getPort());
} }
LOG.debug("[{}] Closed session to CE", command.getInventoryId()); LOG.debug("[{}] Closed session to CE", command.getInventoryId());
return new EquipmentCommandResponse(CEGWCommandResultCode.Success, "Closed session to " + command.getInventoryId(), command, return new EquipmentCommandResponse(CEGWCommandResultCode.Success,
registeredGateway == null ? null : registeredGateway.getHostname(), registeredGateway == null ? -1 : registeredGateway.getPort()); "Closed session to " + command.getInventoryId(), command,
registeredGateway.getHostname(), registeredGateway.getPort());
} }
private EquipmentCommandResponse sendClientBlocklistChangeNotification(OvsdbSession session, CEGWClientBlocklistChangeNotification command) {
return sendMessage(session, command.getInventoryId(), command);
}
private EquipmentCommandResponse sendNewChannelRequest(OvsdbSession session, CEGWNewChannelRequest command) {
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 * Deliver a message in payload to the CE
* *
* @param session * @param session
* @param inventoryId * @param inventoryId
* @param command * @param command
* @param request
* @return * @return
*/ */
private EquipmentCommandResponse sendMessage(OvsdbSession session, String inventoryId, EquipmentCommand command) { private EquipmentCommandResponse sendMessage(OvsdbSession session, String inventoryId,
EquipmentCommand command) {
LOG.debug("Received command {} for {}", command.getCommandType(), inventoryId); LOG.debug("Received command {} for {}", command.getCommandType(), inventoryId);
EquipmentCommandResponse response = EquipmentCommandResponse response = new EquipmentCommandResponse(
new EquipmentCommandResponse(CEGWCommandResultCode.Success, "Received Command " + command.getCommandType() + " for " + inventoryId, command, CEGWCommandResultCode.Success,
registeredGateway == null ? null : registeredGateway.getHostname(), registeredGateway == null ? -1 : registeredGateway.getPort()); "Received Command " + command.getCommandType() + " for " + inventoryId, command,
registeredGateway.getHostname(), registeredGateway.getPort());
if (command instanceof CEGWBlinkRequest) { if (command instanceof CEGWConfigChangeNotification) {
String resultDetails = tipwlanOvsdbClient.processBlinkRequest(inventoryId, ((CEGWBlinkRequest)command).getBlinkAllLEDs()); connectusOvsdbClient.processConfigChanged(inventoryId);
response.setResultDetail(resultDetails);
} else if (command instanceof CEGWConfigChangeNotification) {
tipwlanOvsdbClient.processConfigChanged(inventoryId);
} else if (command instanceof CEGWClientBlocklistChangeNotification) {
tipwlanOvsdbClient.processClientBlocklistChange(inventoryId, ((CEGWClientBlocklistChangeNotification) command).getBlockList());
} else if (command instanceof CEGWChangeRedirectorHost) {
String newRedirectorAddress = ((CEGWChangeRedirectorHost) command).getRedirectorHost();
tipwlanOvsdbClient.changeRedirectorHost(inventoryId, newRedirectorAddress);
} else if (command instanceof CEGWStartDebugEngine) { } else if (command instanceof CEGWStartDebugEngine) {
String gatewayHostname = ((CEGWStartDebugEngine) command).getGatewayHostname(); // dtop: we will be using CEGWStartDebugEngine command to deliver request to
int gatewayPort = ((CEGWStartDebugEngine) command).getGatewayPort(); // change redirector
tipwlanOvsdbClient.startDebugEngine(inventoryId, gatewayHostname, gatewayPort); // TODO: after the demo introduce a specialized command for this!
} else if (command instanceof CEGWStopDebugEngine) { String newRedirectorAddress = ((CEGWStartDebugEngine) command).getGatewayHostname();
tipwlanOvsdbClient.stopDebugEngine(inventoryId); connectusOvsdbClient.changeRedirectorAddress(inventoryId, newRedirectorAddress);
} else if (command instanceof CEGWNewChannelRequest) {
CEGWNewChannelRequest request = (CEGWNewChannelRequest) command;
Map<RadioType, Integer> newBackupChannels = request.getNewBackupChannels();
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) {
CEGWFirmwareDownloadRequest dlRequest = (CEGWFirmwareDownloadRequest) command;
String filepath = dlRequest.getFilePath();
String firmwareVersion = dlRequest.getFirmwareVersion();
String username = dlRequest.getUsername();
String resultDetails = tipwlanOvsdbClient.processFirmwareDownload(inventoryId, filepath, firmwareVersion, username);
response.setResultDetail(resultDetails);
} else if (command instanceof CEGWFirmwareFlashRequest) {
CEGWFirmwareFlashRequest flashRequest = (CEGWFirmwareFlashRequest) command;
flashRequest.getFirmwareVersion();
flashRequest.getInventoryId();
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 == null ? null : registeredGateway.getHostname(), registeredGateway == null ? -1 : registeredGateway.getPort());
} else if (command instanceof CEGWRebootRequest) {
CEGWRebootRequest rebootRequest = (CEGWRebootRequest) command;
// Reboot the AP, Reset method specifies what kind of reboot, i.e.
// Factory reset, reboot without changes, etc.
EquipmentResetMethod resetMethod = rebootRequest.getPerformReset();
switch (resetMethod) {
case FactoryReset:
response.setResultDetail(tipwlanOvsdbClient.processFactoryResetRequest(inventoryId));
break;
case NoReset:
if (rebootRequest.isUseInactiveBank()) {
response.setResultDetail(tipwlanOvsdbClient.processRebootRequest(inventoryId, true));
} else {
response.setResultDetail(tipwlanOvsdbClient.processRebootRequest(inventoryId, false));
}
break;
case ConfigReset:
case UNSUPPORTED: // for UNSUPPORTED or default just respond
// with Unsupported Command
default:
response = new EquipmentCommandResponse(CEGWCommandResultCode.UnsupportedCommand,
"Received Command " + command.getCommandType() + " for " + inventoryId, command,
registeredGateway == null ? null : registeredGateway.getHostname(), registeredGateway == null ? -1 : registeredGateway.getPort());
}
} }
return response; return response;
} }
private EquipmentCommandResponse processChangeRedirector(OvsdbSession session, CEGWChangeRedirectorHost command) { private EquipmentCommandResponse processChangeRedirector(OvsdbSession session,
return sendMessage(session, command.getInventoryId(), command); CEGWStartDebugEngine command) {
}
private EquipmentCommandResponse processStartDebugEngine(OvsdbSession session, CEGWStartDebugEngine command) {
return sendMessage(session, command.getInventoryId(), command);
}
private EquipmentCommandResponse processStopDebugEngine(OvsdbSession session, CEGWStopDebugEngine command) {
return sendMessage(session, command.getInventoryId(), command); return sendMessage(session, command.getInventoryId(), command);
} }
@@ -429,8 +264,8 @@ public class OpensyncCloudGatewayController {
} }
@RequestMapping(value = "/commandWithUser", method = RequestMethod.POST) @RequestMapping(value = "/commandWithUser", method = RequestMethod.POST)
public EquipmentCommandResponse sendCommandWithAuthUser(@RequestBody EquipmentCommand command, @AuthenticationPrincipal Object requestUser, public EquipmentCommandResponse sendCommandWithAuthUser(@RequestBody EquipmentCommand command,
HttpServletRequest httpServletRequest) { @AuthenticationPrincipal Object requestUser, HttpServletRequest httpServletRequest) {
// use these properties to get address and port where request has // use these properties to get address and port where request has
// arrived // arrived
@@ -463,10 +298,9 @@ public class OpensyncCloudGatewayController {
} }
if (eqRoutingSvc == null) { 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();
EquipmentGatewayRecord gwRecord = new EquipmentGatewayRecord(); EquipmentGatewayRecord gwRecord = new EquipmentGatewayRecord();
// external facing service, protected by the client certificate auth // external facing service, protected by the client certificate auth
@@ -476,58 +310,20 @@ public class OpensyncCloudGatewayController {
try { try {
EquipmentGatewayRecord result = eqRoutingSvc.registerGateway(gwRecord); EquipmentGatewayRecord result = this.eqRoutingSvc.registerGateway(gwRecord);
registeredGwId = result.getId(); this.registeredGwId = result.getId();
registeredGateway = result; this.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; registeredWithRoutingService = true;
} catch (RuntimeException e) { } catch (RuntimeException e) {
// failed // 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());
} }
} }
} }
/**
* This method does the following: See WIFI-540 1. Retrieves the existing
* list of Gateway entries from the Routing Service 2. Check each one of
* them for reachability (using PING method) 3. If the Gw does not respond
* (stale IP), they will be unregistered/cleaned
*/
protected void cleanupStaleGwRecord() {
LOG.debug("In CleanUp stale registered Gateways records ");
try {
// Get Equipment gateway list
List<EquipmentGatewayRecord> eqGwRecList = eqRoutingSvc.getGateway(GatewayType.CEGW);
if (eqGwRecList != null) {
for (EquipmentGatewayRecord eqpRec : eqGwRecList) {
if (!isGwReachable(eqpRec.getIpAddr(), eqpRec.getPort())) {
// GW isn't reachable --> invoke deleteGw
LOG.debug("Gateway {} is not-reachable... deleting from Routing Svc", eqpRec.getHostname());
try {
eqRoutingSvc.deleteGateway(eqpRec.getId());
} catch (RuntimeException e) {
// failed
LOG.error("Failed to delete Equipment Gateway (name={}) from Routing Service: {}", eqpRec.getHostname(), e.getLocalizedMessage());
}
} else {
LOG.debug("Gateway {} is reachable.", eqpRec.getHostname());
}
}
} else {
LOG.debug("No gateways registered with Routing Service");
}
} 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());
}
}
private boolean isGwReachable(String ipAddr, int port) {
return pingClient.isReachable(ipAddr, port);
}
/** /**
* Return the current deployment identifier * Return the current deployment identifier
* *
@@ -544,20 +340,21 @@ public class OpensyncCloudGatewayController {
if (registeredWithRoutingService) { if (registeredWithRoutingService) {
try { try {
eqRoutingSvc.deleteGateway(registeredGwId); 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",
registeredGwId = -1; getGatewayName(), this.registeredGwId);
registeredGateway = null; this.registeredGwId = -1;
this.registeredGateway = null;
} catch (Exception e) { } catch (Exception e) {
// failed // failed
LOG.error("Failed to deregister Customer Equipment Gateway (name={},id={}) with Routing Service: {}", getGatewayName(), registeredGwId, LOG.error("Failed to deregister Customer Equipment Gateway (name={},id={}) with Routing Service: {}",
e.getLocalizedMessage()); getGatewayName(), this.registeredGwId, e.getLocalizedMessage());
} }
registeredWithRoutingService = false; registeredWithRoutingService = false;
} }
} }
public long getRegisteredGwId() { public long getRegisteredGwId() {
return registeredGwId; return this.registeredGwId;
} }
/** /**
@@ -568,100 +365,46 @@ public class OpensyncCloudGatewayController {
* @param equipmentId * @param equipmentId
* @return associationId * @return associationId
*/ */
public EquipmentRoutingRecord registerCustomerEquipment(String equipmentName, Integer customerId, Long equipmentId) { public EquipmentRoutingRecord registerCustomerEquipment(String equipmentName, Integer customerId,
Long equipmentId) {
registerWithRoutingService(); registerWithRoutingService();
if (!registeredWithRoutingService) { 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; return null;
} }
// Clean up stale records
cleanupStaleEqptRoutingRecord(equipmentId);
EquipmentRoutingRecord routingRecord = new EquipmentRoutingRecord(); EquipmentRoutingRecord routingRecord = new EquipmentRoutingRecord();
routingRecord.setCustomerId(customerId); routingRecord.setCustomerId(customerId);
routingRecord.setEquipmentId(equipmentId); routingRecord.setEquipmentId(equipmentId);
routingRecord.setGatewayId(registeredGwId); routingRecord.setGatewayId(this.registeredGwId);
try { try {
routingRecord = eqRoutingSvc.create(routingRecord); 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; return routingRecord;
} catch (Exception e) { } 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; return null;
} }
/**
* Deletes the Equipment to Gateway relationship for gateway's that don't
* respond See WIFI-540 1. Get List of EquipmentRoutingRecords for an
* Equipment 2. Get the GW from GW-Id associated with 'this'
* EquipmentRoutingRecord 3. Try to ping the gateway 4. If ping fails or
* Gateway does not exist, delete the equipmentRouting entry.
*
* @param equipmentId:
* Equipment's ID
*/
protected void cleanupStaleEqptRoutingRecord(Long equipmentId) {
LOG.debug("In Clean Up stale Equipment Routing record for Equipment ID {}", equipmentId);
try {
List<EquipmentRoutingRecord> eqptRoutingRecsList = eqRoutingSvc.getRegisteredRouteList(equipmentId);
if (eqptRoutingRecsList != null) {
for (EquipmentRoutingRecord eqRouting : eqptRoutingRecsList) {
try {
EquipmentGatewayRecord gwRec = eqRoutingSvc.getGateway(eqRouting.getGatewayId());
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());
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());
deleteUnresponiveGwRoutingRecord(eqRouting.getId(), equipmentId);
}
} catch (DsEntityNotFoundException entityNotFoundException) {
LOG.debug("Gateway ID: {} not found... Deleting the equipment routing entry", eqRouting.getGatewayId());
deleteUnresponiveGwRoutingRecord(eqRouting.getId(), equipmentId);
}
}
} else {
LOG.debug("No gateways registered with Routing Service for Equipment ID {}", equipmentId);
}
} 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());
}
}
private boolean deleteUnresponiveGwRoutingRecord(Long routingId, Long eqptId) {
try {
eqRoutingSvc.delete(routingId);
} catch (RuntimeException e) {
// failed
LOG.error("Failed to delete Equipment routing record (ID={}) from Routing Service: {}", eqptId, e.getLocalizedMessage());
return false;
}
return true;
}
public void deregisterCustomerEquipment(Long routingId, String equipmentName, Long equipmentId) { public void deregisterCustomerEquipment(Long routingId, String equipmentName, Long equipmentId) {
if (!registeredWithRoutingService) { 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; return;
} }
try { 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); eqRoutingSvc.delete(routingId);
} catch (Exception e) { } catch (Exception e) {
LOG.error("Failed to deregister customer equipement (name={},id={}) with route id={}: {}", equipmentName, equipmentId, routingId, LOG.error("Failed to deregister customer equipement (name={},id={}) with route id={}: {}", equipmentName,
e.getLocalizedMessage()); equipmentId, routingId, e.getLocalizedMessage());
} }
} }
@@ -671,11 +414,10 @@ public class OpensyncCloudGatewayController {
@Scheduled(initialDelay = 5 * 60 * 1000, fixedRate = 5 * 60 * 1000) @Scheduled(initialDelay = 5 * 60 * 1000, fixedRate = 5 * 60 * 1000)
public void updateActiveCustomer() { public void updateActiveCustomer() {
try { try {
Map<Integer, Long> activeMap = getActiveCustomerMapForUpdate(); Map<Integer, Long> activeMap = this.getActiveCustomerMapForUpdate();
if (null != activeMap) { if (null != activeMap) {
LOG.info("Updating active customer records, total record size {}", activeMap.size()); LOG.info("Updating active customer records, total record size {}", activeMap.size());
// this.eqRoutingSvc.updateActiveCustomer(activeMap, // this.eqRoutingSvc.updateActiveCustomer(activeMap, getDeploymentId());
// getDeploymentId());
} }
} catch (RuntimeException exp) { } catch (RuntimeException exp) {
LOG.error("Failed to update active customer records due to exception {}", exp.getLocalizedMessage()); LOG.error("Failed to update active customer records due to exception {}", exp.getLocalizedMessage());
@@ -697,11 +439,11 @@ public class OpensyncCloudGatewayController {
* @param customerId * @param customerId
*/ */
public void updateActiveCustomer(int customerId) { public void updateActiveCustomer(int customerId) {
activeCustomerReadLock.lock(); this.activeCustomerReadLock.lock();
try { try {
activeCustomerMap.merge(customerId, System.currentTimeMillis(), latestTimestamp); this.activeCustomerMap.merge(customerId, System.currentTimeMillis(), latestTimestamp);
} finally { } finally {
activeCustomerReadLock.unlock(); this.activeCustomerReadLock.unlock();
} }
} }
@@ -711,17 +453,17 @@ public class OpensyncCloudGatewayController {
* @return null if no records. * @return null if no records.
*/ */
protected Map<Integer, Long> getActiveCustomerMapForUpdate() { protected Map<Integer, Long> getActiveCustomerMapForUpdate() {
activeCustomerWriteLock.lock(); this.activeCustomerWriteLock.lock();
try { try {
Map<Integer, Long> map = null; Map<Integer, Long> map = null;
if (!activeCustomerMap.isEmpty()) { if (!this.activeCustomerMap.isEmpty()) {
map = activeCustomerMap; map = this.activeCustomerMap;
activeCustomerMap = new ConcurrentHashMap<>(); this.activeCustomerMap = new ConcurrentHashMap<>();
} }
return map; return map;
} finally { } finally {
activeCustomerWriteLock.unlock(); this.activeCustomerWriteLock.unlock();
} }
} }
} }

View File

@@ -2,10 +2,8 @@ package com.telecominfraproject.wlan.opensync.external.integration.controller;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.ApplicationListener; import org.springframework.context.ApplicationListener;
import org.springframework.context.event.ContextStartedEvent; import org.springframework.context.event.ContextStartedEvent;
import org.springframework.stereotype.Component;
/** /**
* Listen for context started event so that we are register with routing service * Listen for context started event so that we are register with routing service
@@ -13,13 +11,15 @@ import org.springframework.stereotype.Component;
* @author yongli * @author yongli
* *
*/ */
@Component
public class OpensyncGatewayControllerStartListener implements ApplicationListener<ContextStartedEvent> { public class OpensyncGatewayControllerStartListener implements ApplicationListener<ContextStartedEvent> {
private static final Logger LOG = LoggerFactory.getLogger(OpensyncGatewayControllerStartListener.class); private static final Logger LOG = LoggerFactory.getLogger(OpensyncGatewayControllerStartListener.class);
@Autowired OpensyncCloudGatewayController controller;
private OpensyncCloudGatewayController controller;
public OpensyncGatewayControllerStartListener(OpensyncCloudGatewayController controller) {
this.controller = controller;
}
@Override @Override
public void onApplicationEvent(ContextStartedEvent event) { public void onApplicationEvent(ContextStartedEvent event) {

View File

@@ -2,10 +2,8 @@ package com.telecominfraproject.wlan.opensync.external.integration.controller;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.ApplicationListener; import org.springframework.context.ApplicationListener;
import org.springframework.context.event.ContextClosedEvent; import org.springframework.context.event.ContextClosedEvent;
import org.springframework.stereotype.Component;
/** /**
* Register for stop event so that we can de-register from routing service * Register for stop event so that we can de-register from routing service
@@ -13,13 +11,14 @@ import org.springframework.stereotype.Component;
* @author yongli * @author yongli
* *
*/ */
@Component
public class OpensyncGatewayControllerStopListener implements ApplicationListener<ContextClosedEvent> { public class OpensyncGatewayControllerStopListener implements ApplicationListener<ContextClosedEvent> {
OpensyncCloudGatewayController controller;
private static final Logger LOG = LoggerFactory.getLogger(OpensyncGatewayControllerStopListener.class); private static final Logger LOG = LoggerFactory.getLogger(OpensyncGatewayControllerStopListener.class);
@Autowired public OpensyncGatewayControllerStopListener(OpensyncCloudGatewayController controller) {
private OpensyncCloudGatewayController controller; this.controller = controller;
}
@Override @Override
public void onApplicationEvent(ContextClosedEvent event) { public void onApplicationEvent(ContextClosedEvent event) {

View File

@@ -0,0 +1,29 @@
package com.telecominfraproject.wlan.opensync.external.integration.controller;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.ApplicationListener;
import org.springframework.context.annotation.Bean;
import org.springframework.context.event.ContextClosedEvent;
import org.springframework.context.event.ContextStartedEvent;
import org.springframework.stereotype.Component;
@Component
public class OpensyncGatewayListenerConfiguration {
@Autowired
OpensyncCloudGatewayController controller;
private static final Logger LOG = LoggerFactory.getLogger(OpensyncGatewayControllerStartListener.class);
@Bean
public ApplicationListener<ContextClosedEvent> myStopEventListner() {
LOG.debug("Creating stop event listener");
return new OpensyncGatewayControllerStopListener(controller);
}
@Bean
public ApplicationListener<ContextStartedEvent> myStartedEventListener() {
LOG.debug("Creating start event listener");
return new OpensyncGatewayControllerStartListener(controller);
}
}

View File

@@ -1,749 +0,0 @@
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);
}
}
}

View File

@@ -1,915 +0,0 @@
package com.telecominfraproject.wlan.opensync.external.integration;
import static org.junit.Assert.assertNotNull;
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;
import java.util.Map;
import java.util.Set;
import java.util.UUID;
import org.junit.After;
import org.junit.Before;
import org.junit.Ignore;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Answers;
import org.mockito.ArgumentMatchers;
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.cache.CacheManager;
import org.springframework.cache.caffeine.CaffeineCacheManager;
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.common.collect.ImmutableList;
import com.google.common.collect.ImmutableMap;
import com.google.common.collect.ImmutableSet;
import com.google.protobuf.ByteString;
import com.telecominfraproject.wlan.alarm.AlarmServiceInterface;
import com.telecominfraproject.wlan.client.ClientServiceInterface;
import com.telecominfraproject.wlan.client.info.models.ClientInfoDetails;
import com.telecominfraproject.wlan.client.session.models.ClientSession;
import com.telecominfraproject.wlan.client.session.models.ClientSessionDetails;
import com.telecominfraproject.wlan.cloudeventdispatcher.CloudEventDispatcherInterface;
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;
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.firmware.models.CustomerFirmwareTrackRecord;
import com.telecominfraproject.wlan.firmware.models.CustomerFirmwareTrackSettings;
import com.telecominfraproject.wlan.location.models.Location;
import com.telecominfraproject.wlan.location.models.LocationDetails;
import com.telecominfraproject.wlan.location.models.LocationType;
import com.telecominfraproject.wlan.location.service.LocationServiceInterface;
import com.telecominfraproject.wlan.opensync.external.integration.controller.OpensyncCloudGatewayController;
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;
import com.telecominfraproject.wlan.profile.network.models.ApNetworkConfiguration;
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;
import com.telecominfraproject.wlan.status.equipment.report.models.ActiveBSSIDs;
import com.telecominfraproject.wlan.status.equipment.report.models.ClientConnectionDetails;
import com.telecominfraproject.wlan.status.models.Status;
import com.telecominfraproject.wlan.status.models.StatusDataType;
import com.vmware.ovsdb.protocol.operation.notation.Uuid;
import sts.OpensyncStats.AssocType;
import sts.OpensyncStats.Client;
import sts.OpensyncStats.ClientReport;
import sts.OpensyncStats.EventReport;
import sts.OpensyncStats.EventReport.ClientAssocEvent;
import sts.OpensyncStats.RadioBandType;
import sts.OpensyncStats.Report;
@RunWith(SpringRunner.class)
@ActiveProfiles(profiles = {"integration_test",})
@SpringBootTest(webEnvironment = WebEnvironment.NONE, classes = OpensyncExternalIntegrationCloudTest.class)
@Import(value = {AlarmServiceInterface.class, OpensyncExternalIntegrationCloud.class, OpensyncExternalIntegrationCloudTest.Config.class,
})
public class OpensyncExternalIntegrationCloudTest {
@MockBean
AlarmServiceInterface alarmServiceInterface;
@MockBean
CustomerServiceInterface customerServiceInterface;
@MockBean
LocationServiceInterface locationServiceInterface;
@MockBean(answer = Answers.RETURNS_MOCKS)
OvsdbSessionMapInterface ovsdbSessionMapInterface;
@MockBean
CloudEventDispatcherInterface equipmentMetricsCollectorInterface;
@MockBean
EquipmentServiceInterface equipmentServiceInterface;
@MockBean
RoutingServiceInterface routingServiceInterface;
@MockBean
ProfileServiceInterface profileServiceInterface;
@MockBean
StatusServiceInterface statusServiceInterface;
@MockBean
ClientServiceInterface clientServiceInterface;
@MockBean
FirmwareServiceInterface firmwareServiceInterface;
@MockBean(answer = Answers.RETURNS_MOCKS)
OpensyncCloudGatewayController gatewayController;
@MockBean
MqttStatsPublisher opensyncExternalIntegrationMqttProcessor;
@Autowired
OpensyncExternalIntegrationCloud opensyncExternalIntegrationCloud;
MockitoSession mockito;
@Configuration
static class Config {
@Bean
public OpensyncExternalIntegrationCloud opensyncExternalIntegrationCloud() {
return new OpensyncExternalIntegrationCloud();
}
@Bean
public CacheManager cacheManager() {
return new CaffeineCacheManager();
}
}
@Before
public void setUp() throws Exception {
mockito = Mockito.mockitoSession().initMocks(this).strictness(Strictness.STRICT_STUBS).startMocking();
}
@After
public void tearDown() throws Exception {
mockito.finishMocking();
}
@Test
public void testApConnected() {
Location location = new Location();
location.setId(8L);
location.setCustomerId(2);
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();
customerDetails.setAutoProvisioning(new EquipmentAutoProvisioningSettings());
customerDetails.getAutoProvisioning().setEnabled(true);
customerDetails.getAutoProvisioning().setLocationId(location.getId());
customer.setDetails(customerDetails);
Mockito.when(customerServiceInterface.getOrNull(ArgumentMatchers.anyInt())).thenReturn(customer);
Profile apProfile = new Profile();
apProfile.setDetails(ApNetworkConfiguration.createWithDefaults());
Profile ssidProfile = new Profile();
ssidProfile.setDetails(SsidConfiguration.createWithDefaults());
apProfile.setChildProfileIds(ImmutableSet.of(ssidProfile.getId()));
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]);
Status fwStatus = new Status();
fwStatus.setDetails(new EquipmentUpgradeStatusData());
Mockito.when(statusServiceInterface.getOrNull(ArgumentMatchers.anyInt(), ArgumentMatchers.anyLong(), ArgumentMatchers.eq(StatusDataType.FIRMWARE)))
.thenReturn(fwStatus);
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);
Equipment equipment = new Equipment();
equipment.setCustomerId(2);
equipment.setEquipmentType(EquipmentType.AP);
equipment.setInventoryId("Test_Client_21P10C68818122");
equipment.setLocationId(location.getId());
equipment.setId(1L);
equipment.setProfileId(apProfile.getId());
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.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.verify(locationServiceInterface).getOrNull(ArgumentMatchers.anyLong());
}
@Test
public void testApConnectedNewAp() throws Exception {
Location location = new Location();
location.setId(8L);
location.setCustomerId(2);
LocationDetails details = LocationDetails.createWithDefaults();
details.setCountryCode(CountryCode.CA);
location.setDetails(details);
location.setName("Location-UT");
location.setLocationType(LocationType.BUILDING);
Mockito.when(locationServiceInterface.getOrNull(8L)).thenReturn(location);
Customer customer = new Customer();
customer.setId(2);
CustomerDetails customerDetails = new CustomerDetails();
customerDetails.setAutoProvisioning(new EquipmentAutoProvisioningSettings());
customerDetails.getAutoProvisioning().setEnabled(true);
customerDetails.getAutoProvisioning().setLocationId(location.getId());
customer.setDetails(customerDetails);
Mockito.when(customerServiceInterface.getOrNull(ArgumentMatchers.anyInt())).thenReturn(customer);
Profile rfProfile = new Profile();
rfProfile.setId(1);
rfProfile.setName("testRfProfile");
rfProfile.setDetails(RfConfiguration.createWithDefaults());
rfProfile.setProfileType(ProfileType.rf);
Profile apProfile = new Profile();
apProfile.setDetails(ApNetworkConfiguration.createWithDefaults());
apProfile.setName("testApProfile");
apProfile.setProfileType(ProfileType.equipment_ap);
Profile ssidProfile = new Profile();
ssidProfile.setId(2);
ssidProfile.setDetails(SsidConfiguration.createWithDefaults());
Set<Long> childProfileIds = new HashSet<>();
childProfileIds.add(rfProfile.getId());
childProfileIds.add(ssidProfile.getId());
apProfile.setChildProfileIds(childProfileIds);
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<>();
profileList.add(apProfile);
profileList.add(rfProfile);
profileList.add(ssidProfile);
Mockito.when(profileServiceInterface.getProfileWithChildren(ArgumentMatchers.anyLong())).thenReturn(profileList);
Equipment equipment = new Equipment();
equipment.setCustomerId(2);
equipment.setEquipmentType(EquipmentType.AP);
equipment.setInventoryId("Test_Client_21P10C68818122");
equipment.setLocationId(location.getId());
equipment.setId(1L);
equipment.setProfileId(apProfile.getId());
equipment.setDetails(ApElementConfiguration.createWithDefaults());
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);
Status fwStatus = new Status();
fwStatus.setDetails(new EquipmentUpgradeStatusData());
Mockito.when(statusServiceInterface.getOrNull(ArgumentMatchers.anyInt(), ArgumentMatchers.anyLong(), ArgumentMatchers.eq(StatusDataType.FIRMWARE)))
.thenReturn(fwStatus);
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);
OvsdbSession session = Mockito.mock(OvsdbSession.class);
Mockito.when(ovsdbSessionMapInterface.getSession("Test_Client_21P10C68818122")).thenReturn(session);
// Mockito.when(locationServiceInterface.get(Mockito.anyLong())).thenReturn(value);
opensyncExternalIntegrationCloud.apConnected("Test_Client_21P10C68818122", createConnectNodeInfo());
Mockito.verify(customerServiceInterface).getOrNull(ArgumentMatchers.anyInt());
Mockito.verify(equipmentServiceInterface).getByInventoryIdOrNull("Test_Client_21P10C68818122");
Mockito.verify(firmwareServiceInterface).getDefaultCustomerTrackSetting();
Mockito.verify(locationServiceInterface, Mockito.times(2)).getOrNull(ArgumentMatchers.anyLong());
}
@Test
public void testApConnectedNoAutoprovisioning() throws Exception {
Profile apProfile = new Profile();
apProfile.setDetails(ApNetworkConfiguration.createWithDefaults());
Profile ssidProfile = new Profile();
ssidProfile.setDetails(SsidConfiguration.createWithDefaults());
apProfile.setChildProfileIds(ImmutableSet.of(ssidProfile.getId()));
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]);
Location location = new Location();
location.setId(8L);
location.setCustomerId(2);
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);
equipment.setEquipmentType(EquipmentType.AP);
equipment.setInventoryId("Test_Client_21P10C68818122");
equipment.setLocationId(location.getId());
equipment.setId(1L);
equipment.setProfileId(apProfile.getId());
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(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(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);
Customer customer = new Customer();
customer.setId(2);
CustomerDetails customerDetails = new CustomerDetails();
EquipmentAutoProvisioningSettings autoprovSettings = new EquipmentAutoProvisioningSettings();
autoprovSettings.setEnabled(false);
customerDetails.setAutoProvisioning(autoprovSettings);
customer.setDetails(customerDetails);
Mockito.when(customerServiceInterface.getOrNull(ArgumentMatchers.anyInt())).thenReturn(customer);
opensyncExternalIntegrationCloud.apConnected("Test_Client_21P10C68818122", createConnectNodeInfo());
}
@Test
public void testApDisconnected() {
opensyncExternalIntegrationCloud.apDisconnected("Test_Client_21P10C68818122");
}
@Test
public void testGetApConfig() throws Exception {
Customer customer = new Customer();
customer.setId(2);
CustomerDetails customerDetails = new CustomerDetails();
EquipmentAutoProvisioningSettings autoprovSettings = new EquipmentAutoProvisioningSettings();
autoprovSettings.setEnabled(true);
customerDetails.setAutoProvisioning(autoprovSettings);
customer.setDetails(customerDetails);
Mockito.when(customerServiceInterface.getOrNull(ArgumentMatchers.anyInt())).thenReturn(customer);
Equipment equipment = new Equipment();
equipment.setDetails(ApElementConfiguration.createWithDefaults());
Mockito.when(equipmentServiceInterface.getByInventoryIdOrNull(ArgumentMatchers.any())).thenReturn(equipment);
Profile apProfile = new Profile();
apProfile.setDetails(ApNetworkConfiguration.createWithDefaults());
Profile ssidProfile = new Profile();
ssidProfile.setDetails(SsidConfiguration.createWithDefaults());
List<Profile> profileWithChildren = ImmutableList.of(apProfile, ssidProfile);
Mockito.when(profileServiceInterface.getProfileWithChildren(ArgumentMatchers.anyLong())).thenReturn(profileWithChildren);
assertNotNull(opensyncExternalIntegrationCloud.getApConfig("Test_Client_21P10C68818122"));
}
@Test
public void testGetApConfigNoAutoprovisioning() throws Exception {
Customer customer = new Customer();
customer.setId(2);
CustomerDetails customerDetails = new CustomerDetails();
EquipmentAutoProvisioningSettings autoprovSettings = new EquipmentAutoProvisioningSettings();
autoprovSettings.setEnabled(false);
customerDetails.setAutoProvisioning(autoprovSettings);
customer.setDetails(customerDetails);
Mockito.when(customerServiceInterface.getOrNull(ArgumentMatchers.anyInt())).thenReturn(customer);
assertNull(opensyncExternalIntegrationCloud.getApConfig("Test_Client_21P10C68818122"));
}
@Test
public void testProcessMqttMessageStringReport() {
Report report = Report.newBuilder().setNodeID("21P10C68818122").addAllClients(getOpensyncStatsClientReportsList())
.addAllEventReport(getOpensyncStatsEventReportsList()).build();
String topic = "/ap/Test_Client_21P10C68818122/opensync";
Status bssidStatus = new Status();
bssidStatus.setStatusDataType(StatusDataType.ACTIVE_BSSIDS);
bssidStatus.setCustomerId(2);
ActiveBSSIDs activeBssidsDetails = new ActiveBSSIDs();
activeBssidsDetails.setActiveBSSIDs(getActiveBssidList());
bssidStatus.setDetails(activeBssidsDetails);
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(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(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);
ClientSession clientSession = new ClientSession();
clientSession.setMacAddress(MacAddress.valueOf("7C:AB:60:E6:EA:4D"));
clientSession.setDetails(new ClientSessionDetails());
ClientSession clientSession2 = new ClientSession();
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))).thenReturn(clientSession).thenReturn(clientSession2);
}
@Ignore
public void testProcessMqttMessageStringFlowReport() {
// TODO: implement me when support flow reports
}
@Ignore
public void testProcessMqttMessageStringWCStatsReport() {
// TODO: implement me when wcs stats reports supported
}
@Test
public void testWifiVIFStateDbTableUpdate() {
String apId = "Test_Client_21P10C68818122";
OpensyncAPVIFState vifState1 = new OpensyncAPVIFState();
vifState1.setMac("24:f5:a2:ef:2e:54");
vifState1.setSsid("ssid-1");
// OpensyncWifiAssociatedClients wifiClient1 = new
// OpensyncWifiAssociatedClients();
// wifiClient1.setMac("C0:9A:D0:E6:EA:4D");
Uuid uuid1 = Uuid.of(UUID.randomUUID());
vifState1.setAssociatedClients(ImmutableList.of(uuid1));
OpensyncAPVIFState vifState2 = new OpensyncAPVIFState();
vifState2.setMac("24:f5:a2:ef:2e:55");
vifState2.setSsid("ssid-2");
// OpensyncWifiAssociatedClients wifiClient2 = new
// OpensyncWifiAssociatedClients();
// wifiClient2.setMac("7C:AB:60:E6:EA:4D");
Uuid uuid2 = Uuid.of(UUID.randomUUID());
vifState2.setAssociatedClients(ImmutableList.of(uuid2));
OpensyncAPVIFState vifState3 = new OpensyncAPVIFState();
vifState3.setMac("24:f5:a2:ef:2e:56");
vifState3.setSsid("ssid-3");
// OpensyncWifiAssociatedClients wifiClient3 = new
// OpensyncWifiAssociatedClients();
// wifiClient3.setMac("C0:9A:D0:76:A9:69");
Uuid uuid3 = Uuid.of(UUID.randomUUID());
vifState3.setAssociatedClients(ImmutableList.of(uuid3));
Status bssidStatus = new Status();
bssidStatus.setStatusDataType(StatusDataType.ACTIVE_BSSIDS);
bssidStatus.setCustomerId(2);
ActiveBSSIDs activeBssidsDetails = new ActiveBSSIDs();
activeBssidsDetails.setActiveBSSIDs(getActiveBssidList());
bssidStatus.setDetails(activeBssidsDetails);
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);
clientStatus.setStatusDataType(StatusDataType.CLIENT_DETAILS);
ClientConnectionDetails clientConnectionDetails = new ClientConnectionDetails();
Map<RadioType, Integer> clientsPerRadio = new HashMap<>();
clientConnectionDetails.setNumClientsPerRadio(clientsPerRadio);
clientStatus.setDetails(clientConnectionDetails);
Mockito.when(statusServiceInterface.getOrNull(2, 1L, StatusDataType.CLIENT_DETAILS)).thenReturn(clientStatus);
Mockito.when(statusServiceInterface.update(clientStatus)).thenReturn(clientStatus);
OvsdbSession session = Mockito.mock(OvsdbSession.class);
Mockito.when(session.getEquipmentId()).thenReturn(1L);
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.getOrNull(1L)).thenReturn(equipment);
Mockito.when(equipmentServiceInterface.get(equipment.getId())).thenReturn(equipment);
Mockito.when(equipmentServiceInterface.update(equipment)).thenReturn(equipment);
Profile rfProfile = new Profile();
rfProfile.setName("testRfProfile");
rfProfile.setId(2);
rfProfile.setDetails(RfConfiguration.createWithDefaults());
rfProfile.setProfileType(ProfileType.rf);
Set<Long> childProfileIds = new HashSet<>();
childProfileIds.add(rfProfile.getId());
Profile apProfile = new Profile();
apProfile.setName("testApProfile");
apProfile.setId(1);
apProfile.setProfileType(ProfileType.equipment_ap);
apProfile.setChildProfileIds(childProfileIds);
List<Profile> profileList = new ArrayList<>();
profileList.add(apProfile);
profileList.add(rfProfile);
Mockito.when(profileServiceInterface.getProfileWithChildren(ArgumentMatchers.anyLong())).thenReturn(profileList);
Mockito.when(ovsdbSessionMapInterface.getSession(apId)).thenReturn(session);
opensyncExternalIntegrationCloud.wifiVIFStateDbTableUpdate(ImmutableList.of(vifState1, vifState2, vifState3), apId);
Mockito.verify(session).getEquipmentId();
Mockito.verify(ovsdbSessionMapInterface).getSession(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);
}
@Test
public void testWifiRadioStatusDbTableUpdate() {
String apId = "Test_Client_21P10C68818122";
OpensyncAPRadioState radioState1 = new OpensyncAPRadioState();
radioState1.setChannel(6);
radioState1.setVifStates(ImmutableSet.of(new Uuid(UUID.randomUUID())));
radioState1.setFreqBand(RadioType.is5GHzL);
radioState1.setAllowedChannels(ImmutableSet.of(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11));
radioState1.setTxPower(32);
radioState1.setEnabled(true);
radioState1.setCountry("CA");
OpensyncAPRadioState radioState2 = new OpensyncAPRadioState();
radioState2.setChannel(36);
radioState2.setVifStates(ImmutableSet.of(new Uuid(UUID.randomUUID())));
radioState2.setFreqBand(RadioType.is5GHzL);
radioState2.setAllowedChannels(ImmutableSet.of(36, 40, 44, 48, 52, 56, 60, 64));
radioState2.setTxPower(32);
radioState2.setEnabled(true);
radioState2.setCountry("CA");
OpensyncAPRadioState radioState3 = new OpensyncAPRadioState();
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.setTxPower(32);
radioState3.setEnabled(true);
radioState3.setCountry("CA");
Equipment equipment = new Equipment();
equipment.setCustomerId(1);
equipment.setEquipmentType(EquipmentType.AP);
equipment.setInventoryId(apId);
equipment.setDetails(ApElementConfiguration.createWithDefaults());
Mockito.when(equipmentServiceInterface.getByInventoryIdOrNull(apId)).thenReturn(equipment);
Mockito.when(equipmentServiceInterface.update(equipment)).thenReturn(equipment);
Status protocolStatus = new Status();
protocolStatus.setCustomerId(2);
protocolStatus.setEquipmentId(1L);
EquipmentProtocolStatusData protocolStatusData = new EquipmentProtocolStatusData();
protocolStatusData.setReportedCC(CountryCode.CA);
protocolStatus.setDetails(protocolStatusData);
protocolStatus.setStatusDataType(StatusDataType.PROTOCOL);
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);
ActiveBSSIDs activeBssidsDetails = new ActiveBSSIDs();
activeBssidsDetails.setActiveBSSIDs(getActiveBssidList());
bssidStatus.setDetails(activeBssidsDetails);
Mockito.when(statusServiceInterface.getOrNull(2, 1L, StatusDataType.ACTIVE_BSSIDS)).thenReturn(bssidStatus);
Status clientStatus = new Status();
clientStatus.setCustomerId(2);
clientStatus.setEquipmentId(1L);
clientStatus.setStatusDataType(StatusDataType.CLIENT_DETAILS);
ClientConnectionDetails clientConnectionDetails = new ClientConnectionDetails();
Map<RadioType, Integer> clientsPerRadio = new HashMap<>();
clientConnectionDetails.setNumClientsPerRadio(clientsPerRadio);
clientStatus.setDetails(clientConnectionDetails);
Mockito.when(statusServiceInterface.getOrNull(2, 1L, StatusDataType.CLIENT_DETAILS)).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(ovsdbSessionMapInterface.getSession(apId)).thenReturn(session);
opensyncExternalIntegrationCloud.wifiRadioStatusDbTableUpdate(ImmutableList.of(radioState1, radioState2, radioState3), apId);
Mockito.verify(session).getEquipmentId();
Mockito.verify(ovsdbSessionMapInterface).getSession(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(1, 1L, StatusDataType.PROTOCOL);
Mockito.verify(statusServiceInterface, Mockito.never()).update(bssidStatus);
}
@Ignore
public void testWifiInetStateDbTableUpdate() {
// TODO: implement me
}
@Ignore
public void testWifiAssociatedClientsDbTableUpdate() {
// TODO: implement me
}
@Ignore
public void testAwlanNodeDbTableUpdate() {
// TODO: implement me
}
@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);
bssidStatus.setCustomerId(2);
ActiveBSSIDs activeBssidsDetails = new ActiveBSSIDs();
activeBssidsDetails.setActiveBSSIDs(getActiveBssidList());
bssidStatus.setDetails(activeBssidsDetails);
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()), "Test_Client_21P10C68818122");
}
@Test
public void testWifiAssociatedClientsDbTableDelete() {
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);
opensyncExternalIntegrationCloud.wifiAssociatedClientsDbTableDelete("7C:AB:60:E6:EA:4D", "Test_Client_21P10C68818122");
}
// Helper methods
private List<ActiveBSSID> getActiveBssidList() {
ActiveBSSID activeBssid = new ActiveBSSID();
activeBssid.setBssid("24:f5:a2:ef:2e:54");
activeBssid.setSsid("ssid-1");
activeBssid.setNumDevicesConnected(1);
activeBssid.setRadioType(RadioType.is2dot4GHz);
ActiveBSSID activeBssid2 = new ActiveBSSID();
activeBssid2.setBssid("24:f5:a2:ef:2e:55");
activeBssid2.setSsid("ssid-2");
activeBssid2.setNumDevicesConnected(1);
activeBssid2.setRadioType(RadioType.is5GHzL);
ActiveBSSID activeBssid3 = new ActiveBSSID();
activeBssid3.setBssid("24:f5:a2:ef:2e:56");
activeBssid3.setSsid("ssid-3");
activeBssid3.setNumDevicesConnected(1);
activeBssid3.setRadioType(RadioType.is5GHzU);
List<ActiveBSSID> bssidList = new ArrayList<>();
bssidList.add(activeBssid);
bssidList.add(activeBssid2);
bssidList.add(activeBssid3);
return bssidList;
}
private List<EventReport> getOpensyncStatsEventReportsList() {
sts.OpensyncStats.EventReport.ClientAssocEvent.Builder clientAssocBuilder = EventReport.ClientAssocEvent.getDefaultInstance().toBuilder();
clientAssocBuilder.setAssocType(AssocType.ASSOC);
clientAssocBuilder.setBand(RadioBandType.BAND5GU);
clientAssocBuilder.setRssi(-65);
clientAssocBuilder.setStaMac("C0:9A:D0:76:A9:69");
clientAssocBuilder.setStaMacBytes(ByteString.copyFrom("C0:9A:D0:76:A9:69".getBytes()));
clientAssocBuilder.setSessionId(1000L);
clientAssocBuilder.setInternalSc(1);
clientAssocBuilder.setSsid("ssid-3");
clientAssocBuilder.setStatus(1);
clientAssocBuilder.setTimestampMs(System.currentTimeMillis());
List<EventReport> eventReportList = new ArrayList<>();
EventReport.Builder eventReportBuilder = EventReport.getDefaultInstance().toBuilder();
sts.OpensyncStats.EventReport.ClientSession.Builder clientSessionBuilder = sts.OpensyncStats.EventReport.ClientSession.getDefaultInstance().toBuilder();
clientSessionBuilder.setSessionId(1000L);
clientSessionBuilder.setClientAssocEvent(clientAssocBuilder.build());
List<sts.OpensyncStats.EventReport.ClientSession> clientSessionList = new ArrayList<>();
clientSessionList.add(clientSessionBuilder.build());
eventReportBuilder.addAllClientSession(clientSessionList);
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();
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);
clients.add(clientReport5gl);
clients.add(clientReport5gu);
return clients;
}
private ConnectNodeInfo createConnectNodeInfo() {
ConnectNodeInfo connectNodeInfo = new ConnectNodeInfo();
connectNodeInfo.macAddress = "24:f5:a2:ef:2e:53";
connectNodeInfo.ifType = "eth";
connectNodeInfo.ifName = "eth1";
connectNodeInfo.ipV4Address = "10.0.0.129";
connectNodeInfo.lanMacAddress = "24:f5:a2:ef:2e:52";
connectNodeInfo.lanIfType = "bridge";
connectNodeInfo.lanIfName = "br-lan";
connectNodeInfo.lanIpV4Address = "192.168.1.1";
connectNodeInfo.managerAddr = "ssl:192.168.1.101:6640";
connectNodeInfo.firmwareVersion = "0.1.0";
connectNodeInfo.model = "EA8300-CA";
connectNodeInfo.revision = "1";
connectNodeInfo.serialNumber = "21P10C68818122";
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");
Map<String, String> versionMatrix = new HashMap<>();
versionMatrix.put("DATE", "Thu Jul 16 18:52:06 UTC 2020");
versionMatrix.put("FIRMWARE", "0.1.0-0-notgit-development");
versionMatrix.put("FW_BUILD", "0");
versionMatrix.put("FW_COMMIT", "notgit");
versionMatrix.put("FW_PROFILE", "development");
versionMatrix.put("FW_IMAGE_ACTIVE", "ea8300-2020-07-23-staging-fwupgrade-4da695d");
versionMatrix.put("FW_IMAGE_INACTIVE", "ea8300-2020-07-23-staging-fwupgrade-4da695d");
versionMatrix.put("FW_VERSION", "0.1.0");
versionMatrix.put("HOST", "runner@26793cf70348");
versionMatrix.put("OPENSYNC", "2.0.5.0");
versionMatrix.put("core", "2.0.5.0/0/notgit");
versionMatrix.put("vendor/ipq40xx", "0.1.0/0/notgit");
connectNodeInfo.versionMatrix = versionMatrix;
Map<String, String> mqttSettings = new HashMap<>();
mqttSettings.put("broker", "192.168.1.101");
mqttSettings.put("compress", "zlib");
mqttSettings.put("port", "1883");
mqttSettings.put("qos", "0");
mqttSettings.put("remote_log", "1");
mqttSettings.put("topics", "/ap/Test_Client_21P10C68818122/opensync");
connectNodeInfo.mqttSettings = mqttSettings;
return connectNodeInfo;
}
}

View File

@@ -1,119 +0,0 @@
package com.telecominfraproject.wlan.opensync.external.integration.controller;
import com.telecominfraproject.wlan.core.client.PingClient;
import com.telecominfraproject.wlan.core.model.service.GatewayType;
import com.telecominfraproject.wlan.datastore.exceptions.DsEntityNotFoundException;
import com.telecominfraproject.wlan.routing.RoutingServiceInterface;
import com.telecominfraproject.wlan.routing.models.EquipmentGatewayRecord;
import com.telecominfraproject.wlan.routing.models.EquipmentRoutingRecord;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.mockito.Mockito;
import org.springframework.test.util.ReflectionTestUtils;
import java.io.IOException;
import java.util.Arrays;
import static org.mockito.ArgumentMatchers.anyInt;
import static org.mockito.ArgumentMatchers.anyLong;
import static org.mockito.ArgumentMatchers.anyString;
import static org.mockito.Mockito.atLeast;
import static org.mockito.Mockito.atLeastOnce;
import static org.mockito.Mockito.verify;
class OpensyncCloudGatewayControllerTest {
OpensyncCloudGatewayController opensyncCloudGatewayController = new OpensyncCloudGatewayController();
RoutingServiceInterface routingSvc = Mockito.mock(RoutingServiceInterface.class);
PingClient pingClient = Mockito.mock(PingClient.class);
@BeforeEach
void setUp() {
ReflectionTestUtils.setField(opensyncCloudGatewayController, "eqRoutingSvc", routingSvc);
ReflectionTestUtils.setField(opensyncCloudGatewayController, "pingClient", pingClient);
}
@Test
void cleanupStaleGwRecord() throws IOException {
EquipmentGatewayRecord gatewayRecord = readGatewayRecord();
Mockito.when(pingClient.isReachable(anyString(), anyInt())).thenReturn(true);
opensyncCloudGatewayController.cleanupStaleGwRecord();
verify(pingClient, atLeastOnce()).isReachable("1.1.1.1",123);
}
@Test
void cleanupStaleGwRecord_pingFail() throws IOException {
EquipmentGatewayRecord gatewayRecord = readGatewayRecord();
Mockito.when(pingClient.isReachable(anyString(), anyInt())).thenReturn(false);
Mockito.when(routingSvc.deleteGateway(anyLong())).thenReturn(gatewayRecord);
opensyncCloudGatewayController.cleanupStaleGwRecord();
verify(routingSvc, atLeastOnce()).deleteGateway(gatewayRecord.getId());
}
@Test
void cleanupStaleEqptRoutingRecord_NoEntityFound() throws IOException {
EquipmentRoutingRecord routingRecord = readRoutingRecord();
Mockito.when(routingSvc.getGateway(anyLong())).thenThrow(new DsEntityNotFoundException());
Mockito.when(routingSvc.delete(anyLong())).thenReturn(new EquipmentRoutingRecord());
opensyncCloudGatewayController.cleanupStaleEqptRoutingRecord(123L);
verify(routingSvc, atLeastOnce()).delete(routingRecord.getId());
}
@Test
void cleanupStaleEqptRoutingRecord_GenericException() throws IOException {
EquipmentRoutingRecord routingRecord = readRoutingRecord();
Mockito.when(routingSvc.getGateway(anyLong())).thenThrow(new RuntimeException("Throwing exception to test"));
Mockito.when(routingSvc.delete(anyLong())).thenReturn(new EquipmentRoutingRecord());
opensyncCloudGatewayController.cleanupStaleEqptRoutingRecord(123L);
verify(routingSvc, atLeast(0)).delete(routingRecord.getId());
}
@Test
void cleanupStaleEqptRoutingRecord_GatewayResponds() throws IOException {
EquipmentRoutingRecord routingRecord = readRoutingRecord();
EquipmentGatewayRecord gatewayRecord = readGatewayRecord();
Mockito.when(routingSvc.getGateway(anyLong())).thenReturn(gatewayRecord);
Mockito.when(routingSvc.delete(anyLong())).thenReturn(new EquipmentRoutingRecord());
Mockito.when(pingClient.isReachable(anyString(), anyInt())).thenReturn(true);
opensyncCloudGatewayController.cleanupStaleEqptRoutingRecord(123L);
verify(routingSvc, atLeast(0)).delete(routingRecord.getId());
verify(pingClient, atLeastOnce()).isReachable(anyString(), anyInt());
}
@Test
void cleanupStaleEqptRoutingRecord_GatewayFails() throws IOException {
EquipmentRoutingRecord routingRecord = readRoutingRecord();
EquipmentGatewayRecord gatewayRecord = readGatewayRecord();
Mockito.when(routingSvc.getGateway(anyLong())).thenReturn(gatewayRecord);
Mockito.when(routingSvc.delete(anyLong())).thenReturn(new EquipmentRoutingRecord());
Mockito.when(pingClient.isReachable(anyString(), anyInt())).thenReturn(false);
opensyncCloudGatewayController.cleanupStaleEqptRoutingRecord(123L);
verify(routingSvc, atLeastOnce()).delete(routingRecord.getId());
verify(pingClient, atLeastOnce()).isReachable(anyString(), anyInt());
}
private EquipmentGatewayRecord readGatewayRecord() throws IOException {
EquipmentGatewayRecord gatewayRecord = EquipmentGatewayRecord.fromFile(
OpensyncCloudGatewayControllerTest.class.getResource("EquipmentGatewayRecords.json").getFile(),
EquipmentGatewayRecord.class);
Mockito.when(routingSvc.getGateway(GatewayType.CEGW)).thenReturn(Arrays.asList(gatewayRecord));
return gatewayRecord;
}
private EquipmentRoutingRecord readRoutingRecord() throws IOException {
EquipmentRoutingRecord routingRecord = EquipmentRoutingRecord.fromFile(
OpensyncCloudGatewayControllerTest.class.getResource("EquipmentRoutingRecord.json").getFile(),
EquipmentRoutingRecord.class);
Mockito.when(routingSvc.getRegisteredRouteList(anyLong())).thenReturn(Arrays.asList(routingRecord));
return routingRecord;
}
}

View File

@@ -1,391 +0,0 @@
package com.telecominfraproject.wlan.opensync.external.integration.utils;
import static org.junit.Assert.assertNotNull;
import static org.junit.jupiter.api.Assertions.assertEquals;
import java.net.InetAddress;
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.Answers;
import org.mockito.ArgumentMatchers;
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.common.collect.ImmutableList;
import com.google.protobuf.ByteString;
import com.telecominfraproject.wlan.alarm.AlarmServiceInterface;
import com.telecominfraproject.wlan.client.ClientServiceInterface;
import com.telecominfraproject.wlan.client.info.models.ClientInfoDetails;
import com.telecominfraproject.wlan.client.session.models.ClientSession;
import com.telecominfraproject.wlan.client.session.models.ClientSessionDetails;
import com.telecominfraproject.wlan.cloudeventdispatcher.CloudEventDispatcherInterface;
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;
import com.telecominfraproject.wlan.servicemetric.apnode.models.ApNodeMetrics;
import com.telecominfraproject.wlan.servicemetric.apnode.models.StateUpDownError;
import com.telecominfraproject.wlan.status.StatusServiceInterface;
import com.telecominfraproject.wlan.status.equipment.report.models.ActiveBSSID;
import com.telecominfraproject.wlan.status.equipment.report.models.ActiveBSSIDs;
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;
@RunWith(SpringRunner.class)
@ActiveProfiles(profiles = { "integration_test", })
@SpringBootTest(webEnvironment = WebEnvironment.NONE, classes = MqttStatsPublisherTest.class)
@Import(value = { AlarmServiceInterface.class, OpensyncExternalIntegrationCloud.class,
MqttStatsPublisherTest.Config.class,
})
public class MqttStatsPublisherTest {
@MockBean
AlarmServiceInterface alarmServiceInterface;
@MockBean
CustomerServiceInterface customerServiceInterface;
@MockBean
LocationServiceInterface locationServiceInterface;
@MockBean(answer = Answers.RETURNS_MOCKS)
OvsdbSessionMapInterface ovsdbSessionMapInterface;
@MockBean
CloudEventDispatcherInterface equipmentMetricsCollectorInterface;
@MockBean
EquipmentServiceInterface equipmentServiceInterface;
@MockBean
RoutingServiceInterface routingServiceInterface;
@MockBean
ProfileServiceInterface profileServiceInterface;
@MockBean
StatusServiceInterface statusServiceInterface;
@MockBean
ClientServiceInterface clientServiceInterface;
@MockBean
FirmwareServiceInterface firmwareServiceInterface;
@MockBean(answer = Answers.RETURNS_MOCKS)
OpensyncCloudGatewayController gatewayController;
@MockBean
RealtimeEventPublisher realtimeEventPublisher;
@Autowired
MqttStatsPublisher opensyncExternalIntegrationMqttProcessor;
MockitoSession mockito;
@Configuration
static class Config {
@Bean
public StatsPublisherInterface mqttStatsPublisher() {
return new MqttStatsPublisher();
}
}
@Before
public void setUp() throws Exception {
mockito = Mockito.mockitoSession().initMocks(this).strictness(Strictness.LENIENT).startMocking();
}
@After
public void tearDown() throws Exception {
mockito.finishMocking();
}
@Test
public void testExtractApIdFromTopic() {
String topic = "/ap/Test_Client_21P10C68818122/opensync";
assertEquals("Test_Client_21P10C68818122", MqttStatsPublisher.extractApIdFromTopic(topic));
}
@Test
public void testExtractCustomerIdFromTopic() {
String topic = "/ap/Test_Client_21P10C68818122/opensync";
OvsdbSession session = Mockito.mock(OvsdbSession.class);
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));
}
@Test
public void testExtractEquipmentIdFromTopic() {
String topic = "/ap/Test_Client_21P10C68818122/opensync";
OvsdbSession session = Mockito.mock(OvsdbSession.class);
Mockito.when(session.getEquipmentId()).thenReturn(1L);
Mockito.when(ovsdbSessionMapInterface.getSession("Test_Client_21P10C68818122")).thenReturn(session);
assertEquals(1L, opensyncExternalIntegrationMqttProcessor.extractEquipmentIdFromTopic(topic));
}
@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())
.addAllEventReport(getOpensyncStatsEventReportsList()).build();
String topic = "/ap/Test_Client_21P10C68818122/opensync";
OvsdbSession session = Mockito.mock(OvsdbSession.class);
Mockito.when(session.getEquipmentId()).thenReturn(1L);
Mockito.when(ovsdbSessionMapInterface.getSession("Test_Client_21P10C68818122")).thenReturn(session);
Status bssidStatus = new Status();
bssidStatus.setStatusDataType(StatusDataType.ACTIVE_BSSIDS);
bssidStatus.setCustomerId(2);
ActiveBSSIDs activeBssidsDetails = new ActiveBSSIDs();
activeBssidsDetails.setActiveBSSIDs(getActiveBssidList());
bssidStatus.setDetails(activeBssidsDetails);
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(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(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);
ClientSession clientSession = new ClientSession();
clientSession.setMacAddress(MacAddress.valueOf("7C:AB:60:E6:EA:4D"));
clientSession.setDetails(new ClientSessionDetails());
ClientSession clientSession2 = new ClientSession();
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)))
.thenReturn(clientSession).thenReturn(clientSession2);
opensyncExternalIntegrationMqttProcessor.processMqttMessage(topic, report);
// Mockito.verify(clientServiceInterface,
// Mockito.times(4)).getOrNull(Mockito.anyInt(),
// Mockito.any(MacAddress.class));
// Mockito.verify(clientServiceInterface,
// Mockito.times(4)).getSessionOrNull(Mockito.anyInt(),
// Mockito.anyLong(),
// Mockito.any(MacAddress.class));
// Mockito.verify(statusServiceInterface,
// Mockito.times(3)).getOrNull(Mockito.anyInt(), Mockito.anyLong(),
// Mockito.eq(StatusDataType.ACTIVE_BSSIDS));
}
@Ignore
public void testProcessMqttMessageStringFlowReport() {
// TODO: implement me when support flow reports
}
@Ignore
public void testProcessMqttMessageStringWCStatsReport() {
// TODO: implement me when wcs stats reports supported
}
@Test
public void testpopulateNetworkProbeMetrics() throws Exception {
InetAddress ip = InetAddress.getLocalHost();
DNSProbeMetric dnsProbeMetric = DNSProbeMetric.getDefaultInstance().toBuilder().setLatency(10)
.setState(StateUpDown.SUD_up).setServerIP(ip.getHostName()).build();
RADIUSMetrics radiusProbeMetric = RADIUSMetrics.getDefaultInstance().toBuilder().setLatency(10)
.setRadiusState(StateUpDown.SUD_up).setServerIP(ip.getHostName()).build();
VLANMetrics vlanMetrics = VLANMetrics.getDefaultInstance().toBuilder().setLatency(10)
.setDhcpState(StateUpDown.SUD_up).setVlanIF("vlan-1").build();
NetworkProbe networkProbe = NetworkProbe.getDefaultInstance().toBuilder().setVlanProbe(vlanMetrics)
.setDnsProbe(dnsProbeMetric).addRadiusProbe(radiusProbeMetric).build();
Report report = Report.getDefaultInstance().toBuilder().setNodeID("21P10C68818122")
.addNetworkProbe(networkProbe).build();
ApNodeMetrics apNodeMetrics = new ApNodeMetrics();
opensyncExternalIntegrationMqttProcessor.populateNetworkProbeMetrics(report, apNodeMetrics);
assertNotNull(apNodeMetrics.getNetworkProbeMetrics());
assert (apNodeMetrics.getNetworkProbeMetrics().get(0).getDnsLatencyMs() == 10);
assert (apNodeMetrics.getNetworkProbeMetrics().get(0).getDhcpLatencyMs() == 10);
assert (apNodeMetrics.getNetworkProbeMetrics().get(0).getRadiusState().equals(StateUpDownError.enabled));
assert (apNodeMetrics.getNetworkProbeMetrics().get(0).getDhcpState().equals(StateUpDownError.enabled));
assert (apNodeMetrics.getNetworkProbeMetrics().get(0).getDnsState().equals(StateUpDownError.enabled));
assert (apNodeMetrics.getNetworkProbeMetrics().get(0).getRadiusLatencyInMs() == 10);
assert (apNodeMetrics.getNetworkProbeMetrics().get(0).getVlanIF().equals("vlan-1"));
}
// Helper methods
private List<ActiveBSSID> getActiveBssidList() {
ActiveBSSID activeBssid = new ActiveBSSID();
activeBssid.setBssid("24:f5:a2:ef:2e:54");
activeBssid.setSsid("ssid-1");
activeBssid.setNumDevicesConnected(1);
activeBssid.setRadioType(RadioType.is2dot4GHz);
ActiveBSSID activeBssid2 = new ActiveBSSID();
activeBssid2.setBssid("24:f5:a2:ef:2e:55");
activeBssid2.setSsid("ssid-2");
activeBssid2.setNumDevicesConnected(1);
activeBssid2.setRadioType(RadioType.is5GHzL);
ActiveBSSID activeBssid3 = new ActiveBSSID();
activeBssid3.setBssid("24:f5:a2:ef:2e:56");
activeBssid3.setSsid("ssid-3");
activeBssid3.setNumDevicesConnected(1);
activeBssid3.setRadioType(RadioType.is5GHzU);
List<ActiveBSSID> bssidList = new ArrayList<>();
bssidList.add(activeBssid);
bssidList.add(activeBssid2);
bssidList.add(activeBssid3);
return bssidList;
}
private List<EventReport> getOpensyncStatsEventReportsList() {
sts.OpensyncStats.EventReport.ClientAssocEvent.Builder clientAssocBuilder = EventReport.ClientAssocEvent
.getDefaultInstance().toBuilder();
clientAssocBuilder.setAssocType(AssocType.ASSOC);
clientAssocBuilder.setBand(RadioBandType.BAND5GU);
clientAssocBuilder.setRssi(-65);
clientAssocBuilder.setStaMac("C0:9A:D0:76:A9:69");
clientAssocBuilder.setStaMacBytes(ByteString.copyFrom("C0:9A:D0:76:A9:69".getBytes()));
clientAssocBuilder.setSessionId(1000L);
clientAssocBuilder.setInternalSc(1);
clientAssocBuilder.setSsid("ssid-3");
clientAssocBuilder.setStatus(1);
clientAssocBuilder.setTimestampMs(System.currentTimeMillis());
List<EventReport> eventReportList = new ArrayList<>();
EventReport.Builder eventReportBuilder = EventReport.getDefaultInstance().toBuilder();
sts.OpensyncStats.EventReport.ClientSession.Builder clientSessionBuilder = sts.OpensyncStats.EventReport.ClientSession
.getDefaultInstance().toBuilder();
clientSessionBuilder.setSessionId(1000L);
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() {
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();
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);
clients.add(clientReport5gl);
clients.add(clientReport5gu);
return clients;
}
}

View File

@@ -1,258 +0,0 @@
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();
}
}

View File

@@ -1,9 +0,0 @@
{
"id": "1",
"hostname": "Host-1",
"ipAddr": "1.1.1.1",
"port": 123,
"gatewayType": "CEGW",
"createdTimestamp": 0,
"lastModifiedTimestamp": 0
}

View File

@@ -1,8 +0,0 @@
{
"id": 12,
"equipmentId": 123,
"customerId": 2,
"gatewayId": 110,
"createdTimestamp": 0,
"lastModifiedTimestamp": 0
}

View File

@@ -1,9 +1,11 @@
<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> <modelVersion>4.0.0</modelVersion>
<parent> <parent>
<groupId>com.telecominfraproject.wlan</groupId> <groupId>com.telecominfraproject.wlan</groupId>
<artifactId>tip-wlan-cloud-root-pom</artifactId> <artifactId>tip-wlan-cloud-root-pom</artifactId>
<version>1.3.0-SNAPSHOT</version> <version>0.0.1-SNAPSHOT</version>
<relativePath>../../wlan-cloud-root</relativePath> <relativePath>../../wlan-cloud-root</relativePath>
</parent> </parent>
<artifactId>opensync-ext-interface</artifactId> <artifactId>opensync-ext-interface</artifactId>
@@ -13,35 +15,43 @@
<dependency> <dependency>
<groupId>com.telecominfraproject.wlan</groupId> <groupId>com.telecominfraproject.wlan</groupId>
<artifactId>base-models</artifactId> <artifactId>base-models</artifactId>
<version>1.3.0-SNAPSHOT</version> <version>${tip-wlan-cloud.release.version}</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>com.telecominfraproject.wlan</groupId> <groupId>com.telecominfraproject.wlan</groupId>
<artifactId>tip-wlan-opensync-protobuf</artifactId> <artifactId>tip-wlan-opensync-protobuf</artifactId>
<version>1.3.0-SNAPSHOT</version> <version>${tip-wlan-cloud.release.version}</version>
</dependency>
<dependency>
<artifactId>customer-models</artifactId>
<groupId>com.telecominfraproject.wlan</groupId>
<version>${tip-wlan-cloud.release.version}</version>
</dependency> </dependency>
<dependency> <dependency>
<artifactId>equipment-models</artifactId> <artifactId>equipment-models</artifactId>
<groupId>com.telecominfraproject.wlan</groupId> <groupId>com.telecominfraproject.wlan</groupId>
<version>1.3.0-SNAPSHOT</version> <version>${tip-wlan-cloud.release.version}</version>
</dependency> </dependency>
<dependency> <dependency>
<artifactId>profile-models</artifactId> <artifactId>profile-models</artifactId>
<groupId>com.telecominfraproject.wlan</groupId> <groupId>com.telecominfraproject.wlan</groupId>
<version>1.3.0-SNAPSHOT</version> <version>${tip-wlan-cloud.release.version}</version>
</dependency> </dependency>
<dependency> <dependency>
<artifactId>location-models</artifactId> <artifactId>location-models</artifactId>
<groupId>com.telecominfraproject.wlan</groupId> <groupId>com.telecominfraproject.wlan</groupId>
<version>1.3.0-SNAPSHOT</version> <version>${tip-wlan-cloud.release.version}</version>
</dependency> </dependency>
<dependency> <dependency>
<artifactId>routing-models</artifactId> <artifactId>routing-models</artifactId>
<groupId>com.telecominfraproject.wlan</groupId> <groupId>com.telecominfraproject.wlan</groupId>
<version>1.3.0-SNAPSHOT</version> <version>${tip-wlan-cloud.release.version}</version>
</dependency>
<dependency>
<artifactId>client-models</artifactId>
<groupId>com.telecominfraproject.wlan</groupId>
<version>${tip-wlan-cloud.release.version}</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>com.vmware.ovsdb</groupId> <groupId>com.vmware.ovsdb</groupId>

View File

@@ -0,0 +1,14 @@
package com.telecominfraproject.wlan.opensync.external.integration;
import java.util.Set;
public interface ConnectusOvsdbClientInterface {
Set<String> getConnectedClientIds();
String changeRedirectorAddress(String apId, String newRedirectorAddress);
void processConfigChanged(String apId);
String closeSession(String apId);
}

View File

@@ -1,7 +1,6 @@
package com.telecominfraproject.wlan.opensync.external.integration; package com.telecominfraproject.wlan.opensync.external.integration;
import java.util.List; import java.util.List;
import java.util.Map;
import com.telecominfraproject.wlan.opensync.external.integration.models.ConnectNodeInfo; 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.OpensyncAPConfig;
@@ -34,26 +33,15 @@ public interface OpensyncExternalIntegrationInterface {
void wifiInetStateDbTableUpdate(List<OpensyncAPInetState> inetStateTables, String apId); void wifiInetStateDbTableUpdate(List<OpensyncAPInetState> inetStateTables, String apId);
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 wifiAssociatedClientsDbTableUpdate(List<OpensyncWifiAssociatedClients> wifiAssociatedClients, String apId);
void wifiAssociatedClientsDbTableDelete(String deletedClientMac, String apId); void wifiAssociatedClientsDbTableDelete(String deletedClientMac, String apId);
void awlanNodeDbTableUpdate(OpensyncAWLANNode opensyncAPState, String apId); void awlanNodeDbTableUpdate(OpensyncAWLANNode opensyncAPState, String apId);
void dhcpLeasedIpDbTableUpdate(List<Map<String, String>> dhcpAttributes, 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);
} }

View File

@@ -1,41 +0,0 @@
package com.telecominfraproject.wlan.opensync.external.integration;
import java.util.List;
import java.util.Map;
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 {
Set<String> getConnectedClientIds();
String changeRedirectorHost(String apId, String newRedirectorHost);
String startDebugEngine(String apId, String gatewayHostname, Integer gatewayPort);
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 closeSession(String apId);
String processFirmwareFlash(String apId, String firmwareVersion, String username);
String processRebootRequest(String apId, boolean switchBanks);
String processFactoryResetRequest(String apId);
String processNewChannelsRequest(String apId, Map<RadioType,Integer> backupChannelMap, Map<RadioType,Integer> primaryChannelMap);
String processCellSizeAttributesRequest(String apId, Map<RadioType, CellSizeAttributes> cellSizeAttributeMap);
}

View File

@@ -7,6 +7,7 @@ public class OvsdbSession {
private String apId; private String apId;
private long routingId; private long routingId;
private long equipmentId; private long equipmentId;
private int customerId;
public OvsdbClient getOvsdbClient() { public OvsdbClient getOvsdbClient() {
return ovsdbClient; return ovsdbClient;
@@ -32,5 +33,12 @@ public class OvsdbSession {
public void setEquipmentId(long equipmentId) { public void setEquipmentId(long equipmentId) {
this.equipmentId = equipmentId; this.equipmentId = equipmentId;
} }
public int getCustomerId() {
return customerId;
}
public void setCustomerId(int customerId) {
this.customerId = customerId;
}
} }

View File

@@ -1,15 +1,10 @@
package com.telecominfraproject.wlan.opensync.external.integration.models; package com.telecominfraproject.wlan.opensync.external.integration.models;
import java.util.HashMap; import java.util.HashMap;
import java.util.Map; import java.util.Map;
import java.util.Objects;
public class ConnectNodeInfo implements Cloneable { public class ConnectNodeInfo implements Cloneable{
public Map<String,String> mqttSettings;
public Map<String, String> mqttSettings = new HashMap<>();
public Map<String, String> versionMatrix = new HashMap<>();
public Map<String, String> wifiRadioStates = new HashMap<>();
public String redirectorAddr; public String redirectorAddr;
public String managerAddr; public String managerAddr;
public String skuNumber; public String skuNumber;
@@ -20,83 +15,29 @@ public class ConnectNodeInfo implements Cloneable {
public String firmwareVersion; public String firmwareVersion;
public String revision; public String revision;
public String model; public String model;
public String ifName;
public String ifType;
public String country;
public String lanIpV4Address;
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 @Override
public ConnectNodeInfo clone() { public ConnectNodeInfo clone() {
try { try {
ConnectNodeInfo ret = (ConnectNodeInfo) super.clone(); ConnectNodeInfo ret = (ConnectNodeInfo)super.clone();
if (this.mqttSettings != null) { if (this.mqttSettings!=null) {
ret.mqttSettings = new HashMap<>(this.mqttSettings); ret.mqttSettings = new HashMap<>(this.mqttSettings);
} }
if (this.wifiRadioStates != null) {
ret.wifiRadioStates = new HashMap<>(this.wifiRadioStates);
}
if (this.versionMatrix != null) {
ret.versionMatrix = new HashMap<>(this.versionMatrix);
}
if (this.qrCode != null) {
ret.qrCode = new HashMap<>(this.qrCode);
}
return ret; return ret;
} catch (CloneNotSupportedException e) { }catch(CloneNotSupportedException e) {
throw new IllegalStateException("Cannot clone ", e); throw new IllegalStateException("Cannot clone ", e);
} }
} }
@Override
public int hashCode() {
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)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
ConnectNodeInfo other = (ConnectNodeInfo) obj;
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 @Override
public String toString() { public String toString() {
return "ConnectNodeInfo [mqttSettings=" + mqttSettings + ", versionMatrix=" + versionMatrix + ", wifiRadioStates=" + wifiRadioStates return String.format(
+ ", redirectorAddr=" + redirectorAddr + ", managerAddr=" + managerAddr + ", skuNumber=" + skuNumber + ", serialNumber=" + serialNumber "ConnectNodeInfo [mqttSettings=%s, redirectorAddr=%s, managerAddr=%s, skuNumber=%s, serialNumber=%s, "
+ ", macAddress=" + macAddress + ", ipV4Address=" + ipV4Address + ", platformVersion=" + platformVersion + ", firmwareVersion=" + "macAddress=%s, ipV4Address=%s, platformVersion=%s, firmwareVersion=%s, revision=%s, model=%s]",
+ firmwareVersion + ", revision=" + revision + ", model=" + model + ", ifName=" + ifName + ", ifType=" + ifType + ", country=" + country mqttSettings, redirectorAddr, managerAddr, skuNumber, serialNumber, macAddress, ipV4Address,
+ ", lanIpV4Address=" + lanIpV4Address + ", lanIfName=" + lanIfName + ", lanIfType=" + lanIfType + ", lanMacAddress=" + lanMacAddress platformVersion, firmwareVersion, revision, model);
+ ", referenceDesign=" + referenceDesign + ", qrCode=" + qrCode + ", modelDescription=" + modelDescription + ", manufacturerUrl="
+ manufacturerUrl + ", manufacturerName=" + manufacturerName + ", manufacturerDate=" + manufacturerDate + ", certificationRegion="
+ certificationRegion + "]";
} }
} }

View File

@@ -1,30 +0,0 @@
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;
}
}

View File

@@ -3,13 +3,12 @@ package com.telecominfraproject.wlan.opensync.external.integration.models;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashSet; import java.util.HashSet;
import java.util.List; import java.util.List;
import java.util.Objects;
import java.util.Set; import java.util.Set;
import com.telecominfraproject.wlan.core.model.entity.CountryCode; import com.telecominfraproject.wlan.core.model.entity.CountryCode;
import com.telecominfraproject.wlan.core.model.equipment.EquipmentType; 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.equipment.RadioType;
import com.telecominfraproject.wlan.core.model.json.BaseJsonModel;
import com.telecominfraproject.wlan.equipment.models.ApElementConfiguration; import com.telecominfraproject.wlan.equipment.models.ApElementConfiguration;
import com.telecominfraproject.wlan.equipment.models.Equipment; import com.telecominfraproject.wlan.equipment.models.Equipment;
import com.telecominfraproject.wlan.equipment.models.StateSetting; import com.telecominfraproject.wlan.equipment.models.StateSetting;
@@ -23,224 +22,17 @@ import com.telecominfraproject.wlan.profile.ssid.models.SsidConfiguration.Secure
import com.telecominfraproject.wlan.routing.models.EquipmentGatewayRecord; import com.telecominfraproject.wlan.routing.models.EquipmentGatewayRecord;
import com.telecominfraproject.wlan.routing.models.EquipmentRoutingRecord; import com.telecominfraproject.wlan.routing.models.EquipmentRoutingRecord;
public class OpensyncAPConfig extends OpensyncAPBase { public class OpensyncAPConfig extends BaseJsonModel {
private static final long serialVersionUID = 3917975477206236668L; private static final long serialVersionUID = 3917975477206236668L;
public static long getSerialversionuid() {
return serialVersionUID;
}
private Equipment customerEquipment; private Equipment customerEquipment;
private OpensyncAPHotspot20Config hotspotConfig;
private Profile apProfile; private Profile apProfile;
private Profile rfProfile;
private List<Profile> ssidProfile; private List<Profile> ssidProfile;
private List<Profile> metricsProfile;
private List<Profile> radiusProfiles; private List<Profile> radiusProfiles;
private Location equipmentLocation; private Location equipmentLocation;
private EquipmentRoutingRecord equipmentRouting; private EquipmentRoutingRecord equipmentRouting;
private EquipmentGatewayRecord equipmentGateway; 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 // Handle Legacy Config Support
public void setRadioConfig(OpensyncAPRadioConfig radioConfig) { public void setRadioConfig(OpensyncAPRadioConfig radioConfig) {
@@ -261,21 +53,13 @@ public class OpensyncAPConfig extends OpensyncAPBase {
equipmentLocation = new Location(); equipmentLocation = new Location();
equipmentLocation.setId(1); equipmentLocation.setId(1);
equipmentLocation.setDetails(LocationDetails.createWithDefaults()); equipmentLocation.setDetails(LocationDetails.createWithDefaults());
equipmentLocation.getDetails() ((LocationDetails) equipmentLocation.getDetails())
.setCountryCode(CountryCode.getByName(radioConfig.getCountry().toLowerCase())); .setCountryCode(CountryCode.getByName(radioConfig.getCountry().toLowerCase()));
customerEquipment.setLocationId(equipmentLocation.getId()); 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 // Handle Legacy Config Support
public void setSsidConfigs(List<OpensyncAPSsidConfig> ssidConfigs) { public void setSsidConfigs(List<OpensyncAPSsidConfig> ssidConfigs) {
@@ -297,18 +81,16 @@ public class OpensyncAPConfig extends OpensyncAPBase {
appliedRadios.add(ssidConfig.getRadioType()); appliedRadios.add(ssidConfig.getRadioType());
cfg.setAppliedRadios(appliedRadios); cfg.setAppliedRadios(appliedRadios);
cfg.setSsid(ssidConfig.getSsid()); 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); cfg.setSecureMode(SecureMode.wpaPSK);
} else { else
cfg.setSecureMode(SecureMode.wpa2PSK); cfg.setSecureMode(SecureMode.wpa2PSK);
}
cfg.setBroadcastSsid(ssidConfig.isBroadcast() ? StateSetting.enabled : StateSetting.disabled); cfg.setBroadcastSsid(ssidConfig.isBroadcast() ? StateSetting.enabled : StateSetting.disabled);
profile.setDetails(cfg); profile.setDetails(cfg);
profile.setId(ssidProfileId); profile.setId(ssidProfileId);
if (this.ssidProfile == null) { if (this.ssidProfile == null)
this.ssidProfile = new ArrayList<Profile>(); this.ssidProfile = new ArrayList<Profile>();
}
this.ssidProfile.add(profile); this.ssidProfile.add(profile);
apProfile.getChildProfileIds().add(ssidProfileId); apProfile.getChildProfileIds().add(ssidProfileId);
ssidProfileId++; ssidProfileId++;
@@ -321,8 +103,107 @@ public class OpensyncAPConfig extends OpensyncAPBase {
} }
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 Profile getApProfile() {
return apProfile;
}
public void setApProfile(Profile apProfile) {
this.apProfile = apProfile;
}
public List<Profile> getSsidProfile() {
return ssidProfile;
}
public void setSsidProfile(List<Profile> ssidProfile) { public void setSsidProfile(List<Profile> ssidProfile) {
this.ssidProfile = ssidProfile; this.ssidProfile = ssidProfile;
} }
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 (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 (apProfile != null)
ret.apProfile = apProfile.clone();
if (equipmentRouting != null)
ret.equipmentRouting = equipmentRouting.clone();
if (equipmentGateway != null)
ret.equipmentGateway = equipmentGateway.clone();
return ret;
}
@Override
public String toString() {
StringBuffer sb = new StringBuffer();
sb.append(customerEquipment.toString());
sb.append(apProfile.toString());
for (Profile ssid : ssidProfile) {
sb.append(ssid.toString());
}
sb.append(equipmentLocation.toString());
return sb.toString();
}
public List<Profile> getRadiusProfiles() {
return radiusProfiles;
}
public void setRadiusProfiles(List<Profile> radiusProfiles) {
this.radiusProfiles = radiusProfiles;
}
} }

View File

@@ -1,100 +0,0 @@
package com.telecominfraproject.wlan.opensync.external.integration.models;
import java.util.HashSet;
import java.util.Objects;
import java.util.Set;
import com.telecominfraproject.wlan.profile.models.Profile;
public class OpensyncAPHotspot20Config extends OpensyncAPBase {
private static final long serialVersionUID = -8495473152523219578L;
public static long getSerialversionuid() {
return serialVersionUID;
}
private Set<Profile> hotspot20ProfileSet;
private Set<Profile> hotspot20OperatorSet;
private Set<Profile> hotspot20VenueSet;
private Set<Profile> hotspot20ProviderSet;
@Override
public OpensyncAPHotspot20Config clone() {
OpensyncAPHotspot20Config ret = (OpensyncAPHotspot20Config) super.clone();
if (hotspot20OperatorSet != null) {
ret.hotspot20OperatorSet = new HashSet<Profile>(hotspot20OperatorSet);
}
if (hotspot20ProfileSet != null) {
ret.hotspot20ProfileSet = new HashSet<Profile>(hotspot20ProfileSet);
}
if (hotspot20VenueSet != null) {
ret.hotspot20VenueSet = new HashSet<Profile>(hotspot20VenueSet);
}
if (hotspot20ProviderSet != null) {
ret.hotspot20ProviderSet = new HashSet<Profile>(hotspot20ProviderSet);
}
return ret;
}
@Override
public boolean equals(Object obj) {
if (this == obj) {
return true;
}
if (obj == null) {
return false;
}
if (getClass() != obj.getClass()) {
return false;
}
OpensyncAPHotspot20Config other = (OpensyncAPHotspot20Config) obj;
return Objects.equals(hotspot20OperatorSet, other.hotspot20OperatorSet)
&& Objects.equals(hotspot20ProfileSet, other.hotspot20ProfileSet)
&& Objects.equals(hotspot20ProviderSet, other.hotspot20ProviderSet)
&& 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;
}
}

View File

@@ -1,23 +1,18 @@
package com.telecominfraproject.wlan.opensync.external.integration.models; package com.telecominfraproject.wlan.opensync.external.integration.models;
import java.util.HashMap;
import java.util.Map; import java.util.Map;
import java.util.Objects; import java.util.UUID;
import com.vmware.ovsdb.protocol.operation.notation.Row; import com.telecominfraproject.wlan.core.model.json.BaseJsonModel;
import com.vmware.ovsdb.protocol.operation.notation.Uuid; import com.vmware.ovsdb.protocol.operation.notation.Uuid;
import com.vmware.ovsdb.protocol.operation.notation.Value;
public class OpensyncAPInetState extends OpensyncAPBase { public class OpensyncAPInetState extends BaseJsonModel {
private static final long serialVersionUID = 1707053648715030173L; private static final long serialVersionUID = 1707053648715030173L;
public static long getSerialversionuid() {
return serialVersionUID;
}
public String ifName; public String ifName;
public Map<String, String> dhcpd; public String dhcpd;
public String unpnpMode; public String unpnpMode;
public String ifType; public String ifType;
public String softwdsMacAddr; public String softwdsMacAddr;
@@ -42,439 +37,167 @@ public class OpensyncAPInetState extends OpensyncAPBase {
public String inetConfig; public String inetConfig;
public Uuid _uuid; public Uuid _uuid;
public Uuid version; public Uuid version;
public String greLocalInetAddr;
public String greRemoteMacAddr;
public OpensyncAPInetState() {
dns = new HashMap<>();
dhcpc = new HashMap<>();
}
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"));
}
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"));
}
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"));
}
}
@Override
public boolean equals(Object obj) {
if (this == obj) {
return true;
}
if (obj == null) {
return false;
}
if (getClass() != obj.getClass()) {
return false;
}
OpensyncAPInetState other = (OpensyncAPInetState) obj;
if (!Objects.equals(_uuid, other._uuid)) {
return false;
}
if (!Objects.equals(broadcast, other.broadcast)) {
return false;
}
if (!Objects.equals(dhcpc, other.dhcpc)) {
return false;
}
if (!Objects.equals(dhcpd, other.dhcpd)) {
return false;
}
if (!Objects.equals(dns, other.dns)) {
return false;
}
if (enabled != other.enabled) {
return false;
}
if (!Objects.equals(gateway, other.gateway)) {
return false;
}
if (!Objects.equals(greIfName, other.greIfName)) {
return false;
}
if (!Objects.equals(greLocalInetAddr, other.greLocalInetAddr)) {
return false;
}
if (!Objects.equals(greRemoteInetAddr, other.greRemoteInetAddr)) {
return false;
}
if (!Objects.equals(hwAddr, other.hwAddr)) {
return false;
}
if (!Objects.equals(ifName, other.ifName)) {
return false;
}
if (!Objects.equals(ifType, other.ifType)) {
return false;
}
if (!Objects.equals(ifUuid, other.ifUuid)) {
return false;
}
if (!Objects.equals(inetAddr, other.inetAddr)) {
return false;
}
if (!Objects.equals(inetConfig, other.inetConfig)) {
return false;
}
if (!Objects.equals(ipAssignScheme, other.ipAssignScheme)) {
return false;
}
if (mtw != other.mtw) {
return false;
}
if (nat != other.nat) {
return false;
}
if (!Objects.equals(netmask, other.netmask)) {
return false;
}
if (network != other.network) {
return false;
}
if (!Objects.equals(parentIfName, other.parentIfName)) {
return false;
}
if (!Objects.equals(greRemoteMacAddr, other.greRemoteMacAddr)) {
return false;
}
if (!Objects.equals(softwdsMacAddr, other.softwdsMacAddr)) {
return false;
}
if (sofwdsWrap != other.sofwdsWrap) {
return false;
}
if (!Objects.equals(unpnpMode, other.unpnpMode)) {
return false;
}
if (!Objects.equals(version, other.version)) {
return false;
}
if (vlanId != other.vlanId) {
return false;
}
return true;
}
public Uuid get_uuid() {
return _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() { public String getIfName() {
return ifName; 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 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) {
this.greLocalInetAddr = greLocalInetAddr;
}
public void setGreRemoteInetAddr(String greRemoteInetAddr) {
this.greRemoteInetAddr = greRemoteInetAddr;
}
public void setGreRemoteMacAddr(String greRemoteMacAddr) {
this.greRemoteMacAddr = greRemoteMacAddr;
}
public void setHwAddr(String hwAddr) {
this.hwAddr = hwAddr;
}
public void setIfName(String ifName) { public void setIfName(String ifName) {
this.ifName = ifName; this.ifName = ifName;
} }
public String getDhcpd() {
public void setIfType(String ifType) { return dhcpd;
this.ifType = ifType;
} }
public void setDhcpd(String dhcpd) {
public void setIfUuid(String ifUuid) { this.dhcpd = dhcpd;
this.ifUuid = ifUuid;
} }
public String getUnpnpMode() {
public void setInetAddr(String inetAddr) { return unpnpMode;
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) { public void setUnpnpMode(String unpnpMode) {
this.unpnpMode = unpnpMode; this.unpnpMode = unpnpMode;
} }
public String getIfType() {
return ifType;
}
public void setIfType(String ifType) {
this.ifType = ifType;
}
public String getSoftwdsMacAddr() {
return softwdsMacAddr;
}
public void setSoftwdsMacAddr(String softwdsMacAddr) {
this.softwdsMacAddr = softwdsMacAddr;
}
public boolean isEnabled() {
return enabled;
}
public void setEnabled(boolean enabled) {
this.enabled = enabled;
}
public boolean isSofwdsWrap() {
return sofwdsWrap;
}
public void setSofwdsWrap(boolean sofwdsWrap) {
this.sofwdsWrap = sofwdsWrap;
}
public int getVlanId() {
return vlanId;
}
public void setVlanId(int vlanId) {
this.vlanId = vlanId;
}
public String getNetmask() {
return netmask;
}
public void setNetmask(String netmask) {
this.netmask = netmask;
}
public boolean isNat() {
return nat;
}
public void setNat(boolean nat) {
this.nat = nat;
}
public String getGreRemoteInetAddr() {
return greRemoteInetAddr;
}
public void setGreRemoteInetAddr(String greRemoteInetAddr) {
this.greRemoteInetAddr = greRemoteInetAddr;
}
public String getIfUuid() {
return ifUuid;
}
public void setIfUuid(String ifUuid) {
this.ifUuid = ifUuid;
}
public String getInetAddr() {
return inetAddr;
}
public void setInetAddr(String inetAddr) {
this.inetAddr = inetAddr;
}
public String getHwAddr() {
return hwAddr;
}
public void setHwAddr(String hwAddr) {
this.hwAddr = hwAddr;
}
public int getMtw() {
return mtw;
}
public void setMtw(int mtw) {
this.mtw = mtw;
}
public boolean isNetwork() {
return network;
}
public void setNetwork(boolean network) {
this.network = network;
}
public Map<String, String> getDns() {
return dns;
}
public void setDns(Map<String, String> dns) {
this.dns = dns;
}
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;
}
public Uuid get_uuid() {
return _uuid;
}
public void set_uuid(Uuid _uuid) {
this._uuid = _uuid;
}
public Uuid getVersion() {
return version;
}
public void setVersion(Uuid version) { public void setVersion(Uuid version) {
this.version = version; this.version = version;
} }
public void setVlanId(int vlanId) {
this.vlanId = vlanId;
}
@Override
public String toString() {
return "OpensyncAPInetState [ifName=" + ifName + ", dhcpd=" + dhcpd + ", unpnpMode=" + unpnpMode + ", ifType="
+ ifType + ", softwdsMacAddr=" + softwdsMacAddr + ", enabled=" + enabled + ", sofwdsWrap=" + sofwdsWrap
+ ", vlanId=" + vlanId + ", netmask=" + netmask + ", nat=" + nat + ", greRemoteInetAddr="
+ greRemoteInetAddr + ", ifUuid=" + ifUuid + ", inetAddr=" + inetAddr + ", hwAddr=" + hwAddr + ", mtw="
+ mtw + ", network=" + network + ", dns=" + dns + ", parentIfName=" + parentIfName + ", greIfName="
+ greIfName + ", broadcast=" + broadcast + ", dhcpc=" + dhcpc + ", gateway=" + gateway
+ ", ipAssignScheme=" + ipAssignScheme + ", inetConfig=" + inetConfig + ", _uuid=" + _uuid
+ ", version=" + version + ", greLocalInetAddr=" + greLocalInetAddr + ", greRemoteMacAddr="
+ greRemoteMacAddr + "]";
}
} }

View File

@@ -1,6 +1,8 @@
package com.telecominfraproject.wlan.opensync.external.integration.models; package com.telecominfraproject.wlan.opensync.external.integration.models;
public class OpensyncAPRadioConfig extends OpensyncAPBase { import com.telecominfraproject.wlan.core.model.json.BaseJsonModel;
public class OpensyncAPRadioConfig extends BaseJsonModel {
private static final long serialVersionUID = 5683558403622855381L; private static final long serialVersionUID = 5683558403622855381L;
@@ -9,40 +11,40 @@ public class OpensyncAPRadioConfig extends OpensyncAPBase {
private int radioChannel5LG; private int radioChannel5LG;
private int radioChannel5HG; private int radioChannel5HG;
@Override
public OpensyncAPRadioConfig clone() {
return (OpensyncAPRadioConfig) super.clone();
}
public String getCountry() {
return country;
}
public int getRadioChannel24G() { public int getRadioChannel24G() {
return radioChannel24G; return radioChannel24G;
} }
public int getRadioChannel5HG() {
return radioChannel5HG;
}
public int getRadioChannel5LG() {
return radioChannel5LG;
}
public void setCountry(String country) {
this.country = country;
}
public void setRadioChannel24G(int radioChannel24G) { public void setRadioChannel24G(int radioChannel24G) {
this.radioChannel24G = radioChannel24G; this.radioChannel24G = radioChannel24G;
} }
public void setRadioChannel5HG(int radioChannel5HG) { public int getRadioChannel5LG() {
this.radioChannel5HG = radioChannel5HG; return radioChannel5LG;
} }
public void setRadioChannel5LG(int radioChannel5LG) { public void setRadioChannel5LG(int radioChannel5LG) {
this.radioChannel5LG = radioChannel5LG; this.radioChannel5LG = radioChannel5LG;
} }
public int getRadioChannel5HG() {
return radioChannel5HG;
}
public void setRadioChannel5HG(int radioChannel5HG) {
this.radioChannel5HG = radioChannel5HG;
}
public String getCountry() {
return country;
}
public void setCountry(String country) {
this.country = country;
}
@Override
public OpensyncAPRadioConfig clone() {
return (OpensyncAPRadioConfig)super.clone();
}
} }

View File

@@ -3,28 +3,21 @@
*/ */
package com.telecominfraproject.wlan.opensync.external.integration.models; package com.telecominfraproject.wlan.opensync.external.integration.models;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Map; import java.util.Map;
import java.util.Set; import java.util.Set;
import com.telecominfraproject.wlan.core.model.equipment.RadioType; import com.telecominfraproject.wlan.core.model.equipment.RadioType;
import com.vmware.ovsdb.protocol.operation.notation.Row; import com.telecominfraproject.wlan.core.model.json.BaseJsonModel;
import com.vmware.ovsdb.protocol.operation.notation.Uuid; import com.vmware.ovsdb.protocol.operation.notation.Uuid;
import com.vmware.ovsdb.protocol.operation.notation.Value;
/** /**
* @author mikehansen * @author mikehansen
* *
*/ */
public class OpensyncAPRadioState extends OpensyncAPBase { public class OpensyncAPRadioState extends BaseJsonModel {
private static final long serialVersionUID = 5003143778489404219L; private static final long serialVersionUID = 5003143778489404219L;
public static long getSerialversionuid() {
return serialVersionUID;
}
public int temperatureControl; public int temperatureControl;
public boolean thermalDowngraded; public boolean thermalDowngraded;
public boolean dfsDemo; public boolean dfsDemo;
@@ -51,350 +44,244 @@ public class OpensyncAPRadioState extends OpensyncAPBase {
public Map<String, String> hwParams; public Map<String, String> hwParams;
public RadioType freqBand; public RadioType freqBand;
public int thermalIntegration; public int thermalIntegration;
public Set<Uuid> vifStates;
public String channelMode; public String channelMode;
public Uuid _uuid; public Uuid _uuid;
public Uuid version; public Uuid version;
public OpensyncAPRadioState() {
allowedChannels = new HashSet<>();
hwConfig = new HashMap<>();
channels = new HashMap<>();
hwParams = new HashMap<>();
vifStates = new HashSet<>();
}
public OpensyncAPRadioState(Row row) {
this();
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);
}
Set<Uuid> vifStates = row.getSetColumn("vif_states");
this.setVifStates(vifStates);
}
public Uuid get_uuid() {
return _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() { public int getTemperatureControl() {
return temperatureControl; 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) { public void setTemperatureControl(int temperatureControl) {
this.temperatureControl = temperatureControl; this.temperatureControl = temperatureControl;
} }
public boolean isThermalDowngraded() {
return thermalDowngraded;
}
public void setThermalDowngraded(boolean thermalDowngraded) { public void setThermalDowngraded(boolean thermalDowngraded) {
this.thermalDowngraded = thermalDowngraded; this.thermalDowngraded = thermalDowngraded;
} }
public void setThermalDowngradeTemp(int thermalDowngradeTemp) { public boolean isDfsDemo() {
this.thermalDowngradeTemp = thermalDowngradeTemp; return dfsDemo;
} }
public void setThermalIntegration(int thermalIntegration) { public void setDfsDemo(boolean dfsDemo) {
this.thermalIntegration = thermalIntegration; this.dfsDemo = dfsDemo;
} }
public void setThermalShutdown(int thermalShutdown) { public String getIfName() {
this.thermalShutdown = thermalShutdown; return ifName;
}
public void setIfName(String ifName) {
this.ifName = ifName;
}
public String getMac() {
return mac;
}
public void setMac(String mac) {
this.mac = mac;
}
public int getBcnInt() {
return bcnInt;
}
public void setBcnInt(int bcnInt) {
this.bcnInt = bcnInt;
}
public int getThermalTxChainmask() {
return thermalTxChainmask;
} }
public void setThermalTxChainmask(int thermalTxChainmask) { public void setThermalTxChainmask(int thermalTxChainmask) {
this.thermalTxChainmask = thermalTxChainmask; this.thermalTxChainmask = thermalTxChainmask;
} }
public void setThermalUpgradeTemp(int thermalUpgradeTemp) { public Set<Integer> getAllowedChannels() {
this.thermalUpgradeTemp = thermalUpgradeTemp; 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) { public void setTxChainmask(int txChainmask) {
this.txChainmask = 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) { public void setTxPower(int txPower) {
this.txPower = 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 Uuid getVersion() {
return version;
}
public void setVersion(Uuid version) { public void setVersion(Uuid version) {
this.version = version; this.version = version;
} }
public void setVifStates(Set<Uuid> vifStates) {
this.vifStates = vifStates;
}
} }

View File

@@ -1,8 +1,9 @@
package com.telecominfraproject.wlan.opensync.external.integration.models; package com.telecominfraproject.wlan.opensync.external.integration.models;
import com.telecominfraproject.wlan.core.model.equipment.RadioType; import com.telecominfraproject.wlan.core.model.equipment.RadioType;
import com.telecominfraproject.wlan.core.model.json.BaseJsonModel;
public class OpensyncAPSsidConfig extends OpensyncAPBase { public class OpensyncAPSsidConfig extends BaseJsonModel {
private static final long serialVersionUID = -8540144450360788799L; private static final long serialVersionUID = -8540144450360788799L;
@@ -13,29 +14,44 @@ public class OpensyncAPSsidConfig extends OpensyncAPBase {
private String mode; private String mode;
private boolean broadcast; private boolean broadcast;
@Override public RadioType getRadioType() {
public OpensyncAPSsidConfig clone() { return radioType;
return (OpensyncAPSsidConfig) super.clone(); }
public void setRadioType(RadioType radioType) {
this.radioType = radioType;
}
public String getSsid() {
return ssid;
}
public void setSsid(String ssid) {
this.ssid = ssid;
} }
public String getEncryption() { public String getEncryption() {
return encryption; return encryption;
} }
public void setEncryption(String encryption) {
this.encryption = encryption;
}
public String getKey() { public String getKey() {
return key; return key;
} }
public void setKey(String key) {
this.key = key;
}
public String getMode() { public String getMode() {
return mode; return mode;
} }
public RadioType getRadioType() { public void setMode(String mode) {
return radioType; this.mode = mode;
}
public String getSsid() {
return ssid;
} }
public boolean isBroadcast() { public boolean isBroadcast() {
@@ -46,24 +62,9 @@ public class OpensyncAPSsidConfig extends OpensyncAPBase {
this.broadcast = broadcast; this.broadcast = broadcast;
} }
public void setEncryption(String encryption) { @Override
this.encryption = encryption; public OpensyncAPSsidConfig clone() {
} return (OpensyncAPSsidConfig)super.clone();
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;
} }
} }

View File

@@ -1,23 +1,16 @@
package com.telecominfraproject.wlan.opensync.external.integration.models; package com.telecominfraproject.wlan.opensync.external.integration.models;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Set; import java.util.Set;
import java.util.UUID;
import com.vmware.ovsdb.protocol.operation.notation.Row; import com.telecominfraproject.wlan.core.model.json.BaseJsonModel;
import com.vmware.ovsdb.protocol.operation.notation.Uuid; import com.vmware.ovsdb.protocol.operation.notation.Uuid;
import com.vmware.ovsdb.protocol.operation.notation.Value;
public class OpensyncAPVIFState extends OpensyncAPBase { public class OpensyncAPVIFState extends BaseJsonModel {
private static final long serialVersionUID = -4916251246542770881L; private static final long serialVersionUID = -4916251246542770881L;
public static long getSerialversionuid() {
return serialVersionUID;
}
public String ifName; public String ifName;
public int vifRadioIdx; public int vifRadioIdx;
public String parent; public String parent;
@@ -29,8 +22,7 @@ public class OpensyncAPVIFState extends OpensyncAPBase {
public String ssid; public String ssid;
public Map<String, String> security; public Map<String, String> security;
public String macList; public String macList;
public Set<Uuid> associatedClients;
public List<Uuid> associatedClients;
public boolean enabled; public boolean enabled;
public int vlanId; public int vlanId;
public int btm; public int btm;
@@ -45,321 +37,226 @@ public class OpensyncAPVIFState extends OpensyncAPBase {
public boolean dynamicBeacon; public boolean dynamicBeacon;
public int channel; public int channel;
public Uuid _uuid; public Uuid _uuid;
public Uuid version; public Uuid version;
public OpensyncAPVIFState() {
security = new HashMap<>();
associatedClients = new ArrayList<>();
}
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());
}
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("enabled") != null)
&& map.get("enabled").getClass().equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
this.setEnabled(row.getBooleanColumn("enabled"));
}
Long ftPsk = getSingleValueFromSet(row, "ft_psk");
if (ftPsk != null) {
this.setFtPsk(ftPsk.intValue());
}
Long ftMobilityDomain = getSingleValueFromSet(row, "ft_mobility_domain");
if (ftMobilityDomain != null) {
this.setFtMobilityDomain(ftMobilityDomain.intValue());
}
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"));
}
if ((map.get("mode") != null)
&& map.get("mode").getClass().equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
this.setMode(row.getStringColumn("mode"));
}
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"));
}
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());
}
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"));
}
if ((map.get("_version") != null)
&& map.get("_version").getClass().equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
this.setVersion(row.getUuidColumn("_version"));
}
if ((map.get("_uuid") != null)
&& map.get("_uuid").getClass().equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
this.setVersion(row.getUuidColumn("_uuid"));
}
}
public Uuid get_uuid() {
return _uuid;
}
public 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() { public String getIfName() {
return ifName; 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) { public void setIfName(String ifName) {
this.ifName = ifName; this.ifName = ifName;
} }
public void setMac(String mac) { public int getVifRadioIdx() {
this.mac = mac; return vifRadioIdx;
}
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) { public void setVifRadioIdx(int vifRadioIdx) {
this.vifRadioIdx = vifRadioIdx; this.vifRadioIdx = vifRadioIdx;
} }
public void setVlanId(int vlanId) { public String getParent() {
this.vlanId = vlanId; return parent;
}
public void setParent(String parent) {
this.parent = parent;
}
public String getState() {
return state;
}
public void setState(String state) {
this.state = state;
}
public String getMac() {
return mac;
}
public void setMac(String mac) {
this.mac = mac;
}
public boolean isApBridge() {
return apBridge;
}
public void setApBridge(boolean apBridge) {
this.apBridge = apBridge;
}
public boolean isUapsdEnable() {
return uapsdEnable;
}
public void setUapsdEnable(boolean uapsdEnable) {
this.uapsdEnable = uapsdEnable;
}
public boolean isWds() {
return wds;
} }
public void setWds(boolean wds) { public void setWds(boolean wds) {
this.wds = 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 Set<Uuid> getAssociatedClients() {
return associatedClients;
}
public void setAssociatedClients(Set<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 Uuid getVersion() {
return version;
}
public void setVersion(Uuid version) {
this.version = version;
}
} }

View File

@@ -1,28 +1,22 @@
/** /**
* *
*/ */
package com.telecominfraproject.wlan.opensync.external.integration.models; package com.telecominfraproject.wlan.opensync.external.integration.models;
import java.util.HashMap;
import java.util.Map; import java.util.Map;
import java.util.UUID;
import com.vmware.ovsdb.protocol.operation.notation.Row; import com.telecominfraproject.wlan.core.model.json.BaseJsonModel;
import com.vmware.ovsdb.protocol.operation.notation.Uuid; import com.vmware.ovsdb.protocol.operation.notation.Uuid;
import com.vmware.ovsdb.protocol.operation.notation.Value;
/** /**
* @author mikehansen * @author mikehansen
* *
*/ */
public class OpensyncAWLANNode extends OpensyncAPBase { public class OpensyncAWLANNode extends BaseJsonModel {
private static final long serialVersionUID = -6172956297643126710L; private static final long serialVersionUID = -6172956297643126710L;
public static long getSerialversionuid() {
return serialVersionUID;
}
public Map<Object, Object> mqttSettings; public Map<Object, Object> mqttSettings;
public String model; public String model;
public String skuNumber; public String skuNumber;
@@ -46,411 +40,211 @@ public class OpensyncAWLANNode extends OpensyncAPBase {
public String revision; public String revision;
public String managerAddr; public String managerAddr;
public boolean factoryReset; 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 _uuid;
public Uuid version; public Uuid version;
public OpensyncAWLANNode() {
mqttSettings = new HashMap<>();
versionMatrix = new HashMap<>();
ledConfig = new HashMap<>();
mqttHeaders = new HashMap<>();
mqttTopics = new HashMap<>();
}
public OpensyncAWLANNode(Row row) {
this();
// mqtt_settings {"key":"string","max":"unlimited","min":0,"value":"string"}
// model {"key":"string","min":0}
// sku_number {"key":"string","min":0}
// version_matrix {"key":"string","max":"unlimited","min":0,"value":{"maxLength":128,"type":"string"}}
// model_description "string"
// certification_region "string"
// id "string"
// firmware_version "string"
// firmware_url {"key":{"maxLength":256,"type":"string"}}
// _uuid "uuid"
// upgrade_dl_timer "integer"
// reference_design "string"
// platform_version "string"
// firmware_pass {"key":{"maxLength":256,"type":"string"}}
// upgrade_timer "integer"
// redirector_addr "string"
// led_config {"key":"string","max":"unlimited","min":0,"value":"string"}
// max_backoff "integer"
// mqtt_headers {"key":"string","max":"unlimited","min":0,"value":"string"}
// serial_number {"key":"string","min":0}
// _version "uuid"
// upgrade_status "integer"
// device_mode {"key":{"enum":["set",["battery","cloud","custom","monitor"]],"type":"string"},"min":0}
// min_backoff "integer"
// manufacturer_date "string"
// mqtt_topics {"key":"string","max":"unlimited","min":0,"value":{"maxLength":128,"type":"string"}}
// revision "string"
// manufacturer_name "string"
// manufacturer_url "string"
// manager_addr "string"
// factory_reset {"key":"boolean","min":0}
Map<String, Value> map = row.getColumns();
if (map.get("mqtt_settings") != null) {
this.setMqttSettings(row.getMapColumn("mqtt_settings"));
}
if (map.get("mqtt_headers") != null) {
this.setMqttHeaders(row.getMapColumn("mqtt_headers"));
}
if (map.get("mqtt_topics") != null) {
this.setMqttHeaders(row.getMapColumn("mqtt_topics"));
}
if ((map.get("model") != null) && map.get("model").getClass().equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
this.setModel(row.getStringColumn("model"));
}
if ((map.get("sku_number") != null) && map.get("sku_number").getClass().equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
this.setSkuNumber(row.getStringColumn("sku_number"));
}
if (map.get("id") != null) {
this.setId(getSingleValueFromSet(row, "id"));
}
if (map.get("reference_design") != null) {
this.setReferenceDesign(row.getStringColumn("reference_design"));
}
if (map.get("qr_code") != null) {
this.setQrCode(row.getMapColumn("qr_code"));
}
if ((map.get("model_description") != null)) {
this.setModelDescription(row.getStringColumn("model_description"));
}
if ((map.get("manufacturer_url") != null)) {
this.setManufacturerUrl(row.getStringColumn("manufacturer_url"));
}
if ((map.get("manufacturer_name") != null)) {
this.setManufacturerName(row.getStringColumn("manufacturer_name"));
}
if ((map.get("manufacturer_date") != null)) {
this.setManufacturerDate(row.getStringColumn("manufacturer_date"));
}
if (map.get("certification_region") != null) {
this.setCertificationRegion(row.getStringColumn("certification_region"));
}
if (map.get("version_matrix") != null) {
this.setVersionMatrix(row.getMapColumn("version_matrix"));
}
if ((map.get("firmware_version") != null) && map.get("firmware_version").getClass().equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
this.setFirmwareVersion(row.getStringColumn("firmware_version"));
}
if ((map.get("firmware_url") != null) && map.get("firmware_url").getClass().equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
this.setFirmwareUrl(row.getStringColumn("firmware_url"));
}
if ((map.get("_uuid") != null) && map.get("_uuid").getClass().equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
this.setVersion(row.getUuidColumn("_uuid"));
}
if ((map.get("upgrade_dl_timer") != null) && map.get("upgrade_dl_timer").getClass().equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
this.setUpgradeDlTimer(row.getIntegerColumn("upgrade_dl_timer").intValue());
}
if ((map.get("platform_version") != null) && map.get("platform_version").getClass().equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
this.setPlatformVersion(row.getStringColumn("platform_version"));
}
if ((map.get("firmware_pass") != null) && map.get("firmware_pass").getClass().equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
this.setFirmwarePass(row.getStringColumn("firmware_pass"));
}
if ((map.get("upgrade_timer") != null) && map.get("upgrade_timer").getClass().equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
this.setUpgradeTimer(row.getIntegerColumn("upgrade_timer").intValue());
}
if ((map.get("max_backoff") != null) && map.get("max_backoff").getClass().equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
this.setMaxBackoff(row.getIntegerColumn("max_backoff").intValue());
}
if (map.get("led_config") != null) {
this.setLedConfig(row.getMapColumn("led_config"));
}
if ((map.get("redirector_addr") != null) && map.get("redirector_addr").getClass().equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
this.setRedirectorAddr(row.getStringColumn("redirector_addr"));
}
if ((map.get("serial_number") != null) && map.get("serial_number").getClass().equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
this.setSerialNumber(row.getStringColumn("serial_number"));
}
if ((map.get("_version") != null) && map.get("_version").getClass().equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
this.setVersion(row.getUuidColumn("_version"));
}
this.setUpgradeStatus(row.getIntegerColumn("upgrade_status").intValue());
if ((map.get("device_mode") != null) && map.get("device_mode").getClass().equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
this.setDeviceMode(row.getStringColumn("device_mode"));
}
if ((map.get("min_backoff") != null) && map.get("min_backoff").getClass().equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
this.setMinBackoff(row.getIntegerColumn("min_backoff").intValue());
}
if ((map.get("revision") != null) && map.get("revision").getClass().equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
this.setRevision(row.getStringColumn("revision"));
}
if ((map.get("manager_addr") != null) && map.get("manager_addr").getClass().equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
this.setManagerAddr(row.getStringColumn("manager_addr"));
}
if ((map.get("factory_reset") != null) && map.get("factory_reset").getClass().equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
this.setFactoryReset(row.getBooleanColumn("factory_reset"));
}
}
public Uuid get_uuid() {
return _uuid;
}
public 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() { public Map<Object, Object> getMqttSettings() {
return mqttSettings; 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) { public void setMqttSettings(Map<Object, Object> map) {
this.mqttSettings = map; this.mqttSettings = map;
} }
public void setMqttTopics(Map<String, String> mqttTopics) { public String getModel() {
this.mqttTopics = mqttTopics; return model;
} }
public void setPlatformVersion(String platformVersion) { public void setModel(String model) {
this.platformVersion = platformVersion; this.model = model;
} }
public void setRedirectorAddr(String redirectorAddr) { public String getSkuNumber() {
this.redirectorAddr = redirectorAddr; return skuNumber;
}
public void setRevision(String revision) {
this.revision = revision;
}
public void setSerialNumber(String serialNumber) {
this.serialNumber = serialNumber;
} }
public void setSkuNumber(String skuNumber) { public void setSkuNumber(String skuNumber) {
this.skuNumber = skuNumber; this.skuNumber = skuNumber;
} }
public void setUpgradeDlTimer(int upgradeDlTimer) { public String getId() {
this.upgradeDlTimer = upgradeDlTimer; return id;
} }
public void setUpgradeStatus(int upgradeStatus) { public void setId(String id) {
this.upgradeStatus = upgradeStatus; this.id = id;
} }
public void setUpgradeTimer(int upgradeTimer) { public Map<String, String> getVersionMatrix() {
this.upgradeTimer = upgradeTimer; return versionMatrix;
}
public void setVersion(Uuid version) {
this.version = version;
} }
public void setVersionMatrix(Map<String, String> versionMatrix) { public void setVersionMatrix(Map<String, String> versionMatrix) {
this.versionMatrix = versionMatrix; this.versionMatrix = versionMatrix;
} }
public String getFirmwareVersion() {
return firmwareVersion;
}
public void setFirmwareVersion(String firmwareVersion) {
this.firmwareVersion = firmwareVersion;
}
public String getFirmwareUrl() {
return firmwareUrl;
}
public void setFirmwareUrl(String firmwareUrl) {
this.firmwareUrl = firmwareUrl;
}
public int getUpgradeDlTimer() {
return upgradeDlTimer;
}
public void setUpgradeDlTimer(int upgradeDlTimer) {
this.upgradeDlTimer = upgradeDlTimer;
}
public String getPlatformVersion() {
return platformVersion;
}
public void setPlatformVersion(String platformVersion) {
this.platformVersion = platformVersion;
}
public String getFirmwarePass() {
return firmwarePass;
}
public void setFirmwarePass(String firmwarePass) {
this.firmwarePass = firmwarePass;
}
public int getUpgradeTimer() {
return upgradeTimer;
}
public void setUpgradeTimer(int upgradeTimer) {
this.upgradeTimer = upgradeTimer;
}
public int getMaxBackoff() {
return maxBackoff;
}
public void setMaxBackoff(int maxBackoff) {
this.maxBackoff = maxBackoff;
}
public Map<String, String> getLedConfig() {
return ledConfig;
}
public void setLedConfig(Map<String, String> ledConfig) {
this.ledConfig = ledConfig;
}
public String getRedirectorAddr() {
return redirectorAddr;
}
public void setRedirectorAddr(String redirectorAddr) {
this.redirectorAddr = redirectorAddr;
}
public Map<String, String> getMqttHeaders() {
return mqttHeaders;
}
public void setMqttHeaders(Map<String, String> mqttHeaders) {
this.mqttHeaders = mqttHeaders;
}
public String getSerialNumber() {
return serialNumber;
}
public void setSerialNumber(String serialNumber) {
this.serialNumber = serialNumber;
}
public int getUpgradeStatus() {
return upgradeStatus;
}
public void setUpgradeStatus(int upgradeStatus) {
this.upgradeStatus = upgradeStatus;
}
public String getDeviceMode() {
return deviceMode;
}
public void setDeviceMode(String deviceMode) {
this.deviceMode = deviceMode;
}
public int getMinBackoff() {
return minBackoff;
}
public void setMinBackoff(int minBackoff) {
this.minBackoff = minBackoff;
}
public Map<String, String> getMqttTopics() {
return mqttTopics;
}
public void setMqttTopics(Map<String, String> mqttTopics) {
this.mqttTopics = mqttTopics;
}
public String getRevision() {
return revision;
}
public void setRevision(String revision) {
this.revision = revision;
}
public String getManagerAddr() {
return managerAddr;
}
public void setManagerAddr(String managerAddr) {
this.managerAddr = managerAddr;
}
public boolean isFactoryReset() {
return factoryReset;
}
public void setFactoryReset(boolean factoryReset) {
this.factoryReset = factoryReset;
}
public static long getSerialversionuid() {
return serialVersionUID;
}
public Uuid get_uuid() {
return _uuid;
}
public void set_uuid(Uuid _uuid) {
this._uuid = _uuid;
}
public Uuid getVersion() {
return version;
}
public void setVersion(Uuid version) {
this.version = version;
}
} }

View File

@@ -3,26 +3,20 @@
*/ */
package com.telecominfraproject.wlan.opensync.external.integration.models; package com.telecominfraproject.wlan.opensync.external.integration.models;
import java.util.HashSet;
import java.util.Map;
import java.util.Set; import java.util.Set;
import java.util.UUID;
import com.vmware.ovsdb.protocol.operation.notation.Row; import com.telecominfraproject.wlan.core.model.json.BaseJsonModel;
import com.vmware.ovsdb.protocol.operation.notation.Uuid; import com.vmware.ovsdb.protocol.operation.notation.Uuid;
import com.vmware.ovsdb.protocol.operation.notation.Value;
/** /**
* @author mikehansen * @author mikehansen
* *
*/ */
public class OpensyncWifiAssociatedClients extends OpensyncAPBase { public class OpensyncWifiAssociatedClients extends BaseJsonModel {
private static final long serialVersionUID = -7088651136971662138L; private static final long serialVersionUID = -7088651136971662138L;
public static long getSerialversionuid() {
return serialVersionUID;
}
public String keyId; public String keyId;
public String mac; public String mac;
public String state; public String state;
@@ -31,107 +25,80 @@ public class OpensyncWifiAssociatedClients extends OpensyncAPBase {
public String kick; public String kick;
public String oftag; public String oftag;
public Uuid _uuid; public Uuid _uuid;
public Uuid version; public Uuid version;
public OpensyncWifiAssociatedClients() {
capabilities = new HashSet<>();
}
public OpensyncWifiAssociatedClients(Row row) {
this();
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 (row.getSetColumn("capabilities") != null) {
this.setCapabilities(row.getSetColumn("capabilities"));
}
if ((map.get("state") != null)
&& map.get("state").getClass().equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
this.setState(row.getStringColumn("state"));
}
if ((map.get("_version") != null)
&& map.get("_version").getClass().equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
this.setVersion(row.getUuidColumn("_version"));
}
if ((map.get("_uuid") != null)
&& map.get("_uuid").getClass().equals(com.vmware.ovsdb.protocol.operation.notation.Atom.class)) {
this.setVersion(row.getUuidColumn("_uuid"));
}
}
public Uuid get_uuid() {
return _uuid;
}
public Set<String> getCapabilities() {
return capabilities;
}
public String getKeyId() { public String getKeyId() {
return keyId; 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) { public void setKeyId(String keyId) {
this.keyId = keyId; this.keyId = keyId;
} }
public void setKick(String kick) { public String getMac() {
this.kick = kick; return mac;
} }
public void setMac(String mac) { public void setMac(String mac) {
this.mac = mac; this.mac = mac;
} }
public void setOftag(String oftag) { public String getState() {
this.oftag = oftag; return state;
} }
public void setState(String state) { public void setState(String state) {
this.state = state; this.state = state;
} }
public Set<String> getCapabilities() {
return capabilities;
}
public void setCapabilities(Set<String> set) {
this.capabilities = set;
}
public int getUapsd() {
return uapsd;
}
public void setUapsd(int uapsd) { public void setUapsd(int uapsd) {
this.uapsd = 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 Uuid getVersion() {
return version;
}
public void setVersion(Uuid version) { public void setVersion(Uuid version) {
this.version = version; this.version = version;
} }

View File

@@ -1,14 +0,0 @@
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);
}

View File

@@ -3,7 +3,7 @@
<parent> <parent>
<groupId>com.telecominfraproject.wlan</groupId> <groupId>com.telecominfraproject.wlan</groupId>
<artifactId>tip-wlan-cloud-root-pom</artifactId> <artifactId>tip-wlan-cloud-root-pom</artifactId>
<version>1.3.0-SNAPSHOT</version> <version>0.0.1-SNAPSHOT</version>
<relativePath>../../wlan-cloud-root</relativePath> <relativePath>../../wlan-cloud-root</relativePath>
</parent> </parent>
<artifactId>opensync-ext-static</artifactId> <artifactId>opensync-ext-static</artifactId>
@@ -12,8 +12,8 @@
<dependencies> <dependencies>
<dependency> <dependency>
<groupId>com.telecominfraproject.wlan</groupId> <groupId>com.telecominfraproject.wlan</groupId>
<artifactId>opensync-gateway</artifactId> <artifactId>opensync-ext-interface</artifactId>
<version>1.3.0-SNAPSHOT</version> <version>${tip-wlan-cloud.release.version}</version>
</dependency> </dependency>
</dependencies> </dependencies>
</project> </project>

View File

@@ -1,9 +1,7 @@
package com.telecominfraproject.wlan.opensync.external.integration; package com.telecominfraproject.wlan.opensync.external.integration;
import java.io.File;
import java.io.IOException; import java.io.IOException;
import java.util.List; import java.util.List;
import java.util.Map;
import javax.annotation.PostConstruct; import javax.annotation.PostConstruct;
@@ -33,22 +31,19 @@ public class OpensyncExternalIntegrationSimple implements OpensyncExternalIntegr
private static final Logger LOG = LoggerFactory.getLogger(OpensyncExternalIntegrationSimple.class); private static final Logger LOG = LoggerFactory.getLogger(OpensyncExternalIntegrationSimple.class);
@Value("${tip.wlan.ovsdb.customerEquipmentFileName:/app/config/EquipmentExample.json}") @Value("${connectus.ovsdb.customerEquipmentFileName:/app/config/EquipmentExample.json}")
private String customerEquipmentFileName; private String customerEquipmentFileName;
@Value("${tip.wlan.ovsdb.apProfileFileName:/app/config/ProfileAPExample.json}") @Value("${connectus.ovsdb.apProfileFileName:/app/config/ProfileAPExample.json}")
private String apProfileFileName; private String apProfileFileName;
@Value("${tip.wlan.ovsdb.rfProfileFileName:/app/config/ProfileRf.json}") @Value("${connectus.ovsdb.ssidProfileFileName:/app/config/ProfileSsid.json}")
private String rfProfileFileName;
@Value("${tip.wlan.ovsdb.ssidProfileFileName:/app/config/ProfileSsid.json}")
private String ssidProfileFileName; private String ssidProfileFileName;
@Value("${tip.wlan.ovsdb.radiusProfileFileName:/app/config/ProfileRadius.json}") @Value("${connectus.ovsdb.radiusProfileFileName:/app/config/ProfileRadius.json}")
private String radiusProfileFileName; private String radiusProfileFileName;
@Value("${tip.wlan.ovsdb.locationFileName:/app/config/LocationBuildingExample.json}") @Value("${connectus.ovsdb.locationFileName:/app/config/LocationBuildingExample.json}")
private String locationFileName; private String locationFileName;
private String serialNumber = ""; private String serialNumber = "";
@@ -62,6 +57,7 @@ public class OpensyncExternalIntegrationSimple implements OpensyncExternalIntegr
serialNumber = connectNodeInfo.serialNumber; serialNumber = connectNodeInfo.serialNumber;
LOG.info("AP {} got connected to the gateway", apId); LOG.info("AP {} got connected to the gateway", apId);
LOG.info("ConnectNodeInfo {}", connectNodeInfo); LOG.info("ConnectNodeInfo {}", connectNodeInfo);
} }
public void apDisconnected(String apId) { public void apDisconnected(String apId) {
@@ -71,62 +67,58 @@ public class OpensyncExternalIntegrationSimple implements OpensyncExternalIntegr
public OpensyncAPConfig getApConfig(String apId) { public OpensyncAPConfig getApConfig(String apId) {
LOG.info("Retrieving config for AP {}", apId); LOG.info("Retrieving config for AP {}", apId);
OpensyncAPConfig ret = null; OpensyncAPConfig ret = null;
try { try {
Equipment equipment = Equipment.fromFile(customerEquipmentFileName, Equipment.class); Equipment equipment = Equipment.fromFile(customerEquipmentFileName, Equipment.class);
equipment.setInventoryId(apId); equipment.setInventoryId(apId);
equipment.setName(apId); equipment.setName(apId);
equipment.setSerial(serialNumber); equipment.setSerial(serialNumber);
com.telecominfraproject.wlan.profile.models.Profile apProfile = com.telecominfraproject.wlan.profile.models.Profile com.telecominfraproject.wlan.profile.models.Profile apProfile = com.telecominfraproject.wlan.profile.models.Profile
.fromFile(apProfileFileName, com.telecominfraproject.wlan.profile.models.Profile.class); .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 List<com.telecominfraproject.wlan.profile.models.Profile> ssidProfiles = com.telecominfraproject.wlan.profile.models.Profile
.listFromFile(ssidProfileFileName, com.telecominfraproject.wlan.profile.models.Profile.class); .listFromFile(ssidProfileFileName, com.telecominfraproject.wlan.profile.models.Profile.class);
ssidProfiles.stream().forEach(p -> apProfile.getChildProfileIds().add(p.getId())); ssidProfiles.stream().forEach(p -> apProfile.getChildProfileIds().add(p.getId()));
List<com.telecominfraproject.wlan.profile.models.Profile> radiusProfiles = com.telecominfraproject.wlan.profile.models.Profile
.listFromFile(radiusProfileFileName, com.telecominfraproject.wlan.profile.models.Profile.class);
equipment.setProfileId(apProfile.getId()); equipment.setProfileId(apProfile.getId());
Location location = Location.fromFile(locationFileName, Location.class); Location location = Location.fromFile(locationFileName, Location.class);
equipment.setLocationId(location.getId()); equipment.setLocationId(location.getId());
ret = new OpensyncAPConfig(); ret = new OpensyncAPConfig();
ret.setCustomerEquipment(equipment); ret.setCustomerEquipment(equipment);
ret.setApProfile(apProfile); ret.setApProfile(apProfile);
ret.setRfProfile(rfProfile);
ret.setSsidProfile(ssidProfiles); 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); ret.setRadiusProfiles(radiusProfiles);
} else {
LOG.debug("No radius file present at {}", radiusFile.getAbsolutePath());
}
ret.setEquipmentLocation(location); ret.setEquipmentLocation(location);
} catch (IOException e) { } catch (IOException e) {
LOG.error("Cannot read config file", e); LOG.error("Cannot read config file", e);
} }
LOG.debug("Config content : {}", ret); LOG.debug("Config content : {}", ret);
return ret; return ret;
} }
public void processMqttMessage(String topic, Report report) { public void processMqttMessage(String topic, Report report) {
LOG.info("Received OpensyncStatsReport on topic {} for ap {}\n{}", topic, report.getNodeID(), report); LOG.info("Received PlumeStatsReport on topic {} for ap {}\n{}", topic, report.getNodeID(), report);
report.getVideoVoiceReportList().stream().forEach(v -> {
LOG.info("VideoVoiceReport {}", v);
});
report.getEventReportList().stream().forEach(e -> {
LOG.info("Received EventReport {}", e);
});
} }
public void processMqttMessage(String topic, FlowReport flowReport) { public void processMqttMessage(String topic, FlowReport flowReport) {
LOG.info("Received FlowReport on topic {} for ap {}", topic, flowReport.getObservationPoint().getNodeId()); LOG.info("Received flowReport on topic {} for ap {}", topic, flowReport.getObservationPoint().getNodeId());
} }
public void processMqttMessage(String topic, WCStatsReport wcStatsReport) { public void processMqttMessage(String topic, WCStatsReport wcStatsReport) {
LOG.info("Received WCStatsReport on topic {} for ap {}", topic, LOG.info("Received wcStatsReport on topic {} for ap {}", topic,
wcStatsReport.getObservationPoint().getNodeId()); wcStatsReport.getObservationPoint().getNodeId());
} }
@@ -172,44 +164,4 @@ public class OpensyncExternalIntegrationSimple implements OpensyncExternalIntegr
} }
@Override
public void wifiInetStateDbTableDelete(List<OpensyncAPInetState> inetStateTables, String apId) {
LOG.info("Received Wifi_VIF_State row(s) delete {} for ap {}", inetStateTables, apId);
}
@Override
public void dhcpLeasedIpDbTableUpdate(List<Map<String, String>> dhcpAttributes, String apId,
RowUpdateOperation rowUpdateOperation) {
LOG.info("Received DHCP_Leased_IP row(s) {} rowUpdateOperation {} for ap {}", dhcpAttributes,
rowUpdateOperation, apId);
}
@Override
public void commandStateDbTableUpdate(List<Map<String, String>> commandStateAttributes, String apId,
RowUpdateOperation rowUpdateOperation) {
LOG.info("Received Command_State row(s) {} rowUpdateOperation {} for ap {}", commandStateAttributes,
rowUpdateOperation, apId);
}
@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);
}
} }

View File

@@ -1,12 +1,12 @@
{ {
"model_type": "Equipment", "model_type": "Equipment",
"id": 1, "id": 51,
"customerId": 2, "customerId": 2,
"profileId": 8, "profileId": 5,
"locationId": 8, "locationId": 8,
"equipmentType": "AP", "equipmentType": "AP",
"inventoryId": "Open_AP_21P10C68818122", "inventoryId": "Test_Client_21P10C68818122",
"name": "Open_AP_21P10C68818122", "name": "Test_Client_21P10C68818122",
"details": { "details": {
"model_type": "ApElementConfiguration", "model_type": "ApElementConfiguration",
"equipmentModel": "EA8300-CA", "equipmentModel": "EA8300-CA",
@@ -21,7 +21,7 @@
"staticDnsIp1": null, "staticDnsIp1": null,
"staticDnsIp2": null, "staticDnsIp2": null,
"peerInfoList": [], "peerInfoList": [],
"deviceName": "Open_AP_21P10C68818122", "deviceName": "Default Device Name",
"locationData": null, "locationData": null,
"locallyConfiguredMgmtVlan": 0, "locallyConfiguredMgmtVlan": 0,
"locallyConfigured": false, "locallyConfigured": false,
@@ -32,246 +32,91 @@
"costSavingEventsEnabled": true, "costSavingEventsEnabled": true,
"forwardMode": "BRIDGE", "forwardMode": "BRIDGE",
"radioMap": { "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": { "is2dot4GHz": {
"model_type": "ElementRadioConfiguration", "model_type": "ElementRadioConfiguration",
"radioType": "is2dot4GHz", "radioType": "is2dot4GHz",
"channelNumber": 6, "channelNumber": 6,
"manualChannelNumber": 6, "manualChannelNumber": 6,
"backupChannelNumber": 11, "backupChannelNumber": 11,
"manualBackupChannelNumber": 11, "autoChannelSelection": false,
"channelBandwidth": "is20MHz",
"bannedChannels": [],
"allowedChannels": [],
"rxCellSizeDb": { "rxCellSizeDb": {
"model_type": "SourceSelectionValue", "model_type": "AutoOrManualValue",
"source": "profile", "auto": true,
"value": -90 "value": -90
}, },
"probeResponseThresholdDb": { "probeResponseThresholdDb": {
"model_type": "SourceSelectionValue", "model_type": "AutoOrManualValue",
"source": "profile", "auto": true,
"value": -90 "value": -90
}, },
"clientDisconnectThresholdDb": { "clientDisconnectThresholdDb": {
"model_type": "SourceSelectionValue", "model_type": "AutoOrManualValue",
"source": "profile", "auto": true,
"value": -90 "value": -90
}, },
"eirpTxPower": { "eirpTxPower": {
"model_type": "SourceSelectionValue", "model_type": "AutoOrManualValue",
"source": "profile", "auto": false,
"value": 18 "value": 32
}, },
"bestApEnabled": null,
"neighbouringListApConfig": {
"model_type": "NeighbouringAPListConfiguration",
"minSignal": -85,
"maxAps": 25
},
"minAutoCellSize": -80,
"perimeterDetectionEnabled": true, "perimeterDetectionEnabled": true,
"bestAPSteerType": "both", "bestAPSteerType": "both",
"deauthAttackDetection": null, "deauthAttackDetection": null,
"allowedChannelsPowerLevels": [ "allowedChannelsPowerLevels": [],
{ "activeChannel": 6
"model_type": "ChannelPowerLevel",
"channelNumber": 1,
"powerLevel": 18,
"dfs": false,
"channelWidth": 20
}, },
{ "is5GHzU": {
"model_type": "ChannelPowerLevel", "model_type": "ElementRadioConfiguration",
"channelNumber": 2, "radioType": "is5GHzU",
"powerLevel": 18, "channelNumber": 149,
"dfs": false, "manualChannelNumber": 149,
"channelWidth": 20 "backupChannelNumber": 154,
"autoChannelSelection": false,
"channelBandwidth": "is80MHz",
"bannedChannels": [],
"allowedChannels": [],
"rxCellSizeDb": {
"model_type": "AutoOrManualValue",
"auto": true,
"value": -90
}, },
{ "probeResponseThresholdDb": {
"model_type": "ChannelPowerLevel", "model_type": "AutoOrManualValue",
"channelNumber": 3, "auto": true,
"powerLevel": 18, "value": -90
"dfs": false,
"channelWidth": 20
}, },
{ "clientDisconnectThresholdDb": {
"model_type": "ChannelPowerLevel", "model_type": "AutoOrManualValue",
"channelNumber": 4, "auto": true,
"powerLevel": 18, "value": -90
"dfs": false,
"channelWidth": 20
}, },
{ "eirpTxPower": {
"model_type": "ChannelPowerLevel", "model_type": "AutoOrManualValue",
"channelNumber": 5, "auto": false,
"powerLevel": 18, "value": 32
"dfs": false,
"channelWidth": 20
}, },
{ "bestApEnabled": null,
"model_type": "ChannelPowerLevel", "neighbouringListApConfig": {
"channelNumber": 6, "model_type": "NeighbouringAPListConfiguration",
"powerLevel": 18, "minSignal": -85,
"dfs": false, "maxAps": 25
"channelWidth": 20
}, },
{ "minAutoCellSize": -80,
"model_type": "ChannelPowerLevel", "perimeterDetectionEnabled": true,
"channelNumber": 7, "bestAPSteerType": "both",
"powerLevel": 18, "deauthAttackDetection": null,
"dfs": false, "allowedChannelsPowerLevels": [],
"channelWidth": 20 "activeChannel": 149
},
{
"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": { "is5GHzL": {
"model_type": "ElementRadioConfiguration", "model_type": "ElementRadioConfiguration",
@@ -279,88 +124,42 @@
"channelNumber": 36, "channelNumber": 36,
"manualChannelNumber": 36, "manualChannelNumber": 36,
"backupChannelNumber": 44, "backupChannelNumber": 44,
"manualBackupChannelNumber": 44, "autoChannelSelection": false,
"channelBandwidth": "is80MHz",
"bannedChannels": [],
"allowedChannels": [],
"rxCellSizeDb": { "rxCellSizeDb": {
"model_type": "SourceSelectionValue", "model_type": "AutoOrManualValue",
"source": "profile", "auto": true,
"value": -90 "value": -90
}, },
"probeResponseThresholdDb": { "probeResponseThresholdDb": {
"model_type": "SourceSelectionValue", "model_type": "AutoOrManualValue",
"source": "profile", "auto": true,
"value": -90 "value": -90
}, },
"clientDisconnectThresholdDb": { "clientDisconnectThresholdDb": {
"model_type": "SourceSelectionValue", "model_type": "AutoOrManualValue",
"source": "profile", "auto": true,
"value": -90 "value": -90
}, },
"eirpTxPower": { "eirpTxPower": {
"model_type": "SourceSelectionValue", "model_type": "AutoOrManualValue",
"source": "profile", "auto": false,
"value": 18 "value": 32
}, },
"bestApEnabled": null,
"neighbouringListApConfig": {
"model_type": "NeighbouringAPListConfiguration",
"minSignal": -85,
"maxAps": 25
},
"minAutoCellSize": -80,
"perimeterDetectionEnabled": true, "perimeterDetectionEnabled": true,
"bestAPSteerType": "both", "bestAPSteerType": "both",
"deauthAttackDetection": null, "deauthAttackDetection": null,
"allowedChannelsPowerLevels": [ "allowedChannelsPowerLevels": [],
{ "activeChannel": 36
"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": { "advancedRadioMap": {
@@ -369,30 +168,39 @@
"radioType": "is2dot4GHz", "radioType": "is2dot4GHz",
"radioAdminState": "enabled", "radioAdminState": "enabled",
"fragmentationThresholdBytes": 2346, "fragmentationThresholdBytes": 2346,
"rtsCtsThreshold": 65535,
"autoChannelSelection": "disabled",
"radioMode": "modeN",
"mimoMode": "twoByTwo",
"wmmState": "enabled",
"uapsdState": "enabled", "uapsdState": "enabled",
"maxNumClients": 100,
"stationIsolation": "disabled", "stationIsolation": "disabled",
"multicastRate": { "multicastRate": "auto",
"model_type": "SourceSelectionMulticast", "managementRate": "auto",
"source": "profile", "activeScanSettings": {
"value": "auto" "model_type": "ActiveScanSettings",
"enabled": true,
"scanFrequencySeconds": 10,
"scanDurationMillis": 65
}, },
"managementRate": { "channelHopSettings": {
"model_type": "SourceSelectionManagement", "model_type": "ChannelHopSettings",
"source": "profile", "noiseFloorThresholdInDB": -75,
"value": "auto" "noiseFloorThresholdTimeInSeconds": 180,
"nonWifiThresholdInPercentage": 50,
"nonWifiThresholdTimeInSeconds": 180,
"obssHopMode": "NON_WIFI"
}, },
"bestApSettings": { "bestApSettings": {
"model_type": "SourceSelectionSteering",
"source": "manual",
"value": {
"model_type": "RadioBestApSettings", "model_type": "RadioBestApSettings",
"mlComputed": true, "mlComputed": true,
"dropInSnrPercentage": 20, "dropInSnrPercentage": 20,
"minLoadFactor": 50 "minLoadFactor": 50
}
}, },
"forceScanDuringVoice": "disabled",
"legacyBSSRate": "enabled", "legacyBSSRate": "enabled",
"dtimPeriod": 2, "beaconInterval": 100,
"deauthAttackDetection": null "deauthAttackDetection": null
}, },
"is5GHzU": { "is5GHzU": {
@@ -400,30 +208,39 @@
"radioType": "is5GHzU", "radioType": "is5GHzU",
"radioAdminState": "enabled", "radioAdminState": "enabled",
"fragmentationThresholdBytes": 2346, "fragmentationThresholdBytes": 2346,
"rtsCtsThreshold": 65535,
"autoChannelSelection": "disabled",
"radioMode": "modeAC",
"mimoMode": "twoByTwo",
"wmmState": "enabled",
"uapsdState": "enabled", "uapsdState": "enabled",
"maxNumClients": 100,
"stationIsolation": "disabled", "stationIsolation": "disabled",
"multicastRate": { "multicastRate": "auto",
"model_type": "SourceSelectionMulticast", "managementRate": "auto",
"source": "profile", "activeScanSettings": {
"value": "auto" "model_type": "ActiveScanSettings",
"enabled": true,
"scanFrequencySeconds": 10,
"scanDurationMillis": 65
}, },
"managementRate": { "channelHopSettings": {
"model_type": "SourceSelectionManagement", "model_type": "ChannelHopSettings",
"source": "profile", "noiseFloorThresholdInDB": -75,
"value": "auto" "noiseFloorThresholdTimeInSeconds": 180,
"nonWifiThresholdInPercentage": 50,
"nonWifiThresholdTimeInSeconds": 180,
"obssHopMode": "NON_WIFI"
}, },
"bestApSettings": { "bestApSettings": {
"model_type": "SourceSelectionSteering",
"source": "manual",
"value": {
"model_type": "RadioBestApSettings", "model_type": "RadioBestApSettings",
"mlComputed": true, "mlComputed": true,
"dropInSnrPercentage": 30, "dropInSnrPercentage": 30,
"minLoadFactor": 40 "minLoadFactor": 40
}
}, },
"forceScanDuringVoice": "disabled",
"legacyBSSRate": "enabled", "legacyBSSRate": "enabled",
"dtimPeriod": 2, "beaconInterval": 100,
"deauthAttackDetection": null "deauthAttackDetection": null
}, },
"is5GHzL": { "is5GHzL": {
@@ -431,42 +248,46 @@
"radioType": "is5GHzL", "radioType": "is5GHzL",
"radioAdminState": "enabled", "radioAdminState": "enabled",
"fragmentationThresholdBytes": 2346, "fragmentationThresholdBytes": 2346,
"rtsCtsThreshold": 65535,
"autoChannelSelection": "disabled",
"radioMode": "modeAC",
"mimoMode": "twoByTwo",
"wmmState": "enabled",
"uapsdState": "enabled", "uapsdState": "enabled",
"maxNumClients": 100,
"stationIsolation": "disabled", "stationIsolation": "disabled",
"multicastRate": { "multicastRate": "auto",
"model_type": "SourceSelectionMulticast", "managementRate": "auto",
"source": "profile", "activeScanSettings": {
"value": "auto" "model_type": "ActiveScanSettings",
"enabled": true,
"scanFrequencySeconds": 10,
"scanDurationMillis": 65
}, },
"managementRate": { "channelHopSettings": {
"model_type": "SourceSelectionManagement", "model_type": "ChannelHopSettings",
"source": "profile", "noiseFloorThresholdInDB": -75,
"value": "auto" "noiseFloorThresholdTimeInSeconds": 180,
"nonWifiThresholdInPercentage": 50,
"nonWifiThresholdTimeInSeconds": 180,
"obssHopMode": "NON_WIFI"
}, },
"bestApSettings": { "bestApSettings": {
"model_type": "SourceSelectionSteering",
"source": "manual",
"value": {
"model_type": "RadioBestApSettings", "model_type": "RadioBestApSettings",
"mlComputed": true, "mlComputed": true,
"dropInSnrPercentage": 30, "dropInSnrPercentage": 30,
"minLoadFactor": 40 "minLoadFactor": 40
}
}, },
"forceScanDuringVoice": "disabled",
"legacyBSSRate": "enabled", "legacyBSSRate": "enabled",
"dtimPeriod": 2, "beaconInterval": 100,
"deauthAttackDetection": null "deauthAttackDetection": null
} }
} }
}, },
"latitude": null, "latitude": null,
"longitude": null, "longitude": null,
"baseMacAddress": {
"model_type": "MacAddress",
"address": "JPWi7y5T",
"addressAsString": "24:f5:a2:ef:2e:53"
},
"serial": "21P10C68818122", "serial": "21P10C68818122",
"createdTimestamp": 1612285288821, "createdTimestamp": 1591653239821,
"lastModifiedTimestamp": 1612285293922 "lastModifiedTimestamp": 1591653241398
} }

View File

@@ -1,61 +1,67 @@
{ {
"model_type": "Location", "model_type" : "Location",
"id": 8, "id" : 8,
"parentId": 0, "parentId" : 0,
"locationType": "SITE", "locationType" : "SITE",
"customerId": 2, "customerId" : 2,
"name": "Ottawa", "name" : "Ottawa",
"details": { "details" : {
"model_type": "LocationDetails", "model_type" : "LocationDetails",
"countryCode": "CA", "countryCode" : "ca",
"dailyActivityDetails": { "maintenanceWindow" : null,
"SUNDAY": { "rrmEnabled" : true,
"model_type": "LocationActivityDetails", "dailyRebalancingDetails" : {
"busyTime": "13:30", "SUNDAY" : {
"quietTime": "3:00", "model_type" : "LocationActivityDetails",
"timezone": "US/Eastern" "busyTime" : "13:30",
"quietTime" : "3:30",
"timezone" : "US/Eastern",
"lastBusySnapshot" : 0
}, },
"MONDAY": { "MONDAY" : {
"model_type": "LocationActivityDetails", "model_type" : "LocationActivityDetails",
"busyTime": "13:30", "busyTime" : "13:30",
"quietTime": "3:00", "quietTime" : "3:30",
"timezone": "US/Eastern" "timezone" : "US/Eastern",
"lastBusySnapshot" : 0
}, },
"TUESDAY": { "TUESDAY" : {
"model_type": "LocationActivityDetails", "model_type" : "LocationActivityDetails",
"busyTime": "13:30", "busyTime" : "13:30",
"quietTime": "3:00", "quietTime" : "3:30",
"timezone": "US/Eastern" "timezone" : "US/Eastern",
"lastBusySnapshot" : 0
}, },
"WEDNESDAY": { "WEDNESDAY" : {
"model_type": "LocationActivityDetails", "model_type" : "LocationActivityDetails",
"busyTime": "13:30", "busyTime" : "13:30",
"quietTime": "3:00", "quietTime" : "3:30",
"timezone": "US/Eastern" "timezone" : "US/Eastern",
"lastBusySnapshot" : 0
}, },
"THURSDAY": { "THURSDAY" : {
"model_type": "LocationActivityDetails", "model_type" : "LocationActivityDetails",
"busyTime": "13:30", "busyTime" : "13:30",
"quietTime": "3:00", "quietTime" : "3:30",
"timezone": "US/Eastern" "timezone" : "US/Eastern",
"lastBusySnapshot" : 0
}, },
"FRIDAY": { "FRIDAY" : {
"model_type": "LocationActivityDetails", "model_type" : "LocationActivityDetails",
"busyTime": "13:30", "busyTime" : "13:30",
"quietTime": "3:00", "quietTime" : "3:30",
"timezone": "US/Eastern" "timezone" : "US/Eastern",
"lastBusySnapshot" : 0
}, },
"SATURDAY": { "SATURDAY" : {
"model_type": "LocationActivityDetails", "model_type" : "LocationActivityDetails",
"busyTime": "13:30", "busyTime" : "13:30",
"quietTime": "3:00", "quietTime" : "3:30",
"timezone": "US/Eastern" "timezone" : "US/Eastern",
"lastBusySnapshot" : 0
}
} }
}, },
"maintenanceWindow": null, "createdTimestamp" : 1590607043540,
"rrmEnabled": true, "lastModifiedTimestamp" : 1590607043540
"timezone": "US/Eastern"
},
"createdTimestamp": 1612285243534,
"lastModifiedTimestamp": 1612285243534
} }

View File

@@ -1,9 +1,9 @@
{ {
"model_type": "Profile", "model_type": "Profile",
"id": 8, "id": 5,
"customerId": 2, "customerId": 2,
"profileType": "equipment_ap", "profileType": "equipment_ap",
"name": "ApProfile-3-radios", "name": "DefaultApProfile",
"details": { "details": {
"model_type": "ApNetworkConfiguration", "model_type": "ApNetworkConfiguration",
"networkConfigVersion": "AP-1", "networkConfigVersion": "AP-1",
@@ -21,6 +21,11 @@
"ledControlEnabled": true, "ledControlEnabled": true,
"equipmentDiscovery": false, "equipmentDiscovery": false,
"radioMap": { "radioMap": {
"is5GHz": {
"model_type": "RadioProfileConfiguration",
"bestApEnabled": true,
"bestAPSteerType": "both"
},
"is2dot4GHz": { "is2dot4GHz": {
"model_type": "RadioProfileConfiguration", "model_type": "RadioProfileConfiguration",
"bestApEnabled": true, "bestApEnabled": true,
@@ -37,22 +42,13 @@
"bestAPSteerType": "both" "bestAPSteerType": "both"
} }
}, },
"greTunnelConfigurations": [
{
"model_type": "GreTunnelConfiguration",
"greTunnelName": "gre1",
"greRemoteInetAddr": "192.168.1.101",
"vlanIdsInGreTunnel": [
100
]
}
],
"profileType": "equipment_ap" "profileType": "equipment_ap"
}, },
"createdTimestamp": 1612285248925, "createdTimestamp": 1591653239947,
"lastModifiedTimestamp": 1612285628377, "lastModifiedTimestamp": 1591654336724,
"childProfileIds": [ "childProfileIds": [
2, 6,
4 7,
8
] ]
} }

View File

@@ -1,58 +0,0 @@
[
{
"model_type": "Profile",
"id": 5,
"customerId": 2,
"profileType": "captive_portal",
"name": "Captive-portal",
"details": {
"model_type": "CaptivePortalConfiguration",
"name": "Default",
"browserTitle": "Captive-portal",
"headerContent": "Captive Portal",
"userAcceptancePolicy": "Please agree to the following terms for using this network:",
"successPageMarkdownText": "You are now authorized and connected to the network.",
"redirectURL": "https://www.google.com",
"externalCaptivePortalURL": null,
"sessionTimeoutInMinutes": 10,
"logoFile": {
"model_type": "ManagedFileInfo",
"md5checksum": null,
"lastModifiedTimestamp": null,
"apExportUrl": "/filestore/tip-logo-mobile",
"fileCategory": "CaptivePortalLogo",
"fileType": "PNG",
"altSlot": false
},
"backgroundFile": {
"model_type": "ManagedFileInfo",
"md5checksum": null,
"lastModifiedTimestamp": null,
"apExportUrl": "/filestore/tip-logo",
"fileCategory": "CaptivePortalBackground",
"fileType": "PNG",
"altSlot": false
},
"walledGardenAllowlist": [
],
"usernamePasswordFile": null,
"authenticationType": "guest",
"radiusAuthMethod": "CHAP",
"maxUsersWithSameCredentials": 3,
"externalPolicyFile": null,
"backgroundPosition": "left_top",
"backgroundRepeat": "no_repeat",
"radiusServiceId": 0,
"expiryType": "time_limited",
"userList": [
],
"macAllowList": [
],
"profileType": "captive_portal"
},
"createdTimestamp": 1611857459118,
"lastModifiedTimestamp": 1611857459118,
"childProfileIds": [
]
}
]

View File

@@ -0,0 +1,34 @@
[
{
"model_type": "Profile",
"id": 1,
"customerId": 2,
"profileType": "radius",
"name": "RadiusProfileOttawa",
"details": {
"model_type": "RadiusProfile",
"subnetConfiguration": null,
"serviceRegionMap": {
"Ottawa": {
"model_type": "RadiusServiceRegion",
"serverMap": {
"RadiusProfileOttawa": [
{
"model_type": "RadiusServer",
"ipAddress": "localhost",
"secret": "testing123",
"authPort": 1812,
"timeout": null
}
]
},
"regionName": "Ottawa"
}
},
"profileType": "radius"
},
"createdTimestamp": 1591653174195,
"lastModifiedTimestamp": 1591653174195,
"childProfileIds": []
}
]

View File

@@ -1,204 +0,0 @@
{
"model_type": "Profile",
"id": 4,
"customerId": 2,
"profileType": "rf",
"name": "TipWlan-rf",
"details": {
"model_type": "RfConfiguration",
"rfConfigMap": {
"is5GHz": {
"model_type": "RfElementConfiguration",
"radioType": "is5GHz",
"radioMode": "modeAC",
"rf": "TipWlan-rf",
"beaconInterval": 100,
"forceScanDuringVoice": "disabled",
"rtsCtsThreshold": 65535,
"channelBandwidth": "is80MHz",
"mimoMode": "twoByTwo",
"maxNumClients": 100,
"autoChannelSelection": false,
"activeScanSettings": {
"model_type": "ActiveScanSettings",
"enabled": true,
"scanFrequencySeconds": 10,
"scanDurationMillis": 65
},
"neighbouringListApConfig": {
"model_type": "NeighbouringAPListConfiguration",
"minSignal": -85,
"maxAps": 25
},
"minAutoCellSize": -65,
"perimeterDetectionEnabled": true,
"channelHopSettings": {
"model_type": "ChannelHopSettings",
"noiseFloorThresholdInDB": -75,
"noiseFloorThresholdTimeInSeconds": 180,
"nonWifiThresholdInPercentage": 50,
"nonWifiThresholdTimeInSeconds": 180,
"obssHopMode": "NON_WIFI"
},
"bestApEnabled": null,
"multicastRate": "auto",
"managementRate": "auto",
"rxCellSizeDb": -90,
"probeResponseThresholdDb": -90,
"clientDisconnectThresholdDb": -90,
"eirpTxPower": 18,
"bestApSettings": {
"model_type": "RadioBestApSettings",
"mlComputed": true,
"dropInSnrPercentage": 30,
"minLoadFactor": 40
}
},
"is2dot4GHz": {
"model_type": "RfElementConfiguration",
"radioType": "is2dot4GHz",
"radioMode": "modeN",
"rf": "TipWlan-rf",
"beaconInterval": 100,
"forceScanDuringVoice": "disabled",
"rtsCtsThreshold": 65535,
"channelBandwidth": "is20MHz",
"mimoMode": "twoByTwo",
"maxNumClients": 100,
"autoChannelSelection": false,
"activeScanSettings": {
"model_type": "ActiveScanSettings",
"enabled": true,
"scanFrequencySeconds": 10,
"scanDurationMillis": 65
},
"neighbouringListApConfig": {
"model_type": "NeighbouringAPListConfiguration",
"minSignal": -85,
"maxAps": 25
},
"minAutoCellSize": -65,
"perimeterDetectionEnabled": true,
"channelHopSettings": {
"model_type": "ChannelHopSettings",
"noiseFloorThresholdInDB": -75,
"noiseFloorThresholdTimeInSeconds": 180,
"nonWifiThresholdInPercentage": 50,
"nonWifiThresholdTimeInSeconds": 180,
"obssHopMode": "NON_WIFI"
},
"bestApEnabled": null,
"multicastRate": "auto",
"managementRate": "auto",
"rxCellSizeDb": -90,
"probeResponseThresholdDb": -90,
"clientDisconnectThresholdDb": -90,
"eirpTxPower": 18,
"bestApSettings": {
"model_type": "RadioBestApSettings",
"mlComputed": true,
"dropInSnrPercentage": 20,
"minLoadFactor": 50
}
},
"is5GHzU": {
"model_type": "RfElementConfiguration",
"radioType": "is5GHzU",
"radioMode": "modeAC",
"rf": "TipWlan-rf",
"beaconInterval": 100,
"forceScanDuringVoice": "disabled",
"rtsCtsThreshold": 65535,
"channelBandwidth": "is80MHz",
"mimoMode": "twoByTwo",
"maxNumClients": 100,
"autoChannelSelection": false,
"activeScanSettings": {
"model_type": "ActiveScanSettings",
"enabled": true,
"scanFrequencySeconds": 10,
"scanDurationMillis": 65
},
"neighbouringListApConfig": {
"model_type": "NeighbouringAPListConfiguration",
"minSignal": -85,
"maxAps": 25
},
"minAutoCellSize": -65,
"perimeterDetectionEnabled": true,
"channelHopSettings": {
"model_type": "ChannelHopSettings",
"noiseFloorThresholdInDB": -75,
"noiseFloorThresholdTimeInSeconds": 180,
"nonWifiThresholdInPercentage": 50,
"nonWifiThresholdTimeInSeconds": 180,
"obssHopMode": "NON_WIFI"
},
"bestApEnabled": null,
"multicastRate": "auto",
"managementRate": "auto",
"rxCellSizeDb": -90,
"probeResponseThresholdDb": -90,
"clientDisconnectThresholdDb": -90,
"eirpTxPower": 18,
"bestApSettings": {
"model_type": "RadioBestApSettings",
"mlComputed": true,
"dropInSnrPercentage": 30,
"minLoadFactor": 40
}
},
"is5GHzL": {
"model_type": "RfElementConfiguration",
"radioType": "is5GHzL",
"radioMode": "modeAC",
"rf": "TipWlan-rf",
"beaconInterval": 100,
"forceScanDuringVoice": "disabled",
"rtsCtsThreshold": 65535,
"channelBandwidth": "is80MHz",
"mimoMode": "twoByTwo",
"maxNumClients": 100,
"autoChannelSelection": false,
"activeScanSettings": {
"model_type": "ActiveScanSettings",
"enabled": true,
"scanFrequencySeconds": 10,
"scanDurationMillis": 65
},
"neighbouringListApConfig": {
"model_type": "NeighbouringAPListConfiguration",
"minSignal": -85,
"maxAps": 25
},
"minAutoCellSize": -65,
"perimeterDetectionEnabled": true,
"channelHopSettings": {
"model_type": "ChannelHopSettings",
"noiseFloorThresholdInDB": -75,
"noiseFloorThresholdTimeInSeconds": 180,
"nonWifiThresholdInPercentage": 50,
"nonWifiThresholdTimeInSeconds": 180,
"obssHopMode": "NON_WIFI"
},
"bestApEnabled": null,
"multicastRate": "auto",
"managementRate": "auto",
"rxCellSizeDb": -90,
"probeResponseThresholdDb": -90,
"clientDisconnectThresholdDb": -90,
"eirpTxPower": 18,
"bestApSettings": {
"model_type": "RadioBestApSettings",
"mlComputed": true,
"dropInSnrPercentage": 30,
"minLoadFactor": 40
}
}
},
"profileType": "rf"
},
"createdTimestamp": 1612285248650,
"lastModifiedTimestamp": 1612285248650,
"childProfileIds": []
}

View File

@@ -1,35 +1,30 @@
[ [
{ {
"model_type": "Profile", "model_type": "Profile",
"id": 2, "id": 6,
"customerId": 2, "customerId": 2,
"profileType": "ssid", "profileType": "ssid",
"name": "TipWlan-cloud-3-radios", "name": "DefaultSsid-2g",
"details": { "details": {
"model_type": "SsidConfiguration", "model_type": "SsidConfiguration",
"ssid": "TipWlan-cloud-3-radios", "ssid": "Default-SSID-2g",
"appliedRadios": [ "appliedRadios": [
"is5GHzU", "is2dot4GHz"
"is2dot4GHz",
"is5GHzL"
], ],
"ssidAdminState": "enabled", "ssidAdminState": "enabled",
"secureMode": "wpa2OnlyPSK", "secureMode": "wpa2PSK",
"vlanId": 1, "vlanId": 1,
"keyStr": "openwifi", "keyStr": "12345678",
"broadcastSsid": "enabled", "broadcastSsid": "enabled",
"keyRefresh": 0, "keyRefresh": 0,
"noLocalSubnets": false, "noLocalSubnets": false,
"radiusServiceId": 0, "radiusServiceName": null,
"radiusAcountingServiceInterval": 60,
"captivePortalId": null, "captivePortalId": null,
"bandwidthLimitDown": 0, "bandwidthLimitDown": 0,
"bandwidthLimitUp": 0, "bandwidthLimitUp": 0,
"clientBandwidthLimitDown": 0,
"clientBandwidthLimitUp": 0,
"videoTrafficOnly": false, "videoTrafficOnly": false,
"radioBasedConfigs": { "radioBasedConfigs": {
"is5GHzU": { "is5GHz": {
"model_type": "RadioBasedSsidConfiguration", "model_type": "RadioBasedSsidConfiguration",
"enable80211r": null, "enable80211r": null,
"enable80211k": null, "enable80211k": null,
@@ -41,7 +36,7 @@
"enable80211k": null, "enable80211k": null,
"enable80211v": null "enable80211v": null
}, },
"is5GHz": { "is5GHzU": {
"model_type": "RadioBasedSsidConfiguration", "model_type": "RadioBasedSsidConfiguration",
"enable80211r": null, "enable80211r": null,
"enable80211k": null, "enable80211k": null,
@@ -57,19 +52,133 @@
"bonjourGatewayProfileId": null, "bonjourGatewayProfileId": null,
"enable80211w": null, "enable80211w": null,
"wepConfig": null, "wepConfig": null,
"forwardMode": "BRIDGE", "forwardMode": null,
"profileType": "ssid"
},
"createdTimestamp": 1591653239983,
"lastModifiedTimestamp": 1591653239983,
"childProfileIds": []
},
{
"model_type": "Profile",
"id": 7,
"customerId": 2,
"profileType": "ssid", "profileType": "ssid",
"radiusClientConfiguration": { "name": "DefaultSsid-5gl",
"model_type": "RadiusNasConfiguration", "details": {
"nasClientId": "DEFAULT", "model_type": "SsidConfiguration",
"nasClientIp": "WAN_IP", "ssid": "Default-SSID-5gl",
"userDefinedNasId": null, "appliedRadios": [
"userDefinedNasIp": null, "is5GHzL"
"operatorId": null ],
"ssidAdminState": "enabled",
"secureMode": "wpaEAP",
"vlanId": 1,
"keyStr": "12345678",
"broadcastSsid": "enabled",
"keyRefresh": 0,
"noLocalSubnets": false,
"radiusServiceName": "RadiusProfileOttawa",
"captivePortalId": null,
"bandwidthLimitDown": 0,
"bandwidthLimitUp": 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
} }
}, },
"createdTimestamp": 1612285248638, "bonjourGatewayProfileId": null,
"lastModifiedTimestamp": 1612285248638, "enable80211w": null,
"wepConfig": null,
"forwardMode": null,
"profileType": "ssid"
},
"createdTimestamp": 1591653240017,
"lastModifiedTimestamp": 1591654215374,
"childProfileIds": [
1
]
},
{
"model_type": "Profile",
"id": 8,
"customerId": 2,
"profileType": "ssid",
"name": "DefaultSsid-5gu",
"details": {
"model_type": "SsidConfiguration",
"ssid": "Default-SSID-5gu",
"appliedRadios": [
"is5GHzU"
],
"ssidAdminState": "enabled",
"secureMode": "wpa2PSK",
"vlanId": 1,
"keyStr": "12345678",
"broadcastSsid": "enabled",
"keyRefresh": 0,
"noLocalSubnets": false,
"radiusServiceName": null,
"captivePortalId": null,
"bandwidthLimitDown": 0,
"bandwidthLimitUp": 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
}
},
"bonjourGatewayProfileId": null,
"enable80211w": null,
"wepConfig": null,
"forwardMode": null,
"profileType": "ssid"
},
"createdTimestamp": 1591654301763,
"lastModifiedTimestamp": 1591654301763,
"childProfileIds": [] "childProfileIds": []
} }
] ]

View File

@@ -10,7 +10,7 @@
"ssidConfigs" : [ { "ssidConfigs" : [ {
"model_type" : "OpensyncAPSsidConfig", "model_type" : "OpensyncAPSsidConfig",
"radioType" : "is2dot4GHz", "radioType" : "is2dot4GHz",
"ssid" : "Tip-wlan-local", "ssid" : "Connectus-local",
"encryption" : "WPA-PSK", "encryption" : "WPA-PSK",
"key" : "12345678", "key" : "12345678",
"mode" : "2", "mode" : "2",
@@ -18,7 +18,7 @@
}, { }, {
"model_type" : "OpensyncAPSsidConfig", "model_type" : "OpensyncAPSsidConfig",
"radioType" : "is5GHzL", "radioType" : "is5GHzL",
"ssid" : "Tip-wlan-local-5l", "ssid" : "Connectus-local-5l",
"encryption" : "WPA-PSK", "encryption" : "WPA-PSK",
"key" : "12345678", "key" : "12345678",
"mode" : "2", "mode" : "2",

View File

@@ -3,7 +3,7 @@
<parent> <parent>
<groupId>com.telecominfraproject.wlan</groupId> <groupId>com.telecominfraproject.wlan</groupId>
<artifactId>tip-wlan-cloud-root-pom</artifactId> <artifactId>tip-wlan-cloud-root-pom</artifactId>
<version>1.3.0-SNAPSHOT</version> <version>0.0.1-SNAPSHOT</version>
<relativePath>../../wlan-cloud-root</relativePath> <relativePath>../../wlan-cloud-root</relativePath>
</parent> </parent>
<artifactId>opensync-gateway-build</artifactId> <artifactId>opensync-gateway-build</artifactId>
@@ -20,10 +20,10 @@
<modules> <modules>
<module>../opensync-ext-interface</module> <module>../opensync-ext-interface</module>
<module>../opensync-gateway</module>
<module>../opensync-ext-static</module> <module>../opensync-ext-static</module>
<module>../opensync-gateway-static-process</module>
<module>../opensync-ext-cloud</module> <module>../opensync-ext-cloud</module>
<module>../opensync-gateway</module>
<module>../opensync-gateway-static-process</module>
<module>../opensync-gateway-cloud-process</module> <module>../opensync-gateway-cloud-process</module>
</modules> </modules>
</profile> </profile>

View File

@@ -3,7 +3,7 @@
<parent> <parent>
<groupId>com.telecominfraproject.wlan</groupId> <groupId>com.telecominfraproject.wlan</groupId>
<artifactId>tip-wlan-cloud-root-pom</artifactId> <artifactId>tip-wlan-cloud-root-pom</artifactId>
<version>1.3.0-SNAPSHOT</version> <version>0.0.1-SNAPSHOT</version>
<relativePath>../../wlan-cloud-root</relativePath> <relativePath>../../wlan-cloud-root</relativePath>
</parent> </parent>
<artifactId>opensync-gateway-cloud-docker</artifactId> <artifactId>opensync-gateway-cloud-docker</artifactId>
@@ -14,15 +14,13 @@
<properties> <properties>
<docker.fabric.version>0.28.0</docker.fabric.version> <docker.fabric.version>0.28.0</docker.fabric.version>
<docker.push.registry>tip-tip-wlan-cloud-docker-repo.jfrog.io</docker.push.registry> <docker.push.registry>tip-tip-wlan-cloud-docker-repo.jfrog.io</docker.push.registry>
<timestamp>${maven.build.timestamp}</timestamp>
<maven.build.timestamp.format>yyyy-MM-dd</maven.build.timestamp.format>
</properties> </properties>
<dependencies> <dependencies>
<dependency> <dependency>
<groupId>com.telecominfraproject.wlan</groupId> <groupId>com.telecominfraproject.wlan</groupId>
<artifactId>opensync-gateway-cloud-process</artifactId> <artifactId>opensync-gateway-cloud-process</artifactId>
<version>1.3.0-SNAPSHOT</version> <version>${tip-wlan-cloud.release.version}</version>
</dependency> </dependency>
</dependencies> </dependencies>
@@ -40,9 +38,6 @@
<image> <image>
<name>opensync-gateway-cloud:${project.version}</name> <name>opensync-gateway-cloud:${project.version}</name>
<build> <build>
<tags>
<tag>${project.version}-${timestamp}</tag>
</tags>
<filter>@</filter> <filter>@</filter>
<cleanup>try</cleanup> <cleanup>try</cleanup>
<dockerFileDir>${project.basedir}/src/main/docker</dockerFileDir> <dockerFileDir>${project.basedir}/src/main/docker</dockerFileDir>

View File

@@ -0,0 +1,33 @@
FROM adoptopenjdk/openjdk13:alpine-jre
LABEL maintainer="ConnectUs.ai as part of the Telecom Infrastructure Project"
LABEL version="1.0"
LABEL description="This image runs the mqtt broker (mosquitto) and \
an OpenSync gateway."
# Update the package list and upgrade installed packages
RUN apk update && apk upgrade
RUN mkdir -p /opt/tip-wlan/certs
VOLUME ["/opt/tip-wlan/certs"]
# Configure mqtt broker
RUN apk add mosquitto
RUN mkdir -p /mosquitto/data /mosquitto/log
COPY app/mqtt/mosquitto.conf /etc/mosquitto/mosquitto.conf
VOLUME ["/mosquitto/data", "/mosquitto/log"]
# Configure OpenSync Gateway
RUN mkdir -p /app/logs /app/opensync /app/config
COPY maven/app.jar /app
COPY app/opensync/logback.xml /app/opensync/logback.xml
COPY app/run.sh /app
VOLUME ["/app/logs", "/app/config"]
RUN chmod +x /app/run.sh
EXPOSE 1883 6640 6643 4043
WORKDIR /app
ENTRYPOINT ["/app/run.sh"]
CMD [""]

View File

@@ -0,0 +1,18 @@
cafile /opt/tip-wlan/certs/cacert.pem
certfile /opt/tip-wlan/certs/mqttservercert.pem
keyfile /opt/tip-wlan/certs/mqttserverkey_dec.pem
require_certificate true
use_identity_as_username true
allow_anonymous false
allow_duplicate_messages true
autosave_interval 900
log_dest file /mosquitto/log/mosquitto.log
max_queued_bytes 0
max_queued_messages 0
message_size_limit 0
persistence true
persistence_file mosquitto.db
persistence_location /mosquitto/data/
pid_file /mosquitto/mosquitto.pid
port 1883

View File

@@ -0,0 +1,80 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- For assistance related to logback-translator or configuration -->
<!-- files in general, please contact the logback user mailing list -->
<!-- at http://www.qos.ch/mailman/listinfo/logback-user -->
<!-- -->
<!-- For professional support please see -->
<!-- http://www.qos.ch/shop/products/professionalSupport -->
<!-- -->
<configuration>
<appender name="stdout" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
</encoder>
</appender>
<appender name="mqttDataFile" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>/app/logs/mqttData.log</file>
<append>true</append>
<encoder>
<pattern>%date %msg%n</pattern>
</encoder>
<rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
<fileNamePattern>/app/logs/mqttData.%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>
<encoder>
<pattern>%date %level [%thread] %logger{36} [%file:%line] %msg%n</pattern>
</encoder>
<rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
<fileNamePattern>/app/logs/opensyncgw.%i.log.gz</fileNamePattern>
<minIndex>1</minIndex>
<maxIndex>3</maxIndex>
</rollingPolicy>
<triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
<maxFileSize>20MB</maxFileSize>
</triggeringPolicy>
</appender>
<!--
details: http://logback.qos.ch/manual/configuration.html#auto_configuration
runtime configuration, if need to override the defaults:
-Dlogback.configurationFile=/path/to/logback.xml
for log configuration debugging - use
-Dlogback.statusListenerClass=ch.qos.logback.core.status.OnConsoleStatusListener
log levels:
OFF ERROR WARN INFO DEBUG TRACE
-->
<logger name="org.apache.catalina.startup.DigesterFactory" level="ERROR"/>
<logger name="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping" level="INFO"/>
<logger name="org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainer" level="INFO"/>
<logger name="com.telecominfraproject.wlan" level="INFO"/>
<logger name="ai.connectus" level="INFO"/>
<logger name="com.netflix.servo.tag.aws.AwsInjectableTag" level="OFF"/>
<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">
<appender-ref ref="mqttDataFile"/>
</logger>
<root level="WARN">
<appender-ref ref="logfile"/>
</root>
</configuration>

View File

@@ -0,0 +1,126 @@
#!/bin/sh
# Prepare the hosts file - do it only if does not have required entries
n1=`grep opensync-mqtt-broker /etc/hosts | wc -l`
if [[ $n1 -eq 0 ]]
then
echo Adding opensync-mqtt-broker to /etc/hosts
echo "127.0.0.1 opensync-mqtt-broker" >> /etc/hosts
fi
n2=`grep opensync-wifi-controller /etc/hosts | wc -l`
if [[ $n2 -eq 0 ]]
then
echo Adding opensync-wifi-controller to /etc/hosts
echo "127.0.0.1 opensync-wifi-controller" >> /etc/hosts
fi
echo Starting mosquitto MQTT broker
/usr/sbin/mosquitto -d -c /etc/mosquitto/mosquitto.conf
# Provide default values for the environment variables
MQTT_CLIENT_KEYSTORE_PASSWORD="${MQTT_CLIENT_KEYSTORE_PASSWORD:=mypassword}"
MQTT_CLIENT_KEYSTORE_FILE="${MQTT_CLIENT_KEYSTORE_FILE:=/opt/tip-wlan/certs/client_keystore.jks}"
MQTT_TRUSTSTORE_FILE="${MQTT_TRUSTSTORE_FILE:=/opt/tip-wlan/certs/truststore.jks}"
MQTT_TRUSTSTORE_PASSWORD="${MQTT_TRUSTSTORE_PASSWORD:=mypassword}"
OVSDB_SERVER_KEYSTORE_FILE="${OVSDB_SERVER_KEYSTORE_FILE:=/opt/tip-wlan/certs/server.pkcs12}"
OVSDB_SERVER_KEYSTORE_PASSWORD="${OVSDB_SERVER_KEYSTORE_PASSWORD:=mypassword}"
OVSDB_SERVER_TRUSTSTORE_FILE="${OVSDB_SERVER_TRUSTSTORE_FILE:=/opt/tip-wlan/certs/truststore.jks}"
OVSDB_SERVER_TRUSTSTORE_PASSWORD="${OVSDB_SERVER_TRUSTSTORE_PASSWORD:=mypassword}"
OVSDB_CONFIG_FILE="${OVSDB_CONFIG_FILE:=/app/opensync/config_2_ssids.json}"
echo Reading AP configuration from $OVSDB_CONFIG_FILE
EXT_CLIENT_KEYSTORE_PASSWORD="${EXT_CLIENT_KEYSTORE_PASSWORD:=mypassword}"
EXT_CLIENT_KEYSTORE_FILE="${EXT_CLIENT_KEYSTORE_FILE:=/opt/tip-wlan/certs/client_keystore.jks}"
EXT_TRUSTSTORE_FILE="${EXT_TRUSTSTORE_FILE:=/opt/tip-wlan/certs/truststore.jks}"
EXT_TRUSTSTORE_PASSWORD="${EXT_TRUSTSTORE_PASSWORD:=mypassword}"
MQTT_BROKER_HOST="${MQTT_BROKER_HOST:=opensync-mqtt-broker}"
OVSDB_MANAGER_HOST="${OVSDB_MANAGER_HOST:=opensync-wifi-controller}"
LOGBACK_CONFIG_FILE="${LOGBACK_CONFIG_FILE:=/app/opensync/logback.xml}"
# Create ssl.properties file
cat > /app/ssl.properties <<END_OF_FILE
truststorePass=$OVSDB_SERVER_TRUSTSTORE_PASSWORD
truststoreFile=file:$OVSDB_SERVER_TRUSTSTORE_FILE
truststoreType=JKS
truststoreProvider=SUN
keyAlias=1
keystorePass=$OVSDB_SERVER_KEYSTORE_PASSWORD
keystoreFile=file:$OVSDB_SERVER_KEYSTORE_FILE
keystoreType=pkcs12
keystoreProvider=SunJSSE
sslProtocol=TLS
END_OF_FILE
# Create httpClientConfig.json file
cat > /app/httpClientConfig.json <<END_OF_FILE
{
"maxConnectionsTotal":100,
"maxConnectionsPerRoute":10,
"truststoreType":"JKS",
"truststoreProvider":"SUN",
"truststoreFile":"file:$EXT_TRUSTSTORE_FILE",
"truststorePass":"$EXT_TRUSTSTORE_PASSWORD",
"keystoreType":"JKS",
"keystoreProvider":"SUN",
"keystoreFile":"file:$EXT_CLIENT_KEYSTORE_FILE",
"keystorePass":"$EXT_CLIENT_KEYSTORE_PASSWORD",
"keyAlias":"clientkeyalias",
"credentialsList":[
{"host":"localhost","port":-1,"user":"user","password":"password"}
]
}
END_OF_FILE
# Set environment for the opensync gateway process
PROFILES=" -Dspring.profiles.include=mqtt_receiver,ovsdb_redirector,ovsdb_manager"
SSL_PROPS=" "
SSL_PROPS="$SSL_PROPS -Dssl.props=file:/app/ssl.properties"
SSL_PROPS="$SSL_PROPS -Dtip.wlan.httpClientConfig=file:/app/httpClientConfig.json"
CLIENT_MQTT_SSL_PROPS=" "
CLIENT_MQTT_SSL_PROPS="$CLIENT_MQTT_SSL_PROPS -Djavax.net.ssl.keyStore=$MQTT_CLIENT_KEYSTORE_FILE"
CLIENT_MQTT_SSL_PROPS="$CLIENT_MQTT_SSL_PROPS -Djavax.net.ssl.keyStorePassword=$MQTT_CLIENT_KEYSTORE_PASSWORD"
CLIENT_MQTT_SSL_PROPS="$CLIENT_MQTT_SSL_PROPS -Djavax.net.ssl.trustStore=$MQTT_TRUSTSTORE_FILE"
CLIENT_MQTT_SSL_PROPS="$CLIENT_MQTT_SSL_PROPS -Djavax.net.ssl.trustStorePassword=$MQTT_TRUSTSTORE_PASSWORD"
OVSDB_PROPS=" "
OVSDB_PROPS="$OVSDB_PROPS -Dconnectus.ovsdb.managerAddr=$OVSDB_MANAGER_HOST"
OVSDB_PROPS="$OVSDB_PROPS -Dconnectus.ovsdb.listenPort=6640 "
OVSDB_PROPS="$OVSDB_PROPS -Dconnectus.ovsdb.redirector.listenPort=6643"
OVSDB_PROPS="$OVSDB_PROPS -Dconnectus.ovsdb.timeoutSec=30"
OVSDB_PROPS="$OVSDB_PROPS -Dconnectus.ovsdb.trustStore=$OVSDB_SERVER_TRUSTSTORE_FILE"
OVSDB_PROPS="$OVSDB_PROPS -Dconnectus.ovsdb.trustStorePassword=$OVSDB_SERVER_TRUSTSTORE_PASSWORD"
OVSDB_PROPS="$OVSDB_PROPS -Dconnectus.ovsdb.keyStore=$OVSDB_SERVER_KEYSTORE_FILE"
OVSDB_PROPS="$OVSDB_PROPS -Dconnectus.ovsdb.keyStorePassword=$OVSDB_SERVER_KEYSTORE_PASSWORD"
OVSDB_PROPS="$OVSDB_PROPS -Dconnectus.ovsdb.configFileName=$OVSDB_CONFIG_FILE"
MQTT_PROPS=" "
MQTT_PROPS="$MQTT_PROPS -Dconnectus.mqttBroker.address=$MQTT_BROKER_HOST"
MQTT_PROPS="$MQTT_PROPS -Dconnectus.mqttBroker.listenPort=1883"
LOGGING_PROPS=" -Dlogging.config=file:$LOGBACK_CONFIG_FILE"
RESTAPI_PROPS=" "
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 "
echo Starting opensync wifi controller
#echo Result: $ALL_PROPS
java $ALL_PROPS -jar app.jar > /app/opensync-wifi-controller-stdout.out 2>&1

View File

@@ -1,5 +1,5 @@
FROM adoptopenjdk/openjdk13:alpine-jre FROM adoptopenjdk/openjdk13:alpine-jre
MAINTAINER TipWlan MAINTAINER ConnectUs
# Update the package list and upgrade installed packages # Update the package list and upgrade installed packages
RUN apk update && apk upgrade && apk add bash RUN apk update && apk upgrade && apk add bash
@@ -9,7 +9,6 @@ RUN mkdir -p /opt/tip-wlan/certs
COPY maven/app.jar /app COPY maven/app.jar /app
COPY app/opensync/logback.xml /app/opensync/logback.xml COPY app/opensync/logback.xml /app/opensync/logback.xml
COPY app/run.sh /app COPY app/run.sh /app
COPY app/commit.properties /app
RUN chmod +x /app/run.sh RUN chmod +x /app/run.sh

View File

@@ -1,4 +0,0 @@
#This is a dummy property file to be used when running docker locally
date=${date}
commitId=${commit.id}
projectVersion=${project.version}

View File

@@ -14,37 +14,15 @@
</encoder> </encoder>
</appender> </appender>
<appender name="mqttDataFile" class="ch.qos.logback.core.rolling.RollingFileAppender"> <!--
<file>/app/logs/mqttData.log</file> <appender name="FILE" class="ch.qos.logback.core.FileAppender">
<append>true</append> <file>myApp.log</file>
<encoder>
<pattern>%date %msg%n</pattern>
</encoder>
<rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
<fileNamePattern>/app/logs/mqttData.%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="mqttMsgTracer" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>/app/logs/mqttMsgTracer.log</file>
<append>true</append>
<encoder> <encoder>
<pattern>%date %msg%n</pattern> <pattern>%date %level [%thread] %logger{10} [%file:%line] %msg%n</pattern>
</encoder> </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>
-->
<appender name="logfile" class="ch.qos.logback.core.rolling.RollingFileAppender"> <appender name="logfile" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>/app/logs/opensyncgw.log</file> <file>/app/logs/opensyncgw.log</file>
@@ -79,15 +57,19 @@
<logger name="org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainer" level="INFO"/> <logger name="org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainer" level="INFO"/>
<logger name="com.telecominfraproject.wlan" level="DEBUG"/> <logger name="com.telecominfraproject.wlan" level="DEBUG"/>
<logger name="ai.connectus" level="DEBUG"/>
<logger name="com.netflix.servo.tag.aws.AwsInjectableTag" level="OFF"/> <logger name="com.netflix.servo.tag.aws.AwsInjectableTag" level="OFF"/>
<logger name="com.vmware.ovsdb.service.OvsdbConnectionInfo" level="OFF"/> <logger name="com.vmware.ovsdb.service.OvsdbConnectionInfo" level="OFF"/>
<logger name="com.vmware.ovsdb.netty.OvsdbConnectionHandler" level="ERROR"/> <logger name="com.vmware.ovsdb.netty.OvsdbConnectionHandler" level="ERROR"/>
<logger name="MQTT_DATA" level="INFO" additivity="false"> <logger name="MQTT_DATA" level="DEBUG"/>
<appender-ref ref="mqttDataFile"/>
</logger> <!--
<logger name="org.springframework.security.web.authentication.preauth" level="DEBUG"/>
-->
<root level="WARN"> <root level="WARN">
<!-- <appender-ref ref="stdout"/>-->
<appender-ref ref="logfile"/> <appender-ref ref="logfile"/>
</root> </root>

View File

@@ -10,123 +10,28 @@ CLIENT_MQTT_SSL_PROPS+=" -Djavax.net.ssl.keyStore=/opt/tip-wlan/certs/client_key
CLIENT_MQTT_SSL_PROPS+=" -Djavax.net.ssl.keyStorePassword=mypassword" CLIENT_MQTT_SSL_PROPS+=" -Djavax.net.ssl.keyStorePassword=mypassword"
CLIENT_MQTT_SSL_PROPS+=" -Djavax.net.ssl.trustStore=/opt/tip-wlan/certs/truststore.jks" CLIENT_MQTT_SSL_PROPS+=" -Djavax.net.ssl.trustStore=/opt/tip-wlan/certs/truststore.jks"
CLIENT_MQTT_SSL_PROPS+=" -Djavax.net.ssl.trustStorePassword=mypassword" CLIENT_MQTT_SSL_PROPS+=" -Djavax.net.ssl.trustStorePassword=mypassword"
CLIENT_MQTT_SSL_PROPS+=" -Dtip.wlan.mqttBroker.password=admin" CLIENT_MQTT_SSL_PROPS+=" -Dconnectus.mqttBroker.password=admin"
OVSDB_MANAGER_HOST=${OVSDB_MANAGER}
MQTT_BROKER_HOST_INTERNAL="${MQTT_SERVER_INTERNAL}"
MQTT_BROKER_HOST_EXTERNAL="${MQTT_SERVER_EXTERNAL}"
PROV_SERVER_HOST="${PROV_SERVER}"
SSC_SERVER_HOST="${SSC_SERVER}"
ALL_IN_ONE_HOST="${INTEGRATED_SERVER}"
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}"
OVSDB_PROPS=" " OVSDB_PROPS=" "
OVSDB_PROPS+=" -Dtip.wlan.ovsdb.managerAddr=$OVSDB_MANAGER_HOST" OVSDB_PROPS+=" -Dconnectus.ovsdb.managerAddr=opensync-controller"
OVSDB_PROPS+=" -Dtip.wlan.ovsdb.listenPort=6640 " OVSDB_PROPS+=" -Dconnectus.ovsdb.listenPort=6640 "
OVSDB_PROPS+=" -Dtip.wlan.ovsdb.redirector.listenPort=6643" OVSDB_PROPS+=" -Dconnectus.ovsdb.redirector.listenPort=6643"
OVSDB_PROPS+=" -Dtip.wlan.ovsdb.timeoutSec=30" OVSDB_PROPS+=" -Dconnectus.ovsdb.timeoutSec=30"
OVSDB_PROPS+=" -Dtip.wlan.ovsdb.trustStore=/opt/tip-wlan/certs/truststore.jks" OVSDB_PROPS+=" -Dconnectus.ovsdb.trustStore=/opt/tip-wlan/certs/truststore.jks"
OVSDB_PROPS+=" -Dtip.wlan.ovsdb.keyStore=/opt/tip-wlan/certs/server.pkcs12" OVSDB_PROPS+=" -Dconnectus.ovsdb.keyStore=/opt/tip-wlan/certs/server.pkcs12"
OVSDB_PROPS+=" -Dtip.wlan.ovsdb.configFileName=/app/opensync/config_2_ssids.json" OVSDB_PROPS+=" -Dconnectus.ovsdb.configFileName=/app/opensync/config_2_ssids.json"
MQTT_PROPS=" " MQTT_PROPS=" "
MQTT_PROPS+=" -Dtip.wlan.mqttBroker.address.internal=$MQTT_BROKER_HOST_INTERNAL" MQTT_PROPS+=" -Dconnectus.mqttBroker.address=tip-wlan-opensync-mqtt-broker"
MQTT_PROPS+=" -Dtip.wlan.mqttBroker.address.external=$MQTT_BROKER_HOST_EXTERNAL" MQTT_PROPS+=" -Dconnectus.mqttBroker.listenPort=1883"
MQTT_PROPS+=" -Dtip.wlan.ovsdb.externalPort=$OVSDB_EXTERNAL_PORT"
MQTT_PROPS+=" -Dtip.wlan.mqttBroker.externalPort=$MQTT_BROKER_EXTERNAL_PORT"
MQTT_PROPS+=" -Dtip.wlan.mqttBroker.listenPort=1883"
LOGBACK_CONFIG_FILE="${LOGBACK_CONFIG_FILE:=/app/opensync/logback.xml}" LOGGING_PROPS=" -Dlogging.config=file:/app/opensync/logback.xml"
LOGGING_PROPS=" -Dlogging.config=file:$LOGBACK_CONFIG_FILE"
RESTAPI_PROPS=" " RESTAPI_PROPS=" "
RESTAPI_PROPS+=" -Dserver.port=9096 -Dtip.wlan.secondaryPort=9097" RESTAPI_PROPS+=" -Dserver.port=443"
SPRING_EXTRA_PROPS=" --add-opens java.base/java.lang=ALL-UNNAMED" SPRING_EXTRA_PROPS=" --add-opens java.base/java.lang=ALL-UNNAMED"
HOST_PROPS=" " export ALL_PROPS="$PROFILES $SSL_PROPS $CLIENT_MQTT_SSL_PROPS $OVSDB_PROPS $MQTT_PROPS $LOGGING_PROPS $RESTAPI_PROPS $SPRING_EXTRA_PROPS"
## These properties are used by the Routing Service and the values will be
## overridden in Helm chart to the IP-Address of running opensync-gw pod
## If OVSDB_MANAGER_IP variable is not defined, these properties default
## to the Hostname of the container
if [[ -n ${OVSDB_MANAGER_IP} ]]
then
HOST_PROPS+=" -Dtip.wlan.externalHostName=${OVSDB_MANAGER_IP}"
HOST_PROPS+=" -Dtip.wlan.internalHostName=${OVSDB_MANAGER_IP}"
HOST_PROPS+=" -Dtip.wlan.introspectTokenApi.host=${OVSDB_MANAGER_IP}:9096"
fi
if [[ -n $PROV_SERVER_HOST && -n $SSC_SERVER_HOST ]]
then
echo Use specifed local host
SSC_URL=https://${SSC_SERVER_HOST}:9031
PROV_URL=https://${PROV_SERVER_HOST}:9091
else
echo Its an Integrated server environment
SSC_URL=https://${ALL_IN_ONE_HOST}:9092
PROV_URL=https://${ALL_IN_ONE_HOST}:9092
fi
# SSC URLs
HOST_PROPS+=" -Dtip.wlan.cloudEventDispatcherBaseUrl=$SSC_URL"
HOST_PROPS+=" -Dtip.wlan.statusServiceBaseUrl=$SSC_URL"
HOST_PROPS+=" -Dtip.wlan.routingServiceBaseUrl=$SSC_URL"
HOST_PROPS+=" -Dtip.wlan.alarmServiceBaseUrl=$SSC_URL"
HOST_PROPS+=" -Dtip.wlan.systemEventServiceBaseUrl=$SSC_URL"
HOST_PROPS+=" -Dtip.wlan.clientServiceBaseUrl=$SSC_URL"
HOST_PROPS+=" -Dtip.wlan.serviceMetricServiceBaseUrl=$SSC_URL"
# PROV URLs
HOST_PROPS+=" -Dtip.wlan.customerServiceBaseUrl=$PROV_URL"
HOST_PROPS+=" -Dtip.wlan.portalUserServiceBaseUrl=$PROV_URL"
HOST_PROPS+=" -Dtip.wlan.firmwareServiceBaseUrl=$PROV_URL"
HOST_PROPS+=" -Dtip.wlan.locationServiceBaseUrl=$PROV_URL"
HOST_PROPS+=" -Dtip.wlan.manufacturerServiceBaseUrl=$PROV_URL"
HOST_PROPS+=" -Dtip.wlan.equipmentServiceBaseUrl=$PROV_URL"
HOST_PROPS+=" -Dtip.wlan.profileServiceBaseUrl=$PROV_URL"
DEFAULT_BRIDGE="${DEFAULT_BRIDGE:=lan}"
DEFAULT_WAN_TYPE="${DEFAULT_WAN_TYPE:=bridge}"
DEFAULT_LAN_TYPE="${DEFAULT_LAN_TYPE:=bridge}"
DEFAULT_LAN_NAME="${DEFAULT_LAN_NAME:=lan}"
DEFAULT_WAN_NAME="${DEFAULT_WAN_NAME:=wan}"
AUTO_PROV_CUSTOMER_ID="${AUTO_PROV_CUSTOMER_ID:=2}"
PROV_PROPS=" "
PROV_PROPS+=" -Dtip.wlan.ovsdb.wifi-iface.default_bridge=$DEFAULT_BRIDGE"
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"
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=${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
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 java $ALL_PROPS -jar app.jar

View File

@@ -0,0 +1 @@
/target/

View File

@@ -1,9 +1,11 @@
<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> <modelVersion>4.0.0</modelVersion>
<parent> <parent>
<groupId>com.telecominfraproject.wlan</groupId> <groupId>com.telecominfraproject.wlan</groupId>
<artifactId>tip-wlan-cloud-root-pom</artifactId> <artifactId>tip-wlan-cloud-root-pom</artifactId>
<version>1.3.0-SNAPSHOT</version> <version>0.0.1-SNAPSHOT</version>
<relativePath>../../wlan-cloud-root</relativePath> <relativePath>../../wlan-cloud-root</relativePath>
</parent> </parent>
<artifactId>opensync-gateway-cloud-process</artifactId> <artifactId>opensync-gateway-cloud-process</artifactId>
@@ -16,99 +18,107 @@
<dependencies> <dependencies>
<!-- <dependency> <groupId>com.telecominfraproject.wlan</groupId> <artifactId>opensync-gateway</artifactId> <!-- <dependency> <groupId>com.telecominfraproject.wlan</groupId> <artifactId>opensync-gateway</artifactId>
<version>0.0.1-SNAPSHOT</version> </dependency> --> <version>${tip-wlan-cloud.release.version}</version> </dependency> -->
<dependency> <dependency>
<groupId>com.telecominfraproject.wlan</groupId> <groupId>com.telecominfraproject.wlan</groupId>
<artifactId>opensync-ext-cloud</artifactId> <artifactId>opensync-ext-cloud</artifactId>
<version>1.3.0-SNAPSHOT</version> <version>${tip-wlan-cloud.release.version}</version>
</dependency> </dependency>
<dependency>
<artifactId>base-container</artifactId>
<groupId>com.telecominfraproject.wlan</groupId>
<version>${tip-wlan-cloud.release.version}</version>
</dependency>
<dependency> <dependency>
<artifactId>filestore-service</artifactId> <artifactId>filestore-service</artifactId>
<groupId>com.telecominfraproject.wlan</groupId> <groupId>com.telecominfraproject.wlan</groupId>
<version>1.3.0-SNAPSHOT</version> <version>${tip-wlan-cloud.release.version}</version>
</dependency> </dependency>
<dependency> <dependency>
<artifactId>customer-service-remote</artifactId> <artifactId>customer-service-remote</artifactId>
<groupId>com.telecominfraproject.wlan</groupId> <groupId>com.telecominfraproject.wlan</groupId>
<version>1.3.0-SNAPSHOT</version> <version>${tip-wlan-cloud.release.version}</version>
</dependency> </dependency>
<dependency> <dependency>
<artifactId>location-service-remote</artifactId> <artifactId>location-service-remote</artifactId>
<groupId>com.telecominfraproject.wlan</groupId> <groupId>com.telecominfraproject.wlan</groupId>
<version>1.3.0-SNAPSHOT</version> <version>${tip-wlan-cloud.release.version}</version>
</dependency> </dependency>
<dependency> <dependency>
<artifactId>equipment-service-remote</artifactId> <artifactId>equipment-service-remote</artifactId>
<groupId>com.telecominfraproject.wlan</groupId> <groupId>com.telecominfraproject.wlan</groupId>
<version>1.3.0-SNAPSHOT</version> <version>${tip-wlan-cloud.release.version}</version>
</dependency> </dependency>
<dependency> <dependency>
<artifactId>profile-service-remote</artifactId> <artifactId>profile-service-remote</artifactId>
<groupId>com.telecominfraproject.wlan</groupId> <groupId>com.telecominfraproject.wlan</groupId>
<version>1.3.0-SNAPSHOT</version> <version>${tip-wlan-cloud.release.version}</version>
</dependency> </dependency>
<dependency> <dependency>
<artifactId>portal-user-service-remote</artifactId> <artifactId>portal-user-service-remote</artifactId>
<groupId>com.telecominfraproject.wlan</groupId> <groupId>com.telecominfraproject.wlan</groupId>
<version>1.3.0-SNAPSHOT</version> <version>${tip-wlan-cloud.release.version}</version>
</dependency> </dependency>
<dependency> <dependency>
<artifactId>service-metric-service-remote</artifactId> <artifactId>service-metric-service-remote</artifactId>
<groupId>com.telecominfraproject.wlan</groupId> <groupId>com.telecominfraproject.wlan</groupId>
<version>1.3.0-SNAPSHOT</version> <version>${tip-wlan-cloud.release.version}</version>
</dependency> </dependency>
<dependency> <dependency>
<artifactId>system-event-service-remote</artifactId> <artifactId>system-event-service-remote</artifactId>
<groupId>com.telecominfraproject.wlan</groupId> <groupId>com.telecominfraproject.wlan</groupId>
<version>1.3.0-SNAPSHOT</version> <version>${tip-wlan-cloud.release.version}</version>
</dependency> </dependency>
<dependency> <dependency>
<artifactId>alarm-service-remote</artifactId> <artifactId>alarm-service-remote</artifactId>
<groupId>com.telecominfraproject.wlan</groupId> <groupId>com.telecominfraproject.wlan</groupId>
<version>1.3.0-SNAPSHOT</version> <version>${tip-wlan-cloud.release.version}</version>
</dependency> </dependency>
<dependency> <dependency>
<artifactId>status-service-remote</artifactId> <artifactId>status-service-remote</artifactId>
<groupId>com.telecominfraproject.wlan</groupId> <groupId>com.telecominfraproject.wlan</groupId>
<version>1.3.0-SNAPSHOT</version> <version>${tip-wlan-cloud.release.version}</version>
</dependency> </dependency>
<dependency> <dependency>
<artifactId>client-service-remote</artifactId> <artifactId>client-service-remote</artifactId>
<groupId>com.telecominfraproject.wlan</groupId> <groupId>com.telecominfraproject.wlan</groupId>
<version>1.3.0-SNAPSHOT</version> <version>${tip-wlan-cloud.release.version}</version>
</dependency> </dependency>
<dependency> <dependency>
<artifactId>routing-service-remote</artifactId> <artifactId>routing-service-remote</artifactId>
<groupId>com.telecominfraproject.wlan</groupId> <groupId>com.telecominfraproject.wlan</groupId>
<version>1.3.0-SNAPSHOT</version> <version>${tip-wlan-cloud.release.version}</version>
</dependency> </dependency>
<dependency> <dependency>
<artifactId>firmware-service-remote</artifactId> <artifactId>firmware-service-remote</artifactId>
<groupId>com.telecominfraproject.wlan</groupId> <groupId>com.telecominfraproject.wlan</groupId>
<version>1.3.0-SNAPSHOT</version> <version>${tip-wlan-cloud.release.version}</version>
</dependency> </dependency>
<dependency> <dependency>
<artifactId>manufacturer-service-remote</artifactId> <artifactId>manufacturer-service-remote</artifactId>
<groupId>com.telecominfraproject.wlan</groupId> <groupId>com.telecominfraproject.wlan</groupId>
<version>1.3.0-SNAPSHOT</version> <version>${tip-wlan-cloud.release.version}</version>
</dependency> </dependency>
<dependency> <dependency>
<artifactId>cloud-event-dispatcher-remote</artifactId> <artifactId>cloud-event-dispatcher-remote</artifactId>
<groupId>com.telecominfraproject.wlan</groupId> <groupId>com.telecominfraproject.wlan</groupId>
<version>1.3.0-SNAPSHOT</version> <version>${tip-wlan-cloud.release.version}</version>
</dependency> </dependency>
</dependencies> </dependencies>

View File

@@ -1,40 +0,0 @@
package com.telecominfraproject.wlan.opensync.startuptasks;
import java.util.List;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.ApplicationArguments;
import org.springframework.boot.ApplicationRunner;
import org.springframework.context.annotation.Configuration;
import com.telecominfraproject.wlan.core.model.pair.PairIntString;
import com.telecominfraproject.wlan.customer.service.CustomerServiceInterface;
import com.telecominfraproject.wlan.equipment.EquipmentServiceInterface;
@Configuration
public class OpensyncGatewayStartupListener implements ApplicationRunner {
private static final Logger LOG = LoggerFactory.getLogger(OpensyncGatewayStartupListener.class);
@Autowired
private CustomerServiceInterface customerServiceInterface;
@Autowired
private EquipmentServiceInterface equipmentServiceInterface;
@Override
public void run(ApplicationArguments args) throws Exception {
LOG.debug("OSGW startup commands");
try {
// List<PairIntString> first10Customers = customerServiceInterface.getAll(10, -1);
// LOG.info("first10Customers: {}", first10Customers);
} catch (Exception e) {
LOG.error("Got Exception ", e);
}
LOG.debug("Completed OSGW startup commands");
}
}

View File

@@ -11,6 +11,7 @@
"keystorePass":"mypassword", "keystorePass":"mypassword",
"keyAlias":"clientqrcode", "keyAlias":"clientqrcode",
"credentialsList":[ "credentialsList":[
{"host":"localhost","port":-1,"user":"user","password":"password"}
] ]
} }

View File

@@ -81,9 +81,7 @@ spring.profiles.include=use_ssl_with_client_cert_and_basic_auth,client_certifica
tip.wlan.httpClientConfig=classpath:httpClientConfig.json tip.wlan.httpClientConfig=classpath:httpClientConfig.json
#this user/password is used together with http_digest_auth and http_basic_auth spring profiles #this user/password is used together with http_digest_auth and http_basic_auth spring profiles
tip.wlan.serviceUser=user tip.wlan.serviceUser=user
# The value in here is bcrypt-encoded string "password", generated with the following command tip.wlan.servicePassword=password
# htpasswd -nBC 10 "" | cut -d ':' -f2
tip.wlan.servicePassword=$2y$10$rXnaSR5q2PsFWs8WEfJAguKAPh0oHLFkAJFqd7Pf7PVa3cOIClGoS
spring.main.show-banner=false spring.main.show-banner=false
server.port=9096 server.port=9096
@@ -96,8 +94,6 @@ tip.wlan.listOfPathsToProtect=/api,/filestore
#this server only supports REST requests, CSRF would get in the way #this server only supports REST requests, CSRF would get in the way
tip.wlan.csrf-enabled=false tip.wlan.csrf-enabled=false
# do not allow clientCn alteration
tip.wlan.preventClientCnAlteration=false
#properties that configure remote interfaces to communicate with cloud #properties that configure remote interfaces to communicate with cloud
# when separate portal - prov - ssc processes are in use: # when separate portal - prov - ssc processes are in use:
##SSC-related services ##SSC-related services
@@ -105,9 +101,6 @@ tip.wlan.preventClientCnAlteration=false
#tip.wlan.statusServiceBaseUrl=https://localhost:9031 #tip.wlan.statusServiceBaseUrl=https://localhost:9031
#tip.wlan.routingServiceBaseUrl=https://localhost:9031 #tip.wlan.routingServiceBaseUrl=https://localhost:9031
#tip.wlan.alarmServiceBaseUrl=https://localhost:9031 #tip.wlan.alarmServiceBaseUrl=https://localhost:9031
#tip.wlan.clientServiceBaseUrl=https://localhost:9031
#tip.wlan.systemEventServiceBaseUrl=https://localhost:9031
#tip.wlan.serviceMetricServiceBaseUrl=https://localhost:9031
##PROV-related services ##PROV-related services
#tip.wlan.customerServiceBaseUrl=https://localhost:9091 #tip.wlan.customerServiceBaseUrl=https://localhost:9091
#tip.wlan.locationServiceBaseUrl=https://localhost:9091 #tip.wlan.locationServiceBaseUrl=https://localhost:9091
@@ -115,7 +108,6 @@ tip.wlan.preventClientCnAlteration=false
#tip.wlan.profileServiceBaseUrl=https://localhost:9091 #tip.wlan.profileServiceBaseUrl=https://localhost:9091
#tip.wlan.firmwareServiceBaseUrl=https://localhost:9091 #tip.wlan.firmwareServiceBaseUrl=https://localhost:9091
#tip.wlan.manufacturerServiceBaseUrl=https://localhost:9091 #tip.wlan.manufacturerServiceBaseUrl=https://localhost:9091
#tip.wlan.portalUserServiceBaseUrl=https://localhost:9091
# For all-cloud-in-one-process : # For all-cloud-in-one-process :
#SSC-related services #SSC-related services
@@ -123,20 +115,14 @@ tip.wlan.cloudEventDispatcherBaseUrl=https://localhost:9092
tip.wlan.statusServiceBaseUrl=https://localhost:9092 tip.wlan.statusServiceBaseUrl=https://localhost:9092
tip.wlan.routingServiceBaseUrl=https://localhost:9092 tip.wlan.routingServiceBaseUrl=https://localhost:9092
tip.wlan.alarmServiceBaseUrl=https://localhost:9092 tip.wlan.alarmServiceBaseUrl=https://localhost:9092
tip.wlan.clientServiceBaseUrl=https://localhost:9092
tip.wlan.systemEventServiceBaseUrl=https://localhost:9092
tip.wlan.serviceMetricServiceBaseUrl=https://localhost:9092
#PROV-related services #PROV-related services
tip.wlan.customerServiceBaseUrl=https://localhost:9092 tip.wlan.customerServiceBaseUrl=https://localhost:9092
tip.wlan.locationServiceBaseUrl=https://localhost:9092 tip.wlan.locationServiceBaseUrl=https://localhost:9092
tip.wlan.equipmentServiceBaseUrl=https://localhost:9092 tip.wlan.equipmentServiceBaseUrl=https://localhost:9092
tip.wlan.profileServiceBaseUrl=https://localhost:9092 tip.wlan.profileServiceBaseUrl=https://localhost:9092
tip.wlan.clientServiceBaseUrl=https://localhost:9092
tip.wlan.firmwareServiceBaseUrl=https://localhost:9092 tip.wlan.firmwareServiceBaseUrl=https://localhost:9092
tip.wlan.manufacturerServiceBaseUrl=https://localhost:9092 tip.wlan.manufacturerServiceBaseUrl=https://localhost:9092
tip.wlan.portalUserServiceBaseUrl=https://localhost:9092
tip.wlan.fileStoreDirectory=/tmp/tip-wlan-filestore
tip.wlan.externalFileStoreURL=https://localhost:9092
#server.session-timeout= # session timeout in seconds #server.session-timeout= # session timeout in seconds
#server.tomcat.max-threads = 0 # number of threads in protocol handler #server.tomcat.max-threads = 0 # number of threads in protocol handler

View File

@@ -7,7 +7,6 @@
<listEntry value="1"/> <listEntry value="1"/>
</listAttribute> </listAttribute>
<booleanAttribute key="org.eclipse.jdt.launching.ATTR_EXCLUDE_TEST_CODE" value="true"/> <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_CLASSPATH_ONLY_JAR" value="false"/>
<booleanAttribute key="org.eclipse.jdt.launching.ATTR_USE_START_ON_FIRST_THREAD" value="true"/> <booleanAttribute key="org.eclipse.jdt.launching.ATTR_USE_START_ON_FIRST_THREAD" value="true"/>
<listAttribute key="org.eclipse.jdt.launching.CLASSPATH"> <listAttribute key="org.eclipse.jdt.launching.CLASSPATH">
@@ -22,5 +21,5 @@
<stringAttribute key="org.eclipse.jdt.launching.MODULE_NAME" value="opensync-gateway-cloud-process"/> <stringAttribute key="org.eclipse.jdt.launching.MODULE_NAME" value="opensync-gateway-cloud-process"/>
<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="opensync-gateway-cloud-process"/> <stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="opensync-gateway-cloud-process"/>
<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.m2e.launchconfig.sourcepathProvider"/> <stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.m2e.launchconfig.sourcepathProvider"/>
<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="--add-opens java.base/java.lang=ALL-UNNAMED&#10;&#10;-Dssl.props=file://${project_loc:opensync-gateway-cloud-process}/src/main/resources/app/certs/ssl.properties&#10;-Dtip.wlan.httpClientConfig=file://${project_loc:opensync-gateway-cloud-process}/src/main/resources/app/certs/httpClientConfig.json&#10;&#10;-Djavax.net.ssl.keyStore=${tip_wlan_service_certs}/client_keystore.jks&#10;-Djavax.net.ssl.keyStorePassword=mypassword&#10;-Djavax.net.ssl.trustStore=${tip_wlan_service_certs}/truststore.jks&#10;-Djavax.net.ssl.trustStorePassword=mypassword&#10;&#10;-Dtip.wlan.ovsdb.managerAddr=${local_server_address}&#10;-Dtip.wlan.ovsdb.listenPort=6640&#10;-Dtip.wlan.ovsdb.redirector.listenPort=6643&#10;-Dtip.wlan.ovsdb.timeoutSec=30&#10;-Dtip.wlan.ovsdb.trustStore=${tip_wlan_service_certs}/truststore.jks&#10;-Dtip.wlan.ovsdb.keyStore=${tip_wlan_service_certs}/server.pkcs12&#10;-Dtip.wlan.mqttBroker.address.internal=${mqtt_broker_address}&#10;-Dtip.wlan.mqttBroker.address.external=${mqtt_broker_address}&#10;-Dtip.wlan.mqttBroker.listenPort=1883&#10;-Dtip.wlan.introspectTokenApi.host=${local_server_address}:9096&#10;-Dtip.wlan.introspectTokenApi.clientToken=token_placeholder&#10;-Dtip.wlan.ovsdb.autoProvisionedCustomerId=2&#10;-Dtip.wlan.ovsdb.autoProvisionedSsid=TipWlan-cloud&#10;-Dtip.wlan.preventClientCnAlteration=false&#10;-Dserver.port=9096&#10;-Dtip.wlan.secondaryPort=7071&#10;-Dspring.profiles.include=opensync_cloud_config,mqtt_receiver,ovsdb_redirector,ovsdb_manager"/> <stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="--add-opens java.base/java.lang=ALL-UNNAMED&#10;&#10;-Dssl.props=file://${project_loc:opensync-gateway-cloud-process}/src/main/resources/app/certs/ssl.properties&#10;-Dtip.wlan.httpClientConfig=file://${project_loc:opensync-gateway-cloud-process}/src/main/resources/app/certs/httpClientConfig.json&#10;&#10;-Djavax.net.ssl.keyStore=${connectus_certs}/client_keystore.jks&#10;-Djavax.net.ssl.keyStorePassword=mypassword&#10;-Djavax.net.ssl.trustStore=${connectus_certs}/truststore.jks&#10;-Djavax.net.ssl.trustStorePassword=mypassword&#10;&#10;-Dconnectus.ovsdb.managerAddr=${local_server_address}&#10;-Dconnectus.ovsdb.listenPort=6640&#10;-Dconnectus.ovsdb.redirector.listenPort=6643&#10;-Dconnectus.ovsdb.timeoutSec=30&#10;-Dconnectus.ovsdb.trustStore=${connectus_certs}/truststore.jks&#10;-Dconnectus.ovsdb.keyStore=${connectus_certs}/server.pkcs12&#10;&#10;-Dconnectus.mqttBroker.address=${local_server_address}&#10;-Dconnectus.mqttBroker.listenPort=1883&#10;-Dconnectus.ovsdb.wifi-iface.default_bridge=br-lan&#10;-Dtip.wlan.introspectTokenApi.host=${local_server_address}:9096&#10;-Dtip.wlan.introspectTokenApi.clientToken=token_placeholder&#10;-Dtip.wlan.serviceUser=user&#10;-Dtip.wlan.servicePassword=password&#10;-Dconnectus.ovsdb.autoProvisionedCustomerId=2&#10;-Dconnectus.ovsdb.autoProvisionedSsid=Connectus-cloud&#10;-Dspring.main.show-banner=false&#10;-Dserver.port=9096&#10;-Dtip.wlan.secondaryPort=7071&#10;-Dtip.wlan.csrf-enabled=false&#10;-Dspring.profiles.include=opensync_cloud_config,mqtt_receiver,ovsdb_redirector,ovsdb_manager"/>
</launchConfiguration> </launchConfiguration>

View File

@@ -60,10 +60,11 @@
<logger name ="com.telecominfraproject.wlan.core.server.webconfig.WebMvcRegistrationsConfiguration$1$1" level="INFO"/> <logger name ="com.telecominfraproject.wlan.core.server.webconfig.WebMvcRegistrationsConfiguration$1$1" level="INFO"/>
<logger name="com.telecominfraproject.wlan" level="DEBUG"/> <logger name="com.telecominfraproject.wlan" level="DEBUG"/>
<logger name="ai.connectus" level="DEBUG"/>
<logger name="com.vmware.ovsdb.service.OvsdbConnectionInfo" level="OFF"/> <logger name="com.vmware.ovsdb.service.OvsdbConnectionInfo" level="OFF"/>
<logger name="com.vmware.ovsdb.netty.OvsdbConnectionHandler" level="ERROR"/> <logger name="com.vmware.ovsdb.netty.OvsdbConnectionHandler" level="ERROR"/>
<logger name="MQTT_DATA" level="INFO"/> <logger name="MQTT_DATA" level="DEBUG"/>
<!-- <!--
<logger name="org.springframework.security.web.authentication.preauth" level="DEBUG"/> <logger name="org.springframework.security.web.authentication.preauth" level="DEBUG"/>

View File

@@ -3,7 +3,7 @@
<parent> <parent>
<groupId>com.telecominfraproject.wlan</groupId> <groupId>com.telecominfraproject.wlan</groupId>
<artifactId>tip-wlan-cloud-root-pom</artifactId> <artifactId>tip-wlan-cloud-root-pom</artifactId>
<version>1.3.0-SNAPSHOT</version> <version>0.0.1-SNAPSHOT</version>
<relativePath>../../wlan-cloud-root</relativePath> <relativePath>../../wlan-cloud-root</relativePath>
</parent> </parent>
<artifactId>opensync-gateway-static-docker</artifactId> <artifactId>opensync-gateway-static-docker</artifactId>
@@ -14,15 +14,13 @@
<properties> <properties>
<docker.fabric.version>0.28.0</docker.fabric.version> <docker.fabric.version>0.28.0</docker.fabric.version>
<docker.push.registry>tip-tip-wlan-cloud-docker-repo.jfrog.io</docker.push.registry> <docker.push.registry>tip-tip-wlan-cloud-docker-repo.jfrog.io</docker.push.registry>
<timestamp>${maven.build.timestamp}</timestamp>
<maven.build.timestamp.format>yyyy-MM-dd</maven.build.timestamp.format>
</properties> </properties>
<dependencies> <dependencies>
<dependency> <dependency>
<groupId>com.telecominfraproject.wlan</groupId> <groupId>com.telecominfraproject.wlan</groupId>
<artifactId>opensync-gateway-static-process</artifactId> <artifactId>opensync-gateway-static-process</artifactId>
<version>1.3.0-SNAPSHOT</version> <version>${tip-wlan-cloud.release.version}</version>
</dependency> </dependency>
</dependencies> </dependencies>
@@ -34,15 +32,12 @@
<artifactId>docker-maven-plugin</artifactId> <artifactId>docker-maven-plugin</artifactId>
<version>${docker.fabric.version}</version> <version>${docker.fabric.version}</version>
<configuration> <configuration>
<verbose>false</verbose> <verbose>true</verbose>
<apiVersion>1.23</apiVersion> <apiVersion>1.23</apiVersion>
<images> <images>
<image> <image>
<name>opensync-gateway-static:${project.version}</name> <name>opensync-gateway-static:${project.version}</name>
<build> <build>
<tags>
<tag>${project.version}-${timestamp}</tag>
</tags>
<filter>@</filter> <filter>@</filter>
<cleanup>try</cleanup> <cleanup>try</cleanup>
<dockerFileDir>${project.basedir}/src/main/docker</dockerFileDir> <dockerFileDir>${project.basedir}/src/main/docker</dockerFileDir>
@@ -65,9 +60,6 @@
<image> <image>
<name>opensync-gateway-and-mqtt:${project.version}</name> <name>opensync-gateway-and-mqtt:${project.version}</name>
<build> <build>
<tags>
<tag>${project.version}-${timestamp}</tag>
</tags>
<filter>@</filter> <filter>@</filter>
<cleanup>try</cleanup> <cleanup>try</cleanup>
<dockerFileDir>${project.basedir}/src/main/docker-opensync-gateway-and-mqtt</dockerFileDir> <dockerFileDir>${project.basedir}/src/main/docker-opensync-gateway-and-mqtt</dockerFileDir>

View File

@@ -1,6 +1,6 @@
FROM adoptopenjdk/openjdk13:alpine-jre FROM adoptopenjdk/openjdk13:alpine-jre
LABEL maintainer="TipWlan" LABEL maintainer="ConnectUs.ai as part of the Telecom Infrastructure Project"
LABEL version="1.0" LABEL version="1.0"
LABEL description="This image runs the mqtt broker (mosquitto) and \ LABEL description="This image runs the mqtt broker (mosquitto) and \
a statically configured OpenSync gateway." a statically configured OpenSync gateway."
@@ -26,14 +26,6 @@ COPY app/opensync/EquipmentExample.json /app/opensync/EquipmentExample.json
COPY app/opensync/ProfileAPExample.json /app/opensync/ProfileAPExample.json COPY app/opensync/ProfileAPExample.json /app/opensync/ProfileAPExample.json
COPY app/opensync/ProfileSsid.json /app/opensync/ProfileSsid.json COPY app/opensync/ProfileSsid.json /app/opensync/ProfileSsid.json
COPY app/opensync/LocationBuildingExample.json /app/opensync/LocationBuildingExample.json COPY app/opensync/LocationBuildingExample.json /app/opensync/LocationBuildingExample.json
COPY app/opensync/ProfileMetrics.json /app/opensync/ProfileMetrics.json
COPY app/opensync/ProfileRf.json /app/opensync/ProfileRf.json
COPY app/opensync/ProfileHotspot20.json /app/opensync/ProfileHotspot20.json
COPY app/opensync/ProfileOperator.json /app/opensync/ProfileOperator.json
COPY app/opensync/ProfileVenue.json /app/opensync/ProfileVenue.json
COPY app/opensync/ProfileIdProvider.json /app/opensync/ProfileIdProvider.json
COPY app/opensync/ProfileBonjour.json /app/opensync/ProfileBonjour.json
COPY app/commit.properties /app
VOLUME ["/app/logs", "/app/config"] VOLUME ["/app/logs", "/app/config"]

View File

@@ -1,4 +0,0 @@
#This is a dummy property file to be used when running docker locally
date=${date}
commitId=${commit.id}
projectVersion=${project.version}

View File

@@ -1,12 +1,12 @@
{ {
"model_type": "Equipment", "model_type": "Equipment",
"id": 1, "id": 51,
"customerId": 2, "customerId": 2,
"profileId": 8, "profileId": 5,
"locationId": 8, "locationId": 8,
"equipmentType": "AP", "equipmentType": "AP",
"inventoryId": "Open_AP_21P10C68818122", "inventoryId": "Test_Client_21P10C68818122",
"name": "Open_AP_21P10C68818122", "name": "Test_Client_21P10C68818122",
"details": { "details": {
"model_type": "ApElementConfiguration", "model_type": "ApElementConfiguration",
"equipmentModel": "EA8300-CA", "equipmentModel": "EA8300-CA",
@@ -21,7 +21,7 @@
"staticDnsIp1": null, "staticDnsIp1": null,
"staticDnsIp2": null, "staticDnsIp2": null,
"peerInfoList": [], "peerInfoList": [],
"deviceName": "Open_AP_21P10C68818122", "deviceName": "Default Device Name",
"locationData": null, "locationData": null,
"locallyConfiguredMgmtVlan": 0, "locallyConfiguredMgmtVlan": 0,
"locallyConfigured": false, "locallyConfigured": false,
@@ -32,246 +32,91 @@
"costSavingEventsEnabled": true, "costSavingEventsEnabled": true,
"forwardMode": "BRIDGE", "forwardMode": "BRIDGE",
"radioMap": { "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": { "is2dot4GHz": {
"model_type": "ElementRadioConfiguration", "model_type": "ElementRadioConfiguration",
"radioType": "is2dot4GHz", "radioType": "is2dot4GHz",
"channelNumber": 6, "channelNumber": 6,
"manualChannelNumber": 6, "manualChannelNumber": 6,
"backupChannelNumber": 11, "backupChannelNumber": 11,
"manualBackupChannelNumber": 11, "autoChannelSelection": false,
"channelBandwidth": "is20MHz",
"bannedChannels": [],
"allowedChannels": [],
"rxCellSizeDb": { "rxCellSizeDb": {
"model_type": "SourceSelectionValue", "model_type": "AutoOrManualValue",
"source": "profile", "auto": true,
"value": -90 "value": -90
}, },
"probeResponseThresholdDb": { "probeResponseThresholdDb": {
"model_type": "SourceSelectionValue", "model_type": "AutoOrManualValue",
"source": "profile", "auto": true,
"value": -90 "value": -90
}, },
"clientDisconnectThresholdDb": { "clientDisconnectThresholdDb": {
"model_type": "SourceSelectionValue", "model_type": "AutoOrManualValue",
"source": "profile", "auto": true,
"value": -90 "value": -90
}, },
"eirpTxPower": { "eirpTxPower": {
"model_type": "SourceSelectionValue", "model_type": "AutoOrManualValue",
"source": "profile", "auto": false,
"value": 18 "value": 32
}, },
"bestApEnabled": null,
"neighbouringListApConfig": {
"model_type": "NeighbouringAPListConfiguration",
"minSignal": -85,
"maxAps": 25
},
"minAutoCellSize": -80,
"perimeterDetectionEnabled": true, "perimeterDetectionEnabled": true,
"bestAPSteerType": "both", "bestAPSteerType": "both",
"deauthAttackDetection": null, "deauthAttackDetection": null,
"allowedChannelsPowerLevels": [ "allowedChannelsPowerLevels": [],
{ "activeChannel": 6
"model_type": "ChannelPowerLevel",
"channelNumber": 1,
"powerLevel": 18,
"dfs": false,
"channelWidth": 20
}, },
{ "is5GHzU": {
"model_type": "ChannelPowerLevel", "model_type": "ElementRadioConfiguration",
"channelNumber": 2, "radioType": "is5GHzU",
"powerLevel": 18, "channelNumber": 149,
"dfs": false, "manualChannelNumber": 149,
"channelWidth": 20 "backupChannelNumber": 154,
"autoChannelSelection": false,
"channelBandwidth": "is80MHz",
"bannedChannels": [],
"allowedChannels": [],
"rxCellSizeDb": {
"model_type": "AutoOrManualValue",
"auto": true,
"value": -90
}, },
{ "probeResponseThresholdDb": {
"model_type": "ChannelPowerLevel", "model_type": "AutoOrManualValue",
"channelNumber": 3, "auto": true,
"powerLevel": 18, "value": -90
"dfs": false,
"channelWidth": 20
}, },
{ "clientDisconnectThresholdDb": {
"model_type": "ChannelPowerLevel", "model_type": "AutoOrManualValue",
"channelNumber": 4, "auto": true,
"powerLevel": 18, "value": -90
"dfs": false,
"channelWidth": 20
}, },
{ "eirpTxPower": {
"model_type": "ChannelPowerLevel", "model_type": "AutoOrManualValue",
"channelNumber": 5, "auto": false,
"powerLevel": 18, "value": 32
"dfs": false,
"channelWidth": 20
}, },
{ "bestApEnabled": null,
"model_type": "ChannelPowerLevel", "neighbouringListApConfig": {
"channelNumber": 6, "model_type": "NeighbouringAPListConfiguration",
"powerLevel": 18, "minSignal": -85,
"dfs": false, "maxAps": 25
"channelWidth": 20
}, },
{ "minAutoCellSize": -80,
"model_type": "ChannelPowerLevel", "perimeterDetectionEnabled": true,
"channelNumber": 7, "bestAPSteerType": "both",
"powerLevel": 18, "deauthAttackDetection": null,
"dfs": false, "allowedChannelsPowerLevels": [],
"channelWidth": 20 "activeChannel": 149
},
{
"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": { "is5GHzL": {
"model_type": "ElementRadioConfiguration", "model_type": "ElementRadioConfiguration",
@@ -279,88 +124,42 @@
"channelNumber": 36, "channelNumber": 36,
"manualChannelNumber": 36, "manualChannelNumber": 36,
"backupChannelNumber": 44, "backupChannelNumber": 44,
"manualBackupChannelNumber": 44, "autoChannelSelection": false,
"channelBandwidth": "is80MHz",
"bannedChannels": [],
"allowedChannels": [],
"rxCellSizeDb": { "rxCellSizeDb": {
"model_type": "SourceSelectionValue", "model_type": "AutoOrManualValue",
"source": "profile", "auto": true,
"value": -90 "value": -90
}, },
"probeResponseThresholdDb": { "probeResponseThresholdDb": {
"model_type": "SourceSelectionValue", "model_type": "AutoOrManualValue",
"source": "profile", "auto": true,
"value": -90 "value": -90
}, },
"clientDisconnectThresholdDb": { "clientDisconnectThresholdDb": {
"model_type": "SourceSelectionValue", "model_type": "AutoOrManualValue",
"source": "profile", "auto": true,
"value": -90 "value": -90
}, },
"eirpTxPower": { "eirpTxPower": {
"model_type": "SourceSelectionValue", "model_type": "AutoOrManualValue",
"source": "profile", "auto": false,
"value": 18 "value": 32
}, },
"bestApEnabled": null,
"neighbouringListApConfig": {
"model_type": "NeighbouringAPListConfiguration",
"minSignal": -85,
"maxAps": 25
},
"minAutoCellSize": -80,
"perimeterDetectionEnabled": true, "perimeterDetectionEnabled": true,
"bestAPSteerType": "both", "bestAPSteerType": "both",
"deauthAttackDetection": null, "deauthAttackDetection": null,
"allowedChannelsPowerLevels": [ "allowedChannelsPowerLevels": [],
{ "activeChannel": 36
"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": { "advancedRadioMap": {
@@ -369,30 +168,39 @@
"radioType": "is2dot4GHz", "radioType": "is2dot4GHz",
"radioAdminState": "enabled", "radioAdminState": "enabled",
"fragmentationThresholdBytes": 2346, "fragmentationThresholdBytes": 2346,
"rtsCtsThreshold": 65535,
"autoChannelSelection": "disabled",
"radioMode": "modeN",
"mimoMode": "twoByTwo",
"wmmState": "enabled",
"uapsdState": "enabled", "uapsdState": "enabled",
"maxNumClients": 100,
"stationIsolation": "disabled", "stationIsolation": "disabled",
"multicastRate": { "multicastRate": "auto",
"model_type": "SourceSelectionMulticast", "managementRate": "auto",
"source": "profile", "activeScanSettings": {
"value": "auto" "model_type": "ActiveScanSettings",
"enabled": true,
"scanFrequencySeconds": 10,
"scanDurationMillis": 65
}, },
"managementRate": { "channelHopSettings": {
"model_type": "SourceSelectionManagement", "model_type": "ChannelHopSettings",
"source": "profile", "noiseFloorThresholdInDB": -75,
"value": "auto" "noiseFloorThresholdTimeInSeconds": 180,
"nonWifiThresholdInPercentage": 50,
"nonWifiThresholdTimeInSeconds": 180,
"obssHopMode": "NON_WIFI"
}, },
"bestApSettings": { "bestApSettings": {
"model_type": "SourceSelectionSteering",
"source": "manual",
"value": {
"model_type": "RadioBestApSettings", "model_type": "RadioBestApSettings",
"mlComputed": true, "mlComputed": true,
"dropInSnrPercentage": 20, "dropInSnrPercentage": 20,
"minLoadFactor": 50 "minLoadFactor": 50
}
}, },
"forceScanDuringVoice": "disabled",
"legacyBSSRate": "enabled", "legacyBSSRate": "enabled",
"dtimPeriod": 2, "beaconInterval": 100,
"deauthAttackDetection": null "deauthAttackDetection": null
}, },
"is5GHzU": { "is5GHzU": {
@@ -400,30 +208,39 @@
"radioType": "is5GHzU", "radioType": "is5GHzU",
"radioAdminState": "enabled", "radioAdminState": "enabled",
"fragmentationThresholdBytes": 2346, "fragmentationThresholdBytes": 2346,
"rtsCtsThreshold": 65535,
"autoChannelSelection": "disabled",
"radioMode": "modeAC",
"mimoMode": "twoByTwo",
"wmmState": "enabled",
"uapsdState": "enabled", "uapsdState": "enabled",
"maxNumClients": 100,
"stationIsolation": "disabled", "stationIsolation": "disabled",
"multicastRate": { "multicastRate": "auto",
"model_type": "SourceSelectionMulticast", "managementRate": "auto",
"source": "profile", "activeScanSettings": {
"value": "auto" "model_type": "ActiveScanSettings",
"enabled": true,
"scanFrequencySeconds": 10,
"scanDurationMillis": 65
}, },
"managementRate": { "channelHopSettings": {
"model_type": "SourceSelectionManagement", "model_type": "ChannelHopSettings",
"source": "profile", "noiseFloorThresholdInDB": -75,
"value": "auto" "noiseFloorThresholdTimeInSeconds": 180,
"nonWifiThresholdInPercentage": 50,
"nonWifiThresholdTimeInSeconds": 180,
"obssHopMode": "NON_WIFI"
}, },
"bestApSettings": { "bestApSettings": {
"model_type": "SourceSelectionSteering",
"source": "manual",
"value": {
"model_type": "RadioBestApSettings", "model_type": "RadioBestApSettings",
"mlComputed": true, "mlComputed": true,
"dropInSnrPercentage": 30, "dropInSnrPercentage": 30,
"minLoadFactor": 40 "minLoadFactor": 40
}
}, },
"forceScanDuringVoice": "disabled",
"legacyBSSRate": "enabled", "legacyBSSRate": "enabled",
"dtimPeriod": 2, "beaconInterval": 100,
"deauthAttackDetection": null "deauthAttackDetection": null
}, },
"is5GHzL": { "is5GHzL": {
@@ -431,42 +248,46 @@
"radioType": "is5GHzL", "radioType": "is5GHzL",
"radioAdminState": "enabled", "radioAdminState": "enabled",
"fragmentationThresholdBytes": 2346, "fragmentationThresholdBytes": 2346,
"rtsCtsThreshold": 65535,
"autoChannelSelection": "disabled",
"radioMode": "modeAC",
"mimoMode": "twoByTwo",
"wmmState": "enabled",
"uapsdState": "enabled", "uapsdState": "enabled",
"maxNumClients": 100,
"stationIsolation": "disabled", "stationIsolation": "disabled",
"multicastRate": { "multicastRate": "auto",
"model_type": "SourceSelectionMulticast", "managementRate": "auto",
"source": "profile", "activeScanSettings": {
"value": "auto" "model_type": "ActiveScanSettings",
"enabled": true,
"scanFrequencySeconds": 10,
"scanDurationMillis": 65
}, },
"managementRate": { "channelHopSettings": {
"model_type": "SourceSelectionManagement", "model_type": "ChannelHopSettings",
"source": "profile", "noiseFloorThresholdInDB": -75,
"value": "auto" "noiseFloorThresholdTimeInSeconds": 180,
"nonWifiThresholdInPercentage": 50,
"nonWifiThresholdTimeInSeconds": 180,
"obssHopMode": "NON_WIFI"
}, },
"bestApSettings": { "bestApSettings": {
"model_type": "SourceSelectionSteering",
"source": "manual",
"value": {
"model_type": "RadioBestApSettings", "model_type": "RadioBestApSettings",
"mlComputed": true, "mlComputed": true,
"dropInSnrPercentage": 30, "dropInSnrPercentage": 30,
"minLoadFactor": 40 "minLoadFactor": 40
}
}, },
"forceScanDuringVoice": "disabled",
"legacyBSSRate": "enabled", "legacyBSSRate": "enabled",
"dtimPeriod": 2, "beaconInterval": 100,
"deauthAttackDetection": null "deauthAttackDetection": null
} }
} }
}, },
"latitude": null, "latitude": null,
"longitude": null, "longitude": null,
"baseMacAddress": {
"model_type": "MacAddress",
"address": "JPWi7y5T",
"addressAsString": "24:f5:a2:ef:2e:53"
},
"serial": "21P10C68818122", "serial": "21P10C68818122",
"createdTimestamp": 1612285288821, "createdTimestamp": 1591653239821,
"lastModifiedTimestamp": 1612285293922 "lastModifiedTimestamp": 1591653241398
} }

View File

@@ -1,61 +1,67 @@
{ {
"model_type": "Location", "model_type" : "Location",
"id": 8, "id" : 8,
"parentId": 0, "parentId" : 0,
"locationType": "SITE", "locationType" : "SITE",
"customerId": 2, "customerId" : 2,
"name": "Ottawa", "name" : "Ottawa",
"details": { "details" : {
"model_type": "LocationDetails", "model_type" : "LocationDetails",
"countryCode": "CA", "countryCode" : "ca",
"dailyActivityDetails": { "maintenanceWindow" : null,
"SUNDAY": { "rrmEnabled" : true,
"model_type": "LocationActivityDetails", "dailyRebalancingDetails" : {
"busyTime": "13:30", "SUNDAY" : {
"quietTime": "3:00", "model_type" : "LocationActivityDetails",
"timezone": "US/Eastern" "busyTime" : "13:30",
"quietTime" : "3:30",
"timezone" : "US/Eastern",
"lastBusySnapshot" : 0
}, },
"MONDAY": { "MONDAY" : {
"model_type": "LocationActivityDetails", "model_type" : "LocationActivityDetails",
"busyTime": "13:30", "busyTime" : "13:30",
"quietTime": "3:00", "quietTime" : "3:30",
"timezone": "US/Eastern" "timezone" : "US/Eastern",
"lastBusySnapshot" : 0
}, },
"TUESDAY": { "TUESDAY" : {
"model_type": "LocationActivityDetails", "model_type" : "LocationActivityDetails",
"busyTime": "13:30", "busyTime" : "13:30",
"quietTime": "3:00", "quietTime" : "3:30",
"timezone": "US/Eastern" "timezone" : "US/Eastern",
"lastBusySnapshot" : 0
}, },
"WEDNESDAY": { "WEDNESDAY" : {
"model_type": "LocationActivityDetails", "model_type" : "LocationActivityDetails",
"busyTime": "13:30", "busyTime" : "13:30",
"quietTime": "3:00", "quietTime" : "3:30",
"timezone": "US/Eastern" "timezone" : "US/Eastern",
"lastBusySnapshot" : 0
}, },
"THURSDAY": { "THURSDAY" : {
"model_type": "LocationActivityDetails", "model_type" : "LocationActivityDetails",
"busyTime": "13:30", "busyTime" : "13:30",
"quietTime": "3:00", "quietTime" : "3:30",
"timezone": "US/Eastern" "timezone" : "US/Eastern",
"lastBusySnapshot" : 0
}, },
"FRIDAY": { "FRIDAY" : {
"model_type": "LocationActivityDetails", "model_type" : "LocationActivityDetails",
"busyTime": "13:30", "busyTime" : "13:30",
"quietTime": "3:00", "quietTime" : "3:30",
"timezone": "US/Eastern" "timezone" : "US/Eastern",
"lastBusySnapshot" : 0
}, },
"SATURDAY": { "SATURDAY" : {
"model_type": "LocationActivityDetails", "model_type" : "LocationActivityDetails",
"busyTime": "13:30", "busyTime" : "13:30",
"quietTime": "3:00", "quietTime" : "3:30",
"timezone": "US/Eastern" "timezone" : "US/Eastern",
"lastBusySnapshot" : 0
}
} }
}, },
"maintenanceWindow": null, "createdTimestamp" : 1590607043540,
"rrmEnabled": true, "lastModifiedTimestamp" : 1590607043540
"timezone": "US/Eastern"
},
"createdTimestamp": 1612285243534,
"lastModifiedTimestamp": 1612285243534
} }

View File

@@ -10,48 +10,55 @@
"countryCode" : "usa", "countryCode" : "usa",
"maintenanceWindow" : null, "maintenanceWindow" : null,
"rrmEnabled" : true, "rrmEnabled" : true,
"dailyActivityDetails" : { "dailyRebalancingDetails" : {
"SUNDAY" : { "SUNDAY" : {
"model_type" : "LocationActivityDetails", "model_type" : "LocationActivityDetails",
"busyTime" : "13:30", "busyTime" : "13:30",
"quietTime" : "3:30", "quietTime" : "3:30",
"timezone" : "US/Eastern" "timezone" : "US/Eastern",
"lastBusySnapshot" : 0
}, },
"MONDAY" : { "MONDAY" : {
"model_type" : "LocationActivityDetails", "model_type" : "LocationActivityDetails",
"busyTime" : "13:30", "busyTime" : "13:30",
"quietTime" : "3:30", "quietTime" : "3:30",
"timezone" : "US/Eastern" "timezone" : "US/Eastern",
"lastBusySnapshot" : 0
}, },
"TUESDAY" : { "TUESDAY" : {
"model_type" : "LocationActivityDetails", "model_type" : "LocationActivityDetails",
"busyTime" : "13:30", "busyTime" : "13:30",
"quietTime" : "3:30", "quietTime" : "3:30",
"timezone" : "US/Eastern" "timezone" : "US/Eastern",
"lastBusySnapshot" : 0
}, },
"WEDNESDAY" : { "WEDNESDAY" : {
"model_type" : "LocationActivityDetails", "model_type" : "LocationActivityDetails",
"busyTime" : "13:30", "busyTime" : "13:30",
"quietTime" : "3:30", "quietTime" : "3:30",
"timezone" : "US/Eastern" "timezone" : "US/Eastern",
"lastBusySnapshot" : 0
}, },
"THURSDAY" : { "THURSDAY" : {
"model_type" : "LocationActivityDetails", "model_type" : "LocationActivityDetails",
"busyTime" : "13:30", "busyTime" : "13:30",
"quietTime" : "3:30", "quietTime" : "3:30",
"timezone" : "US/Eastern" "timezone" : "US/Eastern",
"lastBusySnapshot" : 0
}, },
"FRIDAY" : { "FRIDAY" : {
"model_type" : "LocationActivityDetails", "model_type" : "LocationActivityDetails",
"busyTime" : "13:30", "busyTime" : "13:30",
"quietTime" : "3:30", "quietTime" : "3:30",
"timezone" : "US/Eastern" "timezone" : "US/Eastern",
"lastBusySnapshot" : 0
}, },
"SATURDAY" : { "SATURDAY" : {
"model_type" : "LocationActivityDetails", "model_type" : "LocationActivityDetails",
"busyTime" : "13:30", "busyTime" : "13:30",
"quietTime" : "3:30", "quietTime" : "3:30",
"timezone" : "US/Eastern" "timezone" : "US/Eastern",
"lastBusySnapshot" : 0
} }
} }
}, },

View File

@@ -1,9 +1,9 @@
{ {
"model_type": "Profile", "model_type": "Profile",
"id": 8, "id": 5,
"customerId": 2, "customerId": 2,
"profileType": "equipment_ap", "profileType": "equipment_ap",
"name": "ApProfile-3-radios", "name": "DefaultApProfile",
"details": { "details": {
"model_type": "ApNetworkConfiguration", "model_type": "ApNetworkConfiguration",
"networkConfigVersion": "AP-1", "networkConfigVersion": "AP-1",
@@ -21,6 +21,11 @@
"ledControlEnabled": true, "ledControlEnabled": true,
"equipmentDiscovery": false, "equipmentDiscovery": false,
"radioMap": { "radioMap": {
"is5GHz": {
"model_type": "RadioProfileConfiguration",
"bestApEnabled": true,
"bestAPSteerType": "both"
},
"is2dot4GHz": { "is2dot4GHz": {
"model_type": "RadioProfileConfiguration", "model_type": "RadioProfileConfiguration",
"bestApEnabled": true, "bestApEnabled": true,
@@ -37,22 +42,13 @@
"bestAPSteerType": "both" "bestAPSteerType": "both"
} }
}, },
"greTunnelConfigurations": [
{
"model_type": "GreTunnelConfiguration",
"greTunnelName": "gre1",
"greRemoteInetAddr": "192.168.1.101",
"vlanIdsInGreTunnel": [
100
]
}
],
"profileType": "equipment_ap" "profileType": "equipment_ap"
}, },
"createdTimestamp": 1612285248925, "createdTimestamp": 1591653239947,
"lastModifiedTimestamp": 1612285628377, "lastModifiedTimestamp": 1591654336724,
"childProfileIds": [ "childProfileIds": [
2, 6,
4 7,
8
] ]
} }

View File

@@ -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": []
}
]

View File

@@ -1,58 +0,0 @@
[
{
"model_type": "Profile",
"id": 5,
"customerId": 2,
"profileType": "captive_portal",
"name": "Captive-portal",
"details": {
"model_type": "CaptivePortalConfiguration",
"name": "Default",
"browserTitle": "Captive-portal",
"headerContent": "Captive Portal",
"userAcceptancePolicy": "Please agree to the following terms for using this network:",
"successPageMarkdownText": "You are now authorized and connected to the network.",
"redirectURL": "https://www.google.com",
"externalCaptivePortalURL": null,
"sessionTimeoutInMinutes": 10,
"logoFile": {
"model_type": "ManagedFileInfo",
"md5checksum": null,
"lastModifiedTimestamp": null,
"apExportUrl": "/filestore/tip-logo-mobile",
"fileCategory": "CaptivePortalLogo",
"fileType": "PNG",
"altSlot": false
},
"backgroundFile": {
"model_type": "ManagedFileInfo",
"md5checksum": null,
"lastModifiedTimestamp": null,
"apExportUrl": "/filestore/tip-logo",
"fileCategory": "CaptivePortalBackground",
"fileType": "PNG",
"altSlot": false
},
"walledGardenAllowlist": [
],
"usernamePasswordFile": null,
"authenticationType": "guest",
"radiusAuthMethod": "CHAP",
"maxUsersWithSameCredentials": 3,
"externalPolicyFile": null,
"backgroundPosition": "left_top",
"backgroundRepeat": "no_repeat",
"radiusServiceId": 0,
"expiryType": "time_limited",
"userList": [
],
"macAllowList": [
],
"profileType": "captive_portal"
},
"createdTimestamp": 1611857459118,
"lastModifiedTimestamp": 1611857459118,
"childProfileIds": [
]
}
]

View File

@@ -1,71 +0,0 @@
[
{
"model_type": "Profile",
"id": 37,
"customerId": 2,
"profileType": "passpoint",
"name": "hotspot20-profile-2021-01-21T21:28:59.171Z",
"details": {
"model_type": "PasspointProfile",
"enableInterworkingAndHs20": true,
"hessid": null,
"passpointAccessNetworkType": "free_public_network",
"passpointNetworkAuthenticationType": "acceptance_of_terms_and_conditions",
"additionalStepsRequiredForAccess": 0,
"deauthRequestTimeout": 0,
"operatingClass": 0,
"termsAndConditionsFile": {
"model_type": "ManagedFileInfo",
"md5checksum": null,
"lastModifiedTimestamp": null,
"apExportUrl": "https://localhost:9091/filestore/termsAndConditions",
"fileCategory": "ExternalPolicyConfiguration",
"fileType": "TEXT",
"altSlot": false
},
"whitelistDomain": null,
"emergencyServicesReachable": true,
"unauthenticatedEmergencyServiceAccessible": false,
"internetConnectivity": true,
"connectionCapabilitySet": [
{
"model_type": "PasspointConnectionCapability",
"connectionCapabilitiesPortNumber": 8888,
"connectionCapabilitiesIpProtocol": "TCP",
"connectionCapabilitiesStatus": "open"
}
],
"ipAddressTypeAvailability": "public_IPv4_address_available",
"qosMapSetConfiguration": null,
"apGeospatialLocation": null,
"apCivicLocation": null,
"apPublicLocationIdUri": null,
"gasAddr3Behaviour": "p2pSpecWorkaroundFromRequest",
"anqpDomainId": 1234,
"disableDownstreamGroupAddressedForwarding": false,
"enable2pt4GHz": true,
"enable5GHz": true,
"associatedAccessSsidProfileIds": [
32
],
"osuSsidProfileId": 31,
"passpointOperatorProfileId": 34,
"passpointVenueProfileId": 33,
"passpointOsuProviderProfileIds": [
35,
36
],
"accessNetworkType": "free_public_network",
"networkAuthenticationType": "acceptance_of_terms_and_conditions",
"profileType": "passpoint"
},
"createdTimestamp": 0,
"lastModifiedTimestamp": 1611264539331,
"childProfileIds": [
33,
34,
35,
36
]
}
]

View File

@@ -1,263 +0,0 @@
[
{
"model_type": "Profile",
"id": 35,
"customerId": 2,
"profileType": "passpoint_osu_id_provider",
"name": "provider1-profile-2021-01-21T21:28:59.057Z",
"details": {
"model_type": "PasspointOsuProviderProfile",
"mccMncList": [
{
"model_type": "PasspointMccMnc",
"mcc": 302,
"mnc": 720,
"iso": "ca",
"country": "Canada",
"countryCode": 1,
"network": "Rogers AT&T Wireless",
"mccMncPairing": "302,720"
}
],
"naiRealmList": [
{
"model_type": "PasspointNaiRealmInformation",
"naiRealms": [
"rogers.com"
],
"encoding": 0,
"eapMethods": [
"EAP-TTLS with username/password",
"EAP-TLS with certificate"
],
"eapMap": {
"EAP-TTLS with username/password": [
"Credential Type:username/password",
"Non-EAP Inner Authentication Type:MSCHAPV2"
],
"EAP-TLS with certificate": [
"Credential Type:Certificate"
]
}
}
],
"osuIconList": [
{
"model_type": "PasspointOsuIcon",
"iconWidth": 32,
"iconHeight": 32,
"languageCode": "eng",
"iconLocale": "en_CA",
"iconName": "icon32eng",
"filePath": "/tmp/icon32eng.png",
"imageUrl": "https://localhost:9096/icon32eng.png",
"hs20IconString": "32:32:eng:image/png:icon32eng:/tmp/icon32eng.png"
},
{
"model_type": "PasspointOsuIcon",
"iconWidth": 32,
"iconHeight": 32,
"languageCode": "fra",
"iconLocale": "fr_CA",
"iconName": "icon32fra",
"filePath": "/tmp/icon32fra.png",
"imageUrl": "https://localhost:9096/icon32fra.png",
"hs20IconString": "32:32:fra:image/png:icon32fra:/tmp/icon32fra.png"
},
{
"model_type": "PasspointOsuIcon",
"iconWidth": 32,
"iconHeight": 32,
"languageCode": "eng",
"iconLocale": "en_US",
"iconName": "icon32usa",
"filePath": "/tmp/icon32usa.png",
"imageUrl": "https://localhost:9096/icon32usa.png",
"hs20IconString": "32:32:eng:image/png:icon32usa:/tmp/icon32usa.png"
}
],
"osuServerUri": "https://example.com/osu/rogers",
"osuFriendlyName": [
{
"model_type": "PasspointDuple",
"locale": "eng",
"dupleIso3Language": "eng",
"dupleName": "Example provider rogers",
"defaultDupleSeparator": ":",
"asDuple": "eng:Example provider rogers"
},
{
"model_type": "PasspointDuple",
"locale": "fra",
"dupleIso3Language": "fra",
"dupleName": "Exemple de fournisseur rogers",
"defaultDupleSeparator": ":",
"asDuple": "fra:Exemple de fournisseur rogers"
}
],
"osuNaiStandalone": "anonymous@rogers.com",
"osuNaiShared": "anonymous@rogers.com",
"osuMethodList": [
1,
0
],
"osuServiceDescription": [
{
"model_type": "PasspointDuple",
"locale": "eng",
"dupleIso3Language": "eng",
"dupleName": "Example services rogers",
"defaultDupleSeparator": ":",
"asDuple": "eng:Example services rogers"
},
{
"model_type": "PasspointDuple",
"locale": "fra",
"dupleIso3Language": "fra",
"dupleName": "Exemples de services rogers",
"defaultDupleSeparator": ":",
"asDuple": "fra:Exemples de services rogers"
}
],
"roamingOi": [
"BAA2D00100",
"BAA2D00000"
],
"profileType": "passpoint_osu_id_provider"
},
"createdTimestamp": 1611264539070,
"lastModifiedTimestamp": 1611264539070,
"childProfileIds": []
},
{
"model_type": "Profile",
"id": 36,
"customerId": 2,
"profileType": "passpoint_osu_id_provider",
"name": "provider2-profile-2021-01-21T21:28:59.118Z",
"details": {
"model_type": "PasspointOsuProviderProfile",
"mccMncList": [
{
"model_type": "PasspointMccMnc",
"mcc": 302,
"mnc": 220,
"iso": "ca",
"country": "Canada",
"countryCode": 1,
"network": "Telus Mobility",
"mccMncPairing": "302,220"
}
],
"naiRealmList": [
{
"model_type": "PasspointNaiRealmInformation",
"naiRealms": [
"telus.com"
],
"encoding": 0,
"eapMethods": [
"EAP-TTLS with username/password",
"EAP-TLS with certificate"
],
"eapMap": {
"EAP-TTLS with username/password": [
"Credential Type:username/password",
"Non-EAP Inner Authentication Type:MSCHAPV2"
],
"EAP-TLS with certificate": [
"Credential Type:Certificate"
]
}
}
],
"osuIconList": [
{
"model_type": "PasspointOsuIcon",
"iconWidth": 32,
"iconHeight": 32,
"languageCode": "eng",
"iconLocale": "en_CA",
"iconName": "icon32eng",
"filePath": "/tmp/icon32eng.png",
"imageUrl": "https://localhost:9096/icon32eng.png",
"hs20IconString": "32:32:eng:image/png:icon32eng:/tmp/icon32eng.png"
},
{
"model_type": "PasspointOsuIcon",
"iconWidth": 32,
"iconHeight": 32,
"languageCode": "fra",
"iconLocale": "fr_CA",
"iconName": "icon32fra",
"filePath": "/tmp/icon32fra.png",
"imageUrl": "https://localhost:9096/icon32fra.png",
"hs20IconString": "32:32:fra:image/png:icon32fra:/tmp/icon32fra.png"
},
{
"model_type": "PasspointOsuIcon",
"iconWidth": 32,
"iconHeight": 32,
"languageCode": "eng",
"iconLocale": "en_US",
"iconName": "icon32usa",
"filePath": "/tmp/icon32usa.png",
"imageUrl": "https://localhost:9096/icon32usa.png",
"hs20IconString": "32:32:eng:image/png:icon32usa:/tmp/icon32usa.png"
}
],
"osuServerUri": "https://example.com/osu/telus",
"osuFriendlyName": [
{
"model_type": "PasspointDuple",
"locale": "eng",
"dupleIso3Language": "eng",
"dupleName": "Example provider telus",
"defaultDupleSeparator": ":",
"asDuple": "eng:Example provider telus"
},
{
"model_type": "PasspointDuple",
"locale": "fra",
"dupleIso3Language": "fra",
"dupleName": "Exemple de fournisseur telus",
"defaultDupleSeparator": ":",
"asDuple": "fra:Exemple de fournisseur telus"
}
],
"osuNaiStandalone": "anonymous@telus.com",
"osuNaiShared": "anonymous@telus.com",
"osuMethodList": [
1,
0
],
"osuServiceDescription": [
{
"model_type": "PasspointDuple",
"locale": "eng",
"dupleIso3Language": "eng",
"dupleName": "Example services telus",
"defaultDupleSeparator": ":",
"asDuple": "eng:Example services telus"
},
{
"model_type": "PasspointDuple",
"locale": "fra",
"dupleIso3Language": "fra",
"dupleName": "Exemples de services telus",
"defaultDupleSeparator": ":",
"asDuple": "fra:Exemples de services telus"
}
],
"roamingOi": [
"004096",
"005014",
"F4F5E8F5F4"
],
"profileType": "passpoint_osu_id_provider"
},
"createdTimestamp": 1611264539131,
"lastModifiedTimestamp": 1611264539131,
"childProfileIds": []
}
]

View File

@@ -1,299 +0,0 @@
[
{
"model_type": "Profile",
"id": 10,
"customerId": 2,
"profileType": "service_metrics_collection_config",
"name": "Metrics-Profile-3-Radios",
"details": {
"model_type": "ServiceMetricsCollectionConfigProfile",
"radioTypes": [
"is5GHzL",
"is2dot4GHz",
"is5GHzU"
],
"serviceMetricDataTypes": [
"ApNode",
"ApSsid",
"Client",
"Channel",
"Neighbour"
],
"metricConfigParameterMap": {
"ApNode": [
{
"model_type": "ServiceMetricSurveyConfigParameters",
"samplingInterval": 30,
"reportingIntervalSeconds": 120,
"channelSurveyType": "OFF_CHANNEL",
"scanIntervalMillis": 0,
"percentUtilizationThreshold": 10,
"delayMillisecondsThreshold": 600,
"radioType": "is5GHzL",
"serviceMetricDataType": "ApNode",
"statsReportFormat": "RAW"
},
{
"model_type": "ServiceMetricSurveyConfigParameters",
"samplingInterval": 30,
"reportingIntervalSeconds": 120,
"channelSurveyType": "OFF_CHANNEL",
"scanIntervalMillis": 0,
"percentUtilizationThreshold": 10,
"delayMillisecondsThreshold": 600,
"radioType": "is5GHzU",
"serviceMetricDataType": "ApNode",
"statsReportFormat": "RAW"
},
{
"model_type": "ServiceMetricSurveyConfigParameters",
"samplingInterval": 30,
"reportingIntervalSeconds": 120,
"channelSurveyType": "OFF_CHANNEL",
"scanIntervalMillis": 0,
"percentUtilizationThreshold": 10,
"delayMillisecondsThreshold": 600,
"radioType": "is2dot4GHz",
"serviceMetricDataType": "ApNode",
"statsReportFormat": "RAW"
},
{
"model_type": "ServiceMetricSurveyConfigParameters",
"samplingInterval": 30,
"reportingIntervalSeconds": 60,
"channelSurveyType": "ON_CHANNEL",
"scanIntervalMillis": 0,
"percentUtilizationThreshold": 10,
"delayMillisecondsThreshold": 600,
"radioType": "is5GHzU",
"serviceMetricDataType": "ApNode",
"statsReportFormat": "RAW"
},
{
"model_type": "ServiceMetricSurveyConfigParameters",
"samplingInterval": 30,
"reportingIntervalSeconds": 60,
"channelSurveyType": "ON_CHANNEL",
"scanIntervalMillis": 0,
"percentUtilizationThreshold": 10,
"delayMillisecondsThreshold": 600,
"radioType": "is2dot4GHz",
"serviceMetricDataType": "ApNode",
"statsReportFormat": "RAW"
},
{
"model_type": "ServiceMetricSurveyConfigParameters",
"samplingInterval": 30,
"reportingIntervalSeconds": 60,
"channelSurveyType": "ON_CHANNEL",
"scanIntervalMillis": 0,
"percentUtilizationThreshold": 10,
"delayMillisecondsThreshold": 600,
"radioType": "is5GHzL",
"serviceMetricDataType": "ApNode",
"statsReportFormat": "RAW"
}
],
"ApSsid": [
{
"model_type": "ServiceMetricRadioConfigParameters",
"samplingInterval": 30,
"reportingIntervalSeconds": 60,
"radioType": "is5GHzU",
"serviceMetricDataType": "ApSsid"
},
{
"model_type": "ServiceMetricRadioConfigParameters",
"samplingInterval": 30,
"reportingIntervalSeconds": 60,
"radioType": "is5GHzL",
"serviceMetricDataType": "ApSsid"
},
{
"model_type": "ServiceMetricRadioConfigParameters",
"samplingInterval": 30,
"reportingIntervalSeconds": 60,
"radioType": "is2dot4GHz",
"serviceMetricDataType": "ApSsid"
}
],
"Client": [
{
"model_type": "ServiceMetricRadioConfigParameters",
"samplingInterval": 30,
"reportingIntervalSeconds": 60,
"radioType": "is5GHzU",
"serviceMetricDataType": "Client"
},
{
"model_type": "ServiceMetricRadioConfigParameters",
"samplingInterval": 30,
"reportingIntervalSeconds": 60,
"radioType": "is5GHzL",
"serviceMetricDataType": "Client"
},
{
"model_type": "ServiceMetricRadioConfigParameters",
"samplingInterval": 30,
"reportingIntervalSeconds": 60,
"radioType": "is2dot4GHz",
"serviceMetricDataType": "Client"
}
],
"Channel": [
{
"model_type": "ServiceMetricSurveyConfigParameters",
"samplingInterval": 30,
"reportingIntervalSeconds": 120,
"channelSurveyType": "OFF_CHANNEL",
"scanIntervalMillis": 0,
"percentUtilizationThreshold": 10,
"delayMillisecondsThreshold": 600,
"radioType": "is5GHzL",
"serviceMetricDataType": "Channel",
"statsReportFormat": "RAW"
},
{
"model_type": "ServiceMetricSurveyConfigParameters",
"samplingInterval": 30,
"reportingIntervalSeconds": 120,
"channelSurveyType": "OFF_CHANNEL",
"scanIntervalMillis": 0,
"percentUtilizationThreshold": 10,
"delayMillisecondsThreshold": 600,
"radioType": "is5GHzU",
"serviceMetricDataType": "Channel",
"statsReportFormat": "RAW"
},
{
"model_type": "ServiceMetricSurveyConfigParameters",
"samplingInterval": 30,
"reportingIntervalSeconds": 120,
"channelSurveyType": "OFF_CHANNEL",
"scanIntervalMillis": 0,
"percentUtilizationThreshold": 10,
"delayMillisecondsThreshold": 600,
"radioType": "is2dot4GHz",
"serviceMetricDataType": "Channel",
"statsReportFormat": "RAW"
},
{
"model_type": "ServiceMetricSurveyConfigParameters",
"samplingInterval": 30,
"reportingIntervalSeconds": 60,
"channelSurveyType": "ON_CHANNEL",
"scanIntervalMillis": 0,
"percentUtilizationThreshold": 10,
"delayMillisecondsThreshold": 600,
"radioType": "is5GHzU",
"serviceMetricDataType": "Channel",
"statsReportFormat": "RAW"
},
{
"model_type": "ServiceMetricSurveyConfigParameters",
"samplingInterval": 30,
"reportingIntervalSeconds": 60,
"channelSurveyType": "ON_CHANNEL",
"scanIntervalMillis": 0,
"percentUtilizationThreshold": 10,
"delayMillisecondsThreshold": 600,
"radioType": "is2dot4GHz",
"serviceMetricDataType": "Channel",
"statsReportFormat": "RAW"
},
{
"model_type": "ServiceMetricSurveyConfigParameters",
"samplingInterval": 30,
"reportingIntervalSeconds": 60,
"channelSurveyType": "ON_CHANNEL",
"scanIntervalMillis": 0,
"percentUtilizationThreshold": 10,
"delayMillisecondsThreshold": 600,
"radioType": "is5GHzL",
"serviceMetricDataType": "Channel",
"statsReportFormat": "RAW"
}
],
"Neighbour": [
{
"model_type": "ServiceMetricSurveyConfigParameters",
"samplingInterval": 30,
"reportingIntervalSeconds": 120,
"channelSurveyType": "OFF_CHANNEL",
"scanIntervalMillis": 0,
"percentUtilizationThreshold": 10,
"delayMillisecondsThreshold": 600,
"radioType": "is5GHzU",
"serviceMetricDataType": "Neighbour",
"statsReportFormat": "RAW"
},
{
"model_type": "ServiceMetricSurveyConfigParameters",
"samplingInterval": 30,
"reportingIntervalSeconds": 60,
"channelSurveyType": "ON_CHANNEL",
"scanIntervalMillis": 0,
"percentUtilizationThreshold": 10,
"delayMillisecondsThreshold": 600,
"radioType": "is5GHzL",
"serviceMetricDataType": "Neighbour",
"statsReportFormat": "RAW"
},
{
"model_type": "ServiceMetricSurveyConfigParameters",
"samplingInterval": 30,
"reportingIntervalSeconds": 120,
"channelSurveyType": "OFF_CHANNEL",
"scanIntervalMillis": 0,
"percentUtilizationThreshold": 10,
"delayMillisecondsThreshold": 600,
"radioType": "is2dot4GHz",
"serviceMetricDataType": "Neighbour",
"statsReportFormat": "RAW"
},
{
"model_type": "ServiceMetricSurveyConfigParameters",
"samplingInterval": 30,
"reportingIntervalSeconds": 60,
"channelSurveyType": "ON_CHANNEL",
"scanIntervalMillis": 0,
"percentUtilizationThreshold": 10,
"delayMillisecondsThreshold": 600,
"radioType": "is5GHzU",
"serviceMetricDataType": "Neighbour",
"statsReportFormat": "RAW"
},
{
"model_type": "ServiceMetricSurveyConfigParameters",
"samplingInterval": 30,
"reportingIntervalSeconds": 120,
"channelSurveyType": "OFF_CHANNEL",
"scanIntervalMillis": 0,
"percentUtilizationThreshold": 10,
"delayMillisecondsThreshold": 600,
"radioType": "is5GHzL",
"serviceMetricDataType": "Neighbour",
"statsReportFormat": "RAW"
},
{
"model_type": "ServiceMetricSurveyConfigParameters",
"samplingInterval": 30,
"reportingIntervalSeconds": 60,
"channelSurveyType": "ON_CHANNEL",
"scanIntervalMillis": 0,
"percentUtilizationThreshold": 10,
"delayMillisecondsThreshold": 600,
"radioType": "is2dot4GHz",
"serviceMetricDataType": "Neighbour",
"statsReportFormat": "RAW"
}
]
},
"profileType": "service_metrics_collection_config"
},
"createdTimestamp": 1606778369931,
"lastModifiedTimestamp": 1606778369931,
"childProfileIds": [
]
}
]

View File

@@ -1,41 +0,0 @@
[
{
"model_type": "Profile",
"id": 34,
"customerId": 2,
"profileType": "passpoint_operator",
"name": "operator-profile-2021-01-21T21:28:58.994Z",
"details": {
"model_type": "PasspointOperatorProfile",
"serverOnlyAuthenticatedL2EncryptionNetwork": false,
"x509CertificateLocation": "/etc/ca.pem",
"operatorFriendlyName": [
{
"model_type": "PasspointDuple",
"locale": "fra",
"dupleIso3Language": "fra",
"dupleName": "Nom de l'opérateur convivial par défaut",
"defaultDupleSeparator": ":",
"asDuple": "fra:Nom de l'opérateur convivial par défaut"
},
{
"model_type": "PasspointDuple",
"locale": "eng",
"dupleIso3Language": "eng",
"dupleName": "Default friendly passpoint_operator name",
"defaultDupleSeparator": ":",
"asDuple": "eng:Default friendly passpoint_operator name"
}
],
"domainNameList": [
"bell.ca",
"telus.com",
"rogers.com"
],
"profileType": "passpoint_operator"
},
"createdTimestamp": 1611264539004,
"lastModifiedTimestamp": 1611264539004,
"childProfileIds": []
}
]

View File

@@ -1,24 +1,34 @@
[ [
{ {
"model_type": "Profile", "model_type": "Profile",
"id": 1, "id": 1,
"customerId": 2, "customerId": 2,
"profileType": "radius", "profileType": "radius",
"name": "Radius-Profile", "name": "RadiusProfileOttawa",
"details": { "details": {
"model_type": "RadiusProfile", "model_type": "RadiusProfile",
"primaryRadiusAuthServer": { "subnetConfiguration": null,
"serviceRegionMap": {
"Ottawa": {
"model_type": "RadiusServiceRegion",
"serverMap": {
"RadiusProfileOttawa": [
{
"model_type": "RadiusServer", "model_type": "RadiusServer",
"ipAddress": "192.168.0.1", "ipAddress": "localhost",
"secret": "testing123", "secret": "testing123",
"port": 1812, "authPort": 1812,
"timeout": null "timeout": null
}
]
},
"regionName": "Ottawa"
}
}, },
"profileType": "radius" "profileType": "radius"
}, },
"createdTimestamp": 1611262628767, "createdTimestamp": 1591653174195,
"lastModifiedTimestamp": 1611262628767, "lastModifiedTimestamp": 1591653174195,
"childProfileIds": [ "childProfileIds": []
] }
}
] ]

View File

@@ -1,204 +0,0 @@
{
"model_type": "Profile",
"id": 4,
"customerId": 2,
"profileType": "rf",
"name": "TipWlan-rf",
"details": {
"model_type": "RfConfiguration",
"rfConfigMap": {
"is5GHz": {
"model_type": "RfElementConfiguration",
"radioType": "is5GHz",
"radioMode": "modeAC",
"rf": "TipWlan-rf",
"beaconInterval": 100,
"forceScanDuringVoice": "disabled",
"rtsCtsThreshold": 65535,
"channelBandwidth": "is80MHz",
"mimoMode": "twoByTwo",
"maxNumClients": 100,
"autoChannelSelection": false,
"activeScanSettings": {
"model_type": "ActiveScanSettings",
"enabled": true,
"scanFrequencySeconds": 10,
"scanDurationMillis": 65
},
"neighbouringListApConfig": {
"model_type": "NeighbouringAPListConfiguration",
"minSignal": -85,
"maxAps": 25
},
"minAutoCellSize": -65,
"perimeterDetectionEnabled": true,
"channelHopSettings": {
"model_type": "ChannelHopSettings",
"noiseFloorThresholdInDB": -75,
"noiseFloorThresholdTimeInSeconds": 180,
"nonWifiThresholdInPercentage": 50,
"nonWifiThresholdTimeInSeconds": 180,
"obssHopMode": "NON_WIFI"
},
"bestApEnabled": null,
"multicastRate": "auto",
"managementRate": "auto",
"rxCellSizeDb": -90,
"probeResponseThresholdDb": -90,
"clientDisconnectThresholdDb": -90,
"eirpTxPower": 18,
"bestApSettings": {
"model_type": "RadioBestApSettings",
"mlComputed": true,
"dropInSnrPercentage": 30,
"minLoadFactor": 40
}
},
"is2dot4GHz": {
"model_type": "RfElementConfiguration",
"radioType": "is2dot4GHz",
"radioMode": "modeN",
"rf": "TipWlan-rf",
"beaconInterval": 100,
"forceScanDuringVoice": "disabled",
"rtsCtsThreshold": 65535,
"channelBandwidth": "is20MHz",
"mimoMode": "twoByTwo",
"maxNumClients": 100,
"autoChannelSelection": false,
"activeScanSettings": {
"model_type": "ActiveScanSettings",
"enabled": true,
"scanFrequencySeconds": 10,
"scanDurationMillis": 65
},
"neighbouringListApConfig": {
"model_type": "NeighbouringAPListConfiguration",
"minSignal": -85,
"maxAps": 25
},
"minAutoCellSize": -65,
"perimeterDetectionEnabled": true,
"channelHopSettings": {
"model_type": "ChannelHopSettings",
"noiseFloorThresholdInDB": -75,
"noiseFloorThresholdTimeInSeconds": 180,
"nonWifiThresholdInPercentage": 50,
"nonWifiThresholdTimeInSeconds": 180,
"obssHopMode": "NON_WIFI"
},
"bestApEnabled": null,
"multicastRate": "auto",
"managementRate": "auto",
"rxCellSizeDb": -90,
"probeResponseThresholdDb": -90,
"clientDisconnectThresholdDb": -90,
"eirpTxPower": 18,
"bestApSettings": {
"model_type": "RadioBestApSettings",
"mlComputed": true,
"dropInSnrPercentage": 20,
"minLoadFactor": 50
}
},
"is5GHzU": {
"model_type": "RfElementConfiguration",
"radioType": "is5GHzU",
"radioMode": "modeAC",
"rf": "TipWlan-rf",
"beaconInterval": 100,
"forceScanDuringVoice": "disabled",
"rtsCtsThreshold": 65535,
"channelBandwidth": "is80MHz",
"mimoMode": "twoByTwo",
"maxNumClients": 100,
"autoChannelSelection": false,
"activeScanSettings": {
"model_type": "ActiveScanSettings",
"enabled": true,
"scanFrequencySeconds": 10,
"scanDurationMillis": 65
},
"neighbouringListApConfig": {
"model_type": "NeighbouringAPListConfiguration",
"minSignal": -85,
"maxAps": 25
},
"minAutoCellSize": -65,
"perimeterDetectionEnabled": true,
"channelHopSettings": {
"model_type": "ChannelHopSettings",
"noiseFloorThresholdInDB": -75,
"noiseFloorThresholdTimeInSeconds": 180,
"nonWifiThresholdInPercentage": 50,
"nonWifiThresholdTimeInSeconds": 180,
"obssHopMode": "NON_WIFI"
},
"bestApEnabled": null,
"multicastRate": "auto",
"managementRate": "auto",
"rxCellSizeDb": -90,
"probeResponseThresholdDb": -90,
"clientDisconnectThresholdDb": -90,
"eirpTxPower": 18,
"bestApSettings": {
"model_type": "RadioBestApSettings",
"mlComputed": true,
"dropInSnrPercentage": 30,
"minLoadFactor": 40
}
},
"is5GHzL": {
"model_type": "RfElementConfiguration",
"radioType": "is5GHzL",
"radioMode": "modeAC",
"rf": "TipWlan-rf",
"beaconInterval": 100,
"forceScanDuringVoice": "disabled",
"rtsCtsThreshold": 65535,
"channelBandwidth": "is80MHz",
"mimoMode": "twoByTwo",
"maxNumClients": 100,
"autoChannelSelection": false,
"activeScanSettings": {
"model_type": "ActiveScanSettings",
"enabled": true,
"scanFrequencySeconds": 10,
"scanDurationMillis": 65
},
"neighbouringListApConfig": {
"model_type": "NeighbouringAPListConfiguration",
"minSignal": -85,
"maxAps": 25
},
"minAutoCellSize": -65,
"perimeterDetectionEnabled": true,
"channelHopSettings": {
"model_type": "ChannelHopSettings",
"noiseFloorThresholdInDB": -75,
"noiseFloorThresholdTimeInSeconds": 180,
"nonWifiThresholdInPercentage": 50,
"nonWifiThresholdTimeInSeconds": 180,
"obssHopMode": "NON_WIFI"
},
"bestApEnabled": null,
"multicastRate": "auto",
"managementRate": "auto",
"rxCellSizeDb": -90,
"probeResponseThresholdDb": -90,
"clientDisconnectThresholdDb": -90,
"eirpTxPower": 18,
"bestApSettings": {
"model_type": "RadioBestApSettings",
"mlComputed": true,
"dropInSnrPercentage": 30,
"minLoadFactor": 40
}
}
},
"profileType": "rf"
},
"createdTimestamp": 1612285248650,
"lastModifiedTimestamp": 1612285248650,
"childProfileIds": []
}

View File

@@ -1,35 +1,30 @@
[ [
{ {
"model_type": "Profile", "model_type": "Profile",
"id": 2, "id": 6,
"customerId": 2, "customerId": 2,
"profileType": "ssid", "profileType": "ssid",
"name": "TipWlan-cloud-3-radios", "name": "DefaultSsid-2g",
"details": { "details": {
"model_type": "SsidConfiguration", "model_type": "SsidConfiguration",
"ssid": "TipWlan-cloud-3-radios", "ssid": "Default-SSID-2g",
"appliedRadios": [ "appliedRadios": [
"is5GHzU", "is2dot4GHz"
"is2dot4GHz",
"is5GHzL"
], ],
"ssidAdminState": "enabled", "ssidAdminState": "enabled",
"secureMode": "wpa2OnlyPSK", "secureMode": "wpa2PSK",
"vlanId": 1, "vlanId": 1,
"keyStr": "openwifi", "keyStr": "12345678",
"broadcastSsid": "enabled", "broadcastSsid": "enabled",
"keyRefresh": 0, "keyRefresh": 0,
"noLocalSubnets": false, "noLocalSubnets": false,
"radiusServiceId": 0, "radiusServiceName": null,
"radiusAcountingServiceInterval": 60,
"captivePortalId": null, "captivePortalId": null,
"bandwidthLimitDown": 0, "bandwidthLimitDown": 0,
"bandwidthLimitUp": 0, "bandwidthLimitUp": 0,
"clientBandwidthLimitDown": 0,
"clientBandwidthLimitUp": 0,
"videoTrafficOnly": false, "videoTrafficOnly": false,
"radioBasedConfigs": { "radioBasedConfigs": {
"is5GHzU": { "is5GHz": {
"model_type": "RadioBasedSsidConfiguration", "model_type": "RadioBasedSsidConfiguration",
"enable80211r": null, "enable80211r": null,
"enable80211k": null, "enable80211k": null,
@@ -41,7 +36,7 @@
"enable80211k": null, "enable80211k": null,
"enable80211v": null "enable80211v": null
}, },
"is5GHz": { "is5GHzU": {
"model_type": "RadioBasedSsidConfiguration", "model_type": "RadioBasedSsidConfiguration",
"enable80211r": null, "enable80211r": null,
"enable80211k": null, "enable80211k": null,
@@ -57,19 +52,133 @@
"bonjourGatewayProfileId": null, "bonjourGatewayProfileId": null,
"enable80211w": null, "enable80211w": null,
"wepConfig": null, "wepConfig": null,
"forwardMode": "BRIDGE", "forwardMode": null,
"profileType": "ssid"
},
"createdTimestamp": 1591653239983,
"lastModifiedTimestamp": 1591653239983,
"childProfileIds": []
},
{
"model_type": "Profile",
"id": 7,
"customerId": 2,
"profileType": "ssid", "profileType": "ssid",
"radiusClientConfiguration": { "name": "DefaultSsid-5gl",
"model_type": "RadiusNasConfiguration", "details": {
"nasClientId": "DEFAULT", "model_type": "SsidConfiguration",
"nasClientIp": "WAN_IP", "ssid": "Default-SSID-5gl",
"userDefinedNasId": null, "appliedRadios": [
"userDefinedNasIp": null, "is5GHzL"
"operatorId": null ],
"ssidAdminState": "enabled",
"secureMode": "wpaEAP",
"vlanId": 1,
"keyStr": "12345678",
"broadcastSsid": "enabled",
"keyRefresh": 0,
"noLocalSubnets": false,
"radiusServiceName": "RadiusProfileOttawa",
"captivePortalId": null,
"bandwidthLimitDown": 0,
"bandwidthLimitUp": 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
} }
}, },
"createdTimestamp": 1612285248638, "bonjourGatewayProfileId": null,
"lastModifiedTimestamp": 1612285248638, "enable80211w": null,
"wepConfig": null,
"forwardMode": null,
"profileType": "ssid"
},
"createdTimestamp": 1591653240017,
"lastModifiedTimestamp": 1591654215374,
"childProfileIds": [
1
]
},
{
"model_type": "Profile",
"id": 8,
"customerId": 2,
"profileType": "ssid",
"name": "DefaultSsid-5gu",
"details": {
"model_type": "SsidConfiguration",
"ssid": "Default-SSID-5gu",
"appliedRadios": [
"is5GHzU"
],
"ssidAdminState": "enabled",
"secureMode": "wpa2PSK",
"vlanId": 1,
"keyStr": "12345678",
"broadcastSsid": "enabled",
"keyRefresh": 0,
"noLocalSubnets": false,
"radiusServiceName": null,
"captivePortalId": null,
"bandwidthLimitDown": 0,
"bandwidthLimitUp": 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
}
},
"bonjourGatewayProfileId": null,
"enable80211w": null,
"wepConfig": null,
"forwardMode": null,
"profileType": "ssid"
},
"createdTimestamp": 1591654301763,
"lastModifiedTimestamp": 1591654301763,
"childProfileIds": [] "childProfileIds": []
} }
] ]

View File

@@ -1,42 +0,0 @@
[
{
"model_type": "Profile",
"id": 33,
"customerId": 2,
"profileType": "passpoint_venue",
"name": "venue-profile-2021-01-21T21:28:58.934Z",
"details": {
"model_type": "PasspointVenueProfile",
"venueNameSet": [
{
"model_type": "PasspointVenueName",
"locale": "fra",
"dupleIso3Language": "fra",
"dupleName": "Exemple de lieu",
"defaultDupleSeparator": ":",
"venueUrl": "http://www.example.com/info-fra",
"asDuple": "fra:Exemple de lieu"
},
{
"model_type": "PasspointVenueName",
"locale": "eng",
"dupleIso3Language": "eng",
"dupleName": "Example passpoint_venue",
"defaultDupleSeparator": ":",
"venueUrl": "http://www.example.com/info-eng",
"asDuple": "eng:Example passpoint_venue"
}
],
"venueTypeAssignment": {
"model_type": "PasspointVenueTypeAssignment",
"venueDescription": "Research and Development Facility",
"venueGroupId": 2,
"venueTypeId": 8
},
"profileType": "passpoint_venue"
},
"createdTimestamp": 1611264538947,
"lastModifiedTimestamp": 1611264538947,
"childProfileIds": []
}
]

View File

@@ -64,6 +64,7 @@
<logger name="org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainer" level="INFO"/> <logger name="org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainer" level="INFO"/>
<logger name="com.telecominfraproject.wlan" level="INFO"/> <logger name="com.telecominfraproject.wlan" level="INFO"/>
<logger name="ai.connectus" level="INFO"/>
<logger name="com.netflix.servo.tag.aws.AwsInjectableTag" level="OFF"/> <logger name="com.netflix.servo.tag.aws.AwsInjectableTag" level="OFF"/>
<logger name="com.vmware.ovsdb.service.OvsdbConnectionInfo" level="OFF"/> <logger name="com.vmware.ovsdb.service.OvsdbConnectionInfo" level="OFF"/>
<logger name="com.vmware.ovsdb.netty.OvsdbConnectionHandler" level="ERROR"/> <logger name="com.vmware.ovsdb.netty.OvsdbConnectionHandler" level="ERROR"/>

View File

@@ -1,20 +1,20 @@
#!/bin/sh #!/bin/sh
# Prepare the hosts file - do it only if does not have required entries # Prepare the hosts file - do it only if does not have required entries
n1=`grep opensync-mqtt-broker.zone1.lab.wlan.tip.build /etc/hosts | wc -l` n1=`grep opensync-mqtt-broker /etc/hosts | wc -l`
if [[ $n1 -eq 0 ]] if [[ $n1 -eq 0 ]]
then then
echo Adding opensync-mqtt-broker.zone1.lab.wlan.tip.build to /etc/hosts echo Adding opensync-mqtt-broker to /etc/hosts
echo "127.0.0.1 opensync-mqtt-broker.zone1.lab.wlan.tip.build" >> /etc/hosts echo "127.0.0.1 opensync-mqtt-broker" >> /etc/hosts
fi fi
n2=`grep opensync-controller.zone1.lab.wlan.tip.build /etc/hosts | wc -l` n2=`grep opensync-wifi-controller /etc/hosts | wc -l`
if [[ $n2 -eq 0 ]] if [[ $n2 -eq 0 ]]
then then
echo Adding opensync-controller.zone1.lab.wlan.tip.build to /etc/hosts echo Adding opensync-wifi-controller to /etc/hosts
echo "127.0.0.1 opensync-controller.zone1.lab.wlan.tip.build" >> /etc/hosts echo "127.0.0.1 opensync-wifi-controller" >> /etc/hosts
fi fi
@@ -33,36 +33,24 @@ OVSDB_SERVER_TRUSTSTORE_FILE="${OVSDB_SERVER_TRUSTSTORE_FILE:=/opt/tip-wlan/cert
OVSDB_SERVER_TRUSTSTORE_PASSWORD="${OVSDB_SERVER_TRUSTSTORE_PASSWORD:=mypassword}" OVSDB_SERVER_TRUSTSTORE_PASSWORD="${OVSDB_SERVER_TRUSTSTORE_PASSWORD:=mypassword}"
OVSDB_EQUIPMENT_CONFIG_FILE="${OVSDB_EQUIPMENT_CONFIG_FILE:=/app/opensync/EquipmentExample.json}" OVSDB_EQUIPMENT_CONFIG_FILE="${OVSDB_EQUIPMENT_CONFIG_FILE:=/app/opensync/EquipmentExample.json}"
OVSDB_APPROFILE_CONFIG_FILE="${OVSDB_AP_PROFILE_CONFIG_FILE:=/app/opensync/ProfileAPExample.json}" OVSDB_APPROFILE_CONFIG_FILE="${OVSDB_AP_PROFILE_CONFIG_FILE:=/app/opensync/ProfileAPExample.json}"
OVSDB_METRICSPROFILE_CONFIG_FILE="${OVSDB_METRICSPROFILE_CONFIG_FILE:=/app/opensync/ProfileMetrics.json}"
OVSDB_HOTSPOT20SPROFILE_CONFIG_FILE="${OVSDB_HOTSPOT20PROFILE_CONFIG_FILE:=/app/opensync/ProfileHotspot20.json}"
OVSDB_OPERATORPROFILE_CONFIG_FILE="${OVSDB_OPERATORPROFILE_CONFIG_FILE:=/app/opensync/ProfileOperator.json}"
OVSDB_BONJOURPROFILE_CONFIG_FILE="${OVSDB_BONJOURPROFILE_CONFIG_FILE:=/app/opensync/ProfileBonjour.json}"
OVSDB_VENUEPROFILE_CONFIG_FILE="${OVSDB_VENUEPROFILE_CONFIG_FILE:=/app/opensync/ProfileVenue.json}"
OVSDB_IDPROVIDERPROFILE_CONFIG_FILE="${OVSDB_IDPROVIDERPROFILE_CONFIG_FILE:=/app/opensync/ProfileIdProvider.json}"
OVSDB_RFPROFILE_CONFIG_FILE="${OVSDB_RF_PROFILE_CONFIG_FILE:=/app/opensync/ProfileRf.json}"
OVSDB_SSIDPROFILE_CONFIG_FILE="${OVSDB_SSIDPROFILE_CONFIG_FILE:=/app/opensync/ProfileSsid.json}" OVSDB_SSIDPROFILE_CONFIG_FILE="${OVSDB_SSIDPROFILE_CONFIG_FILE:=/app/opensync/ProfileSsid.json}"
OVSDB_LOCATION_CONFIG_FILE="${OVSDB_LOCATION_CONFIG_FILE:=/app/opensync/LocationBuildingExample.json}" OVSDB_LOCATION_CONFIG_FILE="${OVSDB_LOCATION_CONFIG_FILE:=/app/opensync/LocationBuildingExample.json}"
OVSDB_RADIUSPROFILE_CONFIG_FILE="${OVSDB_RADIUSPROFILE_CONFIG_FILE:=/app/opensync/ProfileRadius.json}" OVSDB_RADIUSPROFILE_CONFIG_FILE="${OVSDB_RADIUSPROFILE_CONFIG_FILE:=/app/opensync/ProfileRadius.json}"
OVSDB_CAPTIVEPROFILE_CONFIG_FILE="${OVSDB_CAPTIVEPROFILE_CONFIG_FILE:=/app/opensync/ProfileCaptive.json}"
OVSDB_IF_DEFAULT_BRIDGE="${OVSDB_IF_DEFAULT_BRIDGE:=lan}" OVSDB_IF_DEFAULT_BRIDGE="${OVSDB_IF_DEFAULT_BRIDGE:=br-home}"
echo $OVSDB_IF_DEFAULT_BRIDGE echo $OVSDB_IF_DEFAULT_BRIDGE
OVSDB_IF_DEFAULT_RADIO_0="${OVSDB_IF_DEFAULT_RADIO_0:=wlan0}" OVSDB_IF_DEFAULT_RADIO_0="${OVSDB_IF_DEFAULT_RADIO_0:=home-ap-u50}"
echo $OVSDB_IF_DEFAULT_RADIO_0 echo $OVSDB_IF_DEFAULT_RADIO_0
OVSDB_IF_DEFAULT_RADIO_1="${OVSDB_IF_DEFAULT_RADIO_1:=wlan1}" OVSDB_IF_DEFAULT_RADIO_1="${OVSDB_IF_DEFAULT_RADIO_1:=home-ap-24}"
echo $OVSDB_IF_DEFAULT_RADIO_1 echo $OVSDB_IF_DEFAULT_RADIO_1
OVSDB_IF_DEFAULT_RADIO_2="${OVSDB_IF_DEFAULT_RADIO_2:=wlan2}" OVSDB_IF_DEFAULT_RADIO_2="${OVSDB_IF_DEFAULT_RADIO_2:=home-ap-l50}"
echo $OVSDB_IF_DEFAULT_RADIO_2 echo $OVSDB_IF_DEFAULT_RADIO_2
OVSDB_DEVICE_DEFAULT_WAN_TYPE="${OVSDB_DEVICE_DEFAULT_WAN_TYPE:=bridge}" OVSDB_DEVICE_RADIO_0="${OVSDB_DEVICE_RADIO_0:=wifi2}"
echo $OVSDB_DEVICE_DEFAULT_WAN_TYPE echo $OVSDB_DEVICE_RADIO_0
OVSDB_DEVICE_DEFAULT_WAN_NAME="${OVSDB_DEVICE_DEFAULT_WAN_NAME:=wan}" OVSDB_DEVICE_RADIO_1="${OVSDB_DEVICE_RADIO_1:=wifi0}"
echo $OVSDB_DEVICE_DEFAULT_WAN_NAME echo $OVSDB_DEVICE_RADIO_1
OVSDB_DEVICE_DEFAULT_LAN_TYPE="${OVSDB_DEVICE_DEFAULT_LAN_TYPE:=bridge}" OVSDB_DEVICE_RADIO_2="${OVSDB_DEVICE_RADIO_2:=wifi1}"
echo $OVSDB_DEVICE_DEFAULT_LAN_TYPE echo $OVSDB_DEVICE_RADIO_2
OVSDB_DEVICE_DEFAULT_LAN_NAME="${OVSDB_DEVICE_DEFAULT_LAN_NAME:=lan}"
echo $OVSDB_DEVICE_DEFAULT_LAN_NAME
OVSDB_PREVENT_CLIENTCN_ALTERATION="${OVSDB_PREVENT_CLIENTCN_ALTERATION:=false}"
echo $OVSDB_PREVENT_CLIENTCN_ALTERATION
echo Reading AP configuration from $OVSDB_CONFIG_FILE echo Reading AP configuration from $OVSDB_CONFIG_FILE
@@ -71,9 +59,8 @@ EXT_CLIENT_KEYSTORE_FILE="${EXT_CLIENT_KEYSTORE_FILE:=/opt/tip-wlan/certs/client
EXT_TRUSTSTORE_FILE="${EXT_TRUSTSTORE_FILE:=/opt/tip-wlan/certs/truststore.jks}" EXT_TRUSTSTORE_FILE="${EXT_TRUSTSTORE_FILE:=/opt/tip-wlan/certs/truststore.jks}"
EXT_TRUSTSTORE_PASSWORD="${EXT_TRUSTSTORE_PASSWORD:=mypassword}" EXT_TRUSTSTORE_PASSWORD="${EXT_TRUSTSTORE_PASSWORD:=mypassword}"
MQTT_BROKER_HOST_INTERNAL="${MQTT_BROKER_HOST_INTERNAL:=opensync-mqtt-broker.zone1.lab.wlan.tip.build}" MQTT_BROKER_HOST="${MQTT_BROKER_HOST:=opensync-mqtt-broker}"
MQTT_BROKER_HOST_EXTERNAL="${MQTT_BROKER_HOST_EXTERNAL:=opensync-mqtt-broker.zone1.lab.wlan.tip.build}" OVSDB_MANAGER_HOST="${OVSDB_MANAGER_HOST:=opensync-wifi-controller}"
OVSDB_MANAGER_HOST="${OVSDB_MANAGER_HOST:=opensync-controller.zone1.lab.wlan.tip.build}"
LOGBACK_CONFIG_FILE="${LOGBACK_CONFIG_FILE:=/app/opensync/logback.xml}" LOGBACK_CONFIG_FILE="${LOGBACK_CONFIG_FILE:=/app/opensync/logback.xml}"
@@ -128,44 +115,33 @@ CLIENT_MQTT_SSL_PROPS="$CLIENT_MQTT_SSL_PROPS -Djavax.net.ssl.trustStore=$MQTT_T
CLIENT_MQTT_SSL_PROPS="$CLIENT_MQTT_SSL_PROPS -Djavax.net.ssl.trustStorePassword=$MQTT_TRUSTSTORE_PASSWORD" CLIENT_MQTT_SSL_PROPS="$CLIENT_MQTT_SSL_PROPS -Djavax.net.ssl.trustStorePassword=$MQTT_TRUSTSTORE_PASSWORD"
OVSDB_PROPS=" " OVSDB_PROPS=" "
OVSDB_PROPS="$OVSDB_PROPS -Dtip.wlan.ovsdb.managerAddr=$OVSDB_MANAGER_HOST" OVSDB_PROPS="$OVSDB_PROPS -Dconnectus.ovsdb.managerAddr=$OVSDB_MANAGER_HOST"
OVSDB_PROPS="$OVSDB_PROPS -Dtip.wlan.ovsdb.listenPort=6640 " OVSDB_PROPS="$OVSDB_PROPS -Dconnectus.ovsdb.listenPort=6640 "
OVSDB_PROPS="$OVSDB_PROPS -Dtip.wlan.ovsdb.redirector.listenPort=6643" OVSDB_PROPS="$OVSDB_PROPS -Dconnectus.ovsdb.redirector.listenPort=6643"
OVSDB_PROPS="$OVSDB_PROPS -Dtip.wlan.ovsdb.timeoutSec=30" OVSDB_PROPS="$OVSDB_PROPS -Dconnectus.ovsdb.timeoutSec=30"
OVSDB_PROPS="$OVSDB_PROPS -Dtip.wlan.ovsdb.trustStore=$OVSDB_SERVER_TRUSTSTORE_FILE" OVSDB_PROPS="$OVSDB_PROPS -Dconnectus.ovsdb.trustStore=$OVSDB_SERVER_TRUSTSTORE_FILE"
OVSDB_PROPS="$OVSDB_PROPS -Dtip.wlan.ovsdb.trustStorePassword=$OVSDB_SERVER_TRUSTSTORE_PASSWORD" OVSDB_PROPS="$OVSDB_PROPS -Dconnectus.ovsdb.trustStorePassword=$OVSDB_SERVER_TRUSTSTORE_PASSWORD"
OVSDB_PROPS="$OVSDB_PROPS -Dtip.wlan.ovsdb.keyStore=$OVSDB_SERVER_KEYSTORE_FILE" OVSDB_PROPS="$OVSDB_PROPS -Dconnectus.ovsdb.keyStore=$OVSDB_SERVER_KEYSTORE_FILE"
OVSDB_PROPS="$OVSDB_PROPS -Dtip.wlan.ovsdb.keyStorePassword=$OVSDB_SERVER_KEYSTORE_PASSWORD" OVSDB_PROPS="$OVSDB_PROPS -Dconnectus.ovsdb.keyStorePassword=$OVSDB_SERVER_KEYSTORE_PASSWORD"
OVSDB_PROPS="$OVSDB_PROPS -Dtip.wlan.ovsdb.customerEquipmentFileName=$OVSDB_EQUIPMENT_CONFIG_FILE" OVSDB_PROPS="$OVSDB_PROPS -Dconnectus.ovsdb.customerEquipmentFileName=$OVSDB_EQUIPMENT_CONFIG_FILE"
OVSDB_PROPS="$OVSDB_PROPS -Dtip.wlan.ovsdb.apProfileFileName=$OVSDB_APPROFILE_CONFIG_FILE" OVSDB_PROPS="$OVSDB_PROPS -Dconnectus.ovsdb.apProfileFileName=$OVSDB_APPROFILE_CONFIG_FILE"
OVSDB_PROPS="$OVSDB_PROPS -Dtip.wlan.ovsdb.metricsProfileFileName=$OVSDB_METRICSPROFILE_CONFIG_FILE" OVSDB_PROPS="$OVSDB_PROPS -Dconnectus.ovsdb.ssidProfileFileName=$OVSDB_SSIDPROFILE_CONFIG_FILE"
OVSDB_PROPS="$OVSDB_PROPS -Dtip.wlan.ovsdb.hotspot20ProfileFileName=$OVSDB_HOTSPOT20PROFILE_CONFIG_FILE" OVSDB_PROPS="$OVSDB_PROPS -Dconnectus.ovsdb.radiusProfileFileName=$OVSDB_RADIUSPROFILE_CONFIG_FILE"
OVSDB_PROPS="$OVSDB_PROPS -Dtip.wlan.ovsdb.operatorProfileFileName=$OVSDB_OPERATORPROFILE_CONFIG_FILE" OVSDB_PROPS="$OVSDB_PROPS -Dconnectus.ovsdb.locationFileName=$OVSDB_LOCATION_CONFIG_FILE"
OVSDB_PROPS="$OVSDB_PROPS -Dtip.wlan.ovsdb.venueProfileFileName=$OVSDB_VENUEPROFILE_CONFIG_FILE" OVSDB_PROPS="$OVSDB_PROPS -Dconnectus.ovsdb.wifi-iface.default_bridge=$OVSDB_IF_DEFAULT_BRIDGE"
OVSDB_PROPS="$OVSDB_PROPS -Dtip.wlan.ovsdb.idProviderProfileFileName=$OVSDB_IDPROVIDERPROFILE_CONFIG_FILE" OVSDB_PROPS="$OVSDB_PROPS -Dconnectus.ovsdb.wifi-iface.default_radio0=$OVSDB_IF_DEFAULT_RADIO_0"
OVSDB_PROPS="$OVSDB_PROPS -Dtip.wlan.ovsdb.rfProfileFileName=$OVSDB_RFPROFILE_CONFIG_FILE" OVSDB_PROPS="$OVSDB_PROPS -Dconnectus.ovsdb.wifi-iface.default_radio1=$OVSDB_IF_DEFAULT_RADIO_1"
OVSDB_PROPS="$OVSDB_PROPS -Dtip.wlan.preventClientCnAlteration=$OVSDB_PREVENT_CLIENTCN_ALTERATION" OVSDB_PROPS="$OVSDB_PROPS -Dconnectus.ovsdb.wifi-iface.default_radio2=$OVSDB_IF_DEFAULT_RADIO_2"
OVSDB_PROPS="$OVSDB_PROPS -Dtip.wlan.ovsdb.ssidProfileFileName=$OVSDB_SSIDPROFILE_CONFIG_FILE" OVSDB_PROPS="$OVSDB_PROPS -Dconnectus.ovsdb.wifi-device.radio0=$OVSDB_DEVICE_RADIO_0"
OVSDB_PROPS="$OVSDB_PROPS -Dtip.wlan.ovsdb.radiusProfileFileName=$OVSDB_RADIUSPROFILE_CONFIG_FILE" OVSDB_PROPS="$OVSDB_PROPS -Dconnectus.ovsdb.wifi-device.radio1=$OVSDB_DEVICE_RADIO_1"
OVSDB_PROPS="$OVSDB_PROPS -Dtip.wlan.ovsdb.locationFileName=$OVSDB_LOCATION_CONFIG_FILE" OVSDB_PROPS="$OVSDB_PROPS -Dconnectus.ovsdb.wifi-device.radio2=$OVSDB_DEVICE_RADIO_2"
OVSDB_PROPS="$OVSDB_PROPS -Dtip.wlan.ovsdb.captiveProfileFileName=$OVSDB_CAPTIVEPROFILE_CONFIG_FILE"
OVSDB_PROPS="$OVSDB_PROPS -Dtip.wlan.ovsdb.bonjourProfileFileName=$OVSDB_BONJOURPROFILE_CONFIG_FILE"
OVSDB_PROPS="$OVSDB_PROPS -Dtip.wlan.ovsdb.wifi-iface.default_bridge=$OVSDB_IF_DEFAULT_BRIDGE"
OVSDB_PROPS="$OVSDB_PROPS -Dtip.wlan.ovsdb.wifi-iface.default_wan_type=$OVSDB_DEVICE_DEFAULT_WAN_TYPE"
OVSDB_PROPS="$OVSDB_PROPS -Dtip.wlan.ovsdb.wifi-iface.default_wan_name=$OVSDB_DEVICE_DEFAULT_WAN_NAME"
OVSDB_PROPS="$OVSDB_PROPS -Dtip.wlan.ovsdb.wifi-iface.default_lan_type=$OVSDB_DEVICE_DEFAULT_LAN_TYPE"
OVSDB_PROPS="$OVSDB_PROPS -Dtip.wlan.ovsdb.wifi-iface.default_lan_name=$OVSDB_DEVICE_DEFAULT_LAN_NAME"
OVSDB_PROPS="$OVSDB_PROPS -Dtip.wlan.ovsdb.wifi-iface.default_radio0=$OVSDB_IF_DEFAULT_RADIO_0"
OVSDB_PROPS="$OVSDB_PROPS -Dtip.wlan.ovsdb.wifi-iface.default_radio1=$OVSDB_IF_DEFAULT_RADIO_1"
OVSDB_PROPS="$OVSDB_PROPS -Dtip.wlan.ovsdb.wifi-iface.default_radio2=$OVSDB_IF_DEFAULT_RADIO_2"
echo OVSDB_PROPS $OVSDB_PROPS echo OVSDB_PROPS $OVSDB_PROPS
MQTT_PROPS=" " MQTT_PROPS=" "
MQTT_PROPS="$MQTT_PROPS -Dtip.wlan.mqttBroker.address.internal=$MQTT_BROKER_HOST_INTERNAL" MQTT_PROPS="$MQTT_PROPS -Dconnectus.mqttBroker.address=$MQTT_BROKER_HOST"
MQTT_PROPS="$MQTT_PROPS -Dtip.wlan.mqttBroker.address.external=$MQTT_BROKER_HOST_EXTERNAL" MQTT_PROPS="$MQTT_PROPS -Dconnectus.mqttBroker.listenPort=1883"
MQTT_PROPS="$MQTT_PROPS -Dtip.wlan.mqttBroker.listenPort=1883"
LOGGING_PROPS=" -Dlogging.config=file:$LOGBACK_CONFIG_FILE" LOGGING_PROPS=" -Dlogging.config=file:$LOGBACK_CONFIG_FILE"
@@ -174,9 +150,7 @@ RESTAPI_PROPS="$RESTAPI_PROPS -Dserver.port=4043"
SPRING_EXTRA_PROPS=" --add-opens java.base/java.lang=ALL-UNNAMED" SPRING_EXTRA_PROPS=" --add-opens java.base/java.lang=ALL-UNNAMED"
JVM_EXTRA_PROPS=" ${JVM_MEM_OPTIONS:- } " export ALL_PROPS="$PROFILES $SSL_PROPS $CLIENT_MQTT_SSL_PROPS $OVSDB_PROPS $MQTT_PROPS $LOGGING_PROPS $RESTAPI_PROPS $SPRING_EXTRA_PROPS "
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 echo Starting opensync wifi controller

View File

@@ -1,5 +1,5 @@
FROM adoptopenjdk/openjdk13:alpine-jre FROM adoptopenjdk/openjdk13:alpine-jre
MAINTAINER TipWlan MAINTAINER ConnectUs
# Update the package list and upgrade installed packages # Update the package list and upgrade installed packages
RUN apk update && apk upgrade && apk add bash RUN apk update && apk upgrade && apk add bash
@@ -13,15 +13,7 @@ COPY app/opensync/EquipmentExample.json /app/opensync/EquipmentExample.json
COPY app/opensync/ProfileAPExample.json /app/opensync/ProfileAPExample.json COPY app/opensync/ProfileAPExample.json /app/opensync/ProfileAPExample.json
COPY app/opensync/ProfileSsid.json /app/opensync/ProfileSsid.json COPY app/opensync/ProfileSsid.json /app/opensync/ProfileSsid.json
COPY app/opensync/LocationBuildingExample.json /app/opensync/LocationBuildingExample.json COPY app/opensync/LocationBuildingExample.json /app/opensync/LocationBuildingExample.json
COPY app/opensync/ProfileMetrics.json /app/opensync/ProfileMetrics.json
COPY app/opensync/ProfileRf.json /app/opensync/ProfileRf.json
COPY app/opensync/ProfileHotspot20.json /app/opensync/ProfileHotspot20.json
COPY app/opensync/ProfileOperator.json /app/opensync/ProfileOperator.json
COPY app/opensync/ProfileVenue.json /app/opensync/ProfileVenue.json
COPY app/opensync/ProfileIdProvider.json /app/opensync/ProfileIdProvider.json
COPY app/opensync/ProfileBonjour.json /app/opensync/ProfileBonjour.json
COPY app/commit.properties /app
RUN chmod +x /app/run.sh RUN chmod +x /app/run.sh
WORKDIR /app WORKDIR /app

View File

@@ -1,4 +0,0 @@
#This is a dummy property file to be used when running docker locally
date=${date}
commitId=${commit.id}
projectVersion=${project.version}

View File

@@ -1,12 +1,12 @@
{ {
"model_type": "Equipment", "model_type": "Equipment",
"id": 1, "id": 51,
"customerId": 2, "customerId": 2,
"profileId": 8, "profileId": 5,
"locationId": 8, "locationId": 8,
"equipmentType": "AP", "equipmentType": "AP",
"inventoryId": "Open_AP_21P10C68818122", "inventoryId": "Test_Client_21P10C68818122",
"name": "Open_AP_21P10C68818122", "name": "Test_Client_21P10C68818122",
"details": { "details": {
"model_type": "ApElementConfiguration", "model_type": "ApElementConfiguration",
"equipmentModel": "EA8300-CA", "equipmentModel": "EA8300-CA",
@@ -21,7 +21,7 @@
"staticDnsIp1": null, "staticDnsIp1": null,
"staticDnsIp2": null, "staticDnsIp2": null,
"peerInfoList": [], "peerInfoList": [],
"deviceName": "Open_AP_21P10C68818122", "deviceName": "Default Device Name",
"locationData": null, "locationData": null,
"locallyConfiguredMgmtVlan": 0, "locallyConfiguredMgmtVlan": 0,
"locallyConfigured": false, "locallyConfigured": false,
@@ -32,246 +32,91 @@
"costSavingEventsEnabled": true, "costSavingEventsEnabled": true,
"forwardMode": "BRIDGE", "forwardMode": "BRIDGE",
"radioMap": { "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": { "is2dot4GHz": {
"model_type": "ElementRadioConfiguration", "model_type": "ElementRadioConfiguration",
"radioType": "is2dot4GHz", "radioType": "is2dot4GHz",
"channelNumber": 6, "channelNumber": 6,
"manualChannelNumber": 6, "manualChannelNumber": 6,
"backupChannelNumber": 11, "backupChannelNumber": 11,
"manualBackupChannelNumber": 11, "autoChannelSelection": false,
"channelBandwidth": "is20MHz",
"bannedChannels": [],
"allowedChannels": [],
"rxCellSizeDb": { "rxCellSizeDb": {
"model_type": "SourceSelectionValue", "model_type": "AutoOrManualValue",
"source": "profile", "auto": true,
"value": -90 "value": -90
}, },
"probeResponseThresholdDb": { "probeResponseThresholdDb": {
"model_type": "SourceSelectionValue", "model_type": "AutoOrManualValue",
"source": "profile", "auto": true,
"value": -90 "value": -90
}, },
"clientDisconnectThresholdDb": { "clientDisconnectThresholdDb": {
"model_type": "SourceSelectionValue", "model_type": "AutoOrManualValue",
"source": "profile", "auto": true,
"value": -90 "value": -90
}, },
"eirpTxPower": { "eirpTxPower": {
"model_type": "SourceSelectionValue", "model_type": "AutoOrManualValue",
"source": "profile", "auto": false,
"value": 18 "value": 32
}, },
"bestApEnabled": null,
"neighbouringListApConfig": {
"model_type": "NeighbouringAPListConfiguration",
"minSignal": -85,
"maxAps": 25
},
"minAutoCellSize": -80,
"perimeterDetectionEnabled": true, "perimeterDetectionEnabled": true,
"bestAPSteerType": "both", "bestAPSteerType": "both",
"deauthAttackDetection": null, "deauthAttackDetection": null,
"allowedChannelsPowerLevels": [ "allowedChannelsPowerLevels": [],
{ "activeChannel": 6
"model_type": "ChannelPowerLevel",
"channelNumber": 1,
"powerLevel": 18,
"dfs": false,
"channelWidth": 20
}, },
{ "is5GHzU": {
"model_type": "ChannelPowerLevel", "model_type": "ElementRadioConfiguration",
"channelNumber": 2, "radioType": "is5GHzU",
"powerLevel": 18, "channelNumber": 149,
"dfs": false, "manualChannelNumber": 149,
"channelWidth": 20 "backupChannelNumber": 154,
"autoChannelSelection": false,
"channelBandwidth": "is80MHz",
"bannedChannels": [],
"allowedChannels": [],
"rxCellSizeDb": {
"model_type": "AutoOrManualValue",
"auto": true,
"value": -90
}, },
{ "probeResponseThresholdDb": {
"model_type": "ChannelPowerLevel", "model_type": "AutoOrManualValue",
"channelNumber": 3, "auto": true,
"powerLevel": 18, "value": -90
"dfs": false,
"channelWidth": 20
}, },
{ "clientDisconnectThresholdDb": {
"model_type": "ChannelPowerLevel", "model_type": "AutoOrManualValue",
"channelNumber": 4, "auto": true,
"powerLevel": 18, "value": -90
"dfs": false,
"channelWidth": 20
}, },
{ "eirpTxPower": {
"model_type": "ChannelPowerLevel", "model_type": "AutoOrManualValue",
"channelNumber": 5, "auto": false,
"powerLevel": 18, "value": 32
"dfs": false,
"channelWidth": 20
}, },
{ "bestApEnabled": null,
"model_type": "ChannelPowerLevel", "neighbouringListApConfig": {
"channelNumber": 6, "model_type": "NeighbouringAPListConfiguration",
"powerLevel": 18, "minSignal": -85,
"dfs": false, "maxAps": 25
"channelWidth": 20
}, },
{ "minAutoCellSize": -80,
"model_type": "ChannelPowerLevel", "perimeterDetectionEnabled": true,
"channelNumber": 7, "bestAPSteerType": "both",
"powerLevel": 18, "deauthAttackDetection": null,
"dfs": false, "allowedChannelsPowerLevels": [],
"channelWidth": 20 "activeChannel": 149
},
{
"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": { "is5GHzL": {
"model_type": "ElementRadioConfiguration", "model_type": "ElementRadioConfiguration",
@@ -279,88 +124,42 @@
"channelNumber": 36, "channelNumber": 36,
"manualChannelNumber": 36, "manualChannelNumber": 36,
"backupChannelNumber": 44, "backupChannelNumber": 44,
"manualBackupChannelNumber": 44, "autoChannelSelection": false,
"channelBandwidth": "is80MHz",
"bannedChannels": [],
"allowedChannels": [],
"rxCellSizeDb": { "rxCellSizeDb": {
"model_type": "SourceSelectionValue", "model_type": "AutoOrManualValue",
"source": "profile", "auto": true,
"value": -90 "value": -90
}, },
"probeResponseThresholdDb": { "probeResponseThresholdDb": {
"model_type": "SourceSelectionValue", "model_type": "AutoOrManualValue",
"source": "profile", "auto": true,
"value": -90 "value": -90
}, },
"clientDisconnectThresholdDb": { "clientDisconnectThresholdDb": {
"model_type": "SourceSelectionValue", "model_type": "AutoOrManualValue",
"source": "profile", "auto": true,
"value": -90 "value": -90
}, },
"eirpTxPower": { "eirpTxPower": {
"model_type": "SourceSelectionValue", "model_type": "AutoOrManualValue",
"source": "profile", "auto": false,
"value": 18 "value": 32
}, },
"bestApEnabled": null,
"neighbouringListApConfig": {
"model_type": "NeighbouringAPListConfiguration",
"minSignal": -85,
"maxAps": 25
},
"minAutoCellSize": -80,
"perimeterDetectionEnabled": true, "perimeterDetectionEnabled": true,
"bestAPSteerType": "both", "bestAPSteerType": "both",
"deauthAttackDetection": null, "deauthAttackDetection": null,
"allowedChannelsPowerLevels": [ "allowedChannelsPowerLevels": [],
{ "activeChannel": 36
"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": { "advancedRadioMap": {
@@ -369,30 +168,39 @@
"radioType": "is2dot4GHz", "radioType": "is2dot4GHz",
"radioAdminState": "enabled", "radioAdminState": "enabled",
"fragmentationThresholdBytes": 2346, "fragmentationThresholdBytes": 2346,
"rtsCtsThreshold": 65535,
"autoChannelSelection": "disabled",
"radioMode": "modeN",
"mimoMode": "twoByTwo",
"wmmState": "enabled",
"uapsdState": "enabled", "uapsdState": "enabled",
"maxNumClients": 100,
"stationIsolation": "disabled", "stationIsolation": "disabled",
"multicastRate": { "multicastRate": "auto",
"model_type": "SourceSelectionMulticast", "managementRate": "auto",
"source": "profile", "activeScanSettings": {
"value": "auto" "model_type": "ActiveScanSettings",
"enabled": true,
"scanFrequencySeconds": 10,
"scanDurationMillis": 65
}, },
"managementRate": { "channelHopSettings": {
"model_type": "SourceSelectionManagement", "model_type": "ChannelHopSettings",
"source": "profile", "noiseFloorThresholdInDB": -75,
"value": "auto" "noiseFloorThresholdTimeInSeconds": 180,
"nonWifiThresholdInPercentage": 50,
"nonWifiThresholdTimeInSeconds": 180,
"obssHopMode": "NON_WIFI"
}, },
"bestApSettings": { "bestApSettings": {
"model_type": "SourceSelectionSteering",
"source": "manual",
"value": {
"model_type": "RadioBestApSettings", "model_type": "RadioBestApSettings",
"mlComputed": true, "mlComputed": true,
"dropInSnrPercentage": 20, "dropInSnrPercentage": 20,
"minLoadFactor": 50 "minLoadFactor": 50
}
}, },
"forceScanDuringVoice": "disabled",
"legacyBSSRate": "enabled", "legacyBSSRate": "enabled",
"dtimPeriod": 2, "beaconInterval": 100,
"deauthAttackDetection": null "deauthAttackDetection": null
}, },
"is5GHzU": { "is5GHzU": {
@@ -400,30 +208,39 @@
"radioType": "is5GHzU", "radioType": "is5GHzU",
"radioAdminState": "enabled", "radioAdminState": "enabled",
"fragmentationThresholdBytes": 2346, "fragmentationThresholdBytes": 2346,
"rtsCtsThreshold": 65535,
"autoChannelSelection": "disabled",
"radioMode": "modeAC",
"mimoMode": "twoByTwo",
"wmmState": "enabled",
"uapsdState": "enabled", "uapsdState": "enabled",
"maxNumClients": 100,
"stationIsolation": "disabled", "stationIsolation": "disabled",
"multicastRate": { "multicastRate": "auto",
"model_type": "SourceSelectionMulticast", "managementRate": "auto",
"source": "profile", "activeScanSettings": {
"value": "auto" "model_type": "ActiveScanSettings",
"enabled": true,
"scanFrequencySeconds": 10,
"scanDurationMillis": 65
}, },
"managementRate": { "channelHopSettings": {
"model_type": "SourceSelectionManagement", "model_type": "ChannelHopSettings",
"source": "profile", "noiseFloorThresholdInDB": -75,
"value": "auto" "noiseFloorThresholdTimeInSeconds": 180,
"nonWifiThresholdInPercentage": 50,
"nonWifiThresholdTimeInSeconds": 180,
"obssHopMode": "NON_WIFI"
}, },
"bestApSettings": { "bestApSettings": {
"model_type": "SourceSelectionSteering",
"source": "manual",
"value": {
"model_type": "RadioBestApSettings", "model_type": "RadioBestApSettings",
"mlComputed": true, "mlComputed": true,
"dropInSnrPercentage": 30, "dropInSnrPercentage": 30,
"minLoadFactor": 40 "minLoadFactor": 40
}
}, },
"forceScanDuringVoice": "disabled",
"legacyBSSRate": "enabled", "legacyBSSRate": "enabled",
"dtimPeriod": 2, "beaconInterval": 100,
"deauthAttackDetection": null "deauthAttackDetection": null
}, },
"is5GHzL": { "is5GHzL": {
@@ -431,42 +248,46 @@
"radioType": "is5GHzL", "radioType": "is5GHzL",
"radioAdminState": "enabled", "radioAdminState": "enabled",
"fragmentationThresholdBytes": 2346, "fragmentationThresholdBytes": 2346,
"rtsCtsThreshold": 65535,
"autoChannelSelection": "disabled",
"radioMode": "modeAC",
"mimoMode": "twoByTwo",
"wmmState": "enabled",
"uapsdState": "enabled", "uapsdState": "enabled",
"maxNumClients": 100,
"stationIsolation": "disabled", "stationIsolation": "disabled",
"multicastRate": { "multicastRate": "auto",
"model_type": "SourceSelectionMulticast", "managementRate": "auto",
"source": "profile", "activeScanSettings": {
"value": "auto" "model_type": "ActiveScanSettings",
"enabled": true,
"scanFrequencySeconds": 10,
"scanDurationMillis": 65
}, },
"managementRate": { "channelHopSettings": {
"model_type": "SourceSelectionManagement", "model_type": "ChannelHopSettings",
"source": "profile", "noiseFloorThresholdInDB": -75,
"value": "auto" "noiseFloorThresholdTimeInSeconds": 180,
"nonWifiThresholdInPercentage": 50,
"nonWifiThresholdTimeInSeconds": 180,
"obssHopMode": "NON_WIFI"
}, },
"bestApSettings": { "bestApSettings": {
"model_type": "SourceSelectionSteering",
"source": "manual",
"value": {
"model_type": "RadioBestApSettings", "model_type": "RadioBestApSettings",
"mlComputed": true, "mlComputed": true,
"dropInSnrPercentage": 30, "dropInSnrPercentage": 30,
"minLoadFactor": 40 "minLoadFactor": 40
}
}, },
"forceScanDuringVoice": "disabled",
"legacyBSSRate": "enabled", "legacyBSSRate": "enabled",
"dtimPeriod": 2, "beaconInterval": 100,
"deauthAttackDetection": null "deauthAttackDetection": null
} }
} }
}, },
"latitude": null, "latitude": null,
"longitude": null, "longitude": null,
"baseMacAddress": {
"model_type": "MacAddress",
"address": "JPWi7y5T",
"addressAsString": "24:f5:a2:ef:2e:53"
},
"serial": "21P10C68818122", "serial": "21P10C68818122",
"createdTimestamp": 1612285288821, "createdTimestamp": 1591653239821,
"lastModifiedTimestamp": 1612285293922 "lastModifiedTimestamp": 1591653241398
} }

View File

@@ -1,61 +1,67 @@
{ {
"model_type": "Location", "model_type" : "Location",
"id": 8, "id" : 8,
"parentId": 0, "parentId" : 0,
"locationType": "SITE", "locationType" : "SITE",
"customerId": 2, "customerId" : 2,
"name": "Ottawa", "name" : "Ottawa",
"details": { "details" : {
"model_type": "LocationDetails", "model_type" : "LocationDetails",
"countryCode": "CA", "countryCode" : "ca",
"dailyActivityDetails": { "maintenanceWindow" : null,
"SUNDAY": { "rrmEnabled" : true,
"model_type": "LocationActivityDetails", "dailyRebalancingDetails" : {
"busyTime": "13:30", "SUNDAY" : {
"quietTime": "3:00", "model_type" : "LocationActivityDetails",
"timezone": "US/Eastern" "busyTime" : "13:30",
"quietTime" : "3:30",
"timezone" : "US/Eastern",
"lastBusySnapshot" : 0
}, },
"MONDAY": { "MONDAY" : {
"model_type": "LocationActivityDetails", "model_type" : "LocationActivityDetails",
"busyTime": "13:30", "busyTime" : "13:30",
"quietTime": "3:00", "quietTime" : "3:30",
"timezone": "US/Eastern" "timezone" : "US/Eastern",
"lastBusySnapshot" : 0
}, },
"TUESDAY": { "TUESDAY" : {
"model_type": "LocationActivityDetails", "model_type" : "LocationActivityDetails",
"busyTime": "13:30", "busyTime" : "13:30",
"quietTime": "3:00", "quietTime" : "3:30",
"timezone": "US/Eastern" "timezone" : "US/Eastern",
"lastBusySnapshot" : 0
}, },
"WEDNESDAY": { "WEDNESDAY" : {
"model_type": "LocationActivityDetails", "model_type" : "LocationActivityDetails",
"busyTime": "13:30", "busyTime" : "13:30",
"quietTime": "3:00", "quietTime" : "3:30",
"timezone": "US/Eastern" "timezone" : "US/Eastern",
"lastBusySnapshot" : 0
}, },
"THURSDAY": { "THURSDAY" : {
"model_type": "LocationActivityDetails", "model_type" : "LocationActivityDetails",
"busyTime": "13:30", "busyTime" : "13:30",
"quietTime": "3:00", "quietTime" : "3:30",
"timezone": "US/Eastern" "timezone" : "US/Eastern",
"lastBusySnapshot" : 0
}, },
"FRIDAY": { "FRIDAY" : {
"model_type": "LocationActivityDetails", "model_type" : "LocationActivityDetails",
"busyTime": "13:30", "busyTime" : "13:30",
"quietTime": "3:00", "quietTime" : "3:30",
"timezone": "US/Eastern" "timezone" : "US/Eastern",
"lastBusySnapshot" : 0
}, },
"SATURDAY": { "SATURDAY" : {
"model_type": "LocationActivityDetails", "model_type" : "LocationActivityDetails",
"busyTime": "13:30", "busyTime" : "13:30",
"quietTime": "3:00", "quietTime" : "3:30",
"timezone": "US/Eastern" "timezone" : "US/Eastern",
"lastBusySnapshot" : 0
}
} }
}, },
"maintenanceWindow": null, "createdTimestamp" : 1590607043540,
"rrmEnabled": true, "lastModifiedTimestamp" : 1590607043540
"timezone": "US/Eastern"
},
"createdTimestamp": 1612285243534,
"lastModifiedTimestamp": 1612285243534
} }

View File

@@ -10,48 +10,55 @@
"countryCode" : "usa", "countryCode" : "usa",
"maintenanceWindow" : null, "maintenanceWindow" : null,
"rrmEnabled" : true, "rrmEnabled" : true,
"dailyActivityDetails" : { "dailyRebalancingDetails" : {
"SUNDAY" : { "SUNDAY" : {
"model_type" : "LocationActivityDetails", "model_type" : "LocationActivityDetails",
"busyTime" : "13:30", "busyTime" : "13:30",
"quietTime" : "3:30", "quietTime" : "3:30",
"timezone" : "US/Eastern" "timezone" : "US/Eastern",
"lastBusySnapshot" : 0
}, },
"MONDAY" : { "MONDAY" : {
"model_type" : "LocationActivityDetails", "model_type" : "LocationActivityDetails",
"busyTime" : "13:30", "busyTime" : "13:30",
"quietTime" : "3:30", "quietTime" : "3:30",
"timezone" : "US/Eastern" "timezone" : "US/Eastern",
"lastBusySnapshot" : 0
}, },
"TUESDAY" : { "TUESDAY" : {
"model_type" : "LocationActivityDetails", "model_type" : "LocationActivityDetails",
"busyTime" : "13:30", "busyTime" : "13:30",
"quietTime" : "3:30", "quietTime" : "3:30",
"timezone" : "US/Eastern" "timezone" : "US/Eastern",
"lastBusySnapshot" : 0
}, },
"WEDNESDAY" : { "WEDNESDAY" : {
"model_type" : "LocationActivityDetails", "model_type" : "LocationActivityDetails",
"busyTime" : "13:30", "busyTime" : "13:30",
"quietTime" : "3:30", "quietTime" : "3:30",
"timezone" : "US/Eastern" "timezone" : "US/Eastern",
"lastBusySnapshot" : 0
}, },
"THURSDAY" : { "THURSDAY" : {
"model_type" : "LocationActivityDetails", "model_type" : "LocationActivityDetails",
"busyTime" : "13:30", "busyTime" : "13:30",
"quietTime" : "3:30", "quietTime" : "3:30",
"timezone" : "US/Eastern" "timezone" : "US/Eastern",
"lastBusySnapshot" : 0
}, },
"FRIDAY" : { "FRIDAY" : {
"model_type" : "LocationActivityDetails", "model_type" : "LocationActivityDetails",
"busyTime" : "13:30", "busyTime" : "13:30",
"quietTime" : "3:30", "quietTime" : "3:30",
"timezone" : "US/Eastern" "timezone" : "US/Eastern",
"lastBusySnapshot" : 0
}, },
"SATURDAY" : { "SATURDAY" : {
"model_type" : "LocationActivityDetails", "model_type" : "LocationActivityDetails",
"busyTime" : "13:30", "busyTime" : "13:30",
"quietTime" : "3:30", "quietTime" : "3:30",
"timezone" : "US/Eastern" "timezone" : "US/Eastern",
"lastBusySnapshot" : 0
} }
} }
}, },

View File

@@ -1,9 +1,9 @@
{ {
"model_type": "Profile", "model_type": "Profile",
"id": 8, "id": 5,
"customerId": 2, "customerId": 2,
"profileType": "equipment_ap", "profileType": "equipment_ap",
"name": "ApProfile-3-radios", "name": "DefaultApProfile",
"details": { "details": {
"model_type": "ApNetworkConfiguration", "model_type": "ApNetworkConfiguration",
"networkConfigVersion": "AP-1", "networkConfigVersion": "AP-1",
@@ -21,6 +21,11 @@
"ledControlEnabled": true, "ledControlEnabled": true,
"equipmentDiscovery": false, "equipmentDiscovery": false,
"radioMap": { "radioMap": {
"is5GHz": {
"model_type": "RadioProfileConfiguration",
"bestApEnabled": true,
"bestAPSteerType": "both"
},
"is2dot4GHz": { "is2dot4GHz": {
"model_type": "RadioProfileConfiguration", "model_type": "RadioProfileConfiguration",
"bestApEnabled": true, "bestApEnabled": true,
@@ -37,22 +42,13 @@
"bestAPSteerType": "both" "bestAPSteerType": "both"
} }
}, },
"greTunnelConfigurations": [
{
"model_type": "GreTunnelConfiguration",
"greTunnelName": "gre1",
"greRemoteInetAddr": "192.168.1.101",
"vlanIdsInGreTunnel": [
100
]
}
],
"profileType": "equipment_ap" "profileType": "equipment_ap"
}, },
"createdTimestamp": 1612285248925, "createdTimestamp": 1591653239947,
"lastModifiedTimestamp": 1612285628377, "lastModifiedTimestamp": 1591654336724,
"childProfileIds": [ "childProfileIds": [
2, 6,
4 7,
8
] ]
} }

View File

@@ -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": []
}
]

View File

@@ -1,58 +0,0 @@
[
{
"model_type": "Profile",
"id": 5,
"customerId": 2,
"profileType": "captive_portal",
"name": "Captive-portal",
"details": {
"model_type": "CaptivePortalConfiguration",
"name": "Default",
"browserTitle": "Captive-portal",
"headerContent": "Captive Portal",
"userAcceptancePolicy": "Please agree to the following terms for using this network:",
"successPageMarkdownText": "You are now authorized and connected to the network.",
"redirectURL": "https://www.google.com",
"externalCaptivePortalURL": null,
"sessionTimeoutInMinutes": 10,
"logoFile": {
"model_type": "ManagedFileInfo",
"md5checksum": null,
"lastModifiedTimestamp": null,
"apExportUrl": "/filestore/tip-logo-mobile",
"fileCategory": "CaptivePortalLogo",
"fileType": "PNG",
"altSlot": false
},
"backgroundFile": {
"model_type": "ManagedFileInfo",
"md5checksum": null,
"lastModifiedTimestamp": null,
"apExportUrl": "/filestore/tip-logo",
"fileCategory": "CaptivePortalBackground",
"fileType": "PNG",
"altSlot": false
},
"walledGardenAllowlist": [
],
"usernamePasswordFile": null,
"authenticationType": "guest",
"radiusAuthMethod": "CHAP",
"maxUsersWithSameCredentials": 3,
"externalPolicyFile": null,
"backgroundPosition": "left_top",
"backgroundRepeat": "no_repeat",
"radiusServiceId": 0,
"expiryType": "time_limited",
"userList": [
],
"macAllowList": [
],
"profileType": "captive_portal"
},
"createdTimestamp": 1611857459118,
"lastModifiedTimestamp": 1611857459118,
"childProfileIds": [
]
}
]

View File

@@ -1,71 +0,0 @@
[
{
"model_type": "Profile",
"id": 37,
"customerId": 2,
"profileType": "passpoint",
"name": "hotspot20-profile-2021-01-21T21:28:59.171Z",
"details": {
"model_type": "PasspointProfile",
"enableInterworkingAndHs20": true,
"hessid": null,
"passpointAccessNetworkType": "free_public_network",
"passpointNetworkAuthenticationType": "acceptance_of_terms_and_conditions",
"additionalStepsRequiredForAccess": 0,
"deauthRequestTimeout": 0,
"operatingClass": 0,
"termsAndConditionsFile": {
"model_type": "ManagedFileInfo",
"md5checksum": null,
"lastModifiedTimestamp": null,
"apExportUrl": "https://localhost:9091/filestore/termsAndConditions",
"fileCategory": "ExternalPolicyConfiguration",
"fileType": "TEXT",
"altSlot": false
},
"whitelistDomain": null,
"emergencyServicesReachable": true,
"unauthenticatedEmergencyServiceAccessible": false,
"internetConnectivity": true,
"connectionCapabilitySet": [
{
"model_type": "PasspointConnectionCapability",
"connectionCapabilitiesPortNumber": 8888,
"connectionCapabilitiesIpProtocol": "TCP",
"connectionCapabilitiesStatus": "open"
}
],
"ipAddressTypeAvailability": "public_IPv4_address_available",
"qosMapSetConfiguration": null,
"apGeospatialLocation": null,
"apCivicLocation": null,
"apPublicLocationIdUri": null,
"gasAddr3Behaviour": "p2pSpecWorkaroundFromRequest",
"anqpDomainId": 1234,
"disableDownstreamGroupAddressedForwarding": false,
"enable2pt4GHz": true,
"enable5GHz": true,
"associatedAccessSsidProfileIds": [
32
],
"osuSsidProfileId": 31,
"passpointOperatorProfileId": 34,
"passpointVenueProfileId": 33,
"passpointOsuProviderProfileIds": [
35,
36
],
"accessNetworkType": "free_public_network",
"networkAuthenticationType": "acceptance_of_terms_and_conditions",
"profileType": "passpoint"
},
"createdTimestamp": 0,
"lastModifiedTimestamp": 1611264539331,
"childProfileIds": [
33,
34,
35,
36
]
}
]

View File

@@ -1,263 +0,0 @@
[
{
"model_type": "Profile",
"id": 35,
"customerId": 2,
"profileType": "passpoint_osu_id_provider",
"name": "provider1-profile-2021-01-21T21:28:59.057Z",
"details": {
"model_type": "PasspointOsuProviderProfile",
"mccMncList": [
{
"model_type": "PasspointMccMnc",
"mcc": 302,
"mnc": 720,
"iso": "ca",
"country": "Canada",
"countryCode": 1,
"network": "Rogers AT&T Wireless",
"mccMncPairing": "302,720"
}
],
"naiRealmList": [
{
"model_type": "PasspointNaiRealmInformation",
"naiRealms": [
"rogers.com"
],
"encoding": 0,
"eapMethods": [
"EAP-TTLS with username/password",
"EAP-TLS with certificate"
],
"eapMap": {
"EAP-TTLS with username/password": [
"Credential Type:username/password",
"Non-EAP Inner Authentication Type:MSCHAPV2"
],
"EAP-TLS with certificate": [
"Credential Type:Certificate"
]
}
}
],
"osuIconList": [
{
"model_type": "PasspointOsuIcon",
"iconWidth": 32,
"iconHeight": 32,
"languageCode": "eng",
"iconLocale": "en_CA",
"iconName": "icon32eng",
"filePath": "/tmp/icon32eng.png",
"imageUrl": "https://localhost:9096/icon32eng.png",
"hs20IconString": "32:32:eng:image/png:icon32eng:/tmp/icon32eng.png"
},
{
"model_type": "PasspointOsuIcon",
"iconWidth": 32,
"iconHeight": 32,
"languageCode": "fra",
"iconLocale": "fr_CA",
"iconName": "icon32fra",
"filePath": "/tmp/icon32fra.png",
"imageUrl": "https://localhost:9096/icon32fra.png",
"hs20IconString": "32:32:fra:image/png:icon32fra:/tmp/icon32fra.png"
},
{
"model_type": "PasspointOsuIcon",
"iconWidth": 32,
"iconHeight": 32,
"languageCode": "eng",
"iconLocale": "en_US",
"iconName": "icon32usa",
"filePath": "/tmp/icon32usa.png",
"imageUrl": "https://localhost:9096/icon32usa.png",
"hs20IconString": "32:32:eng:image/png:icon32usa:/tmp/icon32usa.png"
}
],
"osuServerUri": "https://example.com/osu/rogers",
"osuFriendlyName": [
{
"model_type": "PasspointDuple",
"locale": "eng",
"dupleIso3Language": "eng",
"dupleName": "Example provider rogers",
"defaultDupleSeparator": ":",
"asDuple": "eng:Example provider rogers"
},
{
"model_type": "PasspointDuple",
"locale": "fra",
"dupleIso3Language": "fra",
"dupleName": "Exemple de fournisseur rogers",
"defaultDupleSeparator": ":",
"asDuple": "fra:Exemple de fournisseur rogers"
}
],
"osuNaiStandalone": "anonymous@rogers.com",
"osuNaiShared": "anonymous@rogers.com",
"osuMethodList": [
1,
0
],
"osuServiceDescription": [
{
"model_type": "PasspointDuple",
"locale": "eng",
"dupleIso3Language": "eng",
"dupleName": "Example services rogers",
"defaultDupleSeparator": ":",
"asDuple": "eng:Example services rogers"
},
{
"model_type": "PasspointDuple",
"locale": "fra",
"dupleIso3Language": "fra",
"dupleName": "Exemples de services rogers",
"defaultDupleSeparator": ":",
"asDuple": "fra:Exemples de services rogers"
}
],
"roamingOi": [
"BAA2D00100",
"BAA2D00000"
],
"profileType": "passpoint_osu_id_provider"
},
"createdTimestamp": 1611264539070,
"lastModifiedTimestamp": 1611264539070,
"childProfileIds": []
},
{
"model_type": "Profile",
"id": 36,
"customerId": 2,
"profileType": "passpoint_osu_id_provider",
"name": "provider2-profile-2021-01-21T21:28:59.118Z",
"details": {
"model_type": "PasspointOsuProviderProfile",
"mccMncList": [
{
"model_type": "PasspointMccMnc",
"mcc": 302,
"mnc": 220,
"iso": "ca",
"country": "Canada",
"countryCode": 1,
"network": "Telus Mobility",
"mccMncPairing": "302,220"
}
],
"naiRealmList": [
{
"model_type": "PasspointNaiRealmInformation",
"naiRealms": [
"telus.com"
],
"encoding": 0,
"eapMethods": [
"EAP-TTLS with username/password",
"EAP-TLS with certificate"
],
"eapMap": {
"EAP-TTLS with username/password": [
"Credential Type:username/password",
"Non-EAP Inner Authentication Type:MSCHAPV2"
],
"EAP-TLS with certificate": [
"Credential Type:Certificate"
]
}
}
],
"osuIconList": [
{
"model_type": "PasspointOsuIcon",
"iconWidth": 32,
"iconHeight": 32,
"languageCode": "eng",
"iconLocale": "en_CA",
"iconName": "icon32eng",
"filePath": "/tmp/icon32eng.png",
"imageUrl": "https://localhost:9096/icon32eng.png",
"hs20IconString": "32:32:eng:image/png:icon32eng:/tmp/icon32eng.png"
},
{
"model_type": "PasspointOsuIcon",
"iconWidth": 32,
"iconHeight": 32,
"languageCode": "fra",
"iconLocale": "fr_CA",
"iconName": "icon32fra",
"filePath": "/tmp/icon32fra.png",
"imageUrl": "https://localhost:9096/icon32fra.png",
"hs20IconString": "32:32:fra:image/png:icon32fra:/tmp/icon32fra.png"
},
{
"model_type": "PasspointOsuIcon",
"iconWidth": 32,
"iconHeight": 32,
"languageCode": "eng",
"iconLocale": "en_US",
"iconName": "icon32usa",
"filePath": "/tmp/icon32usa.png",
"imageUrl": "https://localhost:9096/icon32usa.png",
"hs20IconString": "32:32:eng:image/png:icon32usa:/tmp/icon32usa.png"
}
],
"osuServerUri": "https://example.com/osu/telus",
"osuFriendlyName": [
{
"model_type": "PasspointDuple",
"locale": "eng",
"dupleIso3Language": "eng",
"dupleName": "Example provider telus",
"defaultDupleSeparator": ":",
"asDuple": "eng:Example provider telus"
},
{
"model_type": "PasspointDuple",
"locale": "fra",
"dupleIso3Language": "fra",
"dupleName": "Exemple de fournisseur telus",
"defaultDupleSeparator": ":",
"asDuple": "fra:Exemple de fournisseur telus"
}
],
"osuNaiStandalone": "anonymous@telus.com",
"osuNaiShared": "anonymous@telus.com",
"osuMethodList": [
1,
0
],
"osuServiceDescription": [
{
"model_type": "PasspointDuple",
"locale": "eng",
"dupleIso3Language": "eng",
"dupleName": "Example services telus",
"defaultDupleSeparator": ":",
"asDuple": "eng:Example services telus"
},
{
"model_type": "PasspointDuple",
"locale": "fra",
"dupleIso3Language": "fra",
"dupleName": "Exemples de services telus",
"defaultDupleSeparator": ":",
"asDuple": "fra:Exemples de services telus"
}
],
"roamingOi": [
"004096",
"005014",
"F4F5E8F5F4"
],
"profileType": "passpoint_osu_id_provider"
},
"createdTimestamp": 1611264539131,
"lastModifiedTimestamp": 1611264539131,
"childProfileIds": []
}
]

View File

@@ -1,299 +0,0 @@
[
{
"model_type": "Profile",
"id": 10,
"customerId": 2,
"profileType": "service_metrics_collection_config",
"name": "Metrics-Profile-3-Radios",
"details": {
"model_type": "ServiceMetricsCollectionConfigProfile",
"radioTypes": [
"is5GHzL",
"is2dot4GHz",
"is5GHzU"
],
"serviceMetricDataTypes": [
"ApNode",
"ApSsid",
"Client",
"Channel",
"Neighbour"
],
"metricConfigParameterMap": {
"ApNode": [
{
"model_type": "ServiceMetricSurveyConfigParameters",
"samplingInterval": 30,
"reportingIntervalSeconds": 120,
"channelSurveyType": "OFF_CHANNEL",
"scanIntervalMillis": 0,
"percentUtilizationThreshold": 10,
"delayMillisecondsThreshold": 600,
"radioType": "is5GHzL",
"serviceMetricDataType": "ApNode",
"statsReportFormat": "RAW"
},
{
"model_type": "ServiceMetricSurveyConfigParameters",
"samplingInterval": 30,
"reportingIntervalSeconds": 120,
"channelSurveyType": "OFF_CHANNEL",
"scanIntervalMillis": 0,
"percentUtilizationThreshold": 10,
"delayMillisecondsThreshold": 600,
"radioType": "is5GHzU",
"serviceMetricDataType": "ApNode",
"statsReportFormat": "RAW"
},
{
"model_type": "ServiceMetricSurveyConfigParameters",
"samplingInterval": 30,
"reportingIntervalSeconds": 120,
"channelSurveyType": "OFF_CHANNEL",
"scanIntervalMillis": 0,
"percentUtilizationThreshold": 10,
"delayMillisecondsThreshold": 600,
"radioType": "is2dot4GHz",
"serviceMetricDataType": "ApNode",
"statsReportFormat": "RAW"
},
{
"model_type": "ServiceMetricSurveyConfigParameters",
"samplingInterval": 30,
"reportingIntervalSeconds": 60,
"channelSurveyType": "ON_CHANNEL",
"scanIntervalMillis": 0,
"percentUtilizationThreshold": 10,
"delayMillisecondsThreshold": 600,
"radioType": "is5GHzU",
"serviceMetricDataType": "ApNode",
"statsReportFormat": "RAW"
},
{
"model_type": "ServiceMetricSurveyConfigParameters",
"samplingInterval": 30,
"reportingIntervalSeconds": 60,
"channelSurveyType": "ON_CHANNEL",
"scanIntervalMillis": 0,
"percentUtilizationThreshold": 10,
"delayMillisecondsThreshold": 600,
"radioType": "is2dot4GHz",
"serviceMetricDataType": "ApNode",
"statsReportFormat": "RAW"
},
{
"model_type": "ServiceMetricSurveyConfigParameters",
"samplingInterval": 30,
"reportingIntervalSeconds": 60,
"channelSurveyType": "ON_CHANNEL",
"scanIntervalMillis": 0,
"percentUtilizationThreshold": 10,
"delayMillisecondsThreshold": 600,
"radioType": "is5GHzL",
"serviceMetricDataType": "ApNode",
"statsReportFormat": "RAW"
}
],
"ApSsid": [
{
"model_type": "ServiceMetricRadioConfigParameters",
"samplingInterval": 30,
"reportingIntervalSeconds": 60,
"radioType": "is5GHzU",
"serviceMetricDataType": "ApSsid"
},
{
"model_type": "ServiceMetricRadioConfigParameters",
"samplingInterval": 30,
"reportingIntervalSeconds": 60,
"radioType": "is5GHzL",
"serviceMetricDataType": "ApSsid"
},
{
"model_type": "ServiceMetricRadioConfigParameters",
"samplingInterval": 30,
"reportingIntervalSeconds": 60,
"radioType": "is2dot4GHz",
"serviceMetricDataType": "ApSsid"
}
],
"Client": [
{
"model_type": "ServiceMetricRadioConfigParameters",
"samplingInterval": 30,
"reportingIntervalSeconds": 60,
"radioType": "is5GHzU",
"serviceMetricDataType": "Client"
},
{
"model_type": "ServiceMetricRadioConfigParameters",
"samplingInterval": 30,
"reportingIntervalSeconds": 60,
"radioType": "is5GHzL",
"serviceMetricDataType": "Client"
},
{
"model_type": "ServiceMetricRadioConfigParameters",
"samplingInterval": 30,
"reportingIntervalSeconds": 60,
"radioType": "is2dot4GHz",
"serviceMetricDataType": "Client"
}
],
"Channel": [
{
"model_type": "ServiceMetricSurveyConfigParameters",
"samplingInterval": 30,
"reportingIntervalSeconds": 120,
"channelSurveyType": "OFF_CHANNEL",
"scanIntervalMillis": 0,
"percentUtilizationThreshold": 10,
"delayMillisecondsThreshold": 600,
"radioType": "is5GHzL",
"serviceMetricDataType": "Channel",
"statsReportFormat": "RAW"
},
{
"model_type": "ServiceMetricSurveyConfigParameters",
"samplingInterval": 30,
"reportingIntervalSeconds": 120,
"channelSurveyType": "OFF_CHANNEL",
"scanIntervalMillis": 0,
"percentUtilizationThreshold": 10,
"delayMillisecondsThreshold": 600,
"radioType": "is5GHzU",
"serviceMetricDataType": "Channel",
"statsReportFormat": "RAW"
},
{
"model_type": "ServiceMetricSurveyConfigParameters",
"samplingInterval": 30,
"reportingIntervalSeconds": 120,
"channelSurveyType": "OFF_CHANNEL",
"scanIntervalMillis": 0,
"percentUtilizationThreshold": 10,
"delayMillisecondsThreshold": 600,
"radioType": "is2dot4GHz",
"serviceMetricDataType": "Channel",
"statsReportFormat": "RAW"
},
{
"model_type": "ServiceMetricSurveyConfigParameters",
"samplingInterval": 30,
"reportingIntervalSeconds": 60,
"channelSurveyType": "ON_CHANNEL",
"scanIntervalMillis": 0,
"percentUtilizationThreshold": 10,
"delayMillisecondsThreshold": 600,
"radioType": "is5GHzU",
"serviceMetricDataType": "Channel",
"statsReportFormat": "RAW"
},
{
"model_type": "ServiceMetricSurveyConfigParameters",
"samplingInterval": 30,
"reportingIntervalSeconds": 60,
"channelSurveyType": "ON_CHANNEL",
"scanIntervalMillis": 0,
"percentUtilizationThreshold": 10,
"delayMillisecondsThreshold": 600,
"radioType": "is2dot4GHz",
"serviceMetricDataType": "Channel",
"statsReportFormat": "RAW"
},
{
"model_type": "ServiceMetricSurveyConfigParameters",
"samplingInterval": 30,
"reportingIntervalSeconds": 60,
"channelSurveyType": "ON_CHANNEL",
"scanIntervalMillis": 0,
"percentUtilizationThreshold": 10,
"delayMillisecondsThreshold": 600,
"radioType": "is5GHzL",
"serviceMetricDataType": "Channel",
"statsReportFormat": "RAW"
}
],
"Neighbour": [
{
"model_type": "ServiceMetricSurveyConfigParameters",
"samplingInterval": 30,
"reportingIntervalSeconds": 120,
"channelSurveyType": "OFF_CHANNEL",
"scanIntervalMillis": 0,
"percentUtilizationThreshold": 10,
"delayMillisecondsThreshold": 600,
"radioType": "is5GHzU",
"serviceMetricDataType": "Neighbour",
"statsReportFormat": "RAW"
},
{
"model_type": "ServiceMetricSurveyConfigParameters",
"samplingInterval": 30,
"reportingIntervalSeconds": 60,
"channelSurveyType": "ON_CHANNEL",
"scanIntervalMillis": 0,
"percentUtilizationThreshold": 10,
"delayMillisecondsThreshold": 600,
"radioType": "is5GHzL",
"serviceMetricDataType": "Neighbour",
"statsReportFormat": "RAW"
},
{
"model_type": "ServiceMetricSurveyConfigParameters",
"samplingInterval": 30,
"reportingIntervalSeconds": 120,
"channelSurveyType": "OFF_CHANNEL",
"scanIntervalMillis": 0,
"percentUtilizationThreshold": 10,
"delayMillisecondsThreshold": 600,
"radioType": "is2dot4GHz",
"serviceMetricDataType": "Neighbour",
"statsReportFormat": "RAW"
},
{
"model_type": "ServiceMetricSurveyConfigParameters",
"samplingInterval": 30,
"reportingIntervalSeconds": 60,
"channelSurveyType": "ON_CHANNEL",
"scanIntervalMillis": 0,
"percentUtilizationThreshold": 10,
"delayMillisecondsThreshold": 600,
"radioType": "is5GHzU",
"serviceMetricDataType": "Neighbour",
"statsReportFormat": "RAW"
},
{
"model_type": "ServiceMetricSurveyConfigParameters",
"samplingInterval": 30,
"reportingIntervalSeconds": 120,
"channelSurveyType": "OFF_CHANNEL",
"scanIntervalMillis": 0,
"percentUtilizationThreshold": 10,
"delayMillisecondsThreshold": 600,
"radioType": "is5GHzL",
"serviceMetricDataType": "Neighbour",
"statsReportFormat": "RAW"
},
{
"model_type": "ServiceMetricSurveyConfigParameters",
"samplingInterval": 30,
"reportingIntervalSeconds": 60,
"channelSurveyType": "ON_CHANNEL",
"scanIntervalMillis": 0,
"percentUtilizationThreshold": 10,
"delayMillisecondsThreshold": 600,
"radioType": "is2dot4GHz",
"serviceMetricDataType": "Neighbour",
"statsReportFormat": "RAW"
}
]
},
"profileType": "service_metrics_collection_config"
},
"createdTimestamp": 1606778369931,
"lastModifiedTimestamp": 1606778369931,
"childProfileIds": [
]
}
]

View File

@@ -1,41 +0,0 @@
[
{
"model_type": "Profile",
"id": 34,
"customerId": 2,
"profileType": "passpoint_operator",
"name": "operator-profile-2021-01-21T21:28:58.994Z",
"details": {
"model_type": "PasspointOperatorProfile",
"serverOnlyAuthenticatedL2EncryptionNetwork": false,
"x509CertificateLocation": "/etc/ca.pem",
"operatorFriendlyName": [
{
"model_type": "PasspointDuple",
"locale": "fra",
"dupleIso3Language": "fra",
"dupleName": "Nom de l'opérateur convivial par défaut",
"defaultDupleSeparator": ":",
"asDuple": "fra:Nom de l'opérateur convivial par défaut"
},
{
"model_type": "PasspointDuple",
"locale": "eng",
"dupleIso3Language": "eng",
"dupleName": "Default friendly passpoint_operator name",
"defaultDupleSeparator": ":",
"asDuple": "eng:Default friendly passpoint_operator name"
}
],
"domainNameList": [
"bell.ca",
"telus.com",
"rogers.com"
],
"profileType": "passpoint_operator"
},
"createdTimestamp": 1611264539004,
"lastModifiedTimestamp": 1611264539004,
"childProfileIds": []
}
]

View File

@@ -1,24 +1,34 @@
[ [
{ {
"model_type": "Profile", "model_type": "Profile",
"id": 1, "id": 1,
"customerId": 2, "customerId": 2,
"profileType": "radius", "profileType": "radius",
"name": "Radius-Profile", "name": "RadiusProfileOttawa",
"details": { "details": {
"model_type": "RadiusProfile", "model_type": "RadiusProfile",
"primaryRadiusAuthServer": { "subnetConfiguration": null,
"serviceRegionMap": {
"Ottawa": {
"model_type": "RadiusServiceRegion",
"serverMap": {
"RadiusProfileOttawa": [
{
"model_type": "RadiusServer", "model_type": "RadiusServer",
"ipAddress": "192.168.0.1", "ipAddress": "localhost",
"secret": "testing123", "secret": "testing123",
"port": 1812, "authPort": 1812,
"timeout": null "timeout": null
}
]
},
"regionName": "Ottawa"
}
}, },
"profileType": "radius" "profileType": "radius"
}, },
"createdTimestamp": 1611262628767, "createdTimestamp": 1591653174195,
"lastModifiedTimestamp": 1611262628767, "lastModifiedTimestamp": 1591653174195,
"childProfileIds": [ "childProfileIds": []
] }
}
] ]

View File

@@ -1,204 +0,0 @@
{
"model_type": "Profile",
"id": 4,
"customerId": 2,
"profileType": "rf",
"name": "TipWlan-rf",
"details": {
"model_type": "RfConfiguration",
"rfConfigMap": {
"is5GHz": {
"model_type": "RfElementConfiguration",
"radioType": "is5GHz",
"radioMode": "modeAC",
"rf": "TipWlan-rf",
"beaconInterval": 100,
"forceScanDuringVoice": "disabled",
"rtsCtsThreshold": 65535,
"channelBandwidth": "is80MHz",
"mimoMode": "twoByTwo",
"maxNumClients": 100,
"autoChannelSelection": false,
"activeScanSettings": {
"model_type": "ActiveScanSettings",
"enabled": true,
"scanFrequencySeconds": 10,
"scanDurationMillis": 65
},
"neighbouringListApConfig": {
"model_type": "NeighbouringAPListConfiguration",
"minSignal": -85,
"maxAps": 25
},
"minAutoCellSize": -65,
"perimeterDetectionEnabled": true,
"channelHopSettings": {
"model_type": "ChannelHopSettings",
"noiseFloorThresholdInDB": -75,
"noiseFloorThresholdTimeInSeconds": 180,
"nonWifiThresholdInPercentage": 50,
"nonWifiThresholdTimeInSeconds": 180,
"obssHopMode": "NON_WIFI"
},
"bestApEnabled": null,
"multicastRate": "auto",
"managementRate": "auto",
"rxCellSizeDb": -90,
"probeResponseThresholdDb": -90,
"clientDisconnectThresholdDb": -90,
"eirpTxPower": 18,
"bestApSettings": {
"model_type": "RadioBestApSettings",
"mlComputed": true,
"dropInSnrPercentage": 30,
"minLoadFactor": 40
}
},
"is2dot4GHz": {
"model_type": "RfElementConfiguration",
"radioType": "is2dot4GHz",
"radioMode": "modeN",
"rf": "TipWlan-rf",
"beaconInterval": 100,
"forceScanDuringVoice": "disabled",
"rtsCtsThreshold": 65535,
"channelBandwidth": "is20MHz",
"mimoMode": "twoByTwo",
"maxNumClients": 100,
"autoChannelSelection": false,
"activeScanSettings": {
"model_type": "ActiveScanSettings",
"enabled": true,
"scanFrequencySeconds": 10,
"scanDurationMillis": 65
},
"neighbouringListApConfig": {
"model_type": "NeighbouringAPListConfiguration",
"minSignal": -85,
"maxAps": 25
},
"minAutoCellSize": -65,
"perimeterDetectionEnabled": true,
"channelHopSettings": {
"model_type": "ChannelHopSettings",
"noiseFloorThresholdInDB": -75,
"noiseFloorThresholdTimeInSeconds": 180,
"nonWifiThresholdInPercentage": 50,
"nonWifiThresholdTimeInSeconds": 180,
"obssHopMode": "NON_WIFI"
},
"bestApEnabled": null,
"multicastRate": "auto",
"managementRate": "auto",
"rxCellSizeDb": -90,
"probeResponseThresholdDb": -90,
"clientDisconnectThresholdDb": -90,
"eirpTxPower": 18,
"bestApSettings": {
"model_type": "RadioBestApSettings",
"mlComputed": true,
"dropInSnrPercentage": 20,
"minLoadFactor": 50
}
},
"is5GHzU": {
"model_type": "RfElementConfiguration",
"radioType": "is5GHzU",
"radioMode": "modeAC",
"rf": "TipWlan-rf",
"beaconInterval": 100,
"forceScanDuringVoice": "disabled",
"rtsCtsThreshold": 65535,
"channelBandwidth": "is80MHz",
"mimoMode": "twoByTwo",
"maxNumClients": 100,
"autoChannelSelection": false,
"activeScanSettings": {
"model_type": "ActiveScanSettings",
"enabled": true,
"scanFrequencySeconds": 10,
"scanDurationMillis": 65
},
"neighbouringListApConfig": {
"model_type": "NeighbouringAPListConfiguration",
"minSignal": -85,
"maxAps": 25
},
"minAutoCellSize": -65,
"perimeterDetectionEnabled": true,
"channelHopSettings": {
"model_type": "ChannelHopSettings",
"noiseFloorThresholdInDB": -75,
"noiseFloorThresholdTimeInSeconds": 180,
"nonWifiThresholdInPercentage": 50,
"nonWifiThresholdTimeInSeconds": 180,
"obssHopMode": "NON_WIFI"
},
"bestApEnabled": null,
"multicastRate": "auto",
"managementRate": "auto",
"rxCellSizeDb": -90,
"probeResponseThresholdDb": -90,
"clientDisconnectThresholdDb": -90,
"eirpTxPower": 18,
"bestApSettings": {
"model_type": "RadioBestApSettings",
"mlComputed": true,
"dropInSnrPercentage": 30,
"minLoadFactor": 40
}
},
"is5GHzL": {
"model_type": "RfElementConfiguration",
"radioType": "is5GHzL",
"radioMode": "modeAC",
"rf": "TipWlan-rf",
"beaconInterval": 100,
"forceScanDuringVoice": "disabled",
"rtsCtsThreshold": 65535,
"channelBandwidth": "is80MHz",
"mimoMode": "twoByTwo",
"maxNumClients": 100,
"autoChannelSelection": false,
"activeScanSettings": {
"model_type": "ActiveScanSettings",
"enabled": true,
"scanFrequencySeconds": 10,
"scanDurationMillis": 65
},
"neighbouringListApConfig": {
"model_type": "NeighbouringAPListConfiguration",
"minSignal": -85,
"maxAps": 25
},
"minAutoCellSize": -65,
"perimeterDetectionEnabled": true,
"channelHopSettings": {
"model_type": "ChannelHopSettings",
"noiseFloorThresholdInDB": -75,
"noiseFloorThresholdTimeInSeconds": 180,
"nonWifiThresholdInPercentage": 50,
"nonWifiThresholdTimeInSeconds": 180,
"obssHopMode": "NON_WIFI"
},
"bestApEnabled": null,
"multicastRate": "auto",
"managementRate": "auto",
"rxCellSizeDb": -90,
"probeResponseThresholdDb": -90,
"clientDisconnectThresholdDb": -90,
"eirpTxPower": 18,
"bestApSettings": {
"model_type": "RadioBestApSettings",
"mlComputed": true,
"dropInSnrPercentage": 30,
"minLoadFactor": 40
}
}
},
"profileType": "rf"
},
"createdTimestamp": 1612285248650,
"lastModifiedTimestamp": 1612285248650,
"childProfileIds": []
}

View File

@@ -1,35 +1,30 @@
[ [
{ {
"model_type": "Profile", "model_type": "Profile",
"id": 2, "id": 6,
"customerId": 2, "customerId": 2,
"profileType": "ssid", "profileType": "ssid",
"name": "TipWlan-cloud-3-radios", "name": "DefaultSsid-2g",
"details": { "details": {
"model_type": "SsidConfiguration", "model_type": "SsidConfiguration",
"ssid": "TipWlan-cloud-3-radios", "ssid": "Default-SSID-2g",
"appliedRadios": [ "appliedRadios": [
"is5GHzU", "is2dot4GHz"
"is2dot4GHz",
"is5GHzL"
], ],
"ssidAdminState": "enabled", "ssidAdminState": "enabled",
"secureMode": "wpa2OnlyPSK", "secureMode": "wpa2PSK",
"vlanId": 1, "vlanId": 1,
"keyStr": "openwifi", "keyStr": "12345678",
"broadcastSsid": "enabled", "broadcastSsid": "enabled",
"keyRefresh": 0, "keyRefresh": 0,
"noLocalSubnets": false, "noLocalSubnets": false,
"radiusServiceId": 0, "radiusServiceName": null,
"radiusAcountingServiceInterval": 60,
"captivePortalId": null, "captivePortalId": null,
"bandwidthLimitDown": 0, "bandwidthLimitDown": 0,
"bandwidthLimitUp": 0, "bandwidthLimitUp": 0,
"clientBandwidthLimitDown": 0,
"clientBandwidthLimitUp": 0,
"videoTrafficOnly": false, "videoTrafficOnly": false,
"radioBasedConfigs": { "radioBasedConfigs": {
"is5GHzU": { "is5GHz": {
"model_type": "RadioBasedSsidConfiguration", "model_type": "RadioBasedSsidConfiguration",
"enable80211r": null, "enable80211r": null,
"enable80211k": null, "enable80211k": null,
@@ -41,7 +36,7 @@
"enable80211k": null, "enable80211k": null,
"enable80211v": null "enable80211v": null
}, },
"is5GHz": { "is5GHzU": {
"model_type": "RadioBasedSsidConfiguration", "model_type": "RadioBasedSsidConfiguration",
"enable80211r": null, "enable80211r": null,
"enable80211k": null, "enable80211k": null,
@@ -57,19 +52,133 @@
"bonjourGatewayProfileId": null, "bonjourGatewayProfileId": null,
"enable80211w": null, "enable80211w": null,
"wepConfig": null, "wepConfig": null,
"forwardMode": "BRIDGE", "forwardMode": null,
"profileType": "ssid"
},
"createdTimestamp": 1591653239983,
"lastModifiedTimestamp": 1591653239983,
"childProfileIds": []
},
{
"model_type": "Profile",
"id": 7,
"customerId": 2,
"profileType": "ssid", "profileType": "ssid",
"radiusClientConfiguration": { "name": "DefaultSsid-5gl",
"model_type": "RadiusNasConfiguration", "details": {
"nasClientId": "DEFAULT", "model_type": "SsidConfiguration",
"nasClientIp": "WAN_IP", "ssid": "Default-SSID-5gl",
"userDefinedNasId": null, "appliedRadios": [
"userDefinedNasIp": null, "is5GHzL"
"operatorId": null ],
"ssidAdminState": "enabled",
"secureMode": "wpaEAP",
"vlanId": 1,
"keyStr": "12345678",
"broadcastSsid": "enabled",
"keyRefresh": 0,
"noLocalSubnets": false,
"radiusServiceName": "RadiusProfileOttawa",
"captivePortalId": null,
"bandwidthLimitDown": 0,
"bandwidthLimitUp": 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
} }
}, },
"createdTimestamp": 1612285248638, "bonjourGatewayProfileId": null,
"lastModifiedTimestamp": 1612285248638, "enable80211w": null,
"wepConfig": null,
"forwardMode": null,
"profileType": "ssid"
},
"createdTimestamp": 1591653240017,
"lastModifiedTimestamp": 1591654215374,
"childProfileIds": [
1
]
},
{
"model_type": "Profile",
"id": 8,
"customerId": 2,
"profileType": "ssid",
"name": "DefaultSsid-5gu",
"details": {
"model_type": "SsidConfiguration",
"ssid": "Default-SSID-5gu",
"appliedRadios": [
"is5GHzU"
],
"ssidAdminState": "enabled",
"secureMode": "wpa2PSK",
"vlanId": 1,
"keyStr": "12345678",
"broadcastSsid": "enabled",
"keyRefresh": 0,
"noLocalSubnets": false,
"radiusServiceName": null,
"captivePortalId": null,
"bandwidthLimitDown": 0,
"bandwidthLimitUp": 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
}
},
"bonjourGatewayProfileId": null,
"enable80211w": null,
"wepConfig": null,
"forwardMode": null,
"profileType": "ssid"
},
"createdTimestamp": 1591654301763,
"lastModifiedTimestamp": 1591654301763,
"childProfileIds": [] "childProfileIds": []
} }
] ]

View File

@@ -1,42 +0,0 @@
[
{
"model_type": "Profile",
"id": 33,
"customerId": 2,
"profileType": "passpoint_venue",
"name": "venue-profile-2021-01-21T21:28:58.934Z",
"details": {
"model_type": "PasspointVenueProfile",
"venueNameSet": [
{
"model_type": "PasspointVenueName",
"locale": "fra",
"dupleIso3Language": "fra",
"dupleName": "Exemple de lieu",
"defaultDupleSeparator": ":",
"venueUrl": "http://www.example.com/info-fra",
"asDuple": "fra:Exemple de lieu"
},
{
"model_type": "PasspointVenueName",
"locale": "eng",
"dupleIso3Language": "eng",
"dupleName": "Example passpoint_venue",
"defaultDupleSeparator": ":",
"venueUrl": "http://www.example.com/info-eng",
"asDuple": "eng:Example passpoint_venue"
}
],
"venueTypeAssignment": {
"model_type": "PasspointVenueTypeAssignment",
"venueDescription": "Research and Development Facility",
"venueGroupId": 2,
"venueTypeId": 8
},
"profileType": "passpoint_venue"
},
"createdTimestamp": 1611264538947,
"lastModifiedTimestamp": 1611264538947,
"childProfileIds": []
}
]

View File

@@ -57,6 +57,7 @@
<logger name="org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainer" level="INFO"/> <logger name="org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainer" level="INFO"/>
<logger name="com.telecominfraproject.wlan" level="DEBUG"/> <logger name="com.telecominfraproject.wlan" level="DEBUG"/>
<logger name="ai.connectus" level="DEBUG"/>
<logger name="com.netflix.servo.tag.aws.AwsInjectableTag" level="OFF"/> <logger name="com.netflix.servo.tag.aws.AwsInjectableTag" level="OFF"/>
<logger name="com.vmware.ovsdb.service.OvsdbConnectionInfo" level="OFF"/> <logger name="com.vmware.ovsdb.service.OvsdbConnectionInfo" level="OFF"/>
<logger name="com.vmware.ovsdb.netty.OvsdbConnectionHandler" level="ERROR"/> <logger name="com.vmware.ovsdb.netty.OvsdbConnectionHandler" level="ERROR"/>

View File

@@ -10,44 +10,33 @@ CLIENT_MQTT_SSL_PROPS+=" -Djavax.net.ssl.keyStore=/opt/tip-wlan/certs/client_key
CLIENT_MQTT_SSL_PROPS+=" -Djavax.net.ssl.keyStorePassword=mypassword" CLIENT_MQTT_SSL_PROPS+=" -Djavax.net.ssl.keyStorePassword=mypassword"
CLIENT_MQTT_SSL_PROPS+=" -Djavax.net.ssl.trustStore=/opt/tip-wlan/certs/truststore.jks" CLIENT_MQTT_SSL_PROPS+=" -Djavax.net.ssl.trustStore=/opt/tip-wlan/certs/truststore.jks"
CLIENT_MQTT_SSL_PROPS+=" -Djavax.net.ssl.trustStorePassword=mypassword" CLIENT_MQTT_SSL_PROPS+=" -Djavax.net.ssl.trustStorePassword=mypassword"
CLIENT_MQTT_SSL_PROPS+=" -Dtip.wlan.mqttBroker.password=admin" CLIENT_MQTT_SSL_PROPS+=" -Dconnectus.mqttBroker.password=admin"
OVSDB_PROPS=" " OVSDB_PROPS=" "
OVSDB_PROPS+=" -Dtip.wlan.ovsdb.managerAddr=opensync-controller" OVSDB_PROPS+=" -Dconnectus.ovsdb.managerAddr=opensync-controller"
OVSDB_PROPS+=" -Dtip.wlan.ovsdb.listenPort=6640 " OVSDB_PROPS+=" -Dconnectus.ovsdb.listenPort=6640 "
OVSDB_PROPS+=" -Dtip.wlan.ovsdb.redirector.listenPort=6643" OVSDB_PROPS+=" -Dconnectus.ovsdb.redirector.listenPort=6643"
OVSDB_PROPS+=" -Dtip.wlan.ovsdb.timeoutSec=30" OVSDB_PROPS+=" -Dconnectus.ovsdb.timeoutSec=30"
OVSDB_PROPS+=" -Dtip.wlan.ovsdb.trustStore=/opt/tip-wlan/certs/truststore.jks" OVSDB_PROPS+=" -Dconnectus.ovsdb.trustStore=/opt/tip-wlan/certs/truststore.jks"
OVSDB_PROPS+=" -Dtip.wlan.ovsdb.keyStore=/opt/tip-wlan/certs/server.pkcs12" OVSDB_PROPS+=" -Dconnectus.ovsdb.keyStore=/opt/tip-wlan/certs/server.pkcs12"
OVSDB_PROPS+=" -Dtip.wlan.ovsdb.customerEquipmentFileName=$OVSDB_EQUIPMENT_CONFIG_FILE" OVSDB_PROPS+=" -Dconnectus.ovsdb.customerEquipmentFileName=$OVSDB_EQUIPMENT_CONFIG_FILE"
OVSDB_PROPS+=" -Dtip.wlan.ovsdb.apProfileFileName=$OVSDB_APPROFILE_CONFIG_FILE" OVSDB_PROPS+=" -Dconnectus.ovsdb.apProfileFileName=$OVSDB_APPROFILE_CONFIG_FILE"
OVSDB_PROPS+=" -Dtip.wlan.ovsdb.metricsProfileFileName=$OVSDB_METRICSPROFILE_CONFIG_FILE" OVSDB_PROPS+=" -Dconnectus.ovsdb.ssidProfileFileName=$OVSDB_SSIDPROFILE_CONFIG_FILE"
OVSDB_PROPS+=" -Dtip.wlan.ovsdb.hotspot20ProfileFileName=$OVSDB_HOTSPOT20PROFILE_CONFIG_FILE" OVSDB_PROPS+=" -Dconnectus.ovsdb.radiusProfileFileName=$OVSDB_RADIUSPROFILE_CONFIG_FILE"
OVSDB_PROPS+=" -Dtip.wlan.ovsdb.operatorProfileFileName=$OVSDB_OPERATORPROFILE_CONFIG_FILE" OVSDB_PROPS+=" -Dconnectus.ovsdb.locationFileName=$OVSDB_LOCATION_CONFIG_FILE"
OVSDB_PROPS+=" -Dtip.wlan.ovsdb.venueProfileFileName=$OVSDB_VENUEPROFILE_CONFIG_FILE" OVSDB_PROPS+=" -Dconnectus.ovsdb.wifi-iface.default_bridge=$OVSDB_IF_DEFAULT_BRIDGE"
OVSDB_PROPS+=" -Dtip.wlan.ovsdb.idProviderProfileFileName=$OVSDB_IDPROVIDERPROFILE_CONFIG_FILE" OVSDB_PROPS+=" -Dconnectus.ovsdb.wifi-iface.default_radio0=$OVSDB_IF_DEFAULT_RADIO_0"
OVSDB_PROPS+=" -Dtip.wlan.ovsdb.rfProfileFileName=$OVSDB_RFPROFILE_CONFIG_FILE" OVSDB_PROPS+=" -Dconnectus.ovsdb.wifi-iface.default_radio1=$OVSDB_IF_DEFAULT_RADIO_1"
OVSDB_PROPS+=" -Dtip.wlan.ovsdb.ssidProfileFileName=$OVSDB_SSIDPROFILE_CONFIG_FILE" OVSDB_PROPS+=" -Dconnectus.ovsdb.wifi-iface.default_radio2=$OVSDB_IF_DEFAULT_RADIO_2"
OVSDB_PROPS+=" -Dtip.wlan.preventClientCnAlteration=$OVSDB_PREVENT_CLIENTCN_ALTERATION" OVSDB_PROPS+=" -Dconnectus.ovsdb.wifi-device.radio0=$OVSDB_DEVICE_RADIO_0"
OVSDB_PROPS+=" -Dtip.wlan.ovsdb.radiusProfileFileName=$OVSDB_RADIUSPROFILE_CONFIG_FILE" OVSDB_PROPS+=" -Dconnectus.ovsdb.wifi-device.radio1=$OVSDB_DEVICE_RADIO_1"
OVSDB_PROPS+=" -Dtip.wlan.ovsdb.captiveProfileFileName=$OVSDB_CAPTIVEPROFILE_CONFIG_FILE" OVSDB_PROPS+=" -Dconnectus.ovsdb.wifi-device.radio2=$OVSDB_DEVICE_RADIO_2"
OVSDB_PROPS+=" -Dtip.wlan.ovsdb.bonjourProfileFileName=$OVSDB_BONJOURPROFILE_CONFIG_FILE"
OVSDB_PROPS+=" -Dtip.wlan.ovsdb.locationFileName=$OVSDB_LOCATION_CONFIG_FILE"
OVSDB_PROPS+=" -Dtip.wlan.ovsdb.wifi-iface.default_bridge=$OVSDB_IF_DEFAULT_BRIDGE"
OVSDB_PROPS+=" -Dtip.wlan.ovsdb.wifi-iface.default_wan_type=$OVSDB_DEVICE_DEFAULT_WAN_TYPE"
OVSDB_PROPS+=" -Dtip.wlan.ovsdb.wifi-iface.default_wan_name=$OVSDB_DEVICE_DEFAULT_WAN_NAME"
OVSDB_PROPS+=" -Dtip.wlan.ovsdb.wifi-iface.default_lan_type=$OVSDB_DEVICE_DEFAULT_LAN_TYPE"
OVSDB_PROPS+=" -Dtip.wlan.ovsdb.wifi-iface.default_lan_name=$OVSDB_DEVICE_DEFAULT_LAN_NAME"
OVSDB_PROPS+=" -Dtip.wlan.ovsdb.wifi-iface.default_radio0=$OVSDB_IF_DEFAULT_RADIO_0"
OVSDB_PROPS+=" -Dtip.wlan.ovsdb.wifi-iface.default_radio1=$OVSDB_IF_DEFAULT_RADIO_1"
OVSDB_PROPS+=" -Dtip.wlan.ovsdb.wifi-iface.default_radio2=$OVSDB_IF_DEFAULT_RADIO_2"
echo OVSDB_PROPS $OVSDB_PROPS echo OVSDB_PROPS $OVSDB_PROPS
MQTT_PROPS=" " MQTT_PROPS=" "
MQTT_PROPS+=" -Dtip.wlan.mqttBroker.address.internal=tip-wlan-opensync-mqtt-broker-internal" MQTT_PROPS+=" -Dconnectus.mqttBroker.address=tip-wlan-opensync-mqtt-broker"
MQTT_PROPS+=" -Dtip.wlan.mqttBroker.address.external=tip-wlan-opensync-mqtt-broker-external" MQTT_PROPS+=" -Dconnectus.mqttBroker.listenPort=1883"
MQTT_PROPS+=" -Dtip.wlan.mqttBroker.listenPort=1883"
LOGGING_PROPS=" -Dlogging.config=file:/app/opensync/logback.xml" LOGGING_PROPS=" -Dlogging.config=file:/app/opensync/logback.xml"
@@ -56,8 +45,6 @@ RESTAPI_PROPS+=" -Dserver.port=443"
SPRING_EXTRA_PROPS=" --add-opens java.base/java.lang=ALL-UNNAMED" SPRING_EXTRA_PROPS=" --add-opens java.base/java.lang=ALL-UNNAMED"
JVM_EXTRA_PROPS=" ${JVM_MEM_OPTIONS:- } " export ALL_PROPS="$PROFILES $SSL_PROPS $CLIENT_MQTT_SSL_PROPS $OVSDB_PROPS $MQTT_PROPS $LOGGING_PROPS $RESTAPI_PROPS $SPRING_EXTRA_PROPS"
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 java $ALL_PROPS -jar app.jar

Some files were not shown because too many files have changed in this diff Show More