mirror of
https://github.com/Telecominfraproject/wlan-cloud-opensync-controller.git
synced 2025-11-01 19:17:52 +00:00
Compare commits
324 Commits
TOOLS-23-s
...
release-te
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
0fcdb7410e | ||
|
|
01fa2d3977 | ||
|
|
f0daa18906 | ||
|
|
d6d454bfc1 | ||
|
|
f30b1ca02e | ||
|
|
84f3d4ea5d | ||
|
|
a5fb061359 | ||
|
|
d8ff2f1a31 | ||
|
|
1d1b5f1c42 | ||
|
|
74587349fe | ||
|
|
b463d6720a | ||
|
|
036bd8ccc2 | ||
|
|
eebdfba431 | ||
|
|
52a5a2ac72 | ||
|
|
44b3d5e526 | ||
|
|
f9ece26ccf | ||
|
|
5f35b59a34 | ||
|
|
d3729a47d2 | ||
|
|
dc8e22a1b5 | ||
|
|
20484b634a | ||
|
|
a7af164bb1 | ||
|
|
e31b8ebd12 | ||
|
|
bdde9561f3 | ||
|
|
2964aa3c3c | ||
|
|
01d9d7538c | ||
|
|
ed5f445f11 | ||
|
|
b47d2ccda1 | ||
|
|
b6d6e4dea7 | ||
|
|
1e822e432c | ||
|
|
95173ada39 | ||
|
|
5bfd5dfac7 | ||
|
|
14b410e84b | ||
|
|
c8bace4850 | ||
|
|
b182a6953d | ||
|
|
acdd5eddbf | ||
|
|
c1de88aa05 | ||
|
|
28fcf06175 | ||
|
|
a3159ed34e | ||
|
|
ee56a5b2bb | ||
|
|
b60a72c202 | ||
|
|
b9dd818ca4 | ||
|
|
1d7f822ed4 | ||
|
|
6c784367ed | ||
|
|
176f549168 | ||
|
|
896c38c024 | ||
|
|
15e26fd829 | ||
|
|
4df03431ed | ||
|
|
7ef59937f2 | ||
|
|
0e80415e52 | ||
|
|
10b3a6227d | ||
|
|
3adb56f113 | ||
|
|
39da1f83a3 | ||
|
|
7f51486979 | ||
|
|
62672f090b | ||
|
|
012935818d | ||
|
|
d291e55831 | ||
|
|
94b8234ce3 | ||
|
|
2c12818808 | ||
|
|
d7b0110b28 | ||
|
|
338b35ef06 | ||
|
|
5bf25b8696 | ||
|
|
a3fe53d6bd | ||
|
|
764fb8caf7 | ||
|
|
e9553ae54f | ||
|
|
6b3b835e80 | ||
|
|
2c8e37c174 | ||
|
|
76d9cf79f5 | ||
|
|
e3da2db9ab | ||
|
|
0840795bd5 | ||
|
|
621ec89889 | ||
|
|
98ad16e32e | ||
|
|
85c323e3f1 | ||
|
|
9ba111255b | ||
|
|
f3bc79cbae | ||
|
|
130d64b0ea | ||
|
|
50ec9297b2 | ||
|
|
3153138dba | ||
|
|
2d579a7f19 | ||
|
|
d34f4934bd | ||
|
|
f40c30340e | ||
|
|
b04d71e75a | ||
|
|
8f30d21f69 | ||
|
|
4f65878ce5 | ||
|
|
4d624233c6 | ||
|
|
1d8889a857 | ||
|
|
2778cf423e | ||
|
|
1a47583604 | ||
|
|
49f7ad2774 | ||
|
|
b67f36a8a1 | ||
|
|
3cab779757 | ||
|
|
3e2b20ddc5 | ||
|
|
d0c126fbf8 | ||
|
|
761afeb403 | ||
|
|
7f139be81a | ||
|
|
41aa441275 | ||
|
|
e2d2278fe0 | ||
|
|
ad6f30f547 | ||
|
|
647e201647 | ||
|
|
c485f0284d | ||
|
|
e8b10d1785 | ||
|
|
81bb9e27b4 | ||
|
|
4193978e24 | ||
|
|
89b127d881 | ||
|
|
3f23f57746 | ||
|
|
bb3a49addb | ||
|
|
3d9b01c147 | ||
|
|
766e095a62 | ||
|
|
209c08041d | ||
|
|
c1db58bace | ||
|
|
a96b0c3f59 | ||
|
|
f9cf072cac | ||
|
|
ac521191d6 | ||
|
|
2b60dd8b57 | ||
|
|
ca023ea554 | ||
|
|
9cc3b96436 | ||
|
|
6ea19d9cbf | ||
|
|
0d72824e3f | ||
|
|
982d1cb2b3 | ||
|
|
ae4d2d2339 | ||
|
|
71c41bb892 | ||
|
|
ce14eb359d | ||
|
|
4cbb5e1d97 | ||
|
|
a585afc634 | ||
|
|
93b3deec4b | ||
|
|
f5007a73d0 | ||
|
|
879e9fa104 | ||
|
|
9899286bc0 | ||
|
|
2ea8f4a124 | ||
|
|
b7c1741ce9 | ||
|
|
410e3c5433 | ||
|
|
ba20478978 | ||
|
|
9e5470c9af | ||
|
|
899f4a4835 | ||
|
|
b03f478e9b | ||
|
|
f32a177d45 | ||
|
|
0c164e8c6f | ||
|
|
6f99d701f3 | ||
|
|
0869b875c9 | ||
|
|
fbc7b4b5b9 | ||
|
|
ec11860c22 | ||
|
|
956ce78bfc | ||
|
|
cea90c48d3 | ||
|
|
3e46874a6c | ||
|
|
c472380167 | ||
|
|
8a8ab11a65 | ||
|
|
8047ada806 | ||
|
|
ce26422a60 | ||
|
|
f57e271706 | ||
|
|
bf919dc8e9 | ||
|
|
6b80731a66 | ||
|
|
4b7bbaae6e | ||
|
|
03c8c15f53 | ||
|
|
337571a880 | ||
|
|
97a755e187 | ||
|
|
779de15f87 | ||
|
|
1c8f7f9e53 | ||
|
|
7204ec9abe | ||
|
|
894d462d49 | ||
|
|
01b5d7dd5e | ||
|
|
5867584afb | ||
|
|
627f401969 | ||
|
|
945c990878 | ||
|
|
dbd2a8e769 | ||
|
|
3767861dd1 | ||
|
|
36e5c6a504 | ||
|
|
c9f9bce45c | ||
|
|
6b4f8d3b09 | ||
|
|
0d8520f3a1 | ||
|
|
e904a8d721 | ||
|
|
182535d2f6 | ||
|
|
4c1dda44ff | ||
|
|
6056b6eb64 | ||
|
|
5fa57005a1 | ||
|
|
e8acb5920b | ||
|
|
0d3f80a8c0 | ||
|
|
01521b879a | ||
|
|
c91542ad74 | ||
|
|
8cd13e76ed | ||
|
|
07a47761dc | ||
|
|
338078d8ac | ||
|
|
355d8aae13 | ||
|
|
a39432fdf0 | ||
|
|
2f4be3f6c7 | ||
|
|
6d752a4468 | ||
|
|
8cff591ea1 | ||
|
|
835d045d14 | ||
|
|
32cff9673a | ||
|
|
e3eeeef99c | ||
|
|
ecec992274 | ||
|
|
1edef6a0e4 | ||
|
|
753cb29cc2 | ||
|
|
64d87e7e50 | ||
|
|
b93523d848 | ||
|
|
d9bef48a12 | ||
|
|
0b632f7b1b | ||
|
|
30a28b2a11 | ||
|
|
77b0a33fff | ||
|
|
979ca46cea | ||
|
|
b66ae8e91e | ||
|
|
917fd3d8a3 | ||
|
|
307b41081a | ||
|
|
34ef918a18 | ||
|
|
7cbfd6f163 | ||
|
|
39fddcd912 | ||
|
|
786a696a38 | ||
|
|
19d2b6fc7c | ||
|
|
57a87d345e | ||
|
|
1d6f980c30 | ||
|
|
a828426618 | ||
|
|
e13a4ca320 | ||
|
|
bb17a5a420 | ||
|
|
c30573f87e | ||
|
|
1089f84b08 | ||
|
|
4e1fa6040a | ||
|
|
0b8a9bd737 | ||
|
|
f2ded11a0b | ||
|
|
d0c6a81191 | ||
|
|
c2fbf95c32 | ||
|
|
1ffd1a4e0b | ||
|
|
39c63c32d5 | ||
|
|
a744b26adf | ||
|
|
f1ad8cb939 | ||
|
|
6ce752255c | ||
|
|
95e702119c | ||
|
|
643797b9e3 | ||
|
|
024f0feb74 | ||
|
|
9799070c83 | ||
|
|
68de002c8e | ||
|
|
ce98ab994f | ||
|
|
c9a4ed6f13 | ||
|
|
8b5b9a0f68 | ||
|
|
f306eba5f4 | ||
|
|
b807788b0c | ||
|
|
a833ef18e8 | ||
|
|
a5c1f5929a | ||
|
|
0103d99a50 | ||
|
|
14f00d01e7 | ||
|
|
6e4f77a17b | ||
|
|
95e551bc7f | ||
|
|
90245f305c | ||
|
|
5865ad1843 | ||
|
|
add8c990cd | ||
|
|
adf7c0ab4c | ||
|
|
4301889bdf | ||
|
|
cf29aae904 | ||
|
|
20b0d06d1e | ||
|
|
eabf83f387 | ||
|
|
4a516c26d2 | ||
|
|
3b5701f930 | ||
|
|
b9c0a6d88a | ||
|
|
56e8af9227 | ||
|
|
e7629f29b2 | ||
|
|
fb0b407153 | ||
|
|
37d24f8b06 | ||
|
|
a1114cd63c | ||
|
|
fc275ae4a9 | ||
|
|
fefaaa471a | ||
|
|
acc1f0dc89 | ||
|
|
20a22f4c2b | ||
|
|
4a546dc8c6 | ||
|
|
d2ce476e91 | ||
|
|
858babfa4e | ||
|
|
d7a2097eac | ||
|
|
0a0785d80f | ||
|
|
0529f7920d | ||
|
|
25870f88ac | ||
|
|
95a78546d3 | ||
|
|
d4781a429e | ||
|
|
fc18ad0140 | ||
|
|
4f6aa7a531 | ||
|
|
f904906562 | ||
|
|
b893590b0e | ||
|
|
d81b636632 | ||
|
|
a4575f8d12 | ||
|
|
f176c82d81 | ||
|
|
ccfbeebfc9 | ||
|
|
dece61257a | ||
|
|
9274badad7 | ||
|
|
fa49329909 | ||
|
|
8ebbfd2f93 | ||
|
|
441ff8e623 | ||
|
|
2c37455f94 | ||
|
|
9a7d8ff299 | ||
|
|
130eb00a17 | ||
|
|
3b79964c80 | ||
|
|
4ed2d584bc | ||
|
|
cf5cce76f2 | ||
|
|
7c2af78805 | ||
|
|
dccf016619 | ||
|
|
163ad39e4e | ||
|
|
e64d8488bb | ||
|
|
5ee0eface5 | ||
|
|
413d05be86 | ||
|
|
2e63025388 | ||
|
|
4e1b3a9cf5 | ||
|
|
ad564fc3f6 | ||
|
|
72ae8871d1 | ||
|
|
663b3ba2fc | ||
|
|
9894f075d4 | ||
|
|
3a01499fb9 | ||
|
|
4e29f2d3b9 | ||
|
|
39872da896 | ||
|
|
14ba1f51f1 | ||
|
|
7af93a052d | ||
|
|
bbed379675 | ||
|
|
fa7e85de3f | ||
|
|
cd15177511 | ||
|
|
a878583e50 | ||
|
|
8f81a2cecd | ||
|
|
f8c48a64a8 | ||
|
|
39e10c90ad | ||
|
|
7010919c11 | ||
|
|
82332611ce | ||
|
|
2be3559547 | ||
|
|
dda00db9e2 | ||
|
|
5a185cb38f | ||
|
|
127592d0c6 | ||
|
|
6f440e6002 | ||
|
|
6550c656c9 | ||
|
|
27583013f1 | ||
|
|
3f524d4567 | ||
|
|
ebe5a90ae0 | ||
|
|
3690111d08 | ||
|
|
467562d578 |
47
.github/workflows/maven_settings_template.xml
vendored
Normal file
47
.github/workflows/maven_settings_template.xml
vendored
Normal file
@@ -0,0 +1,47 @@
|
|||||||
|
<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>
|
||||||
63
.github/workflows/sonar.yml
vendored
Normal file
63
.github/workflows/sonar.yml
vendored
Normal file
@@ -0,0 +1,63 @@
|
|||||||
|
name: Run sonar analysis
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches: [ master ]
|
||||||
|
|
||||||
|
env:
|
||||||
|
SONAR_URL: https://sonarcloud.io
|
||||||
|
SONAR_ORGANIZATION: telecominfraproject
|
||||||
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
sonar:
|
||||||
|
strategy:
|
||||||
|
matrix:
|
||||||
|
project:
|
||||||
|
- opensync-ext-cloud
|
||||||
|
- opensync-ext-interface
|
||||||
|
- opensync-ext-static
|
||||||
|
- opensync-gateway
|
||||||
|
- opensync-gateway-build
|
||||||
|
- opensync-gateway-cloud-process
|
||||||
|
- opensync-gateway-static-process
|
||||||
|
- opensync-gateway-cloud-docker
|
||||||
|
- opensync-gateway-static-docker
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Checkout repository
|
||||||
|
uses: actions/checkout@v2
|
||||||
|
with:
|
||||||
|
path: wlan-cloud-opensync-controller
|
||||||
|
fetch-depth: 0
|
||||||
|
- name: Checkout dependency Telecominfraproject/wlan-cloud-root
|
||||||
|
uses: actions/checkout@v2
|
||||||
|
with:
|
||||||
|
repository: Telecominfraproject/wlan-cloud-root
|
||||||
|
path: wlan-cloud-root
|
||||||
|
fetch-depth: 0
|
||||||
|
- name: Set up JDK 14
|
||||||
|
uses: actions/setup-java@v1
|
||||||
|
with:
|
||||||
|
java-version: 14
|
||||||
|
- name: Cache Maven packages
|
||||||
|
uses: actions/cache@v1
|
||||||
|
with:
|
||||||
|
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
|
||||||
|
working-directory: wlan-cloud-opensync-controller/${{ matrix.project }}
|
||||||
|
env:
|
||||||
|
MAVEN_REPO_USERNAME: build-pipeline
|
||||||
|
MAVEN_REPO_PASSWORD: ${{ secrets.MAVEN_REPO_PASSWORD }}
|
||||||
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
run: mvn clean install
|
||||||
|
- name: Run sonar
|
||||||
|
working-directory: wlan-cloud-opensync-controller/${{ matrix.project }}
|
||||||
|
env:
|
||||||
|
MAVEN_REPO_USERNAME: build-pipeline
|
||||||
|
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 }}
|
||||||
29
LICENSE
Normal file
29
LICENSE
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
BSD 3-Clause License
|
||||||
|
#Release Testing
|
||||||
|
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.
|
||||||
12
README.md
12
README.md
@@ -1,7 +1,13 @@
|
|||||||
# tip-wlan-opensync-wifi-controller
|
# 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 tip-wlan repositories.
|
Components in this repository depend on other wlan-cloud repositories.
|
||||||
|
|
||||||
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.
|
How to build components in this repository - checkout [wlan-cloud-workspace](https://github.com/Telecominfraproject/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
1
opensync-ext-cloud/.gitignore
vendored
@@ -1 +0,0 @@
|
|||||||
/target/
|
|
||||||
@@ -13,18 +13,19 @@
|
|||||||
<name>opensync-ext-cloud</name>
|
<name>opensync-ext-cloud</name>
|
||||||
<description>Configuration interface that provides config from the cloud services.</description>
|
<description>Configuration interface that provides config from the cloud services.</description>
|
||||||
<dependencies>
|
<dependencies>
|
||||||
<dependency>
|
<!-- <dependency> -->
|
||||||
<groupId>com.telecominfraproject.wlan</groupId>
|
<!-- <groupId>com.telecominfraproject.wlan</groupId> -->
|
||||||
<artifactId>opensync-ext-interface</artifactId>
|
<!-- <artifactId>opensync-ext-interface</artifactId> -->
|
||||||
<version>${tip-wlan-cloud.release.version}</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>${tip-wlan-cloud.release.version}</version>
|
<version>${tip-wlan-cloud.release.version}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<artifactId>base-container</artifactId>
|
<artifactId>base-client</artifactId>
|
||||||
<groupId>com.telecominfraproject.wlan</groupId>
|
<groupId>com.telecominfraproject.wlan</groupId>
|
||||||
<version>${tip-wlan-cloud.release.version}</version>
|
<version>${tip-wlan-cloud.release.version}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -2,7 +2,6 @@ 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,6 +10,7 @@ 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;
|
||||||
|
|
||||||
@@ -26,25 +26,38 @@ 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.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.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.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.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.ConnectusOvsdbClientInterface;
|
import com.telecominfraproject.wlan.opensync.external.integration.OvsdbClientInterface;
|
||||||
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
|
||||||
@@ -58,8 +71,8 @@ import com.telecominfraproject.wlan.server.exceptions.ConfigurationException;
|
|||||||
@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;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -73,7 +86,10 @@ public class OpensyncCloudGatewayController {
|
|||||||
private ServiceInstanceInformation serviceInstanceInfo;
|
private ServiceInstanceInformation serviceInstanceInfo;
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private ConnectusOvsdbClientInterface connectusOvsdbClient;
|
private OvsdbClientInterface tipwlanOvsdbClient;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private PingClient pingClient;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Flag indicates if this gateway has registered with routing service
|
* Flag indicates if this gateway has registered with routing service
|
||||||
@@ -102,7 +118,8 @@ public class OpensyncCloudGatewayController {
|
|||||||
/**
|
/**
|
||||||
* latestTimetamp used when updating {@link #activeCustomerMap}
|
* latestTimetamp used when updating {@link #activeCustomerMap}
|
||||||
*/
|
*/
|
||||||
private final BiFunction<Long, Long, Long> latestTimestamp = new BiFunction<Long, Long, Long>() {
|
private final BiFunction<Long, Long, Long> latestTimestamp = new BiFunction<>() {
|
||||||
|
|
||||||
@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) {
|
||||||
@@ -117,59 +134,110 @@ 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(command -> {
|
commands.stream().forEach(new Consumer<CEGWBaseCommand>() {
|
||||||
|
|
||||||
|
@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,
|
||||||
ret.add( new EquipmentCommandResponse(CEGWCommandResultCode.UnsupportedCommand,
|
command);
|
||||||
"Unsupported value in command for " + inventoryId, command, registeredGateway.getHostname(), registeredGateway.getPort()) );
|
ret.add(new EquipmentCommandResponse(CEGWCommandResultCode.UnsupportedCommand,
|
||||||
|
"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,
|
ret.add(new EquipmentCommandResponse(CEGWCommandResultCode.NoRouteToCE,
|
||||||
"No session found for " + inventoryId, command, registeredGateway.getHostname(), 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 ( processChangeRedirector(session, (CEGWStartDebugEngine) command) );
|
ret.add(processStartDebugEngine(session, (CEGWStartDebugEngine) command));
|
||||||
|
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;
|
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(
|
||||||
"Invalid command type (" + command.getCommandType() + ") for equipment (" + inventoryId + ")",
|
CEGWCommandResultCode.UnsupportedCommand, "Invalid command type ("
|
||||||
command, registeredGateway.getHostname(), registeredGateway.getPort()) );
|
+ command.getCommandType() + ") for equipment (" + inventoryId + ")",
|
||||||
|
command, registeredGateway.getHostname(), 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();
|
||||||
@@ -180,7 +248,6 @@ public class OpensyncCloudGatewayController {
|
|||||||
*
|
*
|
||||||
* @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) {
|
||||||
@@ -190,14 +257,13 @@ public class OpensyncCloudGatewayController {
|
|||||||
LOG.info("[C:{} E:{} R:{}] Stale routing entry ({}) detected", session.getCustomerId(),
|
LOG.info("[C:{} E:{} R:{}] Stale routing entry ({}) detected", session.getCustomerId(),
|
||||||
command.getInventoryId(), session.getRoutingId(), command.getRoutingId());
|
command.getInventoryId(), session.getRoutingId(), command.getRoutingId());
|
||||||
|
|
||||||
return new EquipmentCommandResponse(CEGWCommandResultCode.NoRouteToCE,
|
return new EquipmentCommandResponse(CEGWCommandResultCode.NoRouteToCE, "Inactive Route Identifer",
|
||||||
"Inactive Route Identifer", command,
|
|
||||||
registeredGateway.getHostname(), registeredGateway.getPort());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return new EquipmentCommandResponse(CEGWCommandResultCode.Success, "Route active",
|
|
||||||
command, registeredGateway.getHostname(), registeredGateway.getPort());
|
command, registeredGateway.getHostname(), registeredGateway.getPort());
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
return new EquipmentCommandResponse(CEGWCommandResultCode.Success, "Route active", command,
|
||||||
|
registeredGateway.getHostname(), registeredGateway.getPort());
|
||||||
|
}
|
||||||
|
|
||||||
private EquipmentCommandResponse sendConfigChangeNotification(OvsdbSession session,
|
private EquipmentCommandResponse sendConfigChangeNotification(OvsdbSession session,
|
||||||
CEGWConfigChangeNotification command) {
|
CEGWConfigChangeNotification command) {
|
||||||
@@ -210,54 +276,138 @@ public class OpensyncCloudGatewayController {
|
|||||||
session.getOvsdbClient().shutdown();
|
session.getOvsdbClient().shutdown();
|
||||||
} 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(
|
||||||
"Failed to send command " + command.getCommandType() + " to " + command.getInventoryId() + ": "
|
CEGWCommandResultCode.FailedToSend, "Failed to send command " + command.getCommandType() + " to "
|
||||||
+ e.getMessage(), command,
|
+ command.getInventoryId() + ": " + e.getMessage(),
|
||||||
registeredGateway.getHostname(), registeredGateway.getPort());
|
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,
|
return new EquipmentCommandResponse(CEGWCommandResultCode.Success,
|
||||||
"Closed session to " + command.getInventoryId(), command,
|
"Closed session to " + command.getInventoryId(), command, registeredGateway.getHostname(),
|
||||||
registeredGateway.getHostname(), registeredGateway.getPort());
|
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);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 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,
|
private EquipmentCommandResponse sendMessage(OvsdbSession session, String inventoryId, EquipmentCommand command) {
|
||||||
EquipmentCommand command) {
|
|
||||||
|
|
||||||
LOG.debug("Received command {} for {}", command.getCommandType(), inventoryId);
|
LOG.debug("Received command {} for {}", command.getCommandType(), inventoryId);
|
||||||
EquipmentCommandResponse response = new EquipmentCommandResponse(
|
EquipmentCommandResponse response = new EquipmentCommandResponse(CEGWCommandResultCode.Success,
|
||||||
CEGWCommandResultCode.Success,
|
|
||||||
"Received Command " + command.getCommandType() + " for " + inventoryId, command,
|
"Received Command " + command.getCommandType() + " for " + inventoryId, command,
|
||||||
registeredGateway.getHostname(), registeredGateway.getPort());
|
registeredGateway.getHostname(), registeredGateway.getPort());
|
||||||
|
|
||||||
if (command instanceof CEGWConfigChangeNotification) {
|
if (command instanceof CEGWConfigChangeNotification) {
|
||||||
connectusOvsdbClient.processConfigChanged(inventoryId);
|
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) {
|
||||||
// dtop: we will be using CEGWStartDebugEngine command to deliver request to
|
String gatewayHostname = ((CEGWStartDebugEngine) command).getGatewayHostname();
|
||||||
// change redirector
|
int gatewayPort = ((CEGWStartDebugEngine) command).getGatewayPort();
|
||||||
// TODO: after the demo introduce a specialized command for this!
|
tipwlanOvsdbClient.startDebugEngine(inventoryId, gatewayHostname, gatewayPort);
|
||||||
String newRedirectorAddress = ((CEGWStartDebugEngine) command).getGatewayHostname();
|
} else if (command instanceof CEGWStopDebugEngine) {
|
||||||
connectusOvsdbClient.changeRedirectorAddress(inventoryId, newRedirectorAddress);
|
tipwlanOvsdbClient.stopDebugEngine(inventoryId);
|
||||||
|
} else if (command instanceof CEGWNewChannelRequest) {
|
||||||
|
CEGWNewChannelRequest request = (CEGWNewChannelRequest) command;
|
||||||
|
Map<RadioType, Integer> newBackupChannels = request.getNewBackupChannels();
|
||||||
|
String resultDetails = tipwlanOvsdbClient.processNewChannelsRequest(inventoryId, newBackupChannels);
|
||||||
|
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 validationCode = dlRequest.getValidationCode();
|
||||||
|
|
||||||
|
String resultDetails = tipwlanOvsdbClient.processFirmwareDownload(inventoryId, filepath, firmwareVersion,
|
||||||
|
username, validationCode);
|
||||||
|
|
||||||
|
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.getHostname(), 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.getHostname(), registeredGateway.getPort());
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return response;
|
return response;
|
||||||
}
|
}
|
||||||
|
|
||||||
private EquipmentCommandResponse processChangeRedirector(OvsdbSession session,
|
private EquipmentCommandResponse processChangeRedirector(OvsdbSession session, CEGWChangeRedirectorHost command) {
|
||||||
CEGWStartDebugEngine command) {
|
|
||||||
return sendMessage(session, command.getInventoryId(), command);
|
return sendMessage(session, command.getInventoryId(), 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);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
private EquipmentCommandResponse processBlinkRequest(OvsdbSession session, CEGWBlinkRequest command) {
|
private EquipmentCommandResponse processBlinkRequest(OvsdbSession session, CEGWBlinkRequest command) {
|
||||||
|
|
||||||
return sendMessage(session, command.getInventoryId(), command);
|
return sendMessage(session, command.getInventoryId(), command);
|
||||||
@@ -301,6 +451,8 @@ public class OpensyncCloudGatewayController {
|
|||||||
throw new ConfigurationException(
|
throw new ConfigurationException(
|
||||||
"Unable to register gateway with routing service: routing service interface not initialized");
|
"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
|
||||||
@@ -310,9 +462,9 @@ public class OpensyncCloudGatewayController {
|
|||||||
|
|
||||||
try {
|
try {
|
||||||
|
|
||||||
EquipmentGatewayRecord result = this.eqRoutingSvc.registerGateway(gwRecord);
|
EquipmentGatewayRecord result = eqRoutingSvc.registerGateway(gwRecord);
|
||||||
this.registeredGwId = result.getId();
|
registeredGwId = result.getId();
|
||||||
this.registeredGateway = result;
|
registeredGateway = result;
|
||||||
LOG.info("Successfully registered (name={}, id={}) with Routing Service", result.getHostname(),
|
LOG.info("Successfully registered (name={}, id={}) with Routing Service", result.getHostname(),
|
||||||
registeredGwId);
|
registeredGwId);
|
||||||
registeredWithRoutingService = true;
|
registeredWithRoutingService = true;
|
||||||
@@ -324,6 +476,48 @@ public class OpensyncCloudGatewayController {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 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
|
||||||
*
|
*
|
||||||
@@ -341,20 +535,20 @@ public class OpensyncCloudGatewayController {
|
|||||||
try {
|
try {
|
||||||
eqRoutingSvc.deleteGateway(registeredGwId);
|
eqRoutingSvc.deleteGateway(registeredGwId);
|
||||||
LOG.info("Deregistered Customer Equipment Gateway (name={},id={}) with Routing Service",
|
LOG.info("Deregistered Customer Equipment Gateway (name={},id={}) with Routing Service",
|
||||||
getGatewayName(), this.registeredGwId);
|
getGatewayName(), registeredGwId);
|
||||||
this.registeredGwId = -1;
|
registeredGwId = -1;
|
||||||
this.registeredGateway = null;
|
registeredGateway = null;
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
// failed
|
// failed
|
||||||
LOG.error("Failed to deregister Customer Equipment Gateway (name={},id={}) with Routing Service: {}",
|
LOG.error("Failed to deregister Customer Equipment Gateway (name={},id={}) with Routing Service: {}",
|
||||||
getGatewayName(), this.registeredGwId, e.getLocalizedMessage());
|
getGatewayName(), registeredGwId, e.getLocalizedMessage());
|
||||||
}
|
}
|
||||||
registeredWithRoutingService = false;
|
registeredWithRoutingService = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public long getRegisteredGwId() {
|
public long getRegisteredGwId() {
|
||||||
return this.registeredGwId;
|
return registeredGwId;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -373,10 +567,12 @@ public class OpensyncCloudGatewayController {
|
|||||||
equipmentId);
|
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(this.registeredGwId);
|
routingRecord.setGatewayId(registeredGwId);
|
||||||
try {
|
try {
|
||||||
routingRecord = eqRoutingSvc.create(routingRecord);
|
routingRecord = eqRoutingSvc.create(routingRecord);
|
||||||
|
|
||||||
@@ -391,6 +587,67 @@ public class OpensyncCloudGatewayController {
|
|||||||
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,
|
LOG.error("Unable to deregister customer equipement (name={},id={}): gateway not registered", equipmentName,
|
||||||
@@ -414,10 +671,11 @@ 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 = this.getActiveCustomerMapForUpdate();
|
Map<Integer, Long> activeMap = 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, getDeploymentId());
|
// this.eqRoutingSvc.updateActiveCustomer(activeMap,
|
||||||
|
// 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());
|
||||||
@@ -439,11 +697,11 @@ public class OpensyncCloudGatewayController {
|
|||||||
* @param customerId
|
* @param customerId
|
||||||
*/
|
*/
|
||||||
public void updateActiveCustomer(int customerId) {
|
public void updateActiveCustomer(int customerId) {
|
||||||
this.activeCustomerReadLock.lock();
|
activeCustomerReadLock.lock();
|
||||||
try {
|
try {
|
||||||
this.activeCustomerMap.merge(customerId, System.currentTimeMillis(), latestTimestamp);
|
activeCustomerMap.merge(customerId, System.currentTimeMillis(), latestTimestamp);
|
||||||
} finally {
|
} finally {
|
||||||
this.activeCustomerReadLock.unlock();
|
activeCustomerReadLock.unlock();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -453,17 +711,17 @@ public class OpensyncCloudGatewayController {
|
|||||||
* @return null if no records.
|
* @return null if no records.
|
||||||
*/
|
*/
|
||||||
protected Map<Integer, Long> getActiveCustomerMapForUpdate() {
|
protected Map<Integer, Long> getActiveCustomerMapForUpdate() {
|
||||||
this.activeCustomerWriteLock.lock();
|
activeCustomerWriteLock.lock();
|
||||||
try {
|
try {
|
||||||
Map<Integer, Long> map = null;
|
Map<Integer, Long> map = null;
|
||||||
if (!this.activeCustomerMap.isEmpty()) {
|
if (!activeCustomerMap.isEmpty()) {
|
||||||
map = this.activeCustomerMap;
|
map = activeCustomerMap;
|
||||||
this.activeCustomerMap = new ConcurrentHashMap<>();
|
activeCustomerMap = new ConcurrentHashMap<>();
|
||||||
}
|
}
|
||||||
|
|
||||||
return map;
|
return map;
|
||||||
} finally {
|
} finally {
|
||||||
this.activeCustomerWriteLock.unlock();
|
activeCustomerWriteLock.unlock();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,8 +2,10 @@ 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
|
||||||
@@ -11,15 +13,13 @@ import org.springframework.context.event.ContextStartedEvent;
|
|||||||
* @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);
|
||||||
|
|
||||||
OpensyncCloudGatewayController controller;
|
@Autowired
|
||||||
|
private OpensyncCloudGatewayController controller;
|
||||||
public OpensyncGatewayControllerStartListener(OpensyncCloudGatewayController controller) {
|
|
||||||
this.controller = controller;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onApplicationEvent(ContextStartedEvent event) {
|
public void onApplicationEvent(ContextStartedEvent event) {
|
||||||
|
|||||||
@@ -2,8 +2,10 @@ 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
|
||||||
@@ -11,14 +13,13 @@ import org.springframework.context.event.ContextClosedEvent;
|
|||||||
* @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);
|
||||||
|
|
||||||
public OpensyncGatewayControllerStopListener(OpensyncCloudGatewayController controller) {
|
@Autowired
|
||||||
this.controller = controller;
|
private OpensyncCloudGatewayController controller;
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onApplicationEvent(ContextClosedEvent event) {
|
public void onApplicationEvent(ContextClosedEvent event) {
|
||||||
|
|||||||
@@ -1,29 +0,0 @@
|
|||||||
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);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -0,0 +1,945 @@
|
|||||||
|
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.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.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.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.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.EventType;
|
||||||
|
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
|
||||||
|
OpensyncExternalIntegrationMqttMessageProcessor 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 testGetCustomerEquipment() {
|
||||||
|
|
||||||
|
Equipment equipment = new Equipment();
|
||||||
|
equipment.setDetails(ApElementConfiguration.createWithDefaults());
|
||||||
|
|
||||||
|
Mockito.when(
|
||||||
|
equipmentServiceInterface.getByInventoryIdOrNull(ArgumentMatchers.eq("Test_Client_21P10C68818122")))
|
||||||
|
.thenReturn(equipment);
|
||||||
|
assertNotNull(opensyncExternalIntegrationCloud.getCustomerEquipment("Test_Client_21P10C68818122"));
|
||||||
|
assertNull(opensyncExternalIntegrationCloud.getCustomerEquipment("Test_Client_21P10C68818133"));
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testApConnected() {
|
||||||
|
|
||||||
|
Location location = new Location();
|
||||||
|
location.setId(8L);
|
||||||
|
location.setCustomerId(2);
|
||||||
|
location.setDetails(LocationDetails.createWithDefaults());
|
||||||
|
location.setName("Location-UT");
|
||||||
|
location.setLocationType(LocationType.BUILDING);
|
||||||
|
|
||||||
|
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.verifyNoInteractions(locationServiceInterface);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testApConnectedNewAp() throws Exception {
|
||||||
|
Location location = new Location();
|
||||||
|
location.setId(8L);
|
||||||
|
location.setCustomerId(2);
|
||||||
|
location.setDetails(LocationDetails.createWithDefaults());
|
||||||
|
location.setName("Location-UT");
|
||||||
|
location.setLocationType(LocationType.BUILDING);
|
||||||
|
|
||||||
|
Mockito.when(locationServiceInterface.get(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).get(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);
|
||||||
|
location.setDetails(LocationDetails.createWithDefaults());
|
||||||
|
location.setName("Location-UT");
|
||||||
|
location.setLocationType(LocationType.BUILDING);
|
||||||
|
|
||||||
|
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 testExtractApIdFromTopic() {
|
||||||
|
|
||||||
|
String topic = "/ap/Test_Client_21P10C68818122/opensync";
|
||||||
|
|
||||||
|
assertEquals("Test_Client_21P10C68818122",
|
||||||
|
OpensyncExternalIntegrationMqttMessageProcessor.extractApIdFromTopic(topic));
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testProcessMqttMessageStringReport() {
|
||||||
|
|
||||||
|
Report report = Report.newBuilder().setNodeID("21P10C68818122")
|
||||||
|
.addAllClients(getOpensyncStatsClientReportsList())
|
||||||
|
.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(new MacAddress("7C:AB:60:E6:EA:4D"));
|
||||||
|
clientInstance.setDetails(new ClientInfoDetails());
|
||||||
|
com.telecominfraproject.wlan.client.models.Client clientInstance2 = new com.telecominfraproject.wlan.client.models.Client();
|
||||||
|
clientInstance2.setMacAddress(new MacAddress("C0:9A:D0:76:A9:69"));
|
||||||
|
clientInstance2.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(new MacAddress("7C:AB:60:E6:EA:4D"));
|
||||||
|
clientSession.setDetails(new ClientSessionDetails());
|
||||||
|
ClientSession clientSession2 = new ClientSession();
|
||||||
|
clientSession2.setMacAddress(new MacAddress("C0:9A:D0:76:A9:69"));
|
||||||
|
clientSession2.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);
|
||||||
|
|
||||||
|
opensyncExternalIntegrationCloud.processMqttMessage(topic, report);
|
||||||
|
|
||||||
|
Mockito.verify(opensyncExternalIntegrationMqttProcessor, Mockito.times(1)).processMqttMessage(topic, report);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@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);
|
||||||
|
Mockito.when(session.getCustomerId()).thenReturn(2);
|
||||||
|
|
||||||
|
Equipment equipment = new Equipment();
|
||||||
|
equipment.setCustomerId(1);
|
||||||
|
equipment.setEquipmentType(EquipmentType.AP);
|
||||||
|
equipment.setInventoryId(apId);
|
||||||
|
equipment.setProfileId(1);
|
||||||
|
equipment.setDetails(ApElementConfiguration.createWithDefaults());
|
||||||
|
|
||||||
|
Mockito.when(equipmentServiceInterface.getByInventoryIdOrNull(apId)).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).getCustomerId();
|
||||||
|
Mockito.verify(session).getEquipmentId();
|
||||||
|
Mockito.verify(ovsdbSessionMapInterface).getSession(apId);
|
||||||
|
Mockito.verify(equipmentServiceInterface).getByInventoryIdOrNull(apId);
|
||||||
|
|
||||||
|
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 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);
|
||||||
|
Mockito.when(session.getCustomerId()).thenReturn(2);
|
||||||
|
|
||||||
|
Mockito.when(ovsdbSessionMapInterface.getSession(apId)).thenReturn(session);
|
||||||
|
|
||||||
|
opensyncExternalIntegrationCloud
|
||||||
|
.wifiRadioStatusDbTableUpdate(ImmutableList.of(radioState1, radioState2, radioState3), apId);
|
||||||
|
|
||||||
|
Mockito.verify(session).getCustomerId();
|
||||||
|
Mockito.verify(session).getEquipmentId();
|
||||||
|
|
||||||
|
Mockito.verify(ovsdbSessionMapInterface).getSession(apId);
|
||||||
|
Mockito.verify(equipmentServiceInterface, Mockito.times(2)).getByInventoryIdOrNull(apId);
|
||||||
|
|
||||||
|
Mockito.verify(statusServiceInterface, Mockito.times(3)).getOrNull(2, 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() {
|
||||||
|
|
||||||
|
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);
|
||||||
|
|
||||||
|
opensyncExternalIntegrationCloud.wifiVIFStateDbTableDelete(ImmutableList.of(new OpensyncAPVIFState()), "apId");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testWifiAssociatedClientsDbTableDelete() {
|
||||||
|
|
||||||
|
opensyncExternalIntegrationCloud.wifiAssociatedClientsDbTableDelete("7C:AB:60:E6:EA:4D", "apId");
|
||||||
|
}
|
||||||
|
|
||||||
|
// 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() {
|
||||||
|
|
||||||
|
|
||||||
|
List<ClientAssocEvent> clientAssocEventList = new ArrayList<>();
|
||||||
|
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);
|
||||||
|
|
||||||
|
sts.OpensyncStats.EventReport.ClientAssocEvent.Builder clientAssocBuilder2 = EventReport.ClientAssocEvent
|
||||||
|
.getDefaultInstance().toBuilder();
|
||||||
|
clientAssocBuilder2.setAssocType(AssocType.ASSOC);
|
||||||
|
clientAssocBuilder2.setBand(RadioBandType.BAND2G);
|
||||||
|
clientAssocBuilder2.setRssi(-65);
|
||||||
|
clientAssocBuilder2.setStaMac("7C:AB:60:E6:EA:4D");
|
||||||
|
clientAssocBuilder2.setStaMacBytes(ByteString.copyFrom("7C:AB:60:E6:EA:4D".getBytes()));
|
||||||
|
clientAssocBuilder2.setSessionId(1000L);
|
||||||
|
clientAssocBuilder2.setInternalSc(1);
|
||||||
|
clientAssocBuilder2.setSsid("ssid-1");
|
||||||
|
clientAssocBuilder2.setStatus(1);
|
||||||
|
|
||||||
|
clientAssocEventList.add(clientAssocBuilder.build());
|
||||||
|
clientAssocEventList.add(clientAssocBuilder2.build());
|
||||||
|
|
||||||
|
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.addAllClientAssocEvent(clientAssocEventList);
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,380 @@
|
|||||||
|
package com.telecominfraproject.wlan.opensync.external.integration;
|
||||||
|
|
||||||
|
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.firmware.FirmwareServiceInterface;
|
||||||
|
import com.telecominfraproject.wlan.location.service.LocationServiceInterface;
|
||||||
|
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.Client;
|
||||||
|
import sts.OpensyncStats.ClientReport;
|
||||||
|
import sts.OpensyncStats.DNSProbeMetric;
|
||||||
|
import sts.OpensyncStats.EventReport;
|
||||||
|
import sts.OpensyncStats.NetworkProbe;
|
||||||
|
import sts.OpensyncStats.RADIUSMetrics;
|
||||||
|
import sts.OpensyncStats.RadioBandType;
|
||||||
|
import sts.OpensyncStats.Report;
|
||||||
|
import sts.OpensyncStats.StateUpDown;
|
||||||
|
import sts.OpensyncStats.VLANMetrics;
|
||||||
|
import sts.OpensyncStats.EventReport.ClientAssocEvent;
|
||||||
|
|
||||||
|
@RunWith(SpringRunner.class)
|
||||||
|
@ActiveProfiles(profiles = { "integration_test", })
|
||||||
|
@SpringBootTest(webEnvironment = WebEnvironment.NONE, classes = OpensyncExternalIntegrationMqttMessageProcessorTest.class)
|
||||||
|
@Import(value = { AlarmServiceInterface.class, OpensyncExternalIntegrationCloud.class,
|
||||||
|
OpensyncExternalIntegrationMqttMessageProcessorTest.Config.class,
|
||||||
|
|
||||||
|
})
|
||||||
|
public class OpensyncExternalIntegrationMqttMessageProcessorTest {
|
||||||
|
|
||||||
|
@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;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
OpensyncExternalIntegrationMqttMessageProcessor opensyncExternalIntegrationMqttProcessor;
|
||||||
|
|
||||||
|
MockitoSession mockito;
|
||||||
|
|
||||||
|
@Configuration
|
||||||
|
static class Config {
|
||||||
|
|
||||||
|
@Bean
|
||||||
|
public OpensyncExternalIntegrationMqttMessageProcessor opensyncExternalIntegrationMqttMessageProcessor() {
|
||||||
|
return new OpensyncExternalIntegrationMqttMessageProcessor();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@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 testExtractApIdFromTopic() {
|
||||||
|
|
||||||
|
String topic = "/ap/Test_Client_21P10C68818122/opensync";
|
||||||
|
|
||||||
|
assertEquals("Test_Client_21P10C68818122",
|
||||||
|
OpensyncExternalIntegrationMqttMessageProcessor.extractApIdFromTopic(topic));
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testExtractCustomerIdFromTopic() {
|
||||||
|
String topic = "/ap/Test_Client_21P10C68818122/opensync";
|
||||||
|
OvsdbSession session = Mockito.mock(OvsdbSession.class);
|
||||||
|
Mockito.when(session.getCustomerId()).thenReturn(2);
|
||||||
|
|
||||||
|
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() {
|
||||||
|
|
||||||
|
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(session.getCustomerId()).thenReturn(2);
|
||||||
|
|
||||||
|
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(new MacAddress("7C:AB:60:E6:EA:4D"));
|
||||||
|
clientInstance.setDetails(new ClientInfoDetails());
|
||||||
|
com.telecominfraproject.wlan.client.models.Client clientInstance2 = new com.telecominfraproject.wlan.client.models.Client();
|
||||||
|
clientInstance2.setMacAddress(new MacAddress("C0:9A:D0:76:A9:69"));
|
||||||
|
clientInstance2.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(new MacAddress("7C:AB:60:E6:EA:4D"));
|
||||||
|
clientSession.setDetails(new ClientSessionDetails());
|
||||||
|
ClientSession clientSession2 = new ClientSession();
|
||||||
|
clientSession2.setMacAddress(new MacAddress("C0:9A:D0:76:A9:69"));
|
||||||
|
clientSession2.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() {
|
||||||
|
|
||||||
|
|
||||||
|
List<ClientAssocEvent> clientAssocEventList = new ArrayList<>();
|
||||||
|
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);
|
||||||
|
|
||||||
|
sts.OpensyncStats.EventReport.ClientAssocEvent.Builder clientAssocBuilder2 = EventReport.ClientAssocEvent
|
||||||
|
.getDefaultInstance().toBuilder();
|
||||||
|
clientAssocBuilder2.setAssocType(AssocType.ASSOC);
|
||||||
|
clientAssocBuilder2.setBand(RadioBandType.BAND2G);
|
||||||
|
clientAssocBuilder2.setRssi(-65);
|
||||||
|
clientAssocBuilder2.setStaMac("7C:AB:60:E6:EA:4D");
|
||||||
|
clientAssocBuilder2.setStaMacBytes(ByteString.copyFrom("7C:AB:60:E6:EA:4D".getBytes()));
|
||||||
|
clientAssocBuilder2.setSessionId(1000L);
|
||||||
|
clientAssocBuilder2.setInternalSc(1);
|
||||||
|
clientAssocBuilder2.setSsid("ssid-1");
|
||||||
|
clientAssocBuilder2.setStatus(1);
|
||||||
|
|
||||||
|
clientAssocEventList.add(clientAssocBuilder.build());
|
||||||
|
clientAssocEventList.add(clientAssocBuilder2.build());
|
||||||
|
|
||||||
|
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.addAllClientAssocEvent(clientAssocEventList);
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,119 @@
|
|||||||
|
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;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
{
|
||||||
|
"id": "1",
|
||||||
|
"hostname": "Host-1",
|
||||||
|
"ipAddr": "1.1.1.1",
|
||||||
|
"port": 123,
|
||||||
|
"gatewayType": "CEGW",
|
||||||
|
"createdTimestamp": 0,
|
||||||
|
"lastModifiedTimestamp": 0
|
||||||
|
}
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
{
|
||||||
|
"id": 12,
|
||||||
|
"equipmentId": 123,
|
||||||
|
"customerId": 2,
|
||||||
|
"gatewayId": 110,
|
||||||
|
"createdTimestamp": 0,
|
||||||
|
"lastModifiedTimestamp": 0
|
||||||
|
}
|
||||||
@@ -22,11 +22,7 @@
|
|||||||
<artifactId>tip-wlan-opensync-protobuf</artifactId>
|
<artifactId>tip-wlan-opensync-protobuf</artifactId>
|
||||||
<version>${tip-wlan-cloud.release.version}</version>
|
<version>${tip-wlan-cloud.release.version}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
|
||||||
<artifactId>customer-models</artifactId>
|
|
||||||
<groupId>com.telecominfraproject.wlan</groupId>
|
|
||||||
<version>${tip-wlan-cloud.release.version}</version>
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<artifactId>equipment-models</artifactId>
|
<artifactId>equipment-models</artifactId>
|
||||||
<groupId>com.telecominfraproject.wlan</groupId>
|
<groupId>com.telecominfraproject.wlan</groupId>
|
||||||
@@ -47,11 +43,7 @@
|
|||||||
<groupId>com.telecominfraproject.wlan</groupId>
|
<groupId>com.telecominfraproject.wlan</groupId>
|
||||||
<version>${tip-wlan-cloud.release.version}</version>
|
<version>${tip-wlan-cloud.release.version}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
|
||||||
<artifactId>client-models</artifactId>
|
|
||||||
<groupId>com.telecominfraproject.wlan</groupId>
|
|
||||||
<version>${tip-wlan-cloud.release.version}</version>
|
|
||||||
</dependency>
|
|
||||||
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.vmware.ovsdb</groupId>
|
<groupId>com.vmware.ovsdb</groupId>
|
||||||
|
|||||||
@@ -1,14 +0,0 @@
|
|||||||
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);
|
|
||||||
}
|
|
||||||
@@ -1,6 +1,7 @@
|
|||||||
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;
|
||||||
@@ -33,6 +34,8 @@ 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, Report report);
|
||||||
|
|
||||||
void processMqttMessage(String topic, FlowReport flowReport);
|
void processMqttMessage(String topic, FlowReport flowReport);
|
||||||
@@ -44,4 +47,8 @@ public interface OpensyncExternalIntegrationInterface {
|
|||||||
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);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,37 @@
|
|||||||
|
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;
|
||||||
|
|
||||||
|
public interface OvsdbClientInterface {
|
||||||
|
|
||||||
|
Set<String> getConnectedClientIds();
|
||||||
|
|
||||||
|
String changeRedirectorHost(String apId, String newRedirectorHost);
|
||||||
|
|
||||||
|
String startDebugEngine(String apId, String gatewayHostname, Integer gatewayPort);
|
||||||
|
|
||||||
|
String stopDebugEngine(String apId);
|
||||||
|
|
||||||
|
void processConfigChanged(String apId);
|
||||||
|
|
||||||
|
void processClientBlocklistChange(String apId, List<MacAddress> blockList);
|
||||||
|
|
||||||
|
String processFirmwareDownload(String apId, String firmwareUrl, String firmwareVersion, String username,
|
||||||
|
String validationCode);
|
||||||
|
|
||||||
|
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> channelMap);
|
||||||
|
|
||||||
|
}
|
||||||
@@ -2,9 +2,13 @@ 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;
|
||||||
@@ -15,29 +19,73 @@ 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;
|
||||||
|
|
||||||
@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);
|
||||||
|
}
|
||||||
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(country, firmwareVersion, ifName, ifType, ipV4Address, lanIfName, lanIfType, lanIpV4Address,
|
||||||
|
lanMacAddress, macAddress, managerAddr, model, mqttSettings, platformVersion, redirectorAddr, revision,
|
||||||
|
serialNumber, skuNumber, versionMatrix, wifiRadioStates);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean equals(Object obj) {
|
||||||
|
if (this == obj) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
if (!(obj instanceof ConnectNodeInfo)) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
ConnectNodeInfo other = (ConnectNodeInfo) obj;
|
||||||
|
return Objects.equals(country, other.country) && Objects.equals(firmwareVersion, other.firmwareVersion)
|
||||||
|
&& Objects.equals(ifName, other.ifName) && Objects.equals(ifType, other.ifType)
|
||||||
|
&& Objects.equals(ipV4Address, other.ipV4Address) && Objects.equals(lanIfName, other.lanIfName)
|
||||||
|
&& Objects.equals(lanIfType, other.lanIfType) && Objects.equals(lanIpV4Address, other.lanIpV4Address)
|
||||||
|
&& Objects.equals(lanMacAddress, other.lanMacAddress) && Objects.equals(macAddress, other.macAddress)
|
||||||
|
&& Objects.equals(managerAddr, other.managerAddr) && Objects.equals(model, other.model)
|
||||||
|
&& Objects.equals(mqttSettings, other.mqttSettings)
|
||||||
|
&& Objects.equals(platformVersion, other.platformVersion)
|
||||||
|
&& Objects.equals(redirectorAddr, other.redirectorAddr) && Objects.equals(revision, other.revision)
|
||||||
|
&& Objects.equals(serialNumber, other.serialNumber) && Objects.equals(skuNumber, other.skuNumber)
|
||||||
|
&& Objects.equals(versionMatrix, other.versionMatrix)
|
||||||
|
&& Objects.equals(wifiRadioStates, other.wifiRadioStates);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String toString() {
|
public String toString() {
|
||||||
return String.format(
|
return "ConnectNodeInfo [mqttSettings=" + mqttSettings + ", versionMatrix=" + versionMatrix
|
||||||
"ConnectNodeInfo [mqttSettings=%s, redirectorAddr=%s, managerAddr=%s, skuNumber=%s, serialNumber=%s, "
|
+ ", wifiRadioStates=" + wifiRadioStates + ", redirectorAddr=" + redirectorAddr + ", managerAddr="
|
||||||
+ "macAddress=%s, ipV4Address=%s, platformVersion=%s, firmwareVersion=%s, revision=%s, model=%s]",
|
+ managerAddr + ", skuNumber=" + skuNumber + ", serialNumber=" + serialNumber + ", macAddress="
|
||||||
mqttSettings, redirectorAddr, managerAddr, skuNumber, serialNumber, macAddress, ipV4Address,
|
+ macAddress + ", ipV4Address=" + ipV4Address + ", platformVersion=" + platformVersion
|
||||||
platformVersion, firmwareVersion, revision, model);
|
+ ", firmwareVersion=" + firmwareVersion + ", revision=" + revision + ", model=" + model + ", ifName="
|
||||||
|
+ ifName + ", ifType=" + ifType + ", country=" + country + ", lanIpV4Address=" + lanIpV4Address
|
||||||
|
+ ", lanIfName=" + lanIfName + ", lanIfType=" + lanIfType + ", lanMacAddress=" + lanMacAddress + "]";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -3,10 +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.core.model.json.BaseJsonModel;
|
||||||
import com.telecominfraproject.wlan.equipment.models.ApElementConfiguration;
|
import com.telecominfraproject.wlan.equipment.models.ApElementConfiguration;
|
||||||
@@ -27,12 +29,18 @@ public class OpensyncAPConfig extends BaseJsonModel {
|
|||||||
private static final long serialVersionUID = 3917975477206236668L;
|
private static final long serialVersionUID = 3917975477206236668L;
|
||||||
|
|
||||||
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;
|
||||||
|
|
||||||
// Handle Legacy Config Support
|
// Handle Legacy Config Support
|
||||||
public void setRadioConfig(OpensyncAPRadioConfig radioConfig) {
|
public void setRadioConfig(OpensyncAPRadioConfig radioConfig) {
|
||||||
@@ -127,6 +135,14 @@ public class OpensyncAPConfig extends BaseJsonModel {
|
|||||||
this.customerEquipment = customerEquipment;
|
this.customerEquipment = customerEquipment;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public OpensyncAPHotspot20Config getHotspotConfig() {
|
||||||
|
return hotspotConfig;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setHotspotConfig(OpensyncAPHotspot20Config hotspotConfig) {
|
||||||
|
this.hotspotConfig = hotspotConfig;
|
||||||
|
}
|
||||||
|
|
||||||
public Profile getApProfile() {
|
public Profile getApProfile() {
|
||||||
return apProfile;
|
return apProfile;
|
||||||
}
|
}
|
||||||
@@ -135,6 +151,14 @@ public class OpensyncAPConfig extends BaseJsonModel {
|
|||||||
this.apProfile = apProfile;
|
this.apProfile = apProfile;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Profile getRfProfile() {
|
||||||
|
return rfProfile;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setRfProfile(Profile rfProfile) {
|
||||||
|
this.rfProfile = rfProfile;
|
||||||
|
}
|
||||||
|
|
||||||
public List<Profile> getSsidProfile() {
|
public List<Profile> getSsidProfile() {
|
||||||
return ssidProfile;
|
return ssidProfile;
|
||||||
}
|
}
|
||||||
@@ -143,6 +167,14 @@ public class OpensyncAPConfig extends BaseJsonModel {
|
|||||||
this.ssidProfile = ssidProfile;
|
this.ssidProfile = ssidProfile;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public List<Profile> getBonjourGatewayProfiles() {
|
||||||
|
return bonjourGatewayProfiles;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setBonjourGatewayProfiles(List<Profile> bonjourGatewayProfiles) {
|
||||||
|
this.bonjourGatewayProfiles = bonjourGatewayProfiles;
|
||||||
|
}
|
||||||
|
|
||||||
public Location getEquipmentLocation() {
|
public Location getEquipmentLocation() {
|
||||||
return equipmentLocation;
|
return equipmentLocation;
|
||||||
}
|
}
|
||||||
@@ -165,6 +197,8 @@ public class OpensyncAPConfig extends BaseJsonModel {
|
|||||||
|
|
||||||
if (customerEquipment != null)
|
if (customerEquipment != null)
|
||||||
ret.customerEquipment = customerEquipment.clone();
|
ret.customerEquipment = customerEquipment.clone();
|
||||||
|
if (hotspotConfig != null)
|
||||||
|
ret.hotspotConfig = hotspotConfig.clone();
|
||||||
if (equipmentLocation != null)
|
if (equipmentLocation != null)
|
||||||
ret.equipmentLocation = equipmentLocation.clone();
|
ret.equipmentLocation = equipmentLocation.clone();
|
||||||
if (ssidProfile != null) {
|
if (ssidProfile != null) {
|
||||||
@@ -174,30 +208,50 @@ public class OpensyncAPConfig extends BaseJsonModel {
|
|||||||
}
|
}
|
||||||
ret.ssidProfile = ssidList;
|
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)
|
if (apProfile != null)
|
||||||
ret.apProfile = apProfile.clone();
|
ret.apProfile = apProfile.clone();
|
||||||
|
if (rfProfile != null)
|
||||||
|
ret.rfProfile = rfProfile.clone();
|
||||||
if (equipmentRouting != null)
|
if (equipmentRouting != null)
|
||||||
ret.equipmentRouting = equipmentRouting.clone();
|
ret.equipmentRouting = equipmentRouting.clone();
|
||||||
if (equipmentGateway != null)
|
if (equipmentGateway != null)
|
||||||
ret.equipmentGateway = equipmentGateway.clone();
|
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;
|
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() {
|
public List<Profile> getRadiusProfiles() {
|
||||||
return radiusProfiles;
|
return radiusProfiles;
|
||||||
}
|
}
|
||||||
@@ -206,4 +260,57 @@ public class OpensyncAPConfig extends BaseJsonModel {
|
|||||||
this.radiusProfiles = radiusProfiles;
|
this.radiusProfiles = radiusProfiles;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public List<Profile> getCaptiveProfiles() {
|
||||||
|
return captiveProfiles;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCaptiveProfiles(List<Profile> captiveProfiles) {
|
||||||
|
this.captiveProfiles = captiveProfiles;
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<MacAddress> getBlockedClients() {
|
||||||
|
return blockedClients;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setBlockedClients(List<MacAddress> blockedClients) {
|
||||||
|
this.blockedClients = blockedClients;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setMetricsProfiles(List<Profile> metricsProfileList) {
|
||||||
|
metricsProfile = metricsProfileList;
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<Profile> getMetricsProfiles() {
|
||||||
|
return metricsProfile;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int hashCode() {
|
||||||
|
return Objects.hash(apProfile, blockedClients, bonjourGatewayProfiles, captiveProfiles, customerEquipment,
|
||||||
|
equipmentGateway, equipmentLocation, equipmentRouting, hotspotConfig, metricsProfile,
|
||||||
|
radiusProfiles, rfProfile, ssidProfile);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean equals(Object obj) {
|
||||||
|
if (this == obj) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
if (!(obj instanceof OpensyncAPConfig)) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
OpensyncAPConfig other = (OpensyncAPConfig) obj;
|
||||||
|
return Objects.equals(apProfile, other.apProfile) && Objects.equals(blockedClients, other.blockedClients)
|
||||||
|
&& Objects.equals(bonjourGatewayProfiles, other.bonjourGatewayProfiles)
|
||||||
|
&& Objects.equals(captiveProfiles, other.captiveProfiles)
|
||||||
|
&& Objects.equals(customerEquipment, other.customerEquipment)
|
||||||
|
&& Objects.equals(equipmentGateway, other.equipmentGateway)
|
||||||
|
&& Objects.equals(equipmentLocation, other.equipmentLocation)
|
||||||
|
&& Objects.equals(equipmentRouting, other.equipmentRouting)
|
||||||
|
&& Objects.equals(hotspotConfig, other.hotspotConfig)
|
||||||
|
&& Objects.equals(metricsProfile, other.metricsProfile)
|
||||||
|
&& Objects.equals(radiusProfiles, other.radiusProfiles) && Objects.equals(rfProfile, other.rfProfile)
|
||||||
|
&& Objects.equals(ssidProfile, other.ssidProfile);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,100 @@
|
|||||||
|
package com.telecominfraproject.wlan.opensync.external.integration.models;
|
||||||
|
|
||||||
|
import java.util.HashSet;
|
||||||
|
import java.util.Objects;
|
||||||
|
import java.util.Set;
|
||||||
|
|
||||||
|
import com.telecominfraproject.wlan.core.model.json.BaseJsonModel;
|
||||||
|
import com.telecominfraproject.wlan.profile.models.Profile;
|
||||||
|
|
||||||
|
public class OpensyncAPHotspot20Config extends BaseJsonModel {
|
||||||
|
|
||||||
|
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;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
public Set<Profile> getHotspot20ProfileSet() {
|
||||||
|
return hotspot20ProfileSet;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setHotspot20ProfileSet(Set<Profile> hotspot20ProfileSet) {
|
||||||
|
this.hotspot20ProfileSet = hotspot20ProfileSet;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Set<Profile> getHotspot20OperatorSet() {
|
||||||
|
return hotspot20OperatorSet;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setHotspot20OperatorSet(Set<Profile> hotspot20OperatorSet) {
|
||||||
|
this.hotspot20OperatorSet = hotspot20OperatorSet;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Set<Profile> getHotspot20VenueSet() {
|
||||||
|
return hotspot20VenueSet;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setHotspot20VenueSet(Set<Profile> hotspot20VenueSet) {
|
||||||
|
this.hotspot20VenueSet = hotspot20VenueSet;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Set<Profile> getHotspot20ProviderSet() {
|
||||||
|
return hotspot20ProviderSet;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setHotspot20ProviderSet(Set<Profile> hotspot20ProviderSet) {
|
||||||
|
this.hotspot20ProviderSet = hotspot20ProviderSet;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public OpensyncAPHotspot20Config clone() {
|
||||||
|
OpensyncAPHotspot20Config ret = (OpensyncAPHotspot20Config) super.clone();
|
||||||
|
|
||||||
|
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 int hashCode() {
|
||||||
|
return Objects.hash(hotspot20OperatorSet, hotspot20ProfileSet, hotspot20ProviderSet, hotspot20VenueSet);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean equals(Object obj) {
|
||||||
|
if (this == obj) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
if (!(obj instanceof OpensyncAPHotspot20Config)) {
|
||||||
|
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);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -1,18 +1,17 @@
|
|||||||
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.telecominfraproject.wlan.core.model.json.BaseJsonModel;
|
import com.telecominfraproject.wlan.core.model.json.BaseJsonModel;
|
||||||
import com.vmware.ovsdb.protocol.operation.notation.Uuid;
|
import com.vmware.ovsdb.protocol.operation.notation.Uuid;
|
||||||
|
|
||||||
public class OpensyncAPInetState extends BaseJsonModel {
|
public class OpensyncAPInetState extends BaseJsonModel {
|
||||||
|
|
||||||
|
|
||||||
private static final long serialVersionUID = 1707053648715030173L;
|
private static final long serialVersionUID = 1707053648715030173L;
|
||||||
|
|
||||||
public String ifName;
|
public String ifName;
|
||||||
public String dhcpd;
|
public Map<String, String> dhcpd;
|
||||||
public String unpnpMode;
|
public String unpnpMode;
|
||||||
public String ifType;
|
public String ifType;
|
||||||
public String softwdsMacAddr;
|
public String softwdsMacAddr;
|
||||||
@@ -37,167 +36,423 @@ public class OpensyncAPInetState extends BaseJsonModel {
|
|||||||
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() {
|
||||||
|
super();
|
||||||
|
dns = new HashMap<>();
|
||||||
|
dhcpc = new HashMap<>();
|
||||||
|
}
|
||||||
|
|
||||||
public String getIfName() {
|
public String getIfName() {
|
||||||
return ifName;
|
return ifName;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setIfName(String ifName) {
|
public void setIfName(String ifName) {
|
||||||
this.ifName = ifName;
|
this.ifName = ifName;
|
||||||
}
|
}
|
||||||
public String getDhcpd() {
|
|
||||||
|
public Map<String, String> getDhcpd() {
|
||||||
return dhcpd;
|
return dhcpd;
|
||||||
}
|
}
|
||||||
public void setDhcpd(String dhcpd) {
|
|
||||||
|
public void setDhcpd(Map<String, String> dhcpd) {
|
||||||
this.dhcpd = dhcpd;
|
this.dhcpd = dhcpd;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getUnpnpMode() {
|
public String getUnpnpMode() {
|
||||||
return unpnpMode;
|
return unpnpMode;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setUnpnpMode(String unpnpMode) {
|
public void setUnpnpMode(String unpnpMode) {
|
||||||
this.unpnpMode = unpnpMode;
|
this.unpnpMode = unpnpMode;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getIfType() {
|
public String getIfType() {
|
||||||
return ifType;
|
return ifType;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setIfType(String ifType) {
|
public void setIfType(String ifType) {
|
||||||
this.ifType = ifType;
|
this.ifType = ifType;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getSoftwdsMacAddr() {
|
public String getSoftwdsMacAddr() {
|
||||||
return softwdsMacAddr;
|
return softwdsMacAddr;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setSoftwdsMacAddr(String softwdsMacAddr) {
|
public void setSoftwdsMacAddr(String softwdsMacAddr) {
|
||||||
this.softwdsMacAddr = softwdsMacAddr;
|
this.softwdsMacAddr = softwdsMacAddr;
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isEnabled() {
|
public boolean isEnabled() {
|
||||||
return enabled;
|
return enabled;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setEnabled(boolean enabled) {
|
public void setEnabled(boolean enabled) {
|
||||||
this.enabled = enabled;
|
this.enabled = enabled;
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isSofwdsWrap() {
|
public boolean isSofwdsWrap() {
|
||||||
return sofwdsWrap;
|
return sofwdsWrap;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setSofwdsWrap(boolean sofwdsWrap) {
|
public void setSofwdsWrap(boolean sofwdsWrap) {
|
||||||
this.sofwdsWrap = sofwdsWrap;
|
this.sofwdsWrap = sofwdsWrap;
|
||||||
}
|
}
|
||||||
|
|
||||||
public int getVlanId() {
|
public int getVlanId() {
|
||||||
return vlanId;
|
return vlanId;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setVlanId(int vlanId) {
|
public void setVlanId(int vlanId) {
|
||||||
this.vlanId = vlanId;
|
this.vlanId = vlanId;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getNetmask() {
|
public String getNetmask() {
|
||||||
return netmask;
|
return netmask;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setNetmask(String netmask) {
|
public void setNetmask(String netmask) {
|
||||||
this.netmask = netmask;
|
this.netmask = netmask;
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isNat() {
|
public boolean isNat() {
|
||||||
return nat;
|
return nat;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setNat(boolean nat) {
|
public void setNat(boolean nat) {
|
||||||
this.nat = nat;
|
this.nat = nat;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getGreRemoteInetAddr() {
|
public String getGreRemoteInetAddr() {
|
||||||
return greRemoteInetAddr;
|
return greRemoteInetAddr;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setGreRemoteInetAddr(String greRemoteInetAddr) {
|
public void setGreRemoteInetAddr(String greRemoteInetAddr) {
|
||||||
this.greRemoteInetAddr = greRemoteInetAddr;
|
this.greRemoteInetAddr = greRemoteInetAddr;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getIfUuid() {
|
public String getIfUuid() {
|
||||||
return ifUuid;
|
return ifUuid;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setIfUuid(String ifUuid) {
|
public void setIfUuid(String ifUuid) {
|
||||||
this.ifUuid = ifUuid;
|
this.ifUuid = ifUuid;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getInetAddr() {
|
public String getInetAddr() {
|
||||||
return inetAddr;
|
return inetAddr;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setInetAddr(String inetAddr) {
|
public void setInetAddr(String inetAddr) {
|
||||||
this.inetAddr = inetAddr;
|
this.inetAddr = inetAddr;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getHwAddr() {
|
public String getHwAddr() {
|
||||||
return hwAddr;
|
return hwAddr;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setHwAddr(String hwAddr) {
|
public void setHwAddr(String hwAddr) {
|
||||||
this.hwAddr = hwAddr;
|
this.hwAddr = hwAddr;
|
||||||
}
|
}
|
||||||
|
|
||||||
public int getMtw() {
|
public int getMtw() {
|
||||||
return mtw;
|
return mtw;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setMtw(int mtw) {
|
public void setMtw(int mtw) {
|
||||||
this.mtw = mtw;
|
this.mtw = mtw;
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isNetwork() {
|
public boolean isNetwork() {
|
||||||
return network;
|
return network;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setNetwork(boolean network) {
|
public void setNetwork(boolean network) {
|
||||||
this.network = network;
|
this.network = network;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Map<String, String> getDns() {
|
public Map<String, String> getDns() {
|
||||||
return dns;
|
return dns;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setDns(Map<String, String> dns) {
|
public void setDns(Map<String, String> dns) {
|
||||||
this.dns = dns;
|
this.dns = dns;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getParentIfName() {
|
public String getParentIfName() {
|
||||||
return parentIfName;
|
return parentIfName;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setParentIfName(String parentIfName) {
|
public void setParentIfName(String parentIfName) {
|
||||||
this.parentIfName = parentIfName;
|
this.parentIfName = parentIfName;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getGreIfName() {
|
public String getGreIfName() {
|
||||||
return greIfName;
|
return greIfName;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setGreIfName(String greIfName) {
|
public void setGreIfName(String greIfName) {
|
||||||
this.greIfName = greIfName;
|
this.greIfName = greIfName;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getBroadcast() {
|
public String getBroadcast() {
|
||||||
return broadcast;
|
return broadcast;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setBroadcast(String broadcast) {
|
public void setBroadcast(String broadcast) {
|
||||||
this.broadcast = broadcast;
|
this.broadcast = broadcast;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Map<String, String> getDhcpc() {
|
public Map<String, String> getDhcpc() {
|
||||||
return dhcpc;
|
return dhcpc;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setDhcpc(Map<String, String> dhcpc) {
|
public void setDhcpc(Map<String, String> dhcpc) {
|
||||||
this.dhcpc = dhcpc;
|
this.dhcpc = dhcpc;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getGateway() {
|
public String getGateway() {
|
||||||
return gateway;
|
return gateway;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setGateway(String gateway) {
|
public void setGateway(String gateway) {
|
||||||
this.gateway = gateway;
|
this.gateway = gateway;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getIpAssignScheme() {
|
public String getIpAssignScheme() {
|
||||||
return ipAssignScheme;
|
return ipAssignScheme;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setIpAssignScheme(String ipAssignScheme) {
|
public void setIpAssignScheme(String ipAssignScheme) {
|
||||||
this.ipAssignScheme = ipAssignScheme;
|
this.ipAssignScheme = ipAssignScheme;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getInetConfig() {
|
public String getInetConfig() {
|
||||||
return inetConfig;
|
return inetConfig;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setInetConfig(String inetConfig) {
|
public void setInetConfig(String inetConfig) {
|
||||||
this.inetConfig = inetConfig;
|
this.inetConfig = inetConfig;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static long getSerialversionuid() {
|
public static long getSerialversionuid() {
|
||||||
return serialVersionUID;
|
return serialVersionUID;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Uuid get_uuid() {
|
public Uuid get_uuid() {
|
||||||
return _uuid;
|
return _uuid;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void set_uuid(Uuid _uuid) {
|
public void set_uuid(Uuid _uuid) {
|
||||||
this._uuid = _uuid;
|
this._uuid = _uuid;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Uuid getVersion() {
|
public Uuid getVersion() {
|
||||||
return version;
|
return version;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setVersion(Uuid version) {
|
public void setVersion(Uuid version) {
|
||||||
this.version = version;
|
this.version = version;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void setGreLocalInetAddr(String greLocalInetAddr) {
|
||||||
|
this.greLocalInetAddr = greLocalInetAddr;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getGreLocalInetAddr() {
|
||||||
|
return greLocalInetAddr;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setGreRemoteMacAddr(String greRemoteMacAddr) {
|
||||||
|
this.greRemoteMacAddr = greRemoteMacAddr;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getGreRemoteMacAddr(){
|
||||||
|
return this.greRemoteMacAddr;
|
||||||
|
}
|
||||||
|
@Override
|
||||||
|
public int hashCode() {
|
||||||
|
final int prime = 31;
|
||||||
|
int result = 1;
|
||||||
|
result = prime * result + ((_uuid == null) ? 0 : _uuid.hashCode());
|
||||||
|
result = prime * result + ((broadcast == null) ? 0 : broadcast.hashCode());
|
||||||
|
result = prime * result + ((dhcpc == null) ? 0 : dhcpc.hashCode());
|
||||||
|
result = prime * result + ((dhcpd == null) ? 0 : dhcpd.hashCode());
|
||||||
|
result = prime * result + ((dns == null) ? 0 : dns.hashCode());
|
||||||
|
result = prime * result + (enabled ? 1231 : 1237);
|
||||||
|
result = prime * result + ((gateway == null) ? 0 : gateway.hashCode());
|
||||||
|
result = prime * result + ((greIfName == null) ? 0 : greIfName.hashCode());
|
||||||
|
result = prime * result + ((greLocalInetAddr == null) ? 0 : greLocalInetAddr.hashCode());
|
||||||
|
result = prime * result + ((greRemoteInetAddr == null) ? 0 : greRemoteInetAddr.hashCode());
|
||||||
|
result = prime * result + ((hwAddr == null) ? 0 : hwAddr.hashCode());
|
||||||
|
result = prime * result + ((ifName == null) ? 0 : ifName.hashCode());
|
||||||
|
result = prime * result + ((ifType == null) ? 0 : ifType.hashCode());
|
||||||
|
result = prime * result + ((ifUuid == null) ? 0 : ifUuid.hashCode());
|
||||||
|
result = prime * result + ((inetAddr == null) ? 0 : inetAddr.hashCode());
|
||||||
|
result = prime * result + ((inetConfig == null) ? 0 : inetConfig.hashCode());
|
||||||
|
result = prime * result + ((ipAssignScheme == null) ? 0 : ipAssignScheme.hashCode());
|
||||||
|
result = prime * result + mtw;
|
||||||
|
result = prime * result + (nat ? 1231 : 1237);
|
||||||
|
result = prime * result + ((netmask == null) ? 0 : netmask.hashCode());
|
||||||
|
result = prime * result + (network ? 1231 : 1237);
|
||||||
|
result = prime * result + ((parentIfName == null) ? 0 : parentIfName.hashCode());
|
||||||
|
result = prime * result + ((greRemoteMacAddr == null) ? 0 : greRemoteMacAddr.hashCode());
|
||||||
|
result = prime * result + ((softwdsMacAddr == null) ? 0 : softwdsMacAddr.hashCode());
|
||||||
|
result = prime * result + (sofwdsWrap ? 1231 : 1237);
|
||||||
|
result = prime * result + ((unpnpMode == null) ? 0 : unpnpMode.hashCode());
|
||||||
|
result = prime * result + ((version == null) ? 0 : version.hashCode());
|
||||||
|
result = prime * result + vlanId;
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean equals(Object obj) {
|
||||||
|
if (this == obj)
|
||||||
|
return true;
|
||||||
|
if (obj == null)
|
||||||
|
return false;
|
||||||
|
if (getClass() != obj.getClass())
|
||||||
|
return false;
|
||||||
|
OpensyncAPInetState other = (OpensyncAPInetState) obj;
|
||||||
|
if (_uuid == null) {
|
||||||
|
if (other._uuid != null)
|
||||||
|
return false;
|
||||||
|
} else if (!_uuid.equals(other._uuid))
|
||||||
|
return false;
|
||||||
|
if (broadcast == null) {
|
||||||
|
if (other.broadcast != null)
|
||||||
|
return false;
|
||||||
|
} else if (!broadcast.equals(other.broadcast))
|
||||||
|
return false;
|
||||||
|
if (dhcpc == null) {
|
||||||
|
if (other.dhcpc != null)
|
||||||
|
return false;
|
||||||
|
} else if (!dhcpc.equals(other.dhcpc))
|
||||||
|
return false;
|
||||||
|
if (dhcpd == null) {
|
||||||
|
if (other.dhcpd != null)
|
||||||
|
return false;
|
||||||
|
} else if (!dhcpd.equals(other.dhcpd))
|
||||||
|
return false;
|
||||||
|
if (dns == null) {
|
||||||
|
if (other.dns != null)
|
||||||
|
return false;
|
||||||
|
} else if (!dns.equals(other.dns))
|
||||||
|
return false;
|
||||||
|
if (enabled != other.enabled)
|
||||||
|
return false;
|
||||||
|
if (gateway == null) {
|
||||||
|
if (other.gateway != null)
|
||||||
|
return false;
|
||||||
|
} else if (!gateway.equals(other.gateway))
|
||||||
|
return false;
|
||||||
|
if (greIfName == null) {
|
||||||
|
if (other.greIfName != null)
|
||||||
|
return false;
|
||||||
|
} else if (!greIfName.equals(other.greIfName))
|
||||||
|
return false;
|
||||||
|
if (greLocalInetAddr == null) {
|
||||||
|
if (other.greLocalInetAddr != null)
|
||||||
|
return false;
|
||||||
|
} else if (!greLocalInetAddr.equals(other.greLocalInetAddr))
|
||||||
|
return false;
|
||||||
|
if (greRemoteInetAddr == null) {
|
||||||
|
if (other.greRemoteInetAddr != null)
|
||||||
|
return false;
|
||||||
|
} else if (!greRemoteInetAddr.equals(other.greRemoteInetAddr))
|
||||||
|
return false;
|
||||||
|
if (hwAddr == null) {
|
||||||
|
if (other.hwAddr != null)
|
||||||
|
return false;
|
||||||
|
} else if (!hwAddr.equals(other.hwAddr))
|
||||||
|
return false;
|
||||||
|
if (ifName == null) {
|
||||||
|
if (other.ifName != null)
|
||||||
|
return false;
|
||||||
|
} else if (!ifName.equals(other.ifName))
|
||||||
|
return false;
|
||||||
|
if (ifType == null) {
|
||||||
|
if (other.ifType != null)
|
||||||
|
return false;
|
||||||
|
} else if (!ifType.equals(other.ifType))
|
||||||
|
return false;
|
||||||
|
if (ifUuid == null) {
|
||||||
|
if (other.ifUuid != null)
|
||||||
|
return false;
|
||||||
|
} else if (!ifUuid.equals(other.ifUuid))
|
||||||
|
return false;
|
||||||
|
if (inetAddr == null) {
|
||||||
|
if (other.inetAddr != null)
|
||||||
|
return false;
|
||||||
|
} else if (!inetAddr.equals(other.inetAddr))
|
||||||
|
return false;
|
||||||
|
if (inetConfig == null) {
|
||||||
|
if (other.inetConfig != null)
|
||||||
|
return false;
|
||||||
|
} else if (!inetConfig.equals(other.inetConfig))
|
||||||
|
return false;
|
||||||
|
if (ipAssignScheme == null) {
|
||||||
|
if (other.ipAssignScheme != null)
|
||||||
|
return false;
|
||||||
|
} else if (!ipAssignScheme.equals(other.ipAssignScheme))
|
||||||
|
return false;
|
||||||
|
if (mtw != other.mtw)
|
||||||
|
return false;
|
||||||
|
if (nat != other.nat)
|
||||||
|
return false;
|
||||||
|
if (netmask == null) {
|
||||||
|
if (other.netmask != null)
|
||||||
|
return false;
|
||||||
|
} else if (!netmask.equals(other.netmask))
|
||||||
|
return false;
|
||||||
|
if (network != other.network)
|
||||||
|
return false;
|
||||||
|
if (parentIfName == null) {
|
||||||
|
if (other.parentIfName != null)
|
||||||
|
return false;
|
||||||
|
} else if (!parentIfName.equals(other.parentIfName))
|
||||||
|
return false;
|
||||||
|
if (greRemoteMacAddr == null) {
|
||||||
|
if (other.greRemoteMacAddr != null)
|
||||||
|
return false;
|
||||||
|
} else if (!greRemoteMacAddr.equals(other.greRemoteMacAddr))
|
||||||
|
return false;
|
||||||
|
if (softwdsMacAddr == null) {
|
||||||
|
if (other.softwdsMacAddr != null)
|
||||||
|
return false;
|
||||||
|
} else if (!softwdsMacAddr.equals(other.softwdsMacAddr))
|
||||||
|
return false;
|
||||||
|
if (sofwdsWrap != other.sofwdsWrap)
|
||||||
|
return false;
|
||||||
|
if (unpnpMode == null) {
|
||||||
|
if (other.unpnpMode != null)
|
||||||
|
return false;
|
||||||
|
} else if (!unpnpMode.equals(other.unpnpMode))
|
||||||
|
return false;
|
||||||
|
if (version == null) {
|
||||||
|
if (other.version != null)
|
||||||
|
return false;
|
||||||
|
} else if (!version.equals(other.version))
|
||||||
|
return false;
|
||||||
|
if (vlanId != other.vlanId)
|
||||||
|
return false;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@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 + "]";
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,6 +3,10 @@
|
|||||||
*/
|
*/
|
||||||
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.HashSet;
|
||||||
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
@@ -44,6 +48,17 @@ public class OpensyncAPRadioState extends BaseJsonModel {
|
|||||||
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 OpensyncAPRadioState() {
|
||||||
|
super();
|
||||||
|
allowedChannels = new HashSet<>();
|
||||||
|
hwConfig = new HashMap<>();
|
||||||
|
channels = new HashMap<>();
|
||||||
|
hwParams = new HashMap<>();
|
||||||
|
vifStates = new HashSet<>();
|
||||||
|
}
|
||||||
|
|
||||||
public String channelMode;
|
public String channelMode;
|
||||||
public Uuid _uuid;
|
public Uuid _uuid;
|
||||||
public Uuid version;
|
public Uuid version;
|
||||||
@@ -88,6 +103,14 @@ public class OpensyncAPRadioState extends BaseJsonModel {
|
|||||||
this.mac = mac;
|
this.mac = mac;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Set<Uuid> getVifStates() {
|
||||||
|
return vifStates;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setVifStates(Set<Uuid> vifStates) {
|
||||||
|
this.vifStates = vifStates;
|
||||||
|
}
|
||||||
|
|
||||||
public int getBcnInt() {
|
public int getBcnInt() {
|
||||||
return bcnInt;
|
return bcnInt;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,8 +1,10 @@
|
|||||||
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.telecominfraproject.wlan.core.model.json.BaseJsonModel;
|
import com.telecominfraproject.wlan.core.model.json.BaseJsonModel;
|
||||||
import com.vmware.ovsdb.protocol.operation.notation.Uuid;
|
import com.vmware.ovsdb.protocol.operation.notation.Uuid;
|
||||||
@@ -22,7 +24,8 @@ public class OpensyncAPVIFState extends BaseJsonModel {
|
|||||||
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;
|
||||||
@@ -43,6 +46,13 @@ public class OpensyncAPVIFState extends BaseJsonModel {
|
|||||||
return ifName;
|
return ifName;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public OpensyncAPVIFState() {
|
||||||
|
super();
|
||||||
|
security = new HashMap<>();
|
||||||
|
associatedClients = new ArrayList<>();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
public void setIfName(String ifName) {
|
public void setIfName(String ifName) {
|
||||||
this.ifName = ifName;
|
this.ifName = ifName;
|
||||||
}
|
}
|
||||||
@@ -127,11 +137,11 @@ public class OpensyncAPVIFState extends BaseJsonModel {
|
|||||||
this.macList = macList;
|
this.macList = macList;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Set<Uuid> getAssociatedClients() {
|
public List<Uuid> getAssociatedClients() {
|
||||||
return associatedClients;
|
return associatedClients;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setAssociatedClients(Set<Uuid> list) {
|
public void setAssociatedClients(List<Uuid> list) {
|
||||||
this.associatedClients = list;
|
this.associatedClients = list;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -258,5 +268,4 @@ public class OpensyncAPVIFState extends BaseJsonModel {
|
|||||||
public void setVersion(Uuid version) {
|
public void setVersion(Uuid version) {
|
||||||
this.version = version;
|
this.version = version;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,8 +3,8 @@
|
|||||||
*/
|
*/
|
||||||
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.telecominfraproject.wlan.core.model.json.BaseJsonModel;
|
import com.telecominfraproject.wlan.core.model.json.BaseJsonModel;
|
||||||
import com.vmware.ovsdb.protocol.operation.notation.Uuid;
|
import com.vmware.ovsdb.protocol.operation.notation.Uuid;
|
||||||
@@ -43,6 +43,15 @@ public class OpensyncAWLANNode extends BaseJsonModel {
|
|||||||
public Uuid _uuid;
|
public Uuid _uuid;
|
||||||
public Uuid version;
|
public Uuid version;
|
||||||
|
|
||||||
|
public OpensyncAWLANNode() {
|
||||||
|
super();
|
||||||
|
mqttSettings = new HashMap<>();
|
||||||
|
versionMatrix = new HashMap<>();
|
||||||
|
ledConfig = new HashMap<>();
|
||||||
|
mqttHeaders = new HashMap<>();
|
||||||
|
mqttTopics = new HashMap<>();
|
||||||
|
}
|
||||||
|
|
||||||
public Map<Object, Object> getMqttSettings() {
|
public Map<Object, Object> getMqttSettings() {
|
||||||
return mqttSettings;
|
return mqttSettings;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,8 +3,8 @@
|
|||||||
*/
|
*/
|
||||||
package com.telecominfraproject.wlan.opensync.external.integration.models;
|
package com.telecominfraproject.wlan.opensync.external.integration.models;
|
||||||
|
|
||||||
|
import java.util.HashSet;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
import java.util.UUID;
|
|
||||||
|
|
||||||
import com.telecominfraproject.wlan.core.model.json.BaseJsonModel;
|
import com.telecominfraproject.wlan.core.model.json.BaseJsonModel;
|
||||||
import com.vmware.ovsdb.protocol.operation.notation.Uuid;
|
import com.vmware.ovsdb.protocol.operation.notation.Uuid;
|
||||||
@@ -27,6 +27,11 @@ public class OpensyncWifiAssociatedClients extends BaseJsonModel {
|
|||||||
public Uuid _uuid;
|
public Uuid _uuid;
|
||||||
public Uuid version;
|
public Uuid version;
|
||||||
|
|
||||||
|
public OpensyncWifiAssociatedClients() {
|
||||||
|
super();
|
||||||
|
capabilities = new HashSet<>();
|
||||||
|
}
|
||||||
|
|
||||||
public String getKeyId() {
|
public String getKeyId() {
|
||||||
return keyId;
|
return keyId;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -12,7 +12,7 @@
|
|||||||
<dependencies>
|
<dependencies>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.telecominfraproject.wlan</groupId>
|
<groupId>com.telecominfraproject.wlan</groupId>
|
||||||
<artifactId>opensync-ext-interface</artifactId>
|
<artifactId>opensync-gateway</artifactId>
|
||||||
<version>${tip-wlan-cloud.release.version}</version>
|
<version>${tip-wlan-cloud.release.version}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
</dependencies>
|
</dependencies>
|
||||||
|
|||||||
@@ -1,7 +1,10 @@
|
|||||||
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.HashSet;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
import javax.annotation.PostConstruct;
|
import javax.annotation.PostConstruct;
|
||||||
|
|
||||||
@@ -15,6 +18,7 @@ import com.telecominfraproject.wlan.equipment.models.Equipment;
|
|||||||
import com.telecominfraproject.wlan.location.models.Location;
|
import com.telecominfraproject.wlan.location.models.Location;
|
||||||
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;
|
||||||
|
import com.telecominfraproject.wlan.opensync.external.integration.models.OpensyncAPHotspot20Config;
|
||||||
import com.telecominfraproject.wlan.opensync.external.integration.models.OpensyncAPInetState;
|
import com.telecominfraproject.wlan.opensync.external.integration.models.OpensyncAPInetState;
|
||||||
import com.telecominfraproject.wlan.opensync.external.integration.models.OpensyncAPRadioState;
|
import com.telecominfraproject.wlan.opensync.external.integration.models.OpensyncAPRadioState;
|
||||||
import com.telecominfraproject.wlan.opensync.external.integration.models.OpensyncAPVIFState;
|
import com.telecominfraproject.wlan.opensync.external.integration.models.OpensyncAPVIFState;
|
||||||
@@ -31,19 +35,43 @@ public class OpensyncExternalIntegrationSimple implements OpensyncExternalIntegr
|
|||||||
|
|
||||||
private static final Logger LOG = LoggerFactory.getLogger(OpensyncExternalIntegrationSimple.class);
|
private static final Logger LOG = LoggerFactory.getLogger(OpensyncExternalIntegrationSimple.class);
|
||||||
|
|
||||||
@Value("${connectus.ovsdb.customerEquipmentFileName:/app/config/EquipmentExample.json}")
|
@Value("${tip.wlan.ovsdb.customerEquipmentFileName:/app/config/EquipmentExample.json}")
|
||||||
private String customerEquipmentFileName;
|
private String customerEquipmentFileName;
|
||||||
|
|
||||||
@Value("${connectus.ovsdb.apProfileFileName:/app/config/ProfileAPExample.json}")
|
@Value("${tip.wlan.ovsdb.apProfileFileName:/app/config/ProfileAPExample.json}")
|
||||||
private String apProfileFileName;
|
private String apProfileFileName;
|
||||||
|
|
||||||
@Value("${connectus.ovsdb.ssidProfileFileName:/app/config/ProfileSsid.json}")
|
@Value("${tip.wlan.ovsdb.rfProfileFileName:/app/config/ProfileRf.json}")
|
||||||
|
private String rfProfileFileName;
|
||||||
|
|
||||||
|
@Value("${tip.wlan.ovsdb.ssidProfileFileName:/app/config/ProfileSsid.json}")
|
||||||
private String ssidProfileFileName;
|
private String ssidProfileFileName;
|
||||||
|
|
||||||
@Value("${connectus.ovsdb.radiusProfileFileName:/app/config/ProfileRadius.json}")
|
@Value("${tip.wlan.ovsdb.metricsProfileFileName:/app/config/ProfileMetrics.json}")
|
||||||
|
private String metricsProfileFileName;
|
||||||
|
|
||||||
|
@Value("${tip.wlan.ovsdb.venueProfileFileName:/app/config/ProfileVenue.json}")
|
||||||
|
private String venueProfileFileName;
|
||||||
|
|
||||||
|
@Value("${tip.wlan.ovsdb.operatorProfileFileName:/app/config/ProfileOperator.json}")
|
||||||
|
private String operatorProfileFileName;
|
||||||
|
|
||||||
|
@Value("${tip.wlan.ovsdb.hotspot20ProfileFileName:/app/config/ProfileHotspot20.json}")
|
||||||
|
private String hotspot20ProfileFileName;
|
||||||
|
|
||||||
|
@Value("${tip.wlan.ovsdb.idProviderProfileFileName:/app/config/ProfileIdProvider.json}")
|
||||||
|
private String idProviderProfileFileName;
|
||||||
|
|
||||||
|
@Value("${tip.wlan.ovsdb.radiusProfileFileName:/app/config/ProfileRadius.json}")
|
||||||
private String radiusProfileFileName;
|
private String radiusProfileFileName;
|
||||||
|
|
||||||
@Value("${connectus.ovsdb.locationFileName:/app/config/LocationBuildingExample.json}")
|
@Value("${tip.wlan.ovsdb.captiveProfileFileName:/app/config/ProfileCaptive.json}")
|
||||||
|
private String captiveProfileFileName;
|
||||||
|
|
||||||
|
@Value("${tip.wlan.ovsdb.bonjourProfileFileName:/app/config/ProfileBonjour.json}")
|
||||||
|
private String bonjourProfileFileName;
|
||||||
|
|
||||||
|
@Value("${tip.wlan.ovsdb.locationFileName:/app/config/LocationBuildingExample.json}")
|
||||||
private String locationFileName;
|
private String locationFileName;
|
||||||
|
|
||||||
private String serialNumber = "";
|
private String serialNumber = "";
|
||||||
@@ -73,32 +101,84 @@ public class OpensyncExternalIntegrationSimple implements OpensyncExternalIntegr
|
|||||||
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);
|
||||||
|
|
||||||
|
List<com.telecominfraproject.wlan.profile.models.Profile> hotspot20Profiles = com.telecominfraproject.wlan.profile.models.Profile
|
||||||
|
.listFromFile(hotspot20ProfileFileName, com.telecominfraproject.wlan.profile.models.Profile.class);
|
||||||
|
List<com.telecominfraproject.wlan.profile.models.Profile> operatorProfiles = com.telecominfraproject.wlan.profile.models.Profile
|
||||||
|
.listFromFile(operatorProfileFileName, com.telecominfraproject.wlan.profile.models.Profile.class);
|
||||||
|
List<com.telecominfraproject.wlan.profile.models.Profile> venueProfiles = com.telecominfraproject.wlan.profile.models.Profile
|
||||||
|
.listFromFile(venueProfileFileName, com.telecominfraproject.wlan.profile.models.Profile.class);
|
||||||
|
List<com.telecominfraproject.wlan.profile.models.Profile> providerProfiles = com.telecominfraproject.wlan.profile.models.Profile
|
||||||
|
.listFromFile(idProviderProfileFileName, com.telecominfraproject.wlan.profile.models.Profile.class);
|
||||||
|
|
||||||
|
|
||||||
ssidProfiles.stream().forEach(p -> apProfile.getChildProfileIds().add(p.getId()));
|
ssidProfiles.stream().forEach(p -> apProfile.getChildProfileIds().add(p.getId()));
|
||||||
|
|
||||||
|
List<com.telecominfraproject.wlan.profile.models.Profile> metricsProfiles = com.telecominfraproject.wlan.profile.models.Profile
|
||||||
|
.listFromFile(metricsProfileFileName, com.telecominfraproject.wlan.profile.models.Profile.class);
|
||||||
|
|
||||||
List<com.telecominfraproject.wlan.profile.models.Profile> radiusProfiles = com.telecominfraproject.wlan.profile.models.Profile
|
List<com.telecominfraproject.wlan.profile.models.Profile> radiusProfiles = com.telecominfraproject.wlan.profile.models.Profile
|
||||||
.listFromFile(radiusProfileFileName, com.telecominfraproject.wlan.profile.models.Profile.class);
|
.listFromFile(radiusProfileFileName, com.telecominfraproject.wlan.profile.models.Profile.class);
|
||||||
|
|
||||||
|
|
||||||
|
List<com.telecominfraproject.wlan.profile.models.Profile> captiveProfiles = null;
|
||||||
|
File captiveFile = new File(captiveProfileFileName);
|
||||||
|
if (captiveFile.exists()) {
|
||||||
|
captiveProfiles = com.telecominfraproject.wlan.profile.models.Profile.listFromFile(
|
||||||
|
captiveProfileFileName, com.telecominfraproject.wlan.profile.models.Profile.class);
|
||||||
|
} else {
|
||||||
|
LOG.info("Captive file is not provided");
|
||||||
|
}
|
||||||
|
|
||||||
|
List<com.telecominfraproject.wlan.profile.models.Profile> bonjourProfiles = null;
|
||||||
|
File bonjourFile = new File(bonjourProfileFileName);
|
||||||
|
if (bonjourFile.exists()) {
|
||||||
|
bonjourProfiles = com.telecominfraproject.wlan.profile.models.Profile.listFromFile(
|
||||||
|
bonjourProfileFileName, com.telecominfraproject.wlan.profile.models.Profile.class);
|
||||||
|
} else {
|
||||||
|
LOG.info("Bonjour file is not provided");
|
||||||
|
}
|
||||||
|
|
||||||
equipment.setProfileId(apProfile.getId());
|
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());
|
||||||
|
|
||||||
|
OpensyncAPHotspot20Config hotspotConfig = new OpensyncAPHotspot20Config();
|
||||||
|
|
||||||
|
hotspotConfig.setHotspot20ProfileSet(
|
||||||
|
new HashSet<com.telecominfraproject.wlan.profile.models.Profile>(hotspot20Profiles));
|
||||||
|
hotspotConfig.setHotspot20OperatorSet(
|
||||||
|
new HashSet<com.telecominfraproject.wlan.profile.models.Profile>(operatorProfiles));
|
||||||
|
hotspotConfig.setHotspot20VenueSet(
|
||||||
|
new HashSet<com.telecominfraproject.wlan.profile.models.Profile>(venueProfiles));
|
||||||
|
hotspotConfig.setHotspot20ProviderSet(
|
||||||
|
new HashSet<com.telecominfraproject.wlan.profile.models.Profile>(providerProfiles));
|
||||||
|
|
||||||
ret = new OpensyncAPConfig();
|
ret = new OpensyncAPConfig();
|
||||||
ret.setCustomerEquipment(equipment);
|
ret.setCustomerEquipment(equipment);
|
||||||
ret.setApProfile(apProfile);
|
ret.setApProfile(apProfile);
|
||||||
|
ret.setRfProfile(rfProfile);
|
||||||
|
ret.setMetricsProfiles(metricsProfiles);
|
||||||
ret.setSsidProfile(ssidProfiles);
|
ret.setSsidProfile(ssidProfiles);
|
||||||
ret.setRadiusProfiles(radiusProfiles);
|
ret.setRadiusProfiles(radiusProfiles);
|
||||||
ret.setEquipmentLocation(location);
|
ret.setEquipmentLocation(location);
|
||||||
|
ret.setCaptiveProfiles(captiveProfiles);
|
||||||
|
ret.setBonjourGatewayProfiles(bonjourProfiles);
|
||||||
|
ret.setHotspotConfig(hotspotConfig);
|
||||||
|
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
LOG.error("Cannot read config file", e);
|
LOG.error("Cannot read config file", e);
|
||||||
@@ -110,15 +190,24 @@ public class OpensyncExternalIntegrationSimple implements OpensyncExternalIntegr
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void processMqttMessage(String topic, Report report) {
|
public void processMqttMessage(String topic, Report report) {
|
||||||
LOG.info("Received PlumeStatsReport on topic {} for ap {}\n{}", topic, report.getNodeID(), report);
|
LOG.info("Received OpensyncStatsReport 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());
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -164,4 +253,26 @@ 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);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -38,37 +38,28 @@
|
|||||||
"channelNumber": 6,
|
"channelNumber": 6,
|
||||||
"manualChannelNumber": 6,
|
"manualChannelNumber": 6,
|
||||||
"backupChannelNumber": 11,
|
"backupChannelNumber": 11,
|
||||||
"autoChannelSelection": false,
|
|
||||||
"channelBandwidth": "is20MHz",
|
|
||||||
"bannedChannels": [],
|
"bannedChannels": [],
|
||||||
"allowedChannels": [],
|
"allowedChannels": [],
|
||||||
"rxCellSizeDb": {
|
"rxCellSizeDb": {
|
||||||
"model_type": "AutoOrManualValue",
|
"model_type": "SourceSelectionValue",
|
||||||
"auto": true,
|
"source": "auto",
|
||||||
"value": -90
|
"value": -90
|
||||||
},
|
},
|
||||||
"probeResponseThresholdDb": {
|
"probeResponseThresholdDb": {
|
||||||
"model_type": "AutoOrManualValue",
|
"model_type": "SourceSelectionValue",
|
||||||
"auto": true,
|
"source": "auto",
|
||||||
"value": -90
|
"value": -90
|
||||||
},
|
},
|
||||||
"clientDisconnectThresholdDb": {
|
"clientDisconnectThresholdDb": {
|
||||||
"model_type": "AutoOrManualValue",
|
"model_type": "SourceSelectionValue",
|
||||||
"auto": true,
|
"source": "auto",
|
||||||
"value": -90
|
"value": -90
|
||||||
},
|
},
|
||||||
"eirpTxPower": {
|
"eirpTxPower": {
|
||||||
"model_type": "AutoOrManualValue",
|
"model_type": "SourceSelectionValue",
|
||||||
"auto": false,
|
"source": "auto",
|
||||||
"value": 32
|
"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,
|
||||||
@@ -81,37 +72,28 @@
|
|||||||
"channelNumber": 149,
|
"channelNumber": 149,
|
||||||
"manualChannelNumber": 149,
|
"manualChannelNumber": 149,
|
||||||
"backupChannelNumber": 154,
|
"backupChannelNumber": 154,
|
||||||
"autoChannelSelection": false,
|
|
||||||
"channelBandwidth": "is80MHz",
|
|
||||||
"bannedChannels": [],
|
"bannedChannels": [],
|
||||||
"allowedChannels": [],
|
"allowedChannels": [],
|
||||||
"rxCellSizeDb": {
|
"rxCellSizeDb": {
|
||||||
"model_type": "AutoOrManualValue",
|
"model_type": "SourceSelectionValue",
|
||||||
"auto": true,
|
"source": "auto",
|
||||||
"value": -90
|
"value": -90
|
||||||
},
|
},
|
||||||
"probeResponseThresholdDb": {
|
"probeResponseThresholdDb": {
|
||||||
"model_type": "AutoOrManualValue",
|
"model_type": "SourceSelectionValue",
|
||||||
"auto": true,
|
"source": "auto",
|
||||||
"value": -90
|
"value": -90
|
||||||
},
|
},
|
||||||
"clientDisconnectThresholdDb": {
|
"clientDisconnectThresholdDb": {
|
||||||
"model_type": "AutoOrManualValue",
|
"model_type": "SourceSelectionValue",
|
||||||
"auto": true,
|
"source": "auto",
|
||||||
"value": -90
|
"value": -90
|
||||||
},
|
},
|
||||||
"eirpTxPower": {
|
"eirpTxPower": {
|
||||||
"model_type": "AutoOrManualValue",
|
"model_type": "SourceSelectionValue",
|
||||||
"auto": false,
|
"source": "auto",
|
||||||
"value": 32
|
"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,
|
||||||
@@ -124,37 +106,28 @@
|
|||||||
"channelNumber": 36,
|
"channelNumber": 36,
|
||||||
"manualChannelNumber": 36,
|
"manualChannelNumber": 36,
|
||||||
"backupChannelNumber": 44,
|
"backupChannelNumber": 44,
|
||||||
"autoChannelSelection": false,
|
|
||||||
"channelBandwidth": "is80MHz",
|
|
||||||
"bannedChannels": [],
|
"bannedChannels": [],
|
||||||
"allowedChannels": [],
|
"allowedChannels": [],
|
||||||
"rxCellSizeDb": {
|
"rxCellSizeDb": {
|
||||||
"model_type": "AutoOrManualValue",
|
"model_type": "SourceSelectionValue",
|
||||||
"auto": true,
|
"source": "auto",
|
||||||
"value": -90
|
"value": -90
|
||||||
},
|
},
|
||||||
"probeResponseThresholdDb": {
|
"probeResponseThresholdDb": {
|
||||||
"model_type": "AutoOrManualValue",
|
"model_type": "SourceSelectionValue",
|
||||||
"auto": true,
|
"source": "auto",
|
||||||
"value": -90
|
"value": -90
|
||||||
},
|
},
|
||||||
"clientDisconnectThresholdDb": {
|
"clientDisconnectThresholdDb": {
|
||||||
"model_type": "AutoOrManualValue",
|
"model_type": "SourceSelectionValue",
|
||||||
"auto": true,
|
"source": "auto",
|
||||||
"value": -90
|
"value": -90
|
||||||
},
|
},
|
||||||
"eirpTxPower": {
|
"eirpTxPower": {
|
||||||
"model_type": "AutoOrManualValue",
|
"model_type": "SourceSelectionValue",
|
||||||
"auto": false,
|
"source": "auto",
|
||||||
"value": 32
|
"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,
|
||||||
@@ -168,39 +141,24 @@
|
|||||||
"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": "auto",
|
"managementRate": {
|
||||||
"managementRate": "auto",
|
"model_type": "SourceSelectionManagement",
|
||||||
"activeScanSettings": {
|
"source": "auto",
|
||||||
"model_type": "ActiveScanSettings",
|
"value": "auto"
|
||||||
"enabled": true,
|
|
||||||
"scanFrequencySeconds": 10,
|
|
||||||
"scanDurationMillis": 65
|
|
||||||
},
|
|
||||||
"channelHopSettings": {
|
|
||||||
"model_type": "ChannelHopSettings",
|
|
||||||
"noiseFloorThresholdInDB": -75,
|
|
||||||
"noiseFloorThresholdTimeInSeconds": 180,
|
|
||||||
"nonWifiThresholdInPercentage": 50,
|
|
||||||
"nonWifiThresholdTimeInSeconds": 180,
|
|
||||||
"obssHopMode": "NON_WIFI"
|
|
||||||
},
|
},
|
||||||
"bestApSettings": {
|
"bestApSettings": {
|
||||||
|
"model_type": "SourceSelectionSteering",
|
||||||
|
"source": "auto",
|
||||||
|
"value": {
|
||||||
"model_type": "RadioBestApSettings",
|
"model_type": "RadioBestApSettings",
|
||||||
"mlComputed": true,
|
"mlComputed": true,
|
||||||
"dropInSnrPercentage": 20,
|
"dropInSnrPercentage": 30,
|
||||||
"minLoadFactor": 50
|
"minLoadFactor": 40
|
||||||
|
}
|
||||||
},
|
},
|
||||||
"forceScanDuringVoice": "disabled",
|
|
||||||
"legacyBSSRate": "enabled",
|
"legacyBSSRate": "enabled",
|
||||||
"beaconInterval": 100,
|
|
||||||
"deauthAttackDetection": null
|
"deauthAttackDetection": null
|
||||||
},
|
},
|
||||||
"is5GHzU": {
|
"is5GHzU": {
|
||||||
@@ -208,39 +166,24 @@
|
|||||||
"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": "auto",
|
"managementRate": {
|
||||||
"managementRate": "auto",
|
"model_type": "SourceSelectionManagement",
|
||||||
"activeScanSettings": {
|
"source": "auto",
|
||||||
"model_type": "ActiveScanSettings",
|
"value": "auto"
|
||||||
"enabled": true,
|
|
||||||
"scanFrequencySeconds": 10,
|
|
||||||
"scanDurationMillis": 65
|
|
||||||
},
|
|
||||||
"channelHopSettings": {
|
|
||||||
"model_type": "ChannelHopSettings",
|
|
||||||
"noiseFloorThresholdInDB": -75,
|
|
||||||
"noiseFloorThresholdTimeInSeconds": 180,
|
|
||||||
"nonWifiThresholdInPercentage": 50,
|
|
||||||
"nonWifiThresholdTimeInSeconds": 180,
|
|
||||||
"obssHopMode": "NON_WIFI"
|
|
||||||
},
|
},
|
||||||
"bestApSettings": {
|
"bestApSettings": {
|
||||||
|
"model_type": "SourceSelectionSteering",
|
||||||
|
"source": "auto",
|
||||||
|
"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",
|
||||||
"beaconInterval": 100,
|
|
||||||
"deauthAttackDetection": null
|
"deauthAttackDetection": null
|
||||||
},
|
},
|
||||||
"is5GHzL": {
|
"is5GHzL": {
|
||||||
@@ -248,39 +191,24 @@
|
|||||||
"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": "auto",
|
"managementRate": {
|
||||||
"managementRate": "auto",
|
"model_type": "SourceSelectionManagement",
|
||||||
"activeScanSettings": {
|
"source": "auto",
|
||||||
"model_type": "ActiveScanSettings",
|
"value": "auto"
|
||||||
"enabled": true,
|
|
||||||
"scanFrequencySeconds": 10,
|
|
||||||
"scanDurationMillis": 65
|
|
||||||
},
|
|
||||||
"channelHopSettings": {
|
|
||||||
"model_type": "ChannelHopSettings",
|
|
||||||
"noiseFloorThresholdInDB": -75,
|
|
||||||
"noiseFloorThresholdTimeInSeconds": 180,
|
|
||||||
"nonWifiThresholdInPercentage": 50,
|
|
||||||
"nonWifiThresholdTimeInSeconds": 180,
|
|
||||||
"obssHopMode": "NON_WIFI"
|
|
||||||
},
|
},
|
||||||
"bestApSettings": {
|
"bestApSettings": {
|
||||||
|
"model_type": "SourceSelectionSteering",
|
||||||
|
"source": "auto",
|
||||||
|
"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",
|
||||||
"beaconInterval": 100,
|
|
||||||
"deauthAttackDetection": null
|
"deauthAttackDetection": null
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -10,55 +10,48 @@
|
|||||||
"countryCode" : "ca",
|
"countryCode" : "ca",
|
||||||
"maintenanceWindow" : null,
|
"maintenanceWindow" : null,
|
||||||
"rrmEnabled" : true,
|
"rrmEnabled" : true,
|
||||||
"dailyRebalancingDetails" : {
|
"dailyActivityDetails" : {
|
||||||
"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
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
{
|
{
|
||||||
"model_type": "Profile",
|
"model_type": "Profile",
|
||||||
"id": 5,
|
"id": 23,
|
||||||
"customerId": 2,
|
"customerId": 2,
|
||||||
"profileType": "equipment_ap",
|
"profileType": "equipment_ap",
|
||||||
"name": "DefaultApProfile",
|
"name": "ApProfile-3-radios-passpoint",
|
||||||
"details": {
|
"details": {
|
||||||
"model_type": "ApNetworkConfiguration",
|
"model_type": "ApNetworkConfiguration",
|
||||||
"networkConfigVersion": "AP-1",
|
"networkConfigVersion": "AP-1",
|
||||||
@@ -20,12 +20,12 @@
|
|||||||
"syntheticClientEnabled": true,
|
"syntheticClientEnabled": true,
|
||||||
"ledControlEnabled": true,
|
"ledControlEnabled": true,
|
||||||
"equipmentDiscovery": false,
|
"equipmentDiscovery": false,
|
||||||
|
"greTunnelName": null,
|
||||||
|
"greParentIfName": null,
|
||||||
|
"greLocalInetAddr": null,
|
||||||
|
"greRemoteInetAddr": null,
|
||||||
|
"greRemoteMacAddr": null,
|
||||||
"radioMap": {
|
"radioMap": {
|
||||||
"is5GHz": {
|
|
||||||
"model_type": "RadioProfileConfiguration",
|
|
||||||
"bestApEnabled": true,
|
|
||||||
"bestAPSteerType": "both"
|
|
||||||
},
|
|
||||||
"is2dot4GHz": {
|
"is2dot4GHz": {
|
||||||
"model_type": "RadioProfileConfiguration",
|
"model_type": "RadioProfileConfiguration",
|
||||||
"bestApEnabled": true,
|
"bestApEnabled": true,
|
||||||
@@ -44,11 +44,12 @@
|
|||||||
},
|
},
|
||||||
"profileType": "equipment_ap"
|
"profileType": "equipment_ap"
|
||||||
},
|
},
|
||||||
"createdTimestamp": 1591653239947,
|
"createdTimestamp": 1605711197140,
|
||||||
"lastModifiedTimestamp": 1591654336724,
|
"lastModifiedTimestamp": 1605711197140,
|
||||||
"childProfileIds": [
|
"childProfileIds": [
|
||||||
6,
|
16,
|
||||||
7,
|
21,
|
||||||
8
|
22,
|
||||||
|
15
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
29
opensync-ext-static/src/main/resources/ProfileBonjour.json
Normal file
29
opensync-ext-static/src/main/resources/ProfileBonjour.json
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
[
|
||||||
|
{
|
||||||
|
"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": []
|
||||||
|
}
|
||||||
|
]
|
||||||
135
opensync-ext-static/src/main/resources/ProfileCaptive.json
Normal file
135
opensync-ext-static/src/main/resources/ProfileCaptive.json
Normal file
@@ -0,0 +1,135 @@
|
|||||||
|
[
|
||||||
|
{
|
||||||
|
"model_type": "Profile",
|
||||||
|
"id": 14,
|
||||||
|
"customerId": 2,
|
||||||
|
"profileType": "captive_portal",
|
||||||
|
"name": "Captive-portal",
|
||||||
|
"details": {
|
||||||
|
"model_type": "CaptivePortalConfiguration",
|
||||||
|
"name": "Captive-portal",
|
||||||
|
"browserTitle": "Access the network as Guest",
|
||||||
|
"headerContent": "Captive Portal",
|
||||||
|
"userAcceptancePolicy": "Use this network at your own risk. No warranty of any kind.",
|
||||||
|
"successPageMarkdownText": "Welcome to the network",
|
||||||
|
"redirectURL": "",
|
||||||
|
"externalCaptivePortalURL": null,
|
||||||
|
"sessionTimeoutInMinutes": 60,
|
||||||
|
"logoFile": null,
|
||||||
|
"backgroundFile": null,
|
||||||
|
"walledGardenAllowlist": [],
|
||||||
|
"usernamePasswordFile": {
|
||||||
|
"model_type": "ManagedFileInfo",
|
||||||
|
"md5checksum": null,
|
||||||
|
"lastModifiedTimestamp": null,
|
||||||
|
"apExportUrl": "userList",
|
||||||
|
"fileCategory": "UsernamePasswordList",
|
||||||
|
"fileType": "TEXT",
|
||||||
|
"altSlot": true
|
||||||
|
},
|
||||||
|
"authenticationType": "guest",
|
||||||
|
"radiusAuthMethod": "CHAP",
|
||||||
|
"maxUsersWithSameCredentials": 42,
|
||||||
|
"externalPolicyFile": null,
|
||||||
|
"backgroundPosition": "left_top",
|
||||||
|
"backgroundRepeat": "no_repeat",
|
||||||
|
"radiusServiceName": null,
|
||||||
|
"expiryType": "unlimited",
|
||||||
|
"userList": [
|
||||||
|
{
|
||||||
|
"model_type": "TimedAccessUserRecord",
|
||||||
|
"username": "customer",
|
||||||
|
"password": "testing123",
|
||||||
|
"activationTime": 1602183994956,
|
||||||
|
"expirationTime": 1602212794956,
|
||||||
|
"numDevices": 1,
|
||||||
|
"userDetails": {
|
||||||
|
"model_type": "TimedAccessUserDetails",
|
||||||
|
"firstName": "Pac",
|
||||||
|
"lastName": "Man",
|
||||||
|
"passwordNeedsReset": false
|
||||||
|
},
|
||||||
|
"userMacAddresses": [
|
||||||
|
{
|
||||||
|
"model_type": "MacAddress",
|
||||||
|
"address": "fKtg5upO",
|
||||||
|
"addressAsString": "7c:ab:60:e6:ea:4e"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"lastModifiedTimestamp": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"model_type": "TimedAccessUserRecord",
|
||||||
|
"username": "customer",
|
||||||
|
"password": "testing123",
|
||||||
|
"activationTime": 1602183994957,
|
||||||
|
"expirationTime": 1602187594957,
|
||||||
|
"numDevices": 0,
|
||||||
|
"userDetails": {
|
||||||
|
"model_type": "TimedAccessUserDetails",
|
||||||
|
"firstName": "Q",
|
||||||
|
"lastName": "Bert",
|
||||||
|
"passwordNeedsReset": false
|
||||||
|
},
|
||||||
|
"userMacAddresses": [
|
||||||
|
{
|
||||||
|
"model_type": "MacAddress",
|
||||||
|
"address": "wJrQdqho",
|
||||||
|
"addressAsString": "c0:9a:d0:76:a8:68"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"lastModifiedTimestamp": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"model_type": "TimedAccessUserRecord",
|
||||||
|
"username": "customer2",
|
||||||
|
"password": "testing1234",
|
||||||
|
"activationTime": 1602183994957,
|
||||||
|
"expirationTime": 1602788794957,
|
||||||
|
"numDevices": 1,
|
||||||
|
"userDetails": {
|
||||||
|
"model_type": "TimedAccessUserDetails",
|
||||||
|
"firstName": "Duke",
|
||||||
|
"lastName": "Nukem",
|
||||||
|
"passwordNeedsReset": false
|
||||||
|
},
|
||||||
|
"userMacAddresses": [
|
||||||
|
{
|
||||||
|
"model_type": "MacAddress",
|
||||||
|
"address": "fKtg5upN",
|
||||||
|
"addressAsString": "7c:ab:60:e6:ea:4d"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"lastModifiedTimestamp": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"model_type": "TimedAccessUserRecord",
|
||||||
|
"username": "customer2",
|
||||||
|
"password": "testing1234",
|
||||||
|
"activationTime": 1602183994957,
|
||||||
|
"expirationTime": 1602270394957,
|
||||||
|
"numDevices": 0,
|
||||||
|
"userDetails": {
|
||||||
|
"model_type": "TimedAccessUserDetails",
|
||||||
|
"firstName": "Missile",
|
||||||
|
"lastName": "Commander",
|
||||||
|
"passwordNeedsReset": false
|
||||||
|
},
|
||||||
|
"userMacAddresses": [
|
||||||
|
{
|
||||||
|
"model_type": "MacAddress",
|
||||||
|
"address": "wJrQdqhj",
|
||||||
|
"addressAsString": "c0:9a:d0:76:a8:63"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"lastModifiedTimestamp": 0
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"macAllowList": [],
|
||||||
|
"profileType": "captive_portal"
|
||||||
|
},
|
||||||
|
"createdTimestamp": 1602183994959,
|
||||||
|
"lastModifiedTimestamp": 1602183994959,
|
||||||
|
"childProfileIds": []
|
||||||
|
}
|
||||||
|
]
|
||||||
72
opensync-ext-static/src/main/resources/ProfileHotspot20.json
Normal file
72
opensync-ext-static/src/main/resources/ProfileHotspot20.json
Normal file
@@ -0,0 +1,72 @@
|
|||||||
|
[
|
||||||
|
{
|
||||||
|
"model_type": "Profile",
|
||||||
|
"id": 24,
|
||||||
|
"customerId": 2,
|
||||||
|
"profileType": "passpoint",
|
||||||
|
"name": "TipWlan-Hotspot20-Config",
|
||||||
|
"details": {
|
||||||
|
"model_type": "PasspointProfile",
|
||||||
|
"enableInterworkingAndHs20": true,
|
||||||
|
"hessid": null,
|
||||||
|
"additionalStepsRequiredForAccess": 0,
|
||||||
|
"deauthRequestTimeout": 0,
|
||||||
|
"operatingClass": 0,
|
||||||
|
"termsAndConditionsFile": {
|
||||||
|
"model_type": "ManagedFileInfo",
|
||||||
|
"md5checksum": null,
|
||||||
|
"lastModifiedTimestamp": null,
|
||||||
|
"apExportUrl": "https://localhost:9091/filestore/termsAndConditions",
|
||||||
|
"fileCategory": "ExternalPolicyConfiguration",
|
||||||
|
"fileType": "TEXT",
|
||||||
|
"altSlot": false
|
||||||
|
},
|
||||||
|
"whitelistDomain": null,
|
||||||
|
"emergencyServicesReachable": true,
|
||||||
|
"unauthenticatedEmergencyServiceAccessible": false,
|
||||||
|
"internetConnectivity": true,
|
||||||
|
"connectionCapabilitySet": [
|
||||||
|
{
|
||||||
|
"model_type": "PasspointConnectionCapability",
|
||||||
|
"connectionCapabilitiesPortNumber": 8888,
|
||||||
|
"connectionCapabilitiesIpProtocol": "TCP",
|
||||||
|
"connectionCapabilitiesStatus": "open"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"ipAddressTypeAvailability": "public_IPv4_address_available",
|
||||||
|
"qosMapSetConfiguration": null,
|
||||||
|
"apGeospatialLocation": null,
|
||||||
|
"apCivicLocation": null,
|
||||||
|
"apPublicLocationIdUri": null,
|
||||||
|
"gasAddr3Behaviour": "p2pSpecWorkaroundFromRequest",
|
||||||
|
"anqpDomainId": 1234,
|
||||||
|
"disableDownstreamGroupAddressedForwarding": false,
|
||||||
|
"enable2pt4GHz": true,
|
||||||
|
"enable5GHz": true,
|
||||||
|
"associatedAccessSsidNames": [
|
||||||
|
"TipWlan-cloud-hotspot-access"
|
||||||
|
],
|
||||||
|
"osuSsidName": "TipWlan-cloud-hotspot-osu",
|
||||||
|
"operatorProfileName": "TipWlan-Hotspot20-Operator",
|
||||||
|
"venueProfileName": "TipWlan-Hotspot20-Venue",
|
||||||
|
"idProviderProfileNames": [
|
||||||
|
"TipWlan-Hotspot20-OSU-Provider-2",
|
||||||
|
"TipWlan-Hotspot20-OSU-Provider"
|
||||||
|
],
|
||||||
|
"accessNetworkType": "free_public_network",
|
||||||
|
"networkAuthenticationType": "acceptance_of_terms_and_conditions",
|
||||||
|
"associatedSsids": [
|
||||||
|
"TipWlan-cloud-hotspot-access"
|
||||||
|
],
|
||||||
|
"profileType": "passpoint"
|
||||||
|
},
|
||||||
|
"createdTimestamp": 1605711223339,
|
||||||
|
"lastModifiedTimestamp": 1605711223339,
|
||||||
|
"childProfileIds": [
|
||||||
|
17,
|
||||||
|
18,
|
||||||
|
19,
|
||||||
|
20
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
270
opensync-ext-static/src/main/resources/ProfileIdProvider.json
Normal file
270
opensync-ext-static/src/main/resources/ProfileIdProvider.json
Normal file
@@ -0,0 +1,270 @@
|
|||||||
|
[
|
||||||
|
{
|
||||||
|
"model_type": "Profile",
|
||||||
|
"id": 19,
|
||||||
|
"customerId": 2,
|
||||||
|
"profileType": "passpoint_osu_id_provider",
|
||||||
|
"name": "TipWlan-Hotspot20-OSU-Provider",
|
||||||
|
"details": {
|
||||||
|
"model_type": "PasspointOsuProviderProfile",
|
||||||
|
"domainName": "rogers.com",
|
||||||
|
"mccMncList": [
|
||||||
|
{
|
||||||
|
"model_type": "PasspointMccMnc",
|
||||||
|
"mcc": 302,
|
||||||
|
"mnc": 720,
|
||||||
|
"iso": "ca",
|
||||||
|
"country": "Canada",
|
||||||
|
"countryCode": 1,
|
||||||
|
"network": "Rogers AT&T Wireless",
|
||||||
|
"mccMncPairing": "302,720"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"naiRealmList": [
|
||||||
|
{
|
||||||
|
"model_type": "PasspointNaiRealmInformation",
|
||||||
|
"naiRealms": [
|
||||||
|
"rogers.com"
|
||||||
|
],
|
||||||
|
"encoding": 0,
|
||||||
|
"eapMethods": [
|
||||||
|
"EAP-TTLS with username/password",
|
||||||
|
"EAP-TLS with certificate"
|
||||||
|
],
|
||||||
|
"eapMap": {
|
||||||
|
"EAP-TTLS with username/password": [
|
||||||
|
"Credential Type:username/password",
|
||||||
|
"Non-EAP Inner Authentication Type:MSCHAPV2"
|
||||||
|
],
|
||||||
|
"EAP-TLS with certificate": [
|
||||||
|
"Credential Type:Certificate"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"osuIconList": [
|
||||||
|
{
|
||||||
|
"model_type": "PasspointOsuIcon",
|
||||||
|
"iconWidth": 32,
|
||||||
|
"iconHeight": 32,
|
||||||
|
"languageCode": "eng",
|
||||||
|
"iconLocale": "en_CA",
|
||||||
|
"iconName": "icon32eng",
|
||||||
|
"filePath": "/tmp/icon32eng.png",
|
||||||
|
"imageUrl": "https://localhost:9096/icon32eng.png",
|
||||||
|
"hs20IconString": "32:32:eng:image/png:icon32eng:/tmp/icon32eng.png"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"model_type": "PasspointOsuIcon",
|
||||||
|
"iconWidth": 32,
|
||||||
|
"iconHeight": 32,
|
||||||
|
"languageCode": "fra",
|
||||||
|
"iconLocale": "fr_CA",
|
||||||
|
"iconName": "icon32fra",
|
||||||
|
"filePath": "/tmp/icon32fra.png",
|
||||||
|
"imageUrl": "https://localhost:9096/icon32fra.png",
|
||||||
|
"hs20IconString": "32:32:fra:image/png:icon32fra:/tmp/icon32fra.png"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"model_type": "PasspointOsuIcon",
|
||||||
|
"iconWidth": 32,
|
||||||
|
"iconHeight": 32,
|
||||||
|
"languageCode": "eng",
|
||||||
|
"iconLocale": "en_US",
|
||||||
|
"iconName": "icon32usa",
|
||||||
|
"filePath": "/tmp/icon32usa.png",
|
||||||
|
"imageUrl": "https://localhost:9096/icon32usa.png",
|
||||||
|
"hs20IconString": "32:32:eng:image/png:icon32usa:/tmp/icon32usa.png"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"osuServerUri": "https://example.com/osu/rogers",
|
||||||
|
"osuFriendlyName": [
|
||||||
|
{
|
||||||
|
"model_type": "PasspointDuple",
|
||||||
|
"locale": "en_CA",
|
||||||
|
"dupleIso3Language": "eng",
|
||||||
|
"dupleName": "Example provider rogers",
|
||||||
|
"defaultDupleSeparator": ":",
|
||||||
|
"asDuple": "eng:Example provider rogers"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"model_type": "PasspointDuple",
|
||||||
|
"locale": "fr_CA",
|
||||||
|
"dupleIso3Language": "fra",
|
||||||
|
"dupleName": "Exemple de fournisseur rogers",
|
||||||
|
"defaultDupleSeparator": ":",
|
||||||
|
"asDuple": "fra:Exemple de fournisseur rogers"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"osuNaiStandalone": "anonymous@rogers.com",
|
||||||
|
"osuNaiShared": "anonymous@rogers.com",
|
||||||
|
"osuMethodList": [
|
||||||
|
1,
|
||||||
|
0
|
||||||
|
],
|
||||||
|
"osuServiceDescription": [
|
||||||
|
{
|
||||||
|
"model_type": "PasspointDuple",
|
||||||
|
"locale": "en_CA",
|
||||||
|
"dupleIso3Language": "eng",
|
||||||
|
"dupleName": "Example services rogers",
|
||||||
|
"defaultDupleSeparator": ":",
|
||||||
|
"asDuple": "eng:Example services rogers"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"model_type": "PasspointDuple",
|
||||||
|
"locale": "fr_CA",
|
||||||
|
"dupleIso3Language": "fra",
|
||||||
|
"dupleName": "Exemples de services rogers",
|
||||||
|
"defaultDupleSeparator": ":",
|
||||||
|
"asDuple": "fra:Exemples de services rogers"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"roamingOi": [
|
||||||
|
1,
|
||||||
|
2,
|
||||||
|
3,
|
||||||
|
4
|
||||||
|
],
|
||||||
|
"profileType": "passpoint_osu_id_provider"
|
||||||
|
},
|
||||||
|
"createdTimestamp": 1605711165325,
|
||||||
|
"lastModifiedTimestamp": 1605711165325,
|
||||||
|
"childProfileIds": [
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"model_type": "Profile",
|
||||||
|
"id": 20,
|
||||||
|
"customerId": 2,
|
||||||
|
"profileType": "passpoint_osu_id_provider",
|
||||||
|
"name": "TipWlan-Hotspot20-OSU-Provider-2",
|
||||||
|
"details": {
|
||||||
|
"model_type": "PasspointOsuProviderProfile",
|
||||||
|
"domainName": "telus.com",
|
||||||
|
"mccMncList": [
|
||||||
|
{
|
||||||
|
"model_type": "PasspointMccMnc",
|
||||||
|
"mcc": 302,
|
||||||
|
"mnc": 220,
|
||||||
|
"iso": "ca",
|
||||||
|
"country": "Canada",
|
||||||
|
"countryCode": 1,
|
||||||
|
"network": "Telus Mobility",
|
||||||
|
"mccMncPairing": "302,220"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"naiRealmList": [
|
||||||
|
{
|
||||||
|
"model_type": "PasspointNaiRealmInformation",
|
||||||
|
"naiRealms": [
|
||||||
|
"telus.com"
|
||||||
|
],
|
||||||
|
"encoding": 0,
|
||||||
|
"eapMethods": [
|
||||||
|
"EAP-TTLS with username/password",
|
||||||
|
"EAP-TLS with certificate"
|
||||||
|
],
|
||||||
|
"eapMap": {
|
||||||
|
"EAP-TTLS with username/password": [
|
||||||
|
"Credential Type:username/password",
|
||||||
|
"Non-EAP Inner Authentication Type:MSCHAPV2"
|
||||||
|
],
|
||||||
|
"EAP-TLS with certificate": [
|
||||||
|
"Credential Type:Certificate"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"osuIconList": [
|
||||||
|
{
|
||||||
|
"model_type": "PasspointOsuIcon",
|
||||||
|
"iconWidth": 32,
|
||||||
|
"iconHeight": 32,
|
||||||
|
"languageCode": "eng",
|
||||||
|
"iconLocale": "en_CA",
|
||||||
|
"iconName": "icon32eng",
|
||||||
|
"filePath": "/tmp/icon32eng.png",
|
||||||
|
"imageUrl": "https://localhost:9096/icon32eng.png",
|
||||||
|
"hs20IconString": "32:32:eng:image/png:icon32eng:/tmp/icon32eng.png"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"model_type": "PasspointOsuIcon",
|
||||||
|
"iconWidth": 32,
|
||||||
|
"iconHeight": 32,
|
||||||
|
"languageCode": "fra",
|
||||||
|
"iconLocale": "fr_CA",
|
||||||
|
"iconName": "icon32fra",
|
||||||
|
"filePath": "/tmp/icon32fra.png",
|
||||||
|
"imageUrl": "https://localhost:9096/icon32fra.png",
|
||||||
|
"hs20IconString": "32:32:fra:image/png:icon32fra:/tmp/icon32fra.png"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"model_type": "PasspointOsuIcon",
|
||||||
|
"iconWidth": 32,
|
||||||
|
"iconHeight": 32,
|
||||||
|
"languageCode": "eng",
|
||||||
|
"iconLocale": "en_US",
|
||||||
|
"iconName": "icon32usa",
|
||||||
|
"filePath": "/tmp/icon32usa.png",
|
||||||
|
"imageUrl": "https://localhost:9096/icon32usa.png",
|
||||||
|
"hs20IconString": "32:32:eng:image/png:icon32usa:/tmp/icon32usa.png"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"osuServerUri": "https://example.com/osu/telus",
|
||||||
|
"osuFriendlyName": [
|
||||||
|
{
|
||||||
|
"model_type": "PasspointDuple",
|
||||||
|
"locale": "en_CA",
|
||||||
|
"dupleIso3Language": "eng",
|
||||||
|
"dupleName": "Example provider telus",
|
||||||
|
"defaultDupleSeparator": ":",
|
||||||
|
"asDuple": "eng:Example provider telus"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"model_type": "PasspointDuple",
|
||||||
|
"locale": "fr_CA",
|
||||||
|
"dupleIso3Language": "fra",
|
||||||
|
"dupleName": "Exemple de fournisseur telus",
|
||||||
|
"defaultDupleSeparator": ":",
|
||||||
|
"asDuple": "fra:Exemple de fournisseur telus"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"osuNaiStandalone": "anonymous@telus.com",
|
||||||
|
"osuNaiShared": "anonymous@telus.com",
|
||||||
|
"osuMethodList": [
|
||||||
|
1,
|
||||||
|
0
|
||||||
|
],
|
||||||
|
"osuServiceDescription": [
|
||||||
|
{
|
||||||
|
"model_type": "PasspointDuple",
|
||||||
|
"locale": "en_CA",
|
||||||
|
"dupleIso3Language": "eng",
|
||||||
|
"dupleName": "Example services telus",
|
||||||
|
"defaultDupleSeparator": ":",
|
||||||
|
"asDuple": "eng:Example services telus"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"model_type": "PasspointDuple",
|
||||||
|
"locale": "fr_CA",
|
||||||
|
"dupleIso3Language": "fra",
|
||||||
|
"dupleName": "Exemples de services telus",
|
||||||
|
"defaultDupleSeparator": ":",
|
||||||
|
"asDuple": "fra:Exemples de services telus"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"roamingOi": [
|
||||||
|
1,
|
||||||
|
2,
|
||||||
|
3,
|
||||||
|
4
|
||||||
|
],
|
||||||
|
"profileType": "passpoint_osu_id_provider"
|
||||||
|
},
|
||||||
|
"createdTimestamp": 1605711165330,
|
||||||
|
"lastModifiedTimestamp": 1605711165330,
|
||||||
|
"childProfileIds": [
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
299
opensync-ext-static/src/main/resources/ProfileMetrics.json
Normal file
299
opensync-ext-static/src/main/resources/ProfileMetrics.json
Normal file
@@ -0,0 +1,299 @@
|
|||||||
|
[
|
||||||
|
{
|
||||||
|
"model_type": "Profile",
|
||||||
|
"id": 22,
|
||||||
|
"customerId": 2,
|
||||||
|
"profileType": "service_metrics_collection_config",
|
||||||
|
"name": "Metrics-Profile-Passpoint",
|
||||||
|
"details": {
|
||||||
|
"model_type": "ServiceMetricsCollectionConfigProfile",
|
||||||
|
"radioTypes": [
|
||||||
|
"is5GHzL",
|
||||||
|
"is2dot4GHz",
|
||||||
|
"is5GHzU"
|
||||||
|
],
|
||||||
|
"serviceMetricDataTypes": [
|
||||||
|
"ApNode",
|
||||||
|
"ApSsid",
|
||||||
|
"Client",
|
||||||
|
"Channel",
|
||||||
|
"Neighbour"
|
||||||
|
],
|
||||||
|
"metricConfigParameterMap": {
|
||||||
|
"ApNode": [
|
||||||
|
{
|
||||||
|
"model_type": "ServiceMetricSurveyConfigParameters",
|
||||||
|
"samplingInterval": 30,
|
||||||
|
"reportingIntervalSeconds": 60,
|
||||||
|
"channelSurveyType": "ON_CHANNEL",
|
||||||
|
"scanIntervalMillis": 0,
|
||||||
|
"percentUtilizationThreshold": 10,
|
||||||
|
"delayMillisecondsThreshold": 600,
|
||||||
|
"radioType": "is2dot4GHz",
|
||||||
|
"serviceMetricDataType": "ApNode",
|
||||||
|
"statsReportFormat": "RAW"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"model_type": "ServiceMetricSurveyConfigParameters",
|
||||||
|
"samplingInterval": 30,
|
||||||
|
"reportingIntervalSeconds": 60,
|
||||||
|
"channelSurveyType": "ON_CHANNEL",
|
||||||
|
"scanIntervalMillis": 0,
|
||||||
|
"percentUtilizationThreshold": 10,
|
||||||
|
"delayMillisecondsThreshold": 600,
|
||||||
|
"radioType": "is5GHzU",
|
||||||
|
"serviceMetricDataType": "ApNode",
|
||||||
|
"statsReportFormat": "RAW"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"model_type": "ServiceMetricSurveyConfigParameters",
|
||||||
|
"samplingInterval": 30,
|
||||||
|
"reportingIntervalSeconds": 120,
|
||||||
|
"channelSurveyType": "OFF_CHANNEL",
|
||||||
|
"scanIntervalMillis": 0,
|
||||||
|
"percentUtilizationThreshold": 10,
|
||||||
|
"delayMillisecondsThreshold": 600,
|
||||||
|
"radioType": "is5GHzL",
|
||||||
|
"serviceMetricDataType": "ApNode",
|
||||||
|
"statsReportFormat": "RAW"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"model_type": "ServiceMetricSurveyConfigParameters",
|
||||||
|
"samplingInterval": 30,
|
||||||
|
"reportingIntervalSeconds": 120,
|
||||||
|
"channelSurveyType": "OFF_CHANNEL",
|
||||||
|
"scanIntervalMillis": 0,
|
||||||
|
"percentUtilizationThreshold": 10,
|
||||||
|
"delayMillisecondsThreshold": 600,
|
||||||
|
"radioType": "is5GHzU",
|
||||||
|
"serviceMetricDataType": "ApNode",
|
||||||
|
"statsReportFormat": "RAW"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"model_type": "ServiceMetricSurveyConfigParameters",
|
||||||
|
"samplingInterval": 30,
|
||||||
|
"reportingIntervalSeconds": 60,
|
||||||
|
"channelSurveyType": "ON_CHANNEL",
|
||||||
|
"scanIntervalMillis": 0,
|
||||||
|
"percentUtilizationThreshold": 10,
|
||||||
|
"delayMillisecondsThreshold": 600,
|
||||||
|
"radioType": "is5GHzL",
|
||||||
|
"serviceMetricDataType": "ApNode",
|
||||||
|
"statsReportFormat": "RAW"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"model_type": "ServiceMetricSurveyConfigParameters",
|
||||||
|
"samplingInterval": 30,
|
||||||
|
"reportingIntervalSeconds": 120,
|
||||||
|
"channelSurveyType": "OFF_CHANNEL",
|
||||||
|
"scanIntervalMillis": 0,
|
||||||
|
"percentUtilizationThreshold": 10,
|
||||||
|
"delayMillisecondsThreshold": 600,
|
||||||
|
"radioType": "is2dot4GHz",
|
||||||
|
"serviceMetricDataType": "ApNode",
|
||||||
|
"statsReportFormat": "RAW"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"ApSsid": [
|
||||||
|
{
|
||||||
|
"model_type": "ServiceMetricRadioConfigParameters",
|
||||||
|
"samplingInterval": 30,
|
||||||
|
"reportingIntervalSeconds": 60,
|
||||||
|
"radioType": "is5GHzL",
|
||||||
|
"serviceMetricDataType": "ApSsid"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"model_type": "ServiceMetricRadioConfigParameters",
|
||||||
|
"samplingInterval": 30,
|
||||||
|
"reportingIntervalSeconds": 60,
|
||||||
|
"radioType": "is2dot4GHz",
|
||||||
|
"serviceMetricDataType": "ApSsid"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"model_type": "ServiceMetricRadioConfigParameters",
|
||||||
|
"samplingInterval": 30,
|
||||||
|
"reportingIntervalSeconds": 60,
|
||||||
|
"radioType": "is5GHzU",
|
||||||
|
"serviceMetricDataType": "ApSsid"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"Client": [
|
||||||
|
{
|
||||||
|
"model_type": "ServiceMetricRadioConfigParameters",
|
||||||
|
"samplingInterval": 30,
|
||||||
|
"reportingIntervalSeconds": 60,
|
||||||
|
"radioType": "is5GHzU",
|
||||||
|
"serviceMetricDataType": "Client"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"model_type": "ServiceMetricRadioConfigParameters",
|
||||||
|
"samplingInterval": 30,
|
||||||
|
"reportingIntervalSeconds": 60,
|
||||||
|
"radioType": "is5GHzL",
|
||||||
|
"serviceMetricDataType": "Client"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"model_type": "ServiceMetricRadioConfigParameters",
|
||||||
|
"samplingInterval": 30,
|
||||||
|
"reportingIntervalSeconds": 60,
|
||||||
|
"radioType": "is2dot4GHz",
|
||||||
|
"serviceMetricDataType": "Client"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"Channel": [
|
||||||
|
{
|
||||||
|
"model_type": "ServiceMetricSurveyConfigParameters",
|
||||||
|
"samplingInterval": 30,
|
||||||
|
"reportingIntervalSeconds": 60,
|
||||||
|
"channelSurveyType": "ON_CHANNEL",
|
||||||
|
"scanIntervalMillis": 0,
|
||||||
|
"percentUtilizationThreshold": 10,
|
||||||
|
"delayMillisecondsThreshold": 600,
|
||||||
|
"radioType": "is2dot4GHz",
|
||||||
|
"serviceMetricDataType": "Channel",
|
||||||
|
"statsReportFormat": "RAW"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"model_type": "ServiceMetricSurveyConfigParameters",
|
||||||
|
"samplingInterval": 30,
|
||||||
|
"reportingIntervalSeconds": 120,
|
||||||
|
"channelSurveyType": "OFF_CHANNEL",
|
||||||
|
"scanIntervalMillis": 0,
|
||||||
|
"percentUtilizationThreshold": 10,
|
||||||
|
"delayMillisecondsThreshold": 600,
|
||||||
|
"radioType": "is5GHzU",
|
||||||
|
"serviceMetricDataType": "Channel",
|
||||||
|
"statsReportFormat": "RAW"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"model_type": "ServiceMetricSurveyConfigParameters",
|
||||||
|
"samplingInterval": 30,
|
||||||
|
"reportingIntervalSeconds": 60,
|
||||||
|
"channelSurveyType": "ON_CHANNEL",
|
||||||
|
"scanIntervalMillis": 0,
|
||||||
|
"percentUtilizationThreshold": 10,
|
||||||
|
"delayMillisecondsThreshold": 600,
|
||||||
|
"radioType": "is5GHzL",
|
||||||
|
"serviceMetricDataType": "Channel",
|
||||||
|
"statsReportFormat": "RAW"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"model_type": "ServiceMetricSurveyConfigParameters",
|
||||||
|
"samplingInterval": 30,
|
||||||
|
"reportingIntervalSeconds": 60,
|
||||||
|
"channelSurveyType": "ON_CHANNEL",
|
||||||
|
"scanIntervalMillis": 0,
|
||||||
|
"percentUtilizationThreshold": 10,
|
||||||
|
"delayMillisecondsThreshold": 600,
|
||||||
|
"radioType": "is5GHzU",
|
||||||
|
"serviceMetricDataType": "Channel",
|
||||||
|
"statsReportFormat": "RAW"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"model_type": "ServiceMetricSurveyConfigParameters",
|
||||||
|
"samplingInterval": 30,
|
||||||
|
"reportingIntervalSeconds": 120,
|
||||||
|
"channelSurveyType": "OFF_CHANNEL",
|
||||||
|
"scanIntervalMillis": 0,
|
||||||
|
"percentUtilizationThreshold": 10,
|
||||||
|
"delayMillisecondsThreshold": 600,
|
||||||
|
"radioType": "is5GHzL",
|
||||||
|
"serviceMetricDataType": "Channel",
|
||||||
|
"statsReportFormat": "RAW"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"model_type": "ServiceMetricSurveyConfigParameters",
|
||||||
|
"samplingInterval": 30,
|
||||||
|
"reportingIntervalSeconds": 120,
|
||||||
|
"channelSurveyType": "OFF_CHANNEL",
|
||||||
|
"scanIntervalMillis": 0,
|
||||||
|
"percentUtilizationThreshold": 10,
|
||||||
|
"delayMillisecondsThreshold": 600,
|
||||||
|
"radioType": "is2dot4GHz",
|
||||||
|
"serviceMetricDataType": "Channel",
|
||||||
|
"statsReportFormat": "RAW"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"Neighbour": [
|
||||||
|
{
|
||||||
|
"model_type": "ServiceMetricSurveyConfigParameters",
|
||||||
|
"samplingInterval": 30,
|
||||||
|
"reportingIntervalSeconds": 120,
|
||||||
|
"channelSurveyType": "OFF_CHANNEL",
|
||||||
|
"scanIntervalMillis": 0,
|
||||||
|
"percentUtilizationThreshold": 10,
|
||||||
|
"delayMillisecondsThreshold": 600,
|
||||||
|
"radioType": "is5GHzL",
|
||||||
|
"serviceMetricDataType": "Neighbour",
|
||||||
|
"statsReportFormat": "RAW"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"model_type": "ServiceMetricSurveyConfigParameters",
|
||||||
|
"samplingInterval": 30,
|
||||||
|
"reportingIntervalSeconds": 120,
|
||||||
|
"channelSurveyType": "OFF_CHANNEL",
|
||||||
|
"scanIntervalMillis": 0,
|
||||||
|
"percentUtilizationThreshold": 10,
|
||||||
|
"delayMillisecondsThreshold": 600,
|
||||||
|
"radioType": "is5GHzU",
|
||||||
|
"serviceMetricDataType": "Neighbour",
|
||||||
|
"statsReportFormat": "RAW"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"model_type": "ServiceMetricSurveyConfigParameters",
|
||||||
|
"samplingInterval": 30,
|
||||||
|
"reportingIntervalSeconds": 60,
|
||||||
|
"channelSurveyType": "ON_CHANNEL",
|
||||||
|
"scanIntervalMillis": 0,
|
||||||
|
"percentUtilizationThreshold": 10,
|
||||||
|
"delayMillisecondsThreshold": 600,
|
||||||
|
"radioType": "is5GHzL",
|
||||||
|
"serviceMetricDataType": "Neighbour",
|
||||||
|
"statsReportFormat": "RAW"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"model_type": "ServiceMetricSurveyConfigParameters",
|
||||||
|
"samplingInterval": 30,
|
||||||
|
"reportingIntervalSeconds": 60,
|
||||||
|
"channelSurveyType": "ON_CHANNEL",
|
||||||
|
"scanIntervalMillis": 0,
|
||||||
|
"percentUtilizationThreshold": 10,
|
||||||
|
"delayMillisecondsThreshold": 600,
|
||||||
|
"radioType": "is2dot4GHz",
|
||||||
|
"serviceMetricDataType": "Neighbour",
|
||||||
|
"statsReportFormat": "RAW"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"model_type": "ServiceMetricSurveyConfigParameters",
|
||||||
|
"samplingInterval": 30,
|
||||||
|
"reportingIntervalSeconds": 120,
|
||||||
|
"channelSurveyType": "OFF_CHANNEL",
|
||||||
|
"scanIntervalMillis": 0,
|
||||||
|
"percentUtilizationThreshold": 10,
|
||||||
|
"delayMillisecondsThreshold": 600,
|
||||||
|
"radioType": "is2dot4GHz",
|
||||||
|
"serviceMetricDataType": "Neighbour",
|
||||||
|
"statsReportFormat": "RAW"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"model_type": "ServiceMetricSurveyConfigParameters",
|
||||||
|
"samplingInterval": 30,
|
||||||
|
"reportingIntervalSeconds": 60,
|
||||||
|
"channelSurveyType": "ON_CHANNEL",
|
||||||
|
"scanIntervalMillis": 0,
|
||||||
|
"percentUtilizationThreshold": 10,
|
||||||
|
"delayMillisecondsThreshold": 600,
|
||||||
|
"radioType": "is5GHzU",
|
||||||
|
"serviceMetricDataType": "Neighbour",
|
||||||
|
"statsReportFormat": "RAW"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"profileType": "service_metrics_collection_config"
|
||||||
|
},
|
||||||
|
"createdTimestamp": 1605711195528,
|
||||||
|
"lastModifiedTimestamp": 1605711195528,
|
||||||
|
"childProfileIds": [
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
37
opensync-ext-static/src/main/resources/ProfileOperator.json
Normal file
37
opensync-ext-static/src/main/resources/ProfileOperator.json
Normal file
@@ -0,0 +1,37 @@
|
|||||||
|
[
|
||||||
|
{
|
||||||
|
"model_type": "Profile",
|
||||||
|
"id": 17,
|
||||||
|
"customerId": 2,
|
||||||
|
"profileType": "passpoint_operator",
|
||||||
|
"name": "TipWlan-Hotspot20-Operator",
|
||||||
|
"details": {
|
||||||
|
"model_type": "PasspointOperatorProfile",
|
||||||
|
"serverOnlyAuthenticatedL2EncryptionNetwork": false,
|
||||||
|
"x509CertificateLocation": "/etc/ca.pem",
|
||||||
|
"operatorFriendlyName": [
|
||||||
|
{
|
||||||
|
"model_type": "PasspointDuple",
|
||||||
|
"locale": "en_CA",
|
||||||
|
"dupleIso3Language": "eng",
|
||||||
|
"dupleName": "Default friendly passpoint_operator name",
|
||||||
|
"defaultDupleSeparator": ":",
|
||||||
|
"asDuple": "eng:Default friendly passpoint_operator name"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"model_type": "PasspointDuple",
|
||||||
|
"locale": "fr_CA",
|
||||||
|
"dupleIso3Language": "fra",
|
||||||
|
"dupleName": "Nom de l'opérateur convivial par défaut",
|
||||||
|
"defaultDupleSeparator": ":",
|
||||||
|
"asDuple": "fra:Nom de l'opérateur convivial par défaut"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"profileType": "passpoint_operator"
|
||||||
|
},
|
||||||
|
"createdTimestamp": 1605711164952,
|
||||||
|
"lastModifiedTimestamp": 1605711164952,
|
||||||
|
"childProfileIds": [
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
@@ -1,10 +1,10 @@
|
|||||||
[
|
[
|
||||||
{
|
{
|
||||||
"model_type": "Profile",
|
"model_type": "Profile",
|
||||||
"id": 1,
|
"id": 1,
|
||||||
"customerId": 2,
|
"customerId": 2,
|
||||||
"profileType": "radius",
|
"profileType": "radius",
|
||||||
"name": "RadiusProfileOttawa",
|
"name": "Radius-Profile",
|
||||||
"details": {
|
"details": {
|
||||||
"model_type": "RadiusProfile",
|
"model_type": "RadiusProfile",
|
||||||
"subnetConfiguration": null,
|
"subnetConfiguration": null,
|
||||||
@@ -12,10 +12,10 @@
|
|||||||
"Ottawa": {
|
"Ottawa": {
|
||||||
"model_type": "RadiusServiceRegion",
|
"model_type": "RadiusServiceRegion",
|
||||||
"serverMap": {
|
"serverMap": {
|
||||||
"RadiusProfileOttawa": [
|
"Radius-Profile": [
|
||||||
{
|
{
|
||||||
"model_type": "RadiusServer",
|
"model_type": "RadiusServer",
|
||||||
"ipAddress": "localhost",
|
"ipAddress": "192.168.0.1",
|
||||||
"secret": "testing123",
|
"secret": "testing123",
|
||||||
"authPort": 1812,
|
"authPort": 1812,
|
||||||
"timeout": null
|
"timeout": null
|
||||||
@@ -27,8 +27,8 @@
|
|||||||
},
|
},
|
||||||
"profileType": "radius"
|
"profileType": "radius"
|
||||||
},
|
},
|
||||||
"createdTimestamp": 1591653174195,
|
"createdTimestamp": 1601961451668,
|
||||||
"lastModifiedTimestamp": 1591653174195,
|
"lastModifiedTimestamp": 1601961451668,
|
||||||
"childProfileIds": []
|
"childProfileIds": []
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
205
opensync-ext-static/src/main/resources/ProfileRf.json
Normal file
205
opensync-ext-static/src/main/resources/ProfileRf.json
Normal file
@@ -0,0 +1,205 @@
|
|||||||
|
{
|
||||||
|
"model_type": "Profile",
|
||||||
|
"id": 21,
|
||||||
|
"customerId": 2,
|
||||||
|
"profileType": "rf",
|
||||||
|
"name": "TipWlan-rf-passpoint",
|
||||||
|
"details": {
|
||||||
|
"model_type": "RfConfiguration",
|
||||||
|
"rfConfigMap": {
|
||||||
|
"is5GHz": {
|
||||||
|
"model_type": "RfElementConfiguration",
|
||||||
|
"radioType": "is5GHz",
|
||||||
|
"radioMode": "modeAC",
|
||||||
|
"rf": "TipWlan-rf-passpoint",
|
||||||
|
"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-passpoint",
|
||||||
|
"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-passpoint",
|
||||||
|
"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-passpoint",
|
||||||
|
"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": 1605711191976,
|
||||||
|
"lastModifiedTimestamp": 1605711191976,
|
||||||
|
"childProfileIds": [
|
||||||
|
]
|
||||||
|
}
|
||||||
@@ -1,149 +1,31 @@
|
|||||||
[
|
[
|
||||||
{
|
{
|
||||||
"model_type": "Profile",
|
"model_type": "Profile",
|
||||||
"id": 6,
|
"id": 15,
|
||||||
"customerId": 2,
|
"customerId": 2,
|
||||||
"profileType": "ssid",
|
"profileType": "ssid",
|
||||||
"name": "DefaultSsid-2g",
|
"name": "TipWlan-cloud-hotspot-access",
|
||||||
"details": {
|
"details": {
|
||||||
"model_type": "SsidConfiguration",
|
"model_type": "SsidConfiguration",
|
||||||
"ssid": "Default-SSID-2g",
|
"ssid": "TipWlan-cloud-hotspot-access",
|
||||||
"appliedRadios": [
|
|
||||||
"is2dot4GHz"
|
|
||||||
],
|
|
||||||
"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": 1591653239983,
|
|
||||||
"lastModifiedTimestamp": 1591653239983,
|
|
||||||
"childProfileIds": []
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"model_type": "Profile",
|
|
||||||
"id": 7,
|
|
||||||
"customerId": 2,
|
|
||||||
"profileType": "ssid",
|
|
||||||
"name": "DefaultSsid-5gl",
|
|
||||||
"details": {
|
|
||||||
"model_type": "SsidConfiguration",
|
|
||||||
"ssid": "Default-SSID-5gl",
|
|
||||||
"appliedRadios": [
|
|
||||||
"is5GHzL"
|
|
||||||
],
|
|
||||||
"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
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"bonjourGatewayProfileId": null,
|
|
||||||
"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": [
|
"appliedRadios": [
|
||||||
|
"is5GHzL",
|
||||||
"is5GHzU"
|
"is5GHzU"
|
||||||
],
|
],
|
||||||
"ssidAdminState": "enabled",
|
"ssidAdminState": "enabled",
|
||||||
"secureMode": "wpa2PSK",
|
"secureMode": "wpa2PSK",
|
||||||
"vlanId": 1,
|
"vlanId": 1,
|
||||||
"keyStr": "12345678",
|
"keyStr": "testing123",
|
||||||
"broadcastSsid": "enabled",
|
"broadcastSsid": "enabled",
|
||||||
"keyRefresh": 0,
|
"keyRefresh": 0,
|
||||||
"noLocalSubnets": false,
|
"noLocalSubnets": false,
|
||||||
"radiusServiceName": null,
|
"radiusServiceName": null,
|
||||||
|
"radiusAccountingServiceName": null,
|
||||||
"captivePortalId": null,
|
"captivePortalId": null,
|
||||||
"bandwidthLimitDown": 0,
|
"bandwidthLimitDown": 0,
|
||||||
"bandwidthLimitUp": 0,
|
"bandwidthLimitUp": 0,
|
||||||
|
"clientBandwidthLimitDown": 0,
|
||||||
|
"clientBandwidthLimitUp": 0,
|
||||||
"videoTrafficOnly": false,
|
"videoTrafficOnly": false,
|
||||||
"radioBasedConfigs": {
|
"radioBasedConfigs": {
|
||||||
"is5GHz": {
|
"is5GHz": {
|
||||||
@@ -177,8 +59,76 @@
|
|||||||
"forwardMode": null,
|
"forwardMode": null,
|
||||||
"profileType": "ssid"
|
"profileType": "ssid"
|
||||||
},
|
},
|
||||||
"createdTimestamp": 1591654301763,
|
"createdTimestamp": 1605711164949,
|
||||||
"lastModifiedTimestamp": 1591654301763,
|
"lastModifiedTimestamp": 1605711223372,
|
||||||
"childProfileIds": []
|
"childProfileIds": [
|
||||||
}
|
24
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"model_type": "Profile",
|
||||||
|
"id": 16,
|
||||||
|
"customerId": 2,
|
||||||
|
"profileType": "ssid",
|
||||||
|
"name": "TipWlan-cloud-hotspot-osu",
|
||||||
|
"details": {
|
||||||
|
"model_type": "SsidConfiguration",
|
||||||
|
"ssid": "TipWlan-cloud-hotspot-osu",
|
||||||
|
"appliedRadios": [
|
||||||
|
"is2dot4GHz"
|
||||||
|
],
|
||||||
|
"ssidAdminState": "enabled",
|
||||||
|
"secureMode": "open",
|
||||||
|
"vlanId": 1,
|
||||||
|
"keyStr": null,
|
||||||
|
"broadcastSsid": "enabled",
|
||||||
|
"keyRefresh": 0,
|
||||||
|
"noLocalSubnets": false,
|
||||||
|
"radiusServiceName": null,
|
||||||
|
"radiusAccountingServiceName": null,
|
||||||
|
"captivePortalId": null,
|
||||||
|
"bandwidthLimitDown": 0,
|
||||||
|
"bandwidthLimitUp": 0,
|
||||||
|
"clientBandwidthLimitDown": 0,
|
||||||
|
"clientBandwidthLimitUp": 0,
|
||||||
|
"videoTrafficOnly": false,
|
||||||
|
"radioBasedConfigs": {
|
||||||
|
"is5GHz": {
|
||||||
|
"model_type": "RadioBasedSsidConfiguration",
|
||||||
|
"enable80211r": null,
|
||||||
|
"enable80211k": null,
|
||||||
|
"enable80211v": null
|
||||||
|
},
|
||||||
|
"is2dot4GHz": {
|
||||||
|
"model_type": "RadioBasedSsidConfiguration",
|
||||||
|
"enable80211r": null,
|
||||||
|
"enable80211k": null,
|
||||||
|
"enable80211v": null
|
||||||
|
},
|
||||||
|
"is5GHzU": {
|
||||||
|
"model_type": "RadioBasedSsidConfiguration",
|
||||||
|
"enable80211r": null,
|
||||||
|
"enable80211k": null,
|
||||||
|
"enable80211v": null
|
||||||
|
},
|
||||||
|
"is5GHzL": {
|
||||||
|
"model_type": "RadioBasedSsidConfiguration",
|
||||||
|
"enable80211r": null,
|
||||||
|
"enable80211k": null,
|
||||||
|
"enable80211v": null
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"bonjourGatewayProfileId": null,
|
||||||
|
"enable80211w": null,
|
||||||
|
"wepConfig": null,
|
||||||
|
"forwardMode": null,
|
||||||
|
"profileType": "ssid"
|
||||||
|
},
|
||||||
|
"createdTimestamp": 1605711164950,
|
||||||
|
"lastModifiedTimestamp": 1605711171732,
|
||||||
|
"childProfileIds": [
|
||||||
|
19,
|
||||||
|
20
|
||||||
|
]
|
||||||
|
}
|
||||||
]
|
]
|
||||||
43
opensync-ext-static/src/main/resources/ProfileVenue.json
Normal file
43
opensync-ext-static/src/main/resources/ProfileVenue.json
Normal file
@@ -0,0 +1,43 @@
|
|||||||
|
[
|
||||||
|
{
|
||||||
|
"model_type": "Profile",
|
||||||
|
"id": 18,
|
||||||
|
"customerId": 2,
|
||||||
|
"profileType": "passpoint_venue",
|
||||||
|
"name": "TipWlan-Hotspot20-Venue",
|
||||||
|
"details": {
|
||||||
|
"model_type": "PasspointVenueProfile",
|
||||||
|
"venueNameSet": [
|
||||||
|
{
|
||||||
|
"model_type": "PasspointVenueName",
|
||||||
|
"locale": "fr_CA",
|
||||||
|
"dupleIso3Language": "fra",
|
||||||
|
"dupleName": "Exemple de lieu",
|
||||||
|
"defaultDupleSeparator": ":",
|
||||||
|
"venueUrl": "http://www.example.com/info-fra",
|
||||||
|
"asDuple": "fra:Exemple de lieu"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"model_type": "PasspointVenueName",
|
||||||
|
"locale": "en_CA",
|
||||||
|
"dupleIso3Language": "eng",
|
||||||
|
"dupleName": "Example passpoint_venue",
|
||||||
|
"defaultDupleSeparator": ":",
|
||||||
|
"venueUrl": "http://www.example.com/info-eng",
|
||||||
|
"asDuple": "eng:Example passpoint_venue"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"venueTypeAssignment": {
|
||||||
|
"model_type": "ProfileVenueTypeAssignment",
|
||||||
|
"venueDescription": "Research and Development Facility",
|
||||||
|
"venueGroupId": 2,
|
||||||
|
"venueTypeId": 8
|
||||||
|
},
|
||||||
|
"profileType": "passpoint_venue"
|
||||||
|
},
|
||||||
|
"createdTimestamp": 1605711164956,
|
||||||
|
"lastModifiedTimestamp": 1605711164956,
|
||||||
|
"childProfileIds": [
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
@@ -10,7 +10,7 @@
|
|||||||
"ssidConfigs" : [ {
|
"ssidConfigs" : [ {
|
||||||
"model_type" : "OpensyncAPSsidConfig",
|
"model_type" : "OpensyncAPSsidConfig",
|
||||||
"radioType" : "is2dot4GHz",
|
"radioType" : "is2dot4GHz",
|
||||||
"ssid" : "Connectus-local",
|
"ssid" : "Tip-wlan-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" : "Connectus-local-5l",
|
"ssid" : "Tip-wlan-local-5l",
|
||||||
"encryption" : "WPA-PSK",
|
"encryption" : "WPA-PSK",
|
||||||
"key" : "12345678",
|
"key" : "12345678",
|
||||||
"mode" : "2",
|
"mode" : "2",
|
||||||
|
|||||||
@@ -20,10 +20,10 @@
|
|||||||
|
|
||||||
<modules>
|
<modules>
|
||||||
<module>../opensync-ext-interface</module>
|
<module>../opensync-ext-interface</module>
|
||||||
<module>../opensync-ext-static</module>
|
|
||||||
<module>../opensync-ext-cloud</module>
|
|
||||||
<module>../opensync-gateway</module>
|
<module>../opensync-gateway</module>
|
||||||
|
<module>../opensync-ext-static</module>
|
||||||
<module>../opensync-gateway-static-process</module>
|
<module>../opensync-gateway-static-process</module>
|
||||||
|
<module>../opensync-ext-cloud</module>
|
||||||
<module>../opensync-gateway-cloud-process</module>
|
<module>../opensync-gateway-cloud-process</module>
|
||||||
</modules>
|
</modules>
|
||||||
</profile>
|
</profile>
|
||||||
|
|||||||
@@ -14,6 +14,8 @@
|
|||||||
<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>
|
||||||
@@ -38,6 +40,9 @@
|
|||||||
<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>
|
||||||
|
|||||||
@@ -1,33 +0,0 @@
|
|||||||
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 [""]
|
|
||||||
@@ -1,18 +0,0 @@
|
|||||||
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
|
|
||||||
|
|
||||||
@@ -1,80 +0,0 @@
|
|||||||
<?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>
|
|
||||||
@@ -1,126 +0,0 @@
|
|||||||
#!/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
|
|
||||||
|
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
FROM adoptopenjdk/openjdk13:alpine-jre
|
FROM adoptopenjdk/openjdk13:alpine-jre
|
||||||
MAINTAINER ConnectUs
|
MAINTAINER TipWlan
|
||||||
|
|
||||||
# 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,6 +9,7 @@ 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
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,4 @@
|
|||||||
|
#This is a dummy property file to be used when running docker locally
|
||||||
|
date=${date}
|
||||||
|
commitId=${commit.id}
|
||||||
|
projectVersion=${project.version}
|
||||||
@@ -14,15 +14,21 @@
|
|||||||
</encoder>
|
</encoder>
|
||||||
</appender>
|
</appender>
|
||||||
|
|
||||||
<!--
|
<appender name="mqttDataFile" class="ch.qos.logback.core.rolling.RollingFileAppender">
|
||||||
<appender name="FILE" class="ch.qos.logback.core.FileAppender">
|
<file>/app/logs/mqttData.log</file>
|
||||||
<file>myApp.log</file>
|
<append>true</append>
|
||||||
|
|
||||||
<encoder>
|
<encoder>
|
||||||
<pattern>%date %level [%thread] %logger{10} [%file:%line] %msg%n</pattern>
|
<pattern>%date %msg%n</pattern>
|
||||||
</encoder>
|
</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>
|
||||||
-->
|
|
||||||
|
|
||||||
<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>
|
||||||
@@ -57,19 +63,15 @@
|
|||||||
<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="DEBUG"/>
|
<logger name="MQTT_DATA" level="DEBUG" additivity="false">
|
||||||
|
<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>
|
||||||
|
|
||||||
|
|||||||
@@ -10,28 +10,112 @@ 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+=" -Dconnectus.mqttBroker.password=admin"
|
CLIENT_MQTT_SSL_PROPS+=" -Dtip.wlan.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}"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
OVSDB_PROPS=" "
|
OVSDB_PROPS=" "
|
||||||
OVSDB_PROPS+=" -Dconnectus.ovsdb.managerAddr=opensync-controller"
|
OVSDB_PROPS+=" -Dtip.wlan.ovsdb.managerAddr=$OVSDB_MANAGER_HOST"
|
||||||
OVSDB_PROPS+=" -Dconnectus.ovsdb.listenPort=6640 "
|
OVSDB_PROPS+=" -Dtip.wlan.ovsdb.listenPort=6640 "
|
||||||
OVSDB_PROPS+=" -Dconnectus.ovsdb.redirector.listenPort=6643"
|
OVSDB_PROPS+=" -Dtip.wlan.ovsdb.redirector.listenPort=6643"
|
||||||
OVSDB_PROPS+=" -Dconnectus.ovsdb.timeoutSec=30"
|
OVSDB_PROPS+=" -Dtip.wlan.ovsdb.timeoutSec=30"
|
||||||
OVSDB_PROPS+=" -Dconnectus.ovsdb.trustStore=/opt/tip-wlan/certs/truststore.jks"
|
OVSDB_PROPS+=" -Dtip.wlan.ovsdb.trustStore=/opt/tip-wlan/certs/truststore.jks"
|
||||||
OVSDB_PROPS+=" -Dconnectus.ovsdb.keyStore=/opt/tip-wlan/certs/server.pkcs12"
|
OVSDB_PROPS+=" -Dtip.wlan.ovsdb.keyStore=/opt/tip-wlan/certs/server.pkcs12"
|
||||||
OVSDB_PROPS+=" -Dconnectus.ovsdb.configFileName=/app/opensync/config_2_ssids.json"
|
OVSDB_PROPS+=" -Dtip.wlan.ovsdb.configFileName=/app/opensync/config_2_ssids.json"
|
||||||
|
|
||||||
MQTT_PROPS=" "
|
MQTT_PROPS=" "
|
||||||
MQTT_PROPS+=" -Dconnectus.mqttBroker.address=tip-wlan-opensync-mqtt-broker"
|
MQTT_PROPS+=" -Dtip.wlan.mqttBroker.address.internal=$MQTT_BROKER_HOST_INTERNAL"
|
||||||
MQTT_PROPS+=" -Dconnectus.mqttBroker.listenPort=1883"
|
MQTT_PROPS+=" -Dtip.wlan.mqttBroker.address.external=$MQTT_BROKER_HOST_EXTERNAL"
|
||||||
|
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"
|
||||||
|
|
||||||
LOGGING_PROPS=" -Dlogging.config=file:/app/opensync/logback.xml"
|
LOGBACK_CONFIG_FILE="${LOGBACK_CONFIG_FILE:=/app/opensync/logback.xml}"
|
||||||
|
LOGGING_PROPS=" -Dlogging.config=file:$LOGBACK_CONFIG_FILE"
|
||||||
|
|
||||||
RESTAPI_PROPS=" "
|
RESTAPI_PROPS=" "
|
||||||
RESTAPI_PROPS+=" -Dserver.port=443"
|
RESTAPI_PROPS+=" -Dserver.port=9096 -Dtip.wlan.secondaryPort=9097"
|
||||||
|
|
||||||
SPRING_EXTRA_PROPS=" --add-opens java.base/java.lang=ALL-UNNAMED"
|
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"
|
HOST_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.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=5005
|
||||||
|
REMOTE_DEBUG=" -agentlib:jdwp=transport=dt_socket,server=y,address=*:$REMOTE_DEBUG_PORT,suspend=n"
|
||||||
|
|
||||||
|
export ALL_PROPS="$PROFILES $SSL_PROPS $CLIENT_MQTT_SSL_PROPS $OVSDB_PROPS $MQTT_PROPS $LOGGING_PROPS $RESTAPI_PROPS $SPRING_EXTRA_PROPS $HOST_PROPS $PROV_PROPS $FILE_STORE_PROPS $REMOTE_DEBUG"
|
||||||
|
|
||||||
java $ALL_PROPS -jar app.jar
|
java $ALL_PROPS -jar app.jar
|
||||||
1
opensync-gateway-cloud-process/.gitignore
vendored
1
opensync-gateway-cloud-process/.gitignore
vendored
@@ -1 +0,0 @@
|
|||||||
/target/
|
|
||||||
@@ -24,19 +24,11 @@
|
|||||||
<artifactId>opensync-ext-cloud</artifactId>
|
<artifactId>opensync-ext-cloud</artifactId>
|
||||||
<version>${tip-wlan-cloud.release.version}</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>${tip-wlan-cloud.release.version}</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>
|
||||||
|
|||||||
@@ -0,0 +1,40 @@
|
|||||||
|
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");
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -11,7 +11,6 @@
|
|||||||
"keystorePass":"mypassword",
|
"keystorePass":"mypassword",
|
||||||
"keyAlias":"clientqrcode",
|
"keyAlias":"clientqrcode",
|
||||||
"credentialsList":[
|
"credentialsList":[
|
||||||
{"host":"localhost","port":-1,"user":"user","password":"password"}
|
|
||||||
]
|
]
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -81,7 +81,9 @@ 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
|
||||||
tip.wlan.servicePassword=password
|
# The value in here is bcrypt-encoded string "password", generated with the following command
|
||||||
|
# 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
|
||||||
@@ -94,6 +96,8 @@ 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
|
||||||
@@ -101,6 +105,9 @@ tip.wlan.csrf-enabled=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
|
||||||
@@ -108,6 +115,7 @@ tip.wlan.csrf-enabled=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
|
||||||
@@ -115,14 +123,20 @@ 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:9096
|
||||||
|
|
||||||
#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
|
||||||
|
|||||||
@@ -21,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 -Dssl.props=file://${project_loc:opensync-gateway-cloud-process}/src/main/resources/app/certs/ssl.properties -Dtip.wlan.httpClientConfig=file://${project_loc:opensync-gateway-cloud-process}/src/main/resources/app/certs/httpClientConfig.json -Djavax.net.ssl.keyStore=${connectus_certs}/client_keystore.jks -Djavax.net.ssl.keyStorePassword=mypassword -Djavax.net.ssl.trustStore=${connectus_certs}/truststore.jks -Djavax.net.ssl.trustStorePassword=mypassword -Dconnectus.ovsdb.managerAddr=${local_server_address} -Dconnectus.ovsdb.listenPort=6640 -Dconnectus.ovsdb.redirector.listenPort=6643 -Dconnectus.ovsdb.timeoutSec=30 -Dconnectus.ovsdb.trustStore=${connectus_certs}/truststore.jks -Dconnectus.ovsdb.keyStore=${connectus_certs}/server.pkcs12 -Dconnectus.mqttBroker.address=${local_server_address} -Dconnectus.mqttBroker.listenPort=1883 -Dconnectus.ovsdb.wifi-iface.default_bridge=br-lan -Dtip.wlan.introspectTokenApi.host=${local_server_address}:9096 -Dtip.wlan.introspectTokenApi.clientToken=token_placeholder -Dtip.wlan.serviceUser=user -Dtip.wlan.servicePassword=password -Dconnectus.ovsdb.autoProvisionedCustomerId=2 -Dconnectus.ovsdb.autoProvisionedSsid=Connectus-cloud -Dspring.main.show-banner=false -Dserver.port=9096 -Dtip.wlan.secondaryPort=7071 -Dtip.wlan.csrf-enabled=false -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 -Dssl.props=file://${project_loc:opensync-gateway-cloud-process}/src/main/resources/app/certs/ssl.properties -Dtip.wlan.httpClientConfig=file://${project_loc:opensync-gateway-cloud-process}/src/main/resources/app/certs/httpClientConfig.json -Djavax.net.ssl.keyStore=${tip_wlan_service_certs}/client_keystore.jks -Djavax.net.ssl.keyStorePassword=mypassword -Djavax.net.ssl.trustStore=${tip_wlan_service_certs}/truststore.jks -Djavax.net.ssl.trustStorePassword=mypassword -Dtip.wlan.ovsdb.managerAddr=${local_server_address} -Dtip.wlan.ovsdb.listenPort=6640 -Dtip.wlan.ovsdb.redirector.listenPort=6643 -Dtip.wlan.ovsdb.timeoutSec=30 -Dtip.wlan.ovsdb.trustStore=${tip_wlan_service_certs}/truststore.jks -Dtip.wlan.ovsdb.keyStore=${tip_wlan_service_certs}/server.pkcs12 -Dtip.wlan.mqttBroker.address.internal=${mqtt_broker_address} -Dtip.wlan.mqttBroker.address.external=${mqtt_broker_address} -Dtip.wlan.mqttBroker.listenPort=1883 -Dtip.wlan.introspectTokenApi.host=${local_server_address}:9096 -Dtip.wlan.introspectTokenApi.clientToken=token_placeholder -Dtip.wlan.ovsdb.autoProvisionedCustomerId=2 -Dtip.wlan.ovsdb.autoProvisionedSsid=TipWlan-cloud -Dtip.wlan.preventClientCnAlteration=false -Dserver.port=9096 -Dtip.wlan.secondaryPort=7071 -Dspring.profiles.include=opensync_cloud_config,mqtt_receiver,ovsdb_redirector,ovsdb_manager"/>
|
||||||
</launchConfiguration>
|
</launchConfiguration>
|
||||||
|
|||||||
@@ -60,7 +60,6 @@
|
|||||||
<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"/>
|
||||||
|
|
||||||
|
|||||||
@@ -14,6 +14,8 @@
|
|||||||
<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>
|
||||||
@@ -32,12 +34,15 @@
|
|||||||
<artifactId>docker-maven-plugin</artifactId>
|
<artifactId>docker-maven-plugin</artifactId>
|
||||||
<version>${docker.fabric.version}</version>
|
<version>${docker.fabric.version}</version>
|
||||||
<configuration>
|
<configuration>
|
||||||
<verbose>true</verbose>
|
<verbose>false</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>
|
||||||
@@ -60,6 +65,9 @@
|
|||||||
<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>
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
FROM adoptopenjdk/openjdk13:alpine-jre
|
FROM adoptopenjdk/openjdk13:alpine-jre
|
||||||
|
|
||||||
LABEL maintainer="ConnectUs.ai as part of the Telecom Infrastructure Project"
|
LABEL maintainer="TipWlan"
|
||||||
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,6 +26,14 @@ 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"]
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,4 @@
|
|||||||
|
#This is a dummy property file to be used when running docker locally
|
||||||
|
date=${date}
|
||||||
|
commitId=${commit.id}
|
||||||
|
projectVersion=${project.version}
|
||||||
@@ -38,37 +38,28 @@
|
|||||||
"channelNumber": 6,
|
"channelNumber": 6,
|
||||||
"manualChannelNumber": 6,
|
"manualChannelNumber": 6,
|
||||||
"backupChannelNumber": 11,
|
"backupChannelNumber": 11,
|
||||||
"autoChannelSelection": false,
|
|
||||||
"channelBandwidth": "is20MHz",
|
|
||||||
"bannedChannels": [],
|
"bannedChannels": [],
|
||||||
"allowedChannels": [],
|
"allowedChannels": [],
|
||||||
"rxCellSizeDb": {
|
"rxCellSizeDb": {
|
||||||
"model_type": "AutoOrManualValue",
|
"model_type": "SourceSelectionValue",
|
||||||
"auto": true,
|
"source": "auto",
|
||||||
"value": -90
|
"value": -90
|
||||||
},
|
},
|
||||||
"probeResponseThresholdDb": {
|
"probeResponseThresholdDb": {
|
||||||
"model_type": "AutoOrManualValue",
|
"model_type": "SourceSelectionValue",
|
||||||
"auto": true,
|
"source": "auto",
|
||||||
"value": -90
|
"value": -90
|
||||||
},
|
},
|
||||||
"clientDisconnectThresholdDb": {
|
"clientDisconnectThresholdDb": {
|
||||||
"model_type": "AutoOrManualValue",
|
"model_type": "SourceSelectionValue",
|
||||||
"auto": true,
|
"source": "auto",
|
||||||
"value": -90
|
"value": -90
|
||||||
},
|
},
|
||||||
"eirpTxPower": {
|
"eirpTxPower": {
|
||||||
"model_type": "AutoOrManualValue",
|
"model_type": "SourceSelectionValue",
|
||||||
"auto": false,
|
"source": "auto",
|
||||||
"value": 32
|
"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,
|
||||||
@@ -81,37 +72,28 @@
|
|||||||
"channelNumber": 149,
|
"channelNumber": 149,
|
||||||
"manualChannelNumber": 149,
|
"manualChannelNumber": 149,
|
||||||
"backupChannelNumber": 154,
|
"backupChannelNumber": 154,
|
||||||
"autoChannelSelection": false,
|
|
||||||
"channelBandwidth": "is80MHz",
|
|
||||||
"bannedChannels": [],
|
"bannedChannels": [],
|
||||||
"allowedChannels": [],
|
"allowedChannels": [],
|
||||||
"rxCellSizeDb": {
|
"rxCellSizeDb": {
|
||||||
"model_type": "AutoOrManualValue",
|
"model_type": "SourceSelectionValue",
|
||||||
"auto": true,
|
"source": "auto",
|
||||||
"value": -90
|
"value": -90
|
||||||
},
|
},
|
||||||
"probeResponseThresholdDb": {
|
"probeResponseThresholdDb": {
|
||||||
"model_type": "AutoOrManualValue",
|
"model_type": "SourceSelectionValue",
|
||||||
"auto": true,
|
"source": "auto",
|
||||||
"value": -90
|
"value": -90
|
||||||
},
|
},
|
||||||
"clientDisconnectThresholdDb": {
|
"clientDisconnectThresholdDb": {
|
||||||
"model_type": "AutoOrManualValue",
|
"model_type": "SourceSelectionValue",
|
||||||
"auto": true,
|
"source": "auto",
|
||||||
"value": -90
|
"value": -90
|
||||||
},
|
},
|
||||||
"eirpTxPower": {
|
"eirpTxPower": {
|
||||||
"model_type": "AutoOrManualValue",
|
"model_type": "SourceSelectionValue",
|
||||||
"auto": false,
|
"source": "auto",
|
||||||
"value": 32
|
"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,
|
||||||
@@ -124,37 +106,28 @@
|
|||||||
"channelNumber": 36,
|
"channelNumber": 36,
|
||||||
"manualChannelNumber": 36,
|
"manualChannelNumber": 36,
|
||||||
"backupChannelNumber": 44,
|
"backupChannelNumber": 44,
|
||||||
"autoChannelSelection": false,
|
|
||||||
"channelBandwidth": "is80MHz",
|
|
||||||
"bannedChannels": [],
|
"bannedChannels": [],
|
||||||
"allowedChannels": [],
|
"allowedChannels": [],
|
||||||
"rxCellSizeDb": {
|
"rxCellSizeDb": {
|
||||||
"model_type": "AutoOrManualValue",
|
"model_type": "SourceSelectionValue",
|
||||||
"auto": true,
|
"source": "auto",
|
||||||
"value": -90
|
"value": -90
|
||||||
},
|
},
|
||||||
"probeResponseThresholdDb": {
|
"probeResponseThresholdDb": {
|
||||||
"model_type": "AutoOrManualValue",
|
"model_type": "SourceSelectionValue",
|
||||||
"auto": true,
|
"source": "auto",
|
||||||
"value": -90
|
"value": -90
|
||||||
},
|
},
|
||||||
"clientDisconnectThresholdDb": {
|
"clientDisconnectThresholdDb": {
|
||||||
"model_type": "AutoOrManualValue",
|
"model_type": "SourceSelectionValue",
|
||||||
"auto": true,
|
"source": "auto",
|
||||||
"value": -90
|
"value": -90
|
||||||
},
|
},
|
||||||
"eirpTxPower": {
|
"eirpTxPower": {
|
||||||
"model_type": "AutoOrManualValue",
|
"model_type": "SourceSelectionValue",
|
||||||
"auto": false,
|
"source": "auto",
|
||||||
"value": 32
|
"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,
|
||||||
@@ -168,39 +141,24 @@
|
|||||||
"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": "auto",
|
"managementRate": {
|
||||||
"managementRate": "auto",
|
"model_type": "SourceSelectionManagement",
|
||||||
"activeScanSettings": {
|
"source": "auto",
|
||||||
"model_type": "ActiveScanSettings",
|
"value": "auto"
|
||||||
"enabled": true,
|
|
||||||
"scanFrequencySeconds": 10,
|
|
||||||
"scanDurationMillis": 65
|
|
||||||
},
|
|
||||||
"channelHopSettings": {
|
|
||||||
"model_type": "ChannelHopSettings",
|
|
||||||
"noiseFloorThresholdInDB": -75,
|
|
||||||
"noiseFloorThresholdTimeInSeconds": 180,
|
|
||||||
"nonWifiThresholdInPercentage": 50,
|
|
||||||
"nonWifiThresholdTimeInSeconds": 180,
|
|
||||||
"obssHopMode": "NON_WIFI"
|
|
||||||
},
|
},
|
||||||
"bestApSettings": {
|
"bestApSettings": {
|
||||||
|
"model_type": "SourceSelectionSteering",
|
||||||
|
"source": "auto",
|
||||||
|
"value": {
|
||||||
"model_type": "RadioBestApSettings",
|
"model_type": "RadioBestApSettings",
|
||||||
"mlComputed": true,
|
"mlComputed": true,
|
||||||
"dropInSnrPercentage": 20,
|
"dropInSnrPercentage": 30,
|
||||||
"minLoadFactor": 50
|
"minLoadFactor": 40
|
||||||
|
}
|
||||||
},
|
},
|
||||||
"forceScanDuringVoice": "disabled",
|
|
||||||
"legacyBSSRate": "enabled",
|
"legacyBSSRate": "enabled",
|
||||||
"beaconInterval": 100,
|
|
||||||
"deauthAttackDetection": null
|
"deauthAttackDetection": null
|
||||||
},
|
},
|
||||||
"is5GHzU": {
|
"is5GHzU": {
|
||||||
@@ -208,39 +166,24 @@
|
|||||||
"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": "auto",
|
"managementRate": {
|
||||||
"managementRate": "auto",
|
"model_type": "SourceSelectionManagement",
|
||||||
"activeScanSettings": {
|
"source": "auto",
|
||||||
"model_type": "ActiveScanSettings",
|
"value": "auto"
|
||||||
"enabled": true,
|
|
||||||
"scanFrequencySeconds": 10,
|
|
||||||
"scanDurationMillis": 65
|
|
||||||
},
|
|
||||||
"channelHopSettings": {
|
|
||||||
"model_type": "ChannelHopSettings",
|
|
||||||
"noiseFloorThresholdInDB": -75,
|
|
||||||
"noiseFloorThresholdTimeInSeconds": 180,
|
|
||||||
"nonWifiThresholdInPercentage": 50,
|
|
||||||
"nonWifiThresholdTimeInSeconds": 180,
|
|
||||||
"obssHopMode": "NON_WIFI"
|
|
||||||
},
|
},
|
||||||
"bestApSettings": {
|
"bestApSettings": {
|
||||||
|
"model_type": "SourceSelectionSteering",
|
||||||
|
"source": "auto",
|
||||||
|
"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",
|
||||||
"beaconInterval": 100,
|
|
||||||
"deauthAttackDetection": null
|
"deauthAttackDetection": null
|
||||||
},
|
},
|
||||||
"is5GHzL": {
|
"is5GHzL": {
|
||||||
@@ -248,39 +191,24 @@
|
|||||||
"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": "auto",
|
"managementRate": {
|
||||||
"managementRate": "auto",
|
"model_type": "SourceSelectionManagement",
|
||||||
"activeScanSettings": {
|
"source": "auto",
|
||||||
"model_type": "ActiveScanSettings",
|
"value": "auto"
|
||||||
"enabled": true,
|
|
||||||
"scanFrequencySeconds": 10,
|
|
||||||
"scanDurationMillis": 65
|
|
||||||
},
|
|
||||||
"channelHopSettings": {
|
|
||||||
"model_type": "ChannelHopSettings",
|
|
||||||
"noiseFloorThresholdInDB": -75,
|
|
||||||
"noiseFloorThresholdTimeInSeconds": 180,
|
|
||||||
"nonWifiThresholdInPercentage": 50,
|
|
||||||
"nonWifiThresholdTimeInSeconds": 180,
|
|
||||||
"obssHopMode": "NON_WIFI"
|
|
||||||
},
|
},
|
||||||
"bestApSettings": {
|
"bestApSettings": {
|
||||||
|
"model_type": "SourceSelectionSteering",
|
||||||
|
"source": "auto",
|
||||||
|
"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",
|
||||||
"beaconInterval": 100,
|
|
||||||
"deauthAttackDetection": null
|
"deauthAttackDetection": null
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -10,55 +10,48 @@
|
|||||||
"countryCode" : "ca",
|
"countryCode" : "ca",
|
||||||
"maintenanceWindow" : null,
|
"maintenanceWindow" : null,
|
||||||
"rrmEnabled" : true,
|
"rrmEnabled" : true,
|
||||||
"dailyRebalancingDetails" : {
|
"dailyActivityDetails" : {
|
||||||
"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
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -10,55 +10,48 @@
|
|||||||
"countryCode" : "usa",
|
"countryCode" : "usa",
|
||||||
"maintenanceWindow" : null,
|
"maintenanceWindow" : null,
|
||||||
"rrmEnabled" : true,
|
"rrmEnabled" : true,
|
||||||
"dailyRebalancingDetails" : {
|
"dailyActivityDetails" : {
|
||||||
"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
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
{
|
{
|
||||||
"model_type": "Profile",
|
"model_type": "Profile",
|
||||||
"id": 5,
|
"id": 23,
|
||||||
"customerId": 2,
|
"customerId": 2,
|
||||||
"profileType": "equipment_ap",
|
"profileType": "equipment_ap",
|
||||||
"name": "DefaultApProfile",
|
"name": "ApProfile-3-radios-passpoint",
|
||||||
"details": {
|
"details": {
|
||||||
"model_type": "ApNetworkConfiguration",
|
"model_type": "ApNetworkConfiguration",
|
||||||
"networkConfigVersion": "AP-1",
|
"networkConfigVersion": "AP-1",
|
||||||
@@ -20,12 +20,12 @@
|
|||||||
"syntheticClientEnabled": true,
|
"syntheticClientEnabled": true,
|
||||||
"ledControlEnabled": true,
|
"ledControlEnabled": true,
|
||||||
"equipmentDiscovery": false,
|
"equipmentDiscovery": false,
|
||||||
|
"greTunnelName": null,
|
||||||
|
"greParentIfName": null,
|
||||||
|
"greLocalInetAddr": null,
|
||||||
|
"greRemoteInetAddr": null,
|
||||||
|
"greRemoteMacAddr": null,
|
||||||
"radioMap": {
|
"radioMap": {
|
||||||
"is5GHz": {
|
|
||||||
"model_type": "RadioProfileConfiguration",
|
|
||||||
"bestApEnabled": true,
|
|
||||||
"bestAPSteerType": "both"
|
|
||||||
},
|
|
||||||
"is2dot4GHz": {
|
"is2dot4GHz": {
|
||||||
"model_type": "RadioProfileConfiguration",
|
"model_type": "RadioProfileConfiguration",
|
||||||
"bestApEnabled": true,
|
"bestApEnabled": true,
|
||||||
@@ -44,11 +44,12 @@
|
|||||||
},
|
},
|
||||||
"profileType": "equipment_ap"
|
"profileType": "equipment_ap"
|
||||||
},
|
},
|
||||||
"createdTimestamp": 1591653239947,
|
"createdTimestamp": 1605711197140,
|
||||||
"lastModifiedTimestamp": 1591654336724,
|
"lastModifiedTimestamp": 1605711197140,
|
||||||
"childProfileIds": [
|
"childProfileIds": [
|
||||||
6,
|
16,
|
||||||
7,
|
21,
|
||||||
8
|
22,
|
||||||
|
15
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
@@ -0,0 +1,29 @@
|
|||||||
|
[
|
||||||
|
{
|
||||||
|
"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": []
|
||||||
|
}
|
||||||
|
]
|
||||||
@@ -0,0 +1,135 @@
|
|||||||
|
[
|
||||||
|
{
|
||||||
|
"model_type": "Profile",
|
||||||
|
"id": 14,
|
||||||
|
"customerId": 2,
|
||||||
|
"profileType": "captive_portal",
|
||||||
|
"name": "Captive-portal",
|
||||||
|
"details": {
|
||||||
|
"model_type": "CaptivePortalConfiguration",
|
||||||
|
"name": "Captive-portal",
|
||||||
|
"browserTitle": "Access the network as Guest",
|
||||||
|
"headerContent": "Captive Portal",
|
||||||
|
"userAcceptancePolicy": "Use this network at your own risk. No warranty of any kind.",
|
||||||
|
"successPageMarkdownText": "Welcome to the network",
|
||||||
|
"redirectURL": "",
|
||||||
|
"externalCaptivePortalURL": null,
|
||||||
|
"sessionTimeoutInMinutes": 60,
|
||||||
|
"logoFile": null,
|
||||||
|
"backgroundFile": null,
|
||||||
|
"walledGardenAllowlist": [],
|
||||||
|
"usernamePasswordFile": {
|
||||||
|
"model_type": "ManagedFileInfo",
|
||||||
|
"md5checksum": null,
|
||||||
|
"lastModifiedTimestamp": null,
|
||||||
|
"apExportUrl": "userList",
|
||||||
|
"fileCategory": "UsernamePasswordList",
|
||||||
|
"fileType": "TEXT",
|
||||||
|
"altSlot": true
|
||||||
|
},
|
||||||
|
"authenticationType": "guest",
|
||||||
|
"radiusAuthMethod": "CHAP",
|
||||||
|
"maxUsersWithSameCredentials": 42,
|
||||||
|
"externalPolicyFile": null,
|
||||||
|
"backgroundPosition": "left_top",
|
||||||
|
"backgroundRepeat": "no_repeat",
|
||||||
|
"radiusServiceName": null,
|
||||||
|
"expiryType": "unlimited",
|
||||||
|
"userList": [
|
||||||
|
{
|
||||||
|
"model_type": "TimedAccessUserRecord",
|
||||||
|
"username": "customer",
|
||||||
|
"password": "testing123",
|
||||||
|
"activationTime": 1602183994956,
|
||||||
|
"expirationTime": 1602212794956,
|
||||||
|
"numDevices": 1,
|
||||||
|
"userDetails": {
|
||||||
|
"model_type": "TimedAccessUserDetails",
|
||||||
|
"firstName": "Pac",
|
||||||
|
"lastName": "Man",
|
||||||
|
"passwordNeedsReset": false
|
||||||
|
},
|
||||||
|
"userMacAddresses": [
|
||||||
|
{
|
||||||
|
"model_type": "MacAddress",
|
||||||
|
"address": "fKtg5upO",
|
||||||
|
"addressAsString": "7c:ab:60:e6:ea:4e"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"lastModifiedTimestamp": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"model_type": "TimedAccessUserRecord",
|
||||||
|
"username": "customer",
|
||||||
|
"password": "testing123",
|
||||||
|
"activationTime": 1602183994957,
|
||||||
|
"expirationTime": 1602187594957,
|
||||||
|
"numDevices": 0,
|
||||||
|
"userDetails": {
|
||||||
|
"model_type": "TimedAccessUserDetails",
|
||||||
|
"firstName": "Q",
|
||||||
|
"lastName": "Bert",
|
||||||
|
"passwordNeedsReset": false
|
||||||
|
},
|
||||||
|
"userMacAddresses": [
|
||||||
|
{
|
||||||
|
"model_type": "MacAddress",
|
||||||
|
"address": "wJrQdqho",
|
||||||
|
"addressAsString": "c0:9a:d0:76:a8:68"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"lastModifiedTimestamp": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"model_type": "TimedAccessUserRecord",
|
||||||
|
"username": "customer2",
|
||||||
|
"password": "testing1234",
|
||||||
|
"activationTime": 1602183994957,
|
||||||
|
"expirationTime": 1602788794957,
|
||||||
|
"numDevices": 1,
|
||||||
|
"userDetails": {
|
||||||
|
"model_type": "TimedAccessUserDetails",
|
||||||
|
"firstName": "Duke",
|
||||||
|
"lastName": "Nukem",
|
||||||
|
"passwordNeedsReset": false
|
||||||
|
},
|
||||||
|
"userMacAddresses": [
|
||||||
|
{
|
||||||
|
"model_type": "MacAddress",
|
||||||
|
"address": "fKtg5upN",
|
||||||
|
"addressAsString": "7c:ab:60:e6:ea:4d"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"lastModifiedTimestamp": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"model_type": "TimedAccessUserRecord",
|
||||||
|
"username": "customer2",
|
||||||
|
"password": "testing1234",
|
||||||
|
"activationTime": 1602183994957,
|
||||||
|
"expirationTime": 1602270394957,
|
||||||
|
"numDevices": 0,
|
||||||
|
"userDetails": {
|
||||||
|
"model_type": "TimedAccessUserDetails",
|
||||||
|
"firstName": "Missile",
|
||||||
|
"lastName": "Commander",
|
||||||
|
"passwordNeedsReset": false
|
||||||
|
},
|
||||||
|
"userMacAddresses": [
|
||||||
|
{
|
||||||
|
"model_type": "MacAddress",
|
||||||
|
"address": "wJrQdqhj",
|
||||||
|
"addressAsString": "c0:9a:d0:76:a8:63"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"lastModifiedTimestamp": 0
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"macAllowList": [],
|
||||||
|
"profileType": "captive_portal"
|
||||||
|
},
|
||||||
|
"createdTimestamp": 1602183994959,
|
||||||
|
"lastModifiedTimestamp": 1602183994959,
|
||||||
|
"childProfileIds": []
|
||||||
|
}
|
||||||
|
]
|
||||||
@@ -0,0 +1,72 @@
|
|||||||
|
[
|
||||||
|
{
|
||||||
|
"model_type": "Profile",
|
||||||
|
"id": 24,
|
||||||
|
"customerId": 2,
|
||||||
|
"profileType": "passpoint",
|
||||||
|
"name": "TipWlan-Hotspot20-Config",
|
||||||
|
"details": {
|
||||||
|
"model_type": "PasspointProfile",
|
||||||
|
"enableInterworkingAndHs20": true,
|
||||||
|
"hessid": null,
|
||||||
|
"additionalStepsRequiredForAccess": 0,
|
||||||
|
"deauthRequestTimeout": 0,
|
||||||
|
"operatingClass": 0,
|
||||||
|
"termsAndConditionsFile": {
|
||||||
|
"model_type": "ManagedFileInfo",
|
||||||
|
"md5checksum": null,
|
||||||
|
"lastModifiedTimestamp": null,
|
||||||
|
"apExportUrl": "https://localhost:9091/filestore/termsAndConditions",
|
||||||
|
"fileCategory": "ExternalPolicyConfiguration",
|
||||||
|
"fileType": "TEXT",
|
||||||
|
"altSlot": false
|
||||||
|
},
|
||||||
|
"whitelistDomain": null,
|
||||||
|
"emergencyServicesReachable": true,
|
||||||
|
"unauthenticatedEmergencyServiceAccessible": false,
|
||||||
|
"internetConnectivity": true,
|
||||||
|
"connectionCapabilitySet": [
|
||||||
|
{
|
||||||
|
"model_type": "PasspointConnectionCapability",
|
||||||
|
"connectionCapabilitiesPortNumber": 8888,
|
||||||
|
"connectionCapabilitiesIpProtocol": "TCP",
|
||||||
|
"connectionCapabilitiesStatus": "open"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"ipAddressTypeAvailability": "public_IPv4_address_available",
|
||||||
|
"qosMapSetConfiguration": null,
|
||||||
|
"apGeospatialLocation": null,
|
||||||
|
"apCivicLocation": null,
|
||||||
|
"apPublicLocationIdUri": null,
|
||||||
|
"gasAddr3Behaviour": "p2pSpecWorkaroundFromRequest",
|
||||||
|
"anqpDomainId": 1234,
|
||||||
|
"disableDownstreamGroupAddressedForwarding": false,
|
||||||
|
"enable2pt4GHz": true,
|
||||||
|
"enable5GHz": true,
|
||||||
|
"associatedAccessSsidNames": [
|
||||||
|
"TipWlan-cloud-hotspot-access"
|
||||||
|
],
|
||||||
|
"osuSsidName": "TipWlan-cloud-hotspot-osu",
|
||||||
|
"operatorProfileName": "TipWlan-Hotspot20-Operator",
|
||||||
|
"venueProfileName": "TipWlan-Hotspot20-Venue",
|
||||||
|
"idProviderProfileNames": [
|
||||||
|
"TipWlan-Hotspot20-OSU-Provider-2",
|
||||||
|
"TipWlan-Hotspot20-OSU-Provider"
|
||||||
|
],
|
||||||
|
"accessNetworkType": "free_public_network",
|
||||||
|
"networkAuthenticationType": "acceptance_of_terms_and_conditions",
|
||||||
|
"associatedSsids": [
|
||||||
|
"TipWlan-cloud-hotspot-access"
|
||||||
|
],
|
||||||
|
"profileType": "passpoint"
|
||||||
|
},
|
||||||
|
"createdTimestamp": 1605711223339,
|
||||||
|
"lastModifiedTimestamp": 1605711223339,
|
||||||
|
"childProfileIds": [
|
||||||
|
17,
|
||||||
|
18,
|
||||||
|
19,
|
||||||
|
20
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
@@ -0,0 +1,270 @@
|
|||||||
|
[
|
||||||
|
{
|
||||||
|
"model_type": "Profile",
|
||||||
|
"id": 19,
|
||||||
|
"customerId": 2,
|
||||||
|
"profileType": "passpoint_osu_id_provider",
|
||||||
|
"name": "TipWlan-Hotspot20-OSU-Provider",
|
||||||
|
"details": {
|
||||||
|
"model_type": "PasspointOsuProviderProfile",
|
||||||
|
"domainName": "rogers.com",
|
||||||
|
"mccMncList": [
|
||||||
|
{
|
||||||
|
"model_type": "PasspointMccMnc",
|
||||||
|
"mcc": 302,
|
||||||
|
"mnc": 720,
|
||||||
|
"iso": "ca",
|
||||||
|
"country": "Canada",
|
||||||
|
"countryCode": 1,
|
||||||
|
"network": "Rogers AT&T Wireless",
|
||||||
|
"mccMncPairing": "302,720"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"naiRealmList": [
|
||||||
|
{
|
||||||
|
"model_type": "PasspointNaiRealmInformation",
|
||||||
|
"naiRealms": [
|
||||||
|
"rogers.com"
|
||||||
|
],
|
||||||
|
"encoding": 0,
|
||||||
|
"eapMethods": [
|
||||||
|
"EAP-TTLS with username/password",
|
||||||
|
"EAP-TLS with certificate"
|
||||||
|
],
|
||||||
|
"eapMap": {
|
||||||
|
"EAP-TTLS with username/password": [
|
||||||
|
"Credential Type:username/password",
|
||||||
|
"Non-EAP Inner Authentication Type:MSCHAPV2"
|
||||||
|
],
|
||||||
|
"EAP-TLS with certificate": [
|
||||||
|
"Credential Type:Certificate"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"osuIconList": [
|
||||||
|
{
|
||||||
|
"model_type": "PasspointOsuIcon",
|
||||||
|
"iconWidth": 32,
|
||||||
|
"iconHeight": 32,
|
||||||
|
"languageCode": "eng",
|
||||||
|
"iconLocale": "en_CA",
|
||||||
|
"iconName": "icon32eng",
|
||||||
|
"filePath": "/tmp/icon32eng.png",
|
||||||
|
"imageUrl": "https://localhost:9096/icon32eng.png",
|
||||||
|
"hs20IconString": "32:32:eng:image/png:icon32eng:/tmp/icon32eng.png"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"model_type": "PasspointOsuIcon",
|
||||||
|
"iconWidth": 32,
|
||||||
|
"iconHeight": 32,
|
||||||
|
"languageCode": "fra",
|
||||||
|
"iconLocale": "fr_CA",
|
||||||
|
"iconName": "icon32fra",
|
||||||
|
"filePath": "/tmp/icon32fra.png",
|
||||||
|
"imageUrl": "https://localhost:9096/icon32fra.png",
|
||||||
|
"hs20IconString": "32:32:fra:image/png:icon32fra:/tmp/icon32fra.png"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"model_type": "PasspointOsuIcon",
|
||||||
|
"iconWidth": 32,
|
||||||
|
"iconHeight": 32,
|
||||||
|
"languageCode": "eng",
|
||||||
|
"iconLocale": "en_US",
|
||||||
|
"iconName": "icon32usa",
|
||||||
|
"filePath": "/tmp/icon32usa.png",
|
||||||
|
"imageUrl": "https://localhost:9096/icon32usa.png",
|
||||||
|
"hs20IconString": "32:32:eng:image/png:icon32usa:/tmp/icon32usa.png"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"osuServerUri": "https://example.com/osu/rogers",
|
||||||
|
"osuFriendlyName": [
|
||||||
|
{
|
||||||
|
"model_type": "PasspointDuple",
|
||||||
|
"locale": "en_CA",
|
||||||
|
"dupleIso3Language": "eng",
|
||||||
|
"dupleName": "Example provider rogers",
|
||||||
|
"defaultDupleSeparator": ":",
|
||||||
|
"asDuple": "eng:Example provider rogers"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"model_type": "PasspointDuple",
|
||||||
|
"locale": "fr_CA",
|
||||||
|
"dupleIso3Language": "fra",
|
||||||
|
"dupleName": "Exemple de fournisseur rogers",
|
||||||
|
"defaultDupleSeparator": ":",
|
||||||
|
"asDuple": "fra:Exemple de fournisseur rogers"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"osuNaiStandalone": "anonymous@rogers.com",
|
||||||
|
"osuNaiShared": "anonymous@rogers.com",
|
||||||
|
"osuMethodList": [
|
||||||
|
1,
|
||||||
|
0
|
||||||
|
],
|
||||||
|
"osuServiceDescription": [
|
||||||
|
{
|
||||||
|
"model_type": "PasspointDuple",
|
||||||
|
"locale": "en_CA",
|
||||||
|
"dupleIso3Language": "eng",
|
||||||
|
"dupleName": "Example services rogers",
|
||||||
|
"defaultDupleSeparator": ":",
|
||||||
|
"asDuple": "eng:Example services rogers"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"model_type": "PasspointDuple",
|
||||||
|
"locale": "fr_CA",
|
||||||
|
"dupleIso3Language": "fra",
|
||||||
|
"dupleName": "Exemples de services rogers",
|
||||||
|
"defaultDupleSeparator": ":",
|
||||||
|
"asDuple": "fra:Exemples de services rogers"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"roamingOi": [
|
||||||
|
1,
|
||||||
|
2,
|
||||||
|
3,
|
||||||
|
4
|
||||||
|
],
|
||||||
|
"profileType": "passpoint_osu_id_provider"
|
||||||
|
},
|
||||||
|
"createdTimestamp": 1605711165325,
|
||||||
|
"lastModifiedTimestamp": 1605711165325,
|
||||||
|
"childProfileIds": [
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"model_type": "Profile",
|
||||||
|
"id": 20,
|
||||||
|
"customerId": 2,
|
||||||
|
"profileType": "passpoint_osu_id_provider",
|
||||||
|
"name": "TipWlan-Hotspot20-OSU-Provider-2",
|
||||||
|
"details": {
|
||||||
|
"model_type": "PasspointOsuProviderProfile",
|
||||||
|
"domainName": "telus.com",
|
||||||
|
"mccMncList": [
|
||||||
|
{
|
||||||
|
"model_type": "PasspointMccMnc",
|
||||||
|
"mcc": 302,
|
||||||
|
"mnc": 220,
|
||||||
|
"iso": "ca",
|
||||||
|
"country": "Canada",
|
||||||
|
"countryCode": 1,
|
||||||
|
"network": "Telus Mobility",
|
||||||
|
"mccMncPairing": "302,220"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"naiRealmList": [
|
||||||
|
{
|
||||||
|
"model_type": "PasspointNaiRealmInformation",
|
||||||
|
"naiRealms": [
|
||||||
|
"telus.com"
|
||||||
|
],
|
||||||
|
"encoding": 0,
|
||||||
|
"eapMethods": [
|
||||||
|
"EAP-TTLS with username/password",
|
||||||
|
"EAP-TLS with certificate"
|
||||||
|
],
|
||||||
|
"eapMap": {
|
||||||
|
"EAP-TTLS with username/password": [
|
||||||
|
"Credential Type:username/password",
|
||||||
|
"Non-EAP Inner Authentication Type:MSCHAPV2"
|
||||||
|
],
|
||||||
|
"EAP-TLS with certificate": [
|
||||||
|
"Credential Type:Certificate"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"osuIconList": [
|
||||||
|
{
|
||||||
|
"model_type": "PasspointOsuIcon",
|
||||||
|
"iconWidth": 32,
|
||||||
|
"iconHeight": 32,
|
||||||
|
"languageCode": "eng",
|
||||||
|
"iconLocale": "en_CA",
|
||||||
|
"iconName": "icon32eng",
|
||||||
|
"filePath": "/tmp/icon32eng.png",
|
||||||
|
"imageUrl": "https://localhost:9096/icon32eng.png",
|
||||||
|
"hs20IconString": "32:32:eng:image/png:icon32eng:/tmp/icon32eng.png"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"model_type": "PasspointOsuIcon",
|
||||||
|
"iconWidth": 32,
|
||||||
|
"iconHeight": 32,
|
||||||
|
"languageCode": "fra",
|
||||||
|
"iconLocale": "fr_CA",
|
||||||
|
"iconName": "icon32fra",
|
||||||
|
"filePath": "/tmp/icon32fra.png",
|
||||||
|
"imageUrl": "https://localhost:9096/icon32fra.png",
|
||||||
|
"hs20IconString": "32:32:fra:image/png:icon32fra:/tmp/icon32fra.png"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"model_type": "PasspointOsuIcon",
|
||||||
|
"iconWidth": 32,
|
||||||
|
"iconHeight": 32,
|
||||||
|
"languageCode": "eng",
|
||||||
|
"iconLocale": "en_US",
|
||||||
|
"iconName": "icon32usa",
|
||||||
|
"filePath": "/tmp/icon32usa.png",
|
||||||
|
"imageUrl": "https://localhost:9096/icon32usa.png",
|
||||||
|
"hs20IconString": "32:32:eng:image/png:icon32usa:/tmp/icon32usa.png"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"osuServerUri": "https://example.com/osu/telus",
|
||||||
|
"osuFriendlyName": [
|
||||||
|
{
|
||||||
|
"model_type": "PasspointDuple",
|
||||||
|
"locale": "en_CA",
|
||||||
|
"dupleIso3Language": "eng",
|
||||||
|
"dupleName": "Example provider telus",
|
||||||
|
"defaultDupleSeparator": ":",
|
||||||
|
"asDuple": "eng:Example provider telus"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"model_type": "PasspointDuple",
|
||||||
|
"locale": "fr_CA",
|
||||||
|
"dupleIso3Language": "fra",
|
||||||
|
"dupleName": "Exemple de fournisseur telus",
|
||||||
|
"defaultDupleSeparator": ":",
|
||||||
|
"asDuple": "fra:Exemple de fournisseur telus"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"osuNaiStandalone": "anonymous@telus.com",
|
||||||
|
"osuNaiShared": "anonymous@telus.com",
|
||||||
|
"osuMethodList": [
|
||||||
|
1,
|
||||||
|
0
|
||||||
|
],
|
||||||
|
"osuServiceDescription": [
|
||||||
|
{
|
||||||
|
"model_type": "PasspointDuple",
|
||||||
|
"locale": "en_CA",
|
||||||
|
"dupleIso3Language": "eng",
|
||||||
|
"dupleName": "Example services telus",
|
||||||
|
"defaultDupleSeparator": ":",
|
||||||
|
"asDuple": "eng:Example services telus"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"model_type": "PasspointDuple",
|
||||||
|
"locale": "fr_CA",
|
||||||
|
"dupleIso3Language": "fra",
|
||||||
|
"dupleName": "Exemples de services telus",
|
||||||
|
"defaultDupleSeparator": ":",
|
||||||
|
"asDuple": "fra:Exemples de services telus"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"roamingOi": [
|
||||||
|
1,
|
||||||
|
2,
|
||||||
|
3,
|
||||||
|
4
|
||||||
|
],
|
||||||
|
"profileType": "passpoint_osu_id_provider"
|
||||||
|
},
|
||||||
|
"createdTimestamp": 1605711165330,
|
||||||
|
"lastModifiedTimestamp": 1605711165330,
|
||||||
|
"childProfileIds": [
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
@@ -0,0 +1,299 @@
|
|||||||
|
[
|
||||||
|
{
|
||||||
|
"model_type": "Profile",
|
||||||
|
"id": 22,
|
||||||
|
"customerId": 2,
|
||||||
|
"profileType": "service_metrics_collection_config",
|
||||||
|
"name": "Metrics-Profile-Passpoint",
|
||||||
|
"details": {
|
||||||
|
"model_type": "ServiceMetricsCollectionConfigProfile",
|
||||||
|
"radioTypes": [
|
||||||
|
"is5GHzL",
|
||||||
|
"is2dot4GHz",
|
||||||
|
"is5GHzU"
|
||||||
|
],
|
||||||
|
"serviceMetricDataTypes": [
|
||||||
|
"ApNode",
|
||||||
|
"ApSsid",
|
||||||
|
"Client",
|
||||||
|
"Channel",
|
||||||
|
"Neighbour"
|
||||||
|
],
|
||||||
|
"metricConfigParameterMap": {
|
||||||
|
"ApNode": [
|
||||||
|
{
|
||||||
|
"model_type": "ServiceMetricSurveyConfigParameters",
|
||||||
|
"samplingInterval": 30,
|
||||||
|
"reportingIntervalSeconds": 60,
|
||||||
|
"channelSurveyType": "ON_CHANNEL",
|
||||||
|
"scanIntervalMillis": 0,
|
||||||
|
"percentUtilizationThreshold": 10,
|
||||||
|
"delayMillisecondsThreshold": 600,
|
||||||
|
"radioType": "is2dot4GHz",
|
||||||
|
"serviceMetricDataType": "ApNode",
|
||||||
|
"statsReportFormat": "RAW"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"model_type": "ServiceMetricSurveyConfigParameters",
|
||||||
|
"samplingInterval": 30,
|
||||||
|
"reportingIntervalSeconds": 60,
|
||||||
|
"channelSurveyType": "ON_CHANNEL",
|
||||||
|
"scanIntervalMillis": 0,
|
||||||
|
"percentUtilizationThreshold": 10,
|
||||||
|
"delayMillisecondsThreshold": 600,
|
||||||
|
"radioType": "is5GHzU",
|
||||||
|
"serviceMetricDataType": "ApNode",
|
||||||
|
"statsReportFormat": "RAW"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"model_type": "ServiceMetricSurveyConfigParameters",
|
||||||
|
"samplingInterval": 30,
|
||||||
|
"reportingIntervalSeconds": 120,
|
||||||
|
"channelSurveyType": "OFF_CHANNEL",
|
||||||
|
"scanIntervalMillis": 0,
|
||||||
|
"percentUtilizationThreshold": 10,
|
||||||
|
"delayMillisecondsThreshold": 600,
|
||||||
|
"radioType": "is5GHzL",
|
||||||
|
"serviceMetricDataType": "ApNode",
|
||||||
|
"statsReportFormat": "RAW"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"model_type": "ServiceMetricSurveyConfigParameters",
|
||||||
|
"samplingInterval": 30,
|
||||||
|
"reportingIntervalSeconds": 120,
|
||||||
|
"channelSurveyType": "OFF_CHANNEL",
|
||||||
|
"scanIntervalMillis": 0,
|
||||||
|
"percentUtilizationThreshold": 10,
|
||||||
|
"delayMillisecondsThreshold": 600,
|
||||||
|
"radioType": "is5GHzU",
|
||||||
|
"serviceMetricDataType": "ApNode",
|
||||||
|
"statsReportFormat": "RAW"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"model_type": "ServiceMetricSurveyConfigParameters",
|
||||||
|
"samplingInterval": 30,
|
||||||
|
"reportingIntervalSeconds": 60,
|
||||||
|
"channelSurveyType": "ON_CHANNEL",
|
||||||
|
"scanIntervalMillis": 0,
|
||||||
|
"percentUtilizationThreshold": 10,
|
||||||
|
"delayMillisecondsThreshold": 600,
|
||||||
|
"radioType": "is5GHzL",
|
||||||
|
"serviceMetricDataType": "ApNode",
|
||||||
|
"statsReportFormat": "RAW"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"model_type": "ServiceMetricSurveyConfigParameters",
|
||||||
|
"samplingInterval": 30,
|
||||||
|
"reportingIntervalSeconds": 120,
|
||||||
|
"channelSurveyType": "OFF_CHANNEL",
|
||||||
|
"scanIntervalMillis": 0,
|
||||||
|
"percentUtilizationThreshold": 10,
|
||||||
|
"delayMillisecondsThreshold": 600,
|
||||||
|
"radioType": "is2dot4GHz",
|
||||||
|
"serviceMetricDataType": "ApNode",
|
||||||
|
"statsReportFormat": "RAW"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"ApSsid": [
|
||||||
|
{
|
||||||
|
"model_type": "ServiceMetricRadioConfigParameters",
|
||||||
|
"samplingInterval": 30,
|
||||||
|
"reportingIntervalSeconds": 60,
|
||||||
|
"radioType": "is5GHzL",
|
||||||
|
"serviceMetricDataType": "ApSsid"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"model_type": "ServiceMetricRadioConfigParameters",
|
||||||
|
"samplingInterval": 30,
|
||||||
|
"reportingIntervalSeconds": 60,
|
||||||
|
"radioType": "is2dot4GHz",
|
||||||
|
"serviceMetricDataType": "ApSsid"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"model_type": "ServiceMetricRadioConfigParameters",
|
||||||
|
"samplingInterval": 30,
|
||||||
|
"reportingIntervalSeconds": 60,
|
||||||
|
"radioType": "is5GHzU",
|
||||||
|
"serviceMetricDataType": "ApSsid"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"Client": [
|
||||||
|
{
|
||||||
|
"model_type": "ServiceMetricRadioConfigParameters",
|
||||||
|
"samplingInterval": 30,
|
||||||
|
"reportingIntervalSeconds": 60,
|
||||||
|
"radioType": "is5GHzU",
|
||||||
|
"serviceMetricDataType": "Client"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"model_type": "ServiceMetricRadioConfigParameters",
|
||||||
|
"samplingInterval": 30,
|
||||||
|
"reportingIntervalSeconds": 60,
|
||||||
|
"radioType": "is5GHzL",
|
||||||
|
"serviceMetricDataType": "Client"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"model_type": "ServiceMetricRadioConfigParameters",
|
||||||
|
"samplingInterval": 30,
|
||||||
|
"reportingIntervalSeconds": 60,
|
||||||
|
"radioType": "is2dot4GHz",
|
||||||
|
"serviceMetricDataType": "Client"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"Channel": [
|
||||||
|
{
|
||||||
|
"model_type": "ServiceMetricSurveyConfigParameters",
|
||||||
|
"samplingInterval": 30,
|
||||||
|
"reportingIntervalSeconds": 60,
|
||||||
|
"channelSurveyType": "ON_CHANNEL",
|
||||||
|
"scanIntervalMillis": 0,
|
||||||
|
"percentUtilizationThreshold": 10,
|
||||||
|
"delayMillisecondsThreshold": 600,
|
||||||
|
"radioType": "is2dot4GHz",
|
||||||
|
"serviceMetricDataType": "Channel",
|
||||||
|
"statsReportFormat": "RAW"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"model_type": "ServiceMetricSurveyConfigParameters",
|
||||||
|
"samplingInterval": 30,
|
||||||
|
"reportingIntervalSeconds": 120,
|
||||||
|
"channelSurveyType": "OFF_CHANNEL",
|
||||||
|
"scanIntervalMillis": 0,
|
||||||
|
"percentUtilizationThreshold": 10,
|
||||||
|
"delayMillisecondsThreshold": 600,
|
||||||
|
"radioType": "is5GHzU",
|
||||||
|
"serviceMetricDataType": "Channel",
|
||||||
|
"statsReportFormat": "RAW"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"model_type": "ServiceMetricSurveyConfigParameters",
|
||||||
|
"samplingInterval": 30,
|
||||||
|
"reportingIntervalSeconds": 60,
|
||||||
|
"channelSurveyType": "ON_CHANNEL",
|
||||||
|
"scanIntervalMillis": 0,
|
||||||
|
"percentUtilizationThreshold": 10,
|
||||||
|
"delayMillisecondsThreshold": 600,
|
||||||
|
"radioType": "is5GHzL",
|
||||||
|
"serviceMetricDataType": "Channel",
|
||||||
|
"statsReportFormat": "RAW"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"model_type": "ServiceMetricSurveyConfigParameters",
|
||||||
|
"samplingInterval": 30,
|
||||||
|
"reportingIntervalSeconds": 60,
|
||||||
|
"channelSurveyType": "ON_CHANNEL",
|
||||||
|
"scanIntervalMillis": 0,
|
||||||
|
"percentUtilizationThreshold": 10,
|
||||||
|
"delayMillisecondsThreshold": 600,
|
||||||
|
"radioType": "is5GHzU",
|
||||||
|
"serviceMetricDataType": "Channel",
|
||||||
|
"statsReportFormat": "RAW"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"model_type": "ServiceMetricSurveyConfigParameters",
|
||||||
|
"samplingInterval": 30,
|
||||||
|
"reportingIntervalSeconds": 120,
|
||||||
|
"channelSurveyType": "OFF_CHANNEL",
|
||||||
|
"scanIntervalMillis": 0,
|
||||||
|
"percentUtilizationThreshold": 10,
|
||||||
|
"delayMillisecondsThreshold": 600,
|
||||||
|
"radioType": "is5GHzL",
|
||||||
|
"serviceMetricDataType": "Channel",
|
||||||
|
"statsReportFormat": "RAW"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"model_type": "ServiceMetricSurveyConfigParameters",
|
||||||
|
"samplingInterval": 30,
|
||||||
|
"reportingIntervalSeconds": 120,
|
||||||
|
"channelSurveyType": "OFF_CHANNEL",
|
||||||
|
"scanIntervalMillis": 0,
|
||||||
|
"percentUtilizationThreshold": 10,
|
||||||
|
"delayMillisecondsThreshold": 600,
|
||||||
|
"radioType": "is2dot4GHz",
|
||||||
|
"serviceMetricDataType": "Channel",
|
||||||
|
"statsReportFormat": "RAW"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"Neighbour": [
|
||||||
|
{
|
||||||
|
"model_type": "ServiceMetricSurveyConfigParameters",
|
||||||
|
"samplingInterval": 30,
|
||||||
|
"reportingIntervalSeconds": 120,
|
||||||
|
"channelSurveyType": "OFF_CHANNEL",
|
||||||
|
"scanIntervalMillis": 0,
|
||||||
|
"percentUtilizationThreshold": 10,
|
||||||
|
"delayMillisecondsThreshold": 600,
|
||||||
|
"radioType": "is5GHzL",
|
||||||
|
"serviceMetricDataType": "Neighbour",
|
||||||
|
"statsReportFormat": "RAW"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"model_type": "ServiceMetricSurveyConfigParameters",
|
||||||
|
"samplingInterval": 30,
|
||||||
|
"reportingIntervalSeconds": 120,
|
||||||
|
"channelSurveyType": "OFF_CHANNEL",
|
||||||
|
"scanIntervalMillis": 0,
|
||||||
|
"percentUtilizationThreshold": 10,
|
||||||
|
"delayMillisecondsThreshold": 600,
|
||||||
|
"radioType": "is5GHzU",
|
||||||
|
"serviceMetricDataType": "Neighbour",
|
||||||
|
"statsReportFormat": "RAW"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"model_type": "ServiceMetricSurveyConfigParameters",
|
||||||
|
"samplingInterval": 30,
|
||||||
|
"reportingIntervalSeconds": 60,
|
||||||
|
"channelSurveyType": "ON_CHANNEL",
|
||||||
|
"scanIntervalMillis": 0,
|
||||||
|
"percentUtilizationThreshold": 10,
|
||||||
|
"delayMillisecondsThreshold": 600,
|
||||||
|
"radioType": "is5GHzL",
|
||||||
|
"serviceMetricDataType": "Neighbour",
|
||||||
|
"statsReportFormat": "RAW"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"model_type": "ServiceMetricSurveyConfigParameters",
|
||||||
|
"samplingInterval": 30,
|
||||||
|
"reportingIntervalSeconds": 60,
|
||||||
|
"channelSurveyType": "ON_CHANNEL",
|
||||||
|
"scanIntervalMillis": 0,
|
||||||
|
"percentUtilizationThreshold": 10,
|
||||||
|
"delayMillisecondsThreshold": 600,
|
||||||
|
"radioType": "is2dot4GHz",
|
||||||
|
"serviceMetricDataType": "Neighbour",
|
||||||
|
"statsReportFormat": "RAW"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"model_type": "ServiceMetricSurveyConfigParameters",
|
||||||
|
"samplingInterval": 30,
|
||||||
|
"reportingIntervalSeconds": 120,
|
||||||
|
"channelSurveyType": "OFF_CHANNEL",
|
||||||
|
"scanIntervalMillis": 0,
|
||||||
|
"percentUtilizationThreshold": 10,
|
||||||
|
"delayMillisecondsThreshold": 600,
|
||||||
|
"radioType": "is2dot4GHz",
|
||||||
|
"serviceMetricDataType": "Neighbour",
|
||||||
|
"statsReportFormat": "RAW"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"model_type": "ServiceMetricSurveyConfigParameters",
|
||||||
|
"samplingInterval": 30,
|
||||||
|
"reportingIntervalSeconds": 60,
|
||||||
|
"channelSurveyType": "ON_CHANNEL",
|
||||||
|
"scanIntervalMillis": 0,
|
||||||
|
"percentUtilizationThreshold": 10,
|
||||||
|
"delayMillisecondsThreshold": 600,
|
||||||
|
"radioType": "is5GHzU",
|
||||||
|
"serviceMetricDataType": "Neighbour",
|
||||||
|
"statsReportFormat": "RAW"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"profileType": "service_metrics_collection_config"
|
||||||
|
},
|
||||||
|
"createdTimestamp": 1605711195528,
|
||||||
|
"lastModifiedTimestamp": 1605711195528,
|
||||||
|
"childProfileIds": [
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
@@ -0,0 +1,37 @@
|
|||||||
|
[
|
||||||
|
{
|
||||||
|
"model_type": "Profile",
|
||||||
|
"id": 17,
|
||||||
|
"customerId": 2,
|
||||||
|
"profileType": "passpoint_operator",
|
||||||
|
"name": "TipWlan-Hotspot20-Operator",
|
||||||
|
"details": {
|
||||||
|
"model_type": "PasspointOperatorProfile",
|
||||||
|
"serverOnlyAuthenticatedL2EncryptionNetwork": false,
|
||||||
|
"x509CertificateLocation": "/etc/ca.pem",
|
||||||
|
"operatorFriendlyName": [
|
||||||
|
{
|
||||||
|
"model_type": "PasspointDuple",
|
||||||
|
"locale": "en_CA",
|
||||||
|
"dupleIso3Language": "eng",
|
||||||
|
"dupleName": "Default friendly passpoint_operator name",
|
||||||
|
"defaultDupleSeparator": ":",
|
||||||
|
"asDuple": "eng:Default friendly passpoint_operator name"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"model_type": "PasspointDuple",
|
||||||
|
"locale": "fr_CA",
|
||||||
|
"dupleIso3Language": "fra",
|
||||||
|
"dupleName": "Nom de l'opérateur convivial par défaut",
|
||||||
|
"defaultDupleSeparator": ":",
|
||||||
|
"asDuple": "fra:Nom de l'opérateur convivial par défaut"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"profileType": "passpoint_operator"
|
||||||
|
},
|
||||||
|
"createdTimestamp": 1605711164952,
|
||||||
|
"lastModifiedTimestamp": 1605711164952,
|
||||||
|
"childProfileIds": [
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
@@ -1,10 +1,10 @@
|
|||||||
[
|
[
|
||||||
{
|
{
|
||||||
"model_type": "Profile",
|
"model_type": "Profile",
|
||||||
"id": 1,
|
"id": 1,
|
||||||
"customerId": 2,
|
"customerId": 2,
|
||||||
"profileType": "radius",
|
"profileType": "radius",
|
||||||
"name": "RadiusProfileOttawa",
|
"name": "Radius-Profile",
|
||||||
"details": {
|
"details": {
|
||||||
"model_type": "RadiusProfile",
|
"model_type": "RadiusProfile",
|
||||||
"subnetConfiguration": null,
|
"subnetConfiguration": null,
|
||||||
@@ -12,10 +12,10 @@
|
|||||||
"Ottawa": {
|
"Ottawa": {
|
||||||
"model_type": "RadiusServiceRegion",
|
"model_type": "RadiusServiceRegion",
|
||||||
"serverMap": {
|
"serverMap": {
|
||||||
"RadiusProfileOttawa": [
|
"Radius-Profile": [
|
||||||
{
|
{
|
||||||
"model_type": "RadiusServer",
|
"model_type": "RadiusServer",
|
||||||
"ipAddress": "localhost",
|
"ipAddress": "192.168.0.1",
|
||||||
"secret": "testing123",
|
"secret": "testing123",
|
||||||
"authPort": 1812,
|
"authPort": 1812,
|
||||||
"timeout": null
|
"timeout": null
|
||||||
@@ -27,8 +27,8 @@
|
|||||||
},
|
},
|
||||||
"profileType": "radius"
|
"profileType": "radius"
|
||||||
},
|
},
|
||||||
"createdTimestamp": 1591653174195,
|
"createdTimestamp": 1601961451668,
|
||||||
"lastModifiedTimestamp": 1591653174195,
|
"lastModifiedTimestamp": 1601961451668,
|
||||||
"childProfileIds": []
|
"childProfileIds": []
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
@@ -0,0 +1,205 @@
|
|||||||
|
{
|
||||||
|
"model_type": "Profile",
|
||||||
|
"id": 21,
|
||||||
|
"customerId": 2,
|
||||||
|
"profileType": "rf",
|
||||||
|
"name": "TipWlan-rf-passpoint",
|
||||||
|
"details": {
|
||||||
|
"model_type": "RfConfiguration",
|
||||||
|
"rfConfigMap": {
|
||||||
|
"is5GHz": {
|
||||||
|
"model_type": "RfElementConfiguration",
|
||||||
|
"radioType": "is5GHz",
|
||||||
|
"radioMode": "modeAC",
|
||||||
|
"rf": "TipWlan-rf-passpoint",
|
||||||
|
"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-passpoint",
|
||||||
|
"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-passpoint",
|
||||||
|
"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-passpoint",
|
||||||
|
"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": 1605711191976,
|
||||||
|
"lastModifiedTimestamp": 1605711191976,
|
||||||
|
"childProfileIds": [
|
||||||
|
]
|
||||||
|
}
|
||||||
@@ -1,149 +1,31 @@
|
|||||||
[
|
[
|
||||||
{
|
{
|
||||||
"model_type": "Profile",
|
"model_type": "Profile",
|
||||||
"id": 6,
|
"id": 15,
|
||||||
"customerId": 2,
|
"customerId": 2,
|
||||||
"profileType": "ssid",
|
"profileType": "ssid",
|
||||||
"name": "DefaultSsid-2g",
|
"name": "TipWlan-cloud-hotspot-access",
|
||||||
"details": {
|
"details": {
|
||||||
"model_type": "SsidConfiguration",
|
"model_type": "SsidConfiguration",
|
||||||
"ssid": "Default-SSID-2g",
|
"ssid": "TipWlan-cloud-hotspot-access",
|
||||||
"appliedRadios": [
|
|
||||||
"is2dot4GHz"
|
|
||||||
],
|
|
||||||
"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": 1591653239983,
|
|
||||||
"lastModifiedTimestamp": 1591653239983,
|
|
||||||
"childProfileIds": []
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"model_type": "Profile",
|
|
||||||
"id": 7,
|
|
||||||
"customerId": 2,
|
|
||||||
"profileType": "ssid",
|
|
||||||
"name": "DefaultSsid-5gl",
|
|
||||||
"details": {
|
|
||||||
"model_type": "SsidConfiguration",
|
|
||||||
"ssid": "Default-SSID-5gl",
|
|
||||||
"appliedRadios": [
|
|
||||||
"is5GHzL"
|
|
||||||
],
|
|
||||||
"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
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"bonjourGatewayProfileId": null,
|
|
||||||
"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": [
|
"appliedRadios": [
|
||||||
|
"is5GHzL",
|
||||||
"is5GHzU"
|
"is5GHzU"
|
||||||
],
|
],
|
||||||
"ssidAdminState": "enabled",
|
"ssidAdminState": "enabled",
|
||||||
"secureMode": "wpa2PSK",
|
"secureMode": "wpa2PSK",
|
||||||
"vlanId": 1,
|
"vlanId": 1,
|
||||||
"keyStr": "12345678",
|
"keyStr": "testing123",
|
||||||
"broadcastSsid": "enabled",
|
"broadcastSsid": "enabled",
|
||||||
"keyRefresh": 0,
|
"keyRefresh": 0,
|
||||||
"noLocalSubnets": false,
|
"noLocalSubnets": false,
|
||||||
"radiusServiceName": null,
|
"radiusServiceName": null,
|
||||||
|
"radiusAccountingServiceName": null,
|
||||||
"captivePortalId": null,
|
"captivePortalId": null,
|
||||||
"bandwidthLimitDown": 0,
|
"bandwidthLimitDown": 0,
|
||||||
"bandwidthLimitUp": 0,
|
"bandwidthLimitUp": 0,
|
||||||
|
"clientBandwidthLimitDown": 0,
|
||||||
|
"clientBandwidthLimitUp": 0,
|
||||||
"videoTrafficOnly": false,
|
"videoTrafficOnly": false,
|
||||||
"radioBasedConfigs": {
|
"radioBasedConfigs": {
|
||||||
"is5GHz": {
|
"is5GHz": {
|
||||||
@@ -177,8 +59,76 @@
|
|||||||
"forwardMode": null,
|
"forwardMode": null,
|
||||||
"profileType": "ssid"
|
"profileType": "ssid"
|
||||||
},
|
},
|
||||||
"createdTimestamp": 1591654301763,
|
"createdTimestamp": 1605711164949,
|
||||||
"lastModifiedTimestamp": 1591654301763,
|
"lastModifiedTimestamp": 1605711223372,
|
||||||
"childProfileIds": []
|
"childProfileIds": [
|
||||||
}
|
24
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"model_type": "Profile",
|
||||||
|
"id": 16,
|
||||||
|
"customerId": 2,
|
||||||
|
"profileType": "ssid",
|
||||||
|
"name": "TipWlan-cloud-hotspot-osu",
|
||||||
|
"details": {
|
||||||
|
"model_type": "SsidConfiguration",
|
||||||
|
"ssid": "TipWlan-cloud-hotspot-osu",
|
||||||
|
"appliedRadios": [
|
||||||
|
"is2dot4GHz"
|
||||||
|
],
|
||||||
|
"ssidAdminState": "enabled",
|
||||||
|
"secureMode": "open",
|
||||||
|
"vlanId": 1,
|
||||||
|
"keyStr": null,
|
||||||
|
"broadcastSsid": "enabled",
|
||||||
|
"keyRefresh": 0,
|
||||||
|
"noLocalSubnets": false,
|
||||||
|
"radiusServiceName": null,
|
||||||
|
"radiusAccountingServiceName": null,
|
||||||
|
"captivePortalId": null,
|
||||||
|
"bandwidthLimitDown": 0,
|
||||||
|
"bandwidthLimitUp": 0,
|
||||||
|
"clientBandwidthLimitDown": 0,
|
||||||
|
"clientBandwidthLimitUp": 0,
|
||||||
|
"videoTrafficOnly": false,
|
||||||
|
"radioBasedConfigs": {
|
||||||
|
"is5GHz": {
|
||||||
|
"model_type": "RadioBasedSsidConfiguration",
|
||||||
|
"enable80211r": null,
|
||||||
|
"enable80211k": null,
|
||||||
|
"enable80211v": null
|
||||||
|
},
|
||||||
|
"is2dot4GHz": {
|
||||||
|
"model_type": "RadioBasedSsidConfiguration",
|
||||||
|
"enable80211r": null,
|
||||||
|
"enable80211k": null,
|
||||||
|
"enable80211v": null
|
||||||
|
},
|
||||||
|
"is5GHzU": {
|
||||||
|
"model_type": "RadioBasedSsidConfiguration",
|
||||||
|
"enable80211r": null,
|
||||||
|
"enable80211k": null,
|
||||||
|
"enable80211v": null
|
||||||
|
},
|
||||||
|
"is5GHzL": {
|
||||||
|
"model_type": "RadioBasedSsidConfiguration",
|
||||||
|
"enable80211r": null,
|
||||||
|
"enable80211k": null,
|
||||||
|
"enable80211v": null
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"bonjourGatewayProfileId": null,
|
||||||
|
"enable80211w": null,
|
||||||
|
"wepConfig": null,
|
||||||
|
"forwardMode": null,
|
||||||
|
"profileType": "ssid"
|
||||||
|
},
|
||||||
|
"createdTimestamp": 1605711164950,
|
||||||
|
"lastModifiedTimestamp": 1605711171732,
|
||||||
|
"childProfileIds": [
|
||||||
|
19,
|
||||||
|
20
|
||||||
|
]
|
||||||
|
}
|
||||||
]
|
]
|
||||||
@@ -0,0 +1,43 @@
|
|||||||
|
[
|
||||||
|
{
|
||||||
|
"model_type": "Profile",
|
||||||
|
"id": 18,
|
||||||
|
"customerId": 2,
|
||||||
|
"profileType": "passpoint_venue",
|
||||||
|
"name": "TipWlan-Hotspot20-Venue",
|
||||||
|
"details": {
|
||||||
|
"model_type": "PasspointVenueProfile",
|
||||||
|
"venueNameSet": [
|
||||||
|
{
|
||||||
|
"model_type": "PasspointVenueName",
|
||||||
|
"locale": "fr_CA",
|
||||||
|
"dupleIso3Language": "fra",
|
||||||
|
"dupleName": "Exemple de lieu",
|
||||||
|
"defaultDupleSeparator": ":",
|
||||||
|
"venueUrl": "http://www.example.com/info-fra",
|
||||||
|
"asDuple": "fra:Exemple de lieu"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"model_type": "PasspointVenueName",
|
||||||
|
"locale": "en_CA",
|
||||||
|
"dupleIso3Language": "eng",
|
||||||
|
"dupleName": "Example passpoint_venue",
|
||||||
|
"defaultDupleSeparator": ":",
|
||||||
|
"venueUrl": "http://www.example.com/info-eng",
|
||||||
|
"asDuple": "eng:Example passpoint_venue"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"venueTypeAssignment": {
|
||||||
|
"model_type": "ProfileVenueTypeAssignment",
|
||||||
|
"venueDescription": "Research and Development Facility",
|
||||||
|
"venueGroupId": 2,
|
||||||
|
"venueTypeId": 8
|
||||||
|
},
|
||||||
|
"profileType": "passpoint_venue"
|
||||||
|
},
|
||||||
|
"createdTimestamp": 1605711164956,
|
||||||
|
"lastModifiedTimestamp": 1605711164956,
|
||||||
|
"childProfileIds": [
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
@@ -64,7 +64,6 @@
|
|||||||
<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"/>
|
||||||
|
|||||||
@@ -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 /etc/hosts | wc -l`
|
n1=`grep opensync-mqtt-broker.zone1.lab.wlan.tip.build /etc/hosts | wc -l`
|
||||||
|
|
||||||
if [[ $n1 -eq 0 ]]
|
if [[ $n1 -eq 0 ]]
|
||||||
then
|
then
|
||||||
echo Adding opensync-mqtt-broker to /etc/hosts
|
echo Adding opensync-mqtt-broker.zone1.lab.wlan.tip.build to /etc/hosts
|
||||||
echo "127.0.0.1 opensync-mqtt-broker" >> /etc/hosts
|
echo "127.0.0.1 opensync-mqtt-broker.zone1.lab.wlan.tip.build" >> /etc/hosts
|
||||||
fi
|
fi
|
||||||
|
|
||||||
n2=`grep opensync-wifi-controller /etc/hosts | wc -l`
|
n2=`grep opensync-controller.zone1.lab.wlan.tip.build /etc/hosts | wc -l`
|
||||||
|
|
||||||
if [[ $n2 -eq 0 ]]
|
if [[ $n2 -eq 0 ]]
|
||||||
then
|
then
|
||||||
echo Adding opensync-wifi-controller to /etc/hosts
|
echo Adding opensync-controller.zone1.lab.wlan.tip.build to /etc/hosts
|
||||||
echo "127.0.0.1 opensync-wifi-controller" >> /etc/hosts
|
echo "127.0.0.1 opensync-controller.zone1.lab.wlan.tip.build" >> /etc/hosts
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
||||||
@@ -33,24 +33,36 @@ 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:=br-home}"
|
OVSDB_IF_DEFAULT_BRIDGE="${OVSDB_IF_DEFAULT_BRIDGE:=lan}"
|
||||||
echo $OVSDB_IF_DEFAULT_BRIDGE
|
echo $OVSDB_IF_DEFAULT_BRIDGE
|
||||||
OVSDB_IF_DEFAULT_RADIO_0="${OVSDB_IF_DEFAULT_RADIO_0:=home-ap-u50}"
|
OVSDB_IF_DEFAULT_RADIO_0="${OVSDB_IF_DEFAULT_RADIO_0:=wlan0}"
|
||||||
echo $OVSDB_IF_DEFAULT_RADIO_0
|
echo $OVSDB_IF_DEFAULT_RADIO_0
|
||||||
OVSDB_IF_DEFAULT_RADIO_1="${OVSDB_IF_DEFAULT_RADIO_1:=home-ap-24}"
|
OVSDB_IF_DEFAULT_RADIO_1="${OVSDB_IF_DEFAULT_RADIO_1:=wlan1}"
|
||||||
echo $OVSDB_IF_DEFAULT_RADIO_1
|
echo $OVSDB_IF_DEFAULT_RADIO_1
|
||||||
OVSDB_IF_DEFAULT_RADIO_2="${OVSDB_IF_DEFAULT_RADIO_2:=home-ap-l50}"
|
OVSDB_IF_DEFAULT_RADIO_2="${OVSDB_IF_DEFAULT_RADIO_2:=wlan2}"
|
||||||
echo $OVSDB_IF_DEFAULT_RADIO_2
|
echo $OVSDB_IF_DEFAULT_RADIO_2
|
||||||
OVSDB_DEVICE_RADIO_0="${OVSDB_DEVICE_RADIO_0:=wifi2}"
|
OVSDB_DEVICE_DEFAULT_WAN_TYPE="${OVSDB_DEVICE_DEFAULT_WAN_TYPE:=bridge}"
|
||||||
echo $OVSDB_DEVICE_RADIO_0
|
echo $OVSDB_DEVICE_DEFAULT_WAN_TYPE
|
||||||
OVSDB_DEVICE_RADIO_1="${OVSDB_DEVICE_RADIO_1:=wifi0}"
|
OVSDB_DEVICE_DEFAULT_WAN_NAME="${OVSDB_DEVICE_DEFAULT_WAN_NAME:=wan}"
|
||||||
echo $OVSDB_DEVICE_RADIO_1
|
echo $OVSDB_DEVICE_DEFAULT_WAN_NAME
|
||||||
OVSDB_DEVICE_RADIO_2="${OVSDB_DEVICE_RADIO_2:=wifi1}"
|
OVSDB_DEVICE_DEFAULT_LAN_TYPE="${OVSDB_DEVICE_DEFAULT_LAN_TYPE:=bridge}"
|
||||||
echo $OVSDB_DEVICE_RADIO_2
|
echo $OVSDB_DEVICE_DEFAULT_LAN_TYPE
|
||||||
|
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
|
||||||
|
|
||||||
@@ -59,8 +71,9 @@ 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="${MQTT_BROKER_HOST:=opensync-mqtt-broker}"
|
MQTT_BROKER_HOST_INTERNAL="${MQTT_BROKER_HOST_INTERNAL:=opensync-mqtt-broker.zone1.lab.wlan.tip.build}"
|
||||||
OVSDB_MANAGER_HOST="${OVSDB_MANAGER_HOST:=opensync-wifi-controller}"
|
MQTT_BROKER_HOST_EXTERNAL="${MQTT_BROKER_HOST_EXTERNAL:=opensync-mqtt-broker.zone1.lab.wlan.tip.build}"
|
||||||
|
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}"
|
||||||
|
|
||||||
@@ -115,33 +128,44 @@ 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 -Dconnectus.ovsdb.managerAddr=$OVSDB_MANAGER_HOST"
|
OVSDB_PROPS="$OVSDB_PROPS -Dtip.wlan.ovsdb.managerAddr=$OVSDB_MANAGER_HOST"
|
||||||
OVSDB_PROPS="$OVSDB_PROPS -Dconnectus.ovsdb.listenPort=6640 "
|
OVSDB_PROPS="$OVSDB_PROPS -Dtip.wlan.ovsdb.listenPort=6640 "
|
||||||
OVSDB_PROPS="$OVSDB_PROPS -Dconnectus.ovsdb.redirector.listenPort=6643"
|
OVSDB_PROPS="$OVSDB_PROPS -Dtip.wlan.ovsdb.redirector.listenPort=6643"
|
||||||
OVSDB_PROPS="$OVSDB_PROPS -Dconnectus.ovsdb.timeoutSec=30"
|
OVSDB_PROPS="$OVSDB_PROPS -Dtip.wlan.ovsdb.timeoutSec=30"
|
||||||
OVSDB_PROPS="$OVSDB_PROPS -Dconnectus.ovsdb.trustStore=$OVSDB_SERVER_TRUSTSTORE_FILE"
|
OVSDB_PROPS="$OVSDB_PROPS -Dtip.wlan.ovsdb.trustStore=$OVSDB_SERVER_TRUSTSTORE_FILE"
|
||||||
OVSDB_PROPS="$OVSDB_PROPS -Dconnectus.ovsdb.trustStorePassword=$OVSDB_SERVER_TRUSTSTORE_PASSWORD"
|
OVSDB_PROPS="$OVSDB_PROPS -Dtip.wlan.ovsdb.trustStorePassword=$OVSDB_SERVER_TRUSTSTORE_PASSWORD"
|
||||||
OVSDB_PROPS="$OVSDB_PROPS -Dconnectus.ovsdb.keyStore=$OVSDB_SERVER_KEYSTORE_FILE"
|
OVSDB_PROPS="$OVSDB_PROPS -Dtip.wlan.ovsdb.keyStore=$OVSDB_SERVER_KEYSTORE_FILE"
|
||||||
OVSDB_PROPS="$OVSDB_PROPS -Dconnectus.ovsdb.keyStorePassword=$OVSDB_SERVER_KEYSTORE_PASSWORD"
|
OVSDB_PROPS="$OVSDB_PROPS -Dtip.wlan.ovsdb.keyStorePassword=$OVSDB_SERVER_KEYSTORE_PASSWORD"
|
||||||
OVSDB_PROPS="$OVSDB_PROPS -Dconnectus.ovsdb.customerEquipmentFileName=$OVSDB_EQUIPMENT_CONFIG_FILE"
|
OVSDB_PROPS="$OVSDB_PROPS -Dtip.wlan.ovsdb.customerEquipmentFileName=$OVSDB_EQUIPMENT_CONFIG_FILE"
|
||||||
OVSDB_PROPS="$OVSDB_PROPS -Dconnectus.ovsdb.apProfileFileName=$OVSDB_APPROFILE_CONFIG_FILE"
|
OVSDB_PROPS="$OVSDB_PROPS -Dtip.wlan.ovsdb.apProfileFileName=$OVSDB_APPROFILE_CONFIG_FILE"
|
||||||
OVSDB_PROPS="$OVSDB_PROPS -Dconnectus.ovsdb.ssidProfileFileName=$OVSDB_SSIDPROFILE_CONFIG_FILE"
|
OVSDB_PROPS="$OVSDB_PROPS -Dtip.wlan.ovsdb.metricsProfileFileName=$OVSDB_METRICSPROFILE_CONFIG_FILE"
|
||||||
OVSDB_PROPS="$OVSDB_PROPS -Dconnectus.ovsdb.radiusProfileFileName=$OVSDB_RADIUSPROFILE_CONFIG_FILE"
|
OVSDB_PROPS="$OVSDB_PROPS -Dtip.wlan.ovsdb.hotspot20ProfileFileName=$OVSDB_HOTSPOT20PROFILE_CONFIG_FILE"
|
||||||
OVSDB_PROPS="$OVSDB_PROPS -Dconnectus.ovsdb.locationFileName=$OVSDB_LOCATION_CONFIG_FILE"
|
OVSDB_PROPS="$OVSDB_PROPS -Dtip.wlan.ovsdb.operatorProfileFileName=$OVSDB_OPERATORPROFILE_CONFIG_FILE"
|
||||||
OVSDB_PROPS="$OVSDB_PROPS -Dconnectus.ovsdb.wifi-iface.default_bridge=$OVSDB_IF_DEFAULT_BRIDGE"
|
OVSDB_PROPS="$OVSDB_PROPS -Dtip.wlan.ovsdb.venueProfileFileName=$OVSDB_VENUEPROFILE_CONFIG_FILE"
|
||||||
OVSDB_PROPS="$OVSDB_PROPS -Dconnectus.ovsdb.wifi-iface.default_radio0=$OVSDB_IF_DEFAULT_RADIO_0"
|
OVSDB_PROPS="$OVSDB_PROPS -Dtip.wlan.ovsdb.idProviderProfileFileName=$OVSDB_IDPROVIDERPROFILE_CONFIG_FILE"
|
||||||
OVSDB_PROPS="$OVSDB_PROPS -Dconnectus.ovsdb.wifi-iface.default_radio1=$OVSDB_IF_DEFAULT_RADIO_1"
|
OVSDB_PROPS="$OVSDB_PROPS -Dtip.wlan.ovsdb.rfProfileFileName=$OVSDB_RFPROFILE_CONFIG_FILE"
|
||||||
OVSDB_PROPS="$OVSDB_PROPS -Dconnectus.ovsdb.wifi-iface.default_radio2=$OVSDB_IF_DEFAULT_RADIO_2"
|
OVSDB_PROPS="$OVSDB_PROPS -Dtip.wlan.preventClientCnAlteration=$OVSDB_PREVENT_CLIENTCN_ALTERATION"
|
||||||
OVSDB_PROPS="$OVSDB_PROPS -Dconnectus.ovsdb.wifi-device.radio0=$OVSDB_DEVICE_RADIO_0"
|
OVSDB_PROPS="$OVSDB_PROPS -Dtip.wlan.ovsdb.ssidProfileFileName=$OVSDB_SSIDPROFILE_CONFIG_FILE"
|
||||||
OVSDB_PROPS="$OVSDB_PROPS -Dconnectus.ovsdb.wifi-device.radio1=$OVSDB_DEVICE_RADIO_1"
|
OVSDB_PROPS="$OVSDB_PROPS -Dtip.wlan.ovsdb.radiusProfileFileName=$OVSDB_RADIUSPROFILE_CONFIG_FILE"
|
||||||
OVSDB_PROPS="$OVSDB_PROPS -Dconnectus.ovsdb.wifi-device.radio2=$OVSDB_DEVICE_RADIO_2"
|
OVSDB_PROPS="$OVSDB_PROPS -Dtip.wlan.ovsdb.locationFileName=$OVSDB_LOCATION_CONFIG_FILE"
|
||||||
|
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 -Dconnectus.mqttBroker.address=$MQTT_BROKER_HOST"
|
MQTT_PROPS="$MQTT_PROPS -Dtip.wlan.mqttBroker.address.internal=$MQTT_BROKER_HOST_INTERNAL"
|
||||||
MQTT_PROPS="$MQTT_PROPS -Dconnectus.mqttBroker.listenPort=1883"
|
MQTT_PROPS="$MQTT_PROPS -Dtip.wlan.mqttBroker.address.external=$MQTT_BROKER_HOST_EXTERNAL"
|
||||||
|
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"
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
FROM adoptopenjdk/openjdk13:alpine-jre
|
FROM adoptopenjdk/openjdk13:alpine-jre
|
||||||
MAINTAINER ConnectUs
|
MAINTAINER TipWlan
|
||||||
|
|
||||||
# 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,7 +13,15 @@ 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
|
||||||
|
|||||||
@@ -0,0 +1,4 @@
|
|||||||
|
#This is a dummy property file to be used when running docker locally
|
||||||
|
date=${date}
|
||||||
|
commitId=${commit.id}
|
||||||
|
projectVersion=${project.version}
|
||||||
@@ -38,37 +38,28 @@
|
|||||||
"channelNumber": 6,
|
"channelNumber": 6,
|
||||||
"manualChannelNumber": 6,
|
"manualChannelNumber": 6,
|
||||||
"backupChannelNumber": 11,
|
"backupChannelNumber": 11,
|
||||||
"autoChannelSelection": false,
|
|
||||||
"channelBandwidth": "is20MHz",
|
|
||||||
"bannedChannels": [],
|
"bannedChannels": [],
|
||||||
"allowedChannels": [],
|
"allowedChannels": [],
|
||||||
"rxCellSizeDb": {
|
"rxCellSizeDb": {
|
||||||
"model_type": "AutoOrManualValue",
|
"model_type": "SourceSelectionValue",
|
||||||
"auto": true,
|
"source": "auto",
|
||||||
"value": -90
|
"value": -90
|
||||||
},
|
},
|
||||||
"probeResponseThresholdDb": {
|
"probeResponseThresholdDb": {
|
||||||
"model_type": "AutoOrManualValue",
|
"model_type": "SourceSelectionValue",
|
||||||
"auto": true,
|
"source": "auto",
|
||||||
"value": -90
|
"value": -90
|
||||||
},
|
},
|
||||||
"clientDisconnectThresholdDb": {
|
"clientDisconnectThresholdDb": {
|
||||||
"model_type": "AutoOrManualValue",
|
"model_type": "SourceSelectionValue",
|
||||||
"auto": true,
|
"source": "auto",
|
||||||
"value": -90
|
"value": -90
|
||||||
},
|
},
|
||||||
"eirpTxPower": {
|
"eirpTxPower": {
|
||||||
"model_type": "AutoOrManualValue",
|
"model_type": "SourceSelectionValue",
|
||||||
"auto": false,
|
"source": "auto",
|
||||||
"value": 32
|
"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,
|
||||||
@@ -81,37 +72,28 @@
|
|||||||
"channelNumber": 149,
|
"channelNumber": 149,
|
||||||
"manualChannelNumber": 149,
|
"manualChannelNumber": 149,
|
||||||
"backupChannelNumber": 154,
|
"backupChannelNumber": 154,
|
||||||
"autoChannelSelection": false,
|
|
||||||
"channelBandwidth": "is80MHz",
|
|
||||||
"bannedChannels": [],
|
"bannedChannels": [],
|
||||||
"allowedChannels": [],
|
"allowedChannels": [],
|
||||||
"rxCellSizeDb": {
|
"rxCellSizeDb": {
|
||||||
"model_type": "AutoOrManualValue",
|
"model_type": "SourceSelectionValue",
|
||||||
"auto": true,
|
"source": "auto",
|
||||||
"value": -90
|
"value": -90
|
||||||
},
|
},
|
||||||
"probeResponseThresholdDb": {
|
"probeResponseThresholdDb": {
|
||||||
"model_type": "AutoOrManualValue",
|
"model_type": "SourceSelectionValue",
|
||||||
"auto": true,
|
"source": "auto",
|
||||||
"value": -90
|
"value": -90
|
||||||
},
|
},
|
||||||
"clientDisconnectThresholdDb": {
|
"clientDisconnectThresholdDb": {
|
||||||
"model_type": "AutoOrManualValue",
|
"model_type": "SourceSelectionValue",
|
||||||
"auto": true,
|
"source": "auto",
|
||||||
"value": -90
|
"value": -90
|
||||||
},
|
},
|
||||||
"eirpTxPower": {
|
"eirpTxPower": {
|
||||||
"model_type": "AutoOrManualValue",
|
"model_type": "SourceSelectionValue",
|
||||||
"auto": false,
|
"source": "auto",
|
||||||
"value": 32
|
"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,
|
||||||
@@ -124,37 +106,28 @@
|
|||||||
"channelNumber": 36,
|
"channelNumber": 36,
|
||||||
"manualChannelNumber": 36,
|
"manualChannelNumber": 36,
|
||||||
"backupChannelNumber": 44,
|
"backupChannelNumber": 44,
|
||||||
"autoChannelSelection": false,
|
|
||||||
"channelBandwidth": "is80MHz",
|
|
||||||
"bannedChannels": [],
|
"bannedChannels": [],
|
||||||
"allowedChannels": [],
|
"allowedChannels": [],
|
||||||
"rxCellSizeDb": {
|
"rxCellSizeDb": {
|
||||||
"model_type": "AutoOrManualValue",
|
"model_type": "SourceSelectionValue",
|
||||||
"auto": true,
|
"source": "auto",
|
||||||
"value": -90
|
"value": -90
|
||||||
},
|
},
|
||||||
"probeResponseThresholdDb": {
|
"probeResponseThresholdDb": {
|
||||||
"model_type": "AutoOrManualValue",
|
"model_type": "SourceSelectionValue",
|
||||||
"auto": true,
|
"source": "auto",
|
||||||
"value": -90
|
"value": -90
|
||||||
},
|
},
|
||||||
"clientDisconnectThresholdDb": {
|
"clientDisconnectThresholdDb": {
|
||||||
"model_type": "AutoOrManualValue",
|
"model_type": "SourceSelectionValue",
|
||||||
"auto": true,
|
"source": "auto",
|
||||||
"value": -90
|
"value": -90
|
||||||
},
|
},
|
||||||
"eirpTxPower": {
|
"eirpTxPower": {
|
||||||
"model_type": "AutoOrManualValue",
|
"model_type": "SourceSelectionValue",
|
||||||
"auto": false,
|
"source": "auto",
|
||||||
"value": 32
|
"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,
|
||||||
@@ -168,39 +141,24 @@
|
|||||||
"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": "auto",
|
"managementRate": {
|
||||||
"managementRate": "auto",
|
"model_type": "SourceSelectionManagement",
|
||||||
"activeScanSettings": {
|
"source": "auto",
|
||||||
"model_type": "ActiveScanSettings",
|
"value": "auto"
|
||||||
"enabled": true,
|
|
||||||
"scanFrequencySeconds": 10,
|
|
||||||
"scanDurationMillis": 65
|
|
||||||
},
|
|
||||||
"channelHopSettings": {
|
|
||||||
"model_type": "ChannelHopSettings",
|
|
||||||
"noiseFloorThresholdInDB": -75,
|
|
||||||
"noiseFloorThresholdTimeInSeconds": 180,
|
|
||||||
"nonWifiThresholdInPercentage": 50,
|
|
||||||
"nonWifiThresholdTimeInSeconds": 180,
|
|
||||||
"obssHopMode": "NON_WIFI"
|
|
||||||
},
|
},
|
||||||
"bestApSettings": {
|
"bestApSettings": {
|
||||||
|
"model_type": "SourceSelectionSteering",
|
||||||
|
"source": "auto",
|
||||||
|
"value": {
|
||||||
"model_type": "RadioBestApSettings",
|
"model_type": "RadioBestApSettings",
|
||||||
"mlComputed": true,
|
"mlComputed": true,
|
||||||
"dropInSnrPercentage": 20,
|
"dropInSnrPercentage": 30,
|
||||||
"minLoadFactor": 50
|
"minLoadFactor": 40
|
||||||
|
}
|
||||||
},
|
},
|
||||||
"forceScanDuringVoice": "disabled",
|
|
||||||
"legacyBSSRate": "enabled",
|
"legacyBSSRate": "enabled",
|
||||||
"beaconInterval": 100,
|
|
||||||
"deauthAttackDetection": null
|
"deauthAttackDetection": null
|
||||||
},
|
},
|
||||||
"is5GHzU": {
|
"is5GHzU": {
|
||||||
@@ -208,39 +166,24 @@
|
|||||||
"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": "auto",
|
"managementRate": {
|
||||||
"managementRate": "auto",
|
"model_type": "SourceSelectionManagement",
|
||||||
"activeScanSettings": {
|
"source": "auto",
|
||||||
"model_type": "ActiveScanSettings",
|
"value": "auto"
|
||||||
"enabled": true,
|
|
||||||
"scanFrequencySeconds": 10,
|
|
||||||
"scanDurationMillis": 65
|
|
||||||
},
|
|
||||||
"channelHopSettings": {
|
|
||||||
"model_type": "ChannelHopSettings",
|
|
||||||
"noiseFloorThresholdInDB": -75,
|
|
||||||
"noiseFloorThresholdTimeInSeconds": 180,
|
|
||||||
"nonWifiThresholdInPercentage": 50,
|
|
||||||
"nonWifiThresholdTimeInSeconds": 180,
|
|
||||||
"obssHopMode": "NON_WIFI"
|
|
||||||
},
|
},
|
||||||
"bestApSettings": {
|
"bestApSettings": {
|
||||||
|
"model_type": "SourceSelectionSteering",
|
||||||
|
"source": "auto",
|
||||||
|
"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",
|
||||||
"beaconInterval": 100,
|
|
||||||
"deauthAttackDetection": null
|
"deauthAttackDetection": null
|
||||||
},
|
},
|
||||||
"is5GHzL": {
|
"is5GHzL": {
|
||||||
@@ -248,39 +191,24 @@
|
|||||||
"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": "auto",
|
"managementRate": {
|
||||||
"managementRate": "auto",
|
"model_type": "SourceSelectionManagement",
|
||||||
"activeScanSettings": {
|
"source": "auto",
|
||||||
"model_type": "ActiveScanSettings",
|
"value": "auto"
|
||||||
"enabled": true,
|
|
||||||
"scanFrequencySeconds": 10,
|
|
||||||
"scanDurationMillis": 65
|
|
||||||
},
|
|
||||||
"channelHopSettings": {
|
|
||||||
"model_type": "ChannelHopSettings",
|
|
||||||
"noiseFloorThresholdInDB": -75,
|
|
||||||
"noiseFloorThresholdTimeInSeconds": 180,
|
|
||||||
"nonWifiThresholdInPercentage": 50,
|
|
||||||
"nonWifiThresholdTimeInSeconds": 180,
|
|
||||||
"obssHopMode": "NON_WIFI"
|
|
||||||
},
|
},
|
||||||
"bestApSettings": {
|
"bestApSettings": {
|
||||||
|
"model_type": "SourceSelectionSteering",
|
||||||
|
"source": "auto",
|
||||||
|
"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",
|
||||||
"beaconInterval": 100,
|
|
||||||
"deauthAttackDetection": null
|
"deauthAttackDetection": null
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -10,55 +10,48 @@
|
|||||||
"countryCode" : "ca",
|
"countryCode" : "ca",
|
||||||
"maintenanceWindow" : null,
|
"maintenanceWindow" : null,
|
||||||
"rrmEnabled" : true,
|
"rrmEnabled" : true,
|
||||||
"dailyRebalancingDetails" : {
|
"dailyActivityDetails" : {
|
||||||
"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
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -10,55 +10,48 @@
|
|||||||
"countryCode" : "usa",
|
"countryCode" : "usa",
|
||||||
"maintenanceWindow" : null,
|
"maintenanceWindow" : null,
|
||||||
"rrmEnabled" : true,
|
"rrmEnabled" : true,
|
||||||
"dailyRebalancingDetails" : {
|
"dailyActivityDetails" : {
|
||||||
"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
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
{
|
{
|
||||||
"model_type": "Profile",
|
"model_type": "Profile",
|
||||||
"id": 5,
|
"id": 23,
|
||||||
"customerId": 2,
|
"customerId": 2,
|
||||||
"profileType": "equipment_ap",
|
"profileType": "equipment_ap",
|
||||||
"name": "DefaultApProfile",
|
"name": "ApProfile-3-radios-passpoint",
|
||||||
"details": {
|
"details": {
|
||||||
"model_type": "ApNetworkConfiguration",
|
"model_type": "ApNetworkConfiguration",
|
||||||
"networkConfigVersion": "AP-1",
|
"networkConfigVersion": "AP-1",
|
||||||
@@ -20,12 +20,12 @@
|
|||||||
"syntheticClientEnabled": true,
|
"syntheticClientEnabled": true,
|
||||||
"ledControlEnabled": true,
|
"ledControlEnabled": true,
|
||||||
"equipmentDiscovery": false,
|
"equipmentDiscovery": false,
|
||||||
|
"greTunnelName": null,
|
||||||
|
"greParentIfName": null,
|
||||||
|
"greLocalInetAddr": null,
|
||||||
|
"greRemoteInetAddr": null,
|
||||||
|
"greRemoteMacAddr": null,
|
||||||
"radioMap": {
|
"radioMap": {
|
||||||
"is5GHz": {
|
|
||||||
"model_type": "RadioProfileConfiguration",
|
|
||||||
"bestApEnabled": true,
|
|
||||||
"bestAPSteerType": "both"
|
|
||||||
},
|
|
||||||
"is2dot4GHz": {
|
"is2dot4GHz": {
|
||||||
"model_type": "RadioProfileConfiguration",
|
"model_type": "RadioProfileConfiguration",
|
||||||
"bestApEnabled": true,
|
"bestApEnabled": true,
|
||||||
@@ -44,11 +44,12 @@
|
|||||||
},
|
},
|
||||||
"profileType": "equipment_ap"
|
"profileType": "equipment_ap"
|
||||||
},
|
},
|
||||||
"createdTimestamp": 1591653239947,
|
"createdTimestamp": 1605711197140,
|
||||||
"lastModifiedTimestamp": 1591654336724,
|
"lastModifiedTimestamp": 1605711197140,
|
||||||
"childProfileIds": [
|
"childProfileIds": [
|
||||||
6,
|
16,
|
||||||
7,
|
21,
|
||||||
8
|
22,
|
||||||
|
15
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
@@ -0,0 +1,29 @@
|
|||||||
|
[
|
||||||
|
{
|
||||||
|
"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": []
|
||||||
|
}
|
||||||
|
]
|
||||||
@@ -0,0 +1,135 @@
|
|||||||
|
[
|
||||||
|
{
|
||||||
|
"model_type": "Profile",
|
||||||
|
"id": 14,
|
||||||
|
"customerId": 2,
|
||||||
|
"profileType": "captive_portal",
|
||||||
|
"name": "Captive-portal",
|
||||||
|
"details": {
|
||||||
|
"model_type": "CaptivePortalConfiguration",
|
||||||
|
"name": "Captive-portal",
|
||||||
|
"browserTitle": "Access the network as Guest",
|
||||||
|
"headerContent": "Captive Portal",
|
||||||
|
"userAcceptancePolicy": "Use this network at your own risk. No warranty of any kind.",
|
||||||
|
"successPageMarkdownText": "Welcome to the network",
|
||||||
|
"redirectURL": "",
|
||||||
|
"externalCaptivePortalURL": null,
|
||||||
|
"sessionTimeoutInMinutes": 60,
|
||||||
|
"logoFile": null,
|
||||||
|
"backgroundFile": null,
|
||||||
|
"walledGardenAllowlist": [],
|
||||||
|
"usernamePasswordFile": {
|
||||||
|
"model_type": "ManagedFileInfo",
|
||||||
|
"md5checksum": null,
|
||||||
|
"lastModifiedTimestamp": null,
|
||||||
|
"apExportUrl": "userList",
|
||||||
|
"fileCategory": "UsernamePasswordList",
|
||||||
|
"fileType": "TEXT",
|
||||||
|
"altSlot": true
|
||||||
|
},
|
||||||
|
"authenticationType": "guest",
|
||||||
|
"radiusAuthMethod": "CHAP",
|
||||||
|
"maxUsersWithSameCredentials": 42,
|
||||||
|
"externalPolicyFile": null,
|
||||||
|
"backgroundPosition": "left_top",
|
||||||
|
"backgroundRepeat": "no_repeat",
|
||||||
|
"radiusServiceName": null,
|
||||||
|
"expiryType": "unlimited",
|
||||||
|
"userList": [
|
||||||
|
{
|
||||||
|
"model_type": "TimedAccessUserRecord",
|
||||||
|
"username": "customer",
|
||||||
|
"password": "testing123",
|
||||||
|
"activationTime": 1602183994956,
|
||||||
|
"expirationTime": 1602212794956,
|
||||||
|
"numDevices": 1,
|
||||||
|
"userDetails": {
|
||||||
|
"model_type": "TimedAccessUserDetails",
|
||||||
|
"firstName": "Pac",
|
||||||
|
"lastName": "Man",
|
||||||
|
"passwordNeedsReset": false
|
||||||
|
},
|
||||||
|
"userMacAddresses": [
|
||||||
|
{
|
||||||
|
"model_type": "MacAddress",
|
||||||
|
"address": "fKtg5upO",
|
||||||
|
"addressAsString": "7c:ab:60:e6:ea:4e"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"lastModifiedTimestamp": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"model_type": "TimedAccessUserRecord",
|
||||||
|
"username": "customer",
|
||||||
|
"password": "testing123",
|
||||||
|
"activationTime": 1602183994957,
|
||||||
|
"expirationTime": 1602187594957,
|
||||||
|
"numDevices": 0,
|
||||||
|
"userDetails": {
|
||||||
|
"model_type": "TimedAccessUserDetails",
|
||||||
|
"firstName": "Q",
|
||||||
|
"lastName": "Bert",
|
||||||
|
"passwordNeedsReset": false
|
||||||
|
},
|
||||||
|
"userMacAddresses": [
|
||||||
|
{
|
||||||
|
"model_type": "MacAddress",
|
||||||
|
"address": "wJrQdqho",
|
||||||
|
"addressAsString": "c0:9a:d0:76:a8:68"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"lastModifiedTimestamp": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"model_type": "TimedAccessUserRecord",
|
||||||
|
"username": "customer2",
|
||||||
|
"password": "testing1234",
|
||||||
|
"activationTime": 1602183994957,
|
||||||
|
"expirationTime": 1602788794957,
|
||||||
|
"numDevices": 1,
|
||||||
|
"userDetails": {
|
||||||
|
"model_type": "TimedAccessUserDetails",
|
||||||
|
"firstName": "Duke",
|
||||||
|
"lastName": "Nukem",
|
||||||
|
"passwordNeedsReset": false
|
||||||
|
},
|
||||||
|
"userMacAddresses": [
|
||||||
|
{
|
||||||
|
"model_type": "MacAddress",
|
||||||
|
"address": "fKtg5upN",
|
||||||
|
"addressAsString": "7c:ab:60:e6:ea:4d"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"lastModifiedTimestamp": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"model_type": "TimedAccessUserRecord",
|
||||||
|
"username": "customer2",
|
||||||
|
"password": "testing1234",
|
||||||
|
"activationTime": 1602183994957,
|
||||||
|
"expirationTime": 1602270394957,
|
||||||
|
"numDevices": 0,
|
||||||
|
"userDetails": {
|
||||||
|
"model_type": "TimedAccessUserDetails",
|
||||||
|
"firstName": "Missile",
|
||||||
|
"lastName": "Commander",
|
||||||
|
"passwordNeedsReset": false
|
||||||
|
},
|
||||||
|
"userMacAddresses": [
|
||||||
|
{
|
||||||
|
"model_type": "MacAddress",
|
||||||
|
"address": "wJrQdqhj",
|
||||||
|
"addressAsString": "c0:9a:d0:76:a8:63"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"lastModifiedTimestamp": 0
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"macAllowList": [],
|
||||||
|
"profileType": "captive_portal"
|
||||||
|
},
|
||||||
|
"createdTimestamp": 1602183994959,
|
||||||
|
"lastModifiedTimestamp": 1602183994959,
|
||||||
|
"childProfileIds": []
|
||||||
|
}
|
||||||
|
]
|
||||||
@@ -0,0 +1,72 @@
|
|||||||
|
[
|
||||||
|
{
|
||||||
|
"model_type": "Profile",
|
||||||
|
"id": 24,
|
||||||
|
"customerId": 2,
|
||||||
|
"profileType": "passpoint",
|
||||||
|
"name": "TipWlan-Hotspot20-Config",
|
||||||
|
"details": {
|
||||||
|
"model_type": "PasspointProfile",
|
||||||
|
"enableInterworkingAndHs20": true,
|
||||||
|
"hessid": null,
|
||||||
|
"additionalStepsRequiredForAccess": 0,
|
||||||
|
"deauthRequestTimeout": 0,
|
||||||
|
"operatingClass": 0,
|
||||||
|
"termsAndConditionsFile": {
|
||||||
|
"model_type": "ManagedFileInfo",
|
||||||
|
"md5checksum": null,
|
||||||
|
"lastModifiedTimestamp": null,
|
||||||
|
"apExportUrl": "https://localhost:9091/filestore/termsAndConditions",
|
||||||
|
"fileCategory": "ExternalPolicyConfiguration",
|
||||||
|
"fileType": "TEXT",
|
||||||
|
"altSlot": false
|
||||||
|
},
|
||||||
|
"whitelistDomain": null,
|
||||||
|
"emergencyServicesReachable": true,
|
||||||
|
"unauthenticatedEmergencyServiceAccessible": false,
|
||||||
|
"internetConnectivity": true,
|
||||||
|
"connectionCapabilitySet": [
|
||||||
|
{
|
||||||
|
"model_type": "PasspointConnectionCapability",
|
||||||
|
"connectionCapabilitiesPortNumber": 8888,
|
||||||
|
"connectionCapabilitiesIpProtocol": "TCP",
|
||||||
|
"connectionCapabilitiesStatus": "open"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"ipAddressTypeAvailability": "public_IPv4_address_available",
|
||||||
|
"qosMapSetConfiguration": null,
|
||||||
|
"apGeospatialLocation": null,
|
||||||
|
"apCivicLocation": null,
|
||||||
|
"apPublicLocationIdUri": null,
|
||||||
|
"gasAddr3Behaviour": "p2pSpecWorkaroundFromRequest",
|
||||||
|
"anqpDomainId": 1234,
|
||||||
|
"disableDownstreamGroupAddressedForwarding": false,
|
||||||
|
"enable2pt4GHz": true,
|
||||||
|
"enable5GHz": true,
|
||||||
|
"associatedAccessSsidNames": [
|
||||||
|
"TipWlan-cloud-hotspot-access"
|
||||||
|
],
|
||||||
|
"osuSsidName": "TipWlan-cloud-hotspot-osu",
|
||||||
|
"operatorProfileName": "TipWlan-Hotspot20-Operator",
|
||||||
|
"venueProfileName": "TipWlan-Hotspot20-Venue",
|
||||||
|
"idProviderProfileNames": [
|
||||||
|
"TipWlan-Hotspot20-OSU-Provider-2",
|
||||||
|
"TipWlan-Hotspot20-OSU-Provider"
|
||||||
|
],
|
||||||
|
"accessNetworkType": "free_public_network",
|
||||||
|
"networkAuthenticationType": "acceptance_of_terms_and_conditions",
|
||||||
|
"associatedSsids": [
|
||||||
|
"TipWlan-cloud-hotspot-access"
|
||||||
|
],
|
||||||
|
"profileType": "passpoint"
|
||||||
|
},
|
||||||
|
"createdTimestamp": 1605711223339,
|
||||||
|
"lastModifiedTimestamp": 1605711223339,
|
||||||
|
"childProfileIds": [
|
||||||
|
17,
|
||||||
|
18,
|
||||||
|
19,
|
||||||
|
20
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
@@ -0,0 +1,270 @@
|
|||||||
|
[
|
||||||
|
{
|
||||||
|
"model_type": "Profile",
|
||||||
|
"id": 19,
|
||||||
|
"customerId": 2,
|
||||||
|
"profileType": "passpoint_osu_id_provider",
|
||||||
|
"name": "TipWlan-Hotspot20-OSU-Provider",
|
||||||
|
"details": {
|
||||||
|
"model_type": "PasspointOsuProviderProfile",
|
||||||
|
"domainName": "rogers.com",
|
||||||
|
"mccMncList": [
|
||||||
|
{
|
||||||
|
"model_type": "PasspointMccMnc",
|
||||||
|
"mcc": 302,
|
||||||
|
"mnc": 720,
|
||||||
|
"iso": "ca",
|
||||||
|
"country": "Canada",
|
||||||
|
"countryCode": 1,
|
||||||
|
"network": "Rogers AT&T Wireless",
|
||||||
|
"mccMncPairing": "302,720"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"naiRealmList": [
|
||||||
|
{
|
||||||
|
"model_type": "PasspointNaiRealmInformation",
|
||||||
|
"naiRealms": [
|
||||||
|
"rogers.com"
|
||||||
|
],
|
||||||
|
"encoding": 0,
|
||||||
|
"eapMethods": [
|
||||||
|
"EAP-TTLS with username/password",
|
||||||
|
"EAP-TLS with certificate"
|
||||||
|
],
|
||||||
|
"eapMap": {
|
||||||
|
"EAP-TTLS with username/password": [
|
||||||
|
"Credential Type:username/password",
|
||||||
|
"Non-EAP Inner Authentication Type:MSCHAPV2"
|
||||||
|
],
|
||||||
|
"EAP-TLS with certificate": [
|
||||||
|
"Credential Type:Certificate"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"osuIconList": [
|
||||||
|
{
|
||||||
|
"model_type": "PasspointOsuIcon",
|
||||||
|
"iconWidth": 32,
|
||||||
|
"iconHeight": 32,
|
||||||
|
"languageCode": "eng",
|
||||||
|
"iconLocale": "en_CA",
|
||||||
|
"iconName": "icon32eng",
|
||||||
|
"filePath": "/tmp/icon32eng.png",
|
||||||
|
"imageUrl": "https://localhost:9096/icon32eng.png",
|
||||||
|
"hs20IconString": "32:32:eng:image/png:icon32eng:/tmp/icon32eng.png"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"model_type": "PasspointOsuIcon",
|
||||||
|
"iconWidth": 32,
|
||||||
|
"iconHeight": 32,
|
||||||
|
"languageCode": "fra",
|
||||||
|
"iconLocale": "fr_CA",
|
||||||
|
"iconName": "icon32fra",
|
||||||
|
"filePath": "/tmp/icon32fra.png",
|
||||||
|
"imageUrl": "https://localhost:9096/icon32fra.png",
|
||||||
|
"hs20IconString": "32:32:fra:image/png:icon32fra:/tmp/icon32fra.png"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"model_type": "PasspointOsuIcon",
|
||||||
|
"iconWidth": 32,
|
||||||
|
"iconHeight": 32,
|
||||||
|
"languageCode": "eng",
|
||||||
|
"iconLocale": "en_US",
|
||||||
|
"iconName": "icon32usa",
|
||||||
|
"filePath": "/tmp/icon32usa.png",
|
||||||
|
"imageUrl": "https://localhost:9096/icon32usa.png",
|
||||||
|
"hs20IconString": "32:32:eng:image/png:icon32usa:/tmp/icon32usa.png"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"osuServerUri": "https://example.com/osu/rogers",
|
||||||
|
"osuFriendlyName": [
|
||||||
|
{
|
||||||
|
"model_type": "PasspointDuple",
|
||||||
|
"locale": "en_CA",
|
||||||
|
"dupleIso3Language": "eng",
|
||||||
|
"dupleName": "Example provider rogers",
|
||||||
|
"defaultDupleSeparator": ":",
|
||||||
|
"asDuple": "eng:Example provider rogers"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"model_type": "PasspointDuple",
|
||||||
|
"locale": "fr_CA",
|
||||||
|
"dupleIso3Language": "fra",
|
||||||
|
"dupleName": "Exemple de fournisseur rogers",
|
||||||
|
"defaultDupleSeparator": ":",
|
||||||
|
"asDuple": "fra:Exemple de fournisseur rogers"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"osuNaiStandalone": "anonymous@rogers.com",
|
||||||
|
"osuNaiShared": "anonymous@rogers.com",
|
||||||
|
"osuMethodList": [
|
||||||
|
1,
|
||||||
|
0
|
||||||
|
],
|
||||||
|
"osuServiceDescription": [
|
||||||
|
{
|
||||||
|
"model_type": "PasspointDuple",
|
||||||
|
"locale": "en_CA",
|
||||||
|
"dupleIso3Language": "eng",
|
||||||
|
"dupleName": "Example services rogers",
|
||||||
|
"defaultDupleSeparator": ":",
|
||||||
|
"asDuple": "eng:Example services rogers"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"model_type": "PasspointDuple",
|
||||||
|
"locale": "fr_CA",
|
||||||
|
"dupleIso3Language": "fra",
|
||||||
|
"dupleName": "Exemples de services rogers",
|
||||||
|
"defaultDupleSeparator": ":",
|
||||||
|
"asDuple": "fra:Exemples de services rogers"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"roamingOi": [
|
||||||
|
1,
|
||||||
|
2,
|
||||||
|
3,
|
||||||
|
4
|
||||||
|
],
|
||||||
|
"profileType": "passpoint_osu_id_provider"
|
||||||
|
},
|
||||||
|
"createdTimestamp": 1605711165325,
|
||||||
|
"lastModifiedTimestamp": 1605711165325,
|
||||||
|
"childProfileIds": [
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"model_type": "Profile",
|
||||||
|
"id": 20,
|
||||||
|
"customerId": 2,
|
||||||
|
"profileType": "passpoint_osu_id_provider",
|
||||||
|
"name": "TipWlan-Hotspot20-OSU-Provider-2",
|
||||||
|
"details": {
|
||||||
|
"model_type": "PasspointOsuProviderProfile",
|
||||||
|
"domainName": "telus.com",
|
||||||
|
"mccMncList": [
|
||||||
|
{
|
||||||
|
"model_type": "PasspointMccMnc",
|
||||||
|
"mcc": 302,
|
||||||
|
"mnc": 220,
|
||||||
|
"iso": "ca",
|
||||||
|
"country": "Canada",
|
||||||
|
"countryCode": 1,
|
||||||
|
"network": "Telus Mobility",
|
||||||
|
"mccMncPairing": "302,220"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"naiRealmList": [
|
||||||
|
{
|
||||||
|
"model_type": "PasspointNaiRealmInformation",
|
||||||
|
"naiRealms": [
|
||||||
|
"telus.com"
|
||||||
|
],
|
||||||
|
"encoding": 0,
|
||||||
|
"eapMethods": [
|
||||||
|
"EAP-TTLS with username/password",
|
||||||
|
"EAP-TLS with certificate"
|
||||||
|
],
|
||||||
|
"eapMap": {
|
||||||
|
"EAP-TTLS with username/password": [
|
||||||
|
"Credential Type:username/password",
|
||||||
|
"Non-EAP Inner Authentication Type:MSCHAPV2"
|
||||||
|
],
|
||||||
|
"EAP-TLS with certificate": [
|
||||||
|
"Credential Type:Certificate"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"osuIconList": [
|
||||||
|
{
|
||||||
|
"model_type": "PasspointOsuIcon",
|
||||||
|
"iconWidth": 32,
|
||||||
|
"iconHeight": 32,
|
||||||
|
"languageCode": "eng",
|
||||||
|
"iconLocale": "en_CA",
|
||||||
|
"iconName": "icon32eng",
|
||||||
|
"filePath": "/tmp/icon32eng.png",
|
||||||
|
"imageUrl": "https://localhost:9096/icon32eng.png",
|
||||||
|
"hs20IconString": "32:32:eng:image/png:icon32eng:/tmp/icon32eng.png"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"model_type": "PasspointOsuIcon",
|
||||||
|
"iconWidth": 32,
|
||||||
|
"iconHeight": 32,
|
||||||
|
"languageCode": "fra",
|
||||||
|
"iconLocale": "fr_CA",
|
||||||
|
"iconName": "icon32fra",
|
||||||
|
"filePath": "/tmp/icon32fra.png",
|
||||||
|
"imageUrl": "https://localhost:9096/icon32fra.png",
|
||||||
|
"hs20IconString": "32:32:fra:image/png:icon32fra:/tmp/icon32fra.png"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"model_type": "PasspointOsuIcon",
|
||||||
|
"iconWidth": 32,
|
||||||
|
"iconHeight": 32,
|
||||||
|
"languageCode": "eng",
|
||||||
|
"iconLocale": "en_US",
|
||||||
|
"iconName": "icon32usa",
|
||||||
|
"filePath": "/tmp/icon32usa.png",
|
||||||
|
"imageUrl": "https://localhost:9096/icon32usa.png",
|
||||||
|
"hs20IconString": "32:32:eng:image/png:icon32usa:/tmp/icon32usa.png"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"osuServerUri": "https://example.com/osu/telus",
|
||||||
|
"osuFriendlyName": [
|
||||||
|
{
|
||||||
|
"model_type": "PasspointDuple",
|
||||||
|
"locale": "en_CA",
|
||||||
|
"dupleIso3Language": "eng",
|
||||||
|
"dupleName": "Example provider telus",
|
||||||
|
"defaultDupleSeparator": ":",
|
||||||
|
"asDuple": "eng:Example provider telus"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"model_type": "PasspointDuple",
|
||||||
|
"locale": "fr_CA",
|
||||||
|
"dupleIso3Language": "fra",
|
||||||
|
"dupleName": "Exemple de fournisseur telus",
|
||||||
|
"defaultDupleSeparator": ":",
|
||||||
|
"asDuple": "fra:Exemple de fournisseur telus"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"osuNaiStandalone": "anonymous@telus.com",
|
||||||
|
"osuNaiShared": "anonymous@telus.com",
|
||||||
|
"osuMethodList": [
|
||||||
|
1,
|
||||||
|
0
|
||||||
|
],
|
||||||
|
"osuServiceDescription": [
|
||||||
|
{
|
||||||
|
"model_type": "PasspointDuple",
|
||||||
|
"locale": "en_CA",
|
||||||
|
"dupleIso3Language": "eng",
|
||||||
|
"dupleName": "Example services telus",
|
||||||
|
"defaultDupleSeparator": ":",
|
||||||
|
"asDuple": "eng:Example services telus"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"model_type": "PasspointDuple",
|
||||||
|
"locale": "fr_CA",
|
||||||
|
"dupleIso3Language": "fra",
|
||||||
|
"dupleName": "Exemples de services telus",
|
||||||
|
"defaultDupleSeparator": ":",
|
||||||
|
"asDuple": "fra:Exemples de services telus"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"roamingOi": [
|
||||||
|
1,
|
||||||
|
2,
|
||||||
|
3,
|
||||||
|
4
|
||||||
|
],
|
||||||
|
"profileType": "passpoint_osu_id_provider"
|
||||||
|
},
|
||||||
|
"createdTimestamp": 1605711165330,
|
||||||
|
"lastModifiedTimestamp": 1605711165330,
|
||||||
|
"childProfileIds": [
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
@@ -0,0 +1,299 @@
|
|||||||
|
[
|
||||||
|
{
|
||||||
|
"model_type": "Profile",
|
||||||
|
"id": 22,
|
||||||
|
"customerId": 2,
|
||||||
|
"profileType": "service_metrics_collection_config",
|
||||||
|
"name": "Metrics-Profile-Passpoint",
|
||||||
|
"details": {
|
||||||
|
"model_type": "ServiceMetricsCollectionConfigProfile",
|
||||||
|
"radioTypes": [
|
||||||
|
"is5GHzL",
|
||||||
|
"is2dot4GHz",
|
||||||
|
"is5GHzU"
|
||||||
|
],
|
||||||
|
"serviceMetricDataTypes": [
|
||||||
|
"ApNode",
|
||||||
|
"ApSsid",
|
||||||
|
"Client",
|
||||||
|
"Channel",
|
||||||
|
"Neighbour"
|
||||||
|
],
|
||||||
|
"metricConfigParameterMap": {
|
||||||
|
"ApNode": [
|
||||||
|
{
|
||||||
|
"model_type": "ServiceMetricSurveyConfigParameters",
|
||||||
|
"samplingInterval": 30,
|
||||||
|
"reportingIntervalSeconds": 60,
|
||||||
|
"channelSurveyType": "ON_CHANNEL",
|
||||||
|
"scanIntervalMillis": 0,
|
||||||
|
"percentUtilizationThreshold": 10,
|
||||||
|
"delayMillisecondsThreshold": 600,
|
||||||
|
"radioType": "is2dot4GHz",
|
||||||
|
"serviceMetricDataType": "ApNode",
|
||||||
|
"statsReportFormat": "RAW"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"model_type": "ServiceMetricSurveyConfigParameters",
|
||||||
|
"samplingInterval": 30,
|
||||||
|
"reportingIntervalSeconds": 60,
|
||||||
|
"channelSurveyType": "ON_CHANNEL",
|
||||||
|
"scanIntervalMillis": 0,
|
||||||
|
"percentUtilizationThreshold": 10,
|
||||||
|
"delayMillisecondsThreshold": 600,
|
||||||
|
"radioType": "is5GHzU",
|
||||||
|
"serviceMetricDataType": "ApNode",
|
||||||
|
"statsReportFormat": "RAW"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"model_type": "ServiceMetricSurveyConfigParameters",
|
||||||
|
"samplingInterval": 30,
|
||||||
|
"reportingIntervalSeconds": 120,
|
||||||
|
"channelSurveyType": "OFF_CHANNEL",
|
||||||
|
"scanIntervalMillis": 0,
|
||||||
|
"percentUtilizationThreshold": 10,
|
||||||
|
"delayMillisecondsThreshold": 600,
|
||||||
|
"radioType": "is5GHzL",
|
||||||
|
"serviceMetricDataType": "ApNode",
|
||||||
|
"statsReportFormat": "RAW"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"model_type": "ServiceMetricSurveyConfigParameters",
|
||||||
|
"samplingInterval": 30,
|
||||||
|
"reportingIntervalSeconds": 120,
|
||||||
|
"channelSurveyType": "OFF_CHANNEL",
|
||||||
|
"scanIntervalMillis": 0,
|
||||||
|
"percentUtilizationThreshold": 10,
|
||||||
|
"delayMillisecondsThreshold": 600,
|
||||||
|
"radioType": "is5GHzU",
|
||||||
|
"serviceMetricDataType": "ApNode",
|
||||||
|
"statsReportFormat": "RAW"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"model_type": "ServiceMetricSurveyConfigParameters",
|
||||||
|
"samplingInterval": 30,
|
||||||
|
"reportingIntervalSeconds": 60,
|
||||||
|
"channelSurveyType": "ON_CHANNEL",
|
||||||
|
"scanIntervalMillis": 0,
|
||||||
|
"percentUtilizationThreshold": 10,
|
||||||
|
"delayMillisecondsThreshold": 600,
|
||||||
|
"radioType": "is5GHzL",
|
||||||
|
"serviceMetricDataType": "ApNode",
|
||||||
|
"statsReportFormat": "RAW"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"model_type": "ServiceMetricSurveyConfigParameters",
|
||||||
|
"samplingInterval": 30,
|
||||||
|
"reportingIntervalSeconds": 120,
|
||||||
|
"channelSurveyType": "OFF_CHANNEL",
|
||||||
|
"scanIntervalMillis": 0,
|
||||||
|
"percentUtilizationThreshold": 10,
|
||||||
|
"delayMillisecondsThreshold": 600,
|
||||||
|
"radioType": "is2dot4GHz",
|
||||||
|
"serviceMetricDataType": "ApNode",
|
||||||
|
"statsReportFormat": "RAW"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"ApSsid": [
|
||||||
|
{
|
||||||
|
"model_type": "ServiceMetricRadioConfigParameters",
|
||||||
|
"samplingInterval": 30,
|
||||||
|
"reportingIntervalSeconds": 60,
|
||||||
|
"radioType": "is5GHzL",
|
||||||
|
"serviceMetricDataType": "ApSsid"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"model_type": "ServiceMetricRadioConfigParameters",
|
||||||
|
"samplingInterval": 30,
|
||||||
|
"reportingIntervalSeconds": 60,
|
||||||
|
"radioType": "is2dot4GHz",
|
||||||
|
"serviceMetricDataType": "ApSsid"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"model_type": "ServiceMetricRadioConfigParameters",
|
||||||
|
"samplingInterval": 30,
|
||||||
|
"reportingIntervalSeconds": 60,
|
||||||
|
"radioType": "is5GHzU",
|
||||||
|
"serviceMetricDataType": "ApSsid"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"Client": [
|
||||||
|
{
|
||||||
|
"model_type": "ServiceMetricRadioConfigParameters",
|
||||||
|
"samplingInterval": 30,
|
||||||
|
"reportingIntervalSeconds": 60,
|
||||||
|
"radioType": "is5GHzU",
|
||||||
|
"serviceMetricDataType": "Client"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"model_type": "ServiceMetricRadioConfigParameters",
|
||||||
|
"samplingInterval": 30,
|
||||||
|
"reportingIntervalSeconds": 60,
|
||||||
|
"radioType": "is5GHzL",
|
||||||
|
"serviceMetricDataType": "Client"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"model_type": "ServiceMetricRadioConfigParameters",
|
||||||
|
"samplingInterval": 30,
|
||||||
|
"reportingIntervalSeconds": 60,
|
||||||
|
"radioType": "is2dot4GHz",
|
||||||
|
"serviceMetricDataType": "Client"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"Channel": [
|
||||||
|
{
|
||||||
|
"model_type": "ServiceMetricSurveyConfigParameters",
|
||||||
|
"samplingInterval": 30,
|
||||||
|
"reportingIntervalSeconds": 60,
|
||||||
|
"channelSurveyType": "ON_CHANNEL",
|
||||||
|
"scanIntervalMillis": 0,
|
||||||
|
"percentUtilizationThreshold": 10,
|
||||||
|
"delayMillisecondsThreshold": 600,
|
||||||
|
"radioType": "is2dot4GHz",
|
||||||
|
"serviceMetricDataType": "Channel",
|
||||||
|
"statsReportFormat": "RAW"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"model_type": "ServiceMetricSurveyConfigParameters",
|
||||||
|
"samplingInterval": 30,
|
||||||
|
"reportingIntervalSeconds": 120,
|
||||||
|
"channelSurveyType": "OFF_CHANNEL",
|
||||||
|
"scanIntervalMillis": 0,
|
||||||
|
"percentUtilizationThreshold": 10,
|
||||||
|
"delayMillisecondsThreshold": 600,
|
||||||
|
"radioType": "is5GHzU",
|
||||||
|
"serviceMetricDataType": "Channel",
|
||||||
|
"statsReportFormat": "RAW"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"model_type": "ServiceMetricSurveyConfigParameters",
|
||||||
|
"samplingInterval": 30,
|
||||||
|
"reportingIntervalSeconds": 60,
|
||||||
|
"channelSurveyType": "ON_CHANNEL",
|
||||||
|
"scanIntervalMillis": 0,
|
||||||
|
"percentUtilizationThreshold": 10,
|
||||||
|
"delayMillisecondsThreshold": 600,
|
||||||
|
"radioType": "is5GHzL",
|
||||||
|
"serviceMetricDataType": "Channel",
|
||||||
|
"statsReportFormat": "RAW"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"model_type": "ServiceMetricSurveyConfigParameters",
|
||||||
|
"samplingInterval": 30,
|
||||||
|
"reportingIntervalSeconds": 60,
|
||||||
|
"channelSurveyType": "ON_CHANNEL",
|
||||||
|
"scanIntervalMillis": 0,
|
||||||
|
"percentUtilizationThreshold": 10,
|
||||||
|
"delayMillisecondsThreshold": 600,
|
||||||
|
"radioType": "is5GHzU",
|
||||||
|
"serviceMetricDataType": "Channel",
|
||||||
|
"statsReportFormat": "RAW"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"model_type": "ServiceMetricSurveyConfigParameters",
|
||||||
|
"samplingInterval": 30,
|
||||||
|
"reportingIntervalSeconds": 120,
|
||||||
|
"channelSurveyType": "OFF_CHANNEL",
|
||||||
|
"scanIntervalMillis": 0,
|
||||||
|
"percentUtilizationThreshold": 10,
|
||||||
|
"delayMillisecondsThreshold": 600,
|
||||||
|
"radioType": "is5GHzL",
|
||||||
|
"serviceMetricDataType": "Channel",
|
||||||
|
"statsReportFormat": "RAW"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"model_type": "ServiceMetricSurveyConfigParameters",
|
||||||
|
"samplingInterval": 30,
|
||||||
|
"reportingIntervalSeconds": 120,
|
||||||
|
"channelSurveyType": "OFF_CHANNEL",
|
||||||
|
"scanIntervalMillis": 0,
|
||||||
|
"percentUtilizationThreshold": 10,
|
||||||
|
"delayMillisecondsThreshold": 600,
|
||||||
|
"radioType": "is2dot4GHz",
|
||||||
|
"serviceMetricDataType": "Channel",
|
||||||
|
"statsReportFormat": "RAW"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"Neighbour": [
|
||||||
|
{
|
||||||
|
"model_type": "ServiceMetricSurveyConfigParameters",
|
||||||
|
"samplingInterval": 30,
|
||||||
|
"reportingIntervalSeconds": 120,
|
||||||
|
"channelSurveyType": "OFF_CHANNEL",
|
||||||
|
"scanIntervalMillis": 0,
|
||||||
|
"percentUtilizationThreshold": 10,
|
||||||
|
"delayMillisecondsThreshold": 600,
|
||||||
|
"radioType": "is5GHzL",
|
||||||
|
"serviceMetricDataType": "Neighbour",
|
||||||
|
"statsReportFormat": "RAW"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"model_type": "ServiceMetricSurveyConfigParameters",
|
||||||
|
"samplingInterval": 30,
|
||||||
|
"reportingIntervalSeconds": 120,
|
||||||
|
"channelSurveyType": "OFF_CHANNEL",
|
||||||
|
"scanIntervalMillis": 0,
|
||||||
|
"percentUtilizationThreshold": 10,
|
||||||
|
"delayMillisecondsThreshold": 600,
|
||||||
|
"radioType": "is5GHzU",
|
||||||
|
"serviceMetricDataType": "Neighbour",
|
||||||
|
"statsReportFormat": "RAW"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"model_type": "ServiceMetricSurveyConfigParameters",
|
||||||
|
"samplingInterval": 30,
|
||||||
|
"reportingIntervalSeconds": 60,
|
||||||
|
"channelSurveyType": "ON_CHANNEL",
|
||||||
|
"scanIntervalMillis": 0,
|
||||||
|
"percentUtilizationThreshold": 10,
|
||||||
|
"delayMillisecondsThreshold": 600,
|
||||||
|
"radioType": "is5GHzL",
|
||||||
|
"serviceMetricDataType": "Neighbour",
|
||||||
|
"statsReportFormat": "RAW"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"model_type": "ServiceMetricSurveyConfigParameters",
|
||||||
|
"samplingInterval": 30,
|
||||||
|
"reportingIntervalSeconds": 60,
|
||||||
|
"channelSurveyType": "ON_CHANNEL",
|
||||||
|
"scanIntervalMillis": 0,
|
||||||
|
"percentUtilizationThreshold": 10,
|
||||||
|
"delayMillisecondsThreshold": 600,
|
||||||
|
"radioType": "is2dot4GHz",
|
||||||
|
"serviceMetricDataType": "Neighbour",
|
||||||
|
"statsReportFormat": "RAW"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"model_type": "ServiceMetricSurveyConfigParameters",
|
||||||
|
"samplingInterval": 30,
|
||||||
|
"reportingIntervalSeconds": 120,
|
||||||
|
"channelSurveyType": "OFF_CHANNEL",
|
||||||
|
"scanIntervalMillis": 0,
|
||||||
|
"percentUtilizationThreshold": 10,
|
||||||
|
"delayMillisecondsThreshold": 600,
|
||||||
|
"radioType": "is2dot4GHz",
|
||||||
|
"serviceMetricDataType": "Neighbour",
|
||||||
|
"statsReportFormat": "RAW"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"model_type": "ServiceMetricSurveyConfigParameters",
|
||||||
|
"samplingInterval": 30,
|
||||||
|
"reportingIntervalSeconds": 60,
|
||||||
|
"channelSurveyType": "ON_CHANNEL",
|
||||||
|
"scanIntervalMillis": 0,
|
||||||
|
"percentUtilizationThreshold": 10,
|
||||||
|
"delayMillisecondsThreshold": 600,
|
||||||
|
"radioType": "is5GHzU",
|
||||||
|
"serviceMetricDataType": "Neighbour",
|
||||||
|
"statsReportFormat": "RAW"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"profileType": "service_metrics_collection_config"
|
||||||
|
},
|
||||||
|
"createdTimestamp": 1605711195528,
|
||||||
|
"lastModifiedTimestamp": 1605711195528,
|
||||||
|
"childProfileIds": [
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
@@ -0,0 +1,37 @@
|
|||||||
|
[
|
||||||
|
{
|
||||||
|
"model_type": "Profile",
|
||||||
|
"id": 17,
|
||||||
|
"customerId": 2,
|
||||||
|
"profileType": "passpoint_operator",
|
||||||
|
"name": "TipWlan-Hotspot20-Operator",
|
||||||
|
"details": {
|
||||||
|
"model_type": "PasspointOperatorProfile",
|
||||||
|
"serverOnlyAuthenticatedL2EncryptionNetwork": false,
|
||||||
|
"x509CertificateLocation": "/etc/ca.pem",
|
||||||
|
"operatorFriendlyName": [
|
||||||
|
{
|
||||||
|
"model_type": "PasspointDuple",
|
||||||
|
"locale": "en_CA",
|
||||||
|
"dupleIso3Language": "eng",
|
||||||
|
"dupleName": "Default friendly passpoint_operator name",
|
||||||
|
"defaultDupleSeparator": ":",
|
||||||
|
"asDuple": "eng:Default friendly passpoint_operator name"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"model_type": "PasspointDuple",
|
||||||
|
"locale": "fr_CA",
|
||||||
|
"dupleIso3Language": "fra",
|
||||||
|
"dupleName": "Nom de l'opérateur convivial par défaut",
|
||||||
|
"defaultDupleSeparator": ":",
|
||||||
|
"asDuple": "fra:Nom de l'opérateur convivial par défaut"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"profileType": "passpoint_operator"
|
||||||
|
},
|
||||||
|
"createdTimestamp": 1605711164952,
|
||||||
|
"lastModifiedTimestamp": 1605711164952,
|
||||||
|
"childProfileIds": [
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
@@ -1,10 +1,10 @@
|
|||||||
[
|
[
|
||||||
{
|
{
|
||||||
"model_type": "Profile",
|
"model_type": "Profile",
|
||||||
"id": 1,
|
"id": 1,
|
||||||
"customerId": 2,
|
"customerId": 2,
|
||||||
"profileType": "radius",
|
"profileType": "radius",
|
||||||
"name": "RadiusProfileOttawa",
|
"name": "Radius-Profile",
|
||||||
"details": {
|
"details": {
|
||||||
"model_type": "RadiusProfile",
|
"model_type": "RadiusProfile",
|
||||||
"subnetConfiguration": null,
|
"subnetConfiguration": null,
|
||||||
@@ -12,10 +12,10 @@
|
|||||||
"Ottawa": {
|
"Ottawa": {
|
||||||
"model_type": "RadiusServiceRegion",
|
"model_type": "RadiusServiceRegion",
|
||||||
"serverMap": {
|
"serverMap": {
|
||||||
"RadiusProfileOttawa": [
|
"Radius-Profile": [
|
||||||
{
|
{
|
||||||
"model_type": "RadiusServer",
|
"model_type": "RadiusServer",
|
||||||
"ipAddress": "localhost",
|
"ipAddress": "192.168.0.1",
|
||||||
"secret": "testing123",
|
"secret": "testing123",
|
||||||
"authPort": 1812,
|
"authPort": 1812,
|
||||||
"timeout": null
|
"timeout": null
|
||||||
@@ -27,8 +27,8 @@
|
|||||||
},
|
},
|
||||||
"profileType": "radius"
|
"profileType": "radius"
|
||||||
},
|
},
|
||||||
"createdTimestamp": 1591653174195,
|
"createdTimestamp": 1601961451668,
|
||||||
"lastModifiedTimestamp": 1591653174195,
|
"lastModifiedTimestamp": 1601961451668,
|
||||||
"childProfileIds": []
|
"childProfileIds": []
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
@@ -0,0 +1,205 @@
|
|||||||
|
{
|
||||||
|
"model_type": "Profile",
|
||||||
|
"id": 21,
|
||||||
|
"customerId": 2,
|
||||||
|
"profileType": "rf",
|
||||||
|
"name": "TipWlan-rf-passpoint",
|
||||||
|
"details": {
|
||||||
|
"model_type": "RfConfiguration",
|
||||||
|
"rfConfigMap": {
|
||||||
|
"is5GHz": {
|
||||||
|
"model_type": "RfElementConfiguration",
|
||||||
|
"radioType": "is5GHz",
|
||||||
|
"radioMode": "modeAC",
|
||||||
|
"rf": "TipWlan-rf-passpoint",
|
||||||
|
"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-passpoint",
|
||||||
|
"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-passpoint",
|
||||||
|
"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-passpoint",
|
||||||
|
"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": 1605711191976,
|
||||||
|
"lastModifiedTimestamp": 1605711191976,
|
||||||
|
"childProfileIds": [
|
||||||
|
]
|
||||||
|
}
|
||||||
@@ -1,149 +1,31 @@
|
|||||||
[
|
[
|
||||||
{
|
{
|
||||||
"model_type": "Profile",
|
"model_type": "Profile",
|
||||||
"id": 6,
|
"id": 15,
|
||||||
"customerId": 2,
|
"customerId": 2,
|
||||||
"profileType": "ssid",
|
"profileType": "ssid",
|
||||||
"name": "DefaultSsid-2g",
|
"name": "TipWlan-cloud-hotspot-access",
|
||||||
"details": {
|
"details": {
|
||||||
"model_type": "SsidConfiguration",
|
"model_type": "SsidConfiguration",
|
||||||
"ssid": "Default-SSID-2g",
|
"ssid": "TipWlan-cloud-hotspot-access",
|
||||||
"appliedRadios": [
|
|
||||||
"is2dot4GHz"
|
|
||||||
],
|
|
||||||
"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": 1591653239983,
|
|
||||||
"lastModifiedTimestamp": 1591653239983,
|
|
||||||
"childProfileIds": []
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"model_type": "Profile",
|
|
||||||
"id": 7,
|
|
||||||
"customerId": 2,
|
|
||||||
"profileType": "ssid",
|
|
||||||
"name": "DefaultSsid-5gl",
|
|
||||||
"details": {
|
|
||||||
"model_type": "SsidConfiguration",
|
|
||||||
"ssid": "Default-SSID-5gl",
|
|
||||||
"appliedRadios": [
|
|
||||||
"is5GHzL"
|
|
||||||
],
|
|
||||||
"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
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"bonjourGatewayProfileId": null,
|
|
||||||
"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": [
|
"appliedRadios": [
|
||||||
|
"is5GHzL",
|
||||||
"is5GHzU"
|
"is5GHzU"
|
||||||
],
|
],
|
||||||
"ssidAdminState": "enabled",
|
"ssidAdminState": "enabled",
|
||||||
"secureMode": "wpa2PSK",
|
"secureMode": "wpa2PSK",
|
||||||
"vlanId": 1,
|
"vlanId": 1,
|
||||||
"keyStr": "12345678",
|
"keyStr": "testing123",
|
||||||
"broadcastSsid": "enabled",
|
"broadcastSsid": "enabled",
|
||||||
"keyRefresh": 0,
|
"keyRefresh": 0,
|
||||||
"noLocalSubnets": false,
|
"noLocalSubnets": false,
|
||||||
"radiusServiceName": null,
|
"radiusServiceName": null,
|
||||||
|
"radiusAccountingServiceName": null,
|
||||||
"captivePortalId": null,
|
"captivePortalId": null,
|
||||||
"bandwidthLimitDown": 0,
|
"bandwidthLimitDown": 0,
|
||||||
"bandwidthLimitUp": 0,
|
"bandwidthLimitUp": 0,
|
||||||
|
"clientBandwidthLimitDown": 0,
|
||||||
|
"clientBandwidthLimitUp": 0,
|
||||||
"videoTrafficOnly": false,
|
"videoTrafficOnly": false,
|
||||||
"radioBasedConfigs": {
|
"radioBasedConfigs": {
|
||||||
"is5GHz": {
|
"is5GHz": {
|
||||||
@@ -177,8 +59,76 @@
|
|||||||
"forwardMode": null,
|
"forwardMode": null,
|
||||||
"profileType": "ssid"
|
"profileType": "ssid"
|
||||||
},
|
},
|
||||||
"createdTimestamp": 1591654301763,
|
"createdTimestamp": 1605711164949,
|
||||||
"lastModifiedTimestamp": 1591654301763,
|
"lastModifiedTimestamp": 1605711223372,
|
||||||
"childProfileIds": []
|
"childProfileIds": [
|
||||||
}
|
24
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"model_type": "Profile",
|
||||||
|
"id": 16,
|
||||||
|
"customerId": 2,
|
||||||
|
"profileType": "ssid",
|
||||||
|
"name": "TipWlan-cloud-hotspot-osu",
|
||||||
|
"details": {
|
||||||
|
"model_type": "SsidConfiguration",
|
||||||
|
"ssid": "TipWlan-cloud-hotspot-osu",
|
||||||
|
"appliedRadios": [
|
||||||
|
"is2dot4GHz"
|
||||||
|
],
|
||||||
|
"ssidAdminState": "enabled",
|
||||||
|
"secureMode": "open",
|
||||||
|
"vlanId": 1,
|
||||||
|
"keyStr": null,
|
||||||
|
"broadcastSsid": "enabled",
|
||||||
|
"keyRefresh": 0,
|
||||||
|
"noLocalSubnets": false,
|
||||||
|
"radiusServiceName": null,
|
||||||
|
"radiusAccountingServiceName": null,
|
||||||
|
"captivePortalId": null,
|
||||||
|
"bandwidthLimitDown": 0,
|
||||||
|
"bandwidthLimitUp": 0,
|
||||||
|
"clientBandwidthLimitDown": 0,
|
||||||
|
"clientBandwidthLimitUp": 0,
|
||||||
|
"videoTrafficOnly": false,
|
||||||
|
"radioBasedConfigs": {
|
||||||
|
"is5GHz": {
|
||||||
|
"model_type": "RadioBasedSsidConfiguration",
|
||||||
|
"enable80211r": null,
|
||||||
|
"enable80211k": null,
|
||||||
|
"enable80211v": null
|
||||||
|
},
|
||||||
|
"is2dot4GHz": {
|
||||||
|
"model_type": "RadioBasedSsidConfiguration",
|
||||||
|
"enable80211r": null,
|
||||||
|
"enable80211k": null,
|
||||||
|
"enable80211v": null
|
||||||
|
},
|
||||||
|
"is5GHzU": {
|
||||||
|
"model_type": "RadioBasedSsidConfiguration",
|
||||||
|
"enable80211r": null,
|
||||||
|
"enable80211k": null,
|
||||||
|
"enable80211v": null
|
||||||
|
},
|
||||||
|
"is5GHzL": {
|
||||||
|
"model_type": "RadioBasedSsidConfiguration",
|
||||||
|
"enable80211r": null,
|
||||||
|
"enable80211k": null,
|
||||||
|
"enable80211v": null
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"bonjourGatewayProfileId": null,
|
||||||
|
"enable80211w": null,
|
||||||
|
"wepConfig": null,
|
||||||
|
"forwardMode": null,
|
||||||
|
"profileType": "ssid"
|
||||||
|
},
|
||||||
|
"createdTimestamp": 1605711164950,
|
||||||
|
"lastModifiedTimestamp": 1605711171732,
|
||||||
|
"childProfileIds": [
|
||||||
|
19,
|
||||||
|
20
|
||||||
|
]
|
||||||
|
}
|
||||||
]
|
]
|
||||||
@@ -0,0 +1,43 @@
|
|||||||
|
[
|
||||||
|
{
|
||||||
|
"model_type": "Profile",
|
||||||
|
"id": 18,
|
||||||
|
"customerId": 2,
|
||||||
|
"profileType": "passpoint_venue",
|
||||||
|
"name": "TipWlan-Hotspot20-Venue",
|
||||||
|
"details": {
|
||||||
|
"model_type": "PasspointVenueProfile",
|
||||||
|
"venueNameSet": [
|
||||||
|
{
|
||||||
|
"model_type": "PasspointVenueName",
|
||||||
|
"locale": "fr_CA",
|
||||||
|
"dupleIso3Language": "fra",
|
||||||
|
"dupleName": "Exemple de lieu",
|
||||||
|
"defaultDupleSeparator": ":",
|
||||||
|
"venueUrl": "http://www.example.com/info-fra",
|
||||||
|
"asDuple": "fra:Exemple de lieu"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"model_type": "PasspointVenueName",
|
||||||
|
"locale": "en_CA",
|
||||||
|
"dupleIso3Language": "eng",
|
||||||
|
"dupleName": "Example passpoint_venue",
|
||||||
|
"defaultDupleSeparator": ":",
|
||||||
|
"venueUrl": "http://www.example.com/info-eng",
|
||||||
|
"asDuple": "eng:Example passpoint_venue"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"venueTypeAssignment": {
|
||||||
|
"model_type": "ProfileVenueTypeAssignment",
|
||||||
|
"venueDescription": "Research and Development Facility",
|
||||||
|
"venueGroupId": 2,
|
||||||
|
"venueTypeId": 8
|
||||||
|
},
|
||||||
|
"profileType": "passpoint_venue"
|
||||||
|
},
|
||||||
|
"createdTimestamp": 1605711164956,
|
||||||
|
"lastModifiedTimestamp": 1605711164956,
|
||||||
|
"childProfileIds": [
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
@@ -57,7 +57,6 @@
|
|||||||
<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"/>
|
||||||
|
|||||||
@@ -10,33 +10,44 @@ 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+=" -Dconnectus.mqttBroker.password=admin"
|
CLIENT_MQTT_SSL_PROPS+=" -Dtip.wlan.mqttBroker.password=admin"
|
||||||
|
|
||||||
OVSDB_PROPS=" "
|
OVSDB_PROPS=" "
|
||||||
OVSDB_PROPS+=" -Dconnectus.ovsdb.managerAddr=opensync-controller"
|
OVSDB_PROPS+=" -Dtip.wlan.ovsdb.managerAddr=opensync-controller"
|
||||||
OVSDB_PROPS+=" -Dconnectus.ovsdb.listenPort=6640 "
|
OVSDB_PROPS+=" -Dtip.wlan.ovsdb.listenPort=6640 "
|
||||||
OVSDB_PROPS+=" -Dconnectus.ovsdb.redirector.listenPort=6643"
|
OVSDB_PROPS+=" -Dtip.wlan.ovsdb.redirector.listenPort=6643"
|
||||||
OVSDB_PROPS+=" -Dconnectus.ovsdb.timeoutSec=30"
|
OVSDB_PROPS+=" -Dtip.wlan.ovsdb.timeoutSec=30"
|
||||||
OVSDB_PROPS+=" -Dconnectus.ovsdb.trustStore=/opt/tip-wlan/certs/truststore.jks"
|
OVSDB_PROPS+=" -Dtip.wlan.ovsdb.trustStore=/opt/tip-wlan/certs/truststore.jks"
|
||||||
OVSDB_PROPS+=" -Dconnectus.ovsdb.keyStore=/opt/tip-wlan/certs/server.pkcs12"
|
OVSDB_PROPS+=" -Dtip.wlan.ovsdb.keyStore=/opt/tip-wlan/certs/server.pkcs12"
|
||||||
OVSDB_PROPS+=" -Dconnectus.ovsdb.customerEquipmentFileName=$OVSDB_EQUIPMENT_CONFIG_FILE"
|
OVSDB_PROPS+=" -Dtip.wlan.ovsdb.customerEquipmentFileName=$OVSDB_EQUIPMENT_CONFIG_FILE"
|
||||||
OVSDB_PROPS+=" -Dconnectus.ovsdb.apProfileFileName=$OVSDB_APPROFILE_CONFIG_FILE"
|
OVSDB_PROPS+=" -Dtip.wlan.ovsdb.apProfileFileName=$OVSDB_APPROFILE_CONFIG_FILE"
|
||||||
OVSDB_PROPS+=" -Dconnectus.ovsdb.ssidProfileFileName=$OVSDB_SSIDPROFILE_CONFIG_FILE"
|
OVSDB_PROPS+=" -Dtip.wlan.ovsdb.metricsProfileFileName=$OVSDB_METRICSPROFILE_CONFIG_FILE"
|
||||||
OVSDB_PROPS+=" -Dconnectus.ovsdb.radiusProfileFileName=$OVSDB_RADIUSPROFILE_CONFIG_FILE"
|
OVSDB_PROPS+=" -Dtip.wlan.ovsdb.hotspot20ProfileFileName=$OVSDB_HOTSPOT20PROFILE_CONFIG_FILE"
|
||||||
OVSDB_PROPS+=" -Dconnectus.ovsdb.locationFileName=$OVSDB_LOCATION_CONFIG_FILE"
|
OVSDB_PROPS+=" -Dtip.wlan.ovsdb.operatorProfileFileName=$OVSDB_OPERATORPROFILE_CONFIG_FILE"
|
||||||
OVSDB_PROPS+=" -Dconnectus.ovsdb.wifi-iface.default_bridge=$OVSDB_IF_DEFAULT_BRIDGE"
|
OVSDB_PROPS+=" -Dtip.wlan.ovsdb.venueProfileFileName=$OVSDB_VENUEPROFILE_CONFIG_FILE"
|
||||||
OVSDB_PROPS+=" -Dconnectus.ovsdb.wifi-iface.default_radio0=$OVSDB_IF_DEFAULT_RADIO_0"
|
OVSDB_PROPS+=" -Dtip.wlan.ovsdb.idProviderProfileFileName=$OVSDB_IDPROVIDERPROFILE_CONFIG_FILE"
|
||||||
OVSDB_PROPS+=" -Dconnectus.ovsdb.wifi-iface.default_radio1=$OVSDB_IF_DEFAULT_RADIO_1"
|
OVSDB_PROPS+=" -Dtip.wlan.ovsdb.rfProfileFileName=$OVSDB_RFPROFILE_CONFIG_FILE"
|
||||||
OVSDB_PROPS+=" -Dconnectus.ovsdb.wifi-iface.default_radio2=$OVSDB_IF_DEFAULT_RADIO_2"
|
OVSDB_PROPS+=" -Dtip.wlan.ovsdb.ssidProfileFileName=$OVSDB_SSIDPROFILE_CONFIG_FILE"
|
||||||
OVSDB_PROPS+=" -Dconnectus.ovsdb.wifi-device.radio0=$OVSDB_DEVICE_RADIO_0"
|
OVSDB_PROPS+=" -Dtip.wlan.preventClientCnAlteration=$OVSDB_PREVENT_CLIENTCN_ALTERATION"
|
||||||
OVSDB_PROPS+=" -Dconnectus.ovsdb.wifi-device.radio1=$OVSDB_DEVICE_RADIO_1"
|
OVSDB_PROPS+=" -Dtip.wlan.ovsdb.radiusProfileFileName=$OVSDB_RADIUSPROFILE_CONFIG_FILE"
|
||||||
OVSDB_PROPS+=" -Dconnectus.ovsdb.wifi-device.radio2=$OVSDB_DEVICE_RADIO_2"
|
OVSDB_PROPS+=" -Dtip.wlan.ovsdb.captiveProfileFileName=$OVSDB_CAPTIVEPROFILE_CONFIG_FILE"
|
||||||
|
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+=" -Dconnectus.mqttBroker.address=tip-wlan-opensync-mqtt-broker"
|
MQTT_PROPS+=" -Dtip.wlan.mqttBroker.address.internal=tip-wlan-opensync-mqtt-broker-internal"
|
||||||
MQTT_PROPS+=" -Dconnectus.mqttBroker.listenPort=1883"
|
MQTT_PROPS+=" -Dtip.wlan.mqttBroker.address.external=tip-wlan-opensync-mqtt-broker-external"
|
||||||
|
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"
|
||||||
|
|
||||||
|
|||||||
@@ -15,11 +15,6 @@
|
|||||||
</properties>
|
</properties>
|
||||||
|
|
||||||
<dependencies>
|
<dependencies>
|
||||||
<dependency>
|
|
||||||
<groupId>com.telecominfraproject.wlan</groupId>
|
|
||||||
<artifactId>opensync-gateway</artifactId>
|
|
||||||
<version>${tip-wlan-cloud.release.version}</version>
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.telecominfraproject.wlan</groupId>
|
<groupId>com.telecominfraproject.wlan</groupId>
|
||||||
<artifactId>opensync-ext-static</artifactId>
|
<artifactId>opensync-ext-static</artifactId>
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user