mirror of
				https://github.com/Telecominfraproject/wlan-cloud-opensync-controller.git
				synced 2025-10-31 18:47:57 +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. | ||||
|  | ||||
| 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,28 +13,29 @@ | ||||
| 	<name>opensync-ext-cloud</name> | ||||
| 	<description>Configuration interface that provides config from the cloud services.</description> | ||||
| 	<dependencies> | ||||
| 		<dependency> | ||||
| 			<groupId>com.telecominfraproject.wlan</groupId> | ||||
| 			<artifactId>opensync-ext-interface</artifactId> | ||||
| 			<version>${tip-wlan-cloud.release.version}</version> | ||||
| 		</dependency> | ||||
| <!-- 		<dependency> --> | ||||
| <!-- 			<groupId>com.telecominfraproject.wlan</groupId> --> | ||||
| <!-- 			<artifactId>opensync-ext-interface</artifactId> --> | ||||
| <!-- 			<version>${tip-wlan-cloud.release.version}</version> --> | ||||
| <!-- 		</dependency> --> | ||||
| 		<dependency> | ||||
| 			<groupId>com.telecominfraproject.wlan</groupId> | ||||
| 			<artifactId>opensync-gateway</artifactId> | ||||
| 			<version>${tip-wlan-cloud.release.version}</version> | ||||
| 		</dependency> | ||||
|  	  <dependency> | ||||
|         <artifactId>base-container</artifactId> | ||||
|         <groupId>com.telecominfraproject.wlan</groupId> | ||||
|         <version>${tip-wlan-cloud.release.version}</version> | ||||
|       </dependency> | ||||
|  	  | ||||
|         <dependency> | ||||
|             <artifactId>base-client</artifactId> | ||||
|             <groupId>com.telecominfraproject.wlan</groupId> | ||||
|             <version>${tip-wlan-cloud.release.version}</version> | ||||
|         </dependency> | ||||
|  | ||||
|       <dependency> | ||||
|         <artifactId>equipment-gateway-models</artifactId> | ||||
|         <groupId>com.telecominfraproject.wlan</groupId> | ||||
|         <version>${tip-wlan-cloud.release.version}</version> | ||||
|       </dependency> | ||||
|  | ||||
|       | ||||
|       <dependency> | ||||
|         <artifactId>customer-service-interface</artifactId> | ||||
|         <groupId>com.telecominfraproject.wlan</groupId> | ||||
|   | ||||
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							| @@ -2,8 +2,10 @@ 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.event.ContextStartedEvent; | ||||
| import org.springframework.stereotype.Component; | ||||
|  | ||||
| /** | ||||
|  * 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 | ||||
|  *  | ||||
|  */ | ||||
| @Component | ||||
| public class OpensyncGatewayControllerStartListener implements ApplicationListener<ContextStartedEvent> { | ||||
|  | ||||
|     private static final Logger LOG = LoggerFactory.getLogger(OpensyncGatewayControllerStartListener.class); | ||||
|  | ||||
|     OpensyncCloudGatewayController controller; | ||||
|  | ||||
|     public OpensyncGatewayControllerStartListener(OpensyncCloudGatewayController controller) { | ||||
|         this.controller = controller; | ||||
|     } | ||||
|     @Autowired | ||||
|     private OpensyncCloudGatewayController controller; | ||||
|  | ||||
|     @Override | ||||
|     public void onApplicationEvent(ContextStartedEvent event) { | ||||
|   | ||||
| @@ -2,8 +2,10 @@ 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.event.ContextClosedEvent; | ||||
| import org.springframework.stereotype.Component; | ||||
|  | ||||
| /** | ||||
|  * 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 | ||||
|  * | ||||
|  */ | ||||
| @Component | ||||
| public class OpensyncGatewayControllerStopListener implements ApplicationListener<ContextClosedEvent> { | ||||
| 	OpensyncCloudGatewayController controller; | ||||
|  | ||||
| 	private static final Logger LOG = LoggerFactory.getLogger(OpensyncGatewayControllerStopListener.class); | ||||
|  | ||||
| 	public OpensyncGatewayControllerStopListener(OpensyncCloudGatewayController controller) { | ||||
| 		this.controller = controller; | ||||
| 	} | ||||
| 	@Autowired | ||||
| 	private OpensyncCloudGatewayController controller; | ||||
|  | ||||
| 	@Override | ||||
| 	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> | ||||
| 			<version>${tip-wlan-cloud.release.version}</version> | ||||
| 		</dependency> | ||||
| 		<dependency> | ||||
| 			<artifactId>customer-models</artifactId> | ||||
| 			<groupId>com.telecominfraproject.wlan</groupId> | ||||
| 			<version>${tip-wlan-cloud.release.version}</version> | ||||
| 		</dependency> | ||||
| 		 | ||||
| 		<dependency> | ||||
| 			<artifactId>equipment-models</artifactId> | ||||
| 			<groupId>com.telecominfraproject.wlan</groupId> | ||||
| @@ -47,11 +43,7 @@ | ||||
| 			<groupId>com.telecominfraproject.wlan</groupId> | ||||
| 			<version>${tip-wlan-cloud.release.version}</version> | ||||
| 		</dependency> | ||||
| 		<dependency> | ||||
| 			<artifactId>client-models</artifactId> | ||||
| 			<groupId>com.telecominfraproject.wlan</groupId> | ||||
| 			<version>${tip-wlan-cloud.release.version}</version> | ||||
| 		</dependency> | ||||
| 		 | ||||
|  | ||||
| 		<dependency> | ||||
| 			<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; | ||||
|  | ||||
| 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.OpensyncAPConfig; | ||||
| @@ -33,6 +34,8 @@ public interface OpensyncExternalIntegrationInterface { | ||||
|  | ||||
|     void wifiInetStateDbTableUpdate(List<OpensyncAPInetState> inetStateTables, String apId); | ||||
|  | ||||
|     void wifiInetStateDbTableDelete(List<OpensyncAPInetState> inetStateTables, String apId); | ||||
|      | ||||
|     void processMqttMessage(String topic, Report report); | ||||
|  | ||||
|     void processMqttMessage(String topic, FlowReport flowReport); | ||||
| @@ -44,4 +47,8 @@ public interface OpensyncExternalIntegrationInterface { | ||||
|     void wifiAssociatedClientsDbTableDelete(String deletedClientMac, 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.Map; | ||||
| import java.util.Objects; | ||||
|  | ||||
| public class ConnectNodeInfo implements Cloneable{ | ||||
|     public Map<String,String> mqttSettings; | ||||
| public class ConnectNodeInfo implements Cloneable { | ||||
|  | ||||
|     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 managerAddr; | ||||
|     public String skuNumber; | ||||
| @@ -15,29 +19,73 @@ public class ConnectNodeInfo implements Cloneable{ | ||||
|     public String firmwareVersion; | ||||
|     public String revision; | ||||
|     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 | ||||
|     public ConnectNodeInfo clone() { | ||||
|         try { | ||||
|             ConnectNodeInfo ret = (ConnectNodeInfo)super.clone(); | ||||
|             if (this.mqttSettings!=null) { | ||||
|             ConnectNodeInfo ret = (ConnectNodeInfo) super.clone(); | ||||
|             if (this.mqttSettings != null) { | ||||
|                 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; | ||||
|         }catch(CloneNotSupportedException e) {                 | ||||
|         } catch (CloneNotSupportedException 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 | ||||
|     public String toString() { | ||||
|         return String.format( | ||||
|                 "ConnectNodeInfo [mqttSettings=%s, redirectorAddr=%s, managerAddr=%s, skuNumber=%s, serialNumber=%s, " | ||||
|                 + "macAddress=%s, ipV4Address=%s, platformVersion=%s, firmwareVersion=%s, revision=%s, model=%s]", | ||||
|                 mqttSettings, redirectorAddr, managerAddr, skuNumber, serialNumber, macAddress, ipV4Address, | ||||
|                 platformVersion, firmwareVersion, revision, model); | ||||
|         return "ConnectNodeInfo [mqttSettings=" + mqttSettings + ", versionMatrix=" + versionMatrix | ||||
|                 + ", wifiRadioStates=" + wifiRadioStates + ", redirectorAddr=" + redirectorAddr + ", managerAddr=" | ||||
|                 + managerAddr + ", skuNumber=" + skuNumber + ", serialNumber=" + serialNumber + ", macAddress=" | ||||
|                 + macAddress + ", ipV4Address=" + ipV4Address + ", platformVersion=" + platformVersion | ||||
|                 + ", firmwareVersion=" + firmwareVersion + ", revision=" + revision + ", model=" + model + ", ifName=" | ||||
|                 + ifName + ", ifType=" + ifType + ", country=" + country + ", lanIpV4Address=" + lanIpV4Address | ||||
|                 + ", lanIfName=" + lanIfName + ", lanIfType=" + lanIfType + ", lanMacAddress=" + lanMacAddress + "]"; | ||||
|     } | ||||
|  | ||||
| } | ||||
|  | ||||
| } | ||||
|   | ||||
| @@ -3,10 +3,12 @@ package com.telecominfraproject.wlan.opensync.external.integration.models; | ||||
| import java.util.ArrayList; | ||||
| import java.util.HashSet; | ||||
| import java.util.List; | ||||
| import java.util.Objects; | ||||
| import java.util.Set; | ||||
|  | ||||
| import com.telecominfraproject.wlan.core.model.entity.CountryCode; | ||||
| import com.telecominfraproject.wlan.core.model.equipment.EquipmentType; | ||||
| import com.telecominfraproject.wlan.core.model.equipment.MacAddress; | ||||
| import com.telecominfraproject.wlan.core.model.equipment.RadioType; | ||||
| import com.telecominfraproject.wlan.core.model.json.BaseJsonModel; | ||||
| import com.telecominfraproject.wlan.equipment.models.ApElementConfiguration; | ||||
| @@ -24,186 +26,291 @@ import com.telecominfraproject.wlan.routing.models.EquipmentRoutingRecord; | ||||
|  | ||||
| public class OpensyncAPConfig extends BaseJsonModel { | ||||
|  | ||||
| 	private static final long serialVersionUID = 3917975477206236668L; | ||||
|     private static final long serialVersionUID = 3917975477206236668L; | ||||
|  | ||||
| 	private Equipment customerEquipment; | ||||
| 	private Profile apProfile; | ||||
| 	private List<Profile> ssidProfile; | ||||
| 	private List<Profile> radiusProfiles; | ||||
| 	private Location equipmentLocation; | ||||
| 	private EquipmentRoutingRecord equipmentRouting; | ||||
| 	private EquipmentGatewayRecord equipmentGateway; | ||||
|     private Equipment customerEquipment; | ||||
|     private OpensyncAPHotspot20Config hotspotConfig; | ||||
|     private Profile apProfile; | ||||
|     private Profile rfProfile; | ||||
|     private List<Profile> ssidProfile; | ||||
|     private List<Profile> metricsProfile; | ||||
|     private List<Profile> radiusProfiles; | ||||
|     private Location equipmentLocation; | ||||
|     private EquipmentRoutingRecord equipmentRouting; | ||||
|     private EquipmentGatewayRecord equipmentGateway; | ||||
|     private List<Profile> captiveProfiles; | ||||
|     private List<Profile> bonjourGatewayProfiles; | ||||
|     private List<MacAddress> blockedClients; | ||||
|  | ||||
| 	// Handle Legacy Config Support | ||||
| 	public void setRadioConfig(OpensyncAPRadioConfig radioConfig) { | ||||
|     // Handle Legacy Config Support | ||||
|     public void setRadioConfig(OpensyncAPRadioConfig radioConfig) { | ||||
|  | ||||
| 		if (customerEquipment == null) { | ||||
| 			customerEquipment = new Equipment(); | ||||
| 			customerEquipment.setId(0); | ||||
| 			customerEquipment.setEquipmentType(EquipmentType.AP); | ||||
| 			customerEquipment.setDetails(ApElementConfiguration.createWithDefaults()); | ||||
| 			ApElementConfiguration apConfig = (ApElementConfiguration) customerEquipment.getDetails(); | ||||
| 			apConfig.getRadioMap().get(RadioType.is2dot4GHz).setChannelNumber(radioConfig.getRadioChannel24G()); | ||||
| 			apConfig.getRadioMap().get(RadioType.is5GHzL).setChannelNumber(radioConfig.getRadioChannel5LG()); | ||||
| 			apConfig.getRadioMap().get(RadioType.is5GHzU).setChannelNumber(radioConfig.getRadioChannel5HG()); | ||||
| 			customerEquipment.setDetails(apConfig); | ||||
| 		} | ||||
|         if (customerEquipment == null) { | ||||
|             customerEquipment = new Equipment(); | ||||
|             customerEquipment.setId(0); | ||||
|             customerEquipment.setEquipmentType(EquipmentType.AP); | ||||
|             customerEquipment.setDetails(ApElementConfiguration.createWithDefaults()); | ||||
|             ApElementConfiguration apConfig = (ApElementConfiguration) customerEquipment.getDetails(); | ||||
|             apConfig.getRadioMap().get(RadioType.is2dot4GHz).setChannelNumber(radioConfig.getRadioChannel24G()); | ||||
|             apConfig.getRadioMap().get(RadioType.is5GHzL).setChannelNumber(radioConfig.getRadioChannel5LG()); | ||||
|             apConfig.getRadioMap().get(RadioType.is5GHzU).setChannelNumber(radioConfig.getRadioChannel5HG()); | ||||
|             customerEquipment.setDetails(apConfig); | ||||
|         } | ||||
|  | ||||
| 		if (equipmentLocation == null) { | ||||
| 			equipmentLocation = new Location(); | ||||
| 			equipmentLocation.setId(1); | ||||
| 			equipmentLocation.setDetails(LocationDetails.createWithDefaults()); | ||||
| 			((LocationDetails) equipmentLocation.getDetails()) | ||||
| 					.setCountryCode(CountryCode.getByName(radioConfig.getCountry().toLowerCase())); | ||||
| 			customerEquipment.setLocationId(equipmentLocation.getId()); | ||||
| 		} | ||||
|         if (equipmentLocation == null) { | ||||
|             equipmentLocation = new Location(); | ||||
|             equipmentLocation.setId(1); | ||||
|             equipmentLocation.setDetails(LocationDetails.createWithDefaults()); | ||||
|             ((LocationDetails) equipmentLocation.getDetails()) | ||||
|                     .setCountryCode(CountryCode.getByName(radioConfig.getCountry().toLowerCase())); | ||||
|             customerEquipment.setLocationId(equipmentLocation.getId()); | ||||
|         } | ||||
|  | ||||
| 	} | ||||
|     } | ||||
|  | ||||
| 	// Handle Legacy Config Support | ||||
| 	public void setSsidConfigs(List<OpensyncAPSsidConfig> ssidConfigs) { | ||||
|     // Handle Legacy Config Support | ||||
|     public void setSsidConfigs(List<OpensyncAPSsidConfig> ssidConfigs) { | ||||
|  | ||||
| 		if (apProfile == null) { | ||||
| 			apProfile = new Profile(); | ||||
| 			apProfile.setName("GeneratedApProfile"); | ||||
| 			apProfile.setId(2); | ||||
| 			apProfile.setDetails(ApNetworkConfiguration.createWithDefaults()); | ||||
| 		} | ||||
|         if (apProfile == null) { | ||||
|             apProfile = new Profile(); | ||||
|             apProfile.setName("GeneratedApProfile"); | ||||
|             apProfile.setId(2); | ||||
|             apProfile.setDetails(ApNetworkConfiguration.createWithDefaults()); | ||||
|         } | ||||
|  | ||||
| 		long ssidProfileId = 3; | ||||
| 		for (OpensyncAPSsidConfig ssidConfig : ssidConfigs) { | ||||
|         long ssidProfileId = 3; | ||||
|         for (OpensyncAPSsidConfig ssidConfig : ssidConfigs) { | ||||
|  | ||||
| 			Profile profile = new Profile(); | ||||
| 			profile.setProfileType(ProfileType.ssid); | ||||
| 			profile.setName(ssidConfig.getSsid()); | ||||
| 			SsidConfiguration cfg = SsidConfiguration.createWithDefaults(); | ||||
| 			Set<RadioType> appliedRadios = new HashSet<RadioType>(); | ||||
| 			appliedRadios.add(ssidConfig.getRadioType()); | ||||
| 			cfg.setAppliedRadios(appliedRadios); | ||||
| 			cfg.setSsid(ssidConfig.getSsid()); | ||||
| 			if (ssidConfig.getEncryption().equals("WPA-PSK") && ssidConfig.getMode().equals("1")) | ||||
| 				cfg.setSecureMode(SecureMode.wpaPSK); | ||||
| 			else | ||||
| 				cfg.setSecureMode(SecureMode.wpa2PSK); | ||||
| 			cfg.setBroadcastSsid(ssidConfig.isBroadcast() ? StateSetting.enabled : StateSetting.disabled); | ||||
|             Profile profile = new Profile(); | ||||
|             profile.setProfileType(ProfileType.ssid); | ||||
|             profile.setName(ssidConfig.getSsid()); | ||||
|             SsidConfiguration cfg = SsidConfiguration.createWithDefaults(); | ||||
|             Set<RadioType> appliedRadios = new HashSet<RadioType>(); | ||||
|             appliedRadios.add(ssidConfig.getRadioType()); | ||||
|             cfg.setAppliedRadios(appliedRadios); | ||||
|             cfg.setSsid(ssidConfig.getSsid()); | ||||
|             if (ssidConfig.getEncryption().equals("WPA-PSK") && ssidConfig.getMode().equals("1")) | ||||
|                 cfg.setSecureMode(SecureMode.wpaPSK); | ||||
|             else | ||||
|                 cfg.setSecureMode(SecureMode.wpa2PSK); | ||||
|             cfg.setBroadcastSsid(ssidConfig.isBroadcast() ? StateSetting.enabled : StateSetting.disabled); | ||||
|  | ||||
| 			profile.setDetails(cfg); | ||||
| 			profile.setId(ssidProfileId); | ||||
| 			if (this.ssidProfile == null) | ||||
| 				this.ssidProfile = new ArrayList<Profile>(); | ||||
| 			this.ssidProfile.add(profile); | ||||
| 			apProfile.getChildProfileIds().add(ssidProfileId); | ||||
| 			ssidProfileId++; | ||||
|             profile.setDetails(cfg); | ||||
|             profile.setId(ssidProfileId); | ||||
|             if (this.ssidProfile == null) | ||||
|                 this.ssidProfile = new ArrayList<Profile>(); | ||||
|             this.ssidProfile.add(profile); | ||||
|             apProfile.getChildProfileIds().add(ssidProfileId); | ||||
|             ssidProfileId++; | ||||
|  | ||||
| 		} | ||||
|         } | ||||
|  | ||||
| 		if (customerEquipment != null) { | ||||
| 			customerEquipment.setProfileId(apProfile.getId()); | ||||
| 		} | ||||
|         if (customerEquipment != null) { | ||||
|             customerEquipment.setProfileId(apProfile.getId()); | ||||
|         } | ||||
|  | ||||
| 	} | ||||
|     } | ||||
|  | ||||
| 	public EquipmentGatewayRecord getEquipmentGateway() { | ||||
| 		return equipmentGateway; | ||||
| 	} | ||||
|     public EquipmentGatewayRecord getEquipmentGateway() { | ||||
|         return equipmentGateway; | ||||
|     } | ||||
|  | ||||
| 	public void setEquipmentGateway(EquipmentGatewayRecord equipmentGateway) { | ||||
| 		this.equipmentGateway = equipmentGateway; | ||||
| 	} | ||||
|     public void setEquipmentGateway(EquipmentGatewayRecord equipmentGateway) { | ||||
|         this.equipmentGateway = equipmentGateway; | ||||
|     } | ||||
|  | ||||
| 	public EquipmentRoutingRecord getEquipmentRouting() { | ||||
| 		return equipmentRouting; | ||||
| 	} | ||||
|     public EquipmentRoutingRecord getEquipmentRouting() { | ||||
|         return equipmentRouting; | ||||
|     } | ||||
|  | ||||
| 	public void setEquipmentRouting(EquipmentRoutingRecord equipmentRouting) { | ||||
| 		this.equipmentRouting = equipmentRouting; | ||||
| 	} | ||||
|     public void setEquipmentRouting(EquipmentRoutingRecord equipmentRouting) { | ||||
|         this.equipmentRouting = equipmentRouting; | ||||
|     } | ||||
|  | ||||
| 	public Equipment getCustomerEquipment() { | ||||
| 		return customerEquipment; | ||||
| 	} | ||||
|     public Equipment getCustomerEquipment() { | ||||
|         return customerEquipment; | ||||
|     } | ||||
|  | ||||
| 	public void setCustomerEquipment(Equipment customerEquipment) { | ||||
| 		this.customerEquipment = customerEquipment; | ||||
| 	} | ||||
|     public void setCustomerEquipment(Equipment customerEquipment) { | ||||
|         this.customerEquipment = customerEquipment; | ||||
|     } | ||||
|  | ||||
| 	public Profile getApProfile() { | ||||
| 		return apProfile; | ||||
| 	} | ||||
|     public OpensyncAPHotspot20Config getHotspotConfig() { | ||||
|         return hotspotConfig; | ||||
|     } | ||||
|  | ||||
| 	public void setApProfile(Profile apProfile) { | ||||
| 		this.apProfile = apProfile; | ||||
| 	} | ||||
|     public void setHotspotConfig(OpensyncAPHotspot20Config hotspotConfig) { | ||||
|         this.hotspotConfig = hotspotConfig; | ||||
|     } | ||||
|  | ||||
| 	public List<Profile> getSsidProfile() { | ||||
| 		return ssidProfile; | ||||
| 	} | ||||
|     public Profile getApProfile() { | ||||
|         return apProfile; | ||||
|     } | ||||
|  | ||||
| 	public void setSsidProfile(List<Profile> ssidProfile) { | ||||
| 		this.ssidProfile = ssidProfile; | ||||
| 	} | ||||
|     public void setApProfile(Profile apProfile) { | ||||
|         this.apProfile = apProfile; | ||||
|     } | ||||
|      | ||||
|     public Profile getRfProfile() { | ||||
|     	return rfProfile; | ||||
|     } | ||||
|      | ||||
|     public void setRfProfile(Profile rfProfile) { | ||||
|     	this.rfProfile = rfProfile; | ||||
|     } | ||||
|  | ||||
| 	public Location getEquipmentLocation() { | ||||
| 		return equipmentLocation; | ||||
| 	} | ||||
|     public List<Profile> getSsidProfile() { | ||||
|         return ssidProfile; | ||||
|     } | ||||
|  | ||||
| 	public void setEquipmentLocation(Location equipmentLocation) { | ||||
| 		this.equipmentLocation = equipmentLocation; | ||||
| 	} | ||||
|     public void setSsidProfile(List<Profile> ssidProfile) { | ||||
|         this.ssidProfile = ssidProfile; | ||||
|     } | ||||
|  | ||||
| 	public String getCountryCode() { | ||||
| 		return Location.getCountryCode(this.equipmentLocation).toString(); | ||||
| 	} | ||||
|     public List<Profile> getBonjourGatewayProfiles() { | ||||
|         return bonjourGatewayProfiles; | ||||
|     } | ||||
|  | ||||
| 	public static long getSerialversionuid() { | ||||
| 		return serialVersionUID; | ||||
| 	} | ||||
|     public void setBonjourGatewayProfiles(List<Profile> bonjourGatewayProfiles) { | ||||
|         this.bonjourGatewayProfiles = bonjourGatewayProfiles; | ||||
|     } | ||||
|  | ||||
| 	@Override | ||||
| 	public OpensyncAPConfig clone() { | ||||
| 		OpensyncAPConfig ret = (OpensyncAPConfig) super.clone(); | ||||
|     public Location getEquipmentLocation() { | ||||
|         return equipmentLocation; | ||||
|     } | ||||
|  | ||||
| 		if (customerEquipment != null) | ||||
| 			ret.customerEquipment = customerEquipment.clone(); | ||||
| 		if (equipmentLocation != null) | ||||
| 			ret.equipmentLocation = equipmentLocation.clone(); | ||||
| 		if (ssidProfile != null) { | ||||
| 			List<Profile> ssidList = new ArrayList<Profile>(); | ||||
| 			for (Profile profile : ssidProfile) { | ||||
| 				ssidList.add(profile.clone()); | ||||
| 			} | ||||
| 			ret.ssidProfile = ssidList; | ||||
| 		} | ||||
| 		if (apProfile != null) | ||||
| 			ret.apProfile = apProfile.clone(); | ||||
| 		if (equipmentRouting != null) | ||||
| 			ret.equipmentRouting = equipmentRouting.clone(); | ||||
| 		if (equipmentGateway != null) | ||||
| 			ret.equipmentGateway = equipmentGateway.clone(); | ||||
|     public void setEquipmentLocation(Location equipmentLocation) { | ||||
|         this.equipmentLocation = equipmentLocation; | ||||
|     } | ||||
|  | ||||
| 		return ret; | ||||
| 	} | ||||
|     public String getCountryCode() { | ||||
|         return Location.getCountryCode(this.equipmentLocation).toString(); | ||||
|     } | ||||
|  | ||||
| 	@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()); | ||||
|     public static long getSerialversionuid() { | ||||
|         return serialVersionUID; | ||||
|     } | ||||
|  | ||||
| 		return sb.toString(); | ||||
|     @Override | ||||
|     public OpensyncAPConfig clone() { | ||||
|         OpensyncAPConfig ret = (OpensyncAPConfig) super.clone(); | ||||
|  | ||||
| 	} | ||||
|         if (customerEquipment != null) | ||||
|             ret.customerEquipment = customerEquipment.clone(); | ||||
|         if (hotspotConfig != null) | ||||
|             ret.hotspotConfig = hotspotConfig.clone(); | ||||
|         if (equipmentLocation != null) | ||||
|             ret.equipmentLocation = equipmentLocation.clone(); | ||||
|         if (ssidProfile != null) { | ||||
|             List<Profile> ssidList = new ArrayList<Profile>(); | ||||
|             for (Profile profile : ssidProfile) { | ||||
|                 ssidList.add(profile.clone()); | ||||
|             } | ||||
|             ret.ssidProfile = ssidList; | ||||
|         } | ||||
|         if (metricsProfile != null) { | ||||
|             List<Profile> metricsList = new ArrayList<Profile>(); | ||||
|             for (Profile profile : metricsProfile) { | ||||
|                 metricsList.add(profile.clone()); | ||||
|             } | ||||
|             ret.metricsProfile = metricsList; | ||||
|         } | ||||
|         if (bonjourGatewayProfiles != null) { | ||||
|             List<Profile> bonjourGatewayProfilesList = new ArrayList<Profile>(); | ||||
|             for (Profile profile : bonjourGatewayProfiles) { | ||||
|                 bonjourGatewayProfilesList.add(profile.clone()); | ||||
|             } | ||||
|             ret.bonjourGatewayProfiles = bonjourGatewayProfilesList; | ||||
|         } | ||||
|         if (apProfile != null) | ||||
|             ret.apProfile = apProfile.clone(); | ||||
|         if (rfProfile != null) | ||||
|         	ret.rfProfile = rfProfile.clone(); | ||||
|         if (equipmentRouting != null) | ||||
|             ret.equipmentRouting = equipmentRouting.clone(); | ||||
|         if (equipmentGateway != null) | ||||
|             ret.equipmentGateway = equipmentGateway.clone(); | ||||
|         if (radiusProfiles != null) { | ||||
|             ret.radiusProfiles = new ArrayList<>(); | ||||
|             for (Profile radiusProfile : this.radiusProfiles) { | ||||
|                 ret.radiusProfiles.add(radiusProfile); | ||||
|             } | ||||
|         } | ||||
|         if (captiveProfiles != null) { | ||||
|             ret.captiveProfiles = new ArrayList<>(); | ||||
|             for (Profile cpConfig : this.captiveProfiles) { | ||||
|                 ret.captiveProfiles.add(cpConfig); | ||||
|             } | ||||
|         } | ||||
|         if (blockedClients != null) { | ||||
|             ret.blockedClients = new ArrayList<MacAddress>(); | ||||
|             for (MacAddress blockedClient : this.blockedClients) { | ||||
|                 ret.blockedClients.add(blockedClient); | ||||
|             } | ||||
|         } | ||||
|  | ||||
| 	public List<Profile> getRadiusProfiles() { | ||||
| 		return radiusProfiles; | ||||
| 	} | ||||
|         return ret; | ||||
|     } | ||||
|  | ||||
| 	public void setRadiusProfiles(List<Profile> radiusProfiles) { | ||||
| 		this.radiusProfiles = radiusProfiles; | ||||
| 	} | ||||
|     public List<Profile> getRadiusProfiles() { | ||||
|         return radiusProfiles; | ||||
|     } | ||||
|  | ||||
|     public void setRadiusProfiles(List<Profile> radiusProfiles) { | ||||
|         this.radiusProfiles = radiusProfiles; | ||||
|     } | ||||
|  | ||||
|     public List<Profile> getCaptiveProfiles() { | ||||
|         return captiveProfiles; | ||||
|     } | ||||
|  | ||||
|     public void setCaptiveProfiles(List<Profile> captiveProfiles) { | ||||
|         this.captiveProfiles = captiveProfiles; | ||||
|     } | ||||
|  | ||||
|     public List<MacAddress> getBlockedClients() { | ||||
|         return blockedClients; | ||||
|     } | ||||
|  | ||||
|     public void setBlockedClients(List<MacAddress> blockedClients) { | ||||
|         this.blockedClients = blockedClients; | ||||
|     } | ||||
|  | ||||
|     public void setMetricsProfiles(List<Profile> metricsProfileList) { | ||||
|         metricsProfile = metricsProfileList;        | ||||
|     } | ||||
|      | ||||
|     public List<Profile> getMetricsProfiles() { | ||||
|         return metricsProfile;        | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public int hashCode() { | ||||
|         return Objects.hash(apProfile, blockedClients, bonjourGatewayProfiles, captiveProfiles, customerEquipment, | ||||
|                 equipmentGateway, equipmentLocation, equipmentRouting, hotspotConfig, metricsProfile, | ||||
|                 radiusProfiles, rfProfile, ssidProfile); | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public boolean equals(Object obj) { | ||||
|         if (this == obj) { | ||||
|             return true; | ||||
|         } | ||||
|         if (!(obj instanceof OpensyncAPConfig)) { | ||||
|             return false; | ||||
|         } | ||||
|         OpensyncAPConfig other = (OpensyncAPConfig) obj; | ||||
|         return Objects.equals(apProfile, other.apProfile) && Objects.equals(blockedClients, other.blockedClients) | ||||
|                 && Objects.equals(bonjourGatewayProfiles, other.bonjourGatewayProfiles) | ||||
|                 && Objects.equals(captiveProfiles, other.captiveProfiles) | ||||
|                 && Objects.equals(customerEquipment, other.customerEquipment) | ||||
|                 && Objects.equals(equipmentGateway, other.equipmentGateway) | ||||
|                 && Objects.equals(equipmentLocation, other.equipmentLocation) | ||||
|                 && Objects.equals(equipmentRouting, other.equipmentRouting) | ||||
|                 && Objects.equals(hotspotConfig, other.hotspotConfig) | ||||
|                 && Objects.equals(metricsProfile, other.metricsProfile) | ||||
|                 && Objects.equals(radiusProfiles, other.radiusProfiles) && Objects.equals(rfProfile, other.rfProfile) | ||||
|                 && Objects.equals(ssidProfile, other.ssidProfile); | ||||
|     } | ||||
|      | ||||
| } | ||||
|   | ||||
| @@ -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; | ||||
|  | ||||
| import java.util.HashMap; | ||||
| import java.util.Map; | ||||
| import java.util.UUID; | ||||
|  | ||||
| import com.telecominfraproject.wlan.core.model.json.BaseJsonModel; | ||||
| import com.vmware.ovsdb.protocol.operation.notation.Uuid; | ||||
|  | ||||
| public class OpensyncAPInetState extends BaseJsonModel  { | ||||
|  | ||||
| public class OpensyncAPInetState extends BaseJsonModel { | ||||
|  | ||||
| 	private static final long serialVersionUID = 1707053648715030173L; | ||||
| 	 | ||||
|  | ||||
| 	public String ifName; | ||||
| 	public String dhcpd; | ||||
| 	public Map<String, String> dhcpd; | ||||
| 	public String unpnpMode; | ||||
| 	public String ifType; | ||||
| 	public String softwdsMacAddr; | ||||
| @@ -37,167 +36,423 @@ public class OpensyncAPInetState extends BaseJsonModel  { | ||||
| 	public String inetConfig; | ||||
| 	public Uuid _uuid; | ||||
| 	public Uuid version; | ||||
| 	public String greLocalInetAddr; | ||||
| 	public String greRemoteMacAddr; | ||||
|  | ||||
| 	public OpensyncAPInetState() { | ||||
| 		super(); | ||||
| 		dns = new HashMap<>(); | ||||
| 		dhcpc = new HashMap<>(); | ||||
| 	} | ||||
|  | ||||
| 	public String getIfName() { | ||||
| 		return ifName; | ||||
| 	} | ||||
|  | ||||
| 	public void setIfName(String ifName) { | ||||
| 		this.ifName = ifName; | ||||
| 	} | ||||
| 	public String getDhcpd() { | ||||
|  | ||||
| 	public Map<String, String> getDhcpd() { | ||||
| 		return dhcpd; | ||||
| 	} | ||||
| 	public void setDhcpd(String dhcpd) { | ||||
|  | ||||
| 	public void setDhcpd(Map<String, String> dhcpd) { | ||||
| 		this.dhcpd = dhcpd; | ||||
| 	} | ||||
|  | ||||
| 	public String getUnpnpMode() { | ||||
| 		return unpnpMode; | ||||
| 	} | ||||
|  | ||||
| 	public void setUnpnpMode(String unpnpMode) { | ||||
| 		this.unpnpMode = unpnpMode; | ||||
| 	} | ||||
|  | ||||
| 	public String getIfType() { | ||||
| 		return ifType; | ||||
| 	} | ||||
|  | ||||
| 	public void setIfType(String ifType) { | ||||
| 		this.ifType = ifType; | ||||
| 	} | ||||
|  | ||||
| 	public String getSoftwdsMacAddr() { | ||||
| 		return softwdsMacAddr; | ||||
| 	} | ||||
|  | ||||
| 	public void setSoftwdsMacAddr(String softwdsMacAddr) { | ||||
| 		this.softwdsMacAddr = softwdsMacAddr; | ||||
| 	} | ||||
|  | ||||
| 	public boolean isEnabled() { | ||||
| 		return enabled; | ||||
| 	} | ||||
|  | ||||
| 	public void setEnabled(boolean enabled) { | ||||
| 		this.enabled = enabled; | ||||
| 	} | ||||
|  | ||||
| 	public boolean isSofwdsWrap() { | ||||
| 		return sofwdsWrap; | ||||
| 	} | ||||
|  | ||||
| 	public void setSofwdsWrap(boolean sofwdsWrap) { | ||||
| 		this.sofwdsWrap = sofwdsWrap; | ||||
| 	} | ||||
|  | ||||
| 	public int getVlanId() { | ||||
| 		return vlanId; | ||||
| 	} | ||||
|  | ||||
| 	public void setVlanId(int vlanId) { | ||||
| 		this.vlanId = vlanId; | ||||
| 	} | ||||
|  | ||||
| 	public String getNetmask() { | ||||
| 		return netmask; | ||||
| 	} | ||||
|  | ||||
| 	public void setNetmask(String netmask) { | ||||
| 		this.netmask = netmask; | ||||
| 	} | ||||
|  | ||||
| 	public boolean isNat() { | ||||
| 		return nat; | ||||
| 	} | ||||
|  | ||||
| 	public void setNat(boolean nat) { | ||||
| 		this.nat = nat; | ||||
| 	} | ||||
|  | ||||
| 	public String getGreRemoteInetAddr() { | ||||
| 		return greRemoteInetAddr; | ||||
| 	} | ||||
|  | ||||
| 	public void setGreRemoteInetAddr(String greRemoteInetAddr) { | ||||
| 		this.greRemoteInetAddr = greRemoteInetAddr; | ||||
| 	} | ||||
|  | ||||
| 	public String getIfUuid() { | ||||
| 		return ifUuid; | ||||
| 	} | ||||
|  | ||||
| 	public void setIfUuid(String ifUuid) { | ||||
| 		this.ifUuid = ifUuid; | ||||
| 	} | ||||
|  | ||||
| 	public String getInetAddr() { | ||||
| 		return inetAddr; | ||||
| 	} | ||||
|  | ||||
| 	public void setInetAddr(String inetAddr) { | ||||
| 		this.inetAddr = inetAddr; | ||||
| 	} | ||||
|  | ||||
| 	public String getHwAddr() { | ||||
| 		return hwAddr; | ||||
| 	} | ||||
|  | ||||
| 	public void setHwAddr(String hwAddr) { | ||||
| 		this.hwAddr = hwAddr; | ||||
| 	} | ||||
|  | ||||
| 	public int getMtw() { | ||||
| 		return mtw; | ||||
| 	} | ||||
|  | ||||
| 	public void setMtw(int mtw) { | ||||
| 		this.mtw = mtw; | ||||
| 	} | ||||
|  | ||||
| 	public boolean isNetwork() { | ||||
| 		return network; | ||||
| 	} | ||||
|  | ||||
| 	public void setNetwork(boolean network) { | ||||
| 		this.network = network; | ||||
| 	} | ||||
|  | ||||
| 	public Map<String, String> getDns() { | ||||
| 		return dns; | ||||
| 	} | ||||
|  | ||||
| 	public void setDns(Map<String, String> dns) { | ||||
| 		this.dns = dns; | ||||
| 	} | ||||
|  | ||||
| 	public String getParentIfName() { | ||||
| 		return parentIfName; | ||||
| 	} | ||||
|  | ||||
| 	public void setParentIfName(String parentIfName) { | ||||
| 		this.parentIfName = parentIfName; | ||||
| 	} | ||||
|  | ||||
| 	public String getGreIfName() { | ||||
| 		return greIfName; | ||||
| 	} | ||||
|  | ||||
| 	public void setGreIfName(String greIfName) { | ||||
| 		this.greIfName = greIfName; | ||||
| 	} | ||||
|  | ||||
| 	public String getBroadcast() { | ||||
| 		return broadcast; | ||||
| 	} | ||||
|  | ||||
| 	public void setBroadcast(String broadcast) { | ||||
| 		this.broadcast = broadcast; | ||||
| 	} | ||||
|  | ||||
| 	public Map<String, String> getDhcpc() { | ||||
| 		return dhcpc; | ||||
| 	} | ||||
|  | ||||
| 	public void setDhcpc(Map<String, String> dhcpc) { | ||||
| 		this.dhcpc = dhcpc; | ||||
| 	} | ||||
|  | ||||
| 	public String getGateway() { | ||||
| 		return gateway; | ||||
| 	} | ||||
|  | ||||
| 	public void setGateway(String gateway) { | ||||
| 		this.gateway = gateway; | ||||
| 	} | ||||
|  | ||||
| 	public String getIpAssignScheme() { | ||||
| 		return ipAssignScheme; | ||||
| 	} | ||||
|  | ||||
| 	public void setIpAssignScheme(String ipAssignScheme) { | ||||
| 		this.ipAssignScheme = ipAssignScheme; | ||||
| 	} | ||||
|  | ||||
| 	public String getInetConfig() { | ||||
| 		return inetConfig; | ||||
| 	} | ||||
|  | ||||
| 	public void setInetConfig(String inetConfig) { | ||||
| 		this.inetConfig = inetConfig; | ||||
| 	} | ||||
|  | ||||
| 	public static long getSerialversionuid() { | ||||
| 		return serialVersionUID; | ||||
| 	} | ||||
|  | ||||
| 	public Uuid get_uuid() { | ||||
| 		return _uuid; | ||||
| 	} | ||||
|  | ||||
| 	public void set_uuid(Uuid _uuid) { | ||||
| 		this._uuid = _uuid; | ||||
| 	} | ||||
|  | ||||
| 	public Uuid getVersion() { | ||||
| 		return version; | ||||
| 	} | ||||
|  | ||||
| 	public void setVersion(Uuid version) { | ||||
| 		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; | ||||
|  | ||||
| import java.util.ArrayList; | ||||
| import java.util.HashMap; | ||||
| import java.util.HashSet; | ||||
| import java.util.List; | ||||
| import java.util.Map; | ||||
| import java.util.Set; | ||||
|  | ||||
| @@ -44,6 +48,17 @@ public class OpensyncAPRadioState extends BaseJsonModel { | ||||
|     public Map<String, String> hwParams; | ||||
|     public RadioType freqBand; | ||||
|     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 Uuid _uuid; | ||||
|     public Uuid version; | ||||
| @@ -88,6 +103,14 @@ public class OpensyncAPRadioState extends BaseJsonModel { | ||||
|         this.mac = mac; | ||||
|     } | ||||
|  | ||||
|     public Set<Uuid> getVifStates() { | ||||
|         return vifStates; | ||||
|     } | ||||
|  | ||||
|     public void setVifStates(Set<Uuid> vifStates) { | ||||
|         this.vifStates = vifStates; | ||||
|     } | ||||
|  | ||||
|     public int getBcnInt() { | ||||
|         return bcnInt; | ||||
|     } | ||||
|   | ||||
| @@ -1,8 +1,10 @@ | ||||
| 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.Set; | ||||
| import java.util.UUID; | ||||
|  | ||||
| import com.telecominfraproject.wlan.core.model.json.BaseJsonModel; | ||||
| import com.vmware.ovsdb.protocol.operation.notation.Uuid; | ||||
| @@ -22,7 +24,8 @@ public class OpensyncAPVIFState extends BaseJsonModel { | ||||
|     public String ssid; | ||||
|     public Map<String, String> security; | ||||
|     public String macList; | ||||
|     public Set<Uuid> associatedClients; | ||||
|     public List<Uuid> associatedClients; | ||||
|  | ||||
|     public boolean enabled; | ||||
|     public int vlanId; | ||||
|     public int btm; | ||||
| @@ -43,6 +46,13 @@ public class OpensyncAPVIFState extends BaseJsonModel { | ||||
|         return ifName; | ||||
|     } | ||||
|  | ||||
|     public OpensyncAPVIFState() { | ||||
|         super(); | ||||
|         security = new HashMap<>(); | ||||
|         associatedClients = new ArrayList<>(); | ||||
|  | ||||
|     } | ||||
|  | ||||
|     public void setIfName(String ifName) { | ||||
|         this.ifName = ifName; | ||||
|     } | ||||
| @@ -127,11 +137,11 @@ public class OpensyncAPVIFState extends BaseJsonModel { | ||||
|         this.macList = macList; | ||||
|     } | ||||
|  | ||||
|     public Set<Uuid> getAssociatedClients() { | ||||
|     public List<Uuid> getAssociatedClients() { | ||||
|         return associatedClients; | ||||
|     } | ||||
|  | ||||
|     public void setAssociatedClients(Set<Uuid> list) { | ||||
|     public void setAssociatedClients(List<Uuid> list) { | ||||
|         this.associatedClients = list; | ||||
|     } | ||||
|  | ||||
| @@ -258,5 +268,4 @@ public class OpensyncAPVIFState extends BaseJsonModel { | ||||
|     public void setVersion(Uuid version) { | ||||
|         this.version = version; | ||||
|     } | ||||
|  | ||||
| } | ||||
|   | ||||
| @@ -3,8 +3,8 @@ | ||||
|  */ | ||||
| package com.telecominfraproject.wlan.opensync.external.integration.models; | ||||
|  | ||||
| import java.util.HashMap; | ||||
| import java.util.Map; | ||||
| import java.util.UUID; | ||||
|  | ||||
| import com.telecominfraproject.wlan.core.model.json.BaseJsonModel; | ||||
| import com.vmware.ovsdb.protocol.operation.notation.Uuid; | ||||
| @@ -43,6 +43,15 @@ public class OpensyncAWLANNode extends BaseJsonModel { | ||||
|     public Uuid _uuid; | ||||
|     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() { | ||||
|         return mqttSettings; | ||||
|     } | ||||
|   | ||||
| @@ -3,8 +3,8 @@ | ||||
|  */ | ||||
| package com.telecominfraproject.wlan.opensync.external.integration.models; | ||||
|  | ||||
| import java.util.HashSet; | ||||
| import java.util.Set; | ||||
| import java.util.UUID; | ||||
|  | ||||
| import com.telecominfraproject.wlan.core.model.json.BaseJsonModel; | ||||
| import com.vmware.ovsdb.protocol.operation.notation.Uuid; | ||||
| @@ -27,6 +27,11 @@ public class OpensyncWifiAssociatedClients extends BaseJsonModel { | ||||
|     public Uuid _uuid; | ||||
|     public Uuid version; | ||||
|  | ||||
|     public OpensyncWifiAssociatedClients() { | ||||
|         super(); | ||||
|         capabilities = new HashSet<>(); | ||||
|     } | ||||
|  | ||||
|     public String getKeyId() { | ||||
|         return keyId; | ||||
|     } | ||||
|   | ||||
| @@ -12,7 +12,7 @@ | ||||
|   <dependencies> | ||||
|   	<dependency> | ||||
|   		<groupId>com.telecominfraproject.wlan</groupId> | ||||
|   		<artifactId>opensync-ext-interface</artifactId> | ||||
|   		<artifactId>opensync-gateway</artifactId> | ||||
|   		<version>${tip-wlan-cloud.release.version}</version> | ||||
|   	</dependency> | ||||
|   </dependencies> | ||||
|   | ||||
| @@ -1,7 +1,10 @@ | ||||
| package com.telecominfraproject.wlan.opensync.external.integration; | ||||
|  | ||||
| import java.io.File; | ||||
| import java.io.IOException; | ||||
| import java.util.HashSet; | ||||
| import java.util.List; | ||||
| import java.util.Map; | ||||
|  | ||||
| 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.opensync.external.integration.models.ConnectNodeInfo; | ||||
| import com.telecominfraproject.wlan.opensync.external.integration.models.OpensyncAPConfig; | ||||
| import com.telecominfraproject.wlan.opensync.external.integration.models.OpensyncAPHotspot20Config; | ||||
| import com.telecominfraproject.wlan.opensync.external.integration.models.OpensyncAPInetState; | ||||
| import com.telecominfraproject.wlan.opensync.external.integration.models.OpensyncAPRadioState; | ||||
| import com.telecominfraproject.wlan.opensync.external.integration.models.OpensyncAPVIFState; | ||||
| @@ -29,139 +33,246 @@ import wc.stats.IpDnsTelemetry.WCStatsReport; | ||||
| @Component | ||||
| public class OpensyncExternalIntegrationSimple implements OpensyncExternalIntegrationInterface { | ||||
|  | ||||
| 	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}") | ||||
| 	private String customerEquipmentFileName; | ||||
|     @Value("${tip.wlan.ovsdb.customerEquipmentFileName:/app/config/EquipmentExample.json}") | ||||
|     private String customerEquipmentFileName; | ||||
|  | ||||
| 	@Value("${connectus.ovsdb.apProfileFileName:/app/config/ProfileAPExample.json}") | ||||
| 	private String apProfileFileName; | ||||
|     @Value("${tip.wlan.ovsdb.apProfileFileName:/app/config/ProfileAPExample.json}") | ||||
|     private String apProfileFileName; | ||||
|  | ||||
| 	@Value("${connectus.ovsdb.ssidProfileFileName:/app/config/ProfileSsid.json}") | ||||
| 	private String ssidProfileFileName; | ||||
|     @Value("${tip.wlan.ovsdb.rfProfileFileName:/app/config/ProfileRf.json}") | ||||
|     private String rfProfileFileName; | ||||
|  | ||||
| 	@Value("${connectus.ovsdb.radiusProfileFileName:/app/config/ProfileRadius.json}") | ||||
| 	private String radiusProfileFileName; | ||||
|     @Value("${tip.wlan.ovsdb.ssidProfileFileName:/app/config/ProfileSsid.json}") | ||||
|     private String ssidProfileFileName; | ||||
|  | ||||
| 	@Value("${connectus.ovsdb.locationFileName:/app/config/LocationBuildingExample.json}") | ||||
| 	private String locationFileName; | ||||
|     @Value("${tip.wlan.ovsdb.metricsProfileFileName:/app/config/ProfileMetrics.json}") | ||||
|     private String metricsProfileFileName; | ||||
|  | ||||
| 	private String serialNumber = ""; | ||||
|     @Value("${tip.wlan.ovsdb.venueProfileFileName:/app/config/ProfileVenue.json}") | ||||
|     private String venueProfileFileName; | ||||
|  | ||||
| 	@PostConstruct | ||||
| 	private void postCreate() { | ||||
| 		LOG.info("Using Static integration"); | ||||
| 	} | ||||
|     @Value("${tip.wlan.ovsdb.operatorProfileFileName:/app/config/ProfileOperator.json}") | ||||
|     private String operatorProfileFileName; | ||||
|  | ||||
| 	public void apConnected(String apId, ConnectNodeInfo connectNodeInfo) { | ||||
| 		serialNumber = connectNodeInfo.serialNumber; | ||||
| 		LOG.info("AP {} got connected to the gateway", apId); | ||||
| 		LOG.info("ConnectNodeInfo {}", connectNodeInfo); | ||||
|     @Value("${tip.wlan.ovsdb.hotspot20ProfileFileName:/app/config/ProfileHotspot20.json}") | ||||
|     private String hotspot20ProfileFileName; | ||||
|  | ||||
| 	} | ||||
|     @Value("${tip.wlan.ovsdb.idProviderProfileFileName:/app/config/ProfileIdProvider.json}") | ||||
|     private String idProviderProfileFileName; | ||||
|  | ||||
| 	public void apDisconnected(String apId) { | ||||
| 		LOG.info("AP {} got disconnected from the gateway", apId); | ||||
| 	} | ||||
|     @Value("${tip.wlan.ovsdb.radiusProfileFileName:/app/config/ProfileRadius.json}") | ||||
|     private String radiusProfileFileName; | ||||
|  | ||||
| 	public OpensyncAPConfig getApConfig(String apId) { | ||||
| 		LOG.info("Retrieving config for AP {}", apId); | ||||
| 		OpensyncAPConfig ret = null; | ||||
|     @Value("${tip.wlan.ovsdb.captiveProfileFileName:/app/config/ProfileCaptive.json}") | ||||
|     private String captiveProfileFileName; | ||||
|  | ||||
| 		try { | ||||
|     @Value("${tip.wlan.ovsdb.bonjourProfileFileName:/app/config/ProfileBonjour.json}") | ||||
|     private String bonjourProfileFileName; | ||||
|  | ||||
| 			Equipment equipment = Equipment.fromFile(customerEquipmentFileName, Equipment.class); | ||||
| 			equipment.setInventoryId(apId); | ||||
| 			equipment.setName(apId); | ||||
|     @Value("${tip.wlan.ovsdb.locationFileName:/app/config/LocationBuildingExample.json}") | ||||
|     private String locationFileName; | ||||
|  | ||||
| 			equipment.setSerial(serialNumber); | ||||
|     private String serialNumber = ""; | ||||
|  | ||||
| 			com.telecominfraproject.wlan.profile.models.Profile apProfile = com.telecominfraproject.wlan.profile.models.Profile | ||||
| 					.fromFile(apProfileFileName, com.telecominfraproject.wlan.profile.models.Profile.class); | ||||
|     @PostConstruct | ||||
|     private void postCreate() { | ||||
|         LOG.info("Using Static integration"); | ||||
|     } | ||||
|  | ||||
| 			List<com.telecominfraproject.wlan.profile.models.Profile> ssidProfiles = com.telecominfraproject.wlan.profile.models.Profile | ||||
| 					.listFromFile(ssidProfileFileName, com.telecominfraproject.wlan.profile.models.Profile.class); | ||||
|     public void apConnected(String apId, ConnectNodeInfo connectNodeInfo) { | ||||
|         serialNumber = connectNodeInfo.serialNumber; | ||||
|         LOG.info("AP {} got connected to the gateway", apId); | ||||
|         LOG.info("ConnectNodeInfo {}", connectNodeInfo); | ||||
|  | ||||
| 			ssidProfiles.stream().forEach(p -> apProfile.getChildProfileIds().add(p.getId())); | ||||
|     } | ||||
|  | ||||
| 			List<com.telecominfraproject.wlan.profile.models.Profile> radiusProfiles = com.telecominfraproject.wlan.profile.models.Profile | ||||
| 					.listFromFile(radiusProfileFileName, com.telecominfraproject.wlan.profile.models.Profile.class); | ||||
|     public void apDisconnected(String apId) { | ||||
|         LOG.info("AP {} got disconnected from the gateway", apId); | ||||
|     } | ||||
|  | ||||
| 			equipment.setProfileId(apProfile.getId()); | ||||
|     public OpensyncAPConfig getApConfig(String apId) { | ||||
|         LOG.info("Retrieving config for AP {}", apId); | ||||
|         OpensyncAPConfig ret = null; | ||||
|  | ||||
| 			Location location = Location.fromFile(locationFileName, Location.class); | ||||
|         try { | ||||
|  | ||||
| 			equipment.setLocationId(location.getId()); | ||||
|             Equipment equipment = Equipment.fromFile(customerEquipmentFileName, Equipment.class); | ||||
|             equipment.setInventoryId(apId); | ||||
|             equipment.setName(apId); | ||||
|             equipment.setSerial(serialNumber); | ||||
|  | ||||
| 			ret = new OpensyncAPConfig(); | ||||
| 			ret.setCustomerEquipment(equipment); | ||||
| 			ret.setApProfile(apProfile); | ||||
| 			ret.setSsidProfile(ssidProfiles); | ||||
| 			ret.setRadiusProfiles(radiusProfiles); | ||||
| 			ret.setEquipmentLocation(location); | ||||
|             com.telecominfraproject.wlan.profile.models.Profile apProfile = com.telecominfraproject.wlan.profile.models.Profile | ||||
|                     .fromFile(apProfileFileName, com.telecominfraproject.wlan.profile.models.Profile.class); | ||||
|  | ||||
| 		} catch (IOException e) { | ||||
| 			LOG.error("Cannot read config file", e); | ||||
| 		} | ||||
|             com.telecominfraproject.wlan.profile.models.Profile rfProfile = com.telecominfraproject.wlan.profile.models.Profile | ||||
|                     .fromFile(rfProfileFileName, com.telecominfraproject.wlan.profile.models.Profile.class); | ||||
|  | ||||
| 		LOG.debug("Config content : {}", ret); | ||||
|             apProfile.getChildProfileIds().add(rfProfile.getId()); | ||||
|  | ||||
| 		return ret; | ||||
| 	} | ||||
|             List<com.telecominfraproject.wlan.profile.models.Profile> ssidProfiles = com.telecominfraproject.wlan.profile.models.Profile | ||||
|                     .listFromFile(ssidProfileFileName, com.telecominfraproject.wlan.profile.models.Profile.class); | ||||
|  | ||||
| 	public void processMqttMessage(String topic, Report report) { | ||||
| 		LOG.info("Received PlumeStatsReport on topic {} for ap {}\n{}", topic, report.getNodeID(), report); | ||||
| 	} | ||||
|             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); | ||||
|  | ||||
| 	public void processMqttMessage(String topic, FlowReport flowReport) { | ||||
| 		LOG.info("Received flowReport on topic {} for ap {}", topic, flowReport.getObservationPoint().getNodeId()); | ||||
| 	} | ||||
|  | ||||
| 	public void processMqttMessage(String topic, WCStatsReport wcStatsReport) { | ||||
| 		LOG.info("Received wcStatsReport on topic {} for ap {}", topic, | ||||
| 				wcStatsReport.getObservationPoint().getNodeId()); | ||||
| 	} | ||||
|             ssidProfiles.stream().forEach(p -> apProfile.getChildProfileIds().add(p.getId())); | ||||
|  | ||||
| 	@Override | ||||
| 	public void wifiVIFStateDbTableUpdate(List<OpensyncAPVIFState> vifStateTables, String apId) { | ||||
| 		LOG.info("Received table state update {} for ap {}", vifStateTables, apId); | ||||
| 	} | ||||
|             List<com.telecominfraproject.wlan.profile.models.Profile> metricsProfiles = com.telecominfraproject.wlan.profile.models.Profile | ||||
|                     .listFromFile(metricsProfileFileName, com.telecominfraproject.wlan.profile.models.Profile.class); | ||||
|  | ||||
| 	@Override | ||||
| 	public void wifiRadioStatusDbTableUpdate(List<OpensyncAPRadioState> radioStateTable, String apId) { | ||||
| 		LOG.info("Received table state update {} for ap {}", radioStateTable, apId); | ||||
|             List<com.telecominfraproject.wlan.profile.models.Profile> radiusProfiles = com.telecominfraproject.wlan.profile.models.Profile | ||||
|                     .listFromFile(radiusProfileFileName, com.telecominfraproject.wlan.profile.models.Profile.class); | ||||
|  | ||||
| 	} | ||||
|  | ||||
| 	@Override | ||||
| 	public void wifiInetStateDbTableUpdate(List<OpensyncAPInetState> inetStateTable, String apId) { | ||||
| 		LOG.info("Received table state update {} for ap {}", inetStateTable, apId); | ||||
|             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"); | ||||
|             } | ||||
|  | ||||
| 	@Override | ||||
| 	public void wifiAssociatedClientsDbTableUpdate(List<OpensyncWifiAssociatedClients> wifiAssociatedClients, | ||||
| 			String apId) { | ||||
| 		LOG.info("Received table state update {} for ap {}", wifiAssociatedClients, apId); | ||||
|             equipment.setProfileId(apProfile.getId()); | ||||
|  | ||||
| 	} | ||||
|             Location location = Location.fromFile(locationFileName, Location.class); | ||||
|  | ||||
| 	@Override | ||||
| 	public void awlanNodeDbTableUpdate(OpensyncAWLANNode opensyncAPState, String apId) { | ||||
| 		LOG.info("Received table state update {} for ap {}", opensyncAPState, apId); | ||||
|             equipment.setLocationId(location.getId()); | ||||
|  | ||||
| 	} | ||||
|             OpensyncAPHotspot20Config hotspotConfig = new OpensyncAPHotspot20Config(); | ||||
|  | ||||
| 	@Override | ||||
| 	public void wifiVIFStateDbTableDelete(List<OpensyncAPVIFState> vifStateTables, String apId) { | ||||
| 		LOG.info("Received table delete {} for ap {}", vifStateTables, apId); | ||||
|             hotspotConfig.setHotspot20ProfileSet( | ||||
|                     new HashSet<com.telecominfraproject.wlan.profile.models.Profile>(hotspot20Profiles)); | ||||
|             hotspotConfig.setHotspot20OperatorSet( | ||||
|                     new HashSet<com.telecominfraproject.wlan.profile.models.Profile>(operatorProfiles)); | ||||
|             hotspotConfig.setHotspot20VenueSet( | ||||
|                     new HashSet<com.telecominfraproject.wlan.profile.models.Profile>(venueProfiles)); | ||||
|             hotspotConfig.setHotspot20ProviderSet( | ||||
|                     new HashSet<com.telecominfraproject.wlan.profile.models.Profile>(providerProfiles)); | ||||
|  | ||||
| 	} | ||||
|             ret = new OpensyncAPConfig(); | ||||
|             ret.setCustomerEquipment(equipment); | ||||
|             ret.setApProfile(apProfile); | ||||
|             ret.setRfProfile(rfProfile); | ||||
|             ret.setMetricsProfiles(metricsProfiles); | ||||
|             ret.setSsidProfile(ssidProfiles); | ||||
|             ret.setRadiusProfiles(radiusProfiles); | ||||
|             ret.setEquipmentLocation(location); | ||||
|             ret.setCaptiveProfiles(captiveProfiles); | ||||
|             ret.setBonjourGatewayProfiles(bonjourProfiles); | ||||
|             ret.setHotspotConfig(hotspotConfig); | ||||
|  | ||||
| 	@Override | ||||
| 	public void wifiAssociatedClientsDbTableDelete(String deletedClientMac, String apId) { | ||||
| 		LOG.info("Received Wifi_Associated_Clients row delete {} for ap {}", deletedClientMac, apId); | ||||
|         } catch (IOException e) { | ||||
|             LOG.error("Cannot read config file", e); | ||||
|         } | ||||
|  | ||||
| 	} | ||||
|         LOG.debug("Config content : {}", ret); | ||||
|  | ||||
|         return ret; | ||||
|     } | ||||
|  | ||||
|     public void processMqttMessage(String topic, Report 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) { | ||||
|         LOG.info("Received FlowReport on topic {} for ap {}", topic, flowReport.getObservationPoint().getNodeId()); | ||||
|     } | ||||
|  | ||||
|     public void processMqttMessage(String topic, WCStatsReport wcStatsReport) { | ||||
|         LOG.info("Received WCStatsReport on topic {} for ap {}", topic, | ||||
|                 wcStatsReport.getObservationPoint().getNodeId()); | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public void wifiVIFStateDbTableUpdate(List<OpensyncAPVIFState> vifStateTables, String apId) { | ||||
|         LOG.info("Received table state update {} for ap {}", vifStateTables, apId); | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public void wifiRadioStatusDbTableUpdate(List<OpensyncAPRadioState> radioStateTable, String apId) { | ||||
|         LOG.info("Received table state update {} for ap {}", radioStateTable, apId); | ||||
|  | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public void wifiInetStateDbTableUpdate(List<OpensyncAPInetState> inetStateTable, String apId) { | ||||
|         LOG.info("Received table state update {} for ap {}", inetStateTable, apId); | ||||
|  | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public void wifiAssociatedClientsDbTableUpdate(List<OpensyncWifiAssociatedClients> wifiAssociatedClients, | ||||
|             String apId) { | ||||
|         LOG.info("Received table state update {} for ap {}", wifiAssociatedClients, apId); | ||||
|  | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public void awlanNodeDbTableUpdate(OpensyncAWLANNode opensyncAPState, String apId) { | ||||
|         LOG.info("Received table state update {} for ap {}", opensyncAPState, apId); | ||||
|  | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public void wifiVIFStateDbTableDelete(List<OpensyncAPVIFState> vifStateTables, String apId) { | ||||
|         LOG.info("Received table delete {} for ap {}", vifStateTables, apId); | ||||
|  | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public void wifiAssociatedClientsDbTableDelete(String deletedClientMac, String apId) { | ||||
|         LOG.info("Received Wifi_Associated_Clients row delete {} for ap {}", deletedClientMac, apId); | ||||
|  | ||||
|     } | ||||
|  | ||||
|     @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, | ||||
|         "manualChannelNumber": 6, | ||||
|         "backupChannelNumber": 11, | ||||
|         "autoChannelSelection": false, | ||||
|         "channelBandwidth": "is20MHz", | ||||
|         "bannedChannels": [], | ||||
|         "allowedChannels": [], | ||||
|         "rxCellSizeDb": { | ||||
|           "model_type": "AutoOrManualValue", | ||||
|           "auto": true, | ||||
|           "model_type": "SourceSelectionValue", | ||||
|         "source": "auto", | ||||
|           "value": -90 | ||||
|         }, | ||||
|         "probeResponseThresholdDb": { | ||||
|           "model_type": "AutoOrManualValue", | ||||
|           "auto": true, | ||||
|           "model_type": "SourceSelectionValue", | ||||
|         "source": "auto", | ||||
|           "value": -90 | ||||
|         }, | ||||
|         "clientDisconnectThresholdDb": { | ||||
|           "model_type": "AutoOrManualValue", | ||||
|           "auto": true, | ||||
|           "model_type": "SourceSelectionValue", | ||||
|         	 "source": "auto", | ||||
|           "value": -90 | ||||
|         }, | ||||
|         "eirpTxPower": { | ||||
|           "model_type": "AutoOrManualValue", | ||||
|           "auto": false, | ||||
|           "model_type": "SourceSelectionValue", | ||||
|         	 "source": "auto", | ||||
|           "value": 32 | ||||
|         }, | ||||
|         "bestApEnabled": null, | ||||
|         "neighbouringListApConfig": { | ||||
|           "model_type": "NeighbouringAPListConfiguration", | ||||
|           "minSignal": -85, | ||||
|           "maxAps": 25 | ||||
|         }, | ||||
|         "minAutoCellSize": -80, | ||||
|         "perimeterDetectionEnabled": true, | ||||
|         "bestAPSteerType": "both", | ||||
|         "deauthAttackDetection": null, | ||||
| @@ -81,37 +72,28 @@ | ||||
|         "channelNumber": 149, | ||||
|         "manualChannelNumber": 149, | ||||
|         "backupChannelNumber": 154, | ||||
|         "autoChannelSelection": false, | ||||
|         "channelBandwidth": "is80MHz", | ||||
|         "bannedChannels": [], | ||||
|         "allowedChannels": [], | ||||
|         "rxCellSizeDb": { | ||||
|           "model_type": "AutoOrManualValue", | ||||
|           "auto": true, | ||||
|           "model_type": "SourceSelectionValue", | ||||
|         	 "source": "auto", | ||||
|           "value": -90 | ||||
|         }, | ||||
|         "probeResponseThresholdDb": { | ||||
|           "model_type": "AutoOrManualValue", | ||||
|           "auto": true, | ||||
|           "model_type": "SourceSelectionValue", | ||||
|         	 "source": "auto", | ||||
|           "value": -90 | ||||
|         }, | ||||
|         "clientDisconnectThresholdDb": { | ||||
|           "model_type": "AutoOrManualValue", | ||||
|           "auto": true, | ||||
|           "model_type": "SourceSelectionValue", | ||||
|         	 "source": "auto", | ||||
|           "value": -90 | ||||
|         }, | ||||
|         "eirpTxPower": { | ||||
|           "model_type": "AutoOrManualValue", | ||||
|           "auto": false, | ||||
|           "model_type": "SourceSelectionValue", | ||||
|         	 "source": "auto", | ||||
|           "value": 32 | ||||
|         }, | ||||
|         "bestApEnabled": null, | ||||
|         "neighbouringListApConfig": { | ||||
|           "model_type": "NeighbouringAPListConfiguration", | ||||
|           "minSignal": -85, | ||||
|           "maxAps": 25 | ||||
|         }, | ||||
|         "minAutoCellSize": -80, | ||||
|         "perimeterDetectionEnabled": true, | ||||
|         "bestAPSteerType": "both", | ||||
|         "deauthAttackDetection": null, | ||||
| @@ -124,37 +106,28 @@ | ||||
|         "channelNumber": 36, | ||||
|         "manualChannelNumber": 36, | ||||
|         "backupChannelNumber": 44, | ||||
|         "autoChannelSelection": false, | ||||
|         "channelBandwidth": "is80MHz", | ||||
|         "bannedChannels": [], | ||||
|         "allowedChannels": [], | ||||
|         "rxCellSizeDb": { | ||||
|           "model_type": "AutoOrManualValue", | ||||
|           "auto": true, | ||||
|           "model_type": "SourceSelectionValue", | ||||
|         	 "source": "auto", | ||||
|           "value": -90 | ||||
|         }, | ||||
|         "probeResponseThresholdDb": { | ||||
|           "model_type": "AutoOrManualValue", | ||||
|           "auto": true, | ||||
|           "model_type": "SourceSelectionValue", | ||||
|         	 "source": "auto", | ||||
|           "value": -90 | ||||
|         }, | ||||
|         "clientDisconnectThresholdDb": { | ||||
|           "model_type": "AutoOrManualValue", | ||||
|           "auto": true, | ||||
|           "model_type": "SourceSelectionValue", | ||||
|         	 "source": "auto", | ||||
|           "value": -90 | ||||
|         }, | ||||
|         "eirpTxPower": { | ||||
|           "model_type": "AutoOrManualValue", | ||||
|           "auto": false, | ||||
|           "model_type": "SourceSelectionValue", | ||||
|         	 "source": "auto", | ||||
|           "value": 32 | ||||
|         }, | ||||
|         "bestApEnabled": null, | ||||
|         "neighbouringListApConfig": { | ||||
|           "model_type": "NeighbouringAPListConfiguration", | ||||
|           "minSignal": -85, | ||||
|           "maxAps": 25 | ||||
|         }, | ||||
|         "minAutoCellSize": -80, | ||||
|         "perimeterDetectionEnabled": true, | ||||
|         "bestAPSteerType": "both", | ||||
|         "deauthAttackDetection": null, | ||||
| @@ -168,39 +141,24 @@ | ||||
|         "radioType": "is2dot4GHz", | ||||
|         "radioAdminState": "enabled", | ||||
|         "fragmentationThresholdBytes": 2346, | ||||
|         "rtsCtsThreshold": 65535, | ||||
|         "autoChannelSelection": "disabled", | ||||
|         "radioMode": "modeN", | ||||
|         "mimoMode": "twoByTwo", | ||||
|         "wmmState": "enabled", | ||||
|         "uapsdState": "enabled", | ||||
|         "maxNumClients": 100, | ||||
|         "stationIsolation": "disabled", | ||||
|         "multicastRate": "auto", | ||||
|         "managementRate": "auto", | ||||
|         "activeScanSettings": { | ||||
|           "model_type": "ActiveScanSettings", | ||||
|           "enabled": true, | ||||
|           "scanFrequencySeconds": 10, | ||||
|           "scanDurationMillis": 65 | ||||
|         }, | ||||
|         "channelHopSettings": { | ||||
|           "model_type": "ChannelHopSettings", | ||||
|           "noiseFloorThresholdInDB": -75, | ||||
|           "noiseFloorThresholdTimeInSeconds": 180, | ||||
|           "nonWifiThresholdInPercentage": 50, | ||||
|           "nonWifiThresholdTimeInSeconds": 180, | ||||
|           "obssHopMode": "NON_WIFI" | ||||
|         "managementRate": { | ||||
|           "model_type": "SourceSelectionManagement", | ||||
|           "source": "auto", | ||||
|           "value": "auto" | ||||
|         }, | ||||
|         "bestApSettings": { | ||||
|           "model_type": "RadioBestApSettings", | ||||
|           "mlComputed": true, | ||||
|           "dropInSnrPercentage": 20, | ||||
|           "minLoadFactor": 50 | ||||
|         "model_type": "SourceSelectionSteering", | ||||
|           "source": "auto", | ||||
|           "value": { | ||||
| 	          "model_type": "RadioBestApSettings", | ||||
| 	          "mlComputed": true, | ||||
| 	          "dropInSnrPercentage": 30, | ||||
| 	          "minLoadFactor": 40 | ||||
|           } | ||||
|         }, | ||||
|         "forceScanDuringVoice": "disabled", | ||||
|         "legacyBSSRate": "enabled", | ||||
|         "beaconInterval": 100, | ||||
|         "deauthAttackDetection": null | ||||
|       }, | ||||
|       "is5GHzU": { | ||||
| @@ -208,39 +166,24 @@ | ||||
|         "radioType": "is5GHzU", | ||||
|         "radioAdminState": "enabled", | ||||
|         "fragmentationThresholdBytes": 2346, | ||||
|         "rtsCtsThreshold": 65535, | ||||
|         "autoChannelSelection": "disabled", | ||||
|         "radioMode": "modeAC", | ||||
|         "mimoMode": "twoByTwo", | ||||
|         "wmmState": "enabled", | ||||
|         "uapsdState": "enabled", | ||||
|         "maxNumClients": 100, | ||||
|         "stationIsolation": "disabled", | ||||
|         "multicastRate": "auto", | ||||
|         "managementRate": "auto", | ||||
|         "activeScanSettings": { | ||||
|           "model_type": "ActiveScanSettings", | ||||
|           "enabled": true, | ||||
|           "scanFrequencySeconds": 10, | ||||
|           "scanDurationMillis": 65 | ||||
|         }, | ||||
|         "channelHopSettings": { | ||||
|           "model_type": "ChannelHopSettings", | ||||
|           "noiseFloorThresholdInDB": -75, | ||||
|           "noiseFloorThresholdTimeInSeconds": 180, | ||||
|           "nonWifiThresholdInPercentage": 50, | ||||
|           "nonWifiThresholdTimeInSeconds": 180, | ||||
|           "obssHopMode": "NON_WIFI" | ||||
|         "managementRate": { | ||||
|           "model_type": "SourceSelectionManagement", | ||||
|           "source": "auto", | ||||
|           "value": "auto" | ||||
|         }, | ||||
|         "bestApSettings": { | ||||
|           "model_type": "RadioBestApSettings", | ||||
|           "mlComputed": true, | ||||
|           "dropInSnrPercentage": 30, | ||||
|           "minLoadFactor": 40 | ||||
|         "model_type": "SourceSelectionSteering", | ||||
|           "source": "auto", | ||||
|           "value": { | ||||
| 	          "model_type": "RadioBestApSettings", | ||||
| 	          "mlComputed": true, | ||||
| 	          "dropInSnrPercentage": 30, | ||||
| 	          "minLoadFactor": 40 | ||||
|           } | ||||
|         }, | ||||
|         "forceScanDuringVoice": "disabled", | ||||
|         "legacyBSSRate": "enabled", | ||||
|         "beaconInterval": 100, | ||||
|         "deauthAttackDetection": null | ||||
|       }, | ||||
|       "is5GHzL": { | ||||
| @@ -248,39 +191,24 @@ | ||||
|         "radioType": "is5GHzL", | ||||
|         "radioAdminState": "enabled", | ||||
|         "fragmentationThresholdBytes": 2346, | ||||
|         "rtsCtsThreshold": 65535, | ||||
|         "autoChannelSelection": "disabled", | ||||
|         "radioMode": "modeAC", | ||||
|         "mimoMode": "twoByTwo", | ||||
|         "wmmState": "enabled", | ||||
|         "uapsdState": "enabled", | ||||
|         "maxNumClients": 100, | ||||
|         "stationIsolation": "disabled", | ||||
|         "multicastRate": "auto", | ||||
|         "managementRate": "auto", | ||||
|         "activeScanSettings": { | ||||
|           "model_type": "ActiveScanSettings", | ||||
|           "enabled": true, | ||||
|           "scanFrequencySeconds": 10, | ||||
|           "scanDurationMillis": 65 | ||||
|         }, | ||||
|         "channelHopSettings": { | ||||
|           "model_type": "ChannelHopSettings", | ||||
|           "noiseFloorThresholdInDB": -75, | ||||
|           "noiseFloorThresholdTimeInSeconds": 180, | ||||
|           "nonWifiThresholdInPercentage": 50, | ||||
|           "nonWifiThresholdTimeInSeconds": 180, | ||||
|           "obssHopMode": "NON_WIFI" | ||||
|         "managementRate": { | ||||
|           "model_type": "SourceSelectionManagement", | ||||
|           "source": "auto", | ||||
|           "value": "auto" | ||||
|         }, | ||||
|         "bestApSettings": { | ||||
|           "model_type": "RadioBestApSettings", | ||||
|           "mlComputed": true, | ||||
|           "dropInSnrPercentage": 30, | ||||
|           "minLoadFactor": 40 | ||||
|         "model_type": "SourceSelectionSteering", | ||||
|           "source": "auto", | ||||
|           "value": { | ||||
| 	          "model_type": "RadioBestApSettings", | ||||
| 	          "mlComputed": true, | ||||
| 	          "dropInSnrPercentage": 30, | ||||
| 	          "minLoadFactor": 40 | ||||
|           } | ||||
|         }, | ||||
|         "forceScanDuringVoice": "disabled", | ||||
|         "legacyBSSRate": "enabled", | ||||
|         "beaconInterval": 100, | ||||
|         "deauthAttackDetection": null | ||||
|       } | ||||
|     } | ||||
| @@ -290,4 +218,4 @@ | ||||
|   "serial": "21P10C68818122", | ||||
|   "createdTimestamp": 1591653239821, | ||||
|   "lastModifiedTimestamp": 1591653241398 | ||||
| } | ||||
| } | ||||
|   | ||||
| @@ -10,55 +10,48 @@ | ||||
|     "countryCode" : "ca", | ||||
|     "maintenanceWindow" : null, | ||||
|     "rrmEnabled" : true, | ||||
|     "dailyRebalancingDetails" : { | ||||
|     "dailyActivityDetails" : { | ||||
|       "SUNDAY" : { | ||||
|         "model_type" : "LocationActivityDetails", | ||||
|         "busyTime" : "13:30", | ||||
|         "quietTime" : "3:30", | ||||
|         "timezone" : "US/Eastern", | ||||
|         "lastBusySnapshot" : 0 | ||||
|         "timezone" : "US/Eastern" | ||||
|       }, | ||||
|       "MONDAY" : { | ||||
|         "model_type" : "LocationActivityDetails", | ||||
|         "busyTime" : "13:30", | ||||
|         "quietTime" : "3:30", | ||||
|         "timezone" : "US/Eastern", | ||||
|         "lastBusySnapshot" : 0 | ||||
|         "timezone" : "US/Eastern" | ||||
|       }, | ||||
|       "TUESDAY" : { | ||||
|         "model_type" : "LocationActivityDetails", | ||||
|         "busyTime" : "13:30", | ||||
|         "quietTime" : "3:30", | ||||
|         "timezone" : "US/Eastern", | ||||
|         "lastBusySnapshot" : 0 | ||||
|         "timezone" : "US/Eastern" | ||||
|       }, | ||||
|       "WEDNESDAY" : { | ||||
|         "model_type" : "LocationActivityDetails", | ||||
|         "busyTime" : "13:30", | ||||
|         "quietTime" : "3:30", | ||||
|         "timezone" : "US/Eastern", | ||||
|         "lastBusySnapshot" : 0 | ||||
|         "timezone" : "US/Eastern" | ||||
|       }, | ||||
|       "THURSDAY" : { | ||||
|         "model_type" : "LocationActivityDetails", | ||||
|         "busyTime" : "13:30", | ||||
|         "quietTime" : "3:30", | ||||
|         "timezone" : "US/Eastern", | ||||
|         "lastBusySnapshot" : 0 | ||||
|         "timezone" : "US/Eastern" | ||||
|       }, | ||||
|       "FRIDAY" : { | ||||
|         "model_type" : "LocationActivityDetails", | ||||
|         "busyTime" : "13:30", | ||||
|         "quietTime" : "3:30", | ||||
|         "timezone" : "US/Eastern", | ||||
|         "lastBusySnapshot" : 0 | ||||
|         "timezone" : "US/Eastern" | ||||
|       }, | ||||
|       "SATURDAY" : { | ||||
|         "model_type" : "LocationActivityDetails", | ||||
|         "busyTime" : "13:30", | ||||
|         "quietTime" : "3:30", | ||||
|         "timezone" : "US/Eastern", | ||||
|         "lastBusySnapshot" : 0 | ||||
|         "timezone" : "US/Eastern" | ||||
|       } | ||||
|     } | ||||
|   }, | ||||
|   | ||||
| @@ -1,54 +1,55 @@ | ||||
| { | ||||
|   "model_type": "Profile", | ||||
|   "id": 5, | ||||
|   "customerId": 2, | ||||
|   "profileType": "equipment_ap", | ||||
|   "name": "DefaultApProfile", | ||||
|   "details": { | ||||
|     "model_type": "ApNetworkConfiguration", | ||||
|     "networkConfigVersion": "AP-1", | ||||
|     "equipmentType": "AP", | ||||
|     "vlanNative": true, | ||||
|     "vlan": 0, | ||||
|     "ntpServer": { | ||||
|       "model_type": "AutoOrManualString", | ||||
|       "auto": true, | ||||
|       "value": "pool.ntp.org" | ||||
|     }, | ||||
|     "syslogRelay": null, | ||||
|     "rtlsSettings": null, | ||||
|     "syntheticClientEnabled": true, | ||||
|     "ledControlEnabled": true, | ||||
|     "equipmentDiscovery": false, | ||||
|     "radioMap": { | ||||
|       "is5GHz": { | ||||
|         "model_type": "RadioProfileConfiguration", | ||||
|         "bestApEnabled": true, | ||||
|         "bestAPSteerType": "both" | ||||
|       }, | ||||
|       "is2dot4GHz": { | ||||
|         "model_type": "RadioProfileConfiguration", | ||||
|         "bestApEnabled": true, | ||||
|         "bestAPSteerType": "both" | ||||
|       }, | ||||
|       "is5GHzU": { | ||||
|         "model_type": "RadioProfileConfiguration", | ||||
|         "bestApEnabled": true, | ||||
|         "bestAPSteerType": "both" | ||||
|       }, | ||||
|       "is5GHzL": { | ||||
|         "model_type": "RadioProfileConfiguration", | ||||
|         "bestApEnabled": true, | ||||
|         "bestAPSteerType": "both" | ||||
|       } | ||||
|     }, | ||||
|     "profileType": "equipment_ap" | ||||
|   }, | ||||
|   "createdTimestamp": 1591653239947, | ||||
|   "lastModifiedTimestamp": 1591654336724, | ||||
|   "childProfileIds": [ | ||||
|     6, | ||||
|     7, | ||||
|     8 | ||||
|   ] | ||||
| } | ||||
| 	"model_type": "Profile", | ||||
| 	"id": 23, | ||||
| 	"customerId": 2, | ||||
| 	"profileType": "equipment_ap", | ||||
| 	"name": "ApProfile-3-radios-passpoint", | ||||
| 	"details": { | ||||
| 		"model_type": "ApNetworkConfiguration", | ||||
| 		"networkConfigVersion": "AP-1", | ||||
| 		"equipmentType": "AP", | ||||
| 		"vlanNative": true, | ||||
| 		"vlan": 0, | ||||
| 		"ntpServer": { | ||||
| 			"model_type": "AutoOrManualString", | ||||
| 			"auto": true, | ||||
| 			"value": "pool.ntp.org" | ||||
| 		}, | ||||
| 		"syslogRelay": null, | ||||
| 		"rtlsSettings": null, | ||||
| 		"syntheticClientEnabled": true, | ||||
| 		"ledControlEnabled": true, | ||||
| 		"equipmentDiscovery": false, | ||||
| 		"greTunnelName": null, | ||||
| 		"greParentIfName": null, | ||||
| 		"greLocalInetAddr": null, | ||||
| 		"greRemoteInetAddr": null, | ||||
| 		"greRemoteMacAddr": null, | ||||
| 		"radioMap": { | ||||
| 			"is2dot4GHz": { | ||||
| 				"model_type": "RadioProfileConfiguration", | ||||
| 				"bestApEnabled": true, | ||||
| 				"bestAPSteerType": "both" | ||||
| 			}, | ||||
| 			"is5GHzU": { | ||||
| 				"model_type": "RadioProfileConfiguration", | ||||
| 				"bestApEnabled": true, | ||||
| 				"bestAPSteerType": "both" | ||||
| 			}, | ||||
| 			"is5GHzL": { | ||||
| 				"model_type": "RadioProfileConfiguration", | ||||
| 				"bestApEnabled": true, | ||||
| 				"bestAPSteerType": "both" | ||||
| 			} | ||||
| 		}, | ||||
| 		"profileType": "equipment_ap" | ||||
| 	}, | ||||
| 	"createdTimestamp": 1605711197140, | ||||
| 	"lastModifiedTimestamp": 1605711197140, | ||||
| 	"childProfileIds": [ | ||||
| 		16, | ||||
| 		21, | ||||
| 		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,34 +1,34 @@ | ||||
| [ | ||||
| { | ||||
|   "model_type": "Profile", | ||||
|   "id": 1, | ||||
|   "customerId": 2, | ||||
|   "profileType": "radius", | ||||
|   "name": "RadiusProfileOttawa", | ||||
|   "details": { | ||||
|     "model_type": "RadiusProfile", | ||||
|     "subnetConfiguration": null, | ||||
|     "serviceRegionMap": { | ||||
|       "Ottawa": { | ||||
|         "model_type": "RadiusServiceRegion", | ||||
|         "serverMap": { | ||||
|           "RadiusProfileOttawa": [ | ||||
|             { | ||||
|               "model_type": "RadiusServer", | ||||
|               "ipAddress": "localhost", | ||||
|               "secret": "testing123", | ||||
|               "authPort": 1812, | ||||
|               "timeout": null | ||||
|             } | ||||
|           ] | ||||
|         }, | ||||
|         "regionName": "Ottawa" | ||||
|       } | ||||
|     }, | ||||
|     "profileType": "radius" | ||||
|   }, | ||||
|   "createdTimestamp": 1591653174195, | ||||
|   "lastModifiedTimestamp": 1591653174195, | ||||
|   "childProfileIds": [] | ||||
| } | ||||
|         { | ||||
|             "model_type": "Profile", | ||||
|             "id": 1, | ||||
|             "customerId": 2, | ||||
|             "profileType": "radius", | ||||
|             "name": "Radius-Profile", | ||||
|             "details": { | ||||
|                 "model_type": "RadiusProfile", | ||||
|                 "subnetConfiguration": null, | ||||
|                 "serviceRegionMap": { | ||||
|                     "Ottawa": { | ||||
|                         "model_type": "RadiusServiceRegion", | ||||
|                         "serverMap": { | ||||
|                             "Radius-Profile": [ | ||||
|                                 { | ||||
|                                     "model_type": "RadiusServer", | ||||
|                                     "ipAddress": "192.168.0.1", | ||||
|                                     "secret": "testing123", | ||||
|                                     "authPort": 1812, | ||||
|                                     "timeout": null | ||||
|                                 } | ||||
|                             ] | ||||
|                         }, | ||||
|                         "regionName": "Ottawa" | ||||
|                     } | ||||
|                 }, | ||||
|                 "profileType": "radius" | ||||
|             }, | ||||
|             "createdTimestamp": 1601961451668, | ||||
|             "lastModifiedTimestamp": 1601961451668, | ||||
|             "childProfileIds": [] | ||||
|         } | ||||
| ] | ||||
							
								
								
									
										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,184 +1,134 @@ | ||||
| [ | ||||
| { | ||||
|   "model_type": "Profile", | ||||
|   "id": 6, | ||||
|   "customerId": 2, | ||||
|   "profileType": "ssid", | ||||
|   "name": "DefaultSsid-2g", | ||||
|   "details": { | ||||
|     "model_type": "SsidConfiguration", | ||||
|     "ssid": "Default-SSID-2g", | ||||
|     "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": [ | ||||
|       "is5GHzU" | ||||
|     ], | ||||
|     "ssidAdminState": "enabled", | ||||
|     "secureMode": "wpa2PSK", | ||||
|     "vlanId": 1, | ||||
|     "keyStr": "12345678", | ||||
|     "broadcastSsid": "enabled", | ||||
|     "keyRefresh": 0, | ||||
|     "noLocalSubnets": false, | ||||
|     "radiusServiceName": null, | ||||
|     "captivePortalId": null, | ||||
|     "bandwidthLimitDown": 0, | ||||
|     "bandwidthLimitUp": 0, | ||||
|     "videoTrafficOnly": false, | ||||
|     "radioBasedConfigs": { | ||||
|       "is5GHz": { | ||||
|         "model_type": "RadioBasedSsidConfiguration", | ||||
|         "enable80211r": null, | ||||
|         "enable80211k": null, | ||||
|         "enable80211v": null | ||||
|       }, | ||||
|       "is2dot4GHz": { | ||||
|         "model_type": "RadioBasedSsidConfiguration", | ||||
|         "enable80211r": null, | ||||
|         "enable80211k": null, | ||||
|         "enable80211v": null | ||||
|       }, | ||||
|       "is5GHzU": { | ||||
|         "model_type": "RadioBasedSsidConfiguration", | ||||
|         "enable80211r": null, | ||||
|         "enable80211k": null, | ||||
|         "enable80211v": null | ||||
|       }, | ||||
|       "is5GHzL": { | ||||
|         "model_type": "RadioBasedSsidConfiguration", | ||||
|         "enable80211r": null, | ||||
|         "enable80211k": null, | ||||
|         "enable80211v": null | ||||
|       } | ||||
|     }, | ||||
|     "bonjourGatewayProfileId": null, | ||||
|     "enable80211w": null, | ||||
|     "wepConfig": null, | ||||
|     "forwardMode": null, | ||||
|     "profileType": "ssid" | ||||
|   }, | ||||
|   "createdTimestamp": 1591654301763, | ||||
|   "lastModifiedTimestamp": 1591654301763, | ||||
|   "childProfileIds": [] | ||||
| } | ||||
| ] | ||||
| 	{ | ||||
| 		"model_type": "Profile", | ||||
| 		"id": 15, | ||||
| 		"customerId": 2, | ||||
| 		"profileType": "ssid", | ||||
| 		"name": "TipWlan-cloud-hotspot-access", | ||||
| 		"details": { | ||||
| 			"model_type": "SsidConfiguration", | ||||
| 			"ssid": "TipWlan-cloud-hotspot-access", | ||||
| 			"appliedRadios": [ | ||||
| 				"is5GHzL", | ||||
| 				"is5GHzU" | ||||
| 			], | ||||
| 			"ssidAdminState": "enabled", | ||||
| 			"secureMode": "wpa2PSK", | ||||
| 			"vlanId": 1, | ||||
| 			"keyStr": "testing123", | ||||
| 			"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": 1605711164949, | ||||
| 		"lastModifiedTimestamp": 1605711223372, | ||||
| 		"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" : [ { | ||||
|     "model_type" : "OpensyncAPSsidConfig", | ||||
|     "radioType" : "is2dot4GHz", | ||||
|     "ssid" : "Connectus-local", | ||||
|     "ssid" : "Tip-wlan-local", | ||||
|     "encryption" : "WPA-PSK", | ||||
|     "key" : "12345678", | ||||
|     "mode" : "2", | ||||
| @@ -18,7 +18,7 @@ | ||||
|   }, { | ||||
|     "model_type" : "OpensyncAPSsidConfig", | ||||
|     "radioType" : "is5GHzL", | ||||
|     "ssid" : "Connectus-local-5l", | ||||
|     "ssid" : "Tip-wlan-local-5l", | ||||
|     "encryption" : "WPA-PSK", | ||||
|     "key" : "12345678", | ||||
|     "mode" : "2", | ||||
|   | ||||
| @@ -20,10 +20,10 @@ | ||||
|  | ||||
| 			<modules> | ||||
| 				<module>../opensync-ext-interface</module> | ||||
| 				<module>../opensync-ext-static</module> | ||||
| 				<module>../opensync-ext-cloud</module> | ||||
| 				<module>../opensync-gateway</module> | ||||
| 				<module>../opensync-ext-static</module> | ||||
| 				<module>../opensync-gateway-static-process</module> | ||||
| 				<module>../opensync-ext-cloud</module> | ||||
| 				<module>../opensync-gateway-cloud-process</module> | ||||
| 			</modules> | ||||
| 		</profile> | ||||
|   | ||||
| @@ -11,9 +11,11 @@ | ||||
| 	<name>opensync-gateway-cloud-docker</name> | ||||
| 	<description>Docker definition for opensync gateway that uses cloud configuration</description> | ||||
|  | ||||
| 	<properties> | ||||
| 	<properties>	 | ||||
| 		<docker.fabric.version>0.28.0</docker.fabric.version> | ||||
| 		<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> | ||||
|  | ||||
| 	<dependencies> | ||||
| @@ -38,6 +40,9 @@ | ||||
| 						<image> | ||||
| 							<name>opensync-gateway-cloud:${project.version}</name> | ||||
| 							<build> | ||||
| 								<tags> | ||||
| 									<tag>${project.version}-${timestamp}</tag> | ||||
| 								</tags> 							 | ||||
| 								<filter>@</filter> | ||||
| 								<cleanup>try</cleanup> | ||||
| 								<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 | ||||
| MAINTAINER ConnectUs | ||||
| MAINTAINER TipWlan | ||||
|  | ||||
| # Update the package list and upgrade installed packages | ||||
| 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 app/opensync/logback.xml /app/opensync/logback.xml | ||||
| COPY app/run.sh /app | ||||
| COPY app/commit.properties /app | ||||
|  | ||||
| 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} | ||||
| @@ -13,16 +13,22 @@ | ||||
|       <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern> | ||||
|     </encoder> | ||||
|   </appender> | ||||
|    | ||||
|   <!--  | ||||
|   <appender name="FILE" class="ch.qos.logback.core.FileAppender"> | ||||
|     <file>myApp.log</file> | ||||
|  | ||||
|   <appender name="mqttDataFile" class="ch.qos.logback.core.rolling.RollingFileAppender"> | ||||
|     <file>/app/logs/mqttData.log</file> | ||||
|     <append>true</append> | ||||
|     <encoder> | ||||
|       <pattern>%date %level [%thread] %logger{10} [%file:%line] %msg%n</pattern> | ||||
|       <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> | ||||
| @@ -57,20 +63,16 @@ | ||||
|   <logger name="org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainer" level="INFO"/> | ||||
|    | ||||
|   <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.vmware.ovsdb.service.OvsdbConnectionInfo" level="OFF"/> | ||||
|   <logger name="com.vmware.ovsdb.netty.OvsdbConnectionHandler" level="ERROR"/> | ||||
|    | ||||
|   <logger name="MQTT_DATA" level="DEBUG"/> | ||||
|  | ||||
|   <!--    | ||||
|   <logger name="org.springframework.security.web.authentication.preauth" level="DEBUG"/> | ||||
|    --> | ||||
|     | ||||
|   <logger name="MQTT_DATA" level="DEBUG" additivity="false"> | ||||
|     <appender-ref ref="mqttDataFile"/> | ||||
|   </logger> | ||||
|  | ||||
|   <root level="WARN"> | ||||
| <!--    <appender-ref ref="stdout"/>--> | ||||
|     <appender-ref ref="logfile"/> | ||||
|   </root> | ||||
|    | ||||
|  | ||||
| </configuration> | ||||
|   | ||||
| @@ -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.trustStore=/opt/tip-wlan/certs/truststore.jks" | ||||
| 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+=" -Dconnectus.ovsdb.managerAddr=opensync-controller" | ||||
| OVSDB_PROPS+=" -Dconnectus.ovsdb.listenPort=6640 " | ||||
| OVSDB_PROPS+=" -Dconnectus.ovsdb.redirector.listenPort=6643" | ||||
| OVSDB_PROPS+=" -Dconnectus.ovsdb.timeoutSec=30" | ||||
| OVSDB_PROPS+=" -Dconnectus.ovsdb.trustStore=/opt/tip-wlan/certs/truststore.jks" | ||||
| OVSDB_PROPS+=" -Dconnectus.ovsdb.keyStore=/opt/tip-wlan/certs/server.pkcs12" | ||||
| OVSDB_PROPS+=" -Dconnectus.ovsdb.configFileName=/app/opensync/config_2_ssids.json" | ||||
| OVSDB_PROPS+=" -Dtip.wlan.ovsdb.managerAddr=$OVSDB_MANAGER_HOST" | ||||
| OVSDB_PROPS+=" -Dtip.wlan.ovsdb.listenPort=6640 " | ||||
| OVSDB_PROPS+=" -Dtip.wlan.ovsdb.redirector.listenPort=6643" | ||||
| OVSDB_PROPS+=" -Dtip.wlan.ovsdb.timeoutSec=30" | ||||
| OVSDB_PROPS+=" -Dtip.wlan.ovsdb.trustStore=/opt/tip-wlan/certs/truststore.jks" | ||||
| OVSDB_PROPS+=" -Dtip.wlan.ovsdb.keyStore=/opt/tip-wlan/certs/server.pkcs12" | ||||
| OVSDB_PROPS+=" -Dtip.wlan.ovsdb.configFileName=/app/opensync/config_2_ssids.json" | ||||
|  | ||||
| MQTT_PROPS=" " | ||||
| MQTT_PROPS+=" -Dconnectus.mqttBroker.address=tip-wlan-opensync-mqtt-broker" | ||||
| MQTT_PROPS+=" -Dconnectus.mqttBroker.listenPort=1883" | ||||
| MQTT_PROPS+=" -Dtip.wlan.mqttBroker.address.internal=$MQTT_BROKER_HOST_INTERNAL" | ||||
| 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+=" -Dserver.port=443" | ||||
| RESTAPI_PROPS+=" -Dserver.port=9096 -Dtip.wlan.secondaryPort=9097" | ||||
|  | ||||
| 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=" " | ||||
|  | ||||
| java $ALL_PROPS -jar app.jar | ||||
| ## 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 | ||||
|   | ||||
							
								
								
									
										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> | ||||
| 			<version>${tip-wlan-cloud.release.version}</version> | ||||
| 		</dependency> | ||||
| 		<dependency> | ||||
| 			<artifactId>base-container</artifactId> | ||||
| 			<groupId>com.telecominfraproject.wlan</groupId> | ||||
| 			<version>${tip-wlan-cloud.release.version}</version> | ||||
| 		</dependency> | ||||
|  | ||||
|         <dependency> | ||||
|             <artifactId>filestore-service</artifactId> | ||||
|             <groupId>com.telecominfraproject.wlan</groupId> | ||||
|             <version>${tip-wlan-cloud.release.version}</version> | ||||
|         </dependency> | ||||
|  | ||||
|  | ||||
| 		<dependency> | ||||
| 			<artifactId>customer-service-remote</artifactId> | ||||
| 			<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", | ||||
| "keyAlias":"clientqrcode", | ||||
| "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 | ||||
| #this user/password is used together with http_digest_auth and http_basic_auth spring profiles | ||||
| 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 | ||||
| server.port=9096 | ||||
| @@ -94,6 +96,8 @@ tip.wlan.listOfPathsToProtect=/api,/filestore | ||||
| #this server only supports REST requests, CSRF would get in the way | ||||
| tip.wlan.csrf-enabled=false | ||||
|  | ||||
| # do not allow clientCn alteration | ||||
| tip.wlan.preventClientCnAlteration=false | ||||
| #properties that configure remote interfaces to communicate with cloud | ||||
| # when separate portal - prov - ssc processes are in use: | ||||
| ##SSC-related services  | ||||
| @@ -101,6 +105,9 @@ tip.wlan.csrf-enabled=false | ||||
| #tip.wlan.statusServiceBaseUrl=https://localhost:9031 | ||||
| #tip.wlan.routingServiceBaseUrl=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 | ||||
| #tip.wlan.customerServiceBaseUrl=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.firmwareServiceBaseUrl=https://localhost:9091 | ||||
| #tip.wlan.manufacturerServiceBaseUrl=https://localhost:9091 | ||||
| #tip.wlan.portalUserServiceBaseUrl=https://localhost:9091 | ||||
|  | ||||
| # For all-cloud-in-one-process :  | ||||
| #SSC-related services  | ||||
| @@ -115,14 +123,20 @@ tip.wlan.cloudEventDispatcherBaseUrl=https://localhost:9092 | ||||
| tip.wlan.statusServiceBaseUrl=https://localhost:9092 | ||||
| tip.wlan.routingServiceBaseUrl=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 | ||||
| tip.wlan.customerServiceBaseUrl=https://localhost:9092 | ||||
| tip.wlan.locationServiceBaseUrl=https://localhost:9092 | ||||
| tip.wlan.equipmentServiceBaseUrl=https://localhost:9092 | ||||
| tip.wlan.profileServiceBaseUrl=https://localhost:9092 | ||||
| tip.wlan.clientServiceBaseUrl=https://localhost:9092 | ||||
| tip.wlan.firmwareServiceBaseUrl=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.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.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.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> | ||||
|   | ||||
| @@ -60,7 +60,6 @@ | ||||
|   <logger name ="com.telecominfraproject.wlan.core.server.webconfig.WebMvcRegistrationsConfiguration$1$1" level="INFO"/> | ||||
|    | ||||
|   <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.netty.OvsdbConnectionHandler" level="ERROR"/> | ||||
|    | ||||
|   | ||||
| @@ -14,6 +14,8 @@ | ||||
| 	<properties> | ||||
| 		<docker.fabric.version>0.28.0</docker.fabric.version> | ||||
| 		<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> | ||||
|  | ||||
| 	<dependencies> | ||||
| @@ -32,12 +34,15 @@ | ||||
| 				<artifactId>docker-maven-plugin</artifactId> | ||||
| 				<version>${docker.fabric.version}</version> | ||||
| 				<configuration> | ||||
| 					<verbose>true</verbose> | ||||
| 					<verbose>false</verbose> | ||||
| 					<apiVersion>1.23</apiVersion> | ||||
| 					<images> | ||||
| 						<image> | ||||
| 							<name>opensync-gateway-static:${project.version}</name> | ||||
| 							<build> | ||||
| 								<tags> | ||||
| 									<tag>${project.version}-${timestamp}</tag> | ||||
| 								</tags> 								 | ||||
| 								<filter>@</filter> | ||||
| 								<cleanup>try</cleanup> | ||||
| 								<dockerFileDir>${project.basedir}/src/main/docker</dockerFileDir> | ||||
| @@ -60,6 +65,9 @@ | ||||
|                                                 <image> | ||||
|                                                         <name>opensync-gateway-and-mqtt:${project.version}</name> | ||||
|                                                         <build> | ||||
|                                                             <tags> | ||||
|                                                                <tag>${project.version}-${timestamp}</tag> | ||||
|                                                             </tags> | ||||
|                                                                 <filter>@</filter> | ||||
|                                                                 <cleanup>try</cleanup> | ||||
|                                                                 <dockerFileDir>${project.basedir}/src/main/docker-opensync-gateway-and-mqtt</dockerFileDir> | ||||
|   | ||||
| @@ -1,6 +1,6 @@ | ||||
| FROM adoptopenjdk/openjdk13:alpine-jre | ||||
|  | ||||
| LABEL maintainer="ConnectUs.ai as part of the Telecom Infrastructure Project" | ||||
| LABEL maintainer="TipWlan" | ||||
| LABEL version="1.0" | ||||
| LABEL description="This image runs the mqtt broker (mosquitto) and \ | ||||
| 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/ProfileSsid.json /app/opensync/ProfileSsid.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"] | ||||
|  | ||||
|   | ||||
| @@ -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, | ||||
|         "manualChannelNumber": 6, | ||||
|         "backupChannelNumber": 11, | ||||
|         "autoChannelSelection": false, | ||||
|         "channelBandwidth": "is20MHz", | ||||
|         "bannedChannels": [], | ||||
|         "allowedChannels": [], | ||||
|         "rxCellSizeDb": { | ||||
|           "model_type": "AutoOrManualValue", | ||||
|           "auto": true, | ||||
|           "model_type": "SourceSelectionValue", | ||||
|         "source": "auto", | ||||
|           "value": -90 | ||||
|         }, | ||||
|         "probeResponseThresholdDb": { | ||||
|           "model_type": "AutoOrManualValue", | ||||
|           "auto": true, | ||||
|           "model_type": "SourceSelectionValue", | ||||
|         "source": "auto", | ||||
|           "value": -90 | ||||
|         }, | ||||
|         "clientDisconnectThresholdDb": { | ||||
|           "model_type": "AutoOrManualValue", | ||||
|           "auto": true, | ||||
|           "model_type": "SourceSelectionValue", | ||||
|         	 "source": "auto", | ||||
|           "value": -90 | ||||
|         }, | ||||
|         "eirpTxPower": { | ||||
|           "model_type": "AutoOrManualValue", | ||||
|           "auto": false, | ||||
|           "model_type": "SourceSelectionValue", | ||||
|         	 "source": "auto", | ||||
|           "value": 32 | ||||
|         }, | ||||
|         "bestApEnabled": null, | ||||
|         "neighbouringListApConfig": { | ||||
|           "model_type": "NeighbouringAPListConfiguration", | ||||
|           "minSignal": -85, | ||||
|           "maxAps": 25 | ||||
|         }, | ||||
|         "minAutoCellSize": -80, | ||||
|         "perimeterDetectionEnabled": true, | ||||
|         "bestAPSteerType": "both", | ||||
|         "deauthAttackDetection": null, | ||||
| @@ -81,37 +72,28 @@ | ||||
|         "channelNumber": 149, | ||||
|         "manualChannelNumber": 149, | ||||
|         "backupChannelNumber": 154, | ||||
|         "autoChannelSelection": false, | ||||
|         "channelBandwidth": "is80MHz", | ||||
|         "bannedChannels": [], | ||||
|         "allowedChannels": [], | ||||
|         "rxCellSizeDb": { | ||||
|           "model_type": "AutoOrManualValue", | ||||
|           "auto": true, | ||||
|           "model_type": "SourceSelectionValue", | ||||
|         	 "source": "auto", | ||||
|           "value": -90 | ||||
|         }, | ||||
|         "probeResponseThresholdDb": { | ||||
|           "model_type": "AutoOrManualValue", | ||||
|           "auto": true, | ||||
|           "model_type": "SourceSelectionValue", | ||||
|         	 "source": "auto", | ||||
|           "value": -90 | ||||
|         }, | ||||
|         "clientDisconnectThresholdDb": { | ||||
|           "model_type": "AutoOrManualValue", | ||||
|           "auto": true, | ||||
|           "model_type": "SourceSelectionValue", | ||||
|         	 "source": "auto", | ||||
|           "value": -90 | ||||
|         }, | ||||
|         "eirpTxPower": { | ||||
|           "model_type": "AutoOrManualValue", | ||||
|           "auto": false, | ||||
|           "model_type": "SourceSelectionValue", | ||||
|         	 "source": "auto", | ||||
|           "value": 32 | ||||
|         }, | ||||
|         "bestApEnabled": null, | ||||
|         "neighbouringListApConfig": { | ||||
|           "model_type": "NeighbouringAPListConfiguration", | ||||
|           "minSignal": -85, | ||||
|           "maxAps": 25 | ||||
|         }, | ||||
|         "minAutoCellSize": -80, | ||||
|         "perimeterDetectionEnabled": true, | ||||
|         "bestAPSteerType": "both", | ||||
|         "deauthAttackDetection": null, | ||||
| @@ -124,37 +106,28 @@ | ||||
|         "channelNumber": 36, | ||||
|         "manualChannelNumber": 36, | ||||
|         "backupChannelNumber": 44, | ||||
|         "autoChannelSelection": false, | ||||
|         "channelBandwidth": "is80MHz", | ||||
|         "bannedChannels": [], | ||||
|         "allowedChannels": [], | ||||
|         "rxCellSizeDb": { | ||||
|           "model_type": "AutoOrManualValue", | ||||
|           "auto": true, | ||||
|           "model_type": "SourceSelectionValue", | ||||
|         	 "source": "auto", | ||||
|           "value": -90 | ||||
|         }, | ||||
|         "probeResponseThresholdDb": { | ||||
|           "model_type": "AutoOrManualValue", | ||||
|           "auto": true, | ||||
|           "model_type": "SourceSelectionValue", | ||||
|         	 "source": "auto", | ||||
|           "value": -90 | ||||
|         }, | ||||
|         "clientDisconnectThresholdDb": { | ||||
|           "model_type": "AutoOrManualValue", | ||||
|           "auto": true, | ||||
|           "model_type": "SourceSelectionValue", | ||||
|         	 "source": "auto", | ||||
|           "value": -90 | ||||
|         }, | ||||
|         "eirpTxPower": { | ||||
|           "model_type": "AutoOrManualValue", | ||||
|           "auto": false, | ||||
|           "model_type": "SourceSelectionValue", | ||||
|         	 "source": "auto", | ||||
|           "value": 32 | ||||
|         }, | ||||
|         "bestApEnabled": null, | ||||
|         "neighbouringListApConfig": { | ||||
|           "model_type": "NeighbouringAPListConfiguration", | ||||
|           "minSignal": -85, | ||||
|           "maxAps": 25 | ||||
|         }, | ||||
|         "minAutoCellSize": -80, | ||||
|         "perimeterDetectionEnabled": true, | ||||
|         "bestAPSteerType": "both", | ||||
|         "deauthAttackDetection": null, | ||||
| @@ -168,39 +141,24 @@ | ||||
|         "radioType": "is2dot4GHz", | ||||
|         "radioAdminState": "enabled", | ||||
|         "fragmentationThresholdBytes": 2346, | ||||
|         "rtsCtsThreshold": 65535, | ||||
|         "autoChannelSelection": "disabled", | ||||
|         "radioMode": "modeN", | ||||
|         "mimoMode": "twoByTwo", | ||||
|         "wmmState": "enabled", | ||||
|         "uapsdState": "enabled", | ||||
|         "maxNumClients": 100, | ||||
|         "stationIsolation": "disabled", | ||||
|         "multicastRate": "auto", | ||||
|         "managementRate": "auto", | ||||
|         "activeScanSettings": { | ||||
|           "model_type": "ActiveScanSettings", | ||||
|           "enabled": true, | ||||
|           "scanFrequencySeconds": 10, | ||||
|           "scanDurationMillis": 65 | ||||
|         }, | ||||
|         "channelHopSettings": { | ||||
|           "model_type": "ChannelHopSettings", | ||||
|           "noiseFloorThresholdInDB": -75, | ||||
|           "noiseFloorThresholdTimeInSeconds": 180, | ||||
|           "nonWifiThresholdInPercentage": 50, | ||||
|           "nonWifiThresholdTimeInSeconds": 180, | ||||
|           "obssHopMode": "NON_WIFI" | ||||
|         "managementRate": { | ||||
|           "model_type": "SourceSelectionManagement", | ||||
|           "source": "auto", | ||||
|           "value": "auto" | ||||
|         }, | ||||
|         "bestApSettings": { | ||||
|           "model_type": "RadioBestApSettings", | ||||
|           "mlComputed": true, | ||||
|           "dropInSnrPercentage": 20, | ||||
|           "minLoadFactor": 50 | ||||
|         "model_type": "SourceSelectionSteering", | ||||
|           "source": "auto", | ||||
|           "value": { | ||||
| 	          "model_type": "RadioBestApSettings", | ||||
| 	          "mlComputed": true, | ||||
| 	          "dropInSnrPercentage": 30, | ||||
| 	          "minLoadFactor": 40 | ||||
|           } | ||||
|         }, | ||||
|         "forceScanDuringVoice": "disabled", | ||||
|         "legacyBSSRate": "enabled", | ||||
|         "beaconInterval": 100, | ||||
|         "deauthAttackDetection": null | ||||
|       }, | ||||
|       "is5GHzU": { | ||||
| @@ -208,39 +166,24 @@ | ||||
|         "radioType": "is5GHzU", | ||||
|         "radioAdminState": "enabled", | ||||
|         "fragmentationThresholdBytes": 2346, | ||||
|         "rtsCtsThreshold": 65535, | ||||
|         "autoChannelSelection": "disabled", | ||||
|         "radioMode": "modeAC", | ||||
|         "mimoMode": "twoByTwo", | ||||
|         "wmmState": "enabled", | ||||
|         "uapsdState": "enabled", | ||||
|         "maxNumClients": 100, | ||||
|         "stationIsolation": "disabled", | ||||
|         "multicastRate": "auto", | ||||
|         "managementRate": "auto", | ||||
|         "activeScanSettings": { | ||||
|           "model_type": "ActiveScanSettings", | ||||
|           "enabled": true, | ||||
|           "scanFrequencySeconds": 10, | ||||
|           "scanDurationMillis": 65 | ||||
|         }, | ||||
|         "channelHopSettings": { | ||||
|           "model_type": "ChannelHopSettings", | ||||
|           "noiseFloorThresholdInDB": -75, | ||||
|           "noiseFloorThresholdTimeInSeconds": 180, | ||||
|           "nonWifiThresholdInPercentage": 50, | ||||
|           "nonWifiThresholdTimeInSeconds": 180, | ||||
|           "obssHopMode": "NON_WIFI" | ||||
|         "managementRate": { | ||||
|           "model_type": "SourceSelectionManagement", | ||||
|           "source": "auto", | ||||
|           "value": "auto" | ||||
|         }, | ||||
|         "bestApSettings": { | ||||
|           "model_type": "RadioBestApSettings", | ||||
|           "mlComputed": true, | ||||
|           "dropInSnrPercentage": 30, | ||||
|           "minLoadFactor": 40 | ||||
|         "model_type": "SourceSelectionSteering", | ||||
|           "source": "auto", | ||||
|           "value": { | ||||
| 	          "model_type": "RadioBestApSettings", | ||||
| 	          "mlComputed": true, | ||||
| 	          "dropInSnrPercentage": 30, | ||||
| 	          "minLoadFactor": 40 | ||||
|           } | ||||
|         }, | ||||
|         "forceScanDuringVoice": "disabled", | ||||
|         "legacyBSSRate": "enabled", | ||||
|         "beaconInterval": 100, | ||||
|         "deauthAttackDetection": null | ||||
|       }, | ||||
|       "is5GHzL": { | ||||
| @@ -248,39 +191,24 @@ | ||||
|         "radioType": "is5GHzL", | ||||
|         "radioAdminState": "enabled", | ||||
|         "fragmentationThresholdBytes": 2346, | ||||
|         "rtsCtsThreshold": 65535, | ||||
|         "autoChannelSelection": "disabled", | ||||
|         "radioMode": "modeAC", | ||||
|         "mimoMode": "twoByTwo", | ||||
|         "wmmState": "enabled", | ||||
|         "uapsdState": "enabled", | ||||
|         "maxNumClients": 100, | ||||
|         "stationIsolation": "disabled", | ||||
|         "multicastRate": "auto", | ||||
|         "managementRate": "auto", | ||||
|         "activeScanSettings": { | ||||
|           "model_type": "ActiveScanSettings", | ||||
|           "enabled": true, | ||||
|           "scanFrequencySeconds": 10, | ||||
|           "scanDurationMillis": 65 | ||||
|         }, | ||||
|         "channelHopSettings": { | ||||
|           "model_type": "ChannelHopSettings", | ||||
|           "noiseFloorThresholdInDB": -75, | ||||
|           "noiseFloorThresholdTimeInSeconds": 180, | ||||
|           "nonWifiThresholdInPercentage": 50, | ||||
|           "nonWifiThresholdTimeInSeconds": 180, | ||||
|           "obssHopMode": "NON_WIFI" | ||||
|         "managementRate": { | ||||
|           "model_type": "SourceSelectionManagement", | ||||
|           "source": "auto", | ||||
|           "value": "auto" | ||||
|         }, | ||||
|         "bestApSettings": { | ||||
|           "model_type": "RadioBestApSettings", | ||||
|           "mlComputed": true, | ||||
|           "dropInSnrPercentage": 30, | ||||
|           "minLoadFactor": 40 | ||||
|         "model_type": "SourceSelectionSteering", | ||||
|           "source": "auto", | ||||
|           "value": { | ||||
| 	          "model_type": "RadioBestApSettings", | ||||
| 	          "mlComputed": true, | ||||
| 	          "dropInSnrPercentage": 30, | ||||
| 	          "minLoadFactor": 40 | ||||
|           } | ||||
|         }, | ||||
|         "forceScanDuringVoice": "disabled", | ||||
|         "legacyBSSRate": "enabled", | ||||
|         "beaconInterval": 100, | ||||
|         "deauthAttackDetection": null | ||||
|       } | ||||
|     } | ||||
| @@ -290,4 +218,4 @@ | ||||
|   "serial": "21P10C68818122", | ||||
|   "createdTimestamp": 1591653239821, | ||||
|   "lastModifiedTimestamp": 1591653241398 | ||||
| } | ||||
| } | ||||
|   | ||||
| @@ -10,55 +10,48 @@ | ||||
|     "countryCode" : "ca", | ||||
|     "maintenanceWindow" : null, | ||||
|     "rrmEnabled" : true, | ||||
|     "dailyRebalancingDetails" : { | ||||
|     "dailyActivityDetails" : { | ||||
|       "SUNDAY" : { | ||||
|         "model_type" : "LocationActivityDetails", | ||||
|         "busyTime" : "13:30", | ||||
|         "quietTime" : "3:30", | ||||
|         "timezone" : "US/Eastern", | ||||
|         "lastBusySnapshot" : 0 | ||||
|         "timezone" : "US/Eastern" | ||||
|       }, | ||||
|       "MONDAY" : { | ||||
|         "model_type" : "LocationActivityDetails", | ||||
|         "busyTime" : "13:30", | ||||
|         "quietTime" : "3:30", | ||||
|         "timezone" : "US/Eastern", | ||||
|         "lastBusySnapshot" : 0 | ||||
|         "timezone" : "US/Eastern" | ||||
|       }, | ||||
|       "TUESDAY" : { | ||||
|         "model_type" : "LocationActivityDetails", | ||||
|         "busyTime" : "13:30", | ||||
|         "quietTime" : "3:30", | ||||
|         "timezone" : "US/Eastern", | ||||
|         "lastBusySnapshot" : 0 | ||||
|         "timezone" : "US/Eastern" | ||||
|       }, | ||||
|       "WEDNESDAY" : { | ||||
|         "model_type" : "LocationActivityDetails", | ||||
|         "busyTime" : "13:30", | ||||
|         "quietTime" : "3:30", | ||||
|         "timezone" : "US/Eastern", | ||||
|         "lastBusySnapshot" : 0 | ||||
|         "timezone" : "US/Eastern" | ||||
|       }, | ||||
|       "THURSDAY" : { | ||||
|         "model_type" : "LocationActivityDetails", | ||||
|         "busyTime" : "13:30", | ||||
|         "quietTime" : "3:30", | ||||
|         "timezone" : "US/Eastern", | ||||
|         "lastBusySnapshot" : 0 | ||||
|         "timezone" : "US/Eastern" | ||||
|       }, | ||||
|       "FRIDAY" : { | ||||
|         "model_type" : "LocationActivityDetails", | ||||
|         "busyTime" : "13:30", | ||||
|         "quietTime" : "3:30", | ||||
|         "timezone" : "US/Eastern", | ||||
|         "lastBusySnapshot" : 0 | ||||
|         "timezone" : "US/Eastern" | ||||
|       }, | ||||
|       "SATURDAY" : { | ||||
|         "model_type" : "LocationActivityDetails", | ||||
|         "busyTime" : "13:30", | ||||
|         "quietTime" : "3:30", | ||||
|         "timezone" : "US/Eastern", | ||||
|         "lastBusySnapshot" : 0 | ||||
|         "timezone" : "US/Eastern" | ||||
|       } | ||||
|     } | ||||
|   }, | ||||
|   | ||||
| @@ -10,55 +10,48 @@ | ||||
|     "countryCode" : "usa", | ||||
|     "maintenanceWindow" : null, | ||||
|     "rrmEnabled" : true, | ||||
|     "dailyRebalancingDetails" : { | ||||
|     "dailyActivityDetails" : { | ||||
|       "SUNDAY" : { | ||||
|         "model_type" : "LocationActivityDetails", | ||||
|         "busyTime" : "13:30", | ||||
|         "quietTime" : "3:30", | ||||
|         "timezone" : "US/Eastern", | ||||
|         "lastBusySnapshot" : 0 | ||||
|         "timezone" : "US/Eastern" | ||||
|       }, | ||||
|       "MONDAY" : { | ||||
|         "model_type" : "LocationActivityDetails", | ||||
|         "busyTime" : "13:30", | ||||
|         "quietTime" : "3:30", | ||||
|         "timezone" : "US/Eastern", | ||||
|         "lastBusySnapshot" : 0 | ||||
|         "timezone" : "US/Eastern" | ||||
|       }, | ||||
|       "TUESDAY" : { | ||||
|         "model_type" : "LocationActivityDetails", | ||||
|         "busyTime" : "13:30", | ||||
|         "quietTime" : "3:30", | ||||
|         "timezone" : "US/Eastern", | ||||
|         "lastBusySnapshot" : 0 | ||||
|         "timezone" : "US/Eastern" | ||||
|       }, | ||||
|       "WEDNESDAY" : { | ||||
|         "model_type" : "LocationActivityDetails", | ||||
|         "busyTime" : "13:30", | ||||
|         "quietTime" : "3:30", | ||||
|         "timezone" : "US/Eastern", | ||||
|         "lastBusySnapshot" : 0 | ||||
|         "timezone" : "US/Eastern" | ||||
|       }, | ||||
|       "THURSDAY" : { | ||||
|         "model_type" : "LocationActivityDetails", | ||||
|         "busyTime" : "13:30", | ||||
|         "quietTime" : "3:30", | ||||
|         "timezone" : "US/Eastern", | ||||
|         "lastBusySnapshot" : 0 | ||||
|         "timezone" : "US/Eastern" | ||||
|       }, | ||||
|       "FRIDAY" : { | ||||
|         "model_type" : "LocationActivityDetails", | ||||
|         "busyTime" : "13:30", | ||||
|         "quietTime" : "3:30", | ||||
|         "timezone" : "US/Eastern", | ||||
|         "lastBusySnapshot" : 0 | ||||
|         "timezone" : "US/Eastern" | ||||
|       }, | ||||
|       "SATURDAY" : { | ||||
|         "model_type" : "LocationActivityDetails", | ||||
|         "busyTime" : "13:30", | ||||
|         "quietTime" : "3:30", | ||||
|         "timezone" : "US/Eastern", | ||||
|         "lastBusySnapshot" : 0 | ||||
|         "timezone" : "US/Eastern" | ||||
|       } | ||||
|     } | ||||
|   }, | ||||
|   | ||||
| @@ -1,54 +1,55 @@ | ||||
| { | ||||
|   "model_type": "Profile", | ||||
|   "id": 5, | ||||
|   "customerId": 2, | ||||
|   "profileType": "equipment_ap", | ||||
|   "name": "DefaultApProfile", | ||||
|   "details": { | ||||
|     "model_type": "ApNetworkConfiguration", | ||||
|     "networkConfigVersion": "AP-1", | ||||
|     "equipmentType": "AP", | ||||
|     "vlanNative": true, | ||||
|     "vlan": 0, | ||||
|     "ntpServer": { | ||||
|       "model_type": "AutoOrManualString", | ||||
|       "auto": true, | ||||
|       "value": "pool.ntp.org" | ||||
|     }, | ||||
|     "syslogRelay": null, | ||||
|     "rtlsSettings": null, | ||||
|     "syntheticClientEnabled": true, | ||||
|     "ledControlEnabled": true, | ||||
|     "equipmentDiscovery": false, | ||||
|     "radioMap": { | ||||
|       "is5GHz": { | ||||
|         "model_type": "RadioProfileConfiguration", | ||||
|         "bestApEnabled": true, | ||||
|         "bestAPSteerType": "both" | ||||
|       }, | ||||
|       "is2dot4GHz": { | ||||
|         "model_type": "RadioProfileConfiguration", | ||||
|         "bestApEnabled": true, | ||||
|         "bestAPSteerType": "both" | ||||
|       }, | ||||
|       "is5GHzU": { | ||||
|         "model_type": "RadioProfileConfiguration", | ||||
|         "bestApEnabled": true, | ||||
|         "bestAPSteerType": "both" | ||||
|       }, | ||||
|       "is5GHzL": { | ||||
|         "model_type": "RadioProfileConfiguration", | ||||
|         "bestApEnabled": true, | ||||
|         "bestAPSteerType": "both" | ||||
|       } | ||||
|     }, | ||||
|     "profileType": "equipment_ap" | ||||
|   }, | ||||
|   "createdTimestamp": 1591653239947, | ||||
|   "lastModifiedTimestamp": 1591654336724, | ||||
|   "childProfileIds": [ | ||||
|     6, | ||||
|     7, | ||||
|     8 | ||||
|   ] | ||||
| } | ||||
| 	"model_type": "Profile", | ||||
| 	"id": 23, | ||||
| 	"customerId": 2, | ||||
| 	"profileType": "equipment_ap", | ||||
| 	"name": "ApProfile-3-radios-passpoint", | ||||
| 	"details": { | ||||
| 		"model_type": "ApNetworkConfiguration", | ||||
| 		"networkConfigVersion": "AP-1", | ||||
| 		"equipmentType": "AP", | ||||
| 		"vlanNative": true, | ||||
| 		"vlan": 0, | ||||
| 		"ntpServer": { | ||||
| 			"model_type": "AutoOrManualString", | ||||
| 			"auto": true, | ||||
| 			"value": "pool.ntp.org" | ||||
| 		}, | ||||
| 		"syslogRelay": null, | ||||
| 		"rtlsSettings": null, | ||||
| 		"syntheticClientEnabled": true, | ||||
| 		"ledControlEnabled": true, | ||||
| 		"equipmentDiscovery": false, | ||||
| 		"greTunnelName": null, | ||||
| 		"greParentIfName": null, | ||||
| 		"greLocalInetAddr": null, | ||||
| 		"greRemoteInetAddr": null, | ||||
| 		"greRemoteMacAddr": null, | ||||
| 		"radioMap": { | ||||
| 			"is2dot4GHz": { | ||||
| 				"model_type": "RadioProfileConfiguration", | ||||
| 				"bestApEnabled": true, | ||||
| 				"bestAPSteerType": "both" | ||||
| 			}, | ||||
| 			"is5GHzU": { | ||||
| 				"model_type": "RadioProfileConfiguration", | ||||
| 				"bestApEnabled": true, | ||||
| 				"bestAPSteerType": "both" | ||||
| 			}, | ||||
| 			"is5GHzL": { | ||||
| 				"model_type": "RadioProfileConfiguration", | ||||
| 				"bestApEnabled": true, | ||||
| 				"bestAPSteerType": "both" | ||||
| 			} | ||||
| 		}, | ||||
| 		"profileType": "equipment_ap" | ||||
| 	}, | ||||
| 	"createdTimestamp": 1605711197140, | ||||
| 	"lastModifiedTimestamp": 1605711197140, | ||||
| 	"childProfileIds": [ | ||||
| 		16, | ||||
| 		21, | ||||
| 		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,34 +1,34 @@ | ||||
| [ | ||||
| { | ||||
|   "model_type": "Profile", | ||||
|   "id": 1, | ||||
|   "customerId": 2, | ||||
|   "profileType": "radius", | ||||
|   "name": "RadiusProfileOttawa", | ||||
|   "details": { | ||||
|     "model_type": "RadiusProfile", | ||||
|     "subnetConfiguration": null, | ||||
|     "serviceRegionMap": { | ||||
|       "Ottawa": { | ||||
|         "model_type": "RadiusServiceRegion", | ||||
|         "serverMap": { | ||||
|           "RadiusProfileOttawa": [ | ||||
|             { | ||||
|               "model_type": "RadiusServer", | ||||
|               "ipAddress": "localhost", | ||||
|               "secret": "testing123", | ||||
|               "authPort": 1812, | ||||
|               "timeout": null | ||||
|             } | ||||
|           ] | ||||
|         }, | ||||
|         "regionName": "Ottawa" | ||||
|       } | ||||
|     }, | ||||
|     "profileType": "radius" | ||||
|   }, | ||||
|   "createdTimestamp": 1591653174195, | ||||
|   "lastModifiedTimestamp": 1591653174195, | ||||
|   "childProfileIds": [] | ||||
| } | ||||
|         { | ||||
|             "model_type": "Profile", | ||||
|             "id": 1, | ||||
|             "customerId": 2, | ||||
|             "profileType": "radius", | ||||
|             "name": "Radius-Profile", | ||||
|             "details": { | ||||
|                 "model_type": "RadiusProfile", | ||||
|                 "subnetConfiguration": null, | ||||
|                 "serviceRegionMap": { | ||||
|                     "Ottawa": { | ||||
|                         "model_type": "RadiusServiceRegion", | ||||
|                         "serverMap": { | ||||
|                             "Radius-Profile": [ | ||||
|                                 { | ||||
|                                     "model_type": "RadiusServer", | ||||
|                                     "ipAddress": "192.168.0.1", | ||||
|                                     "secret": "testing123", | ||||
|                                     "authPort": 1812, | ||||
|                                     "timeout": null | ||||
|                                 } | ||||
|                             ] | ||||
|                         }, | ||||
|                         "regionName": "Ottawa" | ||||
|                     } | ||||
|                 }, | ||||
|                 "profileType": "radius" | ||||
|             }, | ||||
|             "createdTimestamp": 1601961451668, | ||||
|             "lastModifiedTimestamp": 1601961451668, | ||||
|             "childProfileIds": [] | ||||
|         } | ||||
| ] | ||||
| @@ -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,184 +1,134 @@ | ||||
| [ | ||||
| { | ||||
|   "model_type": "Profile", | ||||
|   "id": 6, | ||||
|   "customerId": 2, | ||||
|   "profileType": "ssid", | ||||
|   "name": "DefaultSsid-2g", | ||||
|   "details": { | ||||
|     "model_type": "SsidConfiguration", | ||||
|     "ssid": "Default-SSID-2g", | ||||
|     "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": [ | ||||
|       "is5GHzU" | ||||
|     ], | ||||
|     "ssidAdminState": "enabled", | ||||
|     "secureMode": "wpa2PSK", | ||||
|     "vlanId": 1, | ||||
|     "keyStr": "12345678", | ||||
|     "broadcastSsid": "enabled", | ||||
|     "keyRefresh": 0, | ||||
|     "noLocalSubnets": false, | ||||
|     "radiusServiceName": null, | ||||
|     "captivePortalId": null, | ||||
|     "bandwidthLimitDown": 0, | ||||
|     "bandwidthLimitUp": 0, | ||||
|     "videoTrafficOnly": false, | ||||
|     "radioBasedConfigs": { | ||||
|       "is5GHz": { | ||||
|         "model_type": "RadioBasedSsidConfiguration", | ||||
|         "enable80211r": null, | ||||
|         "enable80211k": null, | ||||
|         "enable80211v": null | ||||
|       }, | ||||
|       "is2dot4GHz": { | ||||
|         "model_type": "RadioBasedSsidConfiguration", | ||||
|         "enable80211r": null, | ||||
|         "enable80211k": null, | ||||
|         "enable80211v": null | ||||
|       }, | ||||
|       "is5GHzU": { | ||||
|         "model_type": "RadioBasedSsidConfiguration", | ||||
|         "enable80211r": null, | ||||
|         "enable80211k": null, | ||||
|         "enable80211v": null | ||||
|       }, | ||||
|       "is5GHzL": { | ||||
|         "model_type": "RadioBasedSsidConfiguration", | ||||
|         "enable80211r": null, | ||||
|         "enable80211k": null, | ||||
|         "enable80211v": null | ||||
|       } | ||||
|     }, | ||||
|     "bonjourGatewayProfileId": null, | ||||
|     "enable80211w": null, | ||||
|     "wepConfig": null, | ||||
|     "forwardMode": null, | ||||
|     "profileType": "ssid" | ||||
|   }, | ||||
|   "createdTimestamp": 1591654301763, | ||||
|   "lastModifiedTimestamp": 1591654301763, | ||||
|   "childProfileIds": [] | ||||
| } | ||||
| ] | ||||
| 	{ | ||||
| 		"model_type": "Profile", | ||||
| 		"id": 15, | ||||
| 		"customerId": 2, | ||||
| 		"profileType": "ssid", | ||||
| 		"name": "TipWlan-cloud-hotspot-access", | ||||
| 		"details": { | ||||
| 			"model_type": "SsidConfiguration", | ||||
| 			"ssid": "TipWlan-cloud-hotspot-access", | ||||
| 			"appliedRadios": [ | ||||
| 				"is5GHzL", | ||||
| 				"is5GHzU" | ||||
| 			], | ||||
| 			"ssidAdminState": "enabled", | ||||
| 			"secureMode": "wpa2PSK", | ||||
| 			"vlanId": 1, | ||||
| 			"keyStr": "testing123", | ||||
| 			"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": 1605711164949, | ||||
| 		"lastModifiedTimestamp": 1605711223372, | ||||
| 		"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="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"/> | ||||
|   | ||||
| @@ -1,20 +1,20 @@ | ||||
| #!/bin/sh | ||||
|  | ||||
| # 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  ]] | ||||
| then | ||||
|   echo Adding opensync-mqtt-broker to /etc/hosts | ||||
|   echo "127.0.0.1 opensync-mqtt-broker" >> /etc/hosts | ||||
|   echo Adding opensync-mqtt-broker.zone1.lab.wlan.tip.build to /etc/hosts | ||||
|   echo "127.0.0.1 opensync-mqtt-broker.zone1.lab.wlan.tip.build" >> /etc/hosts | ||||
| 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  ]] | ||||
| then | ||||
|   echo Adding opensync-wifi-controller to /etc/hosts | ||||
|   echo "127.0.0.1 opensync-wifi-controller" >> /etc/hosts | ||||
|   echo Adding opensync-controller.zone1.lab.wlan.tip.build to /etc/hosts | ||||
|   echo "127.0.0.1 opensync-controller.zone1.lab.wlan.tip.build" >> /etc/hosts | ||||
| 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_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_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_LOCATION_CONFIG_FILE="${OVSDB_LOCATION_CONFIG_FILE:=/app/opensync/LocationBuildingExample.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 | ||||
| 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 | ||||
| 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 | ||||
| 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 | ||||
| OVSDB_DEVICE_RADIO_0="${OVSDB_DEVICE_RADIO_0:=wifi2}" | ||||
| echo $OVSDB_DEVICE_RADIO_0 | ||||
| OVSDB_DEVICE_RADIO_1="${OVSDB_DEVICE_RADIO_1:=wifi0}" | ||||
| echo $OVSDB_DEVICE_RADIO_1 | ||||
| OVSDB_DEVICE_RADIO_2="${OVSDB_DEVICE_RADIO_2:=wifi1}" | ||||
| echo $OVSDB_DEVICE_RADIO_2 | ||||
| OVSDB_DEVICE_DEFAULT_WAN_TYPE="${OVSDB_DEVICE_DEFAULT_WAN_TYPE:=bridge}" | ||||
| echo $OVSDB_DEVICE_DEFAULT_WAN_TYPE | ||||
| OVSDB_DEVICE_DEFAULT_WAN_NAME="${OVSDB_DEVICE_DEFAULT_WAN_NAME:=wan}" | ||||
| echo $OVSDB_DEVICE_DEFAULT_WAN_NAME | ||||
| OVSDB_DEVICE_DEFAULT_LAN_TYPE="${OVSDB_DEVICE_DEFAULT_LAN_TYPE:=bridge}" | ||||
| 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 | ||||
|  | ||||
| @@ -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_PASSWORD="${EXT_TRUSTSTORE_PASSWORD:=mypassword}" | ||||
|  | ||||
| MQTT_BROKER_HOST="${MQTT_BROKER_HOST:=opensync-mqtt-broker}" | ||||
| OVSDB_MANAGER_HOST="${OVSDB_MANAGER_HOST:=opensync-wifi-controller}" | ||||
| MQTT_BROKER_HOST_INTERNAL="${MQTT_BROKER_HOST_INTERNAL:=opensync-mqtt-broker.zone1.lab.wlan.tip.build}" | ||||
| 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}" | ||||
|  | ||||
| @@ -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" | ||||
|  | ||||
| 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.customerEquipmentFileName=$OVSDB_EQUIPMENT_CONFIG_FILE" | ||||
| OVSDB_PROPS="$OVSDB_PROPS -Dconnectus.ovsdb.apProfileFileName=$OVSDB_APPROFILE_CONFIG_FILE" | ||||
| OVSDB_PROPS="$OVSDB_PROPS -Dconnectus.ovsdb.ssidProfileFileName=$OVSDB_SSIDPROFILE_CONFIG_FILE" | ||||
| OVSDB_PROPS="$OVSDB_PROPS -Dconnectus.ovsdb.radiusProfileFileName=$OVSDB_RADIUSPROFILE_CONFIG_FILE" | ||||
| OVSDB_PROPS="$OVSDB_PROPS -Dconnectus.ovsdb.locationFileName=$OVSDB_LOCATION_CONFIG_FILE" | ||||
| OVSDB_PROPS="$OVSDB_PROPS -Dconnectus.ovsdb.wifi-iface.default_bridge=$OVSDB_IF_DEFAULT_BRIDGE" | ||||
| OVSDB_PROPS="$OVSDB_PROPS -Dconnectus.ovsdb.wifi-iface.default_radio0=$OVSDB_IF_DEFAULT_RADIO_0" | ||||
| OVSDB_PROPS="$OVSDB_PROPS -Dconnectus.ovsdb.wifi-iface.default_radio1=$OVSDB_IF_DEFAULT_RADIO_1" | ||||
| OVSDB_PROPS="$OVSDB_PROPS -Dconnectus.ovsdb.wifi-iface.default_radio2=$OVSDB_IF_DEFAULT_RADIO_2" | ||||
| OVSDB_PROPS="$OVSDB_PROPS -Dconnectus.ovsdb.wifi-device.radio0=$OVSDB_DEVICE_RADIO_0" | ||||
| OVSDB_PROPS="$OVSDB_PROPS -Dconnectus.ovsdb.wifi-device.radio1=$OVSDB_DEVICE_RADIO_1" | ||||
| OVSDB_PROPS="$OVSDB_PROPS -Dconnectus.ovsdb.wifi-device.radio2=$OVSDB_DEVICE_RADIO_2" | ||||
| OVSDB_PROPS="$OVSDB_PROPS -Dtip.wlan.ovsdb.managerAddr=$OVSDB_MANAGER_HOST" | ||||
| OVSDB_PROPS="$OVSDB_PROPS -Dtip.wlan.ovsdb.listenPort=6640 " | ||||
| OVSDB_PROPS="$OVSDB_PROPS -Dtip.wlan.ovsdb.redirector.listenPort=6643" | ||||
| OVSDB_PROPS="$OVSDB_PROPS -Dtip.wlan.ovsdb.timeoutSec=30" | ||||
| OVSDB_PROPS="$OVSDB_PROPS -Dtip.wlan.ovsdb.trustStore=$OVSDB_SERVER_TRUSTSTORE_FILE" | ||||
| OVSDB_PROPS="$OVSDB_PROPS -Dtip.wlan.ovsdb.trustStorePassword=$OVSDB_SERVER_TRUSTSTORE_PASSWORD" | ||||
| OVSDB_PROPS="$OVSDB_PROPS -Dtip.wlan.ovsdb.keyStore=$OVSDB_SERVER_KEYSTORE_FILE" | ||||
| OVSDB_PROPS="$OVSDB_PROPS -Dtip.wlan.ovsdb.keyStorePassword=$OVSDB_SERVER_KEYSTORE_PASSWORD" | ||||
| OVSDB_PROPS="$OVSDB_PROPS -Dtip.wlan.ovsdb.customerEquipmentFileName=$OVSDB_EQUIPMENT_CONFIG_FILE" | ||||
| OVSDB_PROPS="$OVSDB_PROPS -Dtip.wlan.ovsdb.apProfileFileName=$OVSDB_APPROFILE_CONFIG_FILE" | ||||
| OVSDB_PROPS="$OVSDB_PROPS -Dtip.wlan.ovsdb.metricsProfileFileName=$OVSDB_METRICSPROFILE_CONFIG_FILE" | ||||
| OVSDB_PROPS="$OVSDB_PROPS -Dtip.wlan.ovsdb.hotspot20ProfileFileName=$OVSDB_HOTSPOT20PROFILE_CONFIG_FILE" | ||||
| OVSDB_PROPS="$OVSDB_PROPS -Dtip.wlan.ovsdb.operatorProfileFileName=$OVSDB_OPERATORPROFILE_CONFIG_FILE" | ||||
| OVSDB_PROPS="$OVSDB_PROPS -Dtip.wlan.ovsdb.venueProfileFileName=$OVSDB_VENUEPROFILE_CONFIG_FILE" | ||||
| OVSDB_PROPS="$OVSDB_PROPS -Dtip.wlan.ovsdb.idProviderProfileFileName=$OVSDB_IDPROVIDERPROFILE_CONFIG_FILE" | ||||
| OVSDB_PROPS="$OVSDB_PROPS -Dtip.wlan.ovsdb.rfProfileFileName=$OVSDB_RFPROFILE_CONFIG_FILE" | ||||
| OVSDB_PROPS="$OVSDB_PROPS -Dtip.wlan.preventClientCnAlteration=$OVSDB_PREVENT_CLIENTCN_ALTERATION" | ||||
| OVSDB_PROPS="$OVSDB_PROPS -Dtip.wlan.ovsdb.ssidProfileFileName=$OVSDB_SSIDPROFILE_CONFIG_FILE" | ||||
| OVSDB_PROPS="$OVSDB_PROPS -Dtip.wlan.ovsdb.radiusProfileFileName=$OVSDB_RADIUSPROFILE_CONFIG_FILE" | ||||
| 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 | ||||
|  | ||||
|  | ||||
| MQTT_PROPS=" " | ||||
| MQTT_PROPS="$MQTT_PROPS -Dconnectus.mqttBroker.address=$MQTT_BROKER_HOST" | ||||
| MQTT_PROPS="$MQTT_PROPS -Dconnectus.mqttBroker.listenPort=1883" | ||||
| MQTT_PROPS="$MQTT_PROPS -Dtip.wlan.mqttBroker.address.internal=$MQTT_BROKER_HOST_INTERNAL" | ||||
| 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" | ||||
|  | ||||
|   | ||||
| @@ -1,5 +1,5 @@ | ||||
| FROM adoptopenjdk/openjdk13:alpine-jre | ||||
| MAINTAINER ConnectUs | ||||
| MAINTAINER TipWlan | ||||
|  | ||||
| # Update the package list and upgrade installed packages | ||||
| 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/ProfileSsid.json /app/opensync/ProfileSsid.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 | ||||
|  | ||||
| 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, | ||||
|         "manualChannelNumber": 6, | ||||
|         "backupChannelNumber": 11, | ||||
|         "autoChannelSelection": false, | ||||
|         "channelBandwidth": "is20MHz", | ||||
|         "bannedChannels": [], | ||||
|         "allowedChannels": [], | ||||
|         "rxCellSizeDb": { | ||||
|           "model_type": "AutoOrManualValue", | ||||
|           "auto": true, | ||||
|           "model_type": "SourceSelectionValue", | ||||
|         "source": "auto", | ||||
|           "value": -90 | ||||
|         }, | ||||
|         "probeResponseThresholdDb": { | ||||
|           "model_type": "AutoOrManualValue", | ||||
|           "auto": true, | ||||
|           "model_type": "SourceSelectionValue", | ||||
|         "source": "auto", | ||||
|           "value": -90 | ||||
|         }, | ||||
|         "clientDisconnectThresholdDb": { | ||||
|           "model_type": "AutoOrManualValue", | ||||
|           "auto": true, | ||||
|           "model_type": "SourceSelectionValue", | ||||
|         	 "source": "auto", | ||||
|           "value": -90 | ||||
|         }, | ||||
|         "eirpTxPower": { | ||||
|           "model_type": "AutoOrManualValue", | ||||
|           "auto": false, | ||||
|           "model_type": "SourceSelectionValue", | ||||
|         	 "source": "auto", | ||||
|           "value": 32 | ||||
|         }, | ||||
|         "bestApEnabled": null, | ||||
|         "neighbouringListApConfig": { | ||||
|           "model_type": "NeighbouringAPListConfiguration", | ||||
|           "minSignal": -85, | ||||
|           "maxAps": 25 | ||||
|         }, | ||||
|         "minAutoCellSize": -80, | ||||
|         "perimeterDetectionEnabled": true, | ||||
|         "bestAPSteerType": "both", | ||||
|         "deauthAttackDetection": null, | ||||
| @@ -81,37 +72,28 @@ | ||||
|         "channelNumber": 149, | ||||
|         "manualChannelNumber": 149, | ||||
|         "backupChannelNumber": 154, | ||||
|         "autoChannelSelection": false, | ||||
|         "channelBandwidth": "is80MHz", | ||||
|         "bannedChannels": [], | ||||
|         "allowedChannels": [], | ||||
|         "rxCellSizeDb": { | ||||
|           "model_type": "AutoOrManualValue", | ||||
|           "auto": true, | ||||
|           "model_type": "SourceSelectionValue", | ||||
|         	 "source": "auto", | ||||
|           "value": -90 | ||||
|         }, | ||||
|         "probeResponseThresholdDb": { | ||||
|           "model_type": "AutoOrManualValue", | ||||
|           "auto": true, | ||||
|           "model_type": "SourceSelectionValue", | ||||
|         	 "source": "auto", | ||||
|           "value": -90 | ||||
|         }, | ||||
|         "clientDisconnectThresholdDb": { | ||||
|           "model_type": "AutoOrManualValue", | ||||
|           "auto": true, | ||||
|           "model_type": "SourceSelectionValue", | ||||
|         	 "source": "auto", | ||||
|           "value": -90 | ||||
|         }, | ||||
|         "eirpTxPower": { | ||||
|           "model_type": "AutoOrManualValue", | ||||
|           "auto": false, | ||||
|           "model_type": "SourceSelectionValue", | ||||
|         	 "source": "auto", | ||||
|           "value": 32 | ||||
|         }, | ||||
|         "bestApEnabled": null, | ||||
|         "neighbouringListApConfig": { | ||||
|           "model_type": "NeighbouringAPListConfiguration", | ||||
|           "minSignal": -85, | ||||
|           "maxAps": 25 | ||||
|         }, | ||||
|         "minAutoCellSize": -80, | ||||
|         "perimeterDetectionEnabled": true, | ||||
|         "bestAPSteerType": "both", | ||||
|         "deauthAttackDetection": null, | ||||
| @@ -124,37 +106,28 @@ | ||||
|         "channelNumber": 36, | ||||
|         "manualChannelNumber": 36, | ||||
|         "backupChannelNumber": 44, | ||||
|         "autoChannelSelection": false, | ||||
|         "channelBandwidth": "is80MHz", | ||||
|         "bannedChannels": [], | ||||
|         "allowedChannels": [], | ||||
|         "rxCellSizeDb": { | ||||
|           "model_type": "AutoOrManualValue", | ||||
|           "auto": true, | ||||
|           "model_type": "SourceSelectionValue", | ||||
|         	 "source": "auto", | ||||
|           "value": -90 | ||||
|         }, | ||||
|         "probeResponseThresholdDb": { | ||||
|           "model_type": "AutoOrManualValue", | ||||
|           "auto": true, | ||||
|           "model_type": "SourceSelectionValue", | ||||
|         	 "source": "auto", | ||||
|           "value": -90 | ||||
|         }, | ||||
|         "clientDisconnectThresholdDb": { | ||||
|           "model_type": "AutoOrManualValue", | ||||
|           "auto": true, | ||||
|           "model_type": "SourceSelectionValue", | ||||
|         	 "source": "auto", | ||||
|           "value": -90 | ||||
|         }, | ||||
|         "eirpTxPower": { | ||||
|           "model_type": "AutoOrManualValue", | ||||
|           "auto": false, | ||||
|           "model_type": "SourceSelectionValue", | ||||
|         	 "source": "auto", | ||||
|           "value": 32 | ||||
|         }, | ||||
|         "bestApEnabled": null, | ||||
|         "neighbouringListApConfig": { | ||||
|           "model_type": "NeighbouringAPListConfiguration", | ||||
|           "minSignal": -85, | ||||
|           "maxAps": 25 | ||||
|         }, | ||||
|         "minAutoCellSize": -80, | ||||
|         "perimeterDetectionEnabled": true, | ||||
|         "bestAPSteerType": "both", | ||||
|         "deauthAttackDetection": null, | ||||
| @@ -168,39 +141,24 @@ | ||||
|         "radioType": "is2dot4GHz", | ||||
|         "radioAdminState": "enabled", | ||||
|         "fragmentationThresholdBytes": 2346, | ||||
|         "rtsCtsThreshold": 65535, | ||||
|         "autoChannelSelection": "disabled", | ||||
|         "radioMode": "modeN", | ||||
|         "mimoMode": "twoByTwo", | ||||
|         "wmmState": "enabled", | ||||
|         "uapsdState": "enabled", | ||||
|         "maxNumClients": 100, | ||||
|         "stationIsolation": "disabled", | ||||
|         "multicastRate": "auto", | ||||
|         "managementRate": "auto", | ||||
|         "activeScanSettings": { | ||||
|           "model_type": "ActiveScanSettings", | ||||
|           "enabled": true, | ||||
|           "scanFrequencySeconds": 10, | ||||
|           "scanDurationMillis": 65 | ||||
|         }, | ||||
|         "channelHopSettings": { | ||||
|           "model_type": "ChannelHopSettings", | ||||
|           "noiseFloorThresholdInDB": -75, | ||||
|           "noiseFloorThresholdTimeInSeconds": 180, | ||||
|           "nonWifiThresholdInPercentage": 50, | ||||
|           "nonWifiThresholdTimeInSeconds": 180, | ||||
|           "obssHopMode": "NON_WIFI" | ||||
|         "managementRate": { | ||||
|           "model_type": "SourceSelectionManagement", | ||||
|           "source": "auto", | ||||
|           "value": "auto" | ||||
|         }, | ||||
|         "bestApSettings": { | ||||
|           "model_type": "RadioBestApSettings", | ||||
|           "mlComputed": true, | ||||
|           "dropInSnrPercentage": 20, | ||||
|           "minLoadFactor": 50 | ||||
|         "model_type": "SourceSelectionSteering", | ||||
|           "source": "auto", | ||||
|           "value": { | ||||
| 	          "model_type": "RadioBestApSettings", | ||||
| 	          "mlComputed": true, | ||||
| 	          "dropInSnrPercentage": 30, | ||||
| 	          "minLoadFactor": 40 | ||||
|           } | ||||
|         }, | ||||
|         "forceScanDuringVoice": "disabled", | ||||
|         "legacyBSSRate": "enabled", | ||||
|         "beaconInterval": 100, | ||||
|         "deauthAttackDetection": null | ||||
|       }, | ||||
|       "is5GHzU": { | ||||
| @@ -208,39 +166,24 @@ | ||||
|         "radioType": "is5GHzU", | ||||
|         "radioAdminState": "enabled", | ||||
|         "fragmentationThresholdBytes": 2346, | ||||
|         "rtsCtsThreshold": 65535, | ||||
|         "autoChannelSelection": "disabled", | ||||
|         "radioMode": "modeAC", | ||||
|         "mimoMode": "twoByTwo", | ||||
|         "wmmState": "enabled", | ||||
|         "uapsdState": "enabled", | ||||
|         "maxNumClients": 100, | ||||
|         "stationIsolation": "disabled", | ||||
|         "multicastRate": "auto", | ||||
|         "managementRate": "auto", | ||||
|         "activeScanSettings": { | ||||
|           "model_type": "ActiveScanSettings", | ||||
|           "enabled": true, | ||||
|           "scanFrequencySeconds": 10, | ||||
|           "scanDurationMillis": 65 | ||||
|         }, | ||||
|         "channelHopSettings": { | ||||
|           "model_type": "ChannelHopSettings", | ||||
|           "noiseFloorThresholdInDB": -75, | ||||
|           "noiseFloorThresholdTimeInSeconds": 180, | ||||
|           "nonWifiThresholdInPercentage": 50, | ||||
|           "nonWifiThresholdTimeInSeconds": 180, | ||||
|           "obssHopMode": "NON_WIFI" | ||||
|         "managementRate": { | ||||
|           "model_type": "SourceSelectionManagement", | ||||
|           "source": "auto", | ||||
|           "value": "auto" | ||||
|         }, | ||||
|         "bestApSettings": { | ||||
|           "model_type": "RadioBestApSettings", | ||||
|           "mlComputed": true, | ||||
|           "dropInSnrPercentage": 30, | ||||
|           "minLoadFactor": 40 | ||||
|         "model_type": "SourceSelectionSteering", | ||||
|           "source": "auto", | ||||
|           "value": { | ||||
| 	          "model_type": "RadioBestApSettings", | ||||
| 	          "mlComputed": true, | ||||
| 	          "dropInSnrPercentage": 30, | ||||
| 	          "minLoadFactor": 40 | ||||
|           } | ||||
|         }, | ||||
|         "forceScanDuringVoice": "disabled", | ||||
|         "legacyBSSRate": "enabled", | ||||
|         "beaconInterval": 100, | ||||
|         "deauthAttackDetection": null | ||||
|       }, | ||||
|       "is5GHzL": { | ||||
| @@ -248,39 +191,24 @@ | ||||
|         "radioType": "is5GHzL", | ||||
|         "radioAdminState": "enabled", | ||||
|         "fragmentationThresholdBytes": 2346, | ||||
|         "rtsCtsThreshold": 65535, | ||||
|         "autoChannelSelection": "disabled", | ||||
|         "radioMode": "modeAC", | ||||
|         "mimoMode": "twoByTwo", | ||||
|         "wmmState": "enabled", | ||||
|         "uapsdState": "enabled", | ||||
|         "maxNumClients": 100, | ||||
|         "stationIsolation": "disabled", | ||||
|         "multicastRate": "auto", | ||||
|         "managementRate": "auto", | ||||
|         "activeScanSettings": { | ||||
|           "model_type": "ActiveScanSettings", | ||||
|           "enabled": true, | ||||
|           "scanFrequencySeconds": 10, | ||||
|           "scanDurationMillis": 65 | ||||
|         }, | ||||
|         "channelHopSettings": { | ||||
|           "model_type": "ChannelHopSettings", | ||||
|           "noiseFloorThresholdInDB": -75, | ||||
|           "noiseFloorThresholdTimeInSeconds": 180, | ||||
|           "nonWifiThresholdInPercentage": 50, | ||||
|           "nonWifiThresholdTimeInSeconds": 180, | ||||
|           "obssHopMode": "NON_WIFI" | ||||
|         "managementRate": { | ||||
|           "model_type": "SourceSelectionManagement", | ||||
|           "source": "auto", | ||||
|           "value": "auto" | ||||
|         }, | ||||
|         "bestApSettings": { | ||||
|           "model_type": "RadioBestApSettings", | ||||
|           "mlComputed": true, | ||||
|           "dropInSnrPercentage": 30, | ||||
|           "minLoadFactor": 40 | ||||
|         "model_type": "SourceSelectionSteering", | ||||
|           "source": "auto", | ||||
|           "value": { | ||||
| 	          "model_type": "RadioBestApSettings", | ||||
| 	          "mlComputed": true, | ||||
| 	          "dropInSnrPercentage": 30, | ||||
| 	          "minLoadFactor": 40 | ||||
|           } | ||||
|         }, | ||||
|         "forceScanDuringVoice": "disabled", | ||||
|         "legacyBSSRate": "enabled", | ||||
|         "beaconInterval": 100, | ||||
|         "deauthAttackDetection": null | ||||
|       } | ||||
|     } | ||||
| @@ -290,4 +218,4 @@ | ||||
|   "serial": "21P10C68818122", | ||||
|   "createdTimestamp": 1591653239821, | ||||
|   "lastModifiedTimestamp": 1591653241398 | ||||
| } | ||||
| } | ||||
|   | ||||
| @@ -10,55 +10,48 @@ | ||||
|     "countryCode" : "ca", | ||||
|     "maintenanceWindow" : null, | ||||
|     "rrmEnabled" : true, | ||||
|     "dailyRebalancingDetails" : { | ||||
|     "dailyActivityDetails" : { | ||||
|       "SUNDAY" : { | ||||
|         "model_type" : "LocationActivityDetails", | ||||
|         "busyTime" : "13:30", | ||||
|         "quietTime" : "3:30", | ||||
|         "timezone" : "US/Eastern", | ||||
|         "lastBusySnapshot" : 0 | ||||
|         "timezone" : "US/Eastern" | ||||
|       }, | ||||
|       "MONDAY" : { | ||||
|         "model_type" : "LocationActivityDetails", | ||||
|         "busyTime" : "13:30", | ||||
|         "quietTime" : "3:30", | ||||
|         "timezone" : "US/Eastern", | ||||
|         "lastBusySnapshot" : 0 | ||||
|         "timezone" : "US/Eastern" | ||||
|       }, | ||||
|       "TUESDAY" : { | ||||
|         "model_type" : "LocationActivityDetails", | ||||
|         "busyTime" : "13:30", | ||||
|         "quietTime" : "3:30", | ||||
|         "timezone" : "US/Eastern", | ||||
|         "lastBusySnapshot" : 0 | ||||
|         "timezone" : "US/Eastern" | ||||
|       }, | ||||
|       "WEDNESDAY" : { | ||||
|         "model_type" : "LocationActivityDetails", | ||||
|         "busyTime" : "13:30", | ||||
|         "quietTime" : "3:30", | ||||
|         "timezone" : "US/Eastern", | ||||
|         "lastBusySnapshot" : 0 | ||||
|         "timezone" : "US/Eastern" | ||||
|       }, | ||||
|       "THURSDAY" : { | ||||
|         "model_type" : "LocationActivityDetails", | ||||
|         "busyTime" : "13:30", | ||||
|         "quietTime" : "3:30", | ||||
|         "timezone" : "US/Eastern", | ||||
|         "lastBusySnapshot" : 0 | ||||
|         "timezone" : "US/Eastern" | ||||
|       }, | ||||
|       "FRIDAY" : { | ||||
|         "model_type" : "LocationActivityDetails", | ||||
|         "busyTime" : "13:30", | ||||
|         "quietTime" : "3:30", | ||||
|         "timezone" : "US/Eastern", | ||||
|         "lastBusySnapshot" : 0 | ||||
|         "timezone" : "US/Eastern" | ||||
|       }, | ||||
|       "SATURDAY" : { | ||||
|         "model_type" : "LocationActivityDetails", | ||||
|         "busyTime" : "13:30", | ||||
|         "quietTime" : "3:30", | ||||
|         "timezone" : "US/Eastern", | ||||
|         "lastBusySnapshot" : 0 | ||||
|         "timezone" : "US/Eastern" | ||||
|       } | ||||
|     } | ||||
|   }, | ||||
|   | ||||
| @@ -10,55 +10,48 @@ | ||||
|     "countryCode" : "usa", | ||||
|     "maintenanceWindow" : null, | ||||
|     "rrmEnabled" : true, | ||||
|     "dailyRebalancingDetails" : { | ||||
|     "dailyActivityDetails" : { | ||||
|       "SUNDAY" : { | ||||
|         "model_type" : "LocationActivityDetails", | ||||
|         "busyTime" : "13:30", | ||||
|         "quietTime" : "3:30", | ||||
|         "timezone" : "US/Eastern", | ||||
|         "lastBusySnapshot" : 0 | ||||
|         "timezone" : "US/Eastern" | ||||
|       }, | ||||
|       "MONDAY" : { | ||||
|         "model_type" : "LocationActivityDetails", | ||||
|         "busyTime" : "13:30", | ||||
|         "quietTime" : "3:30", | ||||
|         "timezone" : "US/Eastern", | ||||
|         "lastBusySnapshot" : 0 | ||||
|         "timezone" : "US/Eastern" | ||||
|       }, | ||||
|       "TUESDAY" : { | ||||
|         "model_type" : "LocationActivityDetails", | ||||
|         "busyTime" : "13:30", | ||||
|         "quietTime" : "3:30", | ||||
|         "timezone" : "US/Eastern", | ||||
|         "lastBusySnapshot" : 0 | ||||
|         "timezone" : "US/Eastern" | ||||
|       }, | ||||
|       "WEDNESDAY" : { | ||||
|         "model_type" : "LocationActivityDetails", | ||||
|         "busyTime" : "13:30", | ||||
|         "quietTime" : "3:30", | ||||
|         "timezone" : "US/Eastern", | ||||
|         "lastBusySnapshot" : 0 | ||||
|         "timezone" : "US/Eastern" | ||||
|       }, | ||||
|       "THURSDAY" : { | ||||
|         "model_type" : "LocationActivityDetails", | ||||
|         "busyTime" : "13:30", | ||||
|         "quietTime" : "3:30", | ||||
|         "timezone" : "US/Eastern", | ||||
|         "lastBusySnapshot" : 0 | ||||
|         "timezone" : "US/Eastern" | ||||
|       }, | ||||
|       "FRIDAY" : { | ||||
|         "model_type" : "LocationActivityDetails", | ||||
|         "busyTime" : "13:30", | ||||
|         "quietTime" : "3:30", | ||||
|         "timezone" : "US/Eastern", | ||||
|         "lastBusySnapshot" : 0 | ||||
|         "timezone" : "US/Eastern" | ||||
|       }, | ||||
|       "SATURDAY" : { | ||||
|         "model_type" : "LocationActivityDetails", | ||||
|         "busyTime" : "13:30", | ||||
|         "quietTime" : "3:30", | ||||
|         "timezone" : "US/Eastern", | ||||
|         "lastBusySnapshot" : 0 | ||||
|         "timezone" : "US/Eastern" | ||||
|       } | ||||
|     } | ||||
|   }, | ||||
|   | ||||
| @@ -1,54 +1,55 @@ | ||||
| { | ||||
|   "model_type": "Profile", | ||||
|   "id": 5, | ||||
|   "customerId": 2, | ||||
|   "profileType": "equipment_ap", | ||||
|   "name": "DefaultApProfile", | ||||
|   "details": { | ||||
|     "model_type": "ApNetworkConfiguration", | ||||
|     "networkConfigVersion": "AP-1", | ||||
|     "equipmentType": "AP", | ||||
|     "vlanNative": true, | ||||
|     "vlan": 0, | ||||
|     "ntpServer": { | ||||
|       "model_type": "AutoOrManualString", | ||||
|       "auto": true, | ||||
|       "value": "pool.ntp.org" | ||||
|     }, | ||||
|     "syslogRelay": null, | ||||
|     "rtlsSettings": null, | ||||
|     "syntheticClientEnabled": true, | ||||
|     "ledControlEnabled": true, | ||||
|     "equipmentDiscovery": false, | ||||
|     "radioMap": { | ||||
|       "is5GHz": { | ||||
|         "model_type": "RadioProfileConfiguration", | ||||
|         "bestApEnabled": true, | ||||
|         "bestAPSteerType": "both" | ||||
|       }, | ||||
|       "is2dot4GHz": { | ||||
|         "model_type": "RadioProfileConfiguration", | ||||
|         "bestApEnabled": true, | ||||
|         "bestAPSteerType": "both" | ||||
|       }, | ||||
|       "is5GHzU": { | ||||
|         "model_type": "RadioProfileConfiguration", | ||||
|         "bestApEnabled": true, | ||||
|         "bestAPSteerType": "both" | ||||
|       }, | ||||
|       "is5GHzL": { | ||||
|         "model_type": "RadioProfileConfiguration", | ||||
|         "bestApEnabled": true, | ||||
|         "bestAPSteerType": "both" | ||||
|       } | ||||
|     }, | ||||
|     "profileType": "equipment_ap" | ||||
|   }, | ||||
|   "createdTimestamp": 1591653239947, | ||||
|   "lastModifiedTimestamp": 1591654336724, | ||||
|   "childProfileIds": [ | ||||
|     6, | ||||
|     7, | ||||
|     8 | ||||
|   ] | ||||
| } | ||||
| 	"model_type": "Profile", | ||||
| 	"id": 23, | ||||
| 	"customerId": 2, | ||||
| 	"profileType": "equipment_ap", | ||||
| 	"name": "ApProfile-3-radios-passpoint", | ||||
| 	"details": { | ||||
| 		"model_type": "ApNetworkConfiguration", | ||||
| 		"networkConfigVersion": "AP-1", | ||||
| 		"equipmentType": "AP", | ||||
| 		"vlanNative": true, | ||||
| 		"vlan": 0, | ||||
| 		"ntpServer": { | ||||
| 			"model_type": "AutoOrManualString", | ||||
| 			"auto": true, | ||||
| 			"value": "pool.ntp.org" | ||||
| 		}, | ||||
| 		"syslogRelay": null, | ||||
| 		"rtlsSettings": null, | ||||
| 		"syntheticClientEnabled": true, | ||||
| 		"ledControlEnabled": true, | ||||
| 		"equipmentDiscovery": false, | ||||
| 		"greTunnelName": null, | ||||
| 		"greParentIfName": null, | ||||
| 		"greLocalInetAddr": null, | ||||
| 		"greRemoteInetAddr": null, | ||||
| 		"greRemoteMacAddr": null, | ||||
| 		"radioMap": { | ||||
| 			"is2dot4GHz": { | ||||
| 				"model_type": "RadioProfileConfiguration", | ||||
| 				"bestApEnabled": true, | ||||
| 				"bestAPSteerType": "both" | ||||
| 			}, | ||||
| 			"is5GHzU": { | ||||
| 				"model_type": "RadioProfileConfiguration", | ||||
| 				"bestApEnabled": true, | ||||
| 				"bestAPSteerType": "both" | ||||
| 			}, | ||||
| 			"is5GHzL": { | ||||
| 				"model_type": "RadioProfileConfiguration", | ||||
| 				"bestApEnabled": true, | ||||
| 				"bestAPSteerType": "both" | ||||
| 			} | ||||
| 		}, | ||||
| 		"profileType": "equipment_ap" | ||||
| 	}, | ||||
| 	"createdTimestamp": 1605711197140, | ||||
| 	"lastModifiedTimestamp": 1605711197140, | ||||
| 	"childProfileIds": [ | ||||
| 		16, | ||||
| 		21, | ||||
| 		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,34 +1,34 @@ | ||||
| [ | ||||
| { | ||||
|   "model_type": "Profile", | ||||
|   "id": 1, | ||||
|   "customerId": 2, | ||||
|   "profileType": "radius", | ||||
|   "name": "RadiusProfileOttawa", | ||||
|   "details": { | ||||
|     "model_type": "RadiusProfile", | ||||
|     "subnetConfiguration": null, | ||||
|     "serviceRegionMap": { | ||||
|       "Ottawa": { | ||||
|         "model_type": "RadiusServiceRegion", | ||||
|         "serverMap": { | ||||
|           "RadiusProfileOttawa": [ | ||||
|             { | ||||
|               "model_type": "RadiusServer", | ||||
|               "ipAddress": "localhost", | ||||
|               "secret": "testing123", | ||||
|               "authPort": 1812, | ||||
|               "timeout": null | ||||
|             } | ||||
|           ] | ||||
|         }, | ||||
|         "regionName": "Ottawa" | ||||
|       } | ||||
|     }, | ||||
|     "profileType": "radius" | ||||
|   }, | ||||
|   "createdTimestamp": 1591653174195, | ||||
|   "lastModifiedTimestamp": 1591653174195, | ||||
|   "childProfileIds": [] | ||||
| } | ||||
|         { | ||||
|             "model_type": "Profile", | ||||
|             "id": 1, | ||||
|             "customerId": 2, | ||||
|             "profileType": "radius", | ||||
|             "name": "Radius-Profile", | ||||
|             "details": { | ||||
|                 "model_type": "RadiusProfile", | ||||
|                 "subnetConfiguration": null, | ||||
|                 "serviceRegionMap": { | ||||
|                     "Ottawa": { | ||||
|                         "model_type": "RadiusServiceRegion", | ||||
|                         "serverMap": { | ||||
|                             "Radius-Profile": [ | ||||
|                                 { | ||||
|                                     "model_type": "RadiusServer", | ||||
|                                     "ipAddress": "192.168.0.1", | ||||
|                                     "secret": "testing123", | ||||
|                                     "authPort": 1812, | ||||
|                                     "timeout": null | ||||
|                                 } | ||||
|                             ] | ||||
|                         }, | ||||
|                         "regionName": "Ottawa" | ||||
|                     } | ||||
|                 }, | ||||
|                 "profileType": "radius" | ||||
|             }, | ||||
|             "createdTimestamp": 1601961451668, | ||||
|             "lastModifiedTimestamp": 1601961451668, | ||||
|             "childProfileIds": [] | ||||
|         } | ||||
| ] | ||||
| @@ -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,184 +1,134 @@ | ||||
| [ | ||||
| { | ||||
|   "model_type": "Profile", | ||||
|   "id": 6, | ||||
|   "customerId": 2, | ||||
|   "profileType": "ssid", | ||||
|   "name": "DefaultSsid-2g", | ||||
|   "details": { | ||||
|     "model_type": "SsidConfiguration", | ||||
|     "ssid": "Default-SSID-2g", | ||||
|     "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": [ | ||||
|       "is5GHzU" | ||||
|     ], | ||||
|     "ssidAdminState": "enabled", | ||||
|     "secureMode": "wpa2PSK", | ||||
|     "vlanId": 1, | ||||
|     "keyStr": "12345678", | ||||
|     "broadcastSsid": "enabled", | ||||
|     "keyRefresh": 0, | ||||
|     "noLocalSubnets": false, | ||||
|     "radiusServiceName": null, | ||||
|     "captivePortalId": null, | ||||
|     "bandwidthLimitDown": 0, | ||||
|     "bandwidthLimitUp": 0, | ||||
|     "videoTrafficOnly": false, | ||||
|     "radioBasedConfigs": { | ||||
|       "is5GHz": { | ||||
|         "model_type": "RadioBasedSsidConfiguration", | ||||
|         "enable80211r": null, | ||||
|         "enable80211k": null, | ||||
|         "enable80211v": null | ||||
|       }, | ||||
|       "is2dot4GHz": { | ||||
|         "model_type": "RadioBasedSsidConfiguration", | ||||
|         "enable80211r": null, | ||||
|         "enable80211k": null, | ||||
|         "enable80211v": null | ||||
|       }, | ||||
|       "is5GHzU": { | ||||
|         "model_type": "RadioBasedSsidConfiguration", | ||||
|         "enable80211r": null, | ||||
|         "enable80211k": null, | ||||
|         "enable80211v": null | ||||
|       }, | ||||
|       "is5GHzL": { | ||||
|         "model_type": "RadioBasedSsidConfiguration", | ||||
|         "enable80211r": null, | ||||
|         "enable80211k": null, | ||||
|         "enable80211v": null | ||||
|       } | ||||
|     }, | ||||
|     "bonjourGatewayProfileId": null, | ||||
|     "enable80211w": null, | ||||
|     "wepConfig": null, | ||||
|     "forwardMode": null, | ||||
|     "profileType": "ssid" | ||||
|   }, | ||||
|   "createdTimestamp": 1591654301763, | ||||
|   "lastModifiedTimestamp": 1591654301763, | ||||
|   "childProfileIds": [] | ||||
| } | ||||
| ] | ||||
| 	{ | ||||
| 		"model_type": "Profile", | ||||
| 		"id": 15, | ||||
| 		"customerId": 2, | ||||
| 		"profileType": "ssid", | ||||
| 		"name": "TipWlan-cloud-hotspot-access", | ||||
| 		"details": { | ||||
| 			"model_type": "SsidConfiguration", | ||||
| 			"ssid": "TipWlan-cloud-hotspot-access", | ||||
| 			"appliedRadios": [ | ||||
| 				"is5GHzL", | ||||
| 				"is5GHzU" | ||||
| 			], | ||||
| 			"ssidAdminState": "enabled", | ||||
| 			"secureMode": "wpa2PSK", | ||||
| 			"vlanId": 1, | ||||
| 			"keyStr": "testing123", | ||||
| 			"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": 1605711164949, | ||||
| 		"lastModifiedTimestamp": 1605711223372, | ||||
| 		"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="com.telecominfraproject.wlan" level="DEBUG"/> | ||||
|   <logger name="ai.connectus" level="DEBUG"/> | ||||
|   <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"/> | ||||
|   | ||||
| @@ -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.trustStore=/opt/tip-wlan/certs/truststore.jks" | ||||
| 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+=" -Dconnectus.ovsdb.managerAddr=opensync-controller" | ||||
| OVSDB_PROPS+=" -Dconnectus.ovsdb.listenPort=6640 " | ||||
| OVSDB_PROPS+=" -Dconnectus.ovsdb.redirector.listenPort=6643" | ||||
| OVSDB_PROPS+=" -Dconnectus.ovsdb.timeoutSec=30" | ||||
| OVSDB_PROPS+=" -Dconnectus.ovsdb.trustStore=/opt/tip-wlan/certs/truststore.jks" | ||||
| OVSDB_PROPS+=" -Dconnectus.ovsdb.keyStore=/opt/tip-wlan/certs/server.pkcs12" | ||||
| OVSDB_PROPS+=" -Dconnectus.ovsdb.customerEquipmentFileName=$OVSDB_EQUIPMENT_CONFIG_FILE" | ||||
| OVSDB_PROPS+=" -Dconnectus.ovsdb.apProfileFileName=$OVSDB_APPROFILE_CONFIG_FILE" | ||||
| OVSDB_PROPS+=" -Dconnectus.ovsdb.ssidProfileFileName=$OVSDB_SSIDPROFILE_CONFIG_FILE" | ||||
| OVSDB_PROPS+=" -Dconnectus.ovsdb.radiusProfileFileName=$OVSDB_RADIUSPROFILE_CONFIG_FILE" | ||||
| OVSDB_PROPS+=" -Dconnectus.ovsdb.locationFileName=$OVSDB_LOCATION_CONFIG_FILE" | ||||
| OVSDB_PROPS+=" -Dconnectus.ovsdb.wifi-iface.default_bridge=$OVSDB_IF_DEFAULT_BRIDGE" | ||||
| OVSDB_PROPS+=" -Dconnectus.ovsdb.wifi-iface.default_radio0=$OVSDB_IF_DEFAULT_RADIO_0" | ||||
| OVSDB_PROPS+=" -Dconnectus.ovsdb.wifi-iface.default_radio1=$OVSDB_IF_DEFAULT_RADIO_1" | ||||
| OVSDB_PROPS+=" -Dconnectus.ovsdb.wifi-iface.default_radio2=$OVSDB_IF_DEFAULT_RADIO_2" | ||||
| OVSDB_PROPS+=" -Dconnectus.ovsdb.wifi-device.radio0=$OVSDB_DEVICE_RADIO_0" | ||||
| OVSDB_PROPS+=" -Dconnectus.ovsdb.wifi-device.radio1=$OVSDB_DEVICE_RADIO_1" | ||||
| OVSDB_PROPS+=" -Dconnectus.ovsdb.wifi-device.radio2=$OVSDB_DEVICE_RADIO_2" | ||||
| OVSDB_PROPS+=" -Dtip.wlan.ovsdb.managerAddr=opensync-controller" | ||||
| OVSDB_PROPS+=" -Dtip.wlan.ovsdb.listenPort=6640 " | ||||
| OVSDB_PROPS+=" -Dtip.wlan.ovsdb.redirector.listenPort=6643" | ||||
| OVSDB_PROPS+=" -Dtip.wlan.ovsdb.timeoutSec=30" | ||||
| OVSDB_PROPS+=" -Dtip.wlan.ovsdb.trustStore=/opt/tip-wlan/certs/truststore.jks" | ||||
| OVSDB_PROPS+=" -Dtip.wlan.ovsdb.keyStore=/opt/tip-wlan/certs/server.pkcs12" | ||||
| OVSDB_PROPS+=" -Dtip.wlan.ovsdb.customerEquipmentFileName=$OVSDB_EQUIPMENT_CONFIG_FILE" | ||||
| OVSDB_PROPS+=" -Dtip.wlan.ovsdb.apProfileFileName=$OVSDB_APPROFILE_CONFIG_FILE" | ||||
| OVSDB_PROPS+=" -Dtip.wlan.ovsdb.metricsProfileFileName=$OVSDB_METRICSPROFILE_CONFIG_FILE" | ||||
| OVSDB_PROPS+=" -Dtip.wlan.ovsdb.hotspot20ProfileFileName=$OVSDB_HOTSPOT20PROFILE_CONFIG_FILE" | ||||
| OVSDB_PROPS+=" -Dtip.wlan.ovsdb.operatorProfileFileName=$OVSDB_OPERATORPROFILE_CONFIG_FILE" | ||||
| OVSDB_PROPS+=" -Dtip.wlan.ovsdb.venueProfileFileName=$OVSDB_VENUEPROFILE_CONFIG_FILE" | ||||
| OVSDB_PROPS+=" -Dtip.wlan.ovsdb.idProviderProfileFileName=$OVSDB_IDPROVIDERPROFILE_CONFIG_FILE" | ||||
| OVSDB_PROPS+=" -Dtip.wlan.ovsdb.rfProfileFileName=$OVSDB_RFPROFILE_CONFIG_FILE" | ||||
| OVSDB_PROPS+=" -Dtip.wlan.ovsdb.ssidProfileFileName=$OVSDB_SSIDPROFILE_CONFIG_FILE" | ||||
| OVSDB_PROPS+=" -Dtip.wlan.preventClientCnAlteration=$OVSDB_PREVENT_CLIENTCN_ALTERATION" | ||||
| OVSDB_PROPS+=" -Dtip.wlan.ovsdb.radiusProfileFileName=$OVSDB_RADIUSPROFILE_CONFIG_FILE" | ||||
| 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 | ||||
|  | ||||
| MQTT_PROPS=" " | ||||
| MQTT_PROPS+=" -Dconnectus.mqttBroker.address=tip-wlan-opensync-mqtt-broker" | ||||
| MQTT_PROPS+=" -Dconnectus.mqttBroker.listenPort=1883" | ||||
| MQTT_PROPS+=" -Dtip.wlan.mqttBroker.address.internal=tip-wlan-opensync-mqtt-broker-internal" | ||||
| 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" | ||||
|  | ||||
| @@ -47,4 +58,4 @@ 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" | ||||
|  | ||||
| java $ALL_PROPS -jar app.jar | ||||
| java $ALL_PROPS -jar app.jar | ||||
|   | ||||
| @@ -15,11 +15,6 @@ | ||||
| 	</properties> | ||||
|  | ||||
| 	<dependencies> | ||||
| 		<dependency> | ||||
| 			<groupId>com.telecominfraproject.wlan</groupId> | ||||
| 			<artifactId>opensync-gateway</artifactId> | ||||
| 			<version>${tip-wlan-cloud.release.version}</version> | ||||
| 		</dependency> | ||||
| 		<dependency> | ||||
| 			<groupId>com.telecominfraproject.wlan</groupId> | ||||
| 			<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