mirror of
				https://github.com/Telecominfraproject/wlan-cloud-opensync-controller.git
				synced 2025-11-04 12:37:48 +00:00 
			
		
		
		
	Compare commits
	
		
			307 Commits
		
	
	
		
			TOOLS-23-s
			...
			feature/NE
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 
						 | 
					5f35b59a34 | ||
| 
						 | 
					d3729a47d2 | ||
| 
						 | 
					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
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Copyright (c) 2020, Telecom Infra Project
 | 
				
			||||||
 | 
					All rights reserved.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Redistribution and use in source and binary forms, with or without
 | 
				
			||||||
 | 
					modification, are permitted provided that the following conditions are met:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					1. Redistributions of source code must retain the above copyright notice, this
 | 
				
			||||||
 | 
					   list of conditions and the following disclaimer.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					2. Redistributions in binary form must reproduce the above copyright notice,
 | 
				
			||||||
 | 
					   this list of conditions and the following disclaimer in the documentation
 | 
				
			||||||
 | 
					   and/or other materials provided with the distribution.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					3. Neither the name of the copyright holder nor the names of its
 | 
				
			||||||
 | 
					   contributors may be used to endorse or promote products derived from
 | 
				
			||||||
 | 
					   this software without specific prior written permission.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
 | 
				
			||||||
 | 
					AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 | 
				
			||||||
 | 
					IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
 | 
				
			||||||
 | 
					DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
 | 
				
			||||||
 | 
					FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
 | 
				
			||||||
 | 
					DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
 | 
				
			||||||
 | 
					SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
 | 
				
			||||||
 | 
					CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
 | 
				
			||||||
 | 
					OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 | 
				
			||||||
 | 
					OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 | 
				
			||||||
							
								
								
									
										12
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										12
									
								
								README.md
									
									
									
									
									
								
							@@ -1,7 +1,13 @@
 | 
				
			|||||||
# tip-wlan-opensync-wifi-controller
 | 
					# wlan-opensync-wifi-controller
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Opensync Wifi Controller - accepts connections from the access points, pushes configuration, reads metrics from the topics on MQTT broker.
 | 
					Opensync Wifi Controller - accepts connections from the access points, pushes configuration, reads metrics from the topics on MQTT broker.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Components in this repository depend on other tip-wlan repositories. 
 | 
					Components in this repository depend on other wlan-cloud repositories. 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
How to build components in this repository - checkout [tip-wlan-cloud-workspace](https://github.com/Telecominfraproject/tip-wlan-cloud-workspace) repository and follow its build instructions.
 | 
					How to build components in this repository - checkout [wlan-cloud-workspace](https://github.com/Telecominfraproject/wlan-cloud-workspace) repository and follow its build instructions.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					There are several variants of the Opensync Wifi Controller:
 | 
				
			||||||
 | 
					* statically configured by the json files - see the projects: opensync-ext-static, opensync-gateway-static-process, opensync-gateway-static-docker
 | 
				
			||||||
 | 
					* dynamically configured using REST APIs and provisioning workflows of the CloudSDK - see the projects: opensync-ext-cloud, opensync-gateway-cloud-process, opensync-gateway-cloud-docker
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					All the variants mentionined above are using common components defined in projects opensync-gateway and opensync-ext-interface
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										1
									
								
								opensync-ext-cloud/.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								opensync-ext-cloud/.gitignore
									
									
									
									
										vendored
									
									
								
							@@ -1 +0,0 @@
 | 
				
			|||||||
/target/
 | 
					 | 
				
			||||||
@@ -28,6 +28,11 @@
 | 
				
			|||||||
        <groupId>com.telecominfraproject.wlan</groupId>
 | 
					        <groupId>com.telecominfraproject.wlan</groupId>
 | 
				
			||||||
        <version>${tip-wlan-cloud.release.version}</version>
 | 
					        <version>${tip-wlan-cloud.release.version}</version>
 | 
				
			||||||
      </dependency>
 | 
					      </dependency>
 | 
				
			||||||
 | 
					        <dependency>
 | 
				
			||||||
 | 
					            <artifactId>base-client</artifactId>
 | 
				
			||||||
 | 
					            <groupId>com.telecominfraproject.wlan</groupId>
 | 
				
			||||||
 | 
					            <version>${tip-wlan-cloud.release.version}</version>
 | 
				
			||||||
 | 
					        </dependency>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      <dependency>
 | 
					      <dependency>
 | 
				
			||||||
        <artifactId>equipment-gateway-models</artifactId>
 | 
					        <artifactId>equipment-gateway-models</artifactId>
 | 
				
			||||||
 
 | 
				
			|||||||
										
											
												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.Logger;
 | 
				
			||||||
import org.slf4j.LoggerFactory;
 | 
					import org.slf4j.LoggerFactory;
 | 
				
			||||||
 | 
					import org.springframework.beans.factory.annotation.Autowired;
 | 
				
			||||||
import org.springframework.context.ApplicationListener;
 | 
					import org.springframework.context.ApplicationListener;
 | 
				
			||||||
import org.springframework.context.event.ContextStartedEvent;
 | 
					import org.springframework.context.event.ContextStartedEvent;
 | 
				
			||||||
 | 
					import org.springframework.stereotype.Component;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
 * Listen for context started event so that we are register with routing service
 | 
					 * Listen for context started event so that we are register with routing service
 | 
				
			||||||
@@ -11,15 +13,13 @@ import org.springframework.context.event.ContextStartedEvent;
 | 
				
			|||||||
 * @author yongli
 | 
					 * @author yongli
 | 
				
			||||||
 * 
 | 
					 * 
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
 | 
					@Component
 | 
				
			||||||
public class OpensyncGatewayControllerStartListener implements ApplicationListener<ContextStartedEvent> {
 | 
					public class OpensyncGatewayControllerStartListener implements ApplicationListener<ContextStartedEvent> {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    private static final Logger LOG = LoggerFactory.getLogger(OpensyncGatewayControllerStartListener.class);
 | 
					    private static final Logger LOG = LoggerFactory.getLogger(OpensyncGatewayControllerStartListener.class);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    OpensyncCloudGatewayController controller;
 | 
					    @Autowired
 | 
				
			||||||
 | 
					    private OpensyncCloudGatewayController controller;
 | 
				
			||||||
    public OpensyncGatewayControllerStartListener(OpensyncCloudGatewayController controller) {
 | 
					 | 
				
			||||||
        this.controller = controller;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @Override
 | 
					    @Override
 | 
				
			||||||
    public void onApplicationEvent(ContextStartedEvent event) {
 | 
					    public void onApplicationEvent(ContextStartedEvent event) {
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -2,8 +2,10 @@ package com.telecominfraproject.wlan.opensync.external.integration.controller;
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
import org.slf4j.Logger;
 | 
					import org.slf4j.Logger;
 | 
				
			||||||
import org.slf4j.LoggerFactory;
 | 
					import org.slf4j.LoggerFactory;
 | 
				
			||||||
 | 
					import org.springframework.beans.factory.annotation.Autowired;
 | 
				
			||||||
import org.springframework.context.ApplicationListener;
 | 
					import org.springframework.context.ApplicationListener;
 | 
				
			||||||
import org.springframework.context.event.ContextClosedEvent;
 | 
					import org.springframework.context.event.ContextClosedEvent;
 | 
				
			||||||
 | 
					import org.springframework.stereotype.Component;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
 * Register for stop event so that we can de-register from routing service
 | 
					 * Register for stop event so that we can de-register from routing service
 | 
				
			||||||
@@ -11,14 +13,13 @@ import org.springframework.context.event.ContextClosedEvent;
 | 
				
			|||||||
 * @author yongli
 | 
					 * @author yongli
 | 
				
			||||||
 *
 | 
					 *
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
 | 
					@Component
 | 
				
			||||||
public class OpensyncGatewayControllerStopListener implements ApplicationListener<ContextClosedEvent> {
 | 
					public class OpensyncGatewayControllerStopListener implements ApplicationListener<ContextClosedEvent> {
 | 
				
			||||||
	OpensyncCloudGatewayController controller;
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
	private static final Logger LOG = LoggerFactory.getLogger(OpensyncGatewayControllerStopListener.class);
 | 
						private static final Logger LOG = LoggerFactory.getLogger(OpensyncGatewayControllerStopListener.class);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	public OpensyncGatewayControllerStopListener(OpensyncCloudGatewayController controller) {
 | 
						@Autowired
 | 
				
			||||||
		this.controller = controller;
 | 
						private OpensyncCloudGatewayController controller;
 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
	@Override
 | 
						@Override
 | 
				
			||||||
	public void onApplicationEvent(ContextClosedEvent event) {
 | 
						public void onApplicationEvent(ContextClosedEvent event) {
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,29 +0,0 @@
 | 
				
			|||||||
package com.telecominfraproject.wlan.opensync.external.integration.controller;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
import org.slf4j.Logger;
 | 
					 | 
				
			||||||
import org.slf4j.LoggerFactory;
 | 
					 | 
				
			||||||
import org.springframework.beans.factory.annotation.Autowired;
 | 
					 | 
				
			||||||
import org.springframework.context.ApplicationListener;
 | 
					 | 
				
			||||||
import org.springframework.context.annotation.Bean;
 | 
					 | 
				
			||||||
import org.springframework.context.event.ContextClosedEvent;
 | 
					 | 
				
			||||||
import org.springframework.context.event.ContextStartedEvent;
 | 
					 | 
				
			||||||
import org.springframework.stereotype.Component;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
@Component
 | 
					 | 
				
			||||||
public class OpensyncGatewayListenerConfiguration {
 | 
					 | 
				
			||||||
    @Autowired
 | 
					 | 
				
			||||||
    OpensyncCloudGatewayController controller;
 | 
					 | 
				
			||||||
    private static final Logger LOG = LoggerFactory.getLogger(OpensyncGatewayControllerStartListener.class);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    @Bean
 | 
					 | 
				
			||||||
    public ApplicationListener<ContextClosedEvent> myStopEventListner() {
 | 
					 | 
				
			||||||
        LOG.debug("Creating stop event listener");
 | 
					 | 
				
			||||||
        return new OpensyncGatewayControllerStopListener(controller);
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
    
 | 
					 | 
				
			||||||
    @Bean
 | 
					 | 
				
			||||||
    public ApplicationListener<ContextStartedEvent> myStartedEventListener() {
 | 
					 | 
				
			||||||
        LOG.debug("Creating start event listener");
 | 
					 | 
				
			||||||
        return new OpensyncGatewayControllerStartListener(controller);
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
@@ -0,0 +1,945 @@
 | 
				
			|||||||
 | 
					package com.telecominfraproject.wlan.opensync.external.integration;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import static org.junit.Assert.assertNotNull;
 | 
				
			||||||
 | 
					import static org.junit.Assert.assertNull;
 | 
				
			||||||
 | 
					import static org.junit.jupiter.api.Assertions.assertEquals;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import java.util.ArrayList;
 | 
				
			||||||
 | 
					import java.util.HashMap;
 | 
				
			||||||
 | 
					import java.util.HashSet;
 | 
				
			||||||
 | 
					import java.util.List;
 | 
				
			||||||
 | 
					import java.util.Map;
 | 
				
			||||||
 | 
					import java.util.Set;
 | 
				
			||||||
 | 
					import java.util.UUID;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import org.junit.After;
 | 
				
			||||||
 | 
					import org.junit.Before;
 | 
				
			||||||
 | 
					import org.junit.Ignore;
 | 
				
			||||||
 | 
					import org.junit.Test;
 | 
				
			||||||
 | 
					import org.junit.runner.RunWith;
 | 
				
			||||||
 | 
					import org.mockito.Answers;
 | 
				
			||||||
 | 
					import org.mockito.ArgumentMatchers;
 | 
				
			||||||
 | 
					import org.mockito.Mockito;
 | 
				
			||||||
 | 
					import org.mockito.MockitoSession;
 | 
				
			||||||
 | 
					import org.mockito.quality.Strictness;
 | 
				
			||||||
 | 
					import org.springframework.beans.factory.annotation.Autowired;
 | 
				
			||||||
 | 
					import org.springframework.boot.test.context.SpringBootTest;
 | 
				
			||||||
 | 
					import org.springframework.boot.test.context.SpringBootTest.WebEnvironment;
 | 
				
			||||||
 | 
					import org.springframework.boot.test.mock.mockito.MockBean;
 | 
				
			||||||
 | 
					import org.springframework.cache.CacheManager;
 | 
				
			||||||
 | 
					import org.springframework.cache.caffeine.CaffeineCacheManager;
 | 
				
			||||||
 | 
					import org.springframework.context.annotation.Bean;
 | 
				
			||||||
 | 
					import org.springframework.context.annotation.Configuration;
 | 
				
			||||||
 | 
					import org.springframework.context.annotation.Import;
 | 
				
			||||||
 | 
					import org.springframework.test.context.ActiveProfiles;
 | 
				
			||||||
 | 
					import org.springframework.test.context.junit4.SpringRunner;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import com.google.common.collect.ImmutableList;
 | 
				
			||||||
 | 
					import com.google.common.collect.ImmutableMap;
 | 
				
			||||||
 | 
					import com.google.common.collect.ImmutableSet;
 | 
				
			||||||
 | 
					import com.google.protobuf.ByteString;
 | 
				
			||||||
 | 
					import com.telecominfraproject.wlan.alarm.AlarmServiceInterface;
 | 
				
			||||||
 | 
					import com.telecominfraproject.wlan.client.ClientServiceInterface;
 | 
				
			||||||
 | 
					import com.telecominfraproject.wlan.client.info.models.ClientInfoDetails;
 | 
				
			||||||
 | 
					import com.telecominfraproject.wlan.client.session.models.ClientSession;
 | 
				
			||||||
 | 
					import com.telecominfraproject.wlan.client.session.models.ClientSessionDetails;
 | 
				
			||||||
 | 
					import com.telecominfraproject.wlan.cloudeventdispatcher.CloudEventDispatcherInterface;
 | 
				
			||||||
 | 
					import com.telecominfraproject.wlan.core.model.entity.CountryCode;
 | 
				
			||||||
 | 
					import com.telecominfraproject.wlan.core.model.equipment.EquipmentType;
 | 
				
			||||||
 | 
					import com.telecominfraproject.wlan.core.model.equipment.MacAddress;
 | 
				
			||||||
 | 
					import com.telecominfraproject.wlan.core.model.equipment.RadioType;
 | 
				
			||||||
 | 
					import com.telecominfraproject.wlan.customer.models.Customer;
 | 
				
			||||||
 | 
					import com.telecominfraproject.wlan.customer.models.CustomerDetails;
 | 
				
			||||||
 | 
					import com.telecominfraproject.wlan.customer.models.EquipmentAutoProvisioningSettings;
 | 
				
			||||||
 | 
					import com.telecominfraproject.wlan.customer.service.CustomerServiceInterface;
 | 
				
			||||||
 | 
					import com.telecominfraproject.wlan.equipment.EquipmentServiceInterface;
 | 
				
			||||||
 | 
					import com.telecominfraproject.wlan.equipment.models.ApElementConfiguration;
 | 
				
			||||||
 | 
					import com.telecominfraproject.wlan.equipment.models.Equipment;
 | 
				
			||||||
 | 
					import com.telecominfraproject.wlan.firmware.FirmwareServiceInterface;
 | 
				
			||||||
 | 
					import com.telecominfraproject.wlan.firmware.models.CustomerFirmwareTrackRecord;
 | 
				
			||||||
 | 
					import com.telecominfraproject.wlan.firmware.models.CustomerFirmwareTrackSettings;
 | 
				
			||||||
 | 
					import com.telecominfraproject.wlan.location.models.Location;
 | 
				
			||||||
 | 
					import com.telecominfraproject.wlan.location.models.LocationDetails;
 | 
				
			||||||
 | 
					import com.telecominfraproject.wlan.location.models.LocationType;
 | 
				
			||||||
 | 
					import com.telecominfraproject.wlan.location.service.LocationServiceInterface;
 | 
				
			||||||
 | 
					import com.telecominfraproject.wlan.opensync.external.integration.controller.OpensyncCloudGatewayController;
 | 
				
			||||||
 | 
					import com.telecominfraproject.wlan.opensync.external.integration.models.ConnectNodeInfo;
 | 
				
			||||||
 | 
					import com.telecominfraproject.wlan.opensync.external.integration.models.OpensyncAPRadioState;
 | 
				
			||||||
 | 
					import com.telecominfraproject.wlan.opensync.external.integration.models.OpensyncAPVIFState;
 | 
				
			||||||
 | 
					import com.telecominfraproject.wlan.profile.ProfileServiceInterface;
 | 
				
			||||||
 | 
					import com.telecominfraproject.wlan.profile.models.Profile;
 | 
				
			||||||
 | 
					import com.telecominfraproject.wlan.profile.models.ProfileType;
 | 
				
			||||||
 | 
					import com.telecominfraproject.wlan.profile.network.models.ApNetworkConfiguration;
 | 
				
			||||||
 | 
					import com.telecominfraproject.wlan.profile.rf.models.RfConfiguration;
 | 
				
			||||||
 | 
					import com.telecominfraproject.wlan.profile.ssid.models.SsidConfiguration;
 | 
				
			||||||
 | 
					import com.telecominfraproject.wlan.routing.RoutingServiceInterface;
 | 
				
			||||||
 | 
					import com.telecominfraproject.wlan.status.StatusServiceInterface;
 | 
				
			||||||
 | 
					import com.telecominfraproject.wlan.status.equipment.models.EquipmentProtocolStatusData;
 | 
				
			||||||
 | 
					import com.telecominfraproject.wlan.status.equipment.models.EquipmentUpgradeStatusData;
 | 
				
			||||||
 | 
					import com.telecominfraproject.wlan.status.equipment.report.models.ActiveBSSID;
 | 
				
			||||||
 | 
					import com.telecominfraproject.wlan.status.equipment.report.models.ActiveBSSIDs;
 | 
				
			||||||
 | 
					import com.telecominfraproject.wlan.status.equipment.report.models.ClientConnectionDetails;
 | 
				
			||||||
 | 
					import com.telecominfraproject.wlan.status.models.Status;
 | 
				
			||||||
 | 
					import com.telecominfraproject.wlan.status.models.StatusDataType;
 | 
				
			||||||
 | 
					import com.vmware.ovsdb.protocol.operation.notation.Uuid;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import sts.OpensyncStats.AssocType;
 | 
				
			||||||
 | 
					import sts.OpensyncStats.Client;
 | 
				
			||||||
 | 
					import sts.OpensyncStats.ClientReport;
 | 
				
			||||||
 | 
					import sts.OpensyncStats.EventReport;
 | 
				
			||||||
 | 
					import sts.OpensyncStats.EventReport.ClientAssocEvent;
 | 
				
			||||||
 | 
					import sts.OpensyncStats.EventType;
 | 
				
			||||||
 | 
					import sts.OpensyncStats.RadioBandType;
 | 
				
			||||||
 | 
					import sts.OpensyncStats.Report;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@RunWith(SpringRunner.class)
 | 
				
			||||||
 | 
					@ActiveProfiles(profiles = { "integration_test", })
 | 
				
			||||||
 | 
					@SpringBootTest(webEnvironment = WebEnvironment.NONE, classes = OpensyncExternalIntegrationCloudTest.class)
 | 
				
			||||||
 | 
					@Import(value = { AlarmServiceInterface.class, OpensyncExternalIntegrationCloud.class,
 | 
				
			||||||
 | 
					        OpensyncExternalIntegrationCloudTest.Config.class,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					})
 | 
				
			||||||
 | 
					public class OpensyncExternalIntegrationCloudTest {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @MockBean
 | 
				
			||||||
 | 
					    AlarmServiceInterface alarmServiceInterface;
 | 
				
			||||||
 | 
					    @MockBean
 | 
				
			||||||
 | 
					    CustomerServiceInterface customerServiceInterface;
 | 
				
			||||||
 | 
					    @MockBean
 | 
				
			||||||
 | 
					    LocationServiceInterface locationServiceInterface;
 | 
				
			||||||
 | 
					    @MockBean(answer = Answers.RETURNS_MOCKS)
 | 
				
			||||||
 | 
					    OvsdbSessionMapInterface ovsdbSessionMapInterface;
 | 
				
			||||||
 | 
					    @MockBean
 | 
				
			||||||
 | 
					    CloudEventDispatcherInterface equipmentMetricsCollectorInterface;
 | 
				
			||||||
 | 
					    @MockBean
 | 
				
			||||||
 | 
					    EquipmentServiceInterface equipmentServiceInterface;
 | 
				
			||||||
 | 
					    @MockBean
 | 
				
			||||||
 | 
					    RoutingServiceInterface routingServiceInterface;
 | 
				
			||||||
 | 
					    @MockBean
 | 
				
			||||||
 | 
					    ProfileServiceInterface profileServiceInterface;
 | 
				
			||||||
 | 
					    @MockBean
 | 
				
			||||||
 | 
					    StatusServiceInterface statusServiceInterface;
 | 
				
			||||||
 | 
					    @MockBean
 | 
				
			||||||
 | 
					    ClientServiceInterface clientServiceInterface;
 | 
				
			||||||
 | 
					    @MockBean
 | 
				
			||||||
 | 
					    FirmwareServiceInterface firmwareServiceInterface;
 | 
				
			||||||
 | 
					    @MockBean(answer = Answers.RETURNS_MOCKS)
 | 
				
			||||||
 | 
					    OpensyncCloudGatewayController gatewayController;
 | 
				
			||||||
 | 
					    @MockBean
 | 
				
			||||||
 | 
					    OpensyncExternalIntegrationMqttMessageProcessor opensyncExternalIntegrationMqttProcessor;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Autowired
 | 
				
			||||||
 | 
					    OpensyncExternalIntegrationCloud opensyncExternalIntegrationCloud;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    MockitoSession mockito;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Configuration
 | 
				
			||||||
 | 
					    static class Config {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        @Bean
 | 
				
			||||||
 | 
					        public OpensyncExternalIntegrationCloud opensyncExternalIntegrationCloud() {
 | 
				
			||||||
 | 
					            return new OpensyncExternalIntegrationCloud();
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        @Bean
 | 
				
			||||||
 | 
					        public CacheManager cacheManager() {
 | 
				
			||||||
 | 
					            return new CaffeineCacheManager();
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Before
 | 
				
			||||||
 | 
					    public void setUp() throws Exception {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        mockito = Mockito.mockitoSession().initMocks(this).strictness(Strictness.STRICT_STUBS).startMocking();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @After
 | 
				
			||||||
 | 
					    public void tearDown() throws Exception {
 | 
				
			||||||
 | 
					        mockito.finishMocking();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Test
 | 
				
			||||||
 | 
					    public void testGetCustomerEquipment() {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        Equipment equipment = new Equipment();
 | 
				
			||||||
 | 
					        equipment.setDetails(ApElementConfiguration.createWithDefaults());
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        Mockito.when(
 | 
				
			||||||
 | 
					                equipmentServiceInterface.getByInventoryIdOrNull(ArgumentMatchers.eq("Test_Client_21P10C68818122")))
 | 
				
			||||||
 | 
					                .thenReturn(equipment);
 | 
				
			||||||
 | 
					        assertNotNull(opensyncExternalIntegrationCloud.getCustomerEquipment("Test_Client_21P10C68818122"));
 | 
				
			||||||
 | 
					        assertNull(opensyncExternalIntegrationCloud.getCustomerEquipment("Test_Client_21P10C68818133"));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Test
 | 
				
			||||||
 | 
					    public void testApConnected() {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        Location location = new Location();
 | 
				
			||||||
 | 
					        location.setId(8L);
 | 
				
			||||||
 | 
					        location.setCustomerId(2);
 | 
				
			||||||
 | 
					        location.setDetails(LocationDetails.createWithDefaults());
 | 
				
			||||||
 | 
					        location.setName("Location-UT");
 | 
				
			||||||
 | 
					        location.setLocationType(LocationType.BUILDING);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        Customer customer = new Customer();
 | 
				
			||||||
 | 
					        customer.setId(2);
 | 
				
			||||||
 | 
					        CustomerDetails customerDetails = new CustomerDetails();
 | 
				
			||||||
 | 
					        customerDetails.setAutoProvisioning(new EquipmentAutoProvisioningSettings());
 | 
				
			||||||
 | 
					        customerDetails.getAutoProvisioning().setEnabled(true);
 | 
				
			||||||
 | 
					        customerDetails.getAutoProvisioning().setLocationId(location.getId());
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        customer.setDetails(customerDetails);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        Mockito.when(customerServiceInterface.getOrNull(ArgumentMatchers.anyInt())).thenReturn(customer);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        Profile apProfile = new Profile();
 | 
				
			||||||
 | 
					        apProfile.setDetails(ApNetworkConfiguration.createWithDefaults());
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        Profile ssidProfile = new Profile();
 | 
				
			||||||
 | 
					        ssidProfile.setDetails(SsidConfiguration.createWithDefaults());
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        apProfile.setChildProfileIds(ImmutableSet.of(ssidProfile.getId()));
 | 
				
			||||||
 | 
					        Mockito.when(profileServiceInterface.create(ArgumentMatchers.any(Profile.class)))
 | 
				
			||||||
 | 
					                .thenAnswer(i -> i.getArguments()[0]);
 | 
				
			||||||
 | 
					        // .thenReturn(ssidProfile);
 | 
				
			||||||
 | 
					        Mockito.when(profileServiceInterface.update(ArgumentMatchers.any(Profile.class)))
 | 
				
			||||||
 | 
					                .thenAnswer(i -> i.getArguments()[0]);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        Status fwStatus = new Status();
 | 
				
			||||||
 | 
					        fwStatus.setDetails(new EquipmentUpgradeStatusData());
 | 
				
			||||||
 | 
					        Mockito.when(statusServiceInterface.getOrNull(ArgumentMatchers.anyInt(), ArgumentMatchers.anyLong(),
 | 
				
			||||||
 | 
					                ArgumentMatchers.eq(StatusDataType.FIRMWARE))).thenReturn(fwStatus);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        Mockito.when(firmwareServiceInterface.getDefaultCustomerTrackSetting())
 | 
				
			||||||
 | 
					                .thenReturn(new CustomerFirmwareTrackSettings());
 | 
				
			||||||
 | 
					        CustomerFirmwareTrackRecord fwTrackRecord = new CustomerFirmwareTrackRecord();
 | 
				
			||||||
 | 
					        fwTrackRecord.setSettings(new CustomerFirmwareTrackSettings());
 | 
				
			||||||
 | 
					        fwTrackRecord.setTrackRecordId(3);
 | 
				
			||||||
 | 
					        fwTrackRecord.setCustomerId(2);
 | 
				
			||||||
 | 
					        Mockito.when(firmwareServiceInterface.getCustomerFirmwareTrackRecord(ArgumentMatchers.anyInt()))
 | 
				
			||||||
 | 
					                .thenReturn(fwTrackRecord);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        Equipment equipment = new Equipment();
 | 
				
			||||||
 | 
					        equipment.setCustomerId(2);
 | 
				
			||||||
 | 
					        equipment.setEquipmentType(EquipmentType.AP);
 | 
				
			||||||
 | 
					        equipment.setInventoryId("Test_Client_21P10C68818122");
 | 
				
			||||||
 | 
					        equipment.setLocationId(location.getId());
 | 
				
			||||||
 | 
					        equipment.setId(1L);
 | 
				
			||||||
 | 
					        equipment.setProfileId(apProfile.getId());
 | 
				
			||||||
 | 
					        equipment.setDetails(ApElementConfiguration.createWithDefaults());
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        Mockito.when(equipmentServiceInterface.get(1L)).thenReturn(equipment);
 | 
				
			||||||
 | 
					        Mockito.when(
 | 
				
			||||||
 | 
					                equipmentServiceInterface.getByInventoryIdOrNull(ArgumentMatchers.eq("Test_Client_21P10C68818122")))
 | 
				
			||||||
 | 
					                .thenReturn(equipment);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        Mockito.when(equipmentServiceInterface.create(ArgumentMatchers.any(Equipment.class)))
 | 
				
			||||||
 | 
					                .thenAnswer(i -> i.getArguments()[0]);
 | 
				
			||||||
 | 
					        Mockito.when(equipmentServiceInterface.update(ArgumentMatchers.any(Equipment.class)))
 | 
				
			||||||
 | 
					                .thenAnswer(i -> i.getArguments()[0]);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        OvsdbSession session = Mockito.mock(OvsdbSession.class);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        Mockito.when(ovsdbSessionMapInterface.getSession("Test_Client_21P10C68818122")).thenReturn(session);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        opensyncExternalIntegrationCloud.apConnected("Test_Client_21P10C68818122", createConnectNodeInfo());
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        Mockito.verify(firmwareServiceInterface).getDefaultCustomerTrackSetting();
 | 
				
			||||||
 | 
					        Mockito.verifyNoInteractions(locationServiceInterface);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Test
 | 
				
			||||||
 | 
					    public void testApConnectedNewAp() throws Exception {
 | 
				
			||||||
 | 
					        Location location = new Location();
 | 
				
			||||||
 | 
					        location.setId(8L);
 | 
				
			||||||
 | 
					        location.setCustomerId(2);
 | 
				
			||||||
 | 
					        location.setDetails(LocationDetails.createWithDefaults());
 | 
				
			||||||
 | 
					        location.setName("Location-UT");
 | 
				
			||||||
 | 
					        location.setLocationType(LocationType.BUILDING);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        Mockito.when(locationServiceInterface.get(8L)).thenReturn(location);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        Customer customer = new Customer();
 | 
				
			||||||
 | 
					        customer.setId(2);
 | 
				
			||||||
 | 
					        CustomerDetails customerDetails = new CustomerDetails();
 | 
				
			||||||
 | 
					        customerDetails.setAutoProvisioning(new EquipmentAutoProvisioningSettings());
 | 
				
			||||||
 | 
					        customerDetails.getAutoProvisioning().setEnabled(true);
 | 
				
			||||||
 | 
					        customerDetails.getAutoProvisioning().setLocationId(location.getId());
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        customer.setDetails(customerDetails);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        Mockito.when(customerServiceInterface.getOrNull(ArgumentMatchers.anyInt())).thenReturn(customer);
 | 
				
			||||||
 | 
					        
 | 
				
			||||||
 | 
					        Profile rfProfile = new Profile();
 | 
				
			||||||
 | 
					        rfProfile.setId(1);
 | 
				
			||||||
 | 
					        rfProfile.setName("testRfProfile");
 | 
				
			||||||
 | 
					        rfProfile.setDetails(RfConfiguration.createWithDefaults());
 | 
				
			||||||
 | 
					        rfProfile.setProfileType(ProfileType.rf);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        Profile apProfile = new Profile();
 | 
				
			||||||
 | 
					        apProfile.setDetails(ApNetworkConfiguration.createWithDefaults());
 | 
				
			||||||
 | 
					        apProfile.setName("testApProfile");
 | 
				
			||||||
 | 
					        apProfile.setProfileType(ProfileType.equipment_ap);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        Profile ssidProfile = new Profile();
 | 
				
			||||||
 | 
					        ssidProfile.setId(2);
 | 
				
			||||||
 | 
					        ssidProfile.setDetails(SsidConfiguration.createWithDefaults());
 | 
				
			||||||
 | 
					        
 | 
				
			||||||
 | 
					        Set<Long> childProfileIds = new HashSet<>();
 | 
				
			||||||
 | 
					        childProfileIds.add(rfProfile.getId()); 
 | 
				
			||||||
 | 
					        childProfileIds.add(ssidProfile.getId());   
 | 
				
			||||||
 | 
					        apProfile.setChildProfileIds(childProfileIds);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        Mockito.when(profileServiceInterface.create(ArgumentMatchers.any(Profile.class))).thenReturn(apProfile)
 | 
				
			||||||
 | 
					                .thenReturn(ssidProfile).thenReturn(rfProfile);
 | 
				
			||||||
 | 
					        Mockito.when(profileServiceInterface.update(ArgumentMatchers.any(Profile.class))).thenReturn(apProfile);
 | 
				
			||||||
 | 
					        
 | 
				
			||||||
 | 
					        List<Profile> profileList = new ArrayList<>();
 | 
				
			||||||
 | 
					        profileList.add(apProfile);
 | 
				
			||||||
 | 
					        profileList.add(rfProfile);
 | 
				
			||||||
 | 
					        profileList.add(ssidProfile);
 | 
				
			||||||
 | 
					        
 | 
				
			||||||
 | 
					        Mockito.when(profileServiceInterface.getProfileWithChildren(ArgumentMatchers.anyLong())).thenReturn(profileList);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        Equipment equipment = new Equipment();
 | 
				
			||||||
 | 
					        equipment.setCustomerId(2);
 | 
				
			||||||
 | 
					        equipment.setEquipmentType(EquipmentType.AP);
 | 
				
			||||||
 | 
					        equipment.setInventoryId("Test_Client_21P10C68818122");
 | 
				
			||||||
 | 
					        equipment.setLocationId(location.getId());
 | 
				
			||||||
 | 
					        equipment.setId(1L);
 | 
				
			||||||
 | 
					        equipment.setProfileId(apProfile.getId());
 | 
				
			||||||
 | 
					        equipment.setDetails(ApElementConfiguration.createWithDefaults());
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        Mockito.when(equipmentServiceInterface.get(1L)).thenReturn(equipment);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        Mockito.when(equipmentServiceInterface.create(ArgumentMatchers.any(Equipment.class)))
 | 
				
			||||||
 | 
					                .thenAnswer(i -> i.getArguments()[0]);
 | 
				
			||||||
 | 
					        Mockito.when(equipmentServiceInterface.update(ArgumentMatchers.any(Equipment.class)))
 | 
				
			||||||
 | 
					                .thenAnswer(i -> i.getArguments()[0]);
 | 
				
			||||||
 | 
					        Mockito.when(
 | 
				
			||||||
 | 
					                equipmentServiceInterface.getByInventoryIdOrNull(ArgumentMatchers.eq("Test_Client_21P10C68818122")))
 | 
				
			||||||
 | 
					                .thenReturn(null);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        Status fwStatus = new Status();
 | 
				
			||||||
 | 
					        fwStatus.setDetails(new EquipmentUpgradeStatusData());
 | 
				
			||||||
 | 
					        Mockito.when(statusServiceInterface.getOrNull(ArgumentMatchers.anyInt(), ArgumentMatchers.anyLong(),
 | 
				
			||||||
 | 
					                ArgumentMatchers.eq(StatusDataType.FIRMWARE))).thenReturn(fwStatus);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        Mockito.when(firmwareServiceInterface.getDefaultCustomerTrackSetting())
 | 
				
			||||||
 | 
					                .thenReturn(new CustomerFirmwareTrackSettings());
 | 
				
			||||||
 | 
					        CustomerFirmwareTrackRecord fwTrackRecord = new CustomerFirmwareTrackRecord();
 | 
				
			||||||
 | 
					        fwTrackRecord.setSettings(new CustomerFirmwareTrackSettings());
 | 
				
			||||||
 | 
					        fwTrackRecord.setTrackRecordId(3);
 | 
				
			||||||
 | 
					        fwTrackRecord.setCustomerId(2);
 | 
				
			||||||
 | 
					        Mockito.when(firmwareServiceInterface.getCustomerFirmwareTrackRecord(ArgumentMatchers.anyInt()))
 | 
				
			||||||
 | 
					                .thenReturn(fwTrackRecord);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        OvsdbSession session = Mockito.mock(OvsdbSession.class);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        Mockito.when(ovsdbSessionMapInterface.getSession("Test_Client_21P10C68818122")).thenReturn(session);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        // Mockito.when(locationServiceInterface.get(Mockito.anyLong())).thenReturn(value);
 | 
				
			||||||
 | 
					        opensyncExternalIntegrationCloud.apConnected("Test_Client_21P10C68818122", createConnectNodeInfo());
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        Mockito.verify(customerServiceInterface).getOrNull(ArgumentMatchers.anyInt());
 | 
				
			||||||
 | 
					        Mockito.verify(equipmentServiceInterface).getByInventoryIdOrNull("Test_Client_21P10C68818122");
 | 
				
			||||||
 | 
					        Mockito.verify(firmwareServiceInterface).getDefaultCustomerTrackSetting();
 | 
				
			||||||
 | 
					        Mockito.verify(locationServiceInterface).get(ArgumentMatchers.anyLong());
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Test
 | 
				
			||||||
 | 
					    public void testApConnectedNoAutoprovisioning() throws Exception {
 | 
				
			||||||
 | 
					        Profile apProfile = new Profile();
 | 
				
			||||||
 | 
					        apProfile.setDetails(ApNetworkConfiguration.createWithDefaults());
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        Profile ssidProfile = new Profile();
 | 
				
			||||||
 | 
					        ssidProfile.setDetails(SsidConfiguration.createWithDefaults());
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        apProfile.setChildProfileIds(ImmutableSet.of(ssidProfile.getId()));
 | 
				
			||||||
 | 
					        Mockito.when(profileServiceInterface.create(ArgumentMatchers.any(Profile.class)))
 | 
				
			||||||
 | 
					                .thenAnswer(i -> i.getArguments()[0]);
 | 
				
			||||||
 | 
					        // .thenReturn(ssidProfile);
 | 
				
			||||||
 | 
					        Mockito.when(profileServiceInterface.update(ArgumentMatchers.any(Profile.class)))
 | 
				
			||||||
 | 
					                .thenAnswer(i -> i.getArguments()[0]);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        Location location = new Location();
 | 
				
			||||||
 | 
					        location.setId(8L);
 | 
				
			||||||
 | 
					        location.setCustomerId(2);
 | 
				
			||||||
 | 
					        location.setDetails(LocationDetails.createWithDefaults());
 | 
				
			||||||
 | 
					        location.setName("Location-UT");
 | 
				
			||||||
 | 
					        location.setLocationType(LocationType.BUILDING);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        Equipment equipment = new Equipment();
 | 
				
			||||||
 | 
					        equipment.setCustomerId(2);
 | 
				
			||||||
 | 
					        equipment.setEquipmentType(EquipmentType.AP);
 | 
				
			||||||
 | 
					        equipment.setInventoryId("Test_Client_21P10C68818122");
 | 
				
			||||||
 | 
					        equipment.setLocationId(location.getId());
 | 
				
			||||||
 | 
					        equipment.setId(1L);
 | 
				
			||||||
 | 
					        equipment.setProfileId(apProfile.getId());
 | 
				
			||||||
 | 
					        equipment.setDetails(ApElementConfiguration.createWithDefaults());
 | 
				
			||||||
 | 
					        Status fwStatus = new Status();
 | 
				
			||||||
 | 
					        fwStatus.setDetails(new EquipmentUpgradeStatusData());
 | 
				
			||||||
 | 
					        Mockito.when(statusServiceInterface.getOrNull(ArgumentMatchers.anyInt(), ArgumentMatchers.anyLong(),
 | 
				
			||||||
 | 
					                ArgumentMatchers.eq(StatusDataType.FIRMWARE))).thenReturn(fwStatus);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        Mockito.when(firmwareServiceInterface.getDefaultCustomerTrackSetting())
 | 
				
			||||||
 | 
					                .thenReturn(new CustomerFirmwareTrackSettings());
 | 
				
			||||||
 | 
					        CustomerFirmwareTrackRecord fwTrackRecord = new CustomerFirmwareTrackRecord();
 | 
				
			||||||
 | 
					        fwTrackRecord.setSettings(new CustomerFirmwareTrackSettings());
 | 
				
			||||||
 | 
					        fwTrackRecord.setTrackRecordId(3);
 | 
				
			||||||
 | 
					        fwTrackRecord.setCustomerId(2);
 | 
				
			||||||
 | 
					        Mockito.when(firmwareServiceInterface.getCustomerFirmwareTrackRecord(ArgumentMatchers.anyInt()))
 | 
				
			||||||
 | 
					                .thenReturn(fwTrackRecord);
 | 
				
			||||||
 | 
					        Mockito.when(equipmentServiceInterface.get(1L)).thenReturn(equipment);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        Mockito.when(equipmentServiceInterface.create(ArgumentMatchers.any(Equipment.class)))
 | 
				
			||||||
 | 
					                .thenAnswer(i -> i.getArguments()[0]);
 | 
				
			||||||
 | 
					        Mockito.when(equipmentServiceInterface.update(ArgumentMatchers.any(Equipment.class)))
 | 
				
			||||||
 | 
					                .thenAnswer(i -> i.getArguments()[0]);
 | 
				
			||||||
 | 
					        Mockito.when(
 | 
				
			||||||
 | 
					                equipmentServiceInterface.getByInventoryIdOrNull(ArgumentMatchers.eq("Test_Client_21P10C68818122")))
 | 
				
			||||||
 | 
					                .thenReturn(equipment);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        Customer customer = new Customer();
 | 
				
			||||||
 | 
					        customer.setId(2);
 | 
				
			||||||
 | 
					        CustomerDetails customerDetails = new CustomerDetails();
 | 
				
			||||||
 | 
					        EquipmentAutoProvisioningSettings autoprovSettings = new EquipmentAutoProvisioningSettings();
 | 
				
			||||||
 | 
					        autoprovSettings.setEnabled(false);
 | 
				
			||||||
 | 
					        customerDetails.setAutoProvisioning(autoprovSettings);
 | 
				
			||||||
 | 
					        customer.setDetails(customerDetails);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        Mockito.when(customerServiceInterface.getOrNull(ArgumentMatchers.anyInt())).thenReturn(customer);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        opensyncExternalIntegrationCloud.apConnected("Test_Client_21P10C68818122", createConnectNodeInfo());
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Test
 | 
				
			||||||
 | 
					    public void testApDisconnected() {
 | 
				
			||||||
 | 
					        opensyncExternalIntegrationCloud.apDisconnected("Test_Client_21P10C68818122");
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Test
 | 
				
			||||||
 | 
					    public void testGetApConfig() throws Exception {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        Customer customer = new Customer();
 | 
				
			||||||
 | 
					        customer.setId(2);
 | 
				
			||||||
 | 
					        CustomerDetails customerDetails = new CustomerDetails();
 | 
				
			||||||
 | 
					        EquipmentAutoProvisioningSettings autoprovSettings = new EquipmentAutoProvisioningSettings();
 | 
				
			||||||
 | 
					        autoprovSettings.setEnabled(true);
 | 
				
			||||||
 | 
					        customerDetails.setAutoProvisioning(autoprovSettings);
 | 
				
			||||||
 | 
					        customer.setDetails(customerDetails);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        Mockito.when(customerServiceInterface.getOrNull(ArgumentMatchers.anyInt())).thenReturn(customer);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        Equipment equipment = new Equipment();
 | 
				
			||||||
 | 
					        equipment.setDetails(ApElementConfiguration.createWithDefaults());
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        Mockito.when(equipmentServiceInterface.getByInventoryIdOrNull(ArgumentMatchers.any())).thenReturn(equipment);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        Profile apProfile = new Profile();
 | 
				
			||||||
 | 
					        apProfile.setDetails(ApNetworkConfiguration.createWithDefaults());
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        Profile ssidProfile = new Profile();
 | 
				
			||||||
 | 
					        ssidProfile.setDetails(SsidConfiguration.createWithDefaults());
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        List<Profile> profileWithChildren = ImmutableList.of(apProfile, ssidProfile);
 | 
				
			||||||
 | 
					        Mockito.when(profileServiceInterface.getProfileWithChildren(ArgumentMatchers.anyLong()))
 | 
				
			||||||
 | 
					                .thenReturn(profileWithChildren);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        assertNotNull(opensyncExternalIntegrationCloud.getApConfig("Test_Client_21P10C68818122"));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Test
 | 
				
			||||||
 | 
					    public void testGetApConfigNoAutoprovisioning() throws Exception {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        Customer customer = new Customer();
 | 
				
			||||||
 | 
					        customer.setId(2);
 | 
				
			||||||
 | 
					        CustomerDetails customerDetails = new CustomerDetails();
 | 
				
			||||||
 | 
					        EquipmentAutoProvisioningSettings autoprovSettings = new EquipmentAutoProvisioningSettings();
 | 
				
			||||||
 | 
					        autoprovSettings.setEnabled(false);
 | 
				
			||||||
 | 
					        customerDetails.setAutoProvisioning(autoprovSettings);
 | 
				
			||||||
 | 
					        customer.setDetails(customerDetails);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        Mockito.when(customerServiceInterface.getOrNull(ArgumentMatchers.anyInt())).thenReturn(customer);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        assertNull(opensyncExternalIntegrationCloud.getApConfig("Test_Client_21P10C68818122"));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Test
 | 
				
			||||||
 | 
					    public void testExtractApIdFromTopic() {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        String topic = "/ap/Test_Client_21P10C68818122/opensync";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        assertEquals("Test_Client_21P10C68818122",
 | 
				
			||||||
 | 
					                OpensyncExternalIntegrationMqttMessageProcessor.extractApIdFromTopic(topic));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Test
 | 
				
			||||||
 | 
					    public void testProcessMqttMessageStringReport() {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        Report report = Report.newBuilder().setNodeID("21P10C68818122")
 | 
				
			||||||
 | 
					                .addAllClients(getOpensyncStatsClientReportsList())
 | 
				
			||||||
 | 
					                .addAllEventReport(getOpensyncStatsEventReportsList()).build();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        String topic = "/ap/Test_Client_21P10C68818122/opensync";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        Status bssidStatus = new Status();
 | 
				
			||||||
 | 
					        bssidStatus.setStatusDataType(StatusDataType.ACTIVE_BSSIDS);
 | 
				
			||||||
 | 
					        bssidStatus.setCustomerId(2);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        ActiveBSSIDs activeBssidsDetails = new ActiveBSSIDs();
 | 
				
			||||||
 | 
					        activeBssidsDetails.setActiveBSSIDs(getActiveBssidList());
 | 
				
			||||||
 | 
					        bssidStatus.setDetails(activeBssidsDetails);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        Mockito.when(statusServiceInterface.getOrNull(ArgumentMatchers.anyInt(), ArgumentMatchers.anyLong(),
 | 
				
			||||||
 | 
					                ArgumentMatchers.eq(StatusDataType.ACTIVE_BSSIDS))).thenReturn(bssidStatus);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        Mockito.when(statusServiceInterface.update(ArgumentMatchers.any(Status.class))).thenReturn(bssidStatus);
 | 
				
			||||||
 | 
					        com.telecominfraproject.wlan.client.models.Client clientInstance = new com.telecominfraproject.wlan.client.models.Client();
 | 
				
			||||||
 | 
					        clientInstance.setMacAddress(new MacAddress("7C:AB:60:E6:EA:4D"));
 | 
				
			||||||
 | 
					        clientInstance.setDetails(new ClientInfoDetails());
 | 
				
			||||||
 | 
					        com.telecominfraproject.wlan.client.models.Client clientInstance2 = new com.telecominfraproject.wlan.client.models.Client();
 | 
				
			||||||
 | 
					        clientInstance2.setMacAddress(new MacAddress("C0:9A:D0:76:A9:69"));
 | 
				
			||||||
 | 
					        clientInstance2.setDetails(new ClientInfoDetails());
 | 
				
			||||||
 | 
					        Mockito.when(
 | 
				
			||||||
 | 
					                clientServiceInterface.getOrNull(ArgumentMatchers.anyInt(), ArgumentMatchers.any(MacAddress.class)))
 | 
				
			||||||
 | 
					                .thenReturn(clientInstance).thenReturn(clientInstance2);
 | 
				
			||||||
 | 
					        Mockito.when(clientServiceInterface
 | 
				
			||||||
 | 
					                .update(ArgumentMatchers.any(com.telecominfraproject.wlan.client.models.Client.class)))
 | 
				
			||||||
 | 
					                .thenReturn(clientInstance).thenReturn(clientInstance2);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        ClientSession clientSession = new ClientSession();
 | 
				
			||||||
 | 
					        clientSession.setMacAddress(new MacAddress("7C:AB:60:E6:EA:4D"));
 | 
				
			||||||
 | 
					        clientSession.setDetails(new ClientSessionDetails());
 | 
				
			||||||
 | 
					        ClientSession clientSession2 = new ClientSession();
 | 
				
			||||||
 | 
					        clientSession2.setMacAddress(new MacAddress("C0:9A:D0:76:A9:69"));
 | 
				
			||||||
 | 
					        clientSession2.setDetails(new ClientSessionDetails());
 | 
				
			||||||
 | 
					        Mockito.when(clientServiceInterface.getSessionOrNull(ArgumentMatchers.anyInt(), ArgumentMatchers.anyLong(),
 | 
				
			||||||
 | 
					                ArgumentMatchers.any(MacAddress.class))).thenReturn(clientSession).thenReturn(clientSession2);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        Mockito.when(clientServiceInterface.updateSession(ArgumentMatchers.any(ClientSession.class)))
 | 
				
			||||||
 | 
					                .thenReturn(clientSession).thenReturn(clientSession2);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        opensyncExternalIntegrationCloud.processMqttMessage(topic, report);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        Mockito.verify(opensyncExternalIntegrationMqttProcessor, Mockito.times(1)).processMqttMessage(topic, report);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Ignore
 | 
				
			||||||
 | 
					    public void testProcessMqttMessageStringFlowReport() {
 | 
				
			||||||
 | 
					        // TODO: implement me when support flow reports
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Ignore
 | 
				
			||||||
 | 
					    public void testProcessMqttMessageStringWCStatsReport() {
 | 
				
			||||||
 | 
					        // TODO: implement me when wcs stats reports supported
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Test
 | 
				
			||||||
 | 
					    public void testWifiVIFStateDbTableUpdate() {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        String apId = "Test_Client_21P10C68818122";
 | 
				
			||||||
 | 
					        OpensyncAPVIFState vifState1 = new OpensyncAPVIFState();
 | 
				
			||||||
 | 
					        vifState1.setMac("24:f5:a2:ef:2e:54");
 | 
				
			||||||
 | 
					        vifState1.setSsid("ssid-1");
 | 
				
			||||||
 | 
					        // OpensyncWifiAssociatedClients wifiClient1 = new
 | 
				
			||||||
 | 
					        // OpensyncWifiAssociatedClients();
 | 
				
			||||||
 | 
					        // wifiClient1.setMac("C0:9A:D0:E6:EA:4D");
 | 
				
			||||||
 | 
					        Uuid uuid1 = Uuid.of(UUID.randomUUID());
 | 
				
			||||||
 | 
					        vifState1.setAssociatedClients(ImmutableList.of(uuid1));
 | 
				
			||||||
 | 
					        OpensyncAPVIFState vifState2 = new OpensyncAPVIFState();
 | 
				
			||||||
 | 
					        vifState2.setMac("24:f5:a2:ef:2e:55");
 | 
				
			||||||
 | 
					        vifState2.setSsid("ssid-2");
 | 
				
			||||||
 | 
					        // OpensyncWifiAssociatedClients wifiClient2 = new
 | 
				
			||||||
 | 
					        // OpensyncWifiAssociatedClients();
 | 
				
			||||||
 | 
					        // wifiClient2.setMac("7C:AB:60:E6:EA:4D");
 | 
				
			||||||
 | 
					        Uuid uuid2 = Uuid.of(UUID.randomUUID());
 | 
				
			||||||
 | 
					        vifState2.setAssociatedClients(ImmutableList.of(uuid2));
 | 
				
			||||||
 | 
					        OpensyncAPVIFState vifState3 = new OpensyncAPVIFState();
 | 
				
			||||||
 | 
					        vifState3.setMac("24:f5:a2:ef:2e:56");
 | 
				
			||||||
 | 
					        vifState3.setSsid("ssid-3");
 | 
				
			||||||
 | 
					        // OpensyncWifiAssociatedClients wifiClient3 = new
 | 
				
			||||||
 | 
					        // OpensyncWifiAssociatedClients();
 | 
				
			||||||
 | 
					        // wifiClient3.setMac("C0:9A:D0:76:A9:69");
 | 
				
			||||||
 | 
					        Uuid uuid3 = Uuid.of(UUID.randomUUID());
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        vifState3.setAssociatedClients(ImmutableList.of(uuid3));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        Status bssidStatus = new Status();
 | 
				
			||||||
 | 
					        bssidStatus.setStatusDataType(StatusDataType.ACTIVE_BSSIDS);
 | 
				
			||||||
 | 
					        bssidStatus.setCustomerId(2);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        ActiveBSSIDs activeBssidsDetails = new ActiveBSSIDs();
 | 
				
			||||||
 | 
					        activeBssidsDetails.setActiveBSSIDs(getActiveBssidList());
 | 
				
			||||||
 | 
					        bssidStatus.setDetails(activeBssidsDetails);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        Mockito.when(statusServiceInterface.getOrNull(2, 1L, StatusDataType.ACTIVE_BSSIDS)).thenReturn(bssidStatus);
 | 
				
			||||||
 | 
					        Mockito.when(statusServiceInterface.update(bssidStatus)).thenReturn(bssidStatus);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        Status clientStatus = new Status();
 | 
				
			||||||
 | 
					        clientStatus.setCustomerId(2);
 | 
				
			||||||
 | 
					        clientStatus.setEquipmentId(1L);
 | 
				
			||||||
 | 
					        clientStatus.setStatusDataType(StatusDataType.CLIENT_DETAILS);
 | 
				
			||||||
 | 
					        ClientConnectionDetails clientConnectionDetails = new ClientConnectionDetails();
 | 
				
			||||||
 | 
					        Map<RadioType, Integer> clientsPerRadio = new HashMap<>();
 | 
				
			||||||
 | 
					        clientConnectionDetails.setNumClientsPerRadio(clientsPerRadio);
 | 
				
			||||||
 | 
					        clientStatus.setDetails(clientConnectionDetails);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        Mockito.when(statusServiceInterface.getOrNull(2, 1L, StatusDataType.CLIENT_DETAILS)).thenReturn(clientStatus);
 | 
				
			||||||
 | 
					        Mockito.when(statusServiceInterface.update(clientStatus)).thenReturn(clientStatus);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        OvsdbSession session = Mockito.mock(OvsdbSession.class);
 | 
				
			||||||
 | 
					        Mockito.when(session.getEquipmentId()).thenReturn(1L);
 | 
				
			||||||
 | 
					        Mockito.when(session.getCustomerId()).thenReturn(2);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        Equipment equipment = new Equipment();
 | 
				
			||||||
 | 
					        equipment.setCustomerId(1);
 | 
				
			||||||
 | 
					        equipment.setEquipmentType(EquipmentType.AP);
 | 
				
			||||||
 | 
					        equipment.setInventoryId(apId);
 | 
				
			||||||
 | 
					        equipment.setProfileId(1);
 | 
				
			||||||
 | 
					        equipment.setDetails(ApElementConfiguration.createWithDefaults());
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        Mockito.when(equipmentServiceInterface.getByInventoryIdOrNull(apId)).thenReturn(equipment);
 | 
				
			||||||
 | 
					        Mockito.when(equipmentServiceInterface.get(equipment.getId())).thenReturn(equipment);
 | 
				
			||||||
 | 
					        Mockito.when(equipmentServiceInterface.update(equipment)).thenReturn(equipment);
 | 
				
			||||||
 | 
					        
 | 
				
			||||||
 | 
					        Profile rfProfile = new Profile();
 | 
				
			||||||
 | 
					        rfProfile.setName("testRfProfile");
 | 
				
			||||||
 | 
					        rfProfile.setId(2);
 | 
				
			||||||
 | 
					        rfProfile.setDetails(RfConfiguration.createWithDefaults());
 | 
				
			||||||
 | 
					        rfProfile.setProfileType(ProfileType.rf);
 | 
				
			||||||
 | 
					        Set<Long> childProfileIds = new HashSet<>();
 | 
				
			||||||
 | 
					        childProfileIds.add(rfProfile.getId());
 | 
				
			||||||
 | 
					        
 | 
				
			||||||
 | 
					        Profile apProfile = new Profile();
 | 
				
			||||||
 | 
					        apProfile.setName("testApProfile");
 | 
				
			||||||
 | 
					        apProfile.setId(1);
 | 
				
			||||||
 | 
					        apProfile.setProfileType(ProfileType.equipment_ap);
 | 
				
			||||||
 | 
					        apProfile.setChildProfileIds(childProfileIds);
 | 
				
			||||||
 | 
					        
 | 
				
			||||||
 | 
					        List<Profile> profileList = new ArrayList<>();
 | 
				
			||||||
 | 
					        profileList.add(apProfile);
 | 
				
			||||||
 | 
					        profileList.add(rfProfile);
 | 
				
			||||||
 | 
					        
 | 
				
			||||||
 | 
					        Mockito.when(profileServiceInterface.getProfileWithChildren(ArgumentMatchers.anyLong())).thenReturn(profileList);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        Mockito.when(ovsdbSessionMapInterface.getSession(apId)).thenReturn(session);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        opensyncExternalIntegrationCloud.wifiVIFStateDbTableUpdate(ImmutableList.of(vifState1, vifState2, vifState3),
 | 
				
			||||||
 | 
					                apId);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        Mockito.verify(session).getCustomerId();
 | 
				
			||||||
 | 
					        Mockito.verify(session).getEquipmentId();
 | 
				
			||||||
 | 
					        Mockito.verify(ovsdbSessionMapInterface).getSession(apId);
 | 
				
			||||||
 | 
					        Mockito.verify(equipmentServiceInterface).getByInventoryIdOrNull(apId);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        Mockito.verify(statusServiceInterface).getOrNull(2, 1L, StatusDataType.CLIENT_DETAILS);
 | 
				
			||||||
 | 
					        Mockito.verify(statusServiceInterface).getOrNull(2, 1L, StatusDataType.ACTIVE_BSSIDS);
 | 
				
			||||||
 | 
					        Mockito.verify(statusServiceInterface).update(clientStatus);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Test
 | 
				
			||||||
 | 
					    public void testWifiRadioStatusDbTableUpdate() {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        String apId = "Test_Client_21P10C68818122";
 | 
				
			||||||
 | 
					        OpensyncAPRadioState radioState1 = new OpensyncAPRadioState();
 | 
				
			||||||
 | 
					        radioState1.setChannel(6);
 | 
				
			||||||
 | 
					        radioState1.setVifStates(ImmutableSet.of(new Uuid(UUID.randomUUID())));
 | 
				
			||||||
 | 
					        radioState1.setFreqBand(RadioType.is5GHzL);
 | 
				
			||||||
 | 
					        radioState1.setAllowedChannels(ImmutableSet.of(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11));
 | 
				
			||||||
 | 
					        radioState1.setTxPower(32);
 | 
				
			||||||
 | 
					        radioState1.setEnabled(true);
 | 
				
			||||||
 | 
					        radioState1.setCountry("CA");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        OpensyncAPRadioState radioState2 = new OpensyncAPRadioState();
 | 
				
			||||||
 | 
					        radioState2.setChannel(36);
 | 
				
			||||||
 | 
					        radioState2.setVifStates(ImmutableSet.of(new Uuid(UUID.randomUUID())));
 | 
				
			||||||
 | 
					        radioState2.setFreqBand(RadioType.is5GHzL);
 | 
				
			||||||
 | 
					        radioState2.setAllowedChannels(ImmutableSet.of(36, 40, 44, 48, 52, 56, 60, 64));
 | 
				
			||||||
 | 
					        radioState2.setTxPower(32);
 | 
				
			||||||
 | 
					        radioState2.setEnabled(true);
 | 
				
			||||||
 | 
					        radioState2.setCountry("CA");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        OpensyncAPRadioState radioState3 = new OpensyncAPRadioState();
 | 
				
			||||||
 | 
					        radioState3.setChannel(149);
 | 
				
			||||||
 | 
					        radioState3.setVifStates(ImmutableSet.of(new Uuid(UUID.randomUUID())));
 | 
				
			||||||
 | 
					        radioState3.setFreqBand(RadioType.is5GHzL);
 | 
				
			||||||
 | 
					        radioState3.setAllowedChannels(
 | 
				
			||||||
 | 
					                ImmutableSet.of(00, 104, 108, 112, 116, 132, 136, 140, 144, 149, 153, 157, 161, 165));
 | 
				
			||||||
 | 
					        radioState3.setTxPower(32);
 | 
				
			||||||
 | 
					        radioState3.setEnabled(true);
 | 
				
			||||||
 | 
					        radioState3.setCountry("CA");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        Equipment equipment = new Equipment();
 | 
				
			||||||
 | 
					        equipment.setCustomerId(1);
 | 
				
			||||||
 | 
					        equipment.setEquipmentType(EquipmentType.AP);
 | 
				
			||||||
 | 
					        equipment.setInventoryId(apId);
 | 
				
			||||||
 | 
					        equipment.setDetails(ApElementConfiguration.createWithDefaults());
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        Mockito.when(equipmentServiceInterface.getByInventoryIdOrNull(apId)).thenReturn(equipment);
 | 
				
			||||||
 | 
					        Mockito.when(equipmentServiceInterface.update(equipment)).thenReturn(equipment);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        Status protocolStatus = new Status();
 | 
				
			||||||
 | 
					        protocolStatus.setCustomerId(2);
 | 
				
			||||||
 | 
					        protocolStatus.setEquipmentId(1L);
 | 
				
			||||||
 | 
					        EquipmentProtocolStatusData protocolStatusData = new EquipmentProtocolStatusData();
 | 
				
			||||||
 | 
					        protocolStatusData.setReportedCC(CountryCode.ca);
 | 
				
			||||||
 | 
					        protocolStatus.setDetails(protocolStatusData);
 | 
				
			||||||
 | 
					        protocolStatus.setStatusDataType(StatusDataType.PROTOCOL);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        Mockito.when(statusServiceInterface.getOrNull(2, 1L, StatusDataType.PROTOCOL)).thenReturn(protocolStatus);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        Status bssidStatus = new Status();
 | 
				
			||||||
 | 
					        bssidStatus.setStatusDataType(StatusDataType.ACTIVE_BSSIDS);
 | 
				
			||||||
 | 
					        bssidStatus.setCustomerId(2);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        ActiveBSSIDs activeBssidsDetails = new ActiveBSSIDs();
 | 
				
			||||||
 | 
					        activeBssidsDetails.setActiveBSSIDs(getActiveBssidList());
 | 
				
			||||||
 | 
					        bssidStatus.setDetails(activeBssidsDetails);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        Mockito.when(statusServiceInterface.getOrNull(2, 1L, StatusDataType.ACTIVE_BSSIDS)).thenReturn(bssidStatus);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        Mockito.when(statusServiceInterface.update(bssidStatus)).thenReturn(bssidStatus);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        Status clientStatus = new Status();
 | 
				
			||||||
 | 
					        clientStatus.setCustomerId(2);
 | 
				
			||||||
 | 
					        clientStatus.setEquipmentId(1L);
 | 
				
			||||||
 | 
					        clientStatus.setStatusDataType(StatusDataType.CLIENT_DETAILS);
 | 
				
			||||||
 | 
					        ClientConnectionDetails clientConnectionDetails = new ClientConnectionDetails();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        Map<RadioType, Integer> clientsPerRadio = new HashMap<>();
 | 
				
			||||||
 | 
					        clientConnectionDetails.setNumClientsPerRadio(clientsPerRadio);
 | 
				
			||||||
 | 
					        clientStatus.setDetails(clientConnectionDetails);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        Mockito.when(statusServiceInterface.getOrNull(2, 1L, StatusDataType.CLIENT_DETAILS)).thenReturn(clientStatus);
 | 
				
			||||||
 | 
					        Mockito.when(statusServiceInterface.update(clientStatus)).thenReturn(clientStatus);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        OvsdbSession session = Mockito.mock(OvsdbSession.class);
 | 
				
			||||||
 | 
					        Mockito.when(session.getEquipmentId()).thenReturn(1L);
 | 
				
			||||||
 | 
					        Mockito.when(session.getCustomerId()).thenReturn(2);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        Mockito.when(ovsdbSessionMapInterface.getSession(apId)).thenReturn(session);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        opensyncExternalIntegrationCloud
 | 
				
			||||||
 | 
					                .wifiRadioStatusDbTableUpdate(ImmutableList.of(radioState1, radioState2, radioState3), apId);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        Mockito.verify(session).getCustomerId();
 | 
				
			||||||
 | 
					        Mockito.verify(session).getEquipmentId();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        Mockito.verify(ovsdbSessionMapInterface).getSession(apId);
 | 
				
			||||||
 | 
					        Mockito.verify(equipmentServiceInterface, Mockito.times(2)).getByInventoryIdOrNull(apId);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        Mockito.verify(statusServiceInterface, Mockito.times(3)).getOrNull(2, 1L, StatusDataType.PROTOCOL);
 | 
				
			||||||
 | 
					        Mockito.verify(statusServiceInterface, Mockito.never()).update(bssidStatus);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Ignore
 | 
				
			||||||
 | 
					    public void testWifiInetStateDbTableUpdate() {
 | 
				
			||||||
 | 
					        // TODO: implement me
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Ignore
 | 
				
			||||||
 | 
					    public void testWifiAssociatedClientsDbTableUpdate() {
 | 
				
			||||||
 | 
					        // TODO: implement me
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Ignore
 | 
				
			||||||
 | 
					    public void testAwlanNodeDbTableUpdate() {
 | 
				
			||||||
 | 
					        // TODO: implement me
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Test
 | 
				
			||||||
 | 
					    public void testWifiVIFStateDbTableDelete() {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        Status bssidStatus = new Status();
 | 
				
			||||||
 | 
					        bssidStatus.setStatusDataType(StatusDataType.ACTIVE_BSSIDS);
 | 
				
			||||||
 | 
					        bssidStatus.setCustomerId(2);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        ActiveBSSIDs activeBssidsDetails = new ActiveBSSIDs();
 | 
				
			||||||
 | 
					        activeBssidsDetails.setActiveBSSIDs(getActiveBssidList());
 | 
				
			||||||
 | 
					        bssidStatus.setDetails(activeBssidsDetails);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        Mockito.when(statusServiceInterface.getOrNull(ArgumentMatchers.anyInt(), ArgumentMatchers.anyLong(),
 | 
				
			||||||
 | 
					                ArgumentMatchers.eq(StatusDataType.ACTIVE_BSSIDS))).thenReturn(bssidStatus);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        opensyncExternalIntegrationCloud.wifiVIFStateDbTableDelete(ImmutableList.of(new OpensyncAPVIFState()), "apId");
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Test
 | 
				
			||||||
 | 
					    public void testWifiAssociatedClientsDbTableDelete() {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        opensyncExternalIntegrationCloud.wifiAssociatedClientsDbTableDelete("7C:AB:60:E6:EA:4D", "apId");
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // Helper methods
 | 
				
			||||||
 | 
					    private List<ActiveBSSID> getActiveBssidList() {
 | 
				
			||||||
 | 
					        ActiveBSSID activeBssid = new ActiveBSSID();
 | 
				
			||||||
 | 
					        activeBssid.setBssid("24:f5:a2:ef:2e:54");
 | 
				
			||||||
 | 
					        activeBssid.setSsid("ssid-1");
 | 
				
			||||||
 | 
					        activeBssid.setNumDevicesConnected(1);
 | 
				
			||||||
 | 
					        activeBssid.setRadioType(RadioType.is2dot4GHz);
 | 
				
			||||||
 | 
					        ActiveBSSID activeBssid2 = new ActiveBSSID();
 | 
				
			||||||
 | 
					        activeBssid2.setBssid("24:f5:a2:ef:2e:55");
 | 
				
			||||||
 | 
					        activeBssid2.setSsid("ssid-2");
 | 
				
			||||||
 | 
					        activeBssid2.setNumDevicesConnected(1);
 | 
				
			||||||
 | 
					        activeBssid2.setRadioType(RadioType.is5GHzL);
 | 
				
			||||||
 | 
					        ActiveBSSID activeBssid3 = new ActiveBSSID();
 | 
				
			||||||
 | 
					        activeBssid3.setBssid("24:f5:a2:ef:2e:56");
 | 
				
			||||||
 | 
					        activeBssid3.setSsid("ssid-3");
 | 
				
			||||||
 | 
					        activeBssid3.setNumDevicesConnected(1);
 | 
				
			||||||
 | 
					        activeBssid3.setRadioType(RadioType.is5GHzU);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        List<ActiveBSSID> bssidList = new ArrayList<>();
 | 
				
			||||||
 | 
					        bssidList.add(activeBssid);
 | 
				
			||||||
 | 
					        bssidList.add(activeBssid2);
 | 
				
			||||||
 | 
					        bssidList.add(activeBssid3);
 | 
				
			||||||
 | 
					        return bssidList;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    private List<EventReport> getOpensyncStatsEventReportsList() {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        List<ClientAssocEvent> clientAssocEventList = new ArrayList<>();
 | 
				
			||||||
 | 
					        sts.OpensyncStats.EventReport.ClientAssocEvent.Builder clientAssocBuilder = EventReport.ClientAssocEvent
 | 
				
			||||||
 | 
					                .getDefaultInstance().toBuilder();
 | 
				
			||||||
 | 
					        clientAssocBuilder.setAssocType(AssocType.ASSOC);
 | 
				
			||||||
 | 
					        clientAssocBuilder.setBand(RadioBandType.BAND5GU);
 | 
				
			||||||
 | 
					        clientAssocBuilder.setRssi(-65);
 | 
				
			||||||
 | 
					        clientAssocBuilder.setStaMac("C0:9A:D0:76:A9:69");
 | 
				
			||||||
 | 
					        clientAssocBuilder.setStaMacBytes(ByteString.copyFrom("C0:9A:D0:76:A9:69".getBytes()));
 | 
				
			||||||
 | 
					        clientAssocBuilder.setSessionId(1000L);
 | 
				
			||||||
 | 
					        clientAssocBuilder.setInternalSc(1);
 | 
				
			||||||
 | 
					        clientAssocBuilder.setSsid("ssid-3");
 | 
				
			||||||
 | 
					        clientAssocBuilder.setStatus(1);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        sts.OpensyncStats.EventReport.ClientAssocEvent.Builder clientAssocBuilder2 = EventReport.ClientAssocEvent
 | 
				
			||||||
 | 
					                .getDefaultInstance().toBuilder();
 | 
				
			||||||
 | 
					        clientAssocBuilder2.setAssocType(AssocType.ASSOC);
 | 
				
			||||||
 | 
					        clientAssocBuilder2.setBand(RadioBandType.BAND2G);
 | 
				
			||||||
 | 
					        clientAssocBuilder2.setRssi(-65);
 | 
				
			||||||
 | 
					        clientAssocBuilder2.setStaMac("7C:AB:60:E6:EA:4D");
 | 
				
			||||||
 | 
					        clientAssocBuilder2.setStaMacBytes(ByteString.copyFrom("7C:AB:60:E6:EA:4D".getBytes()));
 | 
				
			||||||
 | 
					        clientAssocBuilder2.setSessionId(1000L);
 | 
				
			||||||
 | 
					        clientAssocBuilder2.setInternalSc(1);
 | 
				
			||||||
 | 
					        clientAssocBuilder2.setSsid("ssid-1");
 | 
				
			||||||
 | 
					        clientAssocBuilder2.setStatus(1);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        clientAssocEventList.add(clientAssocBuilder.build());
 | 
				
			||||||
 | 
					        clientAssocEventList.add(clientAssocBuilder2.build());
 | 
				
			||||||
 | 
					        
 | 
				
			||||||
 | 
					        List<EventReport> eventReportList = new ArrayList<>();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        EventReport.Builder eventReportBuilder = EventReport.getDefaultInstance().toBuilder();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        sts.OpensyncStats.EventReport.ClientSession.Builder clientSessionBuilder = sts.OpensyncStats.EventReport.ClientSession.getDefaultInstance().toBuilder();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        clientSessionBuilder.setSessionId(1000L);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        clientSessionBuilder.addAllClientAssocEvent(clientAssocEventList);
 | 
				
			||||||
 | 
					        List<sts.OpensyncStats.EventReport.ClientSession> clientSessionList = new ArrayList<>();
 | 
				
			||||||
 | 
					        clientSessionList.add(clientSessionBuilder.build());
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        eventReportBuilder.addAllClientSession(clientSessionList);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        eventReportList.add(eventReportBuilder.build());
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        return eventReportList;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    private List<ClientReport> getOpensyncStatsClientReportsList() {
 | 
				
			||||||
 | 
					        int rssi = Long.valueOf(4294967239L).intValue();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        Client.Stats clientStats = Client.Stats.getDefaultInstance().toBuilder().setRssi(rssi).setRxBytes(225554786)
 | 
				
			||||||
 | 
					                .setRxRate(24000.0).setTxBytes(1208133026).setTxRate(433300.0).setRssi(758722570).setRxFrames(10000)
 | 
				
			||||||
 | 
					                .setTxFrames(10000).setTxRate(24000.0).build();
 | 
				
			||||||
 | 
					        Client client2g = Client.getDefaultInstance().toBuilder().setMacAddress("7C:AB:60:E6:EA:4D").setSsid("ssid-1")
 | 
				
			||||||
 | 
					                .setConnected(true).setDurationMs(59977).setStats(clientStats).build();
 | 
				
			||||||
 | 
					        Client client5gu = Client.getDefaultInstance().toBuilder().setMacAddress("C0:9A:D0:76:A9:69").setSsid("ssid-3")
 | 
				
			||||||
 | 
					                .setConnected(true).setDurationMs(298127).setStats(clientStats).build();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        ClientReport clientReport2g = ClientReport.getDefaultInstance().toBuilder().setBand(RadioBandType.BAND2G)
 | 
				
			||||||
 | 
					                .setChannel(6).addAllClientList(ImmutableList.of(client2g)).build();
 | 
				
			||||||
 | 
					        ClientReport clientReport5gl = ClientReport.getDefaultInstance().toBuilder().setBand(RadioBandType.BAND5GL)
 | 
				
			||||||
 | 
					                .setChannel(36).addAllClientList(new ArrayList<Client>()).build();
 | 
				
			||||||
 | 
					        ClientReport clientReport5gu = ClientReport.getDefaultInstance().toBuilder().setBand(RadioBandType.BAND5GU)
 | 
				
			||||||
 | 
					                .setChannel(157).addAllClientList(ImmutableList.of(client5gu)).build();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        List<ClientReport> clients = new ArrayList<>();
 | 
				
			||||||
 | 
					        clients.add(clientReport2g);
 | 
				
			||||||
 | 
					        clients.add(clientReport5gl);
 | 
				
			||||||
 | 
					        clients.add(clientReport5gu);
 | 
				
			||||||
 | 
					        return clients;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    private ConnectNodeInfo createConnectNodeInfo() {
 | 
				
			||||||
 | 
					        ConnectNodeInfo connectNodeInfo = new ConnectNodeInfo();
 | 
				
			||||||
 | 
					        connectNodeInfo.macAddress = "24:f5:a2:ef:2e:53";
 | 
				
			||||||
 | 
					        connectNodeInfo.ifType = "eth";
 | 
				
			||||||
 | 
					        connectNodeInfo.ifName = "eth1";
 | 
				
			||||||
 | 
					        connectNodeInfo.ipV4Address = "10.0.0.129";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        connectNodeInfo.lanMacAddress = "24:f5:a2:ef:2e:52";
 | 
				
			||||||
 | 
					        connectNodeInfo.lanIfType = "bridge";
 | 
				
			||||||
 | 
					        connectNodeInfo.lanIfName = "br-lan";
 | 
				
			||||||
 | 
					        connectNodeInfo.lanIpV4Address = "192.168.1.1";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        connectNodeInfo.managerAddr = "ssl:192.168.1.101:6640";
 | 
				
			||||||
 | 
					        connectNodeInfo.firmwareVersion = "0.1.0";
 | 
				
			||||||
 | 
					        connectNodeInfo.model = "EA8300-CA";
 | 
				
			||||||
 | 
					        connectNodeInfo.revision = "1";
 | 
				
			||||||
 | 
					        connectNodeInfo.serialNumber = "21P10C68818122";
 | 
				
			||||||
 | 
					        connectNodeInfo.skuNumber = "connectus.ai_21P10C68818122";
 | 
				
			||||||
 | 
					        connectNodeInfo.redirectorAddr = "ssl:opensync.zone1.art2wave.com:6643";
 | 
				
			||||||
 | 
					        connectNodeInfo.platformVersion = "OPENWRT_EA8300";
 | 
				
			||||||
 | 
					        connectNodeInfo.wifiRadioStates = ImmutableMap.of("2.4G", "home-ap-24", "5GL", "home-ap-l50", "5GU",
 | 
				
			||||||
 | 
					                "home-ap-u50");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        Map<String, String> versionMatrix = new HashMap<>();
 | 
				
			||||||
 | 
					        versionMatrix.put("DATE", "Thu Jul 16 18:52:06 UTC 2020");
 | 
				
			||||||
 | 
					        versionMatrix.put("FIRMWARE", "0.1.0-0-notgit-development");
 | 
				
			||||||
 | 
					        versionMatrix.put("FW_BUILD", "0");
 | 
				
			||||||
 | 
					        versionMatrix.put("FW_COMMIT", "notgit");
 | 
				
			||||||
 | 
					        versionMatrix.put("FW_PROFILE", "development");
 | 
				
			||||||
 | 
					        versionMatrix.put("FW_IMAGE_ACTIVE", "ea8300-2020-07-23-staging-fwupgrade-4da695d");
 | 
				
			||||||
 | 
					        versionMatrix.put("FW_IMAGE_INACTIVE", "ea8300-2020-07-23-staging-fwupgrade-4da695d");
 | 
				
			||||||
 | 
					        versionMatrix.put("FW_VERSION", "0.1.0");
 | 
				
			||||||
 | 
					        versionMatrix.put("HOST", "runner@26793cf70348");
 | 
				
			||||||
 | 
					        versionMatrix.put("OPENSYNC", "2.0.5.0");
 | 
				
			||||||
 | 
					        versionMatrix.put("core", "2.0.5.0/0/notgit");
 | 
				
			||||||
 | 
					        versionMatrix.put("vendor/ipq40xx", "0.1.0/0/notgit");
 | 
				
			||||||
 | 
					        connectNodeInfo.versionMatrix = versionMatrix;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        Map<String, String> mqttSettings = new HashMap<>();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        mqttSettings.put("broker", "192.168.1.101");
 | 
				
			||||||
 | 
					        mqttSettings.put("compress", "zlib");
 | 
				
			||||||
 | 
					        mqttSettings.put("port", "1883");
 | 
				
			||||||
 | 
					        mqttSettings.put("qos", "0");
 | 
				
			||||||
 | 
					        mqttSettings.put("remote_log", "1");
 | 
				
			||||||
 | 
					        mqttSettings.put("topics", "/ap/Test_Client_21P10C68818122/opensync");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        connectNodeInfo.mqttSettings = mqttSettings;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        return connectNodeInfo;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -0,0 +1,380 @@
 | 
				
			|||||||
 | 
					package com.telecominfraproject.wlan.opensync.external.integration;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import static org.junit.Assert.assertNotNull;
 | 
				
			||||||
 | 
					import static org.junit.jupiter.api.Assertions.assertEquals;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import java.net.InetAddress;
 | 
				
			||||||
 | 
					import java.util.ArrayList;
 | 
				
			||||||
 | 
					import java.util.List;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import org.junit.After;
 | 
				
			||||||
 | 
					import org.junit.Before;
 | 
				
			||||||
 | 
					import org.junit.Ignore;
 | 
				
			||||||
 | 
					import org.junit.Test;
 | 
				
			||||||
 | 
					import org.junit.runner.RunWith;
 | 
				
			||||||
 | 
					import org.mockito.Answers;
 | 
				
			||||||
 | 
					import org.mockito.ArgumentMatchers;
 | 
				
			||||||
 | 
					import org.mockito.Mockito;
 | 
				
			||||||
 | 
					import org.mockito.MockitoSession;
 | 
				
			||||||
 | 
					import org.mockito.quality.Strictness;
 | 
				
			||||||
 | 
					import org.springframework.beans.factory.annotation.Autowired;
 | 
				
			||||||
 | 
					import org.springframework.boot.test.context.SpringBootTest;
 | 
				
			||||||
 | 
					import org.springframework.boot.test.context.SpringBootTest.WebEnvironment;
 | 
				
			||||||
 | 
					import org.springframework.boot.test.mock.mockito.MockBean;
 | 
				
			||||||
 | 
					import org.springframework.context.annotation.Bean;
 | 
				
			||||||
 | 
					import org.springframework.context.annotation.Configuration;
 | 
				
			||||||
 | 
					import org.springframework.context.annotation.Import;
 | 
				
			||||||
 | 
					import org.springframework.test.context.ActiveProfiles;
 | 
				
			||||||
 | 
					import org.springframework.test.context.junit4.SpringRunner;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import com.google.common.collect.ImmutableList;
 | 
				
			||||||
 | 
					import com.google.protobuf.ByteString;
 | 
				
			||||||
 | 
					import com.telecominfraproject.wlan.alarm.AlarmServiceInterface;
 | 
				
			||||||
 | 
					import com.telecominfraproject.wlan.client.ClientServiceInterface;
 | 
				
			||||||
 | 
					import com.telecominfraproject.wlan.client.info.models.ClientInfoDetails;
 | 
				
			||||||
 | 
					import com.telecominfraproject.wlan.client.session.models.ClientSession;
 | 
				
			||||||
 | 
					import com.telecominfraproject.wlan.client.session.models.ClientSessionDetails;
 | 
				
			||||||
 | 
					import com.telecominfraproject.wlan.cloudeventdispatcher.CloudEventDispatcherInterface;
 | 
				
			||||||
 | 
					import com.telecominfraproject.wlan.core.model.equipment.MacAddress;
 | 
				
			||||||
 | 
					import com.telecominfraproject.wlan.core.model.equipment.RadioType;
 | 
				
			||||||
 | 
					import com.telecominfraproject.wlan.customer.service.CustomerServiceInterface;
 | 
				
			||||||
 | 
					import com.telecominfraproject.wlan.equipment.EquipmentServiceInterface;
 | 
				
			||||||
 | 
					import com.telecominfraproject.wlan.firmware.FirmwareServiceInterface;
 | 
				
			||||||
 | 
					import com.telecominfraproject.wlan.location.service.LocationServiceInterface;
 | 
				
			||||||
 | 
					import com.telecominfraproject.wlan.opensync.external.integration.controller.OpensyncCloudGatewayController;
 | 
				
			||||||
 | 
					import com.telecominfraproject.wlan.profile.ProfileServiceInterface;
 | 
				
			||||||
 | 
					import com.telecominfraproject.wlan.routing.RoutingServiceInterface;
 | 
				
			||||||
 | 
					import com.telecominfraproject.wlan.servicemetric.apnode.models.ApNodeMetrics;
 | 
				
			||||||
 | 
					import com.telecominfraproject.wlan.servicemetric.apnode.models.StateUpDownError;
 | 
				
			||||||
 | 
					import com.telecominfraproject.wlan.status.StatusServiceInterface;
 | 
				
			||||||
 | 
					import com.telecominfraproject.wlan.status.equipment.report.models.ActiveBSSID;
 | 
				
			||||||
 | 
					import com.telecominfraproject.wlan.status.equipment.report.models.ActiveBSSIDs;
 | 
				
			||||||
 | 
					import com.telecominfraproject.wlan.status.models.Status;
 | 
				
			||||||
 | 
					import com.telecominfraproject.wlan.status.models.StatusDataType;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import sts.OpensyncStats.AssocType;
 | 
				
			||||||
 | 
					import sts.OpensyncStats.Client;
 | 
				
			||||||
 | 
					import sts.OpensyncStats.ClientReport;
 | 
				
			||||||
 | 
					import sts.OpensyncStats.DNSProbeMetric;
 | 
				
			||||||
 | 
					import sts.OpensyncStats.EventReport;
 | 
				
			||||||
 | 
					import sts.OpensyncStats.NetworkProbe;
 | 
				
			||||||
 | 
					import sts.OpensyncStats.RADIUSMetrics;
 | 
				
			||||||
 | 
					import sts.OpensyncStats.RadioBandType;
 | 
				
			||||||
 | 
					import sts.OpensyncStats.Report;
 | 
				
			||||||
 | 
					import sts.OpensyncStats.StateUpDown;
 | 
				
			||||||
 | 
					import sts.OpensyncStats.VLANMetrics;
 | 
				
			||||||
 | 
					import sts.OpensyncStats.EventReport.ClientAssocEvent;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@RunWith(SpringRunner.class)
 | 
				
			||||||
 | 
					@ActiveProfiles(profiles = { "integration_test", })
 | 
				
			||||||
 | 
					@SpringBootTest(webEnvironment = WebEnvironment.NONE, classes = OpensyncExternalIntegrationMqttMessageProcessorTest.class)
 | 
				
			||||||
 | 
					@Import(value = { AlarmServiceInterface.class, OpensyncExternalIntegrationCloud.class,
 | 
				
			||||||
 | 
					        OpensyncExternalIntegrationMqttMessageProcessorTest.Config.class,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					})
 | 
				
			||||||
 | 
					public class OpensyncExternalIntegrationMqttMessageProcessorTest {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @MockBean
 | 
				
			||||||
 | 
					    AlarmServiceInterface alarmServiceInterface;
 | 
				
			||||||
 | 
					    @MockBean
 | 
				
			||||||
 | 
					    CustomerServiceInterface customerServiceInterface;
 | 
				
			||||||
 | 
					    @MockBean
 | 
				
			||||||
 | 
					    LocationServiceInterface locationServiceInterface;
 | 
				
			||||||
 | 
					    @MockBean(answer = Answers.RETURNS_MOCKS)
 | 
				
			||||||
 | 
					    OvsdbSessionMapInterface ovsdbSessionMapInterface;
 | 
				
			||||||
 | 
					    @MockBean
 | 
				
			||||||
 | 
					    CloudEventDispatcherInterface equipmentMetricsCollectorInterface;
 | 
				
			||||||
 | 
					    @MockBean
 | 
				
			||||||
 | 
					    EquipmentServiceInterface equipmentServiceInterface;
 | 
				
			||||||
 | 
					    @MockBean
 | 
				
			||||||
 | 
					    RoutingServiceInterface routingServiceInterface;
 | 
				
			||||||
 | 
					    @MockBean
 | 
				
			||||||
 | 
					    ProfileServiceInterface profileServiceInterface;
 | 
				
			||||||
 | 
					    @MockBean
 | 
				
			||||||
 | 
					    StatusServiceInterface statusServiceInterface;
 | 
				
			||||||
 | 
					    @MockBean
 | 
				
			||||||
 | 
					    ClientServiceInterface clientServiceInterface;
 | 
				
			||||||
 | 
					    @MockBean
 | 
				
			||||||
 | 
					    FirmwareServiceInterface firmwareServiceInterface;
 | 
				
			||||||
 | 
					    @MockBean(answer = Answers.RETURNS_MOCKS)
 | 
				
			||||||
 | 
					    OpensyncCloudGatewayController gatewayController;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Autowired
 | 
				
			||||||
 | 
					    OpensyncExternalIntegrationMqttMessageProcessor opensyncExternalIntegrationMqttProcessor;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    MockitoSession mockito;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Configuration
 | 
				
			||||||
 | 
					    static class Config {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        @Bean
 | 
				
			||||||
 | 
					        public OpensyncExternalIntegrationMqttMessageProcessor opensyncExternalIntegrationMqttMessageProcessor() {
 | 
				
			||||||
 | 
					            return new OpensyncExternalIntegrationMqttMessageProcessor();
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Before
 | 
				
			||||||
 | 
					    public void setUp() throws Exception {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        mockito = Mockito.mockitoSession().initMocks(this).strictness(Strictness.STRICT_STUBS).startMocking();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @After
 | 
				
			||||||
 | 
					    public void tearDown() throws Exception {
 | 
				
			||||||
 | 
					        mockito.finishMocking();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Test
 | 
				
			||||||
 | 
					    public void testExtractApIdFromTopic() {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        String topic = "/ap/Test_Client_21P10C68818122/opensync";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        assertEquals("Test_Client_21P10C68818122",
 | 
				
			||||||
 | 
					                OpensyncExternalIntegrationMqttMessageProcessor.extractApIdFromTopic(topic));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Test
 | 
				
			||||||
 | 
					    public void testExtractCustomerIdFromTopic() {
 | 
				
			||||||
 | 
					        String topic = "/ap/Test_Client_21P10C68818122/opensync";
 | 
				
			||||||
 | 
					        OvsdbSession session = Mockito.mock(OvsdbSession.class);
 | 
				
			||||||
 | 
					        Mockito.when(session.getCustomerId()).thenReturn(2);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        Mockito.when(ovsdbSessionMapInterface.getSession("Test_Client_21P10C68818122")).thenReturn(session);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        assertEquals(2, opensyncExternalIntegrationMqttProcessor.extractCustomerIdFromTopic(topic));
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Test
 | 
				
			||||||
 | 
					    public void testExtractEquipmentIdFromTopic() {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        String topic = "/ap/Test_Client_21P10C68818122/opensync";
 | 
				
			||||||
 | 
					        OvsdbSession session = Mockito.mock(OvsdbSession.class);
 | 
				
			||||||
 | 
					        Mockito.when(session.getEquipmentId()).thenReturn(1L);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        Mockito.when(ovsdbSessionMapInterface.getSession("Test_Client_21P10C68818122")).thenReturn(session);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        assertEquals(1L, opensyncExternalIntegrationMqttProcessor.extractEquipmentIdFromTopic(topic));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Test
 | 
				
			||||||
 | 
					    public void testProcessMqttMessageStringReport() {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        Report report = Report.newBuilder().setNodeID("21P10C68818122")
 | 
				
			||||||
 | 
					                .addAllClients(getOpensyncStatsClientReportsList())
 | 
				
			||||||
 | 
					                .addAllEventReport(getOpensyncStatsEventReportsList()).build();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        String topic = "/ap/Test_Client_21P10C68818122/opensync";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        OvsdbSession session = Mockito.mock(OvsdbSession.class);
 | 
				
			||||||
 | 
					        Mockito.when(session.getEquipmentId()).thenReturn(1L);
 | 
				
			||||||
 | 
					        Mockito.when(session.getCustomerId()).thenReturn(2);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        Mockito.when(ovsdbSessionMapInterface.getSession("Test_Client_21P10C68818122")).thenReturn(session);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        Status bssidStatus = new Status();
 | 
				
			||||||
 | 
					        bssidStatus.setStatusDataType(StatusDataType.ACTIVE_BSSIDS);
 | 
				
			||||||
 | 
					        bssidStatus.setCustomerId(2);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        ActiveBSSIDs activeBssidsDetails = new ActiveBSSIDs();
 | 
				
			||||||
 | 
					        activeBssidsDetails.setActiveBSSIDs(getActiveBssidList());
 | 
				
			||||||
 | 
					        bssidStatus.setDetails(activeBssidsDetails);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        Mockito.when(statusServiceInterface.getOrNull(ArgumentMatchers.anyInt(), ArgumentMatchers.anyLong(),
 | 
				
			||||||
 | 
					                ArgumentMatchers.eq(StatusDataType.ACTIVE_BSSIDS))).thenReturn(bssidStatus);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        Mockito.when(statusServiceInterface.update(ArgumentMatchers.any(Status.class))).thenReturn(bssidStatus);
 | 
				
			||||||
 | 
					        com.telecominfraproject.wlan.client.models.Client clientInstance = new com.telecominfraproject.wlan.client.models.Client();
 | 
				
			||||||
 | 
					        clientInstance.setMacAddress(new MacAddress("7C:AB:60:E6:EA:4D"));
 | 
				
			||||||
 | 
					        clientInstance.setDetails(new ClientInfoDetails());
 | 
				
			||||||
 | 
					        com.telecominfraproject.wlan.client.models.Client clientInstance2 = new com.telecominfraproject.wlan.client.models.Client();
 | 
				
			||||||
 | 
					        clientInstance2.setMacAddress(new MacAddress("C0:9A:D0:76:A9:69"));
 | 
				
			||||||
 | 
					        clientInstance2.setDetails(new ClientInfoDetails());
 | 
				
			||||||
 | 
					        Mockito.when(
 | 
				
			||||||
 | 
					                clientServiceInterface.getOrNull(ArgumentMatchers.anyInt(), ArgumentMatchers.any(MacAddress.class)))
 | 
				
			||||||
 | 
					                .thenReturn(clientInstance).thenReturn(clientInstance2);
 | 
				
			||||||
 | 
					        Mockito.when(clientServiceInterface
 | 
				
			||||||
 | 
					                .update(ArgumentMatchers.any(com.telecominfraproject.wlan.client.models.Client.class)))
 | 
				
			||||||
 | 
					                .thenReturn(clientInstance).thenReturn(clientInstance2);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        ClientSession clientSession = new ClientSession();
 | 
				
			||||||
 | 
					        clientSession.setMacAddress(new MacAddress("7C:AB:60:E6:EA:4D"));
 | 
				
			||||||
 | 
					        clientSession.setDetails(new ClientSessionDetails());
 | 
				
			||||||
 | 
					        ClientSession clientSession2 = new ClientSession();
 | 
				
			||||||
 | 
					        clientSession2.setMacAddress(new MacAddress("C0:9A:D0:76:A9:69"));
 | 
				
			||||||
 | 
					        clientSession2.setDetails(new ClientSessionDetails());
 | 
				
			||||||
 | 
					        Mockito.when(clientServiceInterface.getSessionOrNull(ArgumentMatchers.anyInt(), ArgumentMatchers.anyLong(),
 | 
				
			||||||
 | 
					                ArgumentMatchers.any(MacAddress.class))).thenReturn(clientSession).thenReturn(clientSession2);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        Mockito.when(clientServiceInterface.updateSession(ArgumentMatchers.any(ClientSession.class)))
 | 
				
			||||||
 | 
					                .thenReturn(clientSession).thenReturn(clientSession2);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        opensyncExternalIntegrationMqttProcessor.processMqttMessage(topic, report);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        // Mockito.verify(clientServiceInterface,
 | 
				
			||||||
 | 
					        // Mockito.times(4)).getOrNull(Mockito.anyInt(),
 | 
				
			||||||
 | 
					        // Mockito.any(MacAddress.class));
 | 
				
			||||||
 | 
					        // Mockito.verify(clientServiceInterface,
 | 
				
			||||||
 | 
					        // Mockito.times(4)).getSessionOrNull(Mockito.anyInt(),
 | 
				
			||||||
 | 
					        // Mockito.anyLong(),
 | 
				
			||||||
 | 
					        // Mockito.any(MacAddress.class));
 | 
				
			||||||
 | 
					        // Mockito.verify(statusServiceInterface,
 | 
				
			||||||
 | 
					        // Mockito.times(3)).getOrNull(Mockito.anyInt(), Mockito.anyLong(),
 | 
				
			||||||
 | 
					        // Mockito.eq(StatusDataType.ACTIVE_BSSIDS));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Ignore
 | 
				
			||||||
 | 
					    public void testProcessMqttMessageStringFlowReport() {
 | 
				
			||||||
 | 
					        // TODO: implement me when support flow reports
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Ignore
 | 
				
			||||||
 | 
					    public void testProcessMqttMessageStringWCStatsReport() {
 | 
				
			||||||
 | 
					        // TODO: implement me when wcs stats reports supported
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Test
 | 
				
			||||||
 | 
					    public void testpopulateNetworkProbeMetrics() throws Exception {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        InetAddress ip = InetAddress.getLocalHost();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        DNSProbeMetric dnsProbeMetric = DNSProbeMetric.getDefaultInstance().toBuilder().setLatency(10)
 | 
				
			||||||
 | 
					                .setState(StateUpDown.SUD_up).setServerIP(ip.getHostName()).build();
 | 
				
			||||||
 | 
					        RADIUSMetrics radiusProbeMetric = RADIUSMetrics.getDefaultInstance().toBuilder().setLatency(10)
 | 
				
			||||||
 | 
					                .setRadiusState(StateUpDown.SUD_up).setServerIP(ip.getHostName()).build();
 | 
				
			||||||
 | 
					        VLANMetrics vlanMetrics = VLANMetrics.getDefaultInstance().toBuilder().setLatency(10)
 | 
				
			||||||
 | 
					                .setDhcpState(StateUpDown.SUD_up).setVlanIF("vlan-1").build();
 | 
				
			||||||
 | 
					        NetworkProbe networkProbe = NetworkProbe.getDefaultInstance().toBuilder().setVlanProbe(vlanMetrics)
 | 
				
			||||||
 | 
					                .setDnsProbe(dnsProbeMetric).addRadiusProbe(radiusProbeMetric).build();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        Report report = Report.getDefaultInstance().toBuilder().setNodeID("21P10C68818122")
 | 
				
			||||||
 | 
					                .addNetworkProbe(networkProbe).build();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        ApNodeMetrics apNodeMetrics = new ApNodeMetrics();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        opensyncExternalIntegrationMqttProcessor.populateNetworkProbeMetrics(report, apNodeMetrics);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        assertNotNull(apNodeMetrics.getNetworkProbeMetrics());
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        assert (apNodeMetrics.getNetworkProbeMetrics().get(0).getDnsLatencyMs() == 10);
 | 
				
			||||||
 | 
					        assert (apNodeMetrics.getNetworkProbeMetrics().get(0).getDhcpLatencyMs() == 10);
 | 
				
			||||||
 | 
					        assert (apNodeMetrics.getNetworkProbeMetrics().get(0).getRadiusState().equals(StateUpDownError.enabled));
 | 
				
			||||||
 | 
					        assert (apNodeMetrics.getNetworkProbeMetrics().get(0).getDhcpState().equals(StateUpDownError.enabled));
 | 
				
			||||||
 | 
					        assert (apNodeMetrics.getNetworkProbeMetrics().get(0).getDnsState().equals(StateUpDownError.enabled));
 | 
				
			||||||
 | 
					        assert (apNodeMetrics.getNetworkProbeMetrics().get(0).getRadiusLatencyInMs() == 10);
 | 
				
			||||||
 | 
					        assert (apNodeMetrics.getNetworkProbeMetrics().get(0).getVlanIF().equals("vlan-1"));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // Helper methods
 | 
				
			||||||
 | 
					    private List<ActiveBSSID> getActiveBssidList() {
 | 
				
			||||||
 | 
					        ActiveBSSID activeBssid = new ActiveBSSID();
 | 
				
			||||||
 | 
					        activeBssid.setBssid("24:f5:a2:ef:2e:54");
 | 
				
			||||||
 | 
					        activeBssid.setSsid("ssid-1");
 | 
				
			||||||
 | 
					        activeBssid.setNumDevicesConnected(1);
 | 
				
			||||||
 | 
					        activeBssid.setRadioType(RadioType.is2dot4GHz);
 | 
				
			||||||
 | 
					        ActiveBSSID activeBssid2 = new ActiveBSSID();
 | 
				
			||||||
 | 
					        activeBssid2.setBssid("24:f5:a2:ef:2e:55");
 | 
				
			||||||
 | 
					        activeBssid2.setSsid("ssid-2");
 | 
				
			||||||
 | 
					        activeBssid2.setNumDevicesConnected(1);
 | 
				
			||||||
 | 
					        activeBssid2.setRadioType(RadioType.is5GHzL);
 | 
				
			||||||
 | 
					        ActiveBSSID activeBssid3 = new ActiveBSSID();
 | 
				
			||||||
 | 
					        activeBssid3.setBssid("24:f5:a2:ef:2e:56");
 | 
				
			||||||
 | 
					        activeBssid3.setSsid("ssid-3");
 | 
				
			||||||
 | 
					        activeBssid3.setNumDevicesConnected(1);
 | 
				
			||||||
 | 
					        activeBssid3.setRadioType(RadioType.is5GHzU);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        List<ActiveBSSID> bssidList = new ArrayList<>();
 | 
				
			||||||
 | 
					        bssidList.add(activeBssid);
 | 
				
			||||||
 | 
					        bssidList.add(activeBssid2);
 | 
				
			||||||
 | 
					        bssidList.add(activeBssid3);
 | 
				
			||||||
 | 
					        return bssidList;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    private List<EventReport> getOpensyncStatsEventReportsList() {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        List<ClientAssocEvent> clientAssocEventList = new ArrayList<>();
 | 
				
			||||||
 | 
					        sts.OpensyncStats.EventReport.ClientAssocEvent.Builder clientAssocBuilder = EventReport.ClientAssocEvent
 | 
				
			||||||
 | 
					                .getDefaultInstance().toBuilder();
 | 
				
			||||||
 | 
					        clientAssocBuilder.setAssocType(AssocType.ASSOC);
 | 
				
			||||||
 | 
					        clientAssocBuilder.setBand(RadioBandType.BAND5GU);
 | 
				
			||||||
 | 
					        clientAssocBuilder.setRssi(-65);
 | 
				
			||||||
 | 
					        clientAssocBuilder.setStaMac("C0:9A:D0:76:A9:69");
 | 
				
			||||||
 | 
					        clientAssocBuilder.setStaMacBytes(ByteString.copyFrom("C0:9A:D0:76:A9:69".getBytes()));
 | 
				
			||||||
 | 
					        clientAssocBuilder.setSessionId(1000L);
 | 
				
			||||||
 | 
					        clientAssocBuilder.setInternalSc(1);
 | 
				
			||||||
 | 
					        clientAssocBuilder.setSsid("ssid-3");
 | 
				
			||||||
 | 
					        clientAssocBuilder.setStatus(1);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        sts.OpensyncStats.EventReport.ClientAssocEvent.Builder clientAssocBuilder2 = EventReport.ClientAssocEvent
 | 
				
			||||||
 | 
					                .getDefaultInstance().toBuilder();
 | 
				
			||||||
 | 
					        clientAssocBuilder2.setAssocType(AssocType.ASSOC);
 | 
				
			||||||
 | 
					        clientAssocBuilder2.setBand(RadioBandType.BAND2G);
 | 
				
			||||||
 | 
					        clientAssocBuilder2.setRssi(-65);
 | 
				
			||||||
 | 
					        clientAssocBuilder2.setStaMac("7C:AB:60:E6:EA:4D");
 | 
				
			||||||
 | 
					        clientAssocBuilder2.setStaMacBytes(ByteString.copyFrom("7C:AB:60:E6:EA:4D".getBytes()));
 | 
				
			||||||
 | 
					        clientAssocBuilder2.setSessionId(1000L);
 | 
				
			||||||
 | 
					        clientAssocBuilder2.setInternalSc(1);
 | 
				
			||||||
 | 
					        clientAssocBuilder2.setSsid("ssid-1");
 | 
				
			||||||
 | 
					        clientAssocBuilder2.setStatus(1);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        clientAssocEventList.add(clientAssocBuilder.build());
 | 
				
			||||||
 | 
					        clientAssocEventList.add(clientAssocBuilder2.build());
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        List<EventReport> eventReportList = new ArrayList<>();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        EventReport.Builder eventReportBuilder = EventReport.getDefaultInstance().toBuilder();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        sts.OpensyncStats.EventReport.ClientSession.Builder clientSessionBuilder = sts.OpensyncStats.EventReport.ClientSession
 | 
				
			||||||
 | 
					                .getDefaultInstance().toBuilder();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        clientSessionBuilder.setSessionId(1000L);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        clientSessionBuilder.addAllClientAssocEvent(clientAssocEventList);
 | 
				
			||||||
 | 
					        List<sts.OpensyncStats.EventReport.ClientSession> clientSessionList = new ArrayList<>();
 | 
				
			||||||
 | 
					        clientSessionList.add(clientSessionBuilder.build());
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        eventReportBuilder.addAllClientSession(clientSessionList);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        eventReportList.add(eventReportBuilder.build());
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        return eventReportList;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    private List<ClientReport> getOpensyncStatsClientReportsList() {
 | 
				
			||||||
 | 
					        int rssi = Long.valueOf(4294967239L).intValue();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        Client.Stats clientStats = Client.Stats.getDefaultInstance().toBuilder().setRssi(rssi).setRxBytes(225554786)
 | 
				
			||||||
 | 
					                .setRxRate(24000.0).setTxBytes(1208133026).setTxRate(433300.0).setRssi(758722570).setRxFrames(10000)
 | 
				
			||||||
 | 
					                .setTxFrames(10000).setTxRate(24000.0).build();
 | 
				
			||||||
 | 
					        Client client2g = Client.getDefaultInstance().toBuilder().setMacAddress("7C:AB:60:E6:EA:4D").setSsid("ssid-1")
 | 
				
			||||||
 | 
					                .setConnected(true).setDurationMs(59977).setStats(clientStats).build();
 | 
				
			||||||
 | 
					        Client client5gu = Client.getDefaultInstance().toBuilder().setMacAddress("C0:9A:D0:76:A9:69").setSsid("ssid-3")
 | 
				
			||||||
 | 
					                .setConnected(true).setDurationMs(298127).setStats(clientStats).build();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        ClientReport clientReport2g = ClientReport.getDefaultInstance().toBuilder().setBand(RadioBandType.BAND2G)
 | 
				
			||||||
 | 
					                .setChannel(6).addAllClientList(ImmutableList.of(client2g)).build();
 | 
				
			||||||
 | 
					        ClientReport clientReport5gl = ClientReport.getDefaultInstance().toBuilder().setBand(RadioBandType.BAND5GL)
 | 
				
			||||||
 | 
					                .setChannel(36).addAllClientList(new ArrayList<Client>()).build();
 | 
				
			||||||
 | 
					        ClientReport clientReport5gu = ClientReport.getDefaultInstance().toBuilder().setBand(RadioBandType.BAND5GU)
 | 
				
			||||||
 | 
					                .setChannel(157).addAllClientList(ImmutableList.of(client5gu)).build();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        List<ClientReport> clients = new ArrayList<>();
 | 
				
			||||||
 | 
					        clients.add(clientReport2g);
 | 
				
			||||||
 | 
					        clients.add(clientReport5gl);
 | 
				
			||||||
 | 
					        clients.add(clientReport5gu);
 | 
				
			||||||
 | 
					        return clients;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -0,0 +1,119 @@
 | 
				
			|||||||
 | 
					package com.telecominfraproject.wlan.opensync.external.integration.controller;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import com.telecominfraproject.wlan.core.client.PingClient;
 | 
				
			||||||
 | 
					import com.telecominfraproject.wlan.core.model.service.GatewayType;
 | 
				
			||||||
 | 
					import com.telecominfraproject.wlan.datastore.exceptions.DsEntityNotFoundException;
 | 
				
			||||||
 | 
					import com.telecominfraproject.wlan.routing.RoutingServiceInterface;
 | 
				
			||||||
 | 
					import com.telecominfraproject.wlan.routing.models.EquipmentGatewayRecord;
 | 
				
			||||||
 | 
					import com.telecominfraproject.wlan.routing.models.EquipmentRoutingRecord;
 | 
				
			||||||
 | 
					import org.junit.jupiter.api.BeforeEach;
 | 
				
			||||||
 | 
					import org.junit.jupiter.api.Test;
 | 
				
			||||||
 | 
					import org.mockito.Mockito;
 | 
				
			||||||
 | 
					import org.springframework.test.util.ReflectionTestUtils;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import java.io.IOException;
 | 
				
			||||||
 | 
					import java.util.Arrays;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import static org.mockito.ArgumentMatchers.anyInt;
 | 
				
			||||||
 | 
					import static org.mockito.ArgumentMatchers.anyLong;
 | 
				
			||||||
 | 
					import static org.mockito.ArgumentMatchers.anyString;
 | 
				
			||||||
 | 
					import static org.mockito.Mockito.atLeast;
 | 
				
			||||||
 | 
					import static org.mockito.Mockito.atLeastOnce;
 | 
				
			||||||
 | 
					import static org.mockito.Mockito.verify;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class OpensyncCloudGatewayControllerTest {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    OpensyncCloudGatewayController opensyncCloudGatewayController = new OpensyncCloudGatewayController();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    RoutingServiceInterface routingSvc = Mockito.mock(RoutingServiceInterface.class);
 | 
				
			||||||
 | 
					    PingClient pingClient = Mockito.mock(PingClient.class);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @BeforeEach
 | 
				
			||||||
 | 
					    void setUp() {
 | 
				
			||||||
 | 
					        ReflectionTestUtils.setField(opensyncCloudGatewayController, "eqRoutingSvc", routingSvc);
 | 
				
			||||||
 | 
					        ReflectionTestUtils.setField(opensyncCloudGatewayController, "pingClient", pingClient);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Test
 | 
				
			||||||
 | 
					    void cleanupStaleGwRecord() throws IOException {
 | 
				
			||||||
 | 
					        EquipmentGatewayRecord gatewayRecord = readGatewayRecord();
 | 
				
			||||||
 | 
					        Mockito.when(pingClient.isReachable(anyString(), anyInt())).thenReturn(true);
 | 
				
			||||||
 | 
					        opensyncCloudGatewayController.cleanupStaleGwRecord();
 | 
				
			||||||
 | 
					        verify(pingClient, atLeastOnce()).isReachable("1.1.1.1",123);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Test
 | 
				
			||||||
 | 
					    void cleanupStaleGwRecord_pingFail() throws IOException {
 | 
				
			||||||
 | 
					        EquipmentGatewayRecord gatewayRecord = readGatewayRecord();
 | 
				
			||||||
 | 
					        Mockito.when(pingClient.isReachable(anyString(), anyInt())).thenReturn(false);
 | 
				
			||||||
 | 
					        Mockito.when(routingSvc.deleteGateway(anyLong())).thenReturn(gatewayRecord);
 | 
				
			||||||
 | 
					        opensyncCloudGatewayController.cleanupStaleGwRecord();
 | 
				
			||||||
 | 
					        verify(routingSvc, atLeastOnce()).deleteGateway(gatewayRecord.getId());
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Test
 | 
				
			||||||
 | 
					    void cleanupStaleEqptRoutingRecord_NoEntityFound() throws IOException {
 | 
				
			||||||
 | 
					        EquipmentRoutingRecord routingRecord = readRoutingRecord();
 | 
				
			||||||
 | 
					        Mockito.when(routingSvc.getGateway(anyLong())).thenThrow(new DsEntityNotFoundException());
 | 
				
			||||||
 | 
					        Mockito.when(routingSvc.delete(anyLong())).thenReturn(new EquipmentRoutingRecord());
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        opensyncCloudGatewayController.cleanupStaleEqptRoutingRecord(123L);
 | 
				
			||||||
 | 
					        verify(routingSvc, atLeastOnce()).delete(routingRecord.getId());
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Test
 | 
				
			||||||
 | 
					    void cleanupStaleEqptRoutingRecord_GenericException() throws IOException {
 | 
				
			||||||
 | 
					        EquipmentRoutingRecord routingRecord = readRoutingRecord();
 | 
				
			||||||
 | 
					        Mockito.when(routingSvc.getGateway(anyLong())).thenThrow(new RuntimeException("Throwing exception to test"));
 | 
				
			||||||
 | 
					        Mockito.when(routingSvc.delete(anyLong())).thenReturn(new EquipmentRoutingRecord());
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        opensyncCloudGatewayController.cleanupStaleEqptRoutingRecord(123L);
 | 
				
			||||||
 | 
					        verify(routingSvc, atLeast(0)).delete(routingRecord.getId());
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Test
 | 
				
			||||||
 | 
					    void cleanupStaleEqptRoutingRecord_GatewayResponds() throws IOException {
 | 
				
			||||||
 | 
					        EquipmentRoutingRecord routingRecord = readRoutingRecord();
 | 
				
			||||||
 | 
					        EquipmentGatewayRecord gatewayRecord = readGatewayRecord();
 | 
				
			||||||
 | 
					        Mockito.when(routingSvc.getGateway(anyLong())).thenReturn(gatewayRecord);
 | 
				
			||||||
 | 
					        Mockito.when(routingSvc.delete(anyLong())).thenReturn(new EquipmentRoutingRecord());
 | 
				
			||||||
 | 
					        Mockito.when(pingClient.isReachable(anyString(), anyInt())).thenReturn(true);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        opensyncCloudGatewayController.cleanupStaleEqptRoutingRecord(123L);
 | 
				
			||||||
 | 
					        verify(routingSvc, atLeast(0)).delete(routingRecord.getId());
 | 
				
			||||||
 | 
					        verify(pingClient, atLeastOnce()).isReachable(anyString(), anyInt());
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Test
 | 
				
			||||||
 | 
					    void cleanupStaleEqptRoutingRecord_GatewayFails() throws IOException {
 | 
				
			||||||
 | 
					        EquipmentRoutingRecord routingRecord = readRoutingRecord();
 | 
				
			||||||
 | 
					        EquipmentGatewayRecord gatewayRecord = readGatewayRecord();
 | 
				
			||||||
 | 
					        Mockito.when(routingSvc.getGateway(anyLong())).thenReturn(gatewayRecord);
 | 
				
			||||||
 | 
					        Mockito.when(routingSvc.delete(anyLong())).thenReturn(new EquipmentRoutingRecord());
 | 
				
			||||||
 | 
					        Mockito.when(pingClient.isReachable(anyString(), anyInt())).thenReturn(false);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        opensyncCloudGatewayController.cleanupStaleEqptRoutingRecord(123L);
 | 
				
			||||||
 | 
					        verify(routingSvc, atLeastOnce()).delete(routingRecord.getId());
 | 
				
			||||||
 | 
					        verify(pingClient, atLeastOnce()).isReachable(anyString(), anyInt());
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    private EquipmentGatewayRecord readGatewayRecord() throws IOException {
 | 
				
			||||||
 | 
					        EquipmentGatewayRecord gatewayRecord = EquipmentGatewayRecord.fromFile(
 | 
				
			||||||
 | 
					                OpensyncCloudGatewayControllerTest.class.getResource("EquipmentGatewayRecords.json").getFile(),
 | 
				
			||||||
 | 
					                EquipmentGatewayRecord.class);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        Mockito.when(routingSvc.getGateway(GatewayType.CEGW)).thenReturn(Arrays.asList(gatewayRecord));
 | 
				
			||||||
 | 
					        return gatewayRecord;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    private EquipmentRoutingRecord readRoutingRecord() throws IOException {
 | 
				
			||||||
 | 
					        EquipmentRoutingRecord routingRecord = EquipmentRoutingRecord.fromFile(
 | 
				
			||||||
 | 
					                OpensyncCloudGatewayControllerTest.class.getResource("EquipmentRoutingRecord.json").getFile(),
 | 
				
			||||||
 | 
					                EquipmentRoutingRecord.class);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        Mockito.when(routingSvc.getRegisteredRouteList(anyLong())).thenReturn(Arrays.asList(routingRecord));
 | 
				
			||||||
 | 
					        return routingRecord;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -0,0 +1,9 @@
 | 
				
			|||||||
 | 
					{
 | 
				
			||||||
 | 
					  "id": "1",
 | 
				
			||||||
 | 
					  "hostname": "Host-1",
 | 
				
			||||||
 | 
					  "ipAddr": "1.1.1.1",
 | 
				
			||||||
 | 
					  "port": 123,
 | 
				
			||||||
 | 
					  "gatewayType": "CEGW",
 | 
				
			||||||
 | 
					  "createdTimestamp": 0,
 | 
				
			||||||
 | 
					  "lastModifiedTimestamp": 0
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -0,0 +1,8 @@
 | 
				
			|||||||
 | 
					{
 | 
				
			||||||
 | 
					  "id": 12,
 | 
				
			||||||
 | 
					  "equipmentId": 123,
 | 
				
			||||||
 | 
					  "customerId": 2,
 | 
				
			||||||
 | 
					  "gatewayId": 110,
 | 
				
			||||||
 | 
					  "createdTimestamp": 0,
 | 
				
			||||||
 | 
					  "lastModifiedTimestamp": 0
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -1,14 +0,0 @@
 | 
				
			|||||||
package com.telecominfraproject.wlan.opensync.external.integration;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
import java.util.Set;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
public interface ConnectusOvsdbClientInterface {
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	Set<String> getConnectedClientIds();
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	String changeRedirectorAddress(String apId, String newRedirectorAddress);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	void processConfigChanged(String apId);
 | 
					 | 
				
			||||||
	
 | 
					 | 
				
			||||||
	String closeSession(String apId);
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
@@ -1,6 +1,7 @@
 | 
				
			|||||||
package com.telecominfraproject.wlan.opensync.external.integration;
 | 
					package com.telecominfraproject.wlan.opensync.external.integration;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import java.util.List;
 | 
					import java.util.List;
 | 
				
			||||||
 | 
					import java.util.Map;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import com.telecominfraproject.wlan.opensync.external.integration.models.ConnectNodeInfo;
 | 
					import com.telecominfraproject.wlan.opensync.external.integration.models.ConnectNodeInfo;
 | 
				
			||||||
import com.telecominfraproject.wlan.opensync.external.integration.models.OpensyncAPConfig;
 | 
					import com.telecominfraproject.wlan.opensync.external.integration.models.OpensyncAPConfig;
 | 
				
			||||||
@@ -33,6 +34,8 @@ public interface OpensyncExternalIntegrationInterface {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    void wifiInetStateDbTableUpdate(List<OpensyncAPInetState> inetStateTables, String apId);
 | 
					    void wifiInetStateDbTableUpdate(List<OpensyncAPInetState> inetStateTables, String apId);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    void wifiInetStateDbTableDelete(List<OpensyncAPInetState> inetStateTables, String apId);
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
    void processMqttMessage(String topic, Report report);
 | 
					    void processMqttMessage(String topic, Report report);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    void processMqttMessage(String topic, FlowReport flowReport);
 | 
					    void processMqttMessage(String topic, FlowReport flowReport);
 | 
				
			||||||
@@ -44,4 +47,8 @@ public interface OpensyncExternalIntegrationInterface {
 | 
				
			|||||||
    void wifiAssociatedClientsDbTableDelete(String deletedClientMac, String apId);
 | 
					    void wifiAssociatedClientsDbTableDelete(String deletedClientMac, String apId);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    void awlanNodeDbTableUpdate(OpensyncAWLANNode opensyncAPState, String apId);
 | 
					    void awlanNodeDbTableUpdate(OpensyncAWLANNode opensyncAPState, String apId);
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					    void dhcpLeasedIpDbTableUpdate(List<Map<String,String>> dhcpAttributes, String apId, RowUpdateOperation rowUpdateOperation);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    void commandStateDbTableUpdate(List<Map<String,String>> commandStateAttributes, String apId, RowUpdateOperation rowUpdateOperation);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -0,0 +1,37 @@
 | 
				
			|||||||
 | 
					package com.telecominfraproject.wlan.opensync.external.integration;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import java.util.List;
 | 
				
			||||||
 | 
					import java.util.Map;
 | 
				
			||||||
 | 
					import java.util.Set;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import com.telecominfraproject.wlan.core.model.equipment.MacAddress;
 | 
				
			||||||
 | 
					import com.telecominfraproject.wlan.core.model.equipment.RadioType;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					public interface OvsdbClientInterface {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    Set<String> getConnectedClientIds();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    String changeRedirectorHost(String apId, String newRedirectorHost);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    String startDebugEngine(String apId, String gatewayHostname, Integer gatewayPort);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    String stopDebugEngine(String apId);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    void processConfigChanged(String apId);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    void processClientBlocklistChange(String apId, List<MacAddress> blockList);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    String processFirmwareDownload(String apId, String firmwareUrl, String firmwareVersion, String username,
 | 
				
			||||||
 | 
					            String validationCode);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    String closeSession(String apId);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    String processFirmwareFlash(String apId, String firmwareVersion, String username);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    String processRebootRequest(String apId, boolean switchBanks);
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					    String processFactoryResetRequest(String apId);
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					    String processNewChannelsRequest(String apId, Map<RadioType,Integer> channelMap);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -2,9 +2,13 @@ package com.telecominfraproject.wlan.opensync.external.integration.models;
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
import java.util.HashMap;
 | 
					import java.util.HashMap;
 | 
				
			||||||
import java.util.Map;
 | 
					import java.util.Map;
 | 
				
			||||||
 | 
					import java.util.Objects;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
public class ConnectNodeInfo implements Cloneable{
 | 
					public class ConnectNodeInfo implements Cloneable {
 | 
				
			||||||
    public Map<String,String> mqttSettings;
 | 
					
 | 
				
			||||||
 | 
					    public Map<String, String> mqttSettings = new HashMap<>();
 | 
				
			||||||
 | 
					    public Map<String, String> versionMatrix = new HashMap<>();
 | 
				
			||||||
 | 
					    public Map<String, String> wifiRadioStates = new HashMap<>();
 | 
				
			||||||
    public String redirectorAddr;
 | 
					    public String redirectorAddr;
 | 
				
			||||||
    public String managerAddr;
 | 
					    public String managerAddr;
 | 
				
			||||||
    public String skuNumber;
 | 
					    public String skuNumber;
 | 
				
			||||||
@@ -15,29 +19,73 @@ public class ConnectNodeInfo implements Cloneable{
 | 
				
			|||||||
    public String firmwareVersion;
 | 
					    public String firmwareVersion;
 | 
				
			||||||
    public String revision;
 | 
					    public String revision;
 | 
				
			||||||
    public String model;
 | 
					    public String model;
 | 
				
			||||||
    
 | 
					    public String ifName;
 | 
				
			||||||
    
 | 
					    public String ifType;
 | 
				
			||||||
 | 
					    public String country;
 | 
				
			||||||
 | 
					    public String lanIpV4Address;
 | 
				
			||||||
 | 
					    public String lanIfName;
 | 
				
			||||||
 | 
					    public String lanIfType;
 | 
				
			||||||
 | 
					    public String lanMacAddress;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @Override
 | 
					    @Override
 | 
				
			||||||
    public ConnectNodeInfo clone() {
 | 
					    public ConnectNodeInfo clone() {
 | 
				
			||||||
        try {
 | 
					        try {
 | 
				
			||||||
            ConnectNodeInfo ret = (ConnectNodeInfo)super.clone();
 | 
					            ConnectNodeInfo ret = (ConnectNodeInfo) super.clone();
 | 
				
			||||||
            if (this.mqttSettings!=null) {
 | 
					            if (this.mqttSettings != null) {
 | 
				
			||||||
                ret.mqttSettings = new HashMap<>(this.mqttSettings);
 | 
					                ret.mqttSettings = new HashMap<>(this.mqttSettings);
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
 | 
					            if (this.wifiRadioStates != null) {
 | 
				
			||||||
 | 
					                ret.wifiRadioStates = new HashMap<>(this.wifiRadioStates);
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					            if (this.versionMatrix != null) {
 | 
				
			||||||
 | 
					                ret.versionMatrix = new HashMap<>(this.versionMatrix);
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
            return ret;
 | 
					            return ret;
 | 
				
			||||||
        }catch(CloneNotSupportedException e) {                
 | 
					        } catch (CloneNotSupportedException e) {
 | 
				
			||||||
            throw new IllegalStateException("Cannot clone ", e);
 | 
					            throw new IllegalStateException("Cannot clone ", e);
 | 
				
			||||||
        }            
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Override
 | 
				
			||||||
 | 
					    public int hashCode() {
 | 
				
			||||||
 | 
					        return Objects.hash(country, firmwareVersion, ifName, ifType, ipV4Address, lanIfName, lanIfType, lanIpV4Address,
 | 
				
			||||||
 | 
					                lanMacAddress, macAddress, managerAddr, model, mqttSettings, platformVersion, redirectorAddr, revision,
 | 
				
			||||||
 | 
					                serialNumber, skuNumber, versionMatrix, wifiRadioStates);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Override
 | 
				
			||||||
 | 
					    public boolean equals(Object obj) {
 | 
				
			||||||
 | 
					        if (this == obj) {
 | 
				
			||||||
 | 
					            return true;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        if (!(obj instanceof ConnectNodeInfo)) {
 | 
				
			||||||
 | 
					            return false;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        ConnectNodeInfo other = (ConnectNodeInfo) obj;
 | 
				
			||||||
 | 
					        return Objects.equals(country, other.country) && Objects.equals(firmwareVersion, other.firmwareVersion)
 | 
				
			||||||
 | 
					                && Objects.equals(ifName, other.ifName) && Objects.equals(ifType, other.ifType)
 | 
				
			||||||
 | 
					                && Objects.equals(ipV4Address, other.ipV4Address) && Objects.equals(lanIfName, other.lanIfName)
 | 
				
			||||||
 | 
					                && Objects.equals(lanIfType, other.lanIfType) && Objects.equals(lanIpV4Address, other.lanIpV4Address)
 | 
				
			||||||
 | 
					                && Objects.equals(lanMacAddress, other.lanMacAddress) && Objects.equals(macAddress, other.macAddress)
 | 
				
			||||||
 | 
					                && Objects.equals(managerAddr, other.managerAddr) && Objects.equals(model, other.model)
 | 
				
			||||||
 | 
					                && Objects.equals(mqttSettings, other.mqttSettings)
 | 
				
			||||||
 | 
					                && Objects.equals(platformVersion, other.platformVersion)
 | 
				
			||||||
 | 
					                && Objects.equals(redirectorAddr, other.redirectorAddr) && Objects.equals(revision, other.revision)
 | 
				
			||||||
 | 
					                && Objects.equals(serialNumber, other.serialNumber) && Objects.equals(skuNumber, other.skuNumber)
 | 
				
			||||||
 | 
					                && Objects.equals(versionMatrix, other.versionMatrix)
 | 
				
			||||||
 | 
					                && Objects.equals(wifiRadioStates, other.wifiRadioStates);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @Override
 | 
					    @Override
 | 
				
			||||||
    public String toString() {
 | 
					    public String toString() {
 | 
				
			||||||
        return String.format(
 | 
					        return "ConnectNodeInfo [mqttSettings=" + mqttSettings + ", versionMatrix=" + versionMatrix
 | 
				
			||||||
                "ConnectNodeInfo [mqttSettings=%s, redirectorAddr=%s, managerAddr=%s, skuNumber=%s, serialNumber=%s, "
 | 
					                + ", wifiRadioStates=" + wifiRadioStates + ", redirectorAddr=" + redirectorAddr + ", managerAddr="
 | 
				
			||||||
                + "macAddress=%s, ipV4Address=%s, platformVersion=%s, firmwareVersion=%s, revision=%s, model=%s]",
 | 
					                + managerAddr + ", skuNumber=" + skuNumber + ", serialNumber=" + serialNumber + ", macAddress="
 | 
				
			||||||
                mqttSettings, redirectorAddr, managerAddr, skuNumber, serialNumber, macAddress, ipV4Address,
 | 
					                + macAddress + ", ipV4Address=" + ipV4Address + ", platformVersion=" + platformVersion
 | 
				
			||||||
                platformVersion, firmwareVersion, revision, model);
 | 
					                + ", firmwareVersion=" + firmwareVersion + ", revision=" + revision + ", model=" + model + ", ifName="
 | 
				
			||||||
 | 
					                + ifName + ", ifType=" + ifType + ", country=" + country + ", lanIpV4Address=" + lanIpV4Address
 | 
				
			||||||
 | 
					                + ", lanIfName=" + lanIfName + ", lanIfType=" + lanIfType + ", lanMacAddress=" + lanMacAddress + "]";
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
}
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -3,10 +3,12 @@ package com.telecominfraproject.wlan.opensync.external.integration.models;
 | 
				
			|||||||
import java.util.ArrayList;
 | 
					import java.util.ArrayList;
 | 
				
			||||||
import java.util.HashSet;
 | 
					import java.util.HashSet;
 | 
				
			||||||
import java.util.List;
 | 
					import java.util.List;
 | 
				
			||||||
 | 
					import java.util.Objects;
 | 
				
			||||||
import java.util.Set;
 | 
					import java.util.Set;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import com.telecominfraproject.wlan.core.model.entity.CountryCode;
 | 
					import com.telecominfraproject.wlan.core.model.entity.CountryCode;
 | 
				
			||||||
import com.telecominfraproject.wlan.core.model.equipment.EquipmentType;
 | 
					import com.telecominfraproject.wlan.core.model.equipment.EquipmentType;
 | 
				
			||||||
 | 
					import com.telecominfraproject.wlan.core.model.equipment.MacAddress;
 | 
				
			||||||
import com.telecominfraproject.wlan.core.model.equipment.RadioType;
 | 
					import com.telecominfraproject.wlan.core.model.equipment.RadioType;
 | 
				
			||||||
import com.telecominfraproject.wlan.core.model.json.BaseJsonModel;
 | 
					import com.telecominfraproject.wlan.core.model.json.BaseJsonModel;
 | 
				
			||||||
import com.telecominfraproject.wlan.equipment.models.ApElementConfiguration;
 | 
					import com.telecominfraproject.wlan.equipment.models.ApElementConfiguration;
 | 
				
			||||||
@@ -24,186 +26,291 @@ import com.telecominfraproject.wlan.routing.models.EquipmentRoutingRecord;
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
public class OpensyncAPConfig extends BaseJsonModel {
 | 
					public class OpensyncAPConfig extends BaseJsonModel {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	private static final long serialVersionUID = 3917975477206236668L;
 | 
					    private static final long serialVersionUID = 3917975477206236668L;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	private Equipment customerEquipment;
 | 
					    private Equipment customerEquipment;
 | 
				
			||||||
	private Profile apProfile;
 | 
					    private OpensyncAPHotspot20Config hotspotConfig;
 | 
				
			||||||
	private List<Profile> ssidProfile;
 | 
					    private Profile apProfile;
 | 
				
			||||||
	private List<Profile> radiusProfiles;
 | 
					    private Profile rfProfile;
 | 
				
			||||||
	private Location equipmentLocation;
 | 
					    private List<Profile> ssidProfile;
 | 
				
			||||||
	private EquipmentRoutingRecord equipmentRouting;
 | 
					    private List<Profile> metricsProfile;
 | 
				
			||||||
	private EquipmentGatewayRecord equipmentGateway;
 | 
					    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
 | 
					    // Handle Legacy Config Support
 | 
				
			||||||
	public void setRadioConfig(OpensyncAPRadioConfig radioConfig) {
 | 
					    public void setRadioConfig(OpensyncAPRadioConfig radioConfig) {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		if (customerEquipment == null) {
 | 
					        if (customerEquipment == null) {
 | 
				
			||||||
			customerEquipment = new Equipment();
 | 
					            customerEquipment = new Equipment();
 | 
				
			||||||
			customerEquipment.setId(0);
 | 
					            customerEquipment.setId(0);
 | 
				
			||||||
			customerEquipment.setEquipmentType(EquipmentType.AP);
 | 
					            customerEquipment.setEquipmentType(EquipmentType.AP);
 | 
				
			||||||
			customerEquipment.setDetails(ApElementConfiguration.createWithDefaults());
 | 
					            customerEquipment.setDetails(ApElementConfiguration.createWithDefaults());
 | 
				
			||||||
			ApElementConfiguration apConfig = (ApElementConfiguration) customerEquipment.getDetails();
 | 
					            ApElementConfiguration apConfig = (ApElementConfiguration) customerEquipment.getDetails();
 | 
				
			||||||
			apConfig.getRadioMap().get(RadioType.is2dot4GHz).setChannelNumber(radioConfig.getRadioChannel24G());
 | 
					            apConfig.getRadioMap().get(RadioType.is2dot4GHz).setChannelNumber(radioConfig.getRadioChannel24G());
 | 
				
			||||||
			apConfig.getRadioMap().get(RadioType.is5GHzL).setChannelNumber(radioConfig.getRadioChannel5LG());
 | 
					            apConfig.getRadioMap().get(RadioType.is5GHzL).setChannelNumber(radioConfig.getRadioChannel5LG());
 | 
				
			||||||
			apConfig.getRadioMap().get(RadioType.is5GHzU).setChannelNumber(radioConfig.getRadioChannel5HG());
 | 
					            apConfig.getRadioMap().get(RadioType.is5GHzU).setChannelNumber(radioConfig.getRadioChannel5HG());
 | 
				
			||||||
			customerEquipment.setDetails(apConfig);
 | 
					            customerEquipment.setDetails(apConfig);
 | 
				
			||||||
		}
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		if (equipmentLocation == null) {
 | 
					        if (equipmentLocation == null) {
 | 
				
			||||||
			equipmentLocation = new Location();
 | 
					            equipmentLocation = new Location();
 | 
				
			||||||
			equipmentLocation.setId(1);
 | 
					            equipmentLocation.setId(1);
 | 
				
			||||||
			equipmentLocation.setDetails(LocationDetails.createWithDefaults());
 | 
					            equipmentLocation.setDetails(LocationDetails.createWithDefaults());
 | 
				
			||||||
			((LocationDetails) equipmentLocation.getDetails())
 | 
					            ((LocationDetails) equipmentLocation.getDetails())
 | 
				
			||||||
					.setCountryCode(CountryCode.getByName(radioConfig.getCountry().toLowerCase()));
 | 
					                    .setCountryCode(CountryCode.getByName(radioConfig.getCountry().toLowerCase()));
 | 
				
			||||||
			customerEquipment.setLocationId(equipmentLocation.getId());
 | 
					            customerEquipment.setLocationId(equipmentLocation.getId());
 | 
				
			||||||
		}
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	}
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	// Handle Legacy Config Support
 | 
					    // Handle Legacy Config Support
 | 
				
			||||||
	public void setSsidConfigs(List<OpensyncAPSsidConfig> ssidConfigs) {
 | 
					    public void setSsidConfigs(List<OpensyncAPSsidConfig> ssidConfigs) {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		if (apProfile == null) {
 | 
					        if (apProfile == null) {
 | 
				
			||||||
			apProfile = new Profile();
 | 
					            apProfile = new Profile();
 | 
				
			||||||
			apProfile.setName("GeneratedApProfile");
 | 
					            apProfile.setName("GeneratedApProfile");
 | 
				
			||||||
			apProfile.setId(2);
 | 
					            apProfile.setId(2);
 | 
				
			||||||
			apProfile.setDetails(ApNetworkConfiguration.createWithDefaults());
 | 
					            apProfile.setDetails(ApNetworkConfiguration.createWithDefaults());
 | 
				
			||||||
		}
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		long ssidProfileId = 3;
 | 
					        long ssidProfileId = 3;
 | 
				
			||||||
		for (OpensyncAPSsidConfig ssidConfig : ssidConfigs) {
 | 
					        for (OpensyncAPSsidConfig ssidConfig : ssidConfigs) {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			Profile profile = new Profile();
 | 
					            Profile profile = new Profile();
 | 
				
			||||||
			profile.setProfileType(ProfileType.ssid);
 | 
					            profile.setProfileType(ProfileType.ssid);
 | 
				
			||||||
			profile.setName(ssidConfig.getSsid());
 | 
					            profile.setName(ssidConfig.getSsid());
 | 
				
			||||||
			SsidConfiguration cfg = SsidConfiguration.createWithDefaults();
 | 
					            SsidConfiguration cfg = SsidConfiguration.createWithDefaults();
 | 
				
			||||||
			Set<RadioType> appliedRadios = new HashSet<RadioType>();
 | 
					            Set<RadioType> appliedRadios = new HashSet<RadioType>();
 | 
				
			||||||
			appliedRadios.add(ssidConfig.getRadioType());
 | 
					            appliedRadios.add(ssidConfig.getRadioType());
 | 
				
			||||||
			cfg.setAppliedRadios(appliedRadios);
 | 
					            cfg.setAppliedRadios(appliedRadios);
 | 
				
			||||||
			cfg.setSsid(ssidConfig.getSsid());
 | 
					            cfg.setSsid(ssidConfig.getSsid());
 | 
				
			||||||
			if (ssidConfig.getEncryption().equals("WPA-PSK") && ssidConfig.getMode().equals("1"))
 | 
					            if (ssidConfig.getEncryption().equals("WPA-PSK") && ssidConfig.getMode().equals("1"))
 | 
				
			||||||
				cfg.setSecureMode(SecureMode.wpaPSK);
 | 
					                cfg.setSecureMode(SecureMode.wpaPSK);
 | 
				
			||||||
			else
 | 
					            else
 | 
				
			||||||
				cfg.setSecureMode(SecureMode.wpa2PSK);
 | 
					                cfg.setSecureMode(SecureMode.wpa2PSK);
 | 
				
			||||||
			cfg.setBroadcastSsid(ssidConfig.isBroadcast() ? StateSetting.enabled : StateSetting.disabled);
 | 
					            cfg.setBroadcastSsid(ssidConfig.isBroadcast() ? StateSetting.enabled : StateSetting.disabled);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			profile.setDetails(cfg);
 | 
					            profile.setDetails(cfg);
 | 
				
			||||||
			profile.setId(ssidProfileId);
 | 
					            profile.setId(ssidProfileId);
 | 
				
			||||||
			if (this.ssidProfile == null)
 | 
					            if (this.ssidProfile == null)
 | 
				
			||||||
				this.ssidProfile = new ArrayList<Profile>();
 | 
					                this.ssidProfile = new ArrayList<Profile>();
 | 
				
			||||||
			this.ssidProfile.add(profile);
 | 
					            this.ssidProfile.add(profile);
 | 
				
			||||||
			apProfile.getChildProfileIds().add(ssidProfileId);
 | 
					            apProfile.getChildProfileIds().add(ssidProfileId);
 | 
				
			||||||
			ssidProfileId++;
 | 
					            ssidProfileId++;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		}
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		if (customerEquipment != null) {
 | 
					        if (customerEquipment != null) {
 | 
				
			||||||
			customerEquipment.setProfileId(apProfile.getId());
 | 
					            customerEquipment.setProfileId(apProfile.getId());
 | 
				
			||||||
		}
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	}
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	public EquipmentGatewayRecord getEquipmentGateway() {
 | 
					    public EquipmentGatewayRecord getEquipmentGateway() {
 | 
				
			||||||
		return equipmentGateway;
 | 
					        return equipmentGateway;
 | 
				
			||||||
	}
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	public void setEquipmentGateway(EquipmentGatewayRecord equipmentGateway) {
 | 
					    public void setEquipmentGateway(EquipmentGatewayRecord equipmentGateway) {
 | 
				
			||||||
		this.equipmentGateway = equipmentGateway;
 | 
					        this.equipmentGateway = equipmentGateway;
 | 
				
			||||||
	}
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	public EquipmentRoutingRecord getEquipmentRouting() {
 | 
					    public EquipmentRoutingRecord getEquipmentRouting() {
 | 
				
			||||||
		return equipmentRouting;
 | 
					        return equipmentRouting;
 | 
				
			||||||
	}
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	public void setEquipmentRouting(EquipmentRoutingRecord equipmentRouting) {
 | 
					    public void setEquipmentRouting(EquipmentRoutingRecord equipmentRouting) {
 | 
				
			||||||
		this.equipmentRouting = equipmentRouting;
 | 
					        this.equipmentRouting = equipmentRouting;
 | 
				
			||||||
	}
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	public Equipment getCustomerEquipment() {
 | 
					    public Equipment getCustomerEquipment() {
 | 
				
			||||||
		return customerEquipment;
 | 
					        return customerEquipment;
 | 
				
			||||||
	}
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	public void setCustomerEquipment(Equipment customerEquipment) {
 | 
					    public void setCustomerEquipment(Equipment customerEquipment) {
 | 
				
			||||||
		this.customerEquipment = customerEquipment;
 | 
					        this.customerEquipment = customerEquipment;
 | 
				
			||||||
	}
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	public Profile getApProfile() {
 | 
					    public OpensyncAPHotspot20Config getHotspotConfig() {
 | 
				
			||||||
		return apProfile;
 | 
					        return hotspotConfig;
 | 
				
			||||||
	}
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	public void setApProfile(Profile apProfile) {
 | 
					    public void setHotspotConfig(OpensyncAPHotspot20Config hotspotConfig) {
 | 
				
			||||||
		this.apProfile = apProfile;
 | 
					        this.hotspotConfig = hotspotConfig;
 | 
				
			||||||
	}
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	public List<Profile> getSsidProfile() {
 | 
					    public Profile getApProfile() {
 | 
				
			||||||
		return ssidProfile;
 | 
					        return apProfile;
 | 
				
			||||||
	}
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	public void setSsidProfile(List<Profile> ssidProfile) {
 | 
					    public void setApProfile(Profile apProfile) {
 | 
				
			||||||
		this.ssidProfile = ssidProfile;
 | 
					        this.apProfile = apProfile;
 | 
				
			||||||
	}
 | 
					    }
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					    public Profile getRfProfile() {
 | 
				
			||||||
 | 
					    	return rfProfile;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					    public void setRfProfile(Profile rfProfile) {
 | 
				
			||||||
 | 
					    	this.rfProfile = rfProfile;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	public Location getEquipmentLocation() {
 | 
					    public List<Profile> getSsidProfile() {
 | 
				
			||||||
		return equipmentLocation;
 | 
					        return ssidProfile;
 | 
				
			||||||
	}
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	public void setEquipmentLocation(Location equipmentLocation) {
 | 
					    public void setSsidProfile(List<Profile> ssidProfile) {
 | 
				
			||||||
		this.equipmentLocation = equipmentLocation;
 | 
					        this.ssidProfile = ssidProfile;
 | 
				
			||||||
	}
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	public String getCountryCode() {
 | 
					    public List<Profile> getBonjourGatewayProfiles() {
 | 
				
			||||||
		return Location.getCountryCode(this.equipmentLocation).toString();
 | 
					        return bonjourGatewayProfiles;
 | 
				
			||||||
	}
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	public static long getSerialversionuid() {
 | 
					    public void setBonjourGatewayProfiles(List<Profile> bonjourGatewayProfiles) {
 | 
				
			||||||
		return serialVersionUID;
 | 
					        this.bonjourGatewayProfiles = bonjourGatewayProfiles;
 | 
				
			||||||
	}
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	@Override
 | 
					    public Location getEquipmentLocation() {
 | 
				
			||||||
	public OpensyncAPConfig clone() {
 | 
					        return equipmentLocation;
 | 
				
			||||||
		OpensyncAPConfig ret = (OpensyncAPConfig) super.clone();
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		if (customerEquipment != null)
 | 
					    public void setEquipmentLocation(Location equipmentLocation) {
 | 
				
			||||||
			ret.customerEquipment = customerEquipment.clone();
 | 
					        this.equipmentLocation = equipmentLocation;
 | 
				
			||||||
		if (equipmentLocation != null)
 | 
					    }
 | 
				
			||||||
			ret.equipmentLocation = equipmentLocation.clone();
 | 
					 | 
				
			||||||
		if (ssidProfile != null) {
 | 
					 | 
				
			||||||
			List<Profile> ssidList = new ArrayList<Profile>();
 | 
					 | 
				
			||||||
			for (Profile profile : ssidProfile) {
 | 
					 | 
				
			||||||
				ssidList.add(profile.clone());
 | 
					 | 
				
			||||||
			}
 | 
					 | 
				
			||||||
			ret.ssidProfile = ssidList;
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
		if (apProfile != null)
 | 
					 | 
				
			||||||
			ret.apProfile = apProfile.clone();
 | 
					 | 
				
			||||||
		if (equipmentRouting != null)
 | 
					 | 
				
			||||||
			ret.equipmentRouting = equipmentRouting.clone();
 | 
					 | 
				
			||||||
		if (equipmentGateway != null)
 | 
					 | 
				
			||||||
			ret.equipmentGateway = equipmentGateway.clone();
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
		return ret;
 | 
					    public String getCountryCode() {
 | 
				
			||||||
	}
 | 
					        return Location.getCountryCode(this.equipmentLocation).toString();
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	@Override
 | 
					    public static long getSerialversionuid() {
 | 
				
			||||||
	public String toString() {
 | 
					        return serialVersionUID;
 | 
				
			||||||
		StringBuffer sb = new StringBuffer();
 | 
					    }
 | 
				
			||||||
		sb.append(customerEquipment.toString());
 | 
					 | 
				
			||||||
		sb.append(apProfile.toString());
 | 
					 | 
				
			||||||
		for (Profile ssid : ssidProfile) {
 | 
					 | 
				
			||||||
			sb.append(ssid.toString());
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
		sb.append(equipmentLocation.toString());
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
		return sb.toString();
 | 
					    @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 ret;
 | 
				
			||||||
		return radiusProfiles;
 | 
					    }
 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
	public void setRadiusProfiles(List<Profile> radiusProfiles) {
 | 
					    public List<Profile> getRadiusProfiles() {
 | 
				
			||||||
		this.radiusProfiles = radiusProfiles;
 | 
					        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;
 | 
					package com.telecominfraproject.wlan.opensync.external.integration.models;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import java.util.HashMap;
 | 
				
			||||||
import java.util.Map;
 | 
					import java.util.Map;
 | 
				
			||||||
import java.util.UUID;
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
import com.telecominfraproject.wlan.core.model.json.BaseJsonModel;
 | 
					import com.telecominfraproject.wlan.core.model.json.BaseJsonModel;
 | 
				
			||||||
import com.vmware.ovsdb.protocol.operation.notation.Uuid;
 | 
					import com.vmware.ovsdb.protocol.operation.notation.Uuid;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
public class OpensyncAPInetState extends BaseJsonModel  {
 | 
					public class OpensyncAPInetState extends BaseJsonModel {
 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
	private static final long serialVersionUID = 1707053648715030173L;
 | 
						private static final long serialVersionUID = 1707053648715030173L;
 | 
				
			||||||
	
 | 
					
 | 
				
			||||||
	public String ifName;
 | 
						public String ifName;
 | 
				
			||||||
	public String dhcpd;
 | 
						public Map<String, String> dhcpd;
 | 
				
			||||||
	public String unpnpMode;
 | 
						public String unpnpMode;
 | 
				
			||||||
	public String ifType;
 | 
						public String ifType;
 | 
				
			||||||
	public String softwdsMacAddr;
 | 
						public String softwdsMacAddr;
 | 
				
			||||||
@@ -37,167 +36,423 @@ public class OpensyncAPInetState extends BaseJsonModel  {
 | 
				
			|||||||
	public String inetConfig;
 | 
						public String inetConfig;
 | 
				
			||||||
	public Uuid _uuid;
 | 
						public Uuid _uuid;
 | 
				
			||||||
	public Uuid version;
 | 
						public Uuid version;
 | 
				
			||||||
 | 
						public String greLocalInetAddr;
 | 
				
			||||||
 | 
						public String greRemoteMacAddr;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						public OpensyncAPInetState() {
 | 
				
			||||||
 | 
							super();
 | 
				
			||||||
 | 
							dns = new HashMap<>();
 | 
				
			||||||
 | 
							dhcpc = new HashMap<>();
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	public String getIfName() {
 | 
						public String getIfName() {
 | 
				
			||||||
		return ifName;
 | 
							return ifName;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	public void setIfName(String ifName) {
 | 
						public void setIfName(String ifName) {
 | 
				
			||||||
		this.ifName = ifName;
 | 
							this.ifName = ifName;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	public String getDhcpd() {
 | 
					
 | 
				
			||||||
 | 
						public Map<String, String> getDhcpd() {
 | 
				
			||||||
		return dhcpd;
 | 
							return dhcpd;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	public void setDhcpd(String dhcpd) {
 | 
					
 | 
				
			||||||
 | 
						public void setDhcpd(Map<String, String> dhcpd) {
 | 
				
			||||||
		this.dhcpd = dhcpd;
 | 
							this.dhcpd = dhcpd;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	public String getUnpnpMode() {
 | 
						public String getUnpnpMode() {
 | 
				
			||||||
		return unpnpMode;
 | 
							return unpnpMode;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	public void setUnpnpMode(String unpnpMode) {
 | 
						public void setUnpnpMode(String unpnpMode) {
 | 
				
			||||||
		this.unpnpMode = unpnpMode;
 | 
							this.unpnpMode = unpnpMode;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	public String getIfType() {
 | 
						public String getIfType() {
 | 
				
			||||||
		return ifType;
 | 
							return ifType;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	public void setIfType(String ifType) {
 | 
						public void setIfType(String ifType) {
 | 
				
			||||||
		this.ifType = ifType;
 | 
							this.ifType = ifType;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	public String getSoftwdsMacAddr() {
 | 
						public String getSoftwdsMacAddr() {
 | 
				
			||||||
		return softwdsMacAddr;
 | 
							return softwdsMacAddr;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	public void setSoftwdsMacAddr(String softwdsMacAddr) {
 | 
						public void setSoftwdsMacAddr(String softwdsMacAddr) {
 | 
				
			||||||
		this.softwdsMacAddr = softwdsMacAddr;
 | 
							this.softwdsMacAddr = softwdsMacAddr;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	public boolean isEnabled() {
 | 
						public boolean isEnabled() {
 | 
				
			||||||
		return enabled;
 | 
							return enabled;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	public void setEnabled(boolean enabled) {
 | 
						public void setEnabled(boolean enabled) {
 | 
				
			||||||
		this.enabled = enabled;
 | 
							this.enabled = enabled;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	public boolean isSofwdsWrap() {
 | 
						public boolean isSofwdsWrap() {
 | 
				
			||||||
		return sofwdsWrap;
 | 
							return sofwdsWrap;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	public void setSofwdsWrap(boolean sofwdsWrap) {
 | 
						public void setSofwdsWrap(boolean sofwdsWrap) {
 | 
				
			||||||
		this.sofwdsWrap = sofwdsWrap;
 | 
							this.sofwdsWrap = sofwdsWrap;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	public int getVlanId() {
 | 
						public int getVlanId() {
 | 
				
			||||||
		return vlanId;
 | 
							return vlanId;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	public void setVlanId(int vlanId) {
 | 
						public void setVlanId(int vlanId) {
 | 
				
			||||||
		this.vlanId = vlanId;
 | 
							this.vlanId = vlanId;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	public String getNetmask() {
 | 
						public String getNetmask() {
 | 
				
			||||||
		return netmask;
 | 
							return netmask;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	public void setNetmask(String netmask) {
 | 
						public void setNetmask(String netmask) {
 | 
				
			||||||
		this.netmask = netmask;
 | 
							this.netmask = netmask;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	public boolean isNat() {
 | 
						public boolean isNat() {
 | 
				
			||||||
		return nat;
 | 
							return nat;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	public void setNat(boolean nat) {
 | 
						public void setNat(boolean nat) {
 | 
				
			||||||
		this.nat = nat;
 | 
							this.nat = nat;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	public String getGreRemoteInetAddr() {
 | 
						public String getGreRemoteInetAddr() {
 | 
				
			||||||
		return greRemoteInetAddr;
 | 
							return greRemoteInetAddr;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	public void setGreRemoteInetAddr(String greRemoteInetAddr) {
 | 
						public void setGreRemoteInetAddr(String greRemoteInetAddr) {
 | 
				
			||||||
		this.greRemoteInetAddr = greRemoteInetAddr;
 | 
							this.greRemoteInetAddr = greRemoteInetAddr;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	public String getIfUuid() {
 | 
						public String getIfUuid() {
 | 
				
			||||||
		return ifUuid;
 | 
							return ifUuid;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	public void setIfUuid(String ifUuid) {
 | 
						public void setIfUuid(String ifUuid) {
 | 
				
			||||||
		this.ifUuid = ifUuid;
 | 
							this.ifUuid = ifUuid;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	public String getInetAddr() {
 | 
						public String getInetAddr() {
 | 
				
			||||||
		return inetAddr;
 | 
							return inetAddr;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	public void setInetAddr(String inetAddr) {
 | 
						public void setInetAddr(String inetAddr) {
 | 
				
			||||||
		this.inetAddr = inetAddr;
 | 
							this.inetAddr = inetAddr;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	public String getHwAddr() {
 | 
						public String getHwAddr() {
 | 
				
			||||||
		return hwAddr;
 | 
							return hwAddr;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	public void setHwAddr(String hwAddr) {
 | 
						public void setHwAddr(String hwAddr) {
 | 
				
			||||||
		this.hwAddr = hwAddr;
 | 
							this.hwAddr = hwAddr;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	public int getMtw() {
 | 
						public int getMtw() {
 | 
				
			||||||
		return mtw;
 | 
							return mtw;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	public void setMtw(int mtw) {
 | 
						public void setMtw(int mtw) {
 | 
				
			||||||
		this.mtw = mtw;
 | 
							this.mtw = mtw;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	public boolean isNetwork() {
 | 
						public boolean isNetwork() {
 | 
				
			||||||
		return network;
 | 
							return network;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	public void setNetwork(boolean network) {
 | 
						public void setNetwork(boolean network) {
 | 
				
			||||||
		this.network = network;
 | 
							this.network = network;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	public Map<String, String> getDns() {
 | 
						public Map<String, String> getDns() {
 | 
				
			||||||
		return dns;
 | 
							return dns;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	public void setDns(Map<String, String> dns) {
 | 
						public void setDns(Map<String, String> dns) {
 | 
				
			||||||
		this.dns = dns;
 | 
							this.dns = dns;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	public String getParentIfName() {
 | 
						public String getParentIfName() {
 | 
				
			||||||
		return parentIfName;
 | 
							return parentIfName;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	public void setParentIfName(String parentIfName) {
 | 
						public void setParentIfName(String parentIfName) {
 | 
				
			||||||
		this.parentIfName = parentIfName;
 | 
							this.parentIfName = parentIfName;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	public String getGreIfName() {
 | 
						public String getGreIfName() {
 | 
				
			||||||
		return greIfName;
 | 
							return greIfName;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	public void setGreIfName(String greIfName) {
 | 
						public void setGreIfName(String greIfName) {
 | 
				
			||||||
		this.greIfName = greIfName;
 | 
							this.greIfName = greIfName;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	public String getBroadcast() {
 | 
						public String getBroadcast() {
 | 
				
			||||||
		return broadcast;
 | 
							return broadcast;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	public void setBroadcast(String broadcast) {
 | 
						public void setBroadcast(String broadcast) {
 | 
				
			||||||
		this.broadcast = broadcast;
 | 
							this.broadcast = broadcast;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	public Map<String, String> getDhcpc() {
 | 
						public Map<String, String> getDhcpc() {
 | 
				
			||||||
		return dhcpc;
 | 
							return dhcpc;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	public void setDhcpc(Map<String, String> dhcpc) {
 | 
						public void setDhcpc(Map<String, String> dhcpc) {
 | 
				
			||||||
		this.dhcpc = dhcpc;
 | 
							this.dhcpc = dhcpc;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	public String getGateway() {
 | 
						public String getGateway() {
 | 
				
			||||||
		return gateway;
 | 
							return gateway;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	public void setGateway(String gateway) {
 | 
						public void setGateway(String gateway) {
 | 
				
			||||||
		this.gateway = gateway;
 | 
							this.gateway = gateway;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	public String getIpAssignScheme() {
 | 
						public String getIpAssignScheme() {
 | 
				
			||||||
		return ipAssignScheme;
 | 
							return ipAssignScheme;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	public void setIpAssignScheme(String ipAssignScheme) {
 | 
						public void setIpAssignScheme(String ipAssignScheme) {
 | 
				
			||||||
		this.ipAssignScheme = ipAssignScheme;
 | 
							this.ipAssignScheme = ipAssignScheme;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	public String getInetConfig() {
 | 
						public String getInetConfig() {
 | 
				
			||||||
		return inetConfig;
 | 
							return inetConfig;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	public void setInetConfig(String inetConfig) {
 | 
						public void setInetConfig(String inetConfig) {
 | 
				
			||||||
		this.inetConfig = inetConfig;
 | 
							this.inetConfig = inetConfig;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	public static long getSerialversionuid() {
 | 
						public static long getSerialversionuid() {
 | 
				
			||||||
		return serialVersionUID;
 | 
							return serialVersionUID;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	public Uuid get_uuid() {
 | 
						public Uuid get_uuid() {
 | 
				
			||||||
		return _uuid;
 | 
							return _uuid;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	public void set_uuid(Uuid _uuid) {
 | 
						public void set_uuid(Uuid _uuid) {
 | 
				
			||||||
		this._uuid = _uuid;
 | 
							this._uuid = _uuid;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	public Uuid getVersion() {
 | 
						public Uuid getVersion() {
 | 
				
			||||||
		return version;
 | 
							return version;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	public void setVersion(Uuid version) {
 | 
						public void setVersion(Uuid version) {
 | 
				
			||||||
		this.version = version;
 | 
							this.version = version;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	
 | 
					
 | 
				
			||||||
	
 | 
						public void setGreLocalInetAddr(String greLocalInetAddr) {
 | 
				
			||||||
 | 
							this.greLocalInetAddr = greLocalInetAddr;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						public String getGreLocalInetAddr() {
 | 
				
			||||||
 | 
							return greLocalInetAddr;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						public void setGreRemoteMacAddr(String greRemoteMacAddr) {
 | 
				
			||||||
 | 
							this.greRemoteMacAddr = greRemoteMacAddr;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						public String getGreRemoteMacAddr(){
 | 
				
			||||||
 | 
							return this.greRemoteMacAddr;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						@Override
 | 
				
			||||||
 | 
						public int hashCode() {
 | 
				
			||||||
 | 
							final int prime = 31;
 | 
				
			||||||
 | 
							int result = 1;
 | 
				
			||||||
 | 
							result = prime * result + ((_uuid == null) ? 0 : _uuid.hashCode());
 | 
				
			||||||
 | 
							result = prime * result + ((broadcast == null) ? 0 : broadcast.hashCode());
 | 
				
			||||||
 | 
							result = prime * result + ((dhcpc == null) ? 0 : dhcpc.hashCode());
 | 
				
			||||||
 | 
							result = prime * result + ((dhcpd == null) ? 0 : dhcpd.hashCode());
 | 
				
			||||||
 | 
							result = prime * result + ((dns == null) ? 0 : dns.hashCode());
 | 
				
			||||||
 | 
							result = prime * result + (enabled ? 1231 : 1237);
 | 
				
			||||||
 | 
							result = prime * result + ((gateway == null) ? 0 : gateway.hashCode());
 | 
				
			||||||
 | 
							result = prime * result + ((greIfName == null) ? 0 : greIfName.hashCode());
 | 
				
			||||||
 | 
							result = prime * result + ((greLocalInetAddr == null) ? 0 : greLocalInetAddr.hashCode());
 | 
				
			||||||
 | 
							result = prime * result + ((greRemoteInetAddr == null) ? 0 : greRemoteInetAddr.hashCode());
 | 
				
			||||||
 | 
							result = prime * result + ((hwAddr == null) ? 0 : hwAddr.hashCode());
 | 
				
			||||||
 | 
							result = prime * result + ((ifName == null) ? 0 : ifName.hashCode());
 | 
				
			||||||
 | 
							result = prime * result + ((ifType == null) ? 0 : ifType.hashCode());
 | 
				
			||||||
 | 
							result = prime * result + ((ifUuid == null) ? 0 : ifUuid.hashCode());
 | 
				
			||||||
 | 
							result = prime * result + ((inetAddr == null) ? 0 : inetAddr.hashCode());
 | 
				
			||||||
 | 
							result = prime * result + ((inetConfig == null) ? 0 : inetConfig.hashCode());
 | 
				
			||||||
 | 
							result = prime * result + ((ipAssignScheme == null) ? 0 : ipAssignScheme.hashCode());
 | 
				
			||||||
 | 
							result = prime * result + mtw;
 | 
				
			||||||
 | 
							result = prime * result + (nat ? 1231 : 1237);
 | 
				
			||||||
 | 
							result = prime * result + ((netmask == null) ? 0 : netmask.hashCode());
 | 
				
			||||||
 | 
							result = prime * result + (network ? 1231 : 1237);
 | 
				
			||||||
 | 
							result = prime * result + ((parentIfName == null) ? 0 : parentIfName.hashCode());
 | 
				
			||||||
 | 
							result = prime * result + ((greRemoteMacAddr == null) ? 0 : greRemoteMacAddr.hashCode());
 | 
				
			||||||
 | 
							result = prime * result + ((softwdsMacAddr == null) ? 0 : softwdsMacAddr.hashCode());
 | 
				
			||||||
 | 
							result = prime * result + (sofwdsWrap ? 1231 : 1237);
 | 
				
			||||||
 | 
							result = prime * result + ((unpnpMode == null) ? 0 : unpnpMode.hashCode());
 | 
				
			||||||
 | 
							result = prime * result + ((version == null) ? 0 : version.hashCode());
 | 
				
			||||||
 | 
							result = prime * result + vlanId;
 | 
				
			||||||
 | 
							return result;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						@Override
 | 
				
			||||||
 | 
						public boolean equals(Object obj) {
 | 
				
			||||||
 | 
							if (this == obj)
 | 
				
			||||||
 | 
								return true;
 | 
				
			||||||
 | 
							if (obj == null)
 | 
				
			||||||
 | 
								return false;
 | 
				
			||||||
 | 
							if (getClass() != obj.getClass())
 | 
				
			||||||
 | 
								return false;
 | 
				
			||||||
 | 
							OpensyncAPInetState other = (OpensyncAPInetState) obj;
 | 
				
			||||||
 | 
							if (_uuid == null) {
 | 
				
			||||||
 | 
								if (other._uuid != null)
 | 
				
			||||||
 | 
									return false;
 | 
				
			||||||
 | 
							} else if (!_uuid.equals(other._uuid))
 | 
				
			||||||
 | 
								return false;
 | 
				
			||||||
 | 
							if (broadcast == null) {
 | 
				
			||||||
 | 
								if (other.broadcast != null)
 | 
				
			||||||
 | 
									return false;
 | 
				
			||||||
 | 
							} else if (!broadcast.equals(other.broadcast))
 | 
				
			||||||
 | 
								return false;
 | 
				
			||||||
 | 
							if (dhcpc == null) {
 | 
				
			||||||
 | 
								if (other.dhcpc != null)
 | 
				
			||||||
 | 
									return false;
 | 
				
			||||||
 | 
							} else if (!dhcpc.equals(other.dhcpc))
 | 
				
			||||||
 | 
								return false;
 | 
				
			||||||
 | 
							if (dhcpd == null) {
 | 
				
			||||||
 | 
								if (other.dhcpd != null)
 | 
				
			||||||
 | 
									return false;
 | 
				
			||||||
 | 
							} else if (!dhcpd.equals(other.dhcpd))
 | 
				
			||||||
 | 
								return false;
 | 
				
			||||||
 | 
							if (dns == null) {
 | 
				
			||||||
 | 
								if (other.dns != null)
 | 
				
			||||||
 | 
									return false;
 | 
				
			||||||
 | 
							} else if (!dns.equals(other.dns))
 | 
				
			||||||
 | 
								return false;
 | 
				
			||||||
 | 
							if (enabled != other.enabled)
 | 
				
			||||||
 | 
								return false;
 | 
				
			||||||
 | 
							if (gateway == null) {
 | 
				
			||||||
 | 
								if (other.gateway != null)
 | 
				
			||||||
 | 
									return false;
 | 
				
			||||||
 | 
							} else if (!gateway.equals(other.gateway))
 | 
				
			||||||
 | 
								return false;
 | 
				
			||||||
 | 
							if (greIfName == null) {
 | 
				
			||||||
 | 
								if (other.greIfName != null)
 | 
				
			||||||
 | 
									return false;
 | 
				
			||||||
 | 
							} else if (!greIfName.equals(other.greIfName))
 | 
				
			||||||
 | 
								return false;
 | 
				
			||||||
 | 
							if (greLocalInetAddr == null) {
 | 
				
			||||||
 | 
								if (other.greLocalInetAddr != null)
 | 
				
			||||||
 | 
									return false;
 | 
				
			||||||
 | 
							} else if (!greLocalInetAddr.equals(other.greLocalInetAddr))
 | 
				
			||||||
 | 
								return false;
 | 
				
			||||||
 | 
							if (greRemoteInetAddr == null) {
 | 
				
			||||||
 | 
								if (other.greRemoteInetAddr != null)
 | 
				
			||||||
 | 
									return false;
 | 
				
			||||||
 | 
							} else if (!greRemoteInetAddr.equals(other.greRemoteInetAddr))
 | 
				
			||||||
 | 
								return false;
 | 
				
			||||||
 | 
							if (hwAddr == null) {
 | 
				
			||||||
 | 
								if (other.hwAddr != null)
 | 
				
			||||||
 | 
									return false;
 | 
				
			||||||
 | 
							} else if (!hwAddr.equals(other.hwAddr))
 | 
				
			||||||
 | 
								return false;
 | 
				
			||||||
 | 
							if (ifName == null) {
 | 
				
			||||||
 | 
								if (other.ifName != null)
 | 
				
			||||||
 | 
									return false;
 | 
				
			||||||
 | 
							} else if (!ifName.equals(other.ifName))
 | 
				
			||||||
 | 
								return false;
 | 
				
			||||||
 | 
							if (ifType == null) {
 | 
				
			||||||
 | 
								if (other.ifType != null)
 | 
				
			||||||
 | 
									return false;
 | 
				
			||||||
 | 
							} else if (!ifType.equals(other.ifType))
 | 
				
			||||||
 | 
								return false;
 | 
				
			||||||
 | 
							if (ifUuid == null) {
 | 
				
			||||||
 | 
								if (other.ifUuid != null)
 | 
				
			||||||
 | 
									return false;
 | 
				
			||||||
 | 
							} else if (!ifUuid.equals(other.ifUuid))
 | 
				
			||||||
 | 
								return false;
 | 
				
			||||||
 | 
							if (inetAddr == null) {
 | 
				
			||||||
 | 
								if (other.inetAddr != null)
 | 
				
			||||||
 | 
									return false;
 | 
				
			||||||
 | 
							} else if (!inetAddr.equals(other.inetAddr))
 | 
				
			||||||
 | 
								return false;
 | 
				
			||||||
 | 
							if (inetConfig == null) {
 | 
				
			||||||
 | 
								if (other.inetConfig != null)
 | 
				
			||||||
 | 
									return false;
 | 
				
			||||||
 | 
							} else if (!inetConfig.equals(other.inetConfig))
 | 
				
			||||||
 | 
								return false;
 | 
				
			||||||
 | 
							if (ipAssignScheme == null) {
 | 
				
			||||||
 | 
								if (other.ipAssignScheme != null)
 | 
				
			||||||
 | 
									return false;
 | 
				
			||||||
 | 
							} else if (!ipAssignScheme.equals(other.ipAssignScheme))
 | 
				
			||||||
 | 
								return false;
 | 
				
			||||||
 | 
							if (mtw != other.mtw)
 | 
				
			||||||
 | 
								return false;
 | 
				
			||||||
 | 
							if (nat != other.nat)
 | 
				
			||||||
 | 
								return false;
 | 
				
			||||||
 | 
							if (netmask == null) {
 | 
				
			||||||
 | 
								if (other.netmask != null)
 | 
				
			||||||
 | 
									return false;
 | 
				
			||||||
 | 
							} else if (!netmask.equals(other.netmask))
 | 
				
			||||||
 | 
								return false;
 | 
				
			||||||
 | 
							if (network != other.network)
 | 
				
			||||||
 | 
								return false;
 | 
				
			||||||
 | 
							if (parentIfName == null) {
 | 
				
			||||||
 | 
								if (other.parentIfName != null)
 | 
				
			||||||
 | 
									return false;
 | 
				
			||||||
 | 
							} else if (!parentIfName.equals(other.parentIfName))
 | 
				
			||||||
 | 
								return false;
 | 
				
			||||||
 | 
							if (greRemoteMacAddr == null) {
 | 
				
			||||||
 | 
								if (other.greRemoteMacAddr != null)
 | 
				
			||||||
 | 
									return false;
 | 
				
			||||||
 | 
							} else if (!greRemoteMacAddr.equals(other.greRemoteMacAddr))
 | 
				
			||||||
 | 
								return false;
 | 
				
			||||||
 | 
							if (softwdsMacAddr == null) {
 | 
				
			||||||
 | 
								if (other.softwdsMacAddr != null)
 | 
				
			||||||
 | 
									return false;
 | 
				
			||||||
 | 
							} else if (!softwdsMacAddr.equals(other.softwdsMacAddr))
 | 
				
			||||||
 | 
								return false;
 | 
				
			||||||
 | 
							if (sofwdsWrap != other.sofwdsWrap)
 | 
				
			||||||
 | 
								return false;
 | 
				
			||||||
 | 
							if (unpnpMode == null) {
 | 
				
			||||||
 | 
								if (other.unpnpMode != null)
 | 
				
			||||||
 | 
									return false;
 | 
				
			||||||
 | 
							} else if (!unpnpMode.equals(other.unpnpMode))
 | 
				
			||||||
 | 
								return false;
 | 
				
			||||||
 | 
							if (version == null) {
 | 
				
			||||||
 | 
								if (other.version != null)
 | 
				
			||||||
 | 
									return false;
 | 
				
			||||||
 | 
							} else if (!version.equals(other.version))
 | 
				
			||||||
 | 
								return false;
 | 
				
			||||||
 | 
							if (vlanId != other.vlanId)
 | 
				
			||||||
 | 
								return false;
 | 
				
			||||||
 | 
							return true;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						@Override
 | 
				
			||||||
 | 
						public String toString() {
 | 
				
			||||||
 | 
							return "OpensyncAPInetState [ifName=" + ifName + ", dhcpd=" + dhcpd + ", unpnpMode=" + unpnpMode + ", ifType="
 | 
				
			||||||
 | 
									+ ifType + ", softwdsMacAddr=" + softwdsMacAddr + ", enabled=" + enabled + ", sofwdsWrap=" + sofwdsWrap
 | 
				
			||||||
 | 
									+ ", vlanId=" + vlanId + ", netmask=" + netmask + ", nat=" + nat + ", greRemoteInetAddr="
 | 
				
			||||||
 | 
									+ greRemoteInetAddr + ", ifUuid=" + ifUuid + ", inetAddr=" + inetAddr + ", hwAddr=" + hwAddr + ", mtw="
 | 
				
			||||||
 | 
									+ mtw + ", network=" + network + ", dns=" + dns + ", parentIfName=" + parentIfName + ", greIfName="
 | 
				
			||||||
 | 
									+ greIfName + ", broadcast=" + broadcast + ", dhcpc=" + dhcpc + ", gateway=" + gateway
 | 
				
			||||||
 | 
									+ ", ipAssignScheme=" + ipAssignScheme + ", inetConfig=" + inetConfig + ", _uuid=" + _uuid
 | 
				
			||||||
 | 
									+ ", version=" + version + ", greLocalInetAddr=" + greLocalInetAddr + ", greRemoteMacAddr="
 | 
				
			||||||
 | 
									+ greRemoteMacAddr + "]";
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -3,6 +3,10 @@
 | 
				
			|||||||
 */
 | 
					 */
 | 
				
			||||||
package com.telecominfraproject.wlan.opensync.external.integration.models;
 | 
					package com.telecominfraproject.wlan.opensync.external.integration.models;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import java.util.ArrayList;
 | 
				
			||||||
 | 
					import java.util.HashMap;
 | 
				
			||||||
 | 
					import java.util.HashSet;
 | 
				
			||||||
 | 
					import java.util.List;
 | 
				
			||||||
import java.util.Map;
 | 
					import java.util.Map;
 | 
				
			||||||
import java.util.Set;
 | 
					import java.util.Set;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -44,6 +48,17 @@ public class OpensyncAPRadioState extends BaseJsonModel {
 | 
				
			|||||||
    public Map<String, String> hwParams;
 | 
					    public Map<String, String> hwParams;
 | 
				
			||||||
    public RadioType freqBand;
 | 
					    public RadioType freqBand;
 | 
				
			||||||
    public int thermalIntegration;
 | 
					    public int thermalIntegration;
 | 
				
			||||||
 | 
					    public Set<Uuid> vifStates;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public OpensyncAPRadioState() {
 | 
				
			||||||
 | 
					        super();
 | 
				
			||||||
 | 
					        allowedChannels = new HashSet<>();
 | 
				
			||||||
 | 
					        hwConfig = new HashMap<>();
 | 
				
			||||||
 | 
					        channels = new HashMap<>();
 | 
				
			||||||
 | 
					        hwParams = new HashMap<>();
 | 
				
			||||||
 | 
					        vifStates = new HashSet<>();
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public String channelMode;
 | 
					    public String channelMode;
 | 
				
			||||||
    public Uuid _uuid;
 | 
					    public Uuid _uuid;
 | 
				
			||||||
    public Uuid version;
 | 
					    public Uuid version;
 | 
				
			||||||
@@ -88,6 +103,14 @@ public class OpensyncAPRadioState extends BaseJsonModel {
 | 
				
			|||||||
        this.mac = mac;
 | 
					        this.mac = mac;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public Set<Uuid> getVifStates() {
 | 
				
			||||||
 | 
					        return vifStates;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public void setVifStates(Set<Uuid> vifStates) {
 | 
				
			||||||
 | 
					        this.vifStates = vifStates;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public int getBcnInt() {
 | 
					    public int getBcnInt() {
 | 
				
			||||||
        return bcnInt;
 | 
					        return bcnInt;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,8 +1,10 @@
 | 
				
			|||||||
package com.telecominfraproject.wlan.opensync.external.integration.models;
 | 
					package com.telecominfraproject.wlan.opensync.external.integration.models;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import java.util.ArrayList;
 | 
				
			||||||
 | 
					import java.util.HashMap;
 | 
				
			||||||
 | 
					import java.util.List;
 | 
				
			||||||
import java.util.Map;
 | 
					import java.util.Map;
 | 
				
			||||||
import java.util.Set;
 | 
					import java.util.Set;
 | 
				
			||||||
import java.util.UUID;
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
import com.telecominfraproject.wlan.core.model.json.BaseJsonModel;
 | 
					import com.telecominfraproject.wlan.core.model.json.BaseJsonModel;
 | 
				
			||||||
import com.vmware.ovsdb.protocol.operation.notation.Uuid;
 | 
					import com.vmware.ovsdb.protocol.operation.notation.Uuid;
 | 
				
			||||||
@@ -22,7 +24,8 @@ public class OpensyncAPVIFState extends BaseJsonModel {
 | 
				
			|||||||
    public String ssid;
 | 
					    public String ssid;
 | 
				
			||||||
    public Map<String, String> security;
 | 
					    public Map<String, String> security;
 | 
				
			||||||
    public String macList;
 | 
					    public String macList;
 | 
				
			||||||
    public Set<Uuid> associatedClients;
 | 
					    public List<Uuid> associatedClients;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public boolean enabled;
 | 
					    public boolean enabled;
 | 
				
			||||||
    public int vlanId;
 | 
					    public int vlanId;
 | 
				
			||||||
    public int btm;
 | 
					    public int btm;
 | 
				
			||||||
@@ -43,6 +46,13 @@ public class OpensyncAPVIFState extends BaseJsonModel {
 | 
				
			|||||||
        return ifName;
 | 
					        return ifName;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public OpensyncAPVIFState() {
 | 
				
			||||||
 | 
					        super();
 | 
				
			||||||
 | 
					        security = new HashMap<>();
 | 
				
			||||||
 | 
					        associatedClients = new ArrayList<>();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public void setIfName(String ifName) {
 | 
					    public void setIfName(String ifName) {
 | 
				
			||||||
        this.ifName = ifName;
 | 
					        this.ifName = ifName;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
@@ -127,11 +137,11 @@ public class OpensyncAPVIFState extends BaseJsonModel {
 | 
				
			|||||||
        this.macList = macList;
 | 
					        this.macList = macList;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public Set<Uuid> getAssociatedClients() {
 | 
					    public List<Uuid> getAssociatedClients() {
 | 
				
			||||||
        return associatedClients;
 | 
					        return associatedClients;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public void setAssociatedClients(Set<Uuid> list) {
 | 
					    public void setAssociatedClients(List<Uuid> list) {
 | 
				
			||||||
        this.associatedClients = list;
 | 
					        this.associatedClients = list;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -258,5 +268,4 @@ public class OpensyncAPVIFState extends BaseJsonModel {
 | 
				
			|||||||
    public void setVersion(Uuid version) {
 | 
					    public void setVersion(Uuid version) {
 | 
				
			||||||
        this.version = version;
 | 
					        this.version = version;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -3,8 +3,8 @@
 | 
				
			|||||||
 */
 | 
					 */
 | 
				
			||||||
package com.telecominfraproject.wlan.opensync.external.integration.models;
 | 
					package com.telecominfraproject.wlan.opensync.external.integration.models;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import java.util.HashMap;
 | 
				
			||||||
import java.util.Map;
 | 
					import java.util.Map;
 | 
				
			||||||
import java.util.UUID;
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
import com.telecominfraproject.wlan.core.model.json.BaseJsonModel;
 | 
					import com.telecominfraproject.wlan.core.model.json.BaseJsonModel;
 | 
				
			||||||
import com.vmware.ovsdb.protocol.operation.notation.Uuid;
 | 
					import com.vmware.ovsdb.protocol.operation.notation.Uuid;
 | 
				
			||||||
@@ -43,6 +43,15 @@ public class OpensyncAWLANNode extends BaseJsonModel {
 | 
				
			|||||||
    public Uuid _uuid;
 | 
					    public Uuid _uuid;
 | 
				
			||||||
    public Uuid version;
 | 
					    public Uuid version;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public OpensyncAWLANNode() {
 | 
				
			||||||
 | 
					        super();
 | 
				
			||||||
 | 
					        mqttSettings = new HashMap<>();
 | 
				
			||||||
 | 
					        versionMatrix = new HashMap<>();
 | 
				
			||||||
 | 
					        ledConfig = new HashMap<>();
 | 
				
			||||||
 | 
					        mqttHeaders = new HashMap<>();
 | 
				
			||||||
 | 
					        mqttTopics = new HashMap<>();
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public Map<Object, Object> getMqttSettings() {
 | 
					    public Map<Object, Object> getMqttSettings() {
 | 
				
			||||||
        return mqttSettings;
 | 
					        return mqttSettings;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -3,8 +3,8 @@
 | 
				
			|||||||
 */
 | 
					 */
 | 
				
			||||||
package com.telecominfraproject.wlan.opensync.external.integration.models;
 | 
					package com.telecominfraproject.wlan.opensync.external.integration.models;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import java.util.HashSet;
 | 
				
			||||||
import java.util.Set;
 | 
					import java.util.Set;
 | 
				
			||||||
import java.util.UUID;
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
import com.telecominfraproject.wlan.core.model.json.BaseJsonModel;
 | 
					import com.telecominfraproject.wlan.core.model.json.BaseJsonModel;
 | 
				
			||||||
import com.vmware.ovsdb.protocol.operation.notation.Uuid;
 | 
					import com.vmware.ovsdb.protocol.operation.notation.Uuid;
 | 
				
			||||||
@@ -27,6 +27,11 @@ public class OpensyncWifiAssociatedClients extends BaseJsonModel {
 | 
				
			|||||||
    public Uuid _uuid;
 | 
					    public Uuid _uuid;
 | 
				
			||||||
    public Uuid version;
 | 
					    public Uuid version;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public OpensyncWifiAssociatedClients() {
 | 
				
			||||||
 | 
					        super();
 | 
				
			||||||
 | 
					        capabilities = new HashSet<>();
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public String getKeyId() {
 | 
					    public String getKeyId() {
 | 
				
			||||||
        return keyId;
 | 
					        return keyId;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,7 +1,10 @@
 | 
				
			|||||||
package com.telecominfraproject.wlan.opensync.external.integration;
 | 
					package com.telecominfraproject.wlan.opensync.external.integration;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import java.io.File;
 | 
				
			||||||
import java.io.IOException;
 | 
					import java.io.IOException;
 | 
				
			||||||
 | 
					import java.util.HashSet;
 | 
				
			||||||
import java.util.List;
 | 
					import java.util.List;
 | 
				
			||||||
 | 
					import java.util.Map;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import javax.annotation.PostConstruct;
 | 
					import javax.annotation.PostConstruct;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -15,6 +18,7 @@ import com.telecominfraproject.wlan.equipment.models.Equipment;
 | 
				
			|||||||
import com.telecominfraproject.wlan.location.models.Location;
 | 
					import com.telecominfraproject.wlan.location.models.Location;
 | 
				
			||||||
import com.telecominfraproject.wlan.opensync.external.integration.models.ConnectNodeInfo;
 | 
					import com.telecominfraproject.wlan.opensync.external.integration.models.ConnectNodeInfo;
 | 
				
			||||||
import com.telecominfraproject.wlan.opensync.external.integration.models.OpensyncAPConfig;
 | 
					import com.telecominfraproject.wlan.opensync.external.integration.models.OpensyncAPConfig;
 | 
				
			||||||
 | 
					import com.telecominfraproject.wlan.opensync.external.integration.models.OpensyncAPHotspot20Config;
 | 
				
			||||||
import com.telecominfraproject.wlan.opensync.external.integration.models.OpensyncAPInetState;
 | 
					import com.telecominfraproject.wlan.opensync.external.integration.models.OpensyncAPInetState;
 | 
				
			||||||
import com.telecominfraproject.wlan.opensync.external.integration.models.OpensyncAPRadioState;
 | 
					import com.telecominfraproject.wlan.opensync.external.integration.models.OpensyncAPRadioState;
 | 
				
			||||||
import com.telecominfraproject.wlan.opensync.external.integration.models.OpensyncAPVIFState;
 | 
					import com.telecominfraproject.wlan.opensync.external.integration.models.OpensyncAPVIFState;
 | 
				
			||||||
@@ -29,139 +33,246 @@ import wc.stats.IpDnsTelemetry.WCStatsReport;
 | 
				
			|||||||
@Component
 | 
					@Component
 | 
				
			||||||
public class OpensyncExternalIntegrationSimple implements OpensyncExternalIntegrationInterface {
 | 
					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}")
 | 
					    @Value("${tip.wlan.ovsdb.customerEquipmentFileName:/app/config/EquipmentExample.json}")
 | 
				
			||||||
	private String customerEquipmentFileName;
 | 
					    private String customerEquipmentFileName;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	@Value("${connectus.ovsdb.apProfileFileName:/app/config/ProfileAPExample.json}")
 | 
					    @Value("${tip.wlan.ovsdb.apProfileFileName:/app/config/ProfileAPExample.json}")
 | 
				
			||||||
	private String apProfileFileName;
 | 
					    private String apProfileFileName;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	@Value("${connectus.ovsdb.ssidProfileFileName:/app/config/ProfileSsid.json}")
 | 
					    @Value("${tip.wlan.ovsdb.rfProfileFileName:/app/config/ProfileRf.json}")
 | 
				
			||||||
	private String ssidProfileFileName;
 | 
					    private String rfProfileFileName;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	@Value("${connectus.ovsdb.radiusProfileFileName:/app/config/ProfileRadius.json}")
 | 
					    @Value("${tip.wlan.ovsdb.ssidProfileFileName:/app/config/ProfileSsid.json}")
 | 
				
			||||||
	private String radiusProfileFileName;
 | 
					    private String ssidProfileFileName;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	@Value("${connectus.ovsdb.locationFileName:/app/config/LocationBuildingExample.json}")
 | 
					    @Value("${tip.wlan.ovsdb.metricsProfileFileName:/app/config/ProfileMetrics.json}")
 | 
				
			||||||
	private String locationFileName;
 | 
					    private String metricsProfileFileName;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	private String serialNumber = "";
 | 
					    @Value("${tip.wlan.ovsdb.venueProfileFileName:/app/config/ProfileVenue.json}")
 | 
				
			||||||
 | 
					    private String venueProfileFileName;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	@PostConstruct
 | 
					    @Value("${tip.wlan.ovsdb.operatorProfileFileName:/app/config/ProfileOperator.json}")
 | 
				
			||||||
	private void postCreate() {
 | 
					    private String operatorProfileFileName;
 | 
				
			||||||
		LOG.info("Using Static integration");
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
	public void apConnected(String apId, ConnectNodeInfo connectNodeInfo) {
 | 
					    @Value("${tip.wlan.ovsdb.hotspot20ProfileFileName:/app/config/ProfileHotspot20.json}")
 | 
				
			||||||
		serialNumber = connectNodeInfo.serialNumber;
 | 
					    private String hotspot20ProfileFileName;
 | 
				
			||||||
		LOG.info("AP {} got connected to the gateway", apId);
 | 
					 | 
				
			||||||
		LOG.info("ConnectNodeInfo {}", connectNodeInfo);
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
	}
 | 
					    @Value("${tip.wlan.ovsdb.idProviderProfileFileName:/app/config/ProfileIdProvider.json}")
 | 
				
			||||||
 | 
					    private String idProviderProfileFileName;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	public void apDisconnected(String apId) {
 | 
					    @Value("${tip.wlan.ovsdb.radiusProfileFileName:/app/config/ProfileRadius.json}")
 | 
				
			||||||
		LOG.info("AP {} got disconnected from the gateway", apId);
 | 
					    private String radiusProfileFileName;
 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
	public OpensyncAPConfig getApConfig(String apId) {
 | 
					    @Value("${tip.wlan.ovsdb.captiveProfileFileName:/app/config/ProfileCaptive.json}")
 | 
				
			||||||
		LOG.info("Retrieving config for AP {}", apId);
 | 
					    private String captiveProfileFileName;
 | 
				
			||||||
		OpensyncAPConfig ret = null;
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
		try {
 | 
					    @Value("${tip.wlan.ovsdb.bonjourProfileFileName:/app/config/ProfileBonjour.json}")
 | 
				
			||||||
 | 
					    private String bonjourProfileFileName;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			Equipment equipment = Equipment.fromFile(customerEquipmentFileName, Equipment.class);
 | 
					    @Value("${tip.wlan.ovsdb.locationFileName:/app/config/LocationBuildingExample.json}")
 | 
				
			||||||
			equipment.setInventoryId(apId);
 | 
					    private String locationFileName;
 | 
				
			||||||
			equipment.setName(apId);
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
			equipment.setSerial(serialNumber);
 | 
					    private String serialNumber = "";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			com.telecominfraproject.wlan.profile.models.Profile apProfile = com.telecominfraproject.wlan.profile.models.Profile
 | 
					    @PostConstruct
 | 
				
			||||||
					.fromFile(apProfileFileName, com.telecominfraproject.wlan.profile.models.Profile.class);
 | 
					    private void postCreate() {
 | 
				
			||||||
 | 
					        LOG.info("Using Static integration");
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			List<com.telecominfraproject.wlan.profile.models.Profile> ssidProfiles = com.telecominfraproject.wlan.profile.models.Profile
 | 
					    public void apConnected(String apId, ConnectNodeInfo connectNodeInfo) {
 | 
				
			||||||
					.listFromFile(ssidProfileFileName, com.telecominfraproject.wlan.profile.models.Profile.class);
 | 
					        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
 | 
					    public void apDisconnected(String apId) {
 | 
				
			||||||
					.listFromFile(radiusProfileFileName, com.telecominfraproject.wlan.profile.models.Profile.class);
 | 
					        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();
 | 
					            com.telecominfraproject.wlan.profile.models.Profile apProfile = com.telecominfraproject.wlan.profile.models.Profile
 | 
				
			||||||
			ret.setCustomerEquipment(equipment);
 | 
					                    .fromFile(apProfileFileName, com.telecominfraproject.wlan.profile.models.Profile.class);
 | 
				
			||||||
			ret.setApProfile(apProfile);
 | 
					 | 
				
			||||||
			ret.setSsidProfile(ssidProfiles);
 | 
					 | 
				
			||||||
			ret.setRadiusProfiles(radiusProfiles);
 | 
					 | 
				
			||||||
			ret.setEquipmentLocation(location);
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
		} catch (IOException e) {
 | 
					            com.telecominfraproject.wlan.profile.models.Profile rfProfile = com.telecominfraproject.wlan.profile.models.Profile
 | 
				
			||||||
			LOG.error("Cannot read config file", e);
 | 
					                    .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) {
 | 
					            List<com.telecominfraproject.wlan.profile.models.Profile> hotspot20Profiles = com.telecominfraproject.wlan.profile.models.Profile
 | 
				
			||||||
		LOG.info("Received PlumeStatsReport on topic {} for ap {}\n{}", topic, report.getNodeID(), report);
 | 
					                    .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) {
 | 
					            ssidProfiles.stream().forEach(p -> apProfile.getChildProfileIds().add(p.getId()));
 | 
				
			||||||
		LOG.info("Received wcStatsReport on topic {} for ap {}", topic,
 | 
					 | 
				
			||||||
				wcStatsReport.getObservationPoint().getNodeId());
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
	@Override
 | 
					            List<com.telecominfraproject.wlan.profile.models.Profile> metricsProfiles = com.telecominfraproject.wlan.profile.models.Profile
 | 
				
			||||||
	public void wifiVIFStateDbTableUpdate(List<OpensyncAPVIFState> vifStateTables, String apId) {
 | 
					                    .listFromFile(metricsProfileFileName, com.telecominfraproject.wlan.profile.models.Profile.class);
 | 
				
			||||||
		LOG.info("Received table state update {} for ap {}", vifStateTables, apId);
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
	@Override
 | 
					            List<com.telecominfraproject.wlan.profile.models.Profile> radiusProfiles = com.telecominfraproject.wlan.profile.models.Profile
 | 
				
			||||||
	public void wifiRadioStatusDbTableUpdate(List<OpensyncAPRadioState> radioStateTable, String apId) {
 | 
					                    .listFromFile(radiusProfileFileName, com.telecominfraproject.wlan.profile.models.Profile.class);
 | 
				
			||||||
		LOG.info("Received table state update {} for ap {}", radioStateTable, apId);
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
	@Override
 | 
					            List<com.telecominfraproject.wlan.profile.models.Profile> captiveProfiles = null;
 | 
				
			||||||
	public void wifiInetStateDbTableUpdate(List<OpensyncAPInetState> inetStateTable, String apId) {
 | 
					            File captiveFile = new File(captiveProfileFileName);
 | 
				
			||||||
		LOG.info("Received table state update {} for ap {}", inetStateTable, apId);
 | 
					            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
 | 
					            equipment.setProfileId(apProfile.getId());
 | 
				
			||||||
	public void wifiAssociatedClientsDbTableUpdate(List<OpensyncWifiAssociatedClients> wifiAssociatedClients,
 | 
					 | 
				
			||||||
			String apId) {
 | 
					 | 
				
			||||||
		LOG.info("Received table state update {} for ap {}", wifiAssociatedClients, apId);
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
	}
 | 
					            Location location = Location.fromFile(locationFileName, Location.class);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	@Override
 | 
					            equipment.setLocationId(location.getId());
 | 
				
			||||||
	public void awlanNodeDbTableUpdate(OpensyncAWLANNode opensyncAPState, String apId) {
 | 
					 | 
				
			||||||
		LOG.info("Received table state update {} for ap {}", opensyncAPState, apId);
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
	}
 | 
					            OpensyncAPHotspot20Config hotspotConfig = new OpensyncAPHotspot20Config();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	@Override
 | 
					            hotspotConfig.setHotspot20ProfileSet(
 | 
				
			||||||
	public void wifiVIFStateDbTableDelete(List<OpensyncAPVIFState> vifStateTables, String apId) {
 | 
					                    new HashSet<com.telecominfraproject.wlan.profile.models.Profile>(hotspot20Profiles));
 | 
				
			||||||
		LOG.info("Received table delete {} for ap {}", vifStateTables, apId);
 | 
					            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
 | 
					        } catch (IOException e) {
 | 
				
			||||||
	public void wifiAssociatedClientsDbTableDelete(String deletedClientMac, String apId) {
 | 
					            LOG.error("Cannot read config file", e);
 | 
				
			||||||
		LOG.info("Received Wifi_Associated_Clients row delete {} for ap {}", deletedClientMac, apId);
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	}
 | 
					        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,
 | 
					        "channelNumber": 6,
 | 
				
			||||||
        "manualChannelNumber": 6,
 | 
					        "manualChannelNumber": 6,
 | 
				
			||||||
        "backupChannelNumber": 11,
 | 
					        "backupChannelNumber": 11,
 | 
				
			||||||
        "autoChannelSelection": false,
 | 
					 | 
				
			||||||
        "channelBandwidth": "is20MHz",
 | 
					 | 
				
			||||||
        "bannedChannels": [],
 | 
					        "bannedChannels": [],
 | 
				
			||||||
        "allowedChannels": [],
 | 
					        "allowedChannels": [],
 | 
				
			||||||
        "rxCellSizeDb": {
 | 
					        "rxCellSizeDb": {
 | 
				
			||||||
          "model_type": "AutoOrManualValue",
 | 
					          "model_type": "SourceSelectionValue",
 | 
				
			||||||
          "auto": true,
 | 
					        "source": "auto",
 | 
				
			||||||
          "value": -90
 | 
					          "value": -90
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        "probeResponseThresholdDb": {
 | 
					        "probeResponseThresholdDb": {
 | 
				
			||||||
          "model_type": "AutoOrManualValue",
 | 
					          "model_type": "SourceSelectionValue",
 | 
				
			||||||
          "auto": true,
 | 
					        "source": "auto",
 | 
				
			||||||
          "value": -90
 | 
					          "value": -90
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        "clientDisconnectThresholdDb": {
 | 
					        "clientDisconnectThresholdDb": {
 | 
				
			||||||
          "model_type": "AutoOrManualValue",
 | 
					          "model_type": "SourceSelectionValue",
 | 
				
			||||||
          "auto": true,
 | 
					        	 "source": "auto",
 | 
				
			||||||
          "value": -90
 | 
					          "value": -90
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        "eirpTxPower": {
 | 
					        "eirpTxPower": {
 | 
				
			||||||
          "model_type": "AutoOrManualValue",
 | 
					          "model_type": "SourceSelectionValue",
 | 
				
			||||||
          "auto": false,
 | 
					        	 "source": "auto",
 | 
				
			||||||
          "value": 32
 | 
					          "value": 32
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        "bestApEnabled": null,
 | 
					 | 
				
			||||||
        "neighbouringListApConfig": {
 | 
					 | 
				
			||||||
          "model_type": "NeighbouringAPListConfiguration",
 | 
					 | 
				
			||||||
          "minSignal": -85,
 | 
					 | 
				
			||||||
          "maxAps": 25
 | 
					 | 
				
			||||||
        },
 | 
					 | 
				
			||||||
        "minAutoCellSize": -80,
 | 
					 | 
				
			||||||
        "perimeterDetectionEnabled": true,
 | 
					        "perimeterDetectionEnabled": true,
 | 
				
			||||||
        "bestAPSteerType": "both",
 | 
					        "bestAPSteerType": "both",
 | 
				
			||||||
        "deauthAttackDetection": null,
 | 
					        "deauthAttackDetection": null,
 | 
				
			||||||
@@ -81,37 +72,28 @@
 | 
				
			|||||||
        "channelNumber": 149,
 | 
					        "channelNumber": 149,
 | 
				
			||||||
        "manualChannelNumber": 149,
 | 
					        "manualChannelNumber": 149,
 | 
				
			||||||
        "backupChannelNumber": 154,
 | 
					        "backupChannelNumber": 154,
 | 
				
			||||||
        "autoChannelSelection": false,
 | 
					 | 
				
			||||||
        "channelBandwidth": "is80MHz",
 | 
					 | 
				
			||||||
        "bannedChannels": [],
 | 
					        "bannedChannels": [],
 | 
				
			||||||
        "allowedChannels": [],
 | 
					        "allowedChannels": [],
 | 
				
			||||||
        "rxCellSizeDb": {
 | 
					        "rxCellSizeDb": {
 | 
				
			||||||
          "model_type": "AutoOrManualValue",
 | 
					          "model_type": "SourceSelectionValue",
 | 
				
			||||||
          "auto": true,
 | 
					        	 "source": "auto",
 | 
				
			||||||
          "value": -90
 | 
					          "value": -90
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        "probeResponseThresholdDb": {
 | 
					        "probeResponseThresholdDb": {
 | 
				
			||||||
          "model_type": "AutoOrManualValue",
 | 
					          "model_type": "SourceSelectionValue",
 | 
				
			||||||
          "auto": true,
 | 
					        	 "source": "auto",
 | 
				
			||||||
          "value": -90
 | 
					          "value": -90
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        "clientDisconnectThresholdDb": {
 | 
					        "clientDisconnectThresholdDb": {
 | 
				
			||||||
          "model_type": "AutoOrManualValue",
 | 
					          "model_type": "SourceSelectionValue",
 | 
				
			||||||
          "auto": true,
 | 
					        	 "source": "auto",
 | 
				
			||||||
          "value": -90
 | 
					          "value": -90
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        "eirpTxPower": {
 | 
					        "eirpTxPower": {
 | 
				
			||||||
          "model_type": "AutoOrManualValue",
 | 
					          "model_type": "SourceSelectionValue",
 | 
				
			||||||
          "auto": false,
 | 
					        	 "source": "auto",
 | 
				
			||||||
          "value": 32
 | 
					          "value": 32
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        "bestApEnabled": null,
 | 
					 | 
				
			||||||
        "neighbouringListApConfig": {
 | 
					 | 
				
			||||||
          "model_type": "NeighbouringAPListConfiguration",
 | 
					 | 
				
			||||||
          "minSignal": -85,
 | 
					 | 
				
			||||||
          "maxAps": 25
 | 
					 | 
				
			||||||
        },
 | 
					 | 
				
			||||||
        "minAutoCellSize": -80,
 | 
					 | 
				
			||||||
        "perimeterDetectionEnabled": true,
 | 
					        "perimeterDetectionEnabled": true,
 | 
				
			||||||
        "bestAPSteerType": "both",
 | 
					        "bestAPSteerType": "both",
 | 
				
			||||||
        "deauthAttackDetection": null,
 | 
					        "deauthAttackDetection": null,
 | 
				
			||||||
@@ -124,37 +106,28 @@
 | 
				
			|||||||
        "channelNumber": 36,
 | 
					        "channelNumber": 36,
 | 
				
			||||||
        "manualChannelNumber": 36,
 | 
					        "manualChannelNumber": 36,
 | 
				
			||||||
        "backupChannelNumber": 44,
 | 
					        "backupChannelNumber": 44,
 | 
				
			||||||
        "autoChannelSelection": false,
 | 
					 | 
				
			||||||
        "channelBandwidth": "is80MHz",
 | 
					 | 
				
			||||||
        "bannedChannels": [],
 | 
					        "bannedChannels": [],
 | 
				
			||||||
        "allowedChannels": [],
 | 
					        "allowedChannels": [],
 | 
				
			||||||
        "rxCellSizeDb": {
 | 
					        "rxCellSizeDb": {
 | 
				
			||||||
          "model_type": "AutoOrManualValue",
 | 
					          "model_type": "SourceSelectionValue",
 | 
				
			||||||
          "auto": true,
 | 
					        	 "source": "auto",
 | 
				
			||||||
          "value": -90
 | 
					          "value": -90
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        "probeResponseThresholdDb": {
 | 
					        "probeResponseThresholdDb": {
 | 
				
			||||||
          "model_type": "AutoOrManualValue",
 | 
					          "model_type": "SourceSelectionValue",
 | 
				
			||||||
          "auto": true,
 | 
					        	 "source": "auto",
 | 
				
			||||||
          "value": -90
 | 
					          "value": -90
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        "clientDisconnectThresholdDb": {
 | 
					        "clientDisconnectThresholdDb": {
 | 
				
			||||||
          "model_type": "AutoOrManualValue",
 | 
					          "model_type": "SourceSelectionValue",
 | 
				
			||||||
          "auto": true,
 | 
					        	 "source": "auto",
 | 
				
			||||||
          "value": -90
 | 
					          "value": -90
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        "eirpTxPower": {
 | 
					        "eirpTxPower": {
 | 
				
			||||||
          "model_type": "AutoOrManualValue",
 | 
					          "model_type": "SourceSelectionValue",
 | 
				
			||||||
          "auto": false,
 | 
					        	 "source": "auto",
 | 
				
			||||||
          "value": 32
 | 
					          "value": 32
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        "bestApEnabled": null,
 | 
					 | 
				
			||||||
        "neighbouringListApConfig": {
 | 
					 | 
				
			||||||
          "model_type": "NeighbouringAPListConfiguration",
 | 
					 | 
				
			||||||
          "minSignal": -85,
 | 
					 | 
				
			||||||
          "maxAps": 25
 | 
					 | 
				
			||||||
        },
 | 
					 | 
				
			||||||
        "minAutoCellSize": -80,
 | 
					 | 
				
			||||||
        "perimeterDetectionEnabled": true,
 | 
					        "perimeterDetectionEnabled": true,
 | 
				
			||||||
        "bestAPSteerType": "both",
 | 
					        "bestAPSteerType": "both",
 | 
				
			||||||
        "deauthAttackDetection": null,
 | 
					        "deauthAttackDetection": null,
 | 
				
			||||||
@@ -168,39 +141,24 @@
 | 
				
			|||||||
        "radioType": "is2dot4GHz",
 | 
					        "radioType": "is2dot4GHz",
 | 
				
			||||||
        "radioAdminState": "enabled",
 | 
					        "radioAdminState": "enabled",
 | 
				
			||||||
        "fragmentationThresholdBytes": 2346,
 | 
					        "fragmentationThresholdBytes": 2346,
 | 
				
			||||||
        "rtsCtsThreshold": 65535,
 | 
					 | 
				
			||||||
        "autoChannelSelection": "disabled",
 | 
					 | 
				
			||||||
        "radioMode": "modeN",
 | 
					 | 
				
			||||||
        "mimoMode": "twoByTwo",
 | 
					 | 
				
			||||||
        "wmmState": "enabled",
 | 
					 | 
				
			||||||
        "uapsdState": "enabled",
 | 
					        "uapsdState": "enabled",
 | 
				
			||||||
        "maxNumClients": 100,
 | 
					 | 
				
			||||||
        "stationIsolation": "disabled",
 | 
					        "stationIsolation": "disabled",
 | 
				
			||||||
        "multicastRate": "auto",
 | 
					        "managementRate": {
 | 
				
			||||||
        "managementRate": "auto",
 | 
					          "model_type": "SourceSelectionManagement",
 | 
				
			||||||
        "activeScanSettings": {
 | 
					          "source": "auto",
 | 
				
			||||||
          "model_type": "ActiveScanSettings",
 | 
					          "value": "auto"
 | 
				
			||||||
          "enabled": true,
 | 
					 | 
				
			||||||
          "scanFrequencySeconds": 10,
 | 
					 | 
				
			||||||
          "scanDurationMillis": 65
 | 
					 | 
				
			||||||
        },
 | 
					 | 
				
			||||||
        "channelHopSettings": {
 | 
					 | 
				
			||||||
          "model_type": "ChannelHopSettings",
 | 
					 | 
				
			||||||
          "noiseFloorThresholdInDB": -75,
 | 
					 | 
				
			||||||
          "noiseFloorThresholdTimeInSeconds": 180,
 | 
					 | 
				
			||||||
          "nonWifiThresholdInPercentage": 50,
 | 
					 | 
				
			||||||
          "nonWifiThresholdTimeInSeconds": 180,
 | 
					 | 
				
			||||||
          "obssHopMode": "NON_WIFI"
 | 
					 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        "bestApSettings": {
 | 
					        "bestApSettings": {
 | 
				
			||||||
          "model_type": "RadioBestApSettings",
 | 
					        "model_type": "SourceSelectionSteering",
 | 
				
			||||||
          "mlComputed": true,
 | 
					          "source": "auto",
 | 
				
			||||||
          "dropInSnrPercentage": 20,
 | 
					          "value": {
 | 
				
			||||||
          "minLoadFactor": 50
 | 
						          "model_type": "RadioBestApSettings",
 | 
				
			||||||
 | 
						          "mlComputed": true,
 | 
				
			||||||
 | 
						          "dropInSnrPercentage": 30,
 | 
				
			||||||
 | 
						          "minLoadFactor": 40
 | 
				
			||||||
 | 
					          }
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        "forceScanDuringVoice": "disabled",
 | 
					 | 
				
			||||||
        "legacyBSSRate": "enabled",
 | 
					        "legacyBSSRate": "enabled",
 | 
				
			||||||
        "beaconInterval": 100,
 | 
					 | 
				
			||||||
        "deauthAttackDetection": null
 | 
					        "deauthAttackDetection": null
 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      "is5GHzU": {
 | 
					      "is5GHzU": {
 | 
				
			||||||
@@ -208,39 +166,24 @@
 | 
				
			|||||||
        "radioType": "is5GHzU",
 | 
					        "radioType": "is5GHzU",
 | 
				
			||||||
        "radioAdminState": "enabled",
 | 
					        "radioAdminState": "enabled",
 | 
				
			||||||
        "fragmentationThresholdBytes": 2346,
 | 
					        "fragmentationThresholdBytes": 2346,
 | 
				
			||||||
        "rtsCtsThreshold": 65535,
 | 
					 | 
				
			||||||
        "autoChannelSelection": "disabled",
 | 
					 | 
				
			||||||
        "radioMode": "modeAC",
 | 
					 | 
				
			||||||
        "mimoMode": "twoByTwo",
 | 
					 | 
				
			||||||
        "wmmState": "enabled",
 | 
					 | 
				
			||||||
        "uapsdState": "enabled",
 | 
					        "uapsdState": "enabled",
 | 
				
			||||||
        "maxNumClients": 100,
 | 
					 | 
				
			||||||
        "stationIsolation": "disabled",
 | 
					        "stationIsolation": "disabled",
 | 
				
			||||||
        "multicastRate": "auto",
 | 
					        "managementRate": {
 | 
				
			||||||
        "managementRate": "auto",
 | 
					          "model_type": "SourceSelectionManagement",
 | 
				
			||||||
        "activeScanSettings": {
 | 
					          "source": "auto",
 | 
				
			||||||
          "model_type": "ActiveScanSettings",
 | 
					          "value": "auto"
 | 
				
			||||||
          "enabled": true,
 | 
					 | 
				
			||||||
          "scanFrequencySeconds": 10,
 | 
					 | 
				
			||||||
          "scanDurationMillis": 65
 | 
					 | 
				
			||||||
        },
 | 
					 | 
				
			||||||
        "channelHopSettings": {
 | 
					 | 
				
			||||||
          "model_type": "ChannelHopSettings",
 | 
					 | 
				
			||||||
          "noiseFloorThresholdInDB": -75,
 | 
					 | 
				
			||||||
          "noiseFloorThresholdTimeInSeconds": 180,
 | 
					 | 
				
			||||||
          "nonWifiThresholdInPercentage": 50,
 | 
					 | 
				
			||||||
          "nonWifiThresholdTimeInSeconds": 180,
 | 
					 | 
				
			||||||
          "obssHopMode": "NON_WIFI"
 | 
					 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        "bestApSettings": {
 | 
					        "bestApSettings": {
 | 
				
			||||||
          "model_type": "RadioBestApSettings",
 | 
					        "model_type": "SourceSelectionSteering",
 | 
				
			||||||
          "mlComputed": true,
 | 
					          "source": "auto",
 | 
				
			||||||
          "dropInSnrPercentage": 30,
 | 
					          "value": {
 | 
				
			||||||
          "minLoadFactor": 40
 | 
						          "model_type": "RadioBestApSettings",
 | 
				
			||||||
 | 
						          "mlComputed": true,
 | 
				
			||||||
 | 
						          "dropInSnrPercentage": 30,
 | 
				
			||||||
 | 
						          "minLoadFactor": 40
 | 
				
			||||||
 | 
					          }
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        "forceScanDuringVoice": "disabled",
 | 
					 | 
				
			||||||
        "legacyBSSRate": "enabled",
 | 
					        "legacyBSSRate": "enabled",
 | 
				
			||||||
        "beaconInterval": 100,
 | 
					 | 
				
			||||||
        "deauthAttackDetection": null
 | 
					        "deauthAttackDetection": null
 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      "is5GHzL": {
 | 
					      "is5GHzL": {
 | 
				
			||||||
@@ -248,39 +191,24 @@
 | 
				
			|||||||
        "radioType": "is5GHzL",
 | 
					        "radioType": "is5GHzL",
 | 
				
			||||||
        "radioAdminState": "enabled",
 | 
					        "radioAdminState": "enabled",
 | 
				
			||||||
        "fragmentationThresholdBytes": 2346,
 | 
					        "fragmentationThresholdBytes": 2346,
 | 
				
			||||||
        "rtsCtsThreshold": 65535,
 | 
					 | 
				
			||||||
        "autoChannelSelection": "disabled",
 | 
					 | 
				
			||||||
        "radioMode": "modeAC",
 | 
					 | 
				
			||||||
        "mimoMode": "twoByTwo",
 | 
					 | 
				
			||||||
        "wmmState": "enabled",
 | 
					 | 
				
			||||||
        "uapsdState": "enabled",
 | 
					        "uapsdState": "enabled",
 | 
				
			||||||
        "maxNumClients": 100,
 | 
					 | 
				
			||||||
        "stationIsolation": "disabled",
 | 
					        "stationIsolation": "disabled",
 | 
				
			||||||
        "multicastRate": "auto",
 | 
					        "managementRate": {
 | 
				
			||||||
        "managementRate": "auto",
 | 
					          "model_type": "SourceSelectionManagement",
 | 
				
			||||||
        "activeScanSettings": {
 | 
					          "source": "auto",
 | 
				
			||||||
          "model_type": "ActiveScanSettings",
 | 
					          "value": "auto"
 | 
				
			||||||
          "enabled": true,
 | 
					 | 
				
			||||||
          "scanFrequencySeconds": 10,
 | 
					 | 
				
			||||||
          "scanDurationMillis": 65
 | 
					 | 
				
			||||||
        },
 | 
					 | 
				
			||||||
        "channelHopSettings": {
 | 
					 | 
				
			||||||
          "model_type": "ChannelHopSettings",
 | 
					 | 
				
			||||||
          "noiseFloorThresholdInDB": -75,
 | 
					 | 
				
			||||||
          "noiseFloorThresholdTimeInSeconds": 180,
 | 
					 | 
				
			||||||
          "nonWifiThresholdInPercentage": 50,
 | 
					 | 
				
			||||||
          "nonWifiThresholdTimeInSeconds": 180,
 | 
					 | 
				
			||||||
          "obssHopMode": "NON_WIFI"
 | 
					 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        "bestApSettings": {
 | 
					        "bestApSettings": {
 | 
				
			||||||
          "model_type": "RadioBestApSettings",
 | 
					        "model_type": "SourceSelectionSteering",
 | 
				
			||||||
          "mlComputed": true,
 | 
					          "source": "auto",
 | 
				
			||||||
          "dropInSnrPercentage": 30,
 | 
					          "value": {
 | 
				
			||||||
          "minLoadFactor": 40
 | 
						          "model_type": "RadioBestApSettings",
 | 
				
			||||||
 | 
						          "mlComputed": true,
 | 
				
			||||||
 | 
						          "dropInSnrPercentage": 30,
 | 
				
			||||||
 | 
						          "minLoadFactor": 40
 | 
				
			||||||
 | 
					          }
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        "forceScanDuringVoice": "disabled",
 | 
					 | 
				
			||||||
        "legacyBSSRate": "enabled",
 | 
					        "legacyBSSRate": "enabled",
 | 
				
			||||||
        "beaconInterval": 100,
 | 
					 | 
				
			||||||
        "deauthAttackDetection": null
 | 
					        "deauthAttackDetection": null
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
@@ -290,4 +218,4 @@
 | 
				
			|||||||
  "serial": "21P10C68818122",
 | 
					  "serial": "21P10C68818122",
 | 
				
			||||||
  "createdTimestamp": 1591653239821,
 | 
					  "createdTimestamp": 1591653239821,
 | 
				
			||||||
  "lastModifiedTimestamp": 1591653241398
 | 
					  "lastModifiedTimestamp": 1591653241398
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,54 +1,50 @@
 | 
				
			|||||||
{
 | 
					{
 | 
				
			||||||
  "model_type": "Profile",
 | 
					    "model_type": "Profile",
 | 
				
			||||||
  "id": 5,
 | 
					    "id": 17,
 | 
				
			||||||
  "customerId": 2,
 | 
					    "customerId": 2,
 | 
				
			||||||
  "profileType": "equipment_ap",
 | 
					    "profileType": "equipment_ap",
 | 
				
			||||||
  "name": "DefaultApProfile",
 | 
					    "name": "ApProfile-3-radios",
 | 
				
			||||||
  "details": {
 | 
					    "details": {
 | 
				
			||||||
    "model_type": "ApNetworkConfiguration",
 | 
					        "model_type": "ApNetworkConfiguration",
 | 
				
			||||||
    "networkConfigVersion": "AP-1",
 | 
					        "networkConfigVersion": "AP-1",
 | 
				
			||||||
    "equipmentType": "AP",
 | 
					        "equipmentType": "AP",
 | 
				
			||||||
    "vlanNative": true,
 | 
					        "vlanNative": true,
 | 
				
			||||||
    "vlan": 0,
 | 
					        "vlan": 0,
 | 
				
			||||||
    "ntpServer": {
 | 
					        "ntpServer": {
 | 
				
			||||||
      "model_type": "AutoOrManualString",
 | 
					            "model_type": "AutoOrManualString",
 | 
				
			||||||
      "auto": true,
 | 
					            "auto": true,
 | 
				
			||||||
      "value": "pool.ntp.org"
 | 
					            "value": "pool.ntp.org"
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					        "syslogRelay": null,
 | 
				
			||||||
 | 
					        "rtlsSettings": null,
 | 
				
			||||||
 | 
					        "syntheticClientEnabled": true,
 | 
				
			||||||
 | 
					        "ledControlEnabled": true,
 | 
				
			||||||
 | 
					        "equipmentDiscovery": false,
 | 
				
			||||||
 | 
					        "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"
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "syslogRelay": null,
 | 
					    "createdTimestamp": 1602182806348,
 | 
				
			||||||
    "rtlsSettings": null,
 | 
					    "lastModifiedTimestamp": 1602182806348,
 | 
				
			||||||
    "syntheticClientEnabled": true,
 | 
					    "childProfileIds": [
 | 
				
			||||||
    "ledControlEnabled": true,
 | 
					        2,
 | 
				
			||||||
    "equipmentDiscovery": false,
 | 
					        5,
 | 
				
			||||||
    "radioMap": {
 | 
					        11,
 | 
				
			||||||
      "is5GHz": {
 | 
					        13
 | 
				
			||||||
        "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
 | 
					 | 
				
			||||||
  ]
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
							
								
								
									
										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": 10,
 | 
				
			||||||
 | 
					    "customerId": 2,
 | 
				
			||||||
 | 
					    "profileType": "hotspot_2pt0",
 | 
				
			||||||
 | 
					    "name": "TipWlan-Hotspot20-Config",
 | 
				
			||||||
 | 
					    "details": {
 | 
				
			||||||
 | 
					        "model_type": "Hotspot2Profile",
 | 
				
			||||||
 | 
					        "enableInterworkingAndHs20": true,
 | 
				
			||||||
 | 
					        "hessid": null,
 | 
				
			||||||
 | 
					        "accessNetworkType": "free_public_network",
 | 
				
			||||||
 | 
					        "networkAuthenticationType": "acceptance_of_terms_and_conditions",
 | 
				
			||||||
 | 
					        "additionalStepsRequiredForAccess": 0,
 | 
				
			||||||
 | 
					        "deauthRequestTimeout": 0,
 | 
				
			||||||
 | 
					        "operatingClass": 0,
 | 
				
			||||||
 | 
					        "termsAndConditionsFile": {
 | 
				
			||||||
 | 
					            "model_type": "ManagedFileInfo",
 | 
				
			||||||
 | 
					            "md5checksum": null,
 | 
				
			||||||
 | 
					            "lastModifiedTimestamp": null,
 | 
				
			||||||
 | 
					            "apExportUrl": "https://localhost:9091/filestore/termsAndConditions",
 | 
				
			||||||
 | 
					            "fileCategory": "ExternalPolicyConfiguration",
 | 
				
			||||||
 | 
					            "fileType": "TEXT",
 | 
				
			||||||
 | 
					            "altSlot": false
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					        "whitelistDomain": null,
 | 
				
			||||||
 | 
					        "emergencyServicesReachable": true,
 | 
				
			||||||
 | 
					        "unauthenticatedEmergencyServiceAccessible": false,
 | 
				
			||||||
 | 
					        "internetConnectivity": true,
 | 
				
			||||||
 | 
					        "connectionCapabilitySet": [
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                "model_type": "ConnectionCapability",
 | 
				
			||||||
 | 
					                "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-3-radios",
 | 
				
			||||||
 | 
					        "operatorProfileName": "TipWlan-Hotspot20-Operator",
 | 
				
			||||||
 | 
					        "venueProfileName": "TipWlan-Hotspot20-Venue",
 | 
				
			||||||
 | 
					        "idProviderProfileNames": [
 | 
				
			||||||
 | 
					            "TipWlan-Hotspot20-OSU-Provider-2",
 | 
				
			||||||
 | 
					            "TipWlan-Hotspot20-OSU-Provider"
 | 
				
			||||||
 | 
					        ],
 | 
				
			||||||
 | 
					        "profileType": "hotspot_2pt0",
 | 
				
			||||||
 | 
					        "associatedSsids": [
 | 
				
			||||||
 | 
					            "TipWlan-cloud-hotspot-access"
 | 
				
			||||||
 | 
					        ]
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "createdTimestamp": 1602182806040,
 | 
				
			||||||
 | 
					    "lastModifiedTimestamp": 1602182806040,
 | 
				
			||||||
 | 
					    "childProfileIds": [
 | 
				
			||||||
 | 
					        6,
 | 
				
			||||||
 | 
					        7,
 | 
				
			||||||
 | 
					        8,
 | 
				
			||||||
 | 
					        9
 | 
				
			||||||
 | 
					    ]
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					]
 | 
				
			||||||
							
								
								
									
										256
									
								
								opensync-ext-static/src/main/resources/ProfileIdProvider.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										256
									
								
								opensync-ext-static/src/main/resources/ProfileIdProvider.json
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,256 @@
 | 
				
			|||||||
 | 
					[
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    "model_type": "Profile",
 | 
				
			||||||
 | 
					    "id": 8,
 | 
				
			||||||
 | 
					    "customerId": 2,
 | 
				
			||||||
 | 
					    "profileType": "id_provider",
 | 
				
			||||||
 | 
					    "name": "TipWlan-Hotspot20-OSU-Provider",
 | 
				
			||||||
 | 
					    "details": {
 | 
				
			||||||
 | 
					        "model_type": "Hotspot20IdProviderProfile",
 | 
				
			||||||
 | 
					        "domainName": "rogers.com",
 | 
				
			||||||
 | 
					        "mccMncList": [
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                "model_type": "MccMnc",
 | 
				
			||||||
 | 
					                "mcc": 302,
 | 
				
			||||||
 | 
					                "mnc": 720,
 | 
				
			||||||
 | 
					                "iso": "ca",
 | 
				
			||||||
 | 
					                "country": "Canada",
 | 
				
			||||||
 | 
					                "countryCode": 1,
 | 
				
			||||||
 | 
					                "network": "Rogers AT&T Wireless",
 | 
				
			||||||
 | 
					                "mccMncPairing": "302,720"
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        ],
 | 
				
			||||||
 | 
					        "naiRealmList": [
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                "model_type": "NaiRealmInformation",
 | 
				
			||||||
 | 
					                "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": "OsuIcon",
 | 
				
			||||||
 | 
					                "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": "OsuIcon",
 | 
				
			||||||
 | 
					                "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": "OsuIcon",
 | 
				
			||||||
 | 
					                "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": "Hotspot20Duple",
 | 
				
			||||||
 | 
					                "locale": "en_CA",
 | 
				
			||||||
 | 
					                "dupleIso3Language": "eng",
 | 
				
			||||||
 | 
					                "dupleName": "Example provider rogers",
 | 
				
			||||||
 | 
					                "defaultDupleSeparator": ":",
 | 
				
			||||||
 | 
					                "asDuple": "eng:Example provider rogers"
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                "model_type": "Hotspot20Duple",
 | 
				
			||||||
 | 
					                "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": "Hotspot20Duple",
 | 
				
			||||||
 | 
					                "locale": "en_CA",
 | 
				
			||||||
 | 
					                "dupleIso3Language": "eng",
 | 
				
			||||||
 | 
					                "dupleName": "Example services rogers",
 | 
				
			||||||
 | 
					                "defaultDupleSeparator": ":",
 | 
				
			||||||
 | 
					                "asDuple": "eng:Example services rogers"
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                "model_type": "Hotspot20Duple",
 | 
				
			||||||
 | 
					                "locale": "fr_CA",
 | 
				
			||||||
 | 
					                "dupleIso3Language": "fra",
 | 
				
			||||||
 | 
					                "dupleName": "Exemples de services rogers",
 | 
				
			||||||
 | 
					                "defaultDupleSeparator": ":",
 | 
				
			||||||
 | 
					                "asDuple": "fra:Exemples de services rogers"
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        ],
 | 
				
			||||||
 | 
					        "profileType": "id_provider"
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "createdTimestamp": 1602182805654,
 | 
				
			||||||
 | 
					    "lastModifiedTimestamp": 1602182805654,
 | 
				
			||||||
 | 
					    "childProfileIds": []
 | 
				
			||||||
 | 
					},
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    "model_type": "Profile",
 | 
				
			||||||
 | 
					    "id": 9,
 | 
				
			||||||
 | 
					    "customerId": 2,
 | 
				
			||||||
 | 
					    "profileType": "id_provider",
 | 
				
			||||||
 | 
					    "name": "TipWlan-Hotspot20-OSU-Provider-2",
 | 
				
			||||||
 | 
					    "details": {
 | 
				
			||||||
 | 
					        "model_type": "Hotspot20IdProviderProfile",
 | 
				
			||||||
 | 
					        "domainName": "telus.com",
 | 
				
			||||||
 | 
					        "mccMncList": [
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                "model_type": "MccMnc",
 | 
				
			||||||
 | 
					                "mcc": 302,
 | 
				
			||||||
 | 
					                "mnc": 220,
 | 
				
			||||||
 | 
					                "iso": "ca",
 | 
				
			||||||
 | 
					                "country": "Canada",
 | 
				
			||||||
 | 
					                "countryCode": 1,
 | 
				
			||||||
 | 
					                "network": "Telus Mobility",
 | 
				
			||||||
 | 
					                "mccMncPairing": "302,220"
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        ],
 | 
				
			||||||
 | 
					        "naiRealmList": [
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                "model_type": "NaiRealmInformation",
 | 
				
			||||||
 | 
					                "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": "OsuIcon",
 | 
				
			||||||
 | 
					                "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": "OsuIcon",
 | 
				
			||||||
 | 
					                "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": "OsuIcon",
 | 
				
			||||||
 | 
					                "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": "Hotspot20Duple",
 | 
				
			||||||
 | 
					                "locale": "en_CA",
 | 
				
			||||||
 | 
					                "dupleIso3Language": "eng",
 | 
				
			||||||
 | 
					                "dupleName": "Example provider telus",
 | 
				
			||||||
 | 
					                "defaultDupleSeparator": ":",
 | 
				
			||||||
 | 
					                "asDuple": "eng:Example provider telus"
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                "model_type": "Hotspot20Duple",
 | 
				
			||||||
 | 
					                "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": "Hotspot20Duple",
 | 
				
			||||||
 | 
					                "locale": "en_CA",
 | 
				
			||||||
 | 
					                "dupleIso3Language": "eng",
 | 
				
			||||||
 | 
					                "dupleName": "Example services telus",
 | 
				
			||||||
 | 
					                "defaultDupleSeparator": ":",
 | 
				
			||||||
 | 
					                "asDuple": "eng:Example services telus"
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                "model_type": "Hotspot20Duple",
 | 
				
			||||||
 | 
					                "locale": "fr_CA",
 | 
				
			||||||
 | 
					                "dupleIso3Language": "fra",
 | 
				
			||||||
 | 
					                "dupleName": "Exemples de services telus",
 | 
				
			||||||
 | 
					                "defaultDupleSeparator": ":",
 | 
				
			||||||
 | 
					                "asDuple": "fra:Exemples de services telus"
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        ],
 | 
				
			||||||
 | 
					        "profileType": "id_provider"
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "createdTimestamp": 1602182805660,
 | 
				
			||||||
 | 
					    "lastModifiedTimestamp": 1602182805660,
 | 
				
			||||||
 | 
					    "childProfileIds": []
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					    ]
 | 
				
			||||||
							
								
								
									
										298
									
								
								opensync-ext-static/src/main/resources/ProfileMetrics.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										298
									
								
								opensync-ext-static/src/main/resources/ProfileMetrics.json
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,298 @@
 | 
				
			|||||||
 | 
					[
 | 
				
			||||||
 | 
					 {
 | 
				
			||||||
 | 
					        "model_type": "Profile",
 | 
				
			||||||
 | 
					        "id": 2,
 | 
				
			||||||
 | 
					        "customerId": 2,
 | 
				
			||||||
 | 
					        "profileType": "metrics",
 | 
				
			||||||
 | 
					        "name": "Metrics-Profile-3-radios",
 | 
				
			||||||
 | 
					        "details": {
 | 
				
			||||||
 | 
					            "model_type": "ServiceMetricsCollectionConfigProfile",
 | 
				
			||||||
 | 
					            "radioTypes": [
 | 
				
			||||||
 | 
					                "is5GHzU",
 | 
				
			||||||
 | 
					                "is5GHzL",
 | 
				
			||||||
 | 
					                "is2dot4GHz"
 | 
				
			||||||
 | 
					            ],
 | 
				
			||||||
 | 
					            "serviceMetricDataTypes": [
 | 
				
			||||||
 | 
					                "ApNode",
 | 
				
			||||||
 | 
					                "ApSsid",
 | 
				
			||||||
 | 
					                "Client",
 | 
				
			||||||
 | 
					                "Channel",
 | 
				
			||||||
 | 
					                "Neighbour"
 | 
				
			||||||
 | 
					            ],
 | 
				
			||||||
 | 
					            "metricConfigParameterMap": {
 | 
				
			||||||
 | 
					                "ApNode": [
 | 
				
			||||||
 | 
					                    {
 | 
				
			||||||
 | 
					                        "model_type": "ServiceMetricSurveyConfigParameters",
 | 
				
			||||||
 | 
					                        "samplingInterval": 30,
 | 
				
			||||||
 | 
					                        "reportingIntervalSeconds": 120,
 | 
				
			||||||
 | 
					                        "channelSurveyType": "OFF_CHANNEL",
 | 
				
			||||||
 | 
					                        "scanIntervalMillis": 0,
 | 
				
			||||||
 | 
					                        "percentUtilizationThreshold": 10,
 | 
				
			||||||
 | 
					                        "delayMillisecondsThreshold": 600,
 | 
				
			||||||
 | 
					                        "statsReportFormat": "RAW",
 | 
				
			||||||
 | 
					                        "radioType": "is5GHzU",
 | 
				
			||||||
 | 
					                        "serviceMetricDataType": "ApNode"
 | 
				
			||||||
 | 
					                    },
 | 
				
			||||||
 | 
					                    {
 | 
				
			||||||
 | 
					                        "model_type": "ServiceMetricSurveyConfigParameters",
 | 
				
			||||||
 | 
					                        "samplingInterval": 30,
 | 
				
			||||||
 | 
					                        "reportingIntervalSeconds": 120,
 | 
				
			||||||
 | 
					                        "channelSurveyType": "OFF_CHANNEL",
 | 
				
			||||||
 | 
					                        "scanIntervalMillis": 0,
 | 
				
			||||||
 | 
					                        "percentUtilizationThreshold": 10,
 | 
				
			||||||
 | 
					                        "delayMillisecondsThreshold": 600,
 | 
				
			||||||
 | 
					                        "statsReportFormat": "RAW",
 | 
				
			||||||
 | 
					                        "radioType": "is5GHzL",
 | 
				
			||||||
 | 
					                        "serviceMetricDataType": "ApNode"
 | 
				
			||||||
 | 
					                    },
 | 
				
			||||||
 | 
					                    {
 | 
				
			||||||
 | 
					                        "model_type": "ServiceMetricSurveyConfigParameters",
 | 
				
			||||||
 | 
					                        "samplingInterval": 30,
 | 
				
			||||||
 | 
					                        "reportingIntervalSeconds": 120,
 | 
				
			||||||
 | 
					                        "channelSurveyType": "OFF_CHANNEL",
 | 
				
			||||||
 | 
					                        "scanIntervalMillis": 0,
 | 
				
			||||||
 | 
					                        "percentUtilizationThreshold": 10,
 | 
				
			||||||
 | 
					                        "delayMillisecondsThreshold": 600,
 | 
				
			||||||
 | 
					                        "statsReportFormat": "RAW",
 | 
				
			||||||
 | 
					                        "radioType": "is2dot4GHz",
 | 
				
			||||||
 | 
					                        "serviceMetricDataType": "ApNode"
 | 
				
			||||||
 | 
					                    },
 | 
				
			||||||
 | 
					                    {
 | 
				
			||||||
 | 
					                        "model_type": "ServiceMetricSurveyConfigParameters",
 | 
				
			||||||
 | 
					                        "samplingInterval": 30,
 | 
				
			||||||
 | 
					                        "reportingIntervalSeconds": 60,
 | 
				
			||||||
 | 
					                        "channelSurveyType": "ON_CHANNEL",
 | 
				
			||||||
 | 
					                        "scanIntervalMillis": 0,
 | 
				
			||||||
 | 
					                        "percentUtilizationThreshold": 10,
 | 
				
			||||||
 | 
					                        "delayMillisecondsThreshold": 600,
 | 
				
			||||||
 | 
					                        "statsReportFormat": "RAW",
 | 
				
			||||||
 | 
					                        "radioType": "is5GHzL",
 | 
				
			||||||
 | 
					                        "serviceMetricDataType": "ApNode"
 | 
				
			||||||
 | 
					                    },
 | 
				
			||||||
 | 
					                    {
 | 
				
			||||||
 | 
					                        "model_type": "ServiceMetricSurveyConfigParameters",
 | 
				
			||||||
 | 
					                        "samplingInterval": 30,
 | 
				
			||||||
 | 
					                        "reportingIntervalSeconds": 60,
 | 
				
			||||||
 | 
					                        "channelSurveyType": "ON_CHANNEL",
 | 
				
			||||||
 | 
					                        "scanIntervalMillis": 0,
 | 
				
			||||||
 | 
					                        "percentUtilizationThreshold": 10,
 | 
				
			||||||
 | 
					                        "delayMillisecondsThreshold": 600,
 | 
				
			||||||
 | 
					                        "statsReportFormat": "RAW",
 | 
				
			||||||
 | 
					                        "radioType": "is2dot4GHz",
 | 
				
			||||||
 | 
					                        "serviceMetricDataType": "ApNode"
 | 
				
			||||||
 | 
					                    },
 | 
				
			||||||
 | 
					                    {
 | 
				
			||||||
 | 
					                        "model_type": "ServiceMetricSurveyConfigParameters",
 | 
				
			||||||
 | 
					                        "samplingInterval": 30,
 | 
				
			||||||
 | 
					                        "reportingIntervalSeconds": 60,
 | 
				
			||||||
 | 
					                        "channelSurveyType": "ON_CHANNEL",
 | 
				
			||||||
 | 
					                        "scanIntervalMillis": 0,
 | 
				
			||||||
 | 
					                        "percentUtilizationThreshold": 10,
 | 
				
			||||||
 | 
					                        "delayMillisecondsThreshold": 600,
 | 
				
			||||||
 | 
					                        "statsReportFormat": "RAW",
 | 
				
			||||||
 | 
					                        "radioType": "is5GHzU",
 | 
				
			||||||
 | 
					                        "serviceMetricDataType": "ApNode"
 | 
				
			||||||
 | 
					                    }
 | 
				
			||||||
 | 
					                ],
 | 
				
			||||||
 | 
					                "ApSsid": [
 | 
				
			||||||
 | 
					                    {
 | 
				
			||||||
 | 
					                        "model_type": "ServiceMetricRadioConfigParameters",
 | 
				
			||||||
 | 
					                        "samplingInterval": 30,
 | 
				
			||||||
 | 
					                        "reportingIntervalSeconds": 60,
 | 
				
			||||||
 | 
					                        "radioType": "is2dot4GHz",
 | 
				
			||||||
 | 
					                        "serviceMetricDataType": "ApSsid"
 | 
				
			||||||
 | 
					                    },
 | 
				
			||||||
 | 
					                    {
 | 
				
			||||||
 | 
					                        "model_type": "ServiceMetricRadioConfigParameters",
 | 
				
			||||||
 | 
					                        "samplingInterval": 30,
 | 
				
			||||||
 | 
					                        "reportingIntervalSeconds": 60,
 | 
				
			||||||
 | 
					                        "radioType": "is5GHzL",
 | 
				
			||||||
 | 
					                        "serviceMetricDataType": "ApSsid"
 | 
				
			||||||
 | 
					                    },
 | 
				
			||||||
 | 
					                    {
 | 
				
			||||||
 | 
					                        "model_type": "ServiceMetricRadioConfigParameters",
 | 
				
			||||||
 | 
					                        "samplingInterval": 30,
 | 
				
			||||||
 | 
					                        "reportingIntervalSeconds": 60,
 | 
				
			||||||
 | 
					                        "radioType": "is5GHzU",
 | 
				
			||||||
 | 
					                        "serviceMetricDataType": "ApSsid"
 | 
				
			||||||
 | 
					                    }
 | 
				
			||||||
 | 
					                ],
 | 
				
			||||||
 | 
					                "Client": [
 | 
				
			||||||
 | 
					                    {
 | 
				
			||||||
 | 
					                        "model_type": "ServiceMetricRadioConfigParameters",
 | 
				
			||||||
 | 
					                        "samplingInterval": 30,
 | 
				
			||||||
 | 
					                        "reportingIntervalSeconds": 60,
 | 
				
			||||||
 | 
					                        "radioType": "is2dot4GHz",
 | 
				
			||||||
 | 
					                        "serviceMetricDataType": "Client"
 | 
				
			||||||
 | 
					                    },
 | 
				
			||||||
 | 
					                    {
 | 
				
			||||||
 | 
					                        "model_type": "ServiceMetricRadioConfigParameters",
 | 
				
			||||||
 | 
					                        "samplingInterval": 30,
 | 
				
			||||||
 | 
					                        "reportingIntervalSeconds": 60,
 | 
				
			||||||
 | 
					                        "radioType": "is5GHzL",
 | 
				
			||||||
 | 
					                        "serviceMetricDataType": "Client"
 | 
				
			||||||
 | 
					                    },
 | 
				
			||||||
 | 
					                    {
 | 
				
			||||||
 | 
					                        "model_type": "ServiceMetricRadioConfigParameters",
 | 
				
			||||||
 | 
					                        "samplingInterval": 30,
 | 
				
			||||||
 | 
					                        "reportingIntervalSeconds": 60,
 | 
				
			||||||
 | 
					                        "radioType": "is5GHzU",
 | 
				
			||||||
 | 
					                        "serviceMetricDataType": "Client"
 | 
				
			||||||
 | 
					                    }
 | 
				
			||||||
 | 
					                ],
 | 
				
			||||||
 | 
					                "Channel": [
 | 
				
			||||||
 | 
					                    {
 | 
				
			||||||
 | 
					                        "model_type": "ServiceMetricSurveyConfigParameters",
 | 
				
			||||||
 | 
					                        "samplingInterval": 30,
 | 
				
			||||||
 | 
					                        "reportingIntervalSeconds": 60,
 | 
				
			||||||
 | 
					                        "channelSurveyType": "ON_CHANNEL",
 | 
				
			||||||
 | 
					                        "scanIntervalMillis": 0,
 | 
				
			||||||
 | 
					                        "percentUtilizationThreshold": 10,
 | 
				
			||||||
 | 
					                        "delayMillisecondsThreshold": 600,
 | 
				
			||||||
 | 
					                        "statsReportFormat": "RAW",
 | 
				
			||||||
 | 
					                        "radioType": "is5GHzL",
 | 
				
			||||||
 | 
					                        "serviceMetricDataType": "Channel"
 | 
				
			||||||
 | 
					                    },
 | 
				
			||||||
 | 
					                    {
 | 
				
			||||||
 | 
					                        "model_type": "ServiceMetricSurveyConfigParameters",
 | 
				
			||||||
 | 
					                        "samplingInterval": 30,
 | 
				
			||||||
 | 
					                        "reportingIntervalSeconds": 60,
 | 
				
			||||||
 | 
					                        "channelSurveyType": "ON_CHANNEL",
 | 
				
			||||||
 | 
					                        "scanIntervalMillis": 0,
 | 
				
			||||||
 | 
					                        "percentUtilizationThreshold": 10,
 | 
				
			||||||
 | 
					                        "delayMillisecondsThreshold": 600,
 | 
				
			||||||
 | 
					                        "statsReportFormat": "RAW",
 | 
				
			||||||
 | 
					                        "radioType": "is2dot4GHz",
 | 
				
			||||||
 | 
					                        "serviceMetricDataType": "Channel"
 | 
				
			||||||
 | 
					                    },
 | 
				
			||||||
 | 
					                    {
 | 
				
			||||||
 | 
					                        "model_type": "ServiceMetricSurveyConfigParameters",
 | 
				
			||||||
 | 
					                        "samplingInterval": 30,
 | 
				
			||||||
 | 
					                        "reportingIntervalSeconds": 60,
 | 
				
			||||||
 | 
					                        "channelSurveyType": "ON_CHANNEL",
 | 
				
			||||||
 | 
					                        "scanIntervalMillis": 0,
 | 
				
			||||||
 | 
					                        "percentUtilizationThreshold": 10,
 | 
				
			||||||
 | 
					                        "delayMillisecondsThreshold": 600,
 | 
				
			||||||
 | 
					                        "statsReportFormat": "RAW",
 | 
				
			||||||
 | 
					                        "radioType": "is5GHzU",
 | 
				
			||||||
 | 
					                        "serviceMetricDataType": "Channel"
 | 
				
			||||||
 | 
					                    },
 | 
				
			||||||
 | 
					                    {
 | 
				
			||||||
 | 
					                        "model_type": "ServiceMetricSurveyConfigParameters",
 | 
				
			||||||
 | 
					                        "samplingInterval": 30,
 | 
				
			||||||
 | 
					                        "reportingIntervalSeconds": 120,
 | 
				
			||||||
 | 
					                        "channelSurveyType": "OFF_CHANNEL",
 | 
				
			||||||
 | 
					                        "scanIntervalMillis": 0,
 | 
				
			||||||
 | 
					                        "percentUtilizationThreshold": 10,
 | 
				
			||||||
 | 
					                        "delayMillisecondsThreshold": 600,
 | 
				
			||||||
 | 
					                        "statsReportFormat": "RAW",
 | 
				
			||||||
 | 
					                        "radioType": "is5GHzL",
 | 
				
			||||||
 | 
					                        "serviceMetricDataType": "Channel"
 | 
				
			||||||
 | 
					                    },
 | 
				
			||||||
 | 
					                    {
 | 
				
			||||||
 | 
					                        "model_type": "ServiceMetricSurveyConfigParameters",
 | 
				
			||||||
 | 
					                        "samplingInterval": 30,
 | 
				
			||||||
 | 
					                        "reportingIntervalSeconds": 120,
 | 
				
			||||||
 | 
					                        "channelSurveyType": "OFF_CHANNEL",
 | 
				
			||||||
 | 
					                        "scanIntervalMillis": 0,
 | 
				
			||||||
 | 
					                        "percentUtilizationThreshold": 10,
 | 
				
			||||||
 | 
					                        "delayMillisecondsThreshold": 600,
 | 
				
			||||||
 | 
					                        "statsReportFormat": "RAW",
 | 
				
			||||||
 | 
					                        "radioType": "is2dot4GHz",
 | 
				
			||||||
 | 
					                        "serviceMetricDataType": "Channel"
 | 
				
			||||||
 | 
					                    },
 | 
				
			||||||
 | 
					                    {
 | 
				
			||||||
 | 
					                        "model_type": "ServiceMetricSurveyConfigParameters",
 | 
				
			||||||
 | 
					                        "samplingInterval": 30,
 | 
				
			||||||
 | 
					                        "reportingIntervalSeconds": 120,
 | 
				
			||||||
 | 
					                        "channelSurveyType": "OFF_CHANNEL",
 | 
				
			||||||
 | 
					                        "scanIntervalMillis": 0,
 | 
				
			||||||
 | 
					                        "percentUtilizationThreshold": 10,
 | 
				
			||||||
 | 
					                        "delayMillisecondsThreshold": 600,
 | 
				
			||||||
 | 
					                        "statsReportFormat": "RAW",
 | 
				
			||||||
 | 
					                        "radioType": "is5GHzU",
 | 
				
			||||||
 | 
					                        "serviceMetricDataType": "Channel"
 | 
				
			||||||
 | 
					                    }
 | 
				
			||||||
 | 
					                ],
 | 
				
			||||||
 | 
					                "Neighbour": [
 | 
				
			||||||
 | 
					                    {
 | 
				
			||||||
 | 
					                        "model_type": "ServiceMetricSurveyConfigParameters",
 | 
				
			||||||
 | 
					                        "samplingInterval": 30,
 | 
				
			||||||
 | 
					                        "reportingIntervalSeconds": 60,
 | 
				
			||||||
 | 
					                        "channelSurveyType": "ON_CHANNEL",
 | 
				
			||||||
 | 
					                        "scanIntervalMillis": 0,
 | 
				
			||||||
 | 
					                        "percentUtilizationThreshold": 10,
 | 
				
			||||||
 | 
					                        "delayMillisecondsThreshold": 600,
 | 
				
			||||||
 | 
					                        "statsReportFormat": "RAW",
 | 
				
			||||||
 | 
					                        "radioType": "is5GHzL",
 | 
				
			||||||
 | 
					                        "serviceMetricDataType": "Neighbour"
 | 
				
			||||||
 | 
					                    },
 | 
				
			||||||
 | 
					                    {
 | 
				
			||||||
 | 
					                        "model_type": "ServiceMetricSurveyConfigParameters",
 | 
				
			||||||
 | 
					                        "samplingInterval": 30,
 | 
				
			||||||
 | 
					                        "reportingIntervalSeconds": 60,
 | 
				
			||||||
 | 
					                        "channelSurveyType": "ON_CHANNEL",
 | 
				
			||||||
 | 
					                        "scanIntervalMillis": 0,
 | 
				
			||||||
 | 
					                        "percentUtilizationThreshold": 10,
 | 
				
			||||||
 | 
					                        "delayMillisecondsThreshold": 600,
 | 
				
			||||||
 | 
					                        "statsReportFormat": "RAW",
 | 
				
			||||||
 | 
					                        "radioType": "is2dot4GHz",
 | 
				
			||||||
 | 
					                        "serviceMetricDataType": "Neighbour"
 | 
				
			||||||
 | 
					                    },
 | 
				
			||||||
 | 
					                    {
 | 
				
			||||||
 | 
					                        "model_type": "ServiceMetricSurveyConfigParameters",
 | 
				
			||||||
 | 
					                        "samplingInterval": 30,
 | 
				
			||||||
 | 
					                        "reportingIntervalSeconds": 60,
 | 
				
			||||||
 | 
					                        "channelSurveyType": "ON_CHANNEL",
 | 
				
			||||||
 | 
					                        "scanIntervalMillis": 0,
 | 
				
			||||||
 | 
					                        "percentUtilizationThreshold": 10,
 | 
				
			||||||
 | 
					                        "delayMillisecondsThreshold": 600,
 | 
				
			||||||
 | 
					                        "statsReportFormat": "RAW",
 | 
				
			||||||
 | 
					                        "radioType": "is5GHzU",
 | 
				
			||||||
 | 
					                        "serviceMetricDataType": "Neighbour"
 | 
				
			||||||
 | 
					                    },
 | 
				
			||||||
 | 
					                    {
 | 
				
			||||||
 | 
					                        "model_type": "ServiceMetricSurveyConfigParameters",
 | 
				
			||||||
 | 
					                        "samplingInterval": 30,
 | 
				
			||||||
 | 
					                        "reportingIntervalSeconds": 120,
 | 
				
			||||||
 | 
					                        "channelSurveyType": "OFF_CHANNEL",
 | 
				
			||||||
 | 
					                        "scanIntervalMillis": 0,
 | 
				
			||||||
 | 
					                        "percentUtilizationThreshold": 10,
 | 
				
			||||||
 | 
					                        "delayMillisecondsThreshold": 600,
 | 
				
			||||||
 | 
					                        "statsReportFormat": "RAW",
 | 
				
			||||||
 | 
					                        "radioType": "is5GHzU",
 | 
				
			||||||
 | 
					                        "serviceMetricDataType": "Neighbour"
 | 
				
			||||||
 | 
					                    },
 | 
				
			||||||
 | 
					                    {
 | 
				
			||||||
 | 
					                        "model_type": "ServiceMetricSurveyConfigParameters",
 | 
				
			||||||
 | 
					                        "samplingInterval": 30,
 | 
				
			||||||
 | 
					                        "reportingIntervalSeconds": 120,
 | 
				
			||||||
 | 
					                        "channelSurveyType": "OFF_CHANNEL",
 | 
				
			||||||
 | 
					                        "scanIntervalMillis": 0,
 | 
				
			||||||
 | 
					                        "percentUtilizationThreshold": 10,
 | 
				
			||||||
 | 
					                        "delayMillisecondsThreshold": 600,
 | 
				
			||||||
 | 
					                        "statsReportFormat": "RAW",
 | 
				
			||||||
 | 
					                        "radioType": "is5GHzL",
 | 
				
			||||||
 | 
					                        "serviceMetricDataType": "Neighbour"
 | 
				
			||||||
 | 
					                    },
 | 
				
			||||||
 | 
					                    {
 | 
				
			||||||
 | 
					                        "model_type": "ServiceMetricSurveyConfigParameters",
 | 
				
			||||||
 | 
					                        "samplingInterval": 30,
 | 
				
			||||||
 | 
					                        "reportingIntervalSeconds": 120,
 | 
				
			||||||
 | 
					                        "channelSurveyType": "OFF_CHANNEL",
 | 
				
			||||||
 | 
					                        "scanIntervalMillis": 0,
 | 
				
			||||||
 | 
					                        "percentUtilizationThreshold": 10,
 | 
				
			||||||
 | 
					                        "delayMillisecondsThreshold": 600,
 | 
				
			||||||
 | 
					                        "statsReportFormat": "RAW",
 | 
				
			||||||
 | 
					                        "radioType": "is2dot4GHz",
 | 
				
			||||||
 | 
					                        "serviceMetricDataType": "Neighbour"
 | 
				
			||||||
 | 
					                    }
 | 
				
			||||||
 | 
					                ]
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					            "profileType": "metrics"
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					        "createdTimestamp": 1602113058699,
 | 
				
			||||||
 | 
					        "lastModifiedTimestamp": 1602113058699,
 | 
				
			||||||
 | 
					        "childProfileIds": []
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					]
 | 
				
			||||||
							
								
								
									
										36
									
								
								opensync-ext-static/src/main/resources/ProfileOperator.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										36
									
								
								opensync-ext-static/src/main/resources/ProfileOperator.json
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,36 @@
 | 
				
			|||||||
 | 
					[
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					        "model_type": "Profile",
 | 
				
			||||||
 | 
					        "id": 6,
 | 
				
			||||||
 | 
					        "customerId": 2,
 | 
				
			||||||
 | 
					        "profileType": "operator",
 | 
				
			||||||
 | 
					        "name": "TipWlan-Hotspot20-Operator",
 | 
				
			||||||
 | 
					        "details": {
 | 
				
			||||||
 | 
					            "model_type": "OperatorProfile",
 | 
				
			||||||
 | 
					            "serverOnlyAuthenticatedL2EncryptionNetwork": false,
 | 
				
			||||||
 | 
					            "x509CertificateLocation": "/etc/ca.pem",
 | 
				
			||||||
 | 
					            "operatorFriendlyName": [
 | 
				
			||||||
 | 
					                {
 | 
				
			||||||
 | 
					                    "model_type": "Hotspot20Duple",
 | 
				
			||||||
 | 
					                    "locale": "en_CA",
 | 
				
			||||||
 | 
					                    "dupleIso3Language": "eng",
 | 
				
			||||||
 | 
					                    "dupleName": "Default friendly operator name",
 | 
				
			||||||
 | 
					                    "defaultDupleSeparator": ":",
 | 
				
			||||||
 | 
					                    "asDuple": "eng:Default friendly operator name"
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                {
 | 
				
			||||||
 | 
					                    "model_type": "Hotspot20Duple",
 | 
				
			||||||
 | 
					                    "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": "operator"
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					        "createdTimestamp": 1602113058719,
 | 
				
			||||||
 | 
					        "lastModifiedTimestamp": 1602113058719,
 | 
				
			||||||
 | 
					        "childProfileIds": []
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					]
 | 
				
			||||||
@@ -1,34 +1,34 @@
 | 
				
			|||||||
[
 | 
					[
 | 
				
			||||||
{
 | 
					        {
 | 
				
			||||||
  "model_type": "Profile",
 | 
					            "model_type": "Profile",
 | 
				
			||||||
  "id": 1,
 | 
					            "id": 1,
 | 
				
			||||||
  "customerId": 2,
 | 
					            "customerId": 2,
 | 
				
			||||||
  "profileType": "radius",
 | 
					            "profileType": "radius",
 | 
				
			||||||
  "name": "RadiusProfileOttawa",
 | 
					            "name": "Radius-Profile",
 | 
				
			||||||
  "details": {
 | 
					            "details": {
 | 
				
			||||||
    "model_type": "RadiusProfile",
 | 
					                "model_type": "RadiusProfile",
 | 
				
			||||||
    "subnetConfiguration": null,
 | 
					                "subnetConfiguration": null,
 | 
				
			||||||
    "serviceRegionMap": {
 | 
					                "serviceRegionMap": {
 | 
				
			||||||
      "Ottawa": {
 | 
					                    "Ottawa": {
 | 
				
			||||||
        "model_type": "RadiusServiceRegion",
 | 
					                        "model_type": "RadiusServiceRegion",
 | 
				
			||||||
        "serverMap": {
 | 
					                        "serverMap": {
 | 
				
			||||||
          "RadiusProfileOttawa": [
 | 
					                            "Radius-Profile": [
 | 
				
			||||||
            {
 | 
					                                {
 | 
				
			||||||
              "model_type": "RadiusServer",
 | 
					                                    "model_type": "RadiusServer",
 | 
				
			||||||
              "ipAddress": "localhost",
 | 
					                                    "ipAddress": "192.168.0.1",
 | 
				
			||||||
              "secret": "testing123",
 | 
					                                    "secret": "testing123",
 | 
				
			||||||
              "authPort": 1812,
 | 
					                                    "authPort": 1812,
 | 
				
			||||||
              "timeout": null
 | 
					                                    "timeout": null
 | 
				
			||||||
            }
 | 
					                                }
 | 
				
			||||||
          ]
 | 
					                            ]
 | 
				
			||||||
        },
 | 
					                        },
 | 
				
			||||||
        "regionName": "Ottawa"
 | 
					                        "regionName": "Ottawa"
 | 
				
			||||||
      }
 | 
					                    }
 | 
				
			||||||
    },
 | 
					                },
 | 
				
			||||||
    "profileType": "radius"
 | 
					                "profileType": "radius"
 | 
				
			||||||
  },
 | 
					            },
 | 
				
			||||||
  "createdTimestamp": 1591653174195,
 | 
					            "createdTimestamp": 1601961451668,
 | 
				
			||||||
  "lastModifiedTimestamp": 1591653174195,
 | 
					            "lastModifiedTimestamp": 1601961451668,
 | 
				
			||||||
  "childProfileIds": []
 | 
					            "childProfileIds": []
 | 
				
			||||||
}
 | 
					        }
 | 
				
			||||||
]
 | 
					]
 | 
				
			||||||
							
								
								
									
										204
									
								
								opensync-ext-static/src/main/resources/ProfileRf.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										204
									
								
								opensync-ext-static/src/main/resources/ProfileRf.json
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,204 @@
 | 
				
			|||||||
 | 
					{
 | 
				
			||||||
 | 
					    "model_type": "Profile",
 | 
				
			||||||
 | 
					    "id": 13,
 | 
				
			||||||
 | 
					    "customerId": 2,
 | 
				
			||||||
 | 
					    "profileType": "rf",
 | 
				
			||||||
 | 
					    "name": "TipWlan-rf",
 | 
				
			||||||
 | 
					    "details": {
 | 
				
			||||||
 | 
					        "model_type": "RfConfiguration",
 | 
				
			||||||
 | 
					        "rfConfigMap": {
 | 
				
			||||||
 | 
					            "is5GHz": {
 | 
				
			||||||
 | 
					                "model_type": "RfElementConfiguration",
 | 
				
			||||||
 | 
					                "rf": "TipWlan-rf",
 | 
				
			||||||
 | 
					                "radioType": "is5GHz",
 | 
				
			||||||
 | 
					                "radioMode": "modeAC",
 | 
				
			||||||
 | 
					                "beaconInterval": 100,
 | 
				
			||||||
 | 
					                "forceScanDuringVoice": "disabled",
 | 
				
			||||||
 | 
					                "rtsCtsThreshold": 65535,
 | 
				
			||||||
 | 
					                "channelBandwidth": "is80MHz",
 | 
				
			||||||
 | 
					                "mimoMode": "twoByTwo",
 | 
				
			||||||
 | 
					                "maxNumClients": 100,
 | 
				
			||||||
 | 
					                "multicastRate": "auto",
 | 
				
			||||||
 | 
					                "autoChannelSelection": false,
 | 
				
			||||||
 | 
					                "activeScanSettings": {
 | 
				
			||||||
 | 
					                    "model_type": "ActiveScanSettings",
 | 
				
			||||||
 | 
					                    "enabled": true,
 | 
				
			||||||
 | 
					                    "scanFrequencySeconds": 10,
 | 
				
			||||||
 | 
					                    "scanDurationMillis": 65
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                "managementRate": "auto",
 | 
				
			||||||
 | 
					                "rxCellSizeDb": -90,
 | 
				
			||||||
 | 
					                "probeResponseThresholdDb": -90,
 | 
				
			||||||
 | 
					                "clientDisconnectThresholdDb": -90,
 | 
				
			||||||
 | 
					                "eirpTxPower": 18,
 | 
				
			||||||
 | 
					                "bestApEnabled": null,
 | 
				
			||||||
 | 
					                "neighbouringListApConfig": {
 | 
				
			||||||
 | 
					                    "model_type": "NeighbouringAPListConfiguration",
 | 
				
			||||||
 | 
					                    "minSignal": -85,
 | 
				
			||||||
 | 
					                    "maxAps": 25
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                "perimeterDetectionEnabled": true,
 | 
				
			||||||
 | 
					                "channelHopSettings": {
 | 
				
			||||||
 | 
					                    "model_type": "ChannelHopSettings",
 | 
				
			||||||
 | 
					                    "noiseFloorThresholdInDB": -75,
 | 
				
			||||||
 | 
					                    "noiseFloorThresholdTimeInSeconds": 180,
 | 
				
			||||||
 | 
					                    "nonWifiThresholdInPercentage": 50,
 | 
				
			||||||
 | 
					                    "nonWifiThresholdTimeInSeconds": 180,
 | 
				
			||||||
 | 
					                    "obssHopMode": "NON_WIFI"
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                "bestApSettings": {
 | 
				
			||||||
 | 
					                    "model_type": "RadioBestApSettings",
 | 
				
			||||||
 | 
					                    "mlComputed": true,
 | 
				
			||||||
 | 
					                    "dropInSnrPercentage": 30,
 | 
				
			||||||
 | 
					                    "minLoadFactor": 40
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                "minAutoCellSize": -65
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					            "is2dot4GHz": {
 | 
				
			||||||
 | 
					                "model_type": "RfElementConfiguration",
 | 
				
			||||||
 | 
					                "rf": "TipWlan-rf",
 | 
				
			||||||
 | 
					                "radioType": "is2dot4GHz",
 | 
				
			||||||
 | 
					                "radioMode": "modeN",
 | 
				
			||||||
 | 
					                "beaconInterval": 100,
 | 
				
			||||||
 | 
					                "forceScanDuringVoice": "disabled",
 | 
				
			||||||
 | 
					                "rtsCtsThreshold": 65535,
 | 
				
			||||||
 | 
					                "channelBandwidth": "is20MHz",
 | 
				
			||||||
 | 
					                "mimoMode": "twoByTwo",
 | 
				
			||||||
 | 
					                "maxNumClients": 100,
 | 
				
			||||||
 | 
					                "multicastRate": "auto",
 | 
				
			||||||
 | 
					                "autoChannelSelection": false,
 | 
				
			||||||
 | 
					                "activeScanSettings": {
 | 
				
			||||||
 | 
					                    "model_type": "ActiveScanSettings",
 | 
				
			||||||
 | 
					                    "enabled": true,
 | 
				
			||||||
 | 
					                    "scanFrequencySeconds": 10,
 | 
				
			||||||
 | 
					                    "scanDurationMillis": 65
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                "managementRate": "auto",
 | 
				
			||||||
 | 
					                "rxCellSizeDb": -90,
 | 
				
			||||||
 | 
					                "probeResponseThresholdDb": -90,
 | 
				
			||||||
 | 
					                "clientDisconnectThresholdDb": -90,
 | 
				
			||||||
 | 
					                "eirpTxPower": 18,
 | 
				
			||||||
 | 
					                "bestApEnabled": null,
 | 
				
			||||||
 | 
					                "neighbouringListApConfig": {
 | 
				
			||||||
 | 
					                    "model_type": "NeighbouringAPListConfiguration",
 | 
				
			||||||
 | 
					                    "minSignal": -85,
 | 
				
			||||||
 | 
					                    "maxAps": 25
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                "perimeterDetectionEnabled": true,
 | 
				
			||||||
 | 
					                "channelHopSettings": {
 | 
				
			||||||
 | 
					                    "model_type": "ChannelHopSettings",
 | 
				
			||||||
 | 
					                    "noiseFloorThresholdInDB": -75,
 | 
				
			||||||
 | 
					                    "noiseFloorThresholdTimeInSeconds": 180,
 | 
				
			||||||
 | 
					                    "nonWifiThresholdInPercentage": 50,
 | 
				
			||||||
 | 
					                    "nonWifiThresholdTimeInSeconds": 180,
 | 
				
			||||||
 | 
					                    "obssHopMode": "NON_WIFI"
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                "bestApSettings": {
 | 
				
			||||||
 | 
					                    "model_type": "RadioBestApSettings",
 | 
				
			||||||
 | 
					                    "mlComputed": true,
 | 
				
			||||||
 | 
					                    "dropInSnrPercentage": 20,
 | 
				
			||||||
 | 
					                    "minLoadFactor": 50
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                "minAutoCellSize": -65
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					            "is5GHzU": {
 | 
				
			||||||
 | 
					                "model_type": "RfElementConfiguration",
 | 
				
			||||||
 | 
					                "rf": "TipWlan-rf",
 | 
				
			||||||
 | 
					                "radioType": "is5GHzU",
 | 
				
			||||||
 | 
					                "radioMode": "modeAC",
 | 
				
			||||||
 | 
					                "beaconInterval": 100,
 | 
				
			||||||
 | 
					                "forceScanDuringVoice": "disabled",
 | 
				
			||||||
 | 
					                "rtsCtsThreshold": 65535,
 | 
				
			||||||
 | 
					                "channelBandwidth": "is80MHz",
 | 
				
			||||||
 | 
					                "mimoMode": "twoByTwo",
 | 
				
			||||||
 | 
					                "maxNumClients": 100,
 | 
				
			||||||
 | 
					                "multicastRate": "auto",
 | 
				
			||||||
 | 
					                "autoChannelSelection": false,
 | 
				
			||||||
 | 
					                "activeScanSettings": {
 | 
				
			||||||
 | 
					                    "model_type": "ActiveScanSettings",
 | 
				
			||||||
 | 
					                    "enabled": true,
 | 
				
			||||||
 | 
					                    "scanFrequencySeconds": 10,
 | 
				
			||||||
 | 
					                    "scanDurationMillis": 65
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                "managementRate": "auto",
 | 
				
			||||||
 | 
					                "rxCellSizeDb": -90,
 | 
				
			||||||
 | 
					                "probeResponseThresholdDb": -90,
 | 
				
			||||||
 | 
					                "clientDisconnectThresholdDb": -90,
 | 
				
			||||||
 | 
					                "eirpTxPower": 18,
 | 
				
			||||||
 | 
					                "bestApEnabled": null,
 | 
				
			||||||
 | 
					                "neighbouringListApConfig": {
 | 
				
			||||||
 | 
					                    "model_type": "NeighbouringAPListConfiguration",
 | 
				
			||||||
 | 
					                    "minSignal": -85,
 | 
				
			||||||
 | 
					                    "maxAps": 25
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                "perimeterDetectionEnabled": true,
 | 
				
			||||||
 | 
					                "channelHopSettings": {
 | 
				
			||||||
 | 
					                    "model_type": "ChannelHopSettings",
 | 
				
			||||||
 | 
					                    "noiseFloorThresholdInDB": -75,
 | 
				
			||||||
 | 
					                    "noiseFloorThresholdTimeInSeconds": 180,
 | 
				
			||||||
 | 
					                    "nonWifiThresholdInPercentage": 50,
 | 
				
			||||||
 | 
					                    "nonWifiThresholdTimeInSeconds": 180,
 | 
				
			||||||
 | 
					                    "obssHopMode": "NON_WIFI"
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                "bestApSettings": {
 | 
				
			||||||
 | 
					                    "model_type": "RadioBestApSettings",
 | 
				
			||||||
 | 
					                    "mlComputed": true,
 | 
				
			||||||
 | 
					                    "dropInSnrPercentage": 30,
 | 
				
			||||||
 | 
					                    "minLoadFactor": 40
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                "minAutoCellSize": -65
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					            "is5GHzL": {
 | 
				
			||||||
 | 
					                "model_type": "RfElementConfiguration",
 | 
				
			||||||
 | 
					                "rf": "TipWlan-rf",
 | 
				
			||||||
 | 
					                "radioType": "is5GHzL",
 | 
				
			||||||
 | 
					                "radioMode": "modeAC",
 | 
				
			||||||
 | 
					                "beaconInterval": 100,
 | 
				
			||||||
 | 
					                "forceScanDuringVoice": "disabled",
 | 
				
			||||||
 | 
					                "rtsCtsThreshold": 65535,
 | 
				
			||||||
 | 
					                "channelBandwidth": "is80MHz",
 | 
				
			||||||
 | 
					                "mimoMode": "twoByTwo",
 | 
				
			||||||
 | 
					                "maxNumClients": 100,
 | 
				
			||||||
 | 
					                "multicastRate": "auto",
 | 
				
			||||||
 | 
					                "autoChannelSelection": false,
 | 
				
			||||||
 | 
					                "activeScanSettings": {
 | 
				
			||||||
 | 
					                    "model_type": "ActiveScanSettings",
 | 
				
			||||||
 | 
					                    "enabled": true,
 | 
				
			||||||
 | 
					                    "scanFrequencySeconds": 10,
 | 
				
			||||||
 | 
					                    "scanDurationMillis": 65
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                "managementRate": "auto",
 | 
				
			||||||
 | 
					                "rxCellSizeDb": -90,
 | 
				
			||||||
 | 
					                "probeResponseThresholdDb": -90,
 | 
				
			||||||
 | 
					                "clientDisconnectThresholdDb": -90,
 | 
				
			||||||
 | 
					                "eirpTxPower": 18,
 | 
				
			||||||
 | 
					                "bestApEnabled": null,
 | 
				
			||||||
 | 
					                "neighbouringListApConfig": {
 | 
				
			||||||
 | 
					                    "model_type": "NeighbouringAPListConfiguration",
 | 
				
			||||||
 | 
					                    "minSignal": -85,
 | 
				
			||||||
 | 
					                    "maxAps": 25
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                "perimeterDetectionEnabled": true,
 | 
				
			||||||
 | 
					                "channelHopSettings": {
 | 
				
			||||||
 | 
					                    "model_type": "ChannelHopSettings",
 | 
				
			||||||
 | 
					                    "noiseFloorThresholdInDB": -75,
 | 
				
			||||||
 | 
					                    "noiseFloorThresholdTimeInSeconds": 180,
 | 
				
			||||||
 | 
					                    "nonWifiThresholdInPercentage": 50,
 | 
				
			||||||
 | 
					                    "nonWifiThresholdTimeInSeconds": 180,
 | 
				
			||||||
 | 
					                    "obssHopMode": "NON_WIFI"
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                "bestApSettings": {
 | 
				
			||||||
 | 
					                    "model_type": "RadioBestApSettings",
 | 
				
			||||||
 | 
					                    "mlComputed": true,
 | 
				
			||||||
 | 
					                    "dropInSnrPercentage": 30,
 | 
				
			||||||
 | 
					                    "minLoadFactor": 40
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                "minAutoCellSize": -65
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					        "profileType": "rf"
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "createdTimestamp": 1602182806063,
 | 
				
			||||||
 | 
					    "lastModifiedTimestamp": 1602182806063,
 | 
				
			||||||
 | 
					    "childProfileIds": []
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -1,184 +1,134 @@
 | 
				
			|||||||
[
 | 
					[
 | 
				
			||||||
{
 | 
						{
 | 
				
			||||||
  "model_type": "Profile",
 | 
							"model_type": "Profile",
 | 
				
			||||||
  "id": 6,
 | 
							"id": 5,
 | 
				
			||||||
  "customerId": 2,
 | 
							"customerId": 2,
 | 
				
			||||||
  "profileType": "ssid",
 | 
							"profileType": "ssid",
 | 
				
			||||||
  "name": "DefaultSsid-2g",
 | 
							"name": "TipWlan-cloud-hotspot-access",
 | 
				
			||||||
  "details": {
 | 
							"details": {
 | 
				
			||||||
    "model_type": "SsidConfiguration",
 | 
								"model_type": "SsidConfiguration",
 | 
				
			||||||
    "ssid": "Default-SSID-2g",
 | 
								"ssid": "TipWlan-cloud-hotspot-access",
 | 
				
			||||||
    "appliedRadios": [
 | 
								"appliedRadios": [
 | 
				
			||||||
      "is2dot4GHz"
 | 
									"is5GHzU",
 | 
				
			||||||
    ],
 | 
									"is5GHzL",
 | 
				
			||||||
    "ssidAdminState": "enabled",
 | 
									"is2dot4GHz"
 | 
				
			||||||
    "secureMode": "wpa2PSK",
 | 
								],
 | 
				
			||||||
    "vlanId": 1,
 | 
								"ssidAdminState": "enabled",
 | 
				
			||||||
    "keyStr": "12345678",
 | 
								"secureMode": "wpa2PSK",
 | 
				
			||||||
    "broadcastSsid": "enabled",
 | 
								"vlanId": 1,
 | 
				
			||||||
    "keyRefresh": 0,
 | 
								"keyStr": "testing123",
 | 
				
			||||||
    "noLocalSubnets": false,
 | 
								"broadcastSsid": "enabled",
 | 
				
			||||||
    "radiusServiceName": null,
 | 
								"keyRefresh": 0,
 | 
				
			||||||
    "captivePortalId": null,
 | 
								"noLocalSubnets": false,
 | 
				
			||||||
    "bandwidthLimitDown": 0,
 | 
								"radiusServiceName": null,
 | 
				
			||||||
    "bandwidthLimitUp": 0,
 | 
								"captivePortalId": null,
 | 
				
			||||||
    "videoTrafficOnly": false,
 | 
								"bandwidthLimitDown": 0,
 | 
				
			||||||
    "radioBasedConfigs": {
 | 
								"bandwidthLimitUp": 0,
 | 
				
			||||||
      "is5GHz": {
 | 
								"clientBandwidthLimitDown": 0,
 | 
				
			||||||
        "model_type": "RadioBasedSsidConfiguration",
 | 
								"clientBandwidthLimitUp": 0,
 | 
				
			||||||
        "enable80211r": null,
 | 
								"videoTrafficOnly": false,
 | 
				
			||||||
        "enable80211k": null,
 | 
								"radioBasedConfigs": {
 | 
				
			||||||
        "enable80211v": null
 | 
									"is5GHz": {
 | 
				
			||||||
      },
 | 
										"model_type": "RadioBasedSsidConfiguration",
 | 
				
			||||||
      "is2dot4GHz": {
 | 
										"enable80211r": null,
 | 
				
			||||||
        "model_type": "RadioBasedSsidConfiguration",
 | 
										"enable80211k": null,
 | 
				
			||||||
        "enable80211r": null,
 | 
										"enable80211v": null
 | 
				
			||||||
        "enable80211k": null,
 | 
									},
 | 
				
			||||||
        "enable80211v": null
 | 
									"is2dot4GHz": {
 | 
				
			||||||
      },
 | 
										"model_type": "RadioBasedSsidConfiguration",
 | 
				
			||||||
      "is5GHzU": {
 | 
										"enable80211r": null,
 | 
				
			||||||
        "model_type": "RadioBasedSsidConfiguration",
 | 
										"enable80211k": null,
 | 
				
			||||||
        "enable80211r": null,
 | 
										"enable80211v": null
 | 
				
			||||||
        "enable80211k": null,
 | 
									},
 | 
				
			||||||
        "enable80211v": null
 | 
									"is5GHzU": {
 | 
				
			||||||
      },
 | 
										"model_type": "RadioBasedSsidConfiguration",
 | 
				
			||||||
      "is5GHzL": {
 | 
										"enable80211r": null,
 | 
				
			||||||
        "model_type": "RadioBasedSsidConfiguration",
 | 
										"enable80211k": null,
 | 
				
			||||||
        "enable80211r": null,
 | 
										"enable80211v": null
 | 
				
			||||||
        "enable80211k": null,
 | 
									},
 | 
				
			||||||
        "enable80211v": null
 | 
									"is5GHzL": {
 | 
				
			||||||
      }
 | 
										"model_type": "RadioBasedSsidConfiguration",
 | 
				
			||||||
    },
 | 
										"enable80211r": null,
 | 
				
			||||||
    "bonjourGatewayProfileId": null,
 | 
										"enable80211k": null,
 | 
				
			||||||
    "enable80211w": null,
 | 
										"enable80211v": null
 | 
				
			||||||
    "wepConfig": null,
 | 
									}
 | 
				
			||||||
    "forwardMode": null,
 | 
								},
 | 
				
			||||||
    "profileType": "ssid"
 | 
								"bonjourGatewayProfileId": null,
 | 
				
			||||||
  },
 | 
								"enable80211w": null,
 | 
				
			||||||
  "createdTimestamp": 1591653239983,
 | 
								"wepConfig": null,
 | 
				
			||||||
  "lastModifiedTimestamp": 1591653239983,
 | 
								"forwardMode": null,
 | 
				
			||||||
  "childProfileIds": []
 | 
								"profileType": "ssid"
 | 
				
			||||||
},
 | 
							},
 | 
				
			||||||
{
 | 
							"createdTimestamp": 1602113058718,
 | 
				
			||||||
  "model_type": "Profile",
 | 
							"lastModifiedTimestamp": 1602113059547,
 | 
				
			||||||
  "id": 7,
 | 
							"childProfileIds": [
 | 
				
			||||||
  "customerId": 2,
 | 
								10
 | 
				
			||||||
  "profileType": "ssid",
 | 
							]
 | 
				
			||||||
  "name": "DefaultSsid-5gl",
 | 
						},
 | 
				
			||||||
  "details": {
 | 
						{
 | 
				
			||||||
    "model_type": "SsidConfiguration",
 | 
							"model_type": "Profile",
 | 
				
			||||||
    "ssid": "Default-SSID-5gl",
 | 
							"id": 11,
 | 
				
			||||||
    "appliedRadios": [
 | 
							"customerId": 2,
 | 
				
			||||||
      "is5GHzL"
 | 
							"profileType": "ssid",
 | 
				
			||||||
    ],
 | 
							"name": "TipWlan-cloud-3-radios",
 | 
				
			||||||
    "ssidAdminState": "enabled",
 | 
							"details": {
 | 
				
			||||||
    "secureMode": "wpaEAP",
 | 
								"model_type": "SsidConfiguration",
 | 
				
			||||||
    "vlanId": 1,
 | 
								"ssid": "TipWlan-cloud-3-radios",
 | 
				
			||||||
    "keyStr": "12345678",
 | 
								"appliedRadios": [
 | 
				
			||||||
    "broadcastSsid": "enabled",
 | 
									"is5GHzL",
 | 
				
			||||||
    "keyRefresh": 0,
 | 
									"is2dot4GHz",
 | 
				
			||||||
    "noLocalSubnets": false,
 | 
									"is5GHzU"
 | 
				
			||||||
    "radiusServiceName": "RadiusProfileOttawa",
 | 
								],
 | 
				
			||||||
    "captivePortalId": null,
 | 
								"ssidAdminState": "enabled",
 | 
				
			||||||
    "bandwidthLimitDown": 0,
 | 
								"secureMode": "open",
 | 
				
			||||||
    "bandwidthLimitUp": 0,
 | 
								"vlanId": 1,
 | 
				
			||||||
    "videoTrafficOnly": false,
 | 
								"keyStr": null,
 | 
				
			||||||
    "radioBasedConfigs": {
 | 
								"broadcastSsid": "enabled",
 | 
				
			||||||
      "is5GHz": {
 | 
								"keyRefresh": 0,
 | 
				
			||||||
        "model_type": "RadioBasedSsidConfiguration",
 | 
								"noLocalSubnets": false,
 | 
				
			||||||
        "enable80211r": null,
 | 
								"radiusServiceName": null,
 | 
				
			||||||
        "enable80211k": null,
 | 
								"captivePortalId": null,
 | 
				
			||||||
        "enable80211v": null
 | 
								"bandwidthLimitDown": 0,
 | 
				
			||||||
      },
 | 
								"bandwidthLimitUp": 0,
 | 
				
			||||||
      "is2dot4GHz": {
 | 
								"clientBandwidthLimitDown": 0,
 | 
				
			||||||
        "model_type": "RadioBasedSsidConfiguration",
 | 
								"clientBandwidthLimitUp": 0,
 | 
				
			||||||
        "enable80211r": null,
 | 
								"videoTrafficOnly": false,
 | 
				
			||||||
        "enable80211k": null,
 | 
								"radioBasedConfigs": {
 | 
				
			||||||
        "enable80211v": null
 | 
									"is5GHz": {
 | 
				
			||||||
      },
 | 
										"model_type": "RadioBasedSsidConfiguration",
 | 
				
			||||||
      "is5GHzU": {
 | 
										"enable80211r": null,
 | 
				
			||||||
        "model_type": "RadioBasedSsidConfiguration",
 | 
										"enable80211k": null,
 | 
				
			||||||
        "enable80211r": null,
 | 
										"enable80211v": null
 | 
				
			||||||
        "enable80211k": null,
 | 
									},
 | 
				
			||||||
        "enable80211v": null
 | 
									"is2dot4GHz": {
 | 
				
			||||||
      },
 | 
										"model_type": "RadioBasedSsidConfiguration",
 | 
				
			||||||
      "is5GHzL": {
 | 
										"enable80211r": null,
 | 
				
			||||||
        "model_type": "RadioBasedSsidConfiguration",
 | 
										"enable80211k": null,
 | 
				
			||||||
        "enable80211r": null,
 | 
										"enable80211v": null
 | 
				
			||||||
        "enable80211k": null,
 | 
									},
 | 
				
			||||||
        "enable80211v": null
 | 
									"is5GHzU": {
 | 
				
			||||||
      }
 | 
										"model_type": "RadioBasedSsidConfiguration",
 | 
				
			||||||
    },
 | 
										"enable80211r": null,
 | 
				
			||||||
    "bonjourGatewayProfileId": null,
 | 
										"enable80211k": null,
 | 
				
			||||||
    "enable80211w": null,
 | 
										"enable80211v": null
 | 
				
			||||||
    "wepConfig": null,
 | 
									},
 | 
				
			||||||
    "forwardMode": null,
 | 
									"is5GHzL": {
 | 
				
			||||||
    "profileType": "ssid"
 | 
										"model_type": "RadioBasedSsidConfiguration",
 | 
				
			||||||
  },
 | 
										"enable80211r": null,
 | 
				
			||||||
  "createdTimestamp": 1591653240017,
 | 
										"enable80211k": null,
 | 
				
			||||||
  "lastModifiedTimestamp": 1591654215374,
 | 
										"enable80211v": null
 | 
				
			||||||
  "childProfileIds": [
 | 
									}
 | 
				
			||||||
    1
 | 
								},
 | 
				
			||||||
  ]
 | 
								"bonjourGatewayProfileId": null,
 | 
				
			||||||
},
 | 
								"enable80211w": null,
 | 
				
			||||||
{
 | 
								"wepConfig": null,
 | 
				
			||||||
  "model_type": "Profile",
 | 
								"forwardMode": null,
 | 
				
			||||||
  "id": 8,
 | 
								"profileType": "ssid"
 | 
				
			||||||
  "customerId": 2,
 | 
							},
 | 
				
			||||||
  "profileType": "ssid",
 | 
							"createdTimestamp": 1602183994766,
 | 
				
			||||||
  "name": "DefaultSsid-5gu",
 | 
							"lastModifiedTimestamp": 1602183994766,
 | 
				
			||||||
  "details": {
 | 
							"childProfileIds": [
 | 
				
			||||||
    "model_type": "SsidConfiguration",
 | 
								10
 | 
				
			||||||
    "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": []
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
]
 | 
					 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										42
									
								
								opensync-ext-static/src/main/resources/ProfileVenue.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										42
									
								
								opensync-ext-static/src/main/resources/ProfileVenue.json
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,42 @@
 | 
				
			|||||||
 | 
					[
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        "model_type": "Profile",
 | 
				
			||||||
 | 
					        "id": 7,
 | 
				
			||||||
 | 
					        "customerId": 2,
 | 
				
			||||||
 | 
					        "profileType": "venue",
 | 
				
			||||||
 | 
					        "name": "TipWlan-Hotspot20-Venue",
 | 
				
			||||||
 | 
					        "details": {
 | 
				
			||||||
 | 
					            "model_type": "VenueProfile",
 | 
				
			||||||
 | 
					            "venueNameSet": [
 | 
				
			||||||
 | 
					                {
 | 
				
			||||||
 | 
					                    "model_type": "VenueName",
 | 
				
			||||||
 | 
					                    "locale": "fr_CA",
 | 
				
			||||||
 | 
					                    "dupleIso3Language": "fra",
 | 
				
			||||||
 | 
					                    "dupleName": "Exemple de lieu",
 | 
				
			||||||
 | 
					                    "defaultDupleSeparator": ":",
 | 
				
			||||||
 | 
					                    "venueUrl": "http://www.example.com/info-fra",
 | 
				
			||||||
 | 
					                    "asDuple": "fra:Exemple de lieu"
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                {
 | 
				
			||||||
 | 
					                    "model_type": "VenueName",
 | 
				
			||||||
 | 
					                    "locale": "en_CA",
 | 
				
			||||||
 | 
					                    "dupleIso3Language": "eng",
 | 
				
			||||||
 | 
					                    "dupleName": "Example venue",
 | 
				
			||||||
 | 
					                    "defaultDupleSeparator": ":",
 | 
				
			||||||
 | 
					                    "venueUrl": "http://www.example.com/info-eng",
 | 
				
			||||||
 | 
					                    "asDuple": "eng:Example venue"
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					            ],
 | 
				
			||||||
 | 
					            "venueTypeAssignment": {
 | 
				
			||||||
 | 
					                "model_type": "VenueTypeAssignment",
 | 
				
			||||||
 | 
					                "venueDescription": "Research and Development Facility",
 | 
				
			||||||
 | 
					                "venueGroupId": 2,
 | 
				
			||||||
 | 
					                "venueTypeId": 8
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					            "profileType": "venue"
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					        "createdTimestamp": 1602113058725,
 | 
				
			||||||
 | 
					        "lastModifiedTimestamp": 1602113058725,
 | 
				
			||||||
 | 
					        "childProfileIds": []
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					]
 | 
				
			||||||
@@ -10,7 +10,7 @@
 | 
				
			|||||||
  "ssidConfigs" : [ {
 | 
					  "ssidConfigs" : [ {
 | 
				
			||||||
    "model_type" : "OpensyncAPSsidConfig",
 | 
					    "model_type" : "OpensyncAPSsidConfig",
 | 
				
			||||||
    "radioType" : "is2dot4GHz",
 | 
					    "radioType" : "is2dot4GHz",
 | 
				
			||||||
    "ssid" : "Connectus-local",
 | 
					    "ssid" : "Tip-wlan-local",
 | 
				
			||||||
    "encryption" : "WPA-PSK",
 | 
					    "encryption" : "WPA-PSK",
 | 
				
			||||||
    "key" : "12345678",
 | 
					    "key" : "12345678",
 | 
				
			||||||
    "mode" : "2",
 | 
					    "mode" : "2",
 | 
				
			||||||
@@ -18,7 +18,7 @@
 | 
				
			|||||||
  }, {
 | 
					  }, {
 | 
				
			||||||
    "model_type" : "OpensyncAPSsidConfig",
 | 
					    "model_type" : "OpensyncAPSsidConfig",
 | 
				
			||||||
    "radioType" : "is5GHzL",
 | 
					    "radioType" : "is5GHzL",
 | 
				
			||||||
    "ssid" : "Connectus-local-5l",
 | 
					    "ssid" : "Tip-wlan-local-5l",
 | 
				
			||||||
    "encryption" : "WPA-PSK",
 | 
					    "encryption" : "WPA-PSK",
 | 
				
			||||||
    "key" : "12345678",
 | 
					    "key" : "12345678",
 | 
				
			||||||
    "mode" : "2",
 | 
					    "mode" : "2",
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -20,10 +20,10 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
			<modules>
 | 
								<modules>
 | 
				
			||||||
				<module>../opensync-ext-interface</module>
 | 
									<module>../opensync-ext-interface</module>
 | 
				
			||||||
				<module>../opensync-ext-static</module>
 | 
					 | 
				
			||||||
				<module>../opensync-ext-cloud</module>
 | 
					 | 
				
			||||||
				<module>../opensync-gateway</module>
 | 
									<module>../opensync-gateway</module>
 | 
				
			||||||
 | 
									<module>../opensync-ext-static</module>
 | 
				
			||||||
				<module>../opensync-gateway-static-process</module>
 | 
									<module>../opensync-gateway-static-process</module>
 | 
				
			||||||
 | 
									<module>../opensync-ext-cloud</module>
 | 
				
			||||||
				<module>../opensync-gateway-cloud-process</module>
 | 
									<module>../opensync-gateway-cloud-process</module>
 | 
				
			||||||
			</modules>
 | 
								</modules>
 | 
				
			||||||
		</profile>
 | 
							</profile>
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -11,9 +11,11 @@
 | 
				
			|||||||
	<name>opensync-gateway-cloud-docker</name>
 | 
						<name>opensync-gateway-cloud-docker</name>
 | 
				
			||||||
	<description>Docker definition for opensync gateway that uses cloud configuration</description>
 | 
						<description>Docker definition for opensync gateway that uses cloud configuration</description>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	<properties>
 | 
						<properties>	
 | 
				
			||||||
		<docker.fabric.version>0.28.0</docker.fabric.version>
 | 
							<docker.fabric.version>0.28.0</docker.fabric.version>
 | 
				
			||||||
		<docker.push.registry>tip-tip-wlan-cloud-docker-repo.jfrog.io</docker.push.registry>
 | 
							<docker.push.registry>tip-tip-wlan-cloud-docker-repo.jfrog.io</docker.push.registry>
 | 
				
			||||||
 | 
							<timestamp>${maven.build.timestamp}</timestamp>
 | 
				
			||||||
 | 
							<maven.build.timestamp.format>yyyy-MM-dd</maven.build.timestamp.format> 		
 | 
				
			||||||
	</properties>
 | 
						</properties>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	<dependencies>
 | 
						<dependencies>
 | 
				
			||||||
@@ -38,6 +40,9 @@
 | 
				
			|||||||
						<image>
 | 
											<image>
 | 
				
			||||||
							<name>opensync-gateway-cloud:${project.version}</name>
 | 
												<name>opensync-gateway-cloud:${project.version}</name>
 | 
				
			||||||
							<build>
 | 
												<build>
 | 
				
			||||||
 | 
													<tags>
 | 
				
			||||||
 | 
														<tag>${project.version}-${timestamp}</tag>
 | 
				
			||||||
 | 
													</tags> 							
 | 
				
			||||||
								<filter>@</filter>
 | 
													<filter>@</filter>
 | 
				
			||||||
								<cleanup>try</cleanup>
 | 
													<cleanup>try</cleanup>
 | 
				
			||||||
								<dockerFileDir>${project.basedir}/src/main/docker</dockerFileDir>
 | 
													<dockerFileDir>${project.basedir}/src/main/docker</dockerFileDir>
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,33 +0,0 @@
 | 
				
			|||||||
FROM adoptopenjdk/openjdk13:alpine-jre
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
LABEL maintainer="ConnectUs.ai as part of the Telecom Infrastructure Project"
 | 
					 | 
				
			||||||
LABEL version="1.0"
 | 
					 | 
				
			||||||
LABEL description="This image runs the mqtt broker (mosquitto) and \
 | 
					 | 
				
			||||||
an OpenSync gateway."
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Update the package list and upgrade installed packages
 | 
					 | 
				
			||||||
RUN apk update && apk upgrade 
 | 
					 | 
				
			||||||
RUN mkdir -p /opt/tip-wlan/certs
 | 
					 | 
				
			||||||
VOLUME ["/opt/tip-wlan/certs"]
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Configure mqtt broker
 | 
					 | 
				
			||||||
RUN apk add mosquitto 
 | 
					 | 
				
			||||||
RUN mkdir -p /mosquitto/data /mosquitto/log
 | 
					 | 
				
			||||||
COPY app/mqtt/mosquitto.conf /etc/mosquitto/mosquitto.conf
 | 
					 | 
				
			||||||
VOLUME ["/mosquitto/data", "/mosquitto/log"]
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Configure OpenSync Gateway
 | 
					 | 
				
			||||||
RUN mkdir -p /app/logs /app/opensync /app/config
 | 
					 | 
				
			||||||
COPY maven/app.jar /app
 | 
					 | 
				
			||||||
COPY app/opensync/logback.xml /app/opensync/logback.xml
 | 
					 | 
				
			||||||
COPY app/run.sh /app
 | 
					 | 
				
			||||||
VOLUME ["/app/logs", "/app/config"]
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
RUN chmod +x /app/run.sh
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
EXPOSE 1883 6640 6643 4043
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
WORKDIR /app
 | 
					 | 
				
			||||||
ENTRYPOINT ["/app/run.sh"]
 | 
					 | 
				
			||||||
CMD [""]
 | 
					 | 
				
			||||||
@@ -1,18 +0,0 @@
 | 
				
			|||||||
cafile /opt/tip-wlan/certs/cacert.pem
 | 
					 | 
				
			||||||
certfile /opt/tip-wlan/certs/mqttservercert.pem
 | 
					 | 
				
			||||||
keyfile /opt/tip-wlan/certs/mqttserverkey_dec.pem
 | 
					 | 
				
			||||||
require_certificate true
 | 
					 | 
				
			||||||
use_identity_as_username true
 | 
					 | 
				
			||||||
allow_anonymous false
 | 
					 | 
				
			||||||
allow_duplicate_messages true
 | 
					 | 
				
			||||||
autosave_interval 900
 | 
					 | 
				
			||||||
log_dest file /mosquitto/log/mosquitto.log
 | 
					 | 
				
			||||||
max_queued_bytes 0
 | 
					 | 
				
			||||||
max_queued_messages 0
 | 
					 | 
				
			||||||
message_size_limit 0
 | 
					 | 
				
			||||||
persistence true
 | 
					 | 
				
			||||||
persistence_file mosquitto.db
 | 
					 | 
				
			||||||
persistence_location /mosquitto/data/
 | 
					 | 
				
			||||||
pid_file /mosquitto/mosquitto.pid
 | 
					 | 
				
			||||||
port 1883
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
@@ -1,80 +0,0 @@
 | 
				
			|||||||
<?xml version="1.0" encoding="UTF-8"?>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<!-- For assistance related to logback-translator or configuration  -->
 | 
					 | 
				
			||||||
<!-- files in general, please contact the logback user mailing list -->
 | 
					 | 
				
			||||||
<!-- at http://www.qos.ch/mailman/listinfo/logback-user             -->
 | 
					 | 
				
			||||||
<!--                                                                -->
 | 
					 | 
				
			||||||
<!-- For professional support please see                            -->
 | 
					 | 
				
			||||||
<!--    http://www.qos.ch/shop/products/professionalSupport         -->
 | 
					 | 
				
			||||||
<!--                                                                -->
 | 
					 | 
				
			||||||
<configuration>
 | 
					 | 
				
			||||||
  <appender name="stdout" class="ch.qos.logback.core.ConsoleAppender">
 | 
					 | 
				
			||||||
    <encoder>
 | 
					 | 
				
			||||||
      <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
 | 
					 | 
				
			||||||
    </encoder>
 | 
					 | 
				
			||||||
  </appender>
 | 
					 | 
				
			||||||
  
 | 
					 | 
				
			||||||
  <appender name="mqttDataFile" class="ch.qos.logback.core.rolling.RollingFileAppender">
 | 
					 | 
				
			||||||
    <file>/app/logs/mqttData.log</file>
 | 
					 | 
				
			||||||
    <append>true</append>
 | 
					 | 
				
			||||||
    <encoder>
 | 
					 | 
				
			||||||
      <pattern>%date %msg%n</pattern>
 | 
					 | 
				
			||||||
    </encoder>
 | 
					 | 
				
			||||||
    <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
 | 
					 | 
				
			||||||
      <fileNamePattern>/app/logs/mqttData.%i.log.gz</fileNamePattern>
 | 
					 | 
				
			||||||
      <minIndex>1</minIndex>
 | 
					 | 
				
			||||||
      <maxIndex>3</maxIndex>
 | 
					 | 
				
			||||||
    </rollingPolicy>
 | 
					 | 
				
			||||||
    <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
 | 
					 | 
				
			||||||
      <maxFileSize>20MB</maxFileSize>
 | 
					 | 
				
			||||||
    </triggeringPolicy>
 | 
					 | 
				
			||||||
  </appender>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  
 | 
					 | 
				
			||||||
  <appender name="logfile" class="ch.qos.logback.core.rolling.RollingFileAppender">
 | 
					 | 
				
			||||||
    <file>/app/logs/opensyncgw.log</file>
 | 
					 | 
				
			||||||
    <append>true</append>
 | 
					 | 
				
			||||||
    <encoder>
 | 
					 | 
				
			||||||
      <pattern>%date %level [%thread] %logger{36} [%file:%line] %msg%n</pattern>
 | 
					 | 
				
			||||||
    </encoder>
 | 
					 | 
				
			||||||
    <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
 | 
					 | 
				
			||||||
      <fileNamePattern>/app/logs/opensyncgw.%i.log.gz</fileNamePattern>
 | 
					 | 
				
			||||||
      <minIndex>1</minIndex>
 | 
					 | 
				
			||||||
      <maxIndex>3</maxIndex>
 | 
					 | 
				
			||||||
    </rollingPolicy>
 | 
					 | 
				
			||||||
    <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
 | 
					 | 
				
			||||||
      <maxFileSize>20MB</maxFileSize>
 | 
					 | 
				
			||||||
    </triggeringPolicy>
 | 
					 | 
				
			||||||
  </appender>
 | 
					 | 
				
			||||||
      
 | 
					 | 
				
			||||||
  <!--
 | 
					 | 
				
			||||||
  details: http://logback.qos.ch/manual/configuration.html#auto_configuration
 | 
					 | 
				
			||||||
   
 | 
					 | 
				
			||||||
  runtime configuration, if need to override the defaults: 
 | 
					 | 
				
			||||||
  	-Dlogback.configurationFile=/path/to/logback.xml
 | 
					 | 
				
			||||||
  
 | 
					 | 
				
			||||||
  for log configuration debugging - use 
 | 
					 | 
				
			||||||
  	-Dlogback.statusListenerClass=ch.qos.logback.core.status.OnConsoleStatusListener
 | 
					 | 
				
			||||||
  
 | 
					 | 
				
			||||||
  log levels:
 | 
					 | 
				
			||||||
	OFF ERROR WARN INFO DEBUG TRACE  
 | 
					 | 
				
			||||||
   -->
 | 
					 | 
				
			||||||
  <logger name="org.apache.catalina.startup.DigesterFactory" level="ERROR"/>
 | 
					 | 
				
			||||||
  <logger name="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping" level="INFO"/>
 | 
					 | 
				
			||||||
  <logger name="org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainer" level="INFO"/>
 | 
					 | 
				
			||||||
  
 | 
					 | 
				
			||||||
  <logger name="com.telecominfraproject.wlan" level="INFO"/>
 | 
					 | 
				
			||||||
  <logger name="ai.connectus" level="INFO"/>
 | 
					 | 
				
			||||||
  <logger name="com.netflix.servo.tag.aws.AwsInjectableTag" level="OFF"/>
 | 
					 | 
				
			||||||
  <logger name="com.vmware.ovsdb.service.OvsdbConnectionInfo" level="OFF"/>
 | 
					 | 
				
			||||||
  <logger name="com.vmware.ovsdb.netty.OvsdbConnectionHandler" level="ERROR"/>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  <logger name="MQTT_DATA" level="DEBUG" additivity="false">
 | 
					 | 
				
			||||||
    <appender-ref ref="mqttDataFile"/>
 | 
					 | 
				
			||||||
  </logger>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  <root level="WARN">
 | 
					 | 
				
			||||||
    <appender-ref ref="logfile"/>
 | 
					 | 
				
			||||||
  </root>
 | 
					 | 
				
			||||||
  
 | 
					 | 
				
			||||||
</configuration>
 | 
					 | 
				
			||||||
@@ -1,126 +0,0 @@
 | 
				
			|||||||
#!/bin/sh
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Prepare the hosts file - do it only if does not have required entries
 | 
					 | 
				
			||||||
n1=`grep opensync-mqtt-broker /etc/hosts | wc -l`
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
if [[ $n1 -eq 0  ]]
 | 
					 | 
				
			||||||
then
 | 
					 | 
				
			||||||
  echo Adding opensync-mqtt-broker to /etc/hosts
 | 
					 | 
				
			||||||
  echo "127.0.0.1 opensync-mqtt-broker" >> /etc/hosts
 | 
					 | 
				
			||||||
fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
n2=`grep opensync-wifi-controller /etc/hosts | wc -l`
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
if [[ $n2 -eq 0  ]]
 | 
					 | 
				
			||||||
then
 | 
					 | 
				
			||||||
  echo Adding opensync-wifi-controller to /etc/hosts
 | 
					 | 
				
			||||||
  echo "127.0.0.1 opensync-wifi-controller" >> /etc/hosts
 | 
					 | 
				
			||||||
fi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
echo Starting mosquitto MQTT broker
 | 
					 | 
				
			||||||
/usr/sbin/mosquitto -d -c /etc/mosquitto/mosquitto.conf
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Provide default values for the environment variables
 | 
					 | 
				
			||||||
MQTT_CLIENT_KEYSTORE_PASSWORD="${MQTT_CLIENT_KEYSTORE_PASSWORD:=mypassword}"
 | 
					 | 
				
			||||||
MQTT_CLIENT_KEYSTORE_FILE="${MQTT_CLIENT_KEYSTORE_FILE:=/opt/tip-wlan/certs/client_keystore.jks}"
 | 
					 | 
				
			||||||
MQTT_TRUSTSTORE_FILE="${MQTT_TRUSTSTORE_FILE:=/opt/tip-wlan/certs/truststore.jks}"
 | 
					 | 
				
			||||||
MQTT_TRUSTSTORE_PASSWORD="${MQTT_TRUSTSTORE_PASSWORD:=mypassword}"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
OVSDB_SERVER_KEYSTORE_FILE="${OVSDB_SERVER_KEYSTORE_FILE:=/opt/tip-wlan/certs/server.pkcs12}"
 | 
					 | 
				
			||||||
OVSDB_SERVER_KEYSTORE_PASSWORD="${OVSDB_SERVER_KEYSTORE_PASSWORD:=mypassword}"
 | 
					 | 
				
			||||||
OVSDB_SERVER_TRUSTSTORE_FILE="${OVSDB_SERVER_TRUSTSTORE_FILE:=/opt/tip-wlan/certs/truststore.jks}"
 | 
					 | 
				
			||||||
OVSDB_SERVER_TRUSTSTORE_PASSWORD="${OVSDB_SERVER_TRUSTSTORE_PASSWORD:=mypassword}"
 | 
					 | 
				
			||||||
OVSDB_CONFIG_FILE="${OVSDB_CONFIG_FILE:=/app/opensync/config_2_ssids.json}"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
echo Reading AP configuration from $OVSDB_CONFIG_FILE
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
EXT_CLIENT_KEYSTORE_PASSWORD="${EXT_CLIENT_KEYSTORE_PASSWORD:=mypassword}"
 | 
					 | 
				
			||||||
EXT_CLIENT_KEYSTORE_FILE="${EXT_CLIENT_KEYSTORE_FILE:=/opt/tip-wlan/certs/client_keystore.jks}"
 | 
					 | 
				
			||||||
EXT_TRUSTSTORE_FILE="${EXT_TRUSTSTORE_FILE:=/opt/tip-wlan/certs/truststore.jks}"
 | 
					 | 
				
			||||||
EXT_TRUSTSTORE_PASSWORD="${EXT_TRUSTSTORE_PASSWORD:=mypassword}"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
MQTT_BROKER_HOST="${MQTT_BROKER_HOST:=opensync-mqtt-broker}"
 | 
					 | 
				
			||||||
OVSDB_MANAGER_HOST="${OVSDB_MANAGER_HOST:=opensync-wifi-controller}"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
LOGBACK_CONFIG_FILE="${LOGBACK_CONFIG_FILE:=/app/opensync/logback.xml}"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Create ssl.properties file
 | 
					 | 
				
			||||||
cat > /app/ssl.properties <<END_OF_FILE
 | 
					 | 
				
			||||||
truststorePass=$OVSDB_SERVER_TRUSTSTORE_PASSWORD
 | 
					 | 
				
			||||||
truststoreFile=file:$OVSDB_SERVER_TRUSTSTORE_FILE
 | 
					 | 
				
			||||||
truststoreType=JKS
 | 
					 | 
				
			||||||
truststoreProvider=SUN
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
keyAlias=1
 | 
					 | 
				
			||||||
keystorePass=$OVSDB_SERVER_KEYSTORE_PASSWORD
 | 
					 | 
				
			||||||
keystoreFile=file:$OVSDB_SERVER_KEYSTORE_FILE
 | 
					 | 
				
			||||||
keystoreType=pkcs12
 | 
					 | 
				
			||||||
keystoreProvider=SunJSSE
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
sslProtocol=TLS
 | 
					 | 
				
			||||||
END_OF_FILE
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Create httpClientConfig.json file
 | 
					 | 
				
			||||||
cat > /app/httpClientConfig.json <<END_OF_FILE
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
"maxConnectionsTotal":100,
 | 
					 | 
				
			||||||
"maxConnectionsPerRoute":10,
 | 
					 | 
				
			||||||
"truststoreType":"JKS",
 | 
					 | 
				
			||||||
"truststoreProvider":"SUN",
 | 
					 | 
				
			||||||
"truststoreFile":"file:$EXT_TRUSTSTORE_FILE",
 | 
					 | 
				
			||||||
"truststorePass":"$EXT_TRUSTSTORE_PASSWORD",
 | 
					 | 
				
			||||||
"keystoreType":"JKS",
 | 
					 | 
				
			||||||
"keystoreProvider":"SUN",
 | 
					 | 
				
			||||||
"keystoreFile":"file:$EXT_CLIENT_KEYSTORE_FILE",
 | 
					 | 
				
			||||||
"keystorePass":"$EXT_CLIENT_KEYSTORE_PASSWORD",
 | 
					 | 
				
			||||||
"keyAlias":"clientkeyalias",
 | 
					 | 
				
			||||||
"credentialsList":[
 | 
					 | 
				
			||||||
    {"host":"localhost","port":-1,"user":"user","password":"password"}
 | 
					 | 
				
			||||||
    ]
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
END_OF_FILE
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Set environment for the opensync gateway process
 | 
					 | 
				
			||||||
PROFILES=" -Dspring.profiles.include=mqtt_receiver,ovsdb_redirector,ovsdb_manager"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
SSL_PROPS=" "
 | 
					 | 
				
			||||||
SSL_PROPS="$SSL_PROPS -Dssl.props=file:/app/ssl.properties"
 | 
					 | 
				
			||||||
SSL_PROPS="$SSL_PROPS -Dtip.wlan.httpClientConfig=file:/app/httpClientConfig.json"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
CLIENT_MQTT_SSL_PROPS=" "
 | 
					 | 
				
			||||||
CLIENT_MQTT_SSL_PROPS="$CLIENT_MQTT_SSL_PROPS -Djavax.net.ssl.keyStore=$MQTT_CLIENT_KEYSTORE_FILE"
 | 
					 | 
				
			||||||
CLIENT_MQTT_SSL_PROPS="$CLIENT_MQTT_SSL_PROPS -Djavax.net.ssl.keyStorePassword=$MQTT_CLIENT_KEYSTORE_PASSWORD"
 | 
					 | 
				
			||||||
CLIENT_MQTT_SSL_PROPS="$CLIENT_MQTT_SSL_PROPS -Djavax.net.ssl.trustStore=$MQTT_TRUSTSTORE_FILE"
 | 
					 | 
				
			||||||
CLIENT_MQTT_SSL_PROPS="$CLIENT_MQTT_SSL_PROPS -Djavax.net.ssl.trustStorePassword=$MQTT_TRUSTSTORE_PASSWORD"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
OVSDB_PROPS=" "
 | 
					 | 
				
			||||||
OVSDB_PROPS="$OVSDB_PROPS -Dconnectus.ovsdb.managerAddr=$OVSDB_MANAGER_HOST"
 | 
					 | 
				
			||||||
OVSDB_PROPS="$OVSDB_PROPS -Dconnectus.ovsdb.listenPort=6640 "
 | 
					 | 
				
			||||||
OVSDB_PROPS="$OVSDB_PROPS -Dconnectus.ovsdb.redirector.listenPort=6643"
 | 
					 | 
				
			||||||
OVSDB_PROPS="$OVSDB_PROPS -Dconnectus.ovsdb.timeoutSec=30"
 | 
					 | 
				
			||||||
OVSDB_PROPS="$OVSDB_PROPS -Dconnectus.ovsdb.trustStore=$OVSDB_SERVER_TRUSTSTORE_FILE"
 | 
					 | 
				
			||||||
OVSDB_PROPS="$OVSDB_PROPS -Dconnectus.ovsdb.trustStorePassword=$OVSDB_SERVER_TRUSTSTORE_PASSWORD"
 | 
					 | 
				
			||||||
OVSDB_PROPS="$OVSDB_PROPS -Dconnectus.ovsdb.keyStore=$OVSDB_SERVER_KEYSTORE_FILE"
 | 
					 | 
				
			||||||
OVSDB_PROPS="$OVSDB_PROPS -Dconnectus.ovsdb.keyStorePassword=$OVSDB_SERVER_KEYSTORE_PASSWORD"
 | 
					 | 
				
			||||||
OVSDB_PROPS="$OVSDB_PROPS -Dconnectus.ovsdb.configFileName=$OVSDB_CONFIG_FILE"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
MQTT_PROPS=" "
 | 
					 | 
				
			||||||
MQTT_PROPS="$MQTT_PROPS -Dconnectus.mqttBroker.address=$MQTT_BROKER_HOST"
 | 
					 | 
				
			||||||
MQTT_PROPS="$MQTT_PROPS -Dconnectus.mqttBroker.listenPort=1883"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
LOGGING_PROPS=" -Dlogging.config=file:$LOGBACK_CONFIG_FILE"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
RESTAPI_PROPS=" "
 | 
					 | 
				
			||||||
RESTAPI_PROPS="$RESTAPI_PROPS -Dserver.port=4043"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
SPRING_EXTRA_PROPS=" --add-opens java.base/java.lang=ALL-UNNAMED"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
export ALL_PROPS="$PROFILES $SSL_PROPS $CLIENT_MQTT_SSL_PROPS $OVSDB_PROPS $MQTT_PROPS $LOGGING_PROPS $RESTAPI_PROPS $SPRING_EXTRA_PROPS "
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
echo Starting opensync wifi controller
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#echo Result: $ALL_PROPS
 | 
					 | 
				
			||||||
java $ALL_PROPS -jar app.jar > /app/opensync-wifi-controller-stdout.out 2>&1
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
@@ -1,5 +1,5 @@
 | 
				
			|||||||
FROM adoptopenjdk/openjdk13:alpine-jre
 | 
					FROM adoptopenjdk/openjdk13:alpine-jre
 | 
				
			||||||
MAINTAINER ConnectUs
 | 
					MAINTAINER TipWlan
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Update the package list and upgrade installed packages
 | 
					# Update the package list and upgrade installed packages
 | 
				
			||||||
RUN apk update && apk upgrade && apk add bash
 | 
					RUN apk update && apk upgrade && apk add bash
 | 
				
			||||||
@@ -9,6 +9,7 @@ RUN mkdir -p /opt/tip-wlan/certs
 | 
				
			|||||||
COPY maven/app.jar /app
 | 
					COPY maven/app.jar /app
 | 
				
			||||||
COPY app/opensync/logback.xml /app/opensync/logback.xml
 | 
					COPY app/opensync/logback.xml /app/opensync/logback.xml
 | 
				
			||||||
COPY app/run.sh /app
 | 
					COPY app/run.sh /app
 | 
				
			||||||
 | 
					COPY app/commit.properties /app
 | 
				
			||||||
 | 
					
 | 
				
			||||||
RUN chmod +x /app/run.sh
 | 
					RUN chmod +x /app/run.sh
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -0,0 +1,4 @@
 | 
				
			|||||||
 | 
					#This is a dummy property file to be used when running docker locally 
 | 
				
			||||||
 | 
					date=${date}
 | 
				
			||||||
 | 
					commitId=${commit.id}
 | 
				
			||||||
 | 
					projectVersion=${project.version}
 | 
				
			||||||
@@ -13,16 +13,22 @@
 | 
				
			|||||||
      <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
 | 
					      <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
 | 
				
			||||||
    </encoder>
 | 
					    </encoder>
 | 
				
			||||||
  </appender>
 | 
					  </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>
 | 
					    <encoder>
 | 
				
			||||||
      <pattern>%date %level [%thread] %logger{10} [%file:%line] %msg%n</pattern>
 | 
					      <pattern>%date %msg%n</pattern>
 | 
				
			||||||
    </encoder>
 | 
					    </encoder>
 | 
				
			||||||
 | 
					    <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
 | 
				
			||||||
 | 
					      <fileNamePattern>/app/logs/mqttData.%i.log.gz</fileNamePattern>
 | 
				
			||||||
 | 
					      <minIndex>1</minIndex>
 | 
				
			||||||
 | 
					      <maxIndex>3</maxIndex>
 | 
				
			||||||
 | 
					    </rollingPolicy>
 | 
				
			||||||
 | 
					    <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
 | 
				
			||||||
 | 
					      <maxFileSize>20MB</maxFileSize>
 | 
				
			||||||
 | 
					    </triggeringPolicy>
 | 
				
			||||||
  </appender>
 | 
					  </appender>
 | 
				
			||||||
  -->
 | 
					 | 
				
			||||||
  
 | 
					  
 | 
				
			||||||
  <appender name="logfile" class="ch.qos.logback.core.rolling.RollingFileAppender">
 | 
					  <appender name="logfile" class="ch.qos.logback.core.rolling.RollingFileAppender">
 | 
				
			||||||
    <file>/app/logs/opensyncgw.log</file>
 | 
					    <file>/app/logs/opensyncgw.log</file>
 | 
				
			||||||
@@ -57,20 +63,16 @@
 | 
				
			|||||||
  <logger name="org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainer" level="INFO"/>
 | 
					  <logger name="org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainer" level="INFO"/>
 | 
				
			||||||
  
 | 
					  
 | 
				
			||||||
  <logger name="com.telecominfraproject.wlan" level="DEBUG"/>
 | 
					  <logger name="com.telecominfraproject.wlan" level="DEBUG"/>
 | 
				
			||||||
  <logger name="ai.connectus" level="DEBUG"/>
 | 
					 | 
				
			||||||
  <logger name="com.netflix.servo.tag.aws.AwsInjectableTag" level="OFF"/>
 | 
					  <logger name="com.netflix.servo.tag.aws.AwsInjectableTag" level="OFF"/>
 | 
				
			||||||
  <logger name="com.vmware.ovsdb.service.OvsdbConnectionInfo" level="OFF"/>
 | 
					  <logger name="com.vmware.ovsdb.service.OvsdbConnectionInfo" level="OFF"/>
 | 
				
			||||||
  <logger name="com.vmware.ovsdb.netty.OvsdbConnectionHandler" level="ERROR"/>
 | 
					  <logger name="com.vmware.ovsdb.netty.OvsdbConnectionHandler" level="ERROR"/>
 | 
				
			||||||
  
 | 
					 | 
				
			||||||
  <logger name="MQTT_DATA" level="DEBUG"/>
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
  <!--   
 | 
					  <logger name="MQTT_DATA" level="DEBUG" additivity="false">
 | 
				
			||||||
  <logger name="org.springframework.security.web.authentication.preauth" level="DEBUG"/>
 | 
					    <appender-ref ref="mqttDataFile"/>
 | 
				
			||||||
   -->
 | 
					  </logger>
 | 
				
			||||||
   
 | 
					
 | 
				
			||||||
  <root level="WARN">
 | 
					  <root level="WARN">
 | 
				
			||||||
<!--    <appender-ref ref="stdout"/>-->
 | 
					 | 
				
			||||||
    <appender-ref ref="logfile"/>
 | 
					    <appender-ref ref="logfile"/>
 | 
				
			||||||
  </root>
 | 
					  </root>
 | 
				
			||||||
  
 | 
					
 | 
				
			||||||
</configuration>
 | 
					</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.keyStorePassword=mypassword"
 | 
				
			||||||
CLIENT_MQTT_SSL_PROPS+=" -Djavax.net.ssl.trustStore=/opt/tip-wlan/certs/truststore.jks"
 | 
					CLIENT_MQTT_SSL_PROPS+=" -Djavax.net.ssl.trustStore=/opt/tip-wlan/certs/truststore.jks"
 | 
				
			||||||
CLIENT_MQTT_SSL_PROPS+=" -Djavax.net.ssl.trustStorePassword=mypassword"
 | 
					CLIENT_MQTT_SSL_PROPS+=" -Djavax.net.ssl.trustStorePassword=mypassword"
 | 
				
			||||||
CLIENT_MQTT_SSL_PROPS+=" -Dconnectus.mqttBroker.password=admin"
 | 
					CLIENT_MQTT_SSL_PROPS+=" -Dtip.wlan.mqttBroker.password=admin"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					OVSDB_MANAGER_HOST=${OVSDB_MANAGER}
 | 
				
			||||||
 | 
					MQTT_BROKER_HOST_INTERNAL="${MQTT_SERVER_INTERNAL}"
 | 
				
			||||||
 | 
					MQTT_BROKER_HOST_EXTERNAL="${MQTT_SERVER_EXTERNAL}"
 | 
				
			||||||
 | 
					PROV_SERVER_HOST="${PROV_SERVER}"
 | 
				
			||||||
 | 
					SSC_SERVER_HOST="${SSC_SERVER}"
 | 
				
			||||||
 | 
					ALL_IN_ONE_HOST="${INTEGRATED_SERVER}"
 | 
				
			||||||
 | 
					FILE_STORE_DIRECTORY="${FILE_STORE_DIRECTORY_INTERNAL:=/tmp/filestore}"
 | 
				
			||||||
 | 
					FILE_STORE_EXTERNAL_URL="${FILE_STORE_URL}"
 | 
				
			||||||
 | 
					MQTT_BROKER_EXTERNAL_PORT="${MQTT_BROKER_EXTERNAL_PORT}"
 | 
				
			||||||
 | 
					OVSDB_EXTERNAL_PORT="${OVSDB_EXTERNAL_PORT}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
OVSDB_PROPS=" "
 | 
					OVSDB_PROPS=" "
 | 
				
			||||||
OVSDB_PROPS+=" -Dconnectus.ovsdb.managerAddr=opensync-controller"
 | 
					OVSDB_PROPS+=" -Dtip.wlan.ovsdb.managerAddr=$OVSDB_MANAGER_HOST"
 | 
				
			||||||
OVSDB_PROPS+=" -Dconnectus.ovsdb.listenPort=6640 "
 | 
					OVSDB_PROPS+=" -Dtip.wlan.ovsdb.listenPort=6640 "
 | 
				
			||||||
OVSDB_PROPS+=" -Dconnectus.ovsdb.redirector.listenPort=6643"
 | 
					OVSDB_PROPS+=" -Dtip.wlan.ovsdb.redirector.listenPort=6643"
 | 
				
			||||||
OVSDB_PROPS+=" -Dconnectus.ovsdb.timeoutSec=30"
 | 
					OVSDB_PROPS+=" -Dtip.wlan.ovsdb.timeoutSec=30"
 | 
				
			||||||
OVSDB_PROPS+=" -Dconnectus.ovsdb.trustStore=/opt/tip-wlan/certs/truststore.jks"
 | 
					OVSDB_PROPS+=" -Dtip.wlan.ovsdb.trustStore=/opt/tip-wlan/certs/truststore.jks"
 | 
				
			||||||
OVSDB_PROPS+=" -Dconnectus.ovsdb.keyStore=/opt/tip-wlan/certs/server.pkcs12"
 | 
					OVSDB_PROPS+=" -Dtip.wlan.ovsdb.keyStore=/opt/tip-wlan/certs/server.pkcs12"
 | 
				
			||||||
OVSDB_PROPS+=" -Dconnectus.ovsdb.configFileName=/app/opensync/config_2_ssids.json"
 | 
					OVSDB_PROPS+=" -Dtip.wlan.ovsdb.configFileName=/app/opensync/config_2_ssids.json"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
MQTT_PROPS=" "
 | 
					MQTT_PROPS=" "
 | 
				
			||||||
MQTT_PROPS+=" -Dconnectus.mqttBroker.address=tip-wlan-opensync-mqtt-broker"
 | 
					MQTT_PROPS+=" -Dtip.wlan.mqttBroker.address.internal=$MQTT_BROKER_HOST_INTERNAL"
 | 
				
			||||||
MQTT_PROPS+=" -Dconnectus.mqttBroker.listenPort=1883"
 | 
					MQTT_PROPS+=" -Dtip.wlan.mqttBroker.address.external=$MQTT_BROKER_HOST_EXTERNAL"
 | 
				
			||||||
 | 
					MQTT_PROPS+=" -Dtip.wlan.ovsdb.externalPort=$OVSDB_EXTERNAL_PORT"
 | 
				
			||||||
 | 
					MQTT_PROPS+=" -Dtip.wlan.mqttBroker.externalPort=$MQTT_BROKER_EXTERNAL_PORT"
 | 
				
			||||||
 | 
					MQTT_PROPS+=" -Dtip.wlan.mqttBroker.listenPort=1883"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
LOGGING_PROPS=" -Dlogging.config=file:/app/opensync/logback.xml"
 | 
					LOGBACK_CONFIG_FILE="${LOGBACK_CONFIG_FILE:=/app/opensync/logback.xml}"
 | 
				
			||||||
 | 
					LOGGING_PROPS=" -Dlogging.config=file:$LOGBACK_CONFIG_FILE"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
RESTAPI_PROPS=" "
 | 
					RESTAPI_PROPS=" "
 | 
				
			||||||
RESTAPI_PROPS+=" -Dserver.port=443"
 | 
					RESTAPI_PROPS+=" -Dserver.port=9096 -Dtip.wlan.secondaryPort=9097"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
SPRING_EXTRA_PROPS=" --add-opens java.base/java.lang=ALL-UNNAMED"
 | 
					SPRING_EXTRA_PROPS=" --add-opens java.base/java.lang=ALL-UNNAMED"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export ALL_PROPS="$PROFILES $SSL_PROPS $CLIENT_MQTT_SSL_PROPS $OVSDB_PROPS $MQTT_PROPS $LOGGING_PROPS $RESTAPI_PROPS $SPRING_EXTRA_PROPS"
 | 
					HOST_PROPS=" "
 | 
				
			||||||
 | 
					
 | 
				
			||||||
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>
 | 
								<artifactId>opensync-ext-cloud</artifactId>
 | 
				
			||||||
			<version>${tip-wlan-cloud.release.version}</version>
 | 
								<version>${tip-wlan-cloud.release.version}</version>
 | 
				
			||||||
		</dependency>
 | 
							</dependency>
 | 
				
			||||||
		<dependency>
 | 
					 | 
				
			||||||
			<artifactId>base-container</artifactId>
 | 
					 | 
				
			||||||
			<groupId>com.telecominfraproject.wlan</groupId>
 | 
					 | 
				
			||||||
			<version>${tip-wlan-cloud.release.version}</version>
 | 
					 | 
				
			||||||
		</dependency>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        <dependency>
 | 
					        <dependency>
 | 
				
			||||||
            <artifactId>filestore-service</artifactId>
 | 
					            <artifactId>filestore-service</artifactId>
 | 
				
			||||||
            <groupId>com.telecominfraproject.wlan</groupId>
 | 
					            <groupId>com.telecominfraproject.wlan</groupId>
 | 
				
			||||||
            <version>${tip-wlan-cloud.release.version}</version>
 | 
					            <version>${tip-wlan-cloud.release.version}</version>
 | 
				
			||||||
        </dependency>
 | 
					        </dependency>
 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		<dependency>
 | 
							<dependency>
 | 
				
			||||||
			<artifactId>customer-service-remote</artifactId>
 | 
								<artifactId>customer-service-remote</artifactId>
 | 
				
			||||||
			<groupId>com.telecominfraproject.wlan</groupId>
 | 
								<groupId>com.telecominfraproject.wlan</groupId>
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -0,0 +1,40 @@
 | 
				
			|||||||
 | 
					package com.telecominfraproject.wlan.opensync.startuptasks;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import java.util.List;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import org.slf4j.Logger;
 | 
				
			||||||
 | 
					import org.slf4j.LoggerFactory;
 | 
				
			||||||
 | 
					import org.springframework.beans.factory.annotation.Autowired;
 | 
				
			||||||
 | 
					import org.springframework.boot.ApplicationArguments;
 | 
				
			||||||
 | 
					import org.springframework.boot.ApplicationRunner;
 | 
				
			||||||
 | 
					import org.springframework.context.annotation.Configuration;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import com.telecominfraproject.wlan.core.model.pair.PairIntString;
 | 
				
			||||||
 | 
					import com.telecominfraproject.wlan.customer.service.CustomerServiceInterface;
 | 
				
			||||||
 | 
					import com.telecominfraproject.wlan.equipment.EquipmentServiceInterface;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@Configuration
 | 
				
			||||||
 | 
					public class OpensyncGatewayStartupListener implements ApplicationRunner {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    private static final Logger LOG = LoggerFactory.getLogger(OpensyncGatewayStartupListener.class);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Autowired
 | 
				
			||||||
 | 
					    private CustomerServiceInterface customerServiceInterface;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Autowired
 | 
				
			||||||
 | 
					    private EquipmentServiceInterface equipmentServiceInterface;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						@Override
 | 
				
			||||||
 | 
						public void run(ApplicationArguments args) throws Exception {
 | 
				
			||||||
 | 
					        LOG.debug("OSGW startup commands");
 | 
				
			||||||
 | 
					        try {
 | 
				
			||||||
 | 
					//        	List<PairIntString> first10Customers = customerServiceInterface.getAll(10, -1);
 | 
				
			||||||
 | 
					//        	LOG.info("first10Customers: {}", first10Customers);
 | 
				
			||||||
 | 
					        	
 | 
				
			||||||
 | 
					        } catch (Exception e) {
 | 
				
			||||||
 | 
					            LOG.error("Got Exception ", e);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        LOG.debug("Completed OSGW startup commands");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -11,7 +11,6 @@
 | 
				
			|||||||
"keystorePass":"mypassword",
 | 
					"keystorePass":"mypassword",
 | 
				
			||||||
"keyAlias":"clientqrcode",
 | 
					"keyAlias":"clientqrcode",
 | 
				
			||||||
"credentialsList":[
 | 
					"credentialsList":[
 | 
				
			||||||
    {"host":"localhost","port":-1,"user":"user","password":"password"}
 | 
					 | 
				
			||||||
    ]
 | 
					    ]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -81,7 +81,9 @@ spring.profiles.include=use_ssl_with_client_cert_and_basic_auth,client_certifica
 | 
				
			|||||||
tip.wlan.httpClientConfig=classpath:httpClientConfig.json
 | 
					tip.wlan.httpClientConfig=classpath:httpClientConfig.json
 | 
				
			||||||
#this user/password is used together with http_digest_auth and http_basic_auth spring profiles
 | 
					#this user/password is used together with http_digest_auth and http_basic_auth spring profiles
 | 
				
			||||||
tip.wlan.serviceUser=user
 | 
					tip.wlan.serviceUser=user
 | 
				
			||||||
tip.wlan.servicePassword=password
 | 
					# The value in here is bcrypt-encoded string "password", generated with the following command
 | 
				
			||||||
 | 
					#  htpasswd -nBC 10 "" | cut -d ':' -f2
 | 
				
			||||||
 | 
					tip.wlan.servicePassword=$2y$10$rXnaSR5q2PsFWs8WEfJAguKAPh0oHLFkAJFqd7Pf7PVa3cOIClGoS
 | 
				
			||||||
 | 
					
 | 
				
			||||||
spring.main.show-banner=false
 | 
					spring.main.show-banner=false
 | 
				
			||||||
server.port=9096
 | 
					server.port=9096
 | 
				
			||||||
@@ -94,6 +96,8 @@ tip.wlan.listOfPathsToProtect=/api,/filestore
 | 
				
			|||||||
#this server only supports REST requests, CSRF would get in the way
 | 
					#this server only supports REST requests, CSRF would get in the way
 | 
				
			||||||
tip.wlan.csrf-enabled=false
 | 
					tip.wlan.csrf-enabled=false
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# do not allow clientCn alteration
 | 
				
			||||||
 | 
					tip.wlan.preventClientCnAlteration=false
 | 
				
			||||||
#properties that configure remote interfaces to communicate with cloud
 | 
					#properties that configure remote interfaces to communicate with cloud
 | 
				
			||||||
# when separate portal - prov - ssc processes are in use:
 | 
					# when separate portal - prov - ssc processes are in use:
 | 
				
			||||||
##SSC-related services 
 | 
					##SSC-related services 
 | 
				
			||||||
@@ -101,6 +105,9 @@ tip.wlan.csrf-enabled=false
 | 
				
			|||||||
#tip.wlan.statusServiceBaseUrl=https://localhost:9031
 | 
					#tip.wlan.statusServiceBaseUrl=https://localhost:9031
 | 
				
			||||||
#tip.wlan.routingServiceBaseUrl=https://localhost:9031
 | 
					#tip.wlan.routingServiceBaseUrl=https://localhost:9031
 | 
				
			||||||
#tip.wlan.alarmServiceBaseUrl=https://localhost:9031
 | 
					#tip.wlan.alarmServiceBaseUrl=https://localhost:9031
 | 
				
			||||||
 | 
					#tip.wlan.clientServiceBaseUrl=https://localhost:9031
 | 
				
			||||||
 | 
					#tip.wlan.systemEventServiceBaseUrl=https://localhost:9031
 | 
				
			||||||
 | 
					#tip.wlan.serviceMetricServiceBaseUrl=https://localhost:9031
 | 
				
			||||||
##PROV-related services
 | 
					##PROV-related services
 | 
				
			||||||
#tip.wlan.customerServiceBaseUrl=https://localhost:9091
 | 
					#tip.wlan.customerServiceBaseUrl=https://localhost:9091
 | 
				
			||||||
#tip.wlan.locationServiceBaseUrl=https://localhost:9091
 | 
					#tip.wlan.locationServiceBaseUrl=https://localhost:9091
 | 
				
			||||||
@@ -108,6 +115,7 @@ tip.wlan.csrf-enabled=false
 | 
				
			|||||||
#tip.wlan.profileServiceBaseUrl=https://localhost:9091
 | 
					#tip.wlan.profileServiceBaseUrl=https://localhost:9091
 | 
				
			||||||
#tip.wlan.firmwareServiceBaseUrl=https://localhost:9091
 | 
					#tip.wlan.firmwareServiceBaseUrl=https://localhost:9091
 | 
				
			||||||
#tip.wlan.manufacturerServiceBaseUrl=https://localhost:9091
 | 
					#tip.wlan.manufacturerServiceBaseUrl=https://localhost:9091
 | 
				
			||||||
 | 
					#tip.wlan.portalUserServiceBaseUrl=https://localhost:9091
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# For all-cloud-in-one-process : 
 | 
					# For all-cloud-in-one-process : 
 | 
				
			||||||
#SSC-related services 
 | 
					#SSC-related services 
 | 
				
			||||||
@@ -115,14 +123,20 @@ tip.wlan.cloudEventDispatcherBaseUrl=https://localhost:9092
 | 
				
			|||||||
tip.wlan.statusServiceBaseUrl=https://localhost:9092
 | 
					tip.wlan.statusServiceBaseUrl=https://localhost:9092
 | 
				
			||||||
tip.wlan.routingServiceBaseUrl=https://localhost:9092
 | 
					tip.wlan.routingServiceBaseUrl=https://localhost:9092
 | 
				
			||||||
tip.wlan.alarmServiceBaseUrl=https://localhost:9092
 | 
					tip.wlan.alarmServiceBaseUrl=https://localhost:9092
 | 
				
			||||||
 | 
					tip.wlan.clientServiceBaseUrl=https://localhost:9092
 | 
				
			||||||
 | 
					tip.wlan.systemEventServiceBaseUrl=https://localhost:9092
 | 
				
			||||||
 | 
					tip.wlan.serviceMetricServiceBaseUrl=https://localhost:9092
 | 
				
			||||||
#PROV-related services
 | 
					#PROV-related services
 | 
				
			||||||
tip.wlan.customerServiceBaseUrl=https://localhost:9092
 | 
					tip.wlan.customerServiceBaseUrl=https://localhost:9092
 | 
				
			||||||
tip.wlan.locationServiceBaseUrl=https://localhost:9092
 | 
					tip.wlan.locationServiceBaseUrl=https://localhost:9092
 | 
				
			||||||
tip.wlan.equipmentServiceBaseUrl=https://localhost:9092
 | 
					tip.wlan.equipmentServiceBaseUrl=https://localhost:9092
 | 
				
			||||||
tip.wlan.profileServiceBaseUrl=https://localhost:9092
 | 
					tip.wlan.profileServiceBaseUrl=https://localhost:9092
 | 
				
			||||||
tip.wlan.clientServiceBaseUrl=https://localhost:9092
 | 
					 | 
				
			||||||
tip.wlan.firmwareServiceBaseUrl=https://localhost:9092
 | 
					tip.wlan.firmwareServiceBaseUrl=https://localhost:9092
 | 
				
			||||||
tip.wlan.manufacturerServiceBaseUrl=https://localhost:9092
 | 
					tip.wlan.manufacturerServiceBaseUrl=https://localhost:9092
 | 
				
			||||||
 | 
					tip.wlan.portalUserServiceBaseUrl=https://localhost:9092
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					tip.wlan.fileStoreDirectory=/tmp/tip-wlan-filestore
 | 
				
			||||||
 | 
					tip.wlan.externalFileStoreURL=https://localhost:9096
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#server.session-timeout= # session timeout in seconds
 | 
					#server.session-timeout= # session timeout in seconds
 | 
				
			||||||
#server.tomcat.max-threads = 0 # number of threads in protocol handler
 | 
					#server.tomcat.max-threads = 0 # number of threads in protocol handler
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -21,5 +21,5 @@
 | 
				
			|||||||
    <stringAttribute key="org.eclipse.jdt.launching.MODULE_NAME" value="opensync-gateway-cloud-process"/>
 | 
					    <stringAttribute key="org.eclipse.jdt.launching.MODULE_NAME" value="opensync-gateway-cloud-process"/>
 | 
				
			||||||
    <stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="opensync-gateway-cloud-process"/>
 | 
					    <stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="opensync-gateway-cloud-process"/>
 | 
				
			||||||
    <stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.m2e.launchconfig.sourcepathProvider"/>
 | 
					    <stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.m2e.launchconfig.sourcepathProvider"/>
 | 
				
			||||||
    <stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="--add-opens java.base/java.lang=ALL-UNNAMED

-Dssl.props=file://${project_loc:opensync-gateway-cloud-process}/src/main/resources/app/certs/ssl.properties
-Dtip.wlan.httpClientConfig=file://${project_loc:opensync-gateway-cloud-process}/src/main/resources/app/certs/httpClientConfig.json

-Djavax.net.ssl.keyStore=${connectus_certs}/client_keystore.jks
-Djavax.net.ssl.keyStorePassword=mypassword
-Djavax.net.ssl.trustStore=${connectus_certs}/truststore.jks
-Djavax.net.ssl.trustStorePassword=mypassword

-Dconnectus.ovsdb.managerAddr=${local_server_address}
-Dconnectus.ovsdb.listenPort=6640
-Dconnectus.ovsdb.redirector.listenPort=6643
-Dconnectus.ovsdb.timeoutSec=30
-Dconnectus.ovsdb.trustStore=${connectus_certs}/truststore.jks
-Dconnectus.ovsdb.keyStore=${connectus_certs}/server.pkcs12

-Dconnectus.mqttBroker.address=${local_server_address}
-Dconnectus.mqttBroker.listenPort=1883
-Dconnectus.ovsdb.wifi-iface.default_bridge=br-lan
-Dtip.wlan.introspectTokenApi.host=${local_server_address}:9096
-Dtip.wlan.introspectTokenApi.clientToken=token_placeholder
-Dtip.wlan.serviceUser=user
-Dtip.wlan.servicePassword=password
-Dconnectus.ovsdb.autoProvisionedCustomerId=2
-Dconnectus.ovsdb.autoProvisionedSsid=Connectus-cloud
-Dspring.main.show-banner=false
-Dserver.port=9096
-Dtip.wlan.secondaryPort=7071
-Dtip.wlan.csrf-enabled=false
-Dspring.profiles.include=opensync_cloud_config,mqtt_receiver,ovsdb_redirector,ovsdb_manager"/>
 | 
					    <stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="--add-opens java.base/java.lang=ALL-UNNAMED

-Dssl.props=file://${project_loc:opensync-gateway-cloud-process}/src/main/resources/app/certs/ssl.properties
-Dtip.wlan.httpClientConfig=file://${project_loc:opensync-gateway-cloud-process}/src/main/resources/app/certs/httpClientConfig.json

-Djavax.net.ssl.keyStore=${tip_wlan_service_certs}/client_keystore.jks
-Djavax.net.ssl.keyStorePassword=mypassword
-Djavax.net.ssl.trustStore=${tip_wlan_service_certs}/truststore.jks
-Djavax.net.ssl.trustStorePassword=mypassword

-Dtip.wlan.ovsdb.managerAddr=${local_server_address}
-Dtip.wlan.ovsdb.listenPort=6640
-Dtip.wlan.ovsdb.redirector.listenPort=6643
-Dtip.wlan.ovsdb.timeoutSec=30
-Dtip.wlan.ovsdb.trustStore=${tip_wlan_service_certs}/truststore.jks
-Dtip.wlan.ovsdb.keyStore=${tip_wlan_service_certs}/server.pkcs12
-Dtip.wlan.mqttBroker.address.internal=${mqtt_broker_address}
-Dtip.wlan.mqttBroker.address.external=${mqtt_broker_address}
-Dtip.wlan.mqttBroker.listenPort=1883
-Dtip.wlan.introspectTokenApi.host=${local_server_address}:9096
-Dtip.wlan.introspectTokenApi.clientToken=token_placeholder
-Dtip.wlan.ovsdb.autoProvisionedCustomerId=2
-Dtip.wlan.ovsdb.autoProvisionedSsid=TipWlan-cloud
-Dtip.wlan.preventClientCnAlteration=false
-Dserver.port=9096
-Dtip.wlan.secondaryPort=7071
-Dspring.profiles.include=opensync_cloud_config,mqtt_receiver,ovsdb_redirector,ovsdb_manager"/>
 | 
				
			||||||
</launchConfiguration>
 | 
					</launchConfiguration>
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -60,7 +60,6 @@
 | 
				
			|||||||
  <logger name ="com.telecominfraproject.wlan.core.server.webconfig.WebMvcRegistrationsConfiguration$1$1" level="INFO"/>
 | 
					  <logger name ="com.telecominfraproject.wlan.core.server.webconfig.WebMvcRegistrationsConfiguration$1$1" level="INFO"/>
 | 
				
			||||||
  
 | 
					  
 | 
				
			||||||
  <logger name="com.telecominfraproject.wlan" level="DEBUG"/>
 | 
					  <logger name="com.telecominfraproject.wlan" level="DEBUG"/>
 | 
				
			||||||
  <logger name="ai.connectus" level="DEBUG"/>
 | 
					 | 
				
			||||||
  <logger name="com.vmware.ovsdb.service.OvsdbConnectionInfo" level="OFF"/>
 | 
					  <logger name="com.vmware.ovsdb.service.OvsdbConnectionInfo" level="OFF"/>
 | 
				
			||||||
  <logger name="com.vmware.ovsdb.netty.OvsdbConnectionHandler" level="ERROR"/>
 | 
					  <logger name="com.vmware.ovsdb.netty.OvsdbConnectionHandler" level="ERROR"/>
 | 
				
			||||||
  
 | 
					  
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -14,6 +14,8 @@
 | 
				
			|||||||
	<properties>
 | 
						<properties>
 | 
				
			||||||
		<docker.fabric.version>0.28.0</docker.fabric.version>
 | 
							<docker.fabric.version>0.28.0</docker.fabric.version>
 | 
				
			||||||
		<docker.push.registry>tip-tip-wlan-cloud-docker-repo.jfrog.io</docker.push.registry>
 | 
							<docker.push.registry>tip-tip-wlan-cloud-docker-repo.jfrog.io</docker.push.registry>
 | 
				
			||||||
 | 
					        	<timestamp>${maven.build.timestamp}</timestamp>
 | 
				
			||||||
 | 
					   		<maven.build.timestamp.format>yyyy-MM-dd</maven.build.timestamp.format> 		
 | 
				
			||||||
	</properties>
 | 
						</properties>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	<dependencies>
 | 
						<dependencies>
 | 
				
			||||||
@@ -32,12 +34,15 @@
 | 
				
			|||||||
				<artifactId>docker-maven-plugin</artifactId>
 | 
									<artifactId>docker-maven-plugin</artifactId>
 | 
				
			||||||
				<version>${docker.fabric.version}</version>
 | 
									<version>${docker.fabric.version}</version>
 | 
				
			||||||
				<configuration>
 | 
									<configuration>
 | 
				
			||||||
					<verbose>true</verbose>
 | 
										<verbose>false</verbose>
 | 
				
			||||||
					<apiVersion>1.23</apiVersion>
 | 
										<apiVersion>1.23</apiVersion>
 | 
				
			||||||
					<images>
 | 
										<images>
 | 
				
			||||||
						<image>
 | 
											<image>
 | 
				
			||||||
							<name>opensync-gateway-static:${project.version}</name>
 | 
												<name>opensync-gateway-static:${project.version}</name>
 | 
				
			||||||
							<build>
 | 
												<build>
 | 
				
			||||||
 | 
													<tags>
 | 
				
			||||||
 | 
														<tag>${project.version}-${timestamp}</tag>
 | 
				
			||||||
 | 
													</tags> 								
 | 
				
			||||||
								<filter>@</filter>
 | 
													<filter>@</filter>
 | 
				
			||||||
								<cleanup>try</cleanup>
 | 
													<cleanup>try</cleanup>
 | 
				
			||||||
								<dockerFileDir>${project.basedir}/src/main/docker</dockerFileDir>
 | 
													<dockerFileDir>${project.basedir}/src/main/docker</dockerFileDir>
 | 
				
			||||||
@@ -60,6 +65,9 @@
 | 
				
			|||||||
                                                <image>
 | 
					                                                <image>
 | 
				
			||||||
                                                        <name>opensync-gateway-and-mqtt:${project.version}</name>
 | 
					                                                        <name>opensync-gateway-and-mqtt:${project.version}</name>
 | 
				
			||||||
                                                        <build>
 | 
					                                                        <build>
 | 
				
			||||||
 | 
					                                                            <tags>
 | 
				
			||||||
 | 
					                                                               <tag>${project.version}-${timestamp}</tag>
 | 
				
			||||||
 | 
					                                                            </tags>
 | 
				
			||||||
                                                                <filter>@</filter>
 | 
					                                                                <filter>@</filter>
 | 
				
			||||||
                                                                <cleanup>try</cleanup>
 | 
					                                                                <cleanup>try</cleanup>
 | 
				
			||||||
                                                                <dockerFileDir>${project.basedir}/src/main/docker-opensync-gateway-and-mqtt</dockerFileDir>
 | 
					                                                                <dockerFileDir>${project.basedir}/src/main/docker-opensync-gateway-and-mqtt</dockerFileDir>
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,6 @@
 | 
				
			|||||||
FROM adoptopenjdk/openjdk13:alpine-jre
 | 
					FROM adoptopenjdk/openjdk13:alpine-jre
 | 
				
			||||||
 | 
					
 | 
				
			||||||
LABEL maintainer="ConnectUs.ai as part of the Telecom Infrastructure Project"
 | 
					LABEL maintainer="TipWlan"
 | 
				
			||||||
LABEL version="1.0"
 | 
					LABEL version="1.0"
 | 
				
			||||||
LABEL description="This image runs the mqtt broker (mosquitto) and \
 | 
					LABEL description="This image runs the mqtt broker (mosquitto) and \
 | 
				
			||||||
a statically configured OpenSync gateway."
 | 
					a statically configured OpenSync gateway."
 | 
				
			||||||
@@ -26,6 +26,14 @@ COPY app/opensync/EquipmentExample.json /app/opensync/EquipmentExample.json
 | 
				
			|||||||
COPY app/opensync/ProfileAPExample.json /app/opensync/ProfileAPExample.json
 | 
					COPY app/opensync/ProfileAPExample.json /app/opensync/ProfileAPExample.json
 | 
				
			||||||
COPY app/opensync/ProfileSsid.json /app/opensync/ProfileSsid.json
 | 
					COPY app/opensync/ProfileSsid.json /app/opensync/ProfileSsid.json
 | 
				
			||||||
COPY app/opensync/LocationBuildingExample.json /app/opensync/LocationBuildingExample.json
 | 
					COPY app/opensync/LocationBuildingExample.json /app/opensync/LocationBuildingExample.json
 | 
				
			||||||
 | 
					COPY app/opensync/ProfileMetrics.json /app/opensync/ProfileMetrics.json
 | 
				
			||||||
 | 
					COPY app/opensync/ProfileRf.json /app/opensync/ProfileRf.json
 | 
				
			||||||
 | 
					COPY app/opensync/ProfileHotspot20.json /app/opensync/ProfileHotspot20.json
 | 
				
			||||||
 | 
					COPY app/opensync/ProfileOperator.json /app/opensync/ProfileOperator.json
 | 
				
			||||||
 | 
					COPY app/opensync/ProfileVenue.json /app/opensync/ProfileVenue.json
 | 
				
			||||||
 | 
					COPY app/opensync/ProfileIdProvider.json /app/opensync/ProfileIdProvider.json
 | 
				
			||||||
 | 
					COPY app/opensync/ProfileBonjour.json /app/opensync/ProfileBonjour.json
 | 
				
			||||||
 | 
					COPY app/commit.properties /app
 | 
				
			||||||
 | 
					
 | 
				
			||||||
VOLUME ["/app/logs", "/app/config"]
 | 
					VOLUME ["/app/logs", "/app/config"]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -0,0 +1,4 @@
 | 
				
			|||||||
 | 
					#This is a dummy property file to be used when running docker locally 
 | 
				
			||||||
 | 
					date=${date}
 | 
				
			||||||
 | 
					commitId=${commit.id}
 | 
				
			||||||
 | 
					projectVersion=${project.version}
 | 
				
			||||||
@@ -38,37 +38,28 @@
 | 
				
			|||||||
        "channelNumber": 6,
 | 
					        "channelNumber": 6,
 | 
				
			||||||
        "manualChannelNumber": 6,
 | 
					        "manualChannelNumber": 6,
 | 
				
			||||||
        "backupChannelNumber": 11,
 | 
					        "backupChannelNumber": 11,
 | 
				
			||||||
        "autoChannelSelection": false,
 | 
					 | 
				
			||||||
        "channelBandwidth": "is20MHz",
 | 
					 | 
				
			||||||
        "bannedChannels": [],
 | 
					        "bannedChannels": [],
 | 
				
			||||||
        "allowedChannels": [],
 | 
					        "allowedChannels": [],
 | 
				
			||||||
        "rxCellSizeDb": {
 | 
					        "rxCellSizeDb": {
 | 
				
			||||||
          "model_type": "AutoOrManualValue",
 | 
					          "model_type": "SourceSelectionValue",
 | 
				
			||||||
          "auto": true,
 | 
					        "source": "auto",
 | 
				
			||||||
          "value": -90
 | 
					          "value": -90
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        "probeResponseThresholdDb": {
 | 
					        "probeResponseThresholdDb": {
 | 
				
			||||||
          "model_type": "AutoOrManualValue",
 | 
					          "model_type": "SourceSelectionValue",
 | 
				
			||||||
          "auto": true,
 | 
					        "source": "auto",
 | 
				
			||||||
          "value": -90
 | 
					          "value": -90
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        "clientDisconnectThresholdDb": {
 | 
					        "clientDisconnectThresholdDb": {
 | 
				
			||||||
          "model_type": "AutoOrManualValue",
 | 
					          "model_type": "SourceSelectionValue",
 | 
				
			||||||
          "auto": true,
 | 
					        	 "source": "auto",
 | 
				
			||||||
          "value": -90
 | 
					          "value": -90
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        "eirpTxPower": {
 | 
					        "eirpTxPower": {
 | 
				
			||||||
          "model_type": "AutoOrManualValue",
 | 
					          "model_type": "SourceSelectionValue",
 | 
				
			||||||
          "auto": false,
 | 
					        	 "source": "auto",
 | 
				
			||||||
          "value": 32
 | 
					          "value": 32
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        "bestApEnabled": null,
 | 
					 | 
				
			||||||
        "neighbouringListApConfig": {
 | 
					 | 
				
			||||||
          "model_type": "NeighbouringAPListConfiguration",
 | 
					 | 
				
			||||||
          "minSignal": -85,
 | 
					 | 
				
			||||||
          "maxAps": 25
 | 
					 | 
				
			||||||
        },
 | 
					 | 
				
			||||||
        "minAutoCellSize": -80,
 | 
					 | 
				
			||||||
        "perimeterDetectionEnabled": true,
 | 
					        "perimeterDetectionEnabled": true,
 | 
				
			||||||
        "bestAPSteerType": "both",
 | 
					        "bestAPSteerType": "both",
 | 
				
			||||||
        "deauthAttackDetection": null,
 | 
					        "deauthAttackDetection": null,
 | 
				
			||||||
@@ -81,37 +72,28 @@
 | 
				
			|||||||
        "channelNumber": 149,
 | 
					        "channelNumber": 149,
 | 
				
			||||||
        "manualChannelNumber": 149,
 | 
					        "manualChannelNumber": 149,
 | 
				
			||||||
        "backupChannelNumber": 154,
 | 
					        "backupChannelNumber": 154,
 | 
				
			||||||
        "autoChannelSelection": false,
 | 
					 | 
				
			||||||
        "channelBandwidth": "is80MHz",
 | 
					 | 
				
			||||||
        "bannedChannels": [],
 | 
					        "bannedChannels": [],
 | 
				
			||||||
        "allowedChannels": [],
 | 
					        "allowedChannels": [],
 | 
				
			||||||
        "rxCellSizeDb": {
 | 
					        "rxCellSizeDb": {
 | 
				
			||||||
          "model_type": "AutoOrManualValue",
 | 
					          "model_type": "SourceSelectionValue",
 | 
				
			||||||
          "auto": true,
 | 
					        	 "source": "auto",
 | 
				
			||||||
          "value": -90
 | 
					          "value": -90
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        "probeResponseThresholdDb": {
 | 
					        "probeResponseThresholdDb": {
 | 
				
			||||||
          "model_type": "AutoOrManualValue",
 | 
					          "model_type": "SourceSelectionValue",
 | 
				
			||||||
          "auto": true,
 | 
					        	 "source": "auto",
 | 
				
			||||||
          "value": -90
 | 
					          "value": -90
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        "clientDisconnectThresholdDb": {
 | 
					        "clientDisconnectThresholdDb": {
 | 
				
			||||||
          "model_type": "AutoOrManualValue",
 | 
					          "model_type": "SourceSelectionValue",
 | 
				
			||||||
          "auto": true,
 | 
					        	 "source": "auto",
 | 
				
			||||||
          "value": -90
 | 
					          "value": -90
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        "eirpTxPower": {
 | 
					        "eirpTxPower": {
 | 
				
			||||||
          "model_type": "AutoOrManualValue",
 | 
					          "model_type": "SourceSelectionValue",
 | 
				
			||||||
          "auto": false,
 | 
					        	 "source": "auto",
 | 
				
			||||||
          "value": 32
 | 
					          "value": 32
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        "bestApEnabled": null,
 | 
					 | 
				
			||||||
        "neighbouringListApConfig": {
 | 
					 | 
				
			||||||
          "model_type": "NeighbouringAPListConfiguration",
 | 
					 | 
				
			||||||
          "minSignal": -85,
 | 
					 | 
				
			||||||
          "maxAps": 25
 | 
					 | 
				
			||||||
        },
 | 
					 | 
				
			||||||
        "minAutoCellSize": -80,
 | 
					 | 
				
			||||||
        "perimeterDetectionEnabled": true,
 | 
					        "perimeterDetectionEnabled": true,
 | 
				
			||||||
        "bestAPSteerType": "both",
 | 
					        "bestAPSteerType": "both",
 | 
				
			||||||
        "deauthAttackDetection": null,
 | 
					        "deauthAttackDetection": null,
 | 
				
			||||||
@@ -124,37 +106,28 @@
 | 
				
			|||||||
        "channelNumber": 36,
 | 
					        "channelNumber": 36,
 | 
				
			||||||
        "manualChannelNumber": 36,
 | 
					        "manualChannelNumber": 36,
 | 
				
			||||||
        "backupChannelNumber": 44,
 | 
					        "backupChannelNumber": 44,
 | 
				
			||||||
        "autoChannelSelection": false,
 | 
					 | 
				
			||||||
        "channelBandwidth": "is80MHz",
 | 
					 | 
				
			||||||
        "bannedChannels": [],
 | 
					        "bannedChannels": [],
 | 
				
			||||||
        "allowedChannels": [],
 | 
					        "allowedChannels": [],
 | 
				
			||||||
        "rxCellSizeDb": {
 | 
					        "rxCellSizeDb": {
 | 
				
			||||||
          "model_type": "AutoOrManualValue",
 | 
					          "model_type": "SourceSelectionValue",
 | 
				
			||||||
          "auto": true,
 | 
					        	 "source": "auto",
 | 
				
			||||||
          "value": -90
 | 
					          "value": -90
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        "probeResponseThresholdDb": {
 | 
					        "probeResponseThresholdDb": {
 | 
				
			||||||
          "model_type": "AutoOrManualValue",
 | 
					          "model_type": "SourceSelectionValue",
 | 
				
			||||||
          "auto": true,
 | 
					        	 "source": "auto",
 | 
				
			||||||
          "value": -90
 | 
					          "value": -90
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        "clientDisconnectThresholdDb": {
 | 
					        "clientDisconnectThresholdDb": {
 | 
				
			||||||
          "model_type": "AutoOrManualValue",
 | 
					          "model_type": "SourceSelectionValue",
 | 
				
			||||||
          "auto": true,
 | 
					        	 "source": "auto",
 | 
				
			||||||
          "value": -90
 | 
					          "value": -90
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        "eirpTxPower": {
 | 
					        "eirpTxPower": {
 | 
				
			||||||
          "model_type": "AutoOrManualValue",
 | 
					          "model_type": "SourceSelectionValue",
 | 
				
			||||||
          "auto": false,
 | 
					        	 "source": "auto",
 | 
				
			||||||
          "value": 32
 | 
					          "value": 32
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        "bestApEnabled": null,
 | 
					 | 
				
			||||||
        "neighbouringListApConfig": {
 | 
					 | 
				
			||||||
          "model_type": "NeighbouringAPListConfiguration",
 | 
					 | 
				
			||||||
          "minSignal": -85,
 | 
					 | 
				
			||||||
          "maxAps": 25
 | 
					 | 
				
			||||||
        },
 | 
					 | 
				
			||||||
        "minAutoCellSize": -80,
 | 
					 | 
				
			||||||
        "perimeterDetectionEnabled": true,
 | 
					        "perimeterDetectionEnabled": true,
 | 
				
			||||||
        "bestAPSteerType": "both",
 | 
					        "bestAPSteerType": "both",
 | 
				
			||||||
        "deauthAttackDetection": null,
 | 
					        "deauthAttackDetection": null,
 | 
				
			||||||
@@ -168,39 +141,24 @@
 | 
				
			|||||||
        "radioType": "is2dot4GHz",
 | 
					        "radioType": "is2dot4GHz",
 | 
				
			||||||
        "radioAdminState": "enabled",
 | 
					        "radioAdminState": "enabled",
 | 
				
			||||||
        "fragmentationThresholdBytes": 2346,
 | 
					        "fragmentationThresholdBytes": 2346,
 | 
				
			||||||
        "rtsCtsThreshold": 65535,
 | 
					 | 
				
			||||||
        "autoChannelSelection": "disabled",
 | 
					 | 
				
			||||||
        "radioMode": "modeN",
 | 
					 | 
				
			||||||
        "mimoMode": "twoByTwo",
 | 
					 | 
				
			||||||
        "wmmState": "enabled",
 | 
					 | 
				
			||||||
        "uapsdState": "enabled",
 | 
					        "uapsdState": "enabled",
 | 
				
			||||||
        "maxNumClients": 100,
 | 
					 | 
				
			||||||
        "stationIsolation": "disabled",
 | 
					        "stationIsolation": "disabled",
 | 
				
			||||||
        "multicastRate": "auto",
 | 
					        "managementRate": {
 | 
				
			||||||
        "managementRate": "auto",
 | 
					          "model_type": "SourceSelectionManagement",
 | 
				
			||||||
        "activeScanSettings": {
 | 
					          "source": "auto",
 | 
				
			||||||
          "model_type": "ActiveScanSettings",
 | 
					          "value": "auto"
 | 
				
			||||||
          "enabled": true,
 | 
					 | 
				
			||||||
          "scanFrequencySeconds": 10,
 | 
					 | 
				
			||||||
          "scanDurationMillis": 65
 | 
					 | 
				
			||||||
        },
 | 
					 | 
				
			||||||
        "channelHopSettings": {
 | 
					 | 
				
			||||||
          "model_type": "ChannelHopSettings",
 | 
					 | 
				
			||||||
          "noiseFloorThresholdInDB": -75,
 | 
					 | 
				
			||||||
          "noiseFloorThresholdTimeInSeconds": 180,
 | 
					 | 
				
			||||||
          "nonWifiThresholdInPercentage": 50,
 | 
					 | 
				
			||||||
          "nonWifiThresholdTimeInSeconds": 180,
 | 
					 | 
				
			||||||
          "obssHopMode": "NON_WIFI"
 | 
					 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        "bestApSettings": {
 | 
					        "bestApSettings": {
 | 
				
			||||||
          "model_type": "RadioBestApSettings",
 | 
					        "model_type": "SourceSelectionSteering",
 | 
				
			||||||
          "mlComputed": true,
 | 
					          "source": "auto",
 | 
				
			||||||
          "dropInSnrPercentage": 20,
 | 
					          "value": {
 | 
				
			||||||
          "minLoadFactor": 50
 | 
						          "model_type": "RadioBestApSettings",
 | 
				
			||||||
 | 
						          "mlComputed": true,
 | 
				
			||||||
 | 
						          "dropInSnrPercentage": 30,
 | 
				
			||||||
 | 
						          "minLoadFactor": 40
 | 
				
			||||||
 | 
					          }
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        "forceScanDuringVoice": "disabled",
 | 
					 | 
				
			||||||
        "legacyBSSRate": "enabled",
 | 
					        "legacyBSSRate": "enabled",
 | 
				
			||||||
        "beaconInterval": 100,
 | 
					 | 
				
			||||||
        "deauthAttackDetection": null
 | 
					        "deauthAttackDetection": null
 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      "is5GHzU": {
 | 
					      "is5GHzU": {
 | 
				
			||||||
@@ -208,39 +166,24 @@
 | 
				
			|||||||
        "radioType": "is5GHzU",
 | 
					        "radioType": "is5GHzU",
 | 
				
			||||||
        "radioAdminState": "enabled",
 | 
					        "radioAdminState": "enabled",
 | 
				
			||||||
        "fragmentationThresholdBytes": 2346,
 | 
					        "fragmentationThresholdBytes": 2346,
 | 
				
			||||||
        "rtsCtsThreshold": 65535,
 | 
					 | 
				
			||||||
        "autoChannelSelection": "disabled",
 | 
					 | 
				
			||||||
        "radioMode": "modeAC",
 | 
					 | 
				
			||||||
        "mimoMode": "twoByTwo",
 | 
					 | 
				
			||||||
        "wmmState": "enabled",
 | 
					 | 
				
			||||||
        "uapsdState": "enabled",
 | 
					        "uapsdState": "enabled",
 | 
				
			||||||
        "maxNumClients": 100,
 | 
					 | 
				
			||||||
        "stationIsolation": "disabled",
 | 
					        "stationIsolation": "disabled",
 | 
				
			||||||
        "multicastRate": "auto",
 | 
					        "managementRate": {
 | 
				
			||||||
        "managementRate": "auto",
 | 
					          "model_type": "SourceSelectionManagement",
 | 
				
			||||||
        "activeScanSettings": {
 | 
					          "source": "auto",
 | 
				
			||||||
          "model_type": "ActiveScanSettings",
 | 
					          "value": "auto"
 | 
				
			||||||
          "enabled": true,
 | 
					 | 
				
			||||||
          "scanFrequencySeconds": 10,
 | 
					 | 
				
			||||||
          "scanDurationMillis": 65
 | 
					 | 
				
			||||||
        },
 | 
					 | 
				
			||||||
        "channelHopSettings": {
 | 
					 | 
				
			||||||
          "model_type": "ChannelHopSettings",
 | 
					 | 
				
			||||||
          "noiseFloorThresholdInDB": -75,
 | 
					 | 
				
			||||||
          "noiseFloorThresholdTimeInSeconds": 180,
 | 
					 | 
				
			||||||
          "nonWifiThresholdInPercentage": 50,
 | 
					 | 
				
			||||||
          "nonWifiThresholdTimeInSeconds": 180,
 | 
					 | 
				
			||||||
          "obssHopMode": "NON_WIFI"
 | 
					 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        "bestApSettings": {
 | 
					        "bestApSettings": {
 | 
				
			||||||
          "model_type": "RadioBestApSettings",
 | 
					        "model_type": "SourceSelectionSteering",
 | 
				
			||||||
          "mlComputed": true,
 | 
					          "source": "auto",
 | 
				
			||||||
          "dropInSnrPercentage": 30,
 | 
					          "value": {
 | 
				
			||||||
          "minLoadFactor": 40
 | 
						          "model_type": "RadioBestApSettings",
 | 
				
			||||||
 | 
						          "mlComputed": true,
 | 
				
			||||||
 | 
						          "dropInSnrPercentage": 30,
 | 
				
			||||||
 | 
						          "minLoadFactor": 40
 | 
				
			||||||
 | 
					          }
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        "forceScanDuringVoice": "disabled",
 | 
					 | 
				
			||||||
        "legacyBSSRate": "enabled",
 | 
					        "legacyBSSRate": "enabled",
 | 
				
			||||||
        "beaconInterval": 100,
 | 
					 | 
				
			||||||
        "deauthAttackDetection": null
 | 
					        "deauthAttackDetection": null
 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      "is5GHzL": {
 | 
					      "is5GHzL": {
 | 
				
			||||||
@@ -248,39 +191,24 @@
 | 
				
			|||||||
        "radioType": "is5GHzL",
 | 
					        "radioType": "is5GHzL",
 | 
				
			||||||
        "radioAdminState": "enabled",
 | 
					        "radioAdminState": "enabled",
 | 
				
			||||||
        "fragmentationThresholdBytes": 2346,
 | 
					        "fragmentationThresholdBytes": 2346,
 | 
				
			||||||
        "rtsCtsThreshold": 65535,
 | 
					 | 
				
			||||||
        "autoChannelSelection": "disabled",
 | 
					 | 
				
			||||||
        "radioMode": "modeAC",
 | 
					 | 
				
			||||||
        "mimoMode": "twoByTwo",
 | 
					 | 
				
			||||||
        "wmmState": "enabled",
 | 
					 | 
				
			||||||
        "uapsdState": "enabled",
 | 
					        "uapsdState": "enabled",
 | 
				
			||||||
        "maxNumClients": 100,
 | 
					 | 
				
			||||||
        "stationIsolation": "disabled",
 | 
					        "stationIsolation": "disabled",
 | 
				
			||||||
        "multicastRate": "auto",
 | 
					        "managementRate": {
 | 
				
			||||||
        "managementRate": "auto",
 | 
					          "model_type": "SourceSelectionManagement",
 | 
				
			||||||
        "activeScanSettings": {
 | 
					          "source": "auto",
 | 
				
			||||||
          "model_type": "ActiveScanSettings",
 | 
					          "value": "auto"
 | 
				
			||||||
          "enabled": true,
 | 
					 | 
				
			||||||
          "scanFrequencySeconds": 10,
 | 
					 | 
				
			||||||
          "scanDurationMillis": 65
 | 
					 | 
				
			||||||
        },
 | 
					 | 
				
			||||||
        "channelHopSettings": {
 | 
					 | 
				
			||||||
          "model_type": "ChannelHopSettings",
 | 
					 | 
				
			||||||
          "noiseFloorThresholdInDB": -75,
 | 
					 | 
				
			||||||
          "noiseFloorThresholdTimeInSeconds": 180,
 | 
					 | 
				
			||||||
          "nonWifiThresholdInPercentage": 50,
 | 
					 | 
				
			||||||
          "nonWifiThresholdTimeInSeconds": 180,
 | 
					 | 
				
			||||||
          "obssHopMode": "NON_WIFI"
 | 
					 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        "bestApSettings": {
 | 
					        "bestApSettings": {
 | 
				
			||||||
          "model_type": "RadioBestApSettings",
 | 
					        "model_type": "SourceSelectionSteering",
 | 
				
			||||||
          "mlComputed": true,
 | 
					          "source": "auto",
 | 
				
			||||||
          "dropInSnrPercentage": 30,
 | 
					          "value": {
 | 
				
			||||||
          "minLoadFactor": 40
 | 
						          "model_type": "RadioBestApSettings",
 | 
				
			||||||
 | 
						          "mlComputed": true,
 | 
				
			||||||
 | 
						          "dropInSnrPercentage": 30,
 | 
				
			||||||
 | 
						          "minLoadFactor": 40
 | 
				
			||||||
 | 
					          }
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        "forceScanDuringVoice": "disabled",
 | 
					 | 
				
			||||||
        "legacyBSSRate": "enabled",
 | 
					        "legacyBSSRate": "enabled",
 | 
				
			||||||
        "beaconInterval": 100,
 | 
					 | 
				
			||||||
        "deauthAttackDetection": null
 | 
					        "deauthAttackDetection": null
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
@@ -290,4 +218,4 @@
 | 
				
			|||||||
  "serial": "21P10C68818122",
 | 
					  "serial": "21P10C68818122",
 | 
				
			||||||
  "createdTimestamp": 1591653239821,
 | 
					  "createdTimestamp": 1591653239821,
 | 
				
			||||||
  "lastModifiedTimestamp": 1591653241398
 | 
					  "lastModifiedTimestamp": 1591653241398
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,54 +1,50 @@
 | 
				
			|||||||
{
 | 
					{
 | 
				
			||||||
  "model_type": "Profile",
 | 
					    "model_type": "Profile",
 | 
				
			||||||
  "id": 5,
 | 
					    "id": 17,
 | 
				
			||||||
  "customerId": 2,
 | 
					    "customerId": 2,
 | 
				
			||||||
  "profileType": "equipment_ap",
 | 
					    "profileType": "equipment_ap",
 | 
				
			||||||
  "name": "DefaultApProfile",
 | 
					    "name": "ApProfile-3-radios",
 | 
				
			||||||
  "details": {
 | 
					    "details": {
 | 
				
			||||||
    "model_type": "ApNetworkConfiguration",
 | 
					        "model_type": "ApNetworkConfiguration",
 | 
				
			||||||
    "networkConfigVersion": "AP-1",
 | 
					        "networkConfigVersion": "AP-1",
 | 
				
			||||||
    "equipmentType": "AP",
 | 
					        "equipmentType": "AP",
 | 
				
			||||||
    "vlanNative": true,
 | 
					        "vlanNative": true,
 | 
				
			||||||
    "vlan": 0,
 | 
					        "vlan": 0,
 | 
				
			||||||
    "ntpServer": {
 | 
					        "ntpServer": {
 | 
				
			||||||
      "model_type": "AutoOrManualString",
 | 
					            "model_type": "AutoOrManualString",
 | 
				
			||||||
      "auto": true,
 | 
					            "auto": true,
 | 
				
			||||||
      "value": "pool.ntp.org"
 | 
					            "value": "pool.ntp.org"
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					        "syslogRelay": null,
 | 
				
			||||||
 | 
					        "rtlsSettings": null,
 | 
				
			||||||
 | 
					        "syntheticClientEnabled": true,
 | 
				
			||||||
 | 
					        "ledControlEnabled": true,
 | 
				
			||||||
 | 
					        "equipmentDiscovery": false,
 | 
				
			||||||
 | 
					        "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"
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "syslogRelay": null,
 | 
					    "createdTimestamp": 1602182806348,
 | 
				
			||||||
    "rtlsSettings": null,
 | 
					    "lastModifiedTimestamp": 1602182806348,
 | 
				
			||||||
    "syntheticClientEnabled": true,
 | 
					    "childProfileIds": [
 | 
				
			||||||
    "ledControlEnabled": true,
 | 
					        2,
 | 
				
			||||||
    "equipmentDiscovery": false,
 | 
					        5,
 | 
				
			||||||
    "radioMap": {
 | 
					        11,
 | 
				
			||||||
      "is5GHz": {
 | 
					        13
 | 
				
			||||||
        "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
 | 
					 | 
				
			||||||
  ]
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@@ -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": 10,
 | 
				
			||||||
 | 
					    "customerId": 2,
 | 
				
			||||||
 | 
					    "profileType": "hotspot_2pt0",
 | 
				
			||||||
 | 
					    "name": "TipWlan-Hotspot20-Config",
 | 
				
			||||||
 | 
					    "details": {
 | 
				
			||||||
 | 
					        "model_type": "Hotspot2Profile",
 | 
				
			||||||
 | 
					        "enableInterworkingAndHs20": true,
 | 
				
			||||||
 | 
					        "hessid": null,
 | 
				
			||||||
 | 
					        "accessNetworkType": "free_public_network",
 | 
				
			||||||
 | 
					        "networkAuthenticationType": "acceptance_of_terms_and_conditions",
 | 
				
			||||||
 | 
					        "additionalStepsRequiredForAccess": 0,
 | 
				
			||||||
 | 
					        "deauthRequestTimeout": 0,
 | 
				
			||||||
 | 
					        "operatingClass": 0,
 | 
				
			||||||
 | 
					        "termsAndConditionsFile": {
 | 
				
			||||||
 | 
					            "model_type": "ManagedFileInfo",
 | 
				
			||||||
 | 
					            "md5checksum": null,
 | 
				
			||||||
 | 
					            "lastModifiedTimestamp": null,
 | 
				
			||||||
 | 
					            "apExportUrl": "https://localhost:9091/filestore/termsAndConditions",
 | 
				
			||||||
 | 
					            "fileCategory": "ExternalPolicyConfiguration",
 | 
				
			||||||
 | 
					            "fileType": "TEXT",
 | 
				
			||||||
 | 
					            "altSlot": false
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					        "whitelistDomain": null,
 | 
				
			||||||
 | 
					        "emergencyServicesReachable": true,
 | 
				
			||||||
 | 
					        "unauthenticatedEmergencyServiceAccessible": false,
 | 
				
			||||||
 | 
					        "internetConnectivity": true,
 | 
				
			||||||
 | 
					        "connectionCapabilitySet": [
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                "model_type": "ConnectionCapability",
 | 
				
			||||||
 | 
					                "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-3-radios",
 | 
				
			||||||
 | 
					        "operatorProfileName": "TipWlan-Hotspot20-Operator",
 | 
				
			||||||
 | 
					        "venueProfileName": "TipWlan-Hotspot20-Venue",
 | 
				
			||||||
 | 
					        "idProviderProfileNames": [
 | 
				
			||||||
 | 
					            "TipWlan-Hotspot20-OSU-Provider-2",
 | 
				
			||||||
 | 
					            "TipWlan-Hotspot20-OSU-Provider"
 | 
				
			||||||
 | 
					        ],
 | 
				
			||||||
 | 
					        "profileType": "hotspot_2pt0",
 | 
				
			||||||
 | 
					        "associatedSsids": [
 | 
				
			||||||
 | 
					            "TipWlan-cloud-hotspot-access"
 | 
				
			||||||
 | 
					        ]
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "createdTimestamp": 1602182806040,
 | 
				
			||||||
 | 
					    "lastModifiedTimestamp": 1602182806040,
 | 
				
			||||||
 | 
					    "childProfileIds": [
 | 
				
			||||||
 | 
					        6,
 | 
				
			||||||
 | 
					        7,
 | 
				
			||||||
 | 
					        8,
 | 
				
			||||||
 | 
					        9
 | 
				
			||||||
 | 
					    ]
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					]
 | 
				
			||||||
@@ -0,0 +1,256 @@
 | 
				
			|||||||
 | 
					[
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    "model_type": "Profile",
 | 
				
			||||||
 | 
					    "id": 8,
 | 
				
			||||||
 | 
					    "customerId": 2,
 | 
				
			||||||
 | 
					    "profileType": "id_provider",
 | 
				
			||||||
 | 
					    "name": "TipWlan-Hotspot20-OSU-Provider",
 | 
				
			||||||
 | 
					    "details": {
 | 
				
			||||||
 | 
					        "model_type": "Hotspot20IdProviderProfile",
 | 
				
			||||||
 | 
					        "domainName": "rogers.com",
 | 
				
			||||||
 | 
					        "mccMncList": [
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                "model_type": "MccMnc",
 | 
				
			||||||
 | 
					                "mcc": 302,
 | 
				
			||||||
 | 
					                "mnc": 720,
 | 
				
			||||||
 | 
					                "iso": "ca",
 | 
				
			||||||
 | 
					                "country": "Canada",
 | 
				
			||||||
 | 
					                "countryCode": 1,
 | 
				
			||||||
 | 
					                "network": "Rogers AT&T Wireless",
 | 
				
			||||||
 | 
					                "mccMncPairing": "302,720"
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        ],
 | 
				
			||||||
 | 
					        "naiRealmList": [
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                "model_type": "NaiRealmInformation",
 | 
				
			||||||
 | 
					                "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": "OsuIcon",
 | 
				
			||||||
 | 
					                "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": "OsuIcon",
 | 
				
			||||||
 | 
					                "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": "OsuIcon",
 | 
				
			||||||
 | 
					                "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": "Hotspot20Duple",
 | 
				
			||||||
 | 
					                "locale": "en_CA",
 | 
				
			||||||
 | 
					                "dupleIso3Language": "eng",
 | 
				
			||||||
 | 
					                "dupleName": "Example provider rogers",
 | 
				
			||||||
 | 
					                "defaultDupleSeparator": ":",
 | 
				
			||||||
 | 
					                "asDuple": "eng:Example provider rogers"
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                "model_type": "Hotspot20Duple",
 | 
				
			||||||
 | 
					                "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": "Hotspot20Duple",
 | 
				
			||||||
 | 
					                "locale": "en_CA",
 | 
				
			||||||
 | 
					                "dupleIso3Language": "eng",
 | 
				
			||||||
 | 
					                "dupleName": "Example services rogers",
 | 
				
			||||||
 | 
					                "defaultDupleSeparator": ":",
 | 
				
			||||||
 | 
					                "asDuple": "eng:Example services rogers"
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                "model_type": "Hotspot20Duple",
 | 
				
			||||||
 | 
					                "locale": "fr_CA",
 | 
				
			||||||
 | 
					                "dupleIso3Language": "fra",
 | 
				
			||||||
 | 
					                "dupleName": "Exemples de services rogers",
 | 
				
			||||||
 | 
					                "defaultDupleSeparator": ":",
 | 
				
			||||||
 | 
					                "asDuple": "fra:Exemples de services rogers"
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        ],
 | 
				
			||||||
 | 
					        "profileType": "id_provider"
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "createdTimestamp": 1602182805654,
 | 
				
			||||||
 | 
					    "lastModifiedTimestamp": 1602182805654,
 | 
				
			||||||
 | 
					    "childProfileIds": []
 | 
				
			||||||
 | 
					},
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    "model_type": "Profile",
 | 
				
			||||||
 | 
					    "id": 9,
 | 
				
			||||||
 | 
					    "customerId": 2,
 | 
				
			||||||
 | 
					    "profileType": "id_provider",
 | 
				
			||||||
 | 
					    "name": "TipWlan-Hotspot20-OSU-Provider-2",
 | 
				
			||||||
 | 
					    "details": {
 | 
				
			||||||
 | 
					        "model_type": "Hotspot20IdProviderProfile",
 | 
				
			||||||
 | 
					        "domainName": "telus.com",
 | 
				
			||||||
 | 
					        "mccMncList": [
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                "model_type": "MccMnc",
 | 
				
			||||||
 | 
					                "mcc": 302,
 | 
				
			||||||
 | 
					                "mnc": 220,
 | 
				
			||||||
 | 
					                "iso": "ca",
 | 
				
			||||||
 | 
					                "country": "Canada",
 | 
				
			||||||
 | 
					                "countryCode": 1,
 | 
				
			||||||
 | 
					                "network": "Telus Mobility",
 | 
				
			||||||
 | 
					                "mccMncPairing": "302,220"
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        ],
 | 
				
			||||||
 | 
					        "naiRealmList": [
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                "model_type": "NaiRealmInformation",
 | 
				
			||||||
 | 
					                "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": "OsuIcon",
 | 
				
			||||||
 | 
					                "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": "OsuIcon",
 | 
				
			||||||
 | 
					                "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": "OsuIcon",
 | 
				
			||||||
 | 
					                "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": "Hotspot20Duple",
 | 
				
			||||||
 | 
					                "locale": "en_CA",
 | 
				
			||||||
 | 
					                "dupleIso3Language": "eng",
 | 
				
			||||||
 | 
					                "dupleName": "Example provider telus",
 | 
				
			||||||
 | 
					                "defaultDupleSeparator": ":",
 | 
				
			||||||
 | 
					                "asDuple": "eng:Example provider telus"
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                "model_type": "Hotspot20Duple",
 | 
				
			||||||
 | 
					                "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": "Hotspot20Duple",
 | 
				
			||||||
 | 
					                "locale": "en_CA",
 | 
				
			||||||
 | 
					                "dupleIso3Language": "eng",
 | 
				
			||||||
 | 
					                "dupleName": "Example services telus",
 | 
				
			||||||
 | 
					                "defaultDupleSeparator": ":",
 | 
				
			||||||
 | 
					                "asDuple": "eng:Example services telus"
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                "model_type": "Hotspot20Duple",
 | 
				
			||||||
 | 
					                "locale": "fr_CA",
 | 
				
			||||||
 | 
					                "dupleIso3Language": "fra",
 | 
				
			||||||
 | 
					                "dupleName": "Exemples de services telus",
 | 
				
			||||||
 | 
					                "defaultDupleSeparator": ":",
 | 
				
			||||||
 | 
					                "asDuple": "fra:Exemples de services telus"
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        ],
 | 
				
			||||||
 | 
					        "profileType": "id_provider"
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "createdTimestamp": 1602182805660,
 | 
				
			||||||
 | 
					    "lastModifiedTimestamp": 1602182805660,
 | 
				
			||||||
 | 
					    "childProfileIds": []
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					    ]
 | 
				
			||||||
@@ -0,0 +1,298 @@
 | 
				
			|||||||
 | 
					[
 | 
				
			||||||
 | 
					 {
 | 
				
			||||||
 | 
					        "model_type": "Profile",
 | 
				
			||||||
 | 
					        "id": 2,
 | 
				
			||||||
 | 
					        "customerId": 2,
 | 
				
			||||||
 | 
					        "profileType": "metrics",
 | 
				
			||||||
 | 
					        "name": "Metrics-Profile-3-radios",
 | 
				
			||||||
 | 
					        "details": {
 | 
				
			||||||
 | 
					            "model_type": "ServiceMetricsCollectionConfigProfile",
 | 
				
			||||||
 | 
					            "radioTypes": [
 | 
				
			||||||
 | 
					                "is5GHzU",
 | 
				
			||||||
 | 
					                "is5GHzL",
 | 
				
			||||||
 | 
					                "is2dot4GHz"
 | 
				
			||||||
 | 
					            ],
 | 
				
			||||||
 | 
					            "serviceMetricDataTypes": [
 | 
				
			||||||
 | 
					                "ApNode",
 | 
				
			||||||
 | 
					                "ApSsid",
 | 
				
			||||||
 | 
					                "Client",
 | 
				
			||||||
 | 
					                "Channel",
 | 
				
			||||||
 | 
					                "Neighbour"
 | 
				
			||||||
 | 
					            ],
 | 
				
			||||||
 | 
					            "metricConfigParameterMap": {
 | 
				
			||||||
 | 
					                "ApNode": [
 | 
				
			||||||
 | 
					                    {
 | 
				
			||||||
 | 
					                        "model_type": "ServiceMetricSurveyConfigParameters",
 | 
				
			||||||
 | 
					                        "samplingInterval": 30,
 | 
				
			||||||
 | 
					                        "reportingIntervalSeconds": 120,
 | 
				
			||||||
 | 
					                        "channelSurveyType": "OFF_CHANNEL",
 | 
				
			||||||
 | 
					                        "scanIntervalMillis": 0,
 | 
				
			||||||
 | 
					                        "percentUtilizationThreshold": 10,
 | 
				
			||||||
 | 
					                        "delayMillisecondsThreshold": 600,
 | 
				
			||||||
 | 
					                        "statsReportFormat": "RAW",
 | 
				
			||||||
 | 
					                        "radioType": "is5GHzU",
 | 
				
			||||||
 | 
					                        "serviceMetricDataType": "ApNode"
 | 
				
			||||||
 | 
					                    },
 | 
				
			||||||
 | 
					                    {
 | 
				
			||||||
 | 
					                        "model_type": "ServiceMetricSurveyConfigParameters",
 | 
				
			||||||
 | 
					                        "samplingInterval": 30,
 | 
				
			||||||
 | 
					                        "reportingIntervalSeconds": 120,
 | 
				
			||||||
 | 
					                        "channelSurveyType": "OFF_CHANNEL",
 | 
				
			||||||
 | 
					                        "scanIntervalMillis": 0,
 | 
				
			||||||
 | 
					                        "percentUtilizationThreshold": 10,
 | 
				
			||||||
 | 
					                        "delayMillisecondsThreshold": 600,
 | 
				
			||||||
 | 
					                        "statsReportFormat": "RAW",
 | 
				
			||||||
 | 
					                        "radioType": "is5GHzL",
 | 
				
			||||||
 | 
					                        "serviceMetricDataType": "ApNode"
 | 
				
			||||||
 | 
					                    },
 | 
				
			||||||
 | 
					                    {
 | 
				
			||||||
 | 
					                        "model_type": "ServiceMetricSurveyConfigParameters",
 | 
				
			||||||
 | 
					                        "samplingInterval": 30,
 | 
				
			||||||
 | 
					                        "reportingIntervalSeconds": 120,
 | 
				
			||||||
 | 
					                        "channelSurveyType": "OFF_CHANNEL",
 | 
				
			||||||
 | 
					                        "scanIntervalMillis": 0,
 | 
				
			||||||
 | 
					                        "percentUtilizationThreshold": 10,
 | 
				
			||||||
 | 
					                        "delayMillisecondsThreshold": 600,
 | 
				
			||||||
 | 
					                        "statsReportFormat": "RAW",
 | 
				
			||||||
 | 
					                        "radioType": "is2dot4GHz",
 | 
				
			||||||
 | 
					                        "serviceMetricDataType": "ApNode"
 | 
				
			||||||
 | 
					                    },
 | 
				
			||||||
 | 
					                    {
 | 
				
			||||||
 | 
					                        "model_type": "ServiceMetricSurveyConfigParameters",
 | 
				
			||||||
 | 
					                        "samplingInterval": 30,
 | 
				
			||||||
 | 
					                        "reportingIntervalSeconds": 60,
 | 
				
			||||||
 | 
					                        "channelSurveyType": "ON_CHANNEL",
 | 
				
			||||||
 | 
					                        "scanIntervalMillis": 0,
 | 
				
			||||||
 | 
					                        "percentUtilizationThreshold": 10,
 | 
				
			||||||
 | 
					                        "delayMillisecondsThreshold": 600,
 | 
				
			||||||
 | 
					                        "statsReportFormat": "RAW",
 | 
				
			||||||
 | 
					                        "radioType": "is5GHzL",
 | 
				
			||||||
 | 
					                        "serviceMetricDataType": "ApNode"
 | 
				
			||||||
 | 
					                    },
 | 
				
			||||||
 | 
					                    {
 | 
				
			||||||
 | 
					                        "model_type": "ServiceMetricSurveyConfigParameters",
 | 
				
			||||||
 | 
					                        "samplingInterval": 30,
 | 
				
			||||||
 | 
					                        "reportingIntervalSeconds": 60,
 | 
				
			||||||
 | 
					                        "channelSurveyType": "ON_CHANNEL",
 | 
				
			||||||
 | 
					                        "scanIntervalMillis": 0,
 | 
				
			||||||
 | 
					                        "percentUtilizationThreshold": 10,
 | 
				
			||||||
 | 
					                        "delayMillisecondsThreshold": 600,
 | 
				
			||||||
 | 
					                        "statsReportFormat": "RAW",
 | 
				
			||||||
 | 
					                        "radioType": "is2dot4GHz",
 | 
				
			||||||
 | 
					                        "serviceMetricDataType": "ApNode"
 | 
				
			||||||
 | 
					                    },
 | 
				
			||||||
 | 
					                    {
 | 
				
			||||||
 | 
					                        "model_type": "ServiceMetricSurveyConfigParameters",
 | 
				
			||||||
 | 
					                        "samplingInterval": 30,
 | 
				
			||||||
 | 
					                        "reportingIntervalSeconds": 60,
 | 
				
			||||||
 | 
					                        "channelSurveyType": "ON_CHANNEL",
 | 
				
			||||||
 | 
					                        "scanIntervalMillis": 0,
 | 
				
			||||||
 | 
					                        "percentUtilizationThreshold": 10,
 | 
				
			||||||
 | 
					                        "delayMillisecondsThreshold": 600,
 | 
				
			||||||
 | 
					                        "statsReportFormat": "RAW",
 | 
				
			||||||
 | 
					                        "radioType": "is5GHzU",
 | 
				
			||||||
 | 
					                        "serviceMetricDataType": "ApNode"
 | 
				
			||||||
 | 
					                    }
 | 
				
			||||||
 | 
					                ],
 | 
				
			||||||
 | 
					                "ApSsid": [
 | 
				
			||||||
 | 
					                    {
 | 
				
			||||||
 | 
					                        "model_type": "ServiceMetricRadioConfigParameters",
 | 
				
			||||||
 | 
					                        "samplingInterval": 30,
 | 
				
			||||||
 | 
					                        "reportingIntervalSeconds": 60,
 | 
				
			||||||
 | 
					                        "radioType": "is2dot4GHz",
 | 
				
			||||||
 | 
					                        "serviceMetricDataType": "ApSsid"
 | 
				
			||||||
 | 
					                    },
 | 
				
			||||||
 | 
					                    {
 | 
				
			||||||
 | 
					                        "model_type": "ServiceMetricRadioConfigParameters",
 | 
				
			||||||
 | 
					                        "samplingInterval": 30,
 | 
				
			||||||
 | 
					                        "reportingIntervalSeconds": 60,
 | 
				
			||||||
 | 
					                        "radioType": "is5GHzL",
 | 
				
			||||||
 | 
					                        "serviceMetricDataType": "ApSsid"
 | 
				
			||||||
 | 
					                    },
 | 
				
			||||||
 | 
					                    {
 | 
				
			||||||
 | 
					                        "model_type": "ServiceMetricRadioConfigParameters",
 | 
				
			||||||
 | 
					                        "samplingInterval": 30,
 | 
				
			||||||
 | 
					                        "reportingIntervalSeconds": 60,
 | 
				
			||||||
 | 
					                        "radioType": "is5GHzU",
 | 
				
			||||||
 | 
					                        "serviceMetricDataType": "ApSsid"
 | 
				
			||||||
 | 
					                    }
 | 
				
			||||||
 | 
					                ],
 | 
				
			||||||
 | 
					                "Client": [
 | 
				
			||||||
 | 
					                    {
 | 
				
			||||||
 | 
					                        "model_type": "ServiceMetricRadioConfigParameters",
 | 
				
			||||||
 | 
					                        "samplingInterval": 30,
 | 
				
			||||||
 | 
					                        "reportingIntervalSeconds": 60,
 | 
				
			||||||
 | 
					                        "radioType": "is2dot4GHz",
 | 
				
			||||||
 | 
					                        "serviceMetricDataType": "Client"
 | 
				
			||||||
 | 
					                    },
 | 
				
			||||||
 | 
					                    {
 | 
				
			||||||
 | 
					                        "model_type": "ServiceMetricRadioConfigParameters",
 | 
				
			||||||
 | 
					                        "samplingInterval": 30,
 | 
				
			||||||
 | 
					                        "reportingIntervalSeconds": 60,
 | 
				
			||||||
 | 
					                        "radioType": "is5GHzL",
 | 
				
			||||||
 | 
					                        "serviceMetricDataType": "Client"
 | 
				
			||||||
 | 
					                    },
 | 
				
			||||||
 | 
					                    {
 | 
				
			||||||
 | 
					                        "model_type": "ServiceMetricRadioConfigParameters",
 | 
				
			||||||
 | 
					                        "samplingInterval": 30,
 | 
				
			||||||
 | 
					                        "reportingIntervalSeconds": 60,
 | 
				
			||||||
 | 
					                        "radioType": "is5GHzU",
 | 
				
			||||||
 | 
					                        "serviceMetricDataType": "Client"
 | 
				
			||||||
 | 
					                    }
 | 
				
			||||||
 | 
					                ],
 | 
				
			||||||
 | 
					                "Channel": [
 | 
				
			||||||
 | 
					                    {
 | 
				
			||||||
 | 
					                        "model_type": "ServiceMetricSurveyConfigParameters",
 | 
				
			||||||
 | 
					                        "samplingInterval": 30,
 | 
				
			||||||
 | 
					                        "reportingIntervalSeconds": 60,
 | 
				
			||||||
 | 
					                        "channelSurveyType": "ON_CHANNEL",
 | 
				
			||||||
 | 
					                        "scanIntervalMillis": 0,
 | 
				
			||||||
 | 
					                        "percentUtilizationThreshold": 10,
 | 
				
			||||||
 | 
					                        "delayMillisecondsThreshold": 600,
 | 
				
			||||||
 | 
					                        "statsReportFormat": "RAW",
 | 
				
			||||||
 | 
					                        "radioType": "is5GHzL",
 | 
				
			||||||
 | 
					                        "serviceMetricDataType": "Channel"
 | 
				
			||||||
 | 
					                    },
 | 
				
			||||||
 | 
					                    {
 | 
				
			||||||
 | 
					                        "model_type": "ServiceMetricSurveyConfigParameters",
 | 
				
			||||||
 | 
					                        "samplingInterval": 30,
 | 
				
			||||||
 | 
					                        "reportingIntervalSeconds": 60,
 | 
				
			||||||
 | 
					                        "channelSurveyType": "ON_CHANNEL",
 | 
				
			||||||
 | 
					                        "scanIntervalMillis": 0,
 | 
				
			||||||
 | 
					                        "percentUtilizationThreshold": 10,
 | 
				
			||||||
 | 
					                        "delayMillisecondsThreshold": 600,
 | 
				
			||||||
 | 
					                        "statsReportFormat": "RAW",
 | 
				
			||||||
 | 
					                        "radioType": "is2dot4GHz",
 | 
				
			||||||
 | 
					                        "serviceMetricDataType": "Channel"
 | 
				
			||||||
 | 
					                    },
 | 
				
			||||||
 | 
					                    {
 | 
				
			||||||
 | 
					                        "model_type": "ServiceMetricSurveyConfigParameters",
 | 
				
			||||||
 | 
					                        "samplingInterval": 30,
 | 
				
			||||||
 | 
					                        "reportingIntervalSeconds": 60,
 | 
				
			||||||
 | 
					                        "channelSurveyType": "ON_CHANNEL",
 | 
				
			||||||
 | 
					                        "scanIntervalMillis": 0,
 | 
				
			||||||
 | 
					                        "percentUtilizationThreshold": 10,
 | 
				
			||||||
 | 
					                        "delayMillisecondsThreshold": 600,
 | 
				
			||||||
 | 
					                        "statsReportFormat": "RAW",
 | 
				
			||||||
 | 
					                        "radioType": "is5GHzU",
 | 
				
			||||||
 | 
					                        "serviceMetricDataType": "Channel"
 | 
				
			||||||
 | 
					                    },
 | 
				
			||||||
 | 
					                    {
 | 
				
			||||||
 | 
					                        "model_type": "ServiceMetricSurveyConfigParameters",
 | 
				
			||||||
 | 
					                        "samplingInterval": 30,
 | 
				
			||||||
 | 
					                        "reportingIntervalSeconds": 120,
 | 
				
			||||||
 | 
					                        "channelSurveyType": "OFF_CHANNEL",
 | 
				
			||||||
 | 
					                        "scanIntervalMillis": 0,
 | 
				
			||||||
 | 
					                        "percentUtilizationThreshold": 10,
 | 
				
			||||||
 | 
					                        "delayMillisecondsThreshold": 600,
 | 
				
			||||||
 | 
					                        "statsReportFormat": "RAW",
 | 
				
			||||||
 | 
					                        "radioType": "is5GHzL",
 | 
				
			||||||
 | 
					                        "serviceMetricDataType": "Channel"
 | 
				
			||||||
 | 
					                    },
 | 
				
			||||||
 | 
					                    {
 | 
				
			||||||
 | 
					                        "model_type": "ServiceMetricSurveyConfigParameters",
 | 
				
			||||||
 | 
					                        "samplingInterval": 30,
 | 
				
			||||||
 | 
					                        "reportingIntervalSeconds": 120,
 | 
				
			||||||
 | 
					                        "channelSurveyType": "OFF_CHANNEL",
 | 
				
			||||||
 | 
					                        "scanIntervalMillis": 0,
 | 
				
			||||||
 | 
					                        "percentUtilizationThreshold": 10,
 | 
				
			||||||
 | 
					                        "delayMillisecondsThreshold": 600,
 | 
				
			||||||
 | 
					                        "statsReportFormat": "RAW",
 | 
				
			||||||
 | 
					                        "radioType": "is2dot4GHz",
 | 
				
			||||||
 | 
					                        "serviceMetricDataType": "Channel"
 | 
				
			||||||
 | 
					                    },
 | 
				
			||||||
 | 
					                    {
 | 
				
			||||||
 | 
					                        "model_type": "ServiceMetricSurveyConfigParameters",
 | 
				
			||||||
 | 
					                        "samplingInterval": 30,
 | 
				
			||||||
 | 
					                        "reportingIntervalSeconds": 120,
 | 
				
			||||||
 | 
					                        "channelSurveyType": "OFF_CHANNEL",
 | 
				
			||||||
 | 
					                        "scanIntervalMillis": 0,
 | 
				
			||||||
 | 
					                        "percentUtilizationThreshold": 10,
 | 
				
			||||||
 | 
					                        "delayMillisecondsThreshold": 600,
 | 
				
			||||||
 | 
					                        "statsReportFormat": "RAW",
 | 
				
			||||||
 | 
					                        "radioType": "is5GHzU",
 | 
				
			||||||
 | 
					                        "serviceMetricDataType": "Channel"
 | 
				
			||||||
 | 
					                    }
 | 
				
			||||||
 | 
					                ],
 | 
				
			||||||
 | 
					                "Neighbour": [
 | 
				
			||||||
 | 
					                    {
 | 
				
			||||||
 | 
					                        "model_type": "ServiceMetricSurveyConfigParameters",
 | 
				
			||||||
 | 
					                        "samplingInterval": 30,
 | 
				
			||||||
 | 
					                        "reportingIntervalSeconds": 60,
 | 
				
			||||||
 | 
					                        "channelSurveyType": "ON_CHANNEL",
 | 
				
			||||||
 | 
					                        "scanIntervalMillis": 0,
 | 
				
			||||||
 | 
					                        "percentUtilizationThreshold": 10,
 | 
				
			||||||
 | 
					                        "delayMillisecondsThreshold": 600,
 | 
				
			||||||
 | 
					                        "statsReportFormat": "RAW",
 | 
				
			||||||
 | 
					                        "radioType": "is5GHzL",
 | 
				
			||||||
 | 
					                        "serviceMetricDataType": "Neighbour"
 | 
				
			||||||
 | 
					                    },
 | 
				
			||||||
 | 
					                    {
 | 
				
			||||||
 | 
					                        "model_type": "ServiceMetricSurveyConfigParameters",
 | 
				
			||||||
 | 
					                        "samplingInterval": 30,
 | 
				
			||||||
 | 
					                        "reportingIntervalSeconds": 60,
 | 
				
			||||||
 | 
					                        "channelSurveyType": "ON_CHANNEL",
 | 
				
			||||||
 | 
					                        "scanIntervalMillis": 0,
 | 
				
			||||||
 | 
					                        "percentUtilizationThreshold": 10,
 | 
				
			||||||
 | 
					                        "delayMillisecondsThreshold": 600,
 | 
				
			||||||
 | 
					                        "statsReportFormat": "RAW",
 | 
				
			||||||
 | 
					                        "radioType": "is2dot4GHz",
 | 
				
			||||||
 | 
					                        "serviceMetricDataType": "Neighbour"
 | 
				
			||||||
 | 
					                    },
 | 
				
			||||||
 | 
					                    {
 | 
				
			||||||
 | 
					                        "model_type": "ServiceMetricSurveyConfigParameters",
 | 
				
			||||||
 | 
					                        "samplingInterval": 30,
 | 
				
			||||||
 | 
					                        "reportingIntervalSeconds": 60,
 | 
				
			||||||
 | 
					                        "channelSurveyType": "ON_CHANNEL",
 | 
				
			||||||
 | 
					                        "scanIntervalMillis": 0,
 | 
				
			||||||
 | 
					                        "percentUtilizationThreshold": 10,
 | 
				
			||||||
 | 
					                        "delayMillisecondsThreshold": 600,
 | 
				
			||||||
 | 
					                        "statsReportFormat": "RAW",
 | 
				
			||||||
 | 
					                        "radioType": "is5GHzU",
 | 
				
			||||||
 | 
					                        "serviceMetricDataType": "Neighbour"
 | 
				
			||||||
 | 
					                    },
 | 
				
			||||||
 | 
					                    {
 | 
				
			||||||
 | 
					                        "model_type": "ServiceMetricSurveyConfigParameters",
 | 
				
			||||||
 | 
					                        "samplingInterval": 30,
 | 
				
			||||||
 | 
					                        "reportingIntervalSeconds": 120,
 | 
				
			||||||
 | 
					                        "channelSurveyType": "OFF_CHANNEL",
 | 
				
			||||||
 | 
					                        "scanIntervalMillis": 0,
 | 
				
			||||||
 | 
					                        "percentUtilizationThreshold": 10,
 | 
				
			||||||
 | 
					                        "delayMillisecondsThreshold": 600,
 | 
				
			||||||
 | 
					                        "statsReportFormat": "RAW",
 | 
				
			||||||
 | 
					                        "radioType": "is5GHzU",
 | 
				
			||||||
 | 
					                        "serviceMetricDataType": "Neighbour"
 | 
				
			||||||
 | 
					                    },
 | 
				
			||||||
 | 
					                    {
 | 
				
			||||||
 | 
					                        "model_type": "ServiceMetricSurveyConfigParameters",
 | 
				
			||||||
 | 
					                        "samplingInterval": 30,
 | 
				
			||||||
 | 
					                        "reportingIntervalSeconds": 120,
 | 
				
			||||||
 | 
					                        "channelSurveyType": "OFF_CHANNEL",
 | 
				
			||||||
 | 
					                        "scanIntervalMillis": 0,
 | 
				
			||||||
 | 
					                        "percentUtilizationThreshold": 10,
 | 
				
			||||||
 | 
					                        "delayMillisecondsThreshold": 600,
 | 
				
			||||||
 | 
					                        "statsReportFormat": "RAW",
 | 
				
			||||||
 | 
					                        "radioType": "is5GHzL",
 | 
				
			||||||
 | 
					                        "serviceMetricDataType": "Neighbour"
 | 
				
			||||||
 | 
					                    },
 | 
				
			||||||
 | 
					                    {
 | 
				
			||||||
 | 
					                        "model_type": "ServiceMetricSurveyConfigParameters",
 | 
				
			||||||
 | 
					                        "samplingInterval": 30,
 | 
				
			||||||
 | 
					                        "reportingIntervalSeconds": 120,
 | 
				
			||||||
 | 
					                        "channelSurveyType": "OFF_CHANNEL",
 | 
				
			||||||
 | 
					                        "scanIntervalMillis": 0,
 | 
				
			||||||
 | 
					                        "percentUtilizationThreshold": 10,
 | 
				
			||||||
 | 
					                        "delayMillisecondsThreshold": 600,
 | 
				
			||||||
 | 
					                        "statsReportFormat": "RAW",
 | 
				
			||||||
 | 
					                        "radioType": "is2dot4GHz",
 | 
				
			||||||
 | 
					                        "serviceMetricDataType": "Neighbour"
 | 
				
			||||||
 | 
					                    }
 | 
				
			||||||
 | 
					                ]
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					            "profileType": "metrics"
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					        "createdTimestamp": 1602113058699,
 | 
				
			||||||
 | 
					        "lastModifiedTimestamp": 1602113058699,
 | 
				
			||||||
 | 
					        "childProfileIds": []
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					]
 | 
				
			||||||
@@ -0,0 +1,36 @@
 | 
				
			|||||||
 | 
					[
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					        "model_type": "Profile",
 | 
				
			||||||
 | 
					        "id": 6,
 | 
				
			||||||
 | 
					        "customerId": 2,
 | 
				
			||||||
 | 
					        "profileType": "operator",
 | 
				
			||||||
 | 
					        "name": "TipWlan-Hotspot20-Operator",
 | 
				
			||||||
 | 
					        "details": {
 | 
				
			||||||
 | 
					            "model_type": "OperatorProfile",
 | 
				
			||||||
 | 
					            "serverOnlyAuthenticatedL2EncryptionNetwork": false,
 | 
				
			||||||
 | 
					            "x509CertificateLocation": "/etc/ca.pem",
 | 
				
			||||||
 | 
					            "operatorFriendlyName": [
 | 
				
			||||||
 | 
					                {
 | 
				
			||||||
 | 
					                    "model_type": "Hotspot20Duple",
 | 
				
			||||||
 | 
					                    "locale": "en_CA",
 | 
				
			||||||
 | 
					                    "dupleIso3Language": "eng",
 | 
				
			||||||
 | 
					                    "dupleName": "Default friendly operator name",
 | 
				
			||||||
 | 
					                    "defaultDupleSeparator": ":",
 | 
				
			||||||
 | 
					                    "asDuple": "eng:Default friendly operator name"
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                {
 | 
				
			||||||
 | 
					                    "model_type": "Hotspot20Duple",
 | 
				
			||||||
 | 
					                    "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": "operator"
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					        "createdTimestamp": 1602113058719,
 | 
				
			||||||
 | 
					        "lastModifiedTimestamp": 1602113058719,
 | 
				
			||||||
 | 
					        "childProfileIds": []
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					]
 | 
				
			||||||
@@ -1,34 +1,34 @@
 | 
				
			|||||||
[
 | 
					[
 | 
				
			||||||
{
 | 
					        {
 | 
				
			||||||
  "model_type": "Profile",
 | 
					            "model_type": "Profile",
 | 
				
			||||||
  "id": 1,
 | 
					            "id": 1,
 | 
				
			||||||
  "customerId": 2,
 | 
					            "customerId": 2,
 | 
				
			||||||
  "profileType": "radius",
 | 
					            "profileType": "radius",
 | 
				
			||||||
  "name": "RadiusProfileOttawa",
 | 
					            "name": "Radius-Profile",
 | 
				
			||||||
  "details": {
 | 
					            "details": {
 | 
				
			||||||
    "model_type": "RadiusProfile",
 | 
					                "model_type": "RadiusProfile",
 | 
				
			||||||
    "subnetConfiguration": null,
 | 
					                "subnetConfiguration": null,
 | 
				
			||||||
    "serviceRegionMap": {
 | 
					                "serviceRegionMap": {
 | 
				
			||||||
      "Ottawa": {
 | 
					                    "Ottawa": {
 | 
				
			||||||
        "model_type": "RadiusServiceRegion",
 | 
					                        "model_type": "RadiusServiceRegion",
 | 
				
			||||||
        "serverMap": {
 | 
					                        "serverMap": {
 | 
				
			||||||
          "RadiusProfileOttawa": [
 | 
					                            "Radius-Profile": [
 | 
				
			||||||
            {
 | 
					                                {
 | 
				
			||||||
              "model_type": "RadiusServer",
 | 
					                                    "model_type": "RadiusServer",
 | 
				
			||||||
              "ipAddress": "localhost",
 | 
					                                    "ipAddress": "192.168.0.1",
 | 
				
			||||||
              "secret": "testing123",
 | 
					                                    "secret": "testing123",
 | 
				
			||||||
              "authPort": 1812,
 | 
					                                    "authPort": 1812,
 | 
				
			||||||
              "timeout": null
 | 
					                                    "timeout": null
 | 
				
			||||||
            }
 | 
					                                }
 | 
				
			||||||
          ]
 | 
					                            ]
 | 
				
			||||||
        },
 | 
					                        },
 | 
				
			||||||
        "regionName": "Ottawa"
 | 
					                        "regionName": "Ottawa"
 | 
				
			||||||
      }
 | 
					                    }
 | 
				
			||||||
    },
 | 
					                },
 | 
				
			||||||
    "profileType": "radius"
 | 
					                "profileType": "radius"
 | 
				
			||||||
  },
 | 
					            },
 | 
				
			||||||
  "createdTimestamp": 1591653174195,
 | 
					            "createdTimestamp": 1601961451668,
 | 
				
			||||||
  "lastModifiedTimestamp": 1591653174195,
 | 
					            "lastModifiedTimestamp": 1601961451668,
 | 
				
			||||||
  "childProfileIds": []
 | 
					            "childProfileIds": []
 | 
				
			||||||
}
 | 
					        }
 | 
				
			||||||
]
 | 
					]
 | 
				
			||||||
@@ -0,0 +1,204 @@
 | 
				
			|||||||
 | 
					{
 | 
				
			||||||
 | 
					    "model_type": "Profile",
 | 
				
			||||||
 | 
					    "id": 13,
 | 
				
			||||||
 | 
					    "customerId": 2,
 | 
				
			||||||
 | 
					    "profileType": "rf",
 | 
				
			||||||
 | 
					    "name": "TipWlan-rf",
 | 
				
			||||||
 | 
					    "details": {
 | 
				
			||||||
 | 
					        "model_type": "RfConfiguration",
 | 
				
			||||||
 | 
					        "rfConfigMap": {
 | 
				
			||||||
 | 
					            "is5GHz": {
 | 
				
			||||||
 | 
					                "model_type": "RfElementConfiguration",
 | 
				
			||||||
 | 
					                "rf": "TipWlan-rf",
 | 
				
			||||||
 | 
					                "radioType": "is5GHz",
 | 
				
			||||||
 | 
					                "radioMode": "modeAC",
 | 
				
			||||||
 | 
					                "beaconInterval": 100,
 | 
				
			||||||
 | 
					                "forceScanDuringVoice": "disabled",
 | 
				
			||||||
 | 
					                "rtsCtsThreshold": 65535,
 | 
				
			||||||
 | 
					                "channelBandwidth": "is80MHz",
 | 
				
			||||||
 | 
					                "mimoMode": "twoByTwo",
 | 
				
			||||||
 | 
					                "maxNumClients": 100,
 | 
				
			||||||
 | 
					                "multicastRate": "auto",
 | 
				
			||||||
 | 
					                "autoChannelSelection": false,
 | 
				
			||||||
 | 
					                "activeScanSettings": {
 | 
				
			||||||
 | 
					                    "model_type": "ActiveScanSettings",
 | 
				
			||||||
 | 
					                    "enabled": true,
 | 
				
			||||||
 | 
					                    "scanFrequencySeconds": 10,
 | 
				
			||||||
 | 
					                    "scanDurationMillis": 65
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                "managementRate": "auto",
 | 
				
			||||||
 | 
					                "rxCellSizeDb": -90,
 | 
				
			||||||
 | 
					                "probeResponseThresholdDb": -90,
 | 
				
			||||||
 | 
					                "clientDisconnectThresholdDb": -90,
 | 
				
			||||||
 | 
					                "eirpTxPower": 18,
 | 
				
			||||||
 | 
					                "bestApEnabled": null,
 | 
				
			||||||
 | 
					                "neighbouringListApConfig": {
 | 
				
			||||||
 | 
					                    "model_type": "NeighbouringAPListConfiguration",
 | 
				
			||||||
 | 
					                    "minSignal": -85,
 | 
				
			||||||
 | 
					                    "maxAps": 25
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                "perimeterDetectionEnabled": true,
 | 
				
			||||||
 | 
					                "channelHopSettings": {
 | 
				
			||||||
 | 
					                    "model_type": "ChannelHopSettings",
 | 
				
			||||||
 | 
					                    "noiseFloorThresholdInDB": -75,
 | 
				
			||||||
 | 
					                    "noiseFloorThresholdTimeInSeconds": 180,
 | 
				
			||||||
 | 
					                    "nonWifiThresholdInPercentage": 50,
 | 
				
			||||||
 | 
					                    "nonWifiThresholdTimeInSeconds": 180,
 | 
				
			||||||
 | 
					                    "obssHopMode": "NON_WIFI"
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                "bestApSettings": {
 | 
				
			||||||
 | 
					                    "model_type": "RadioBestApSettings",
 | 
				
			||||||
 | 
					                    "mlComputed": true,
 | 
				
			||||||
 | 
					                    "dropInSnrPercentage": 30,
 | 
				
			||||||
 | 
					                    "minLoadFactor": 40
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                "minAutoCellSize": -65
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					            "is2dot4GHz": {
 | 
				
			||||||
 | 
					                "model_type": "RfElementConfiguration",
 | 
				
			||||||
 | 
					                "rf": "TipWlan-rf",
 | 
				
			||||||
 | 
					                "radioType": "is2dot4GHz",
 | 
				
			||||||
 | 
					                "radioMode": "modeN",
 | 
				
			||||||
 | 
					                "beaconInterval": 100,
 | 
				
			||||||
 | 
					                "forceScanDuringVoice": "disabled",
 | 
				
			||||||
 | 
					                "rtsCtsThreshold": 65535,
 | 
				
			||||||
 | 
					                "channelBandwidth": "is20MHz",
 | 
				
			||||||
 | 
					                "mimoMode": "twoByTwo",
 | 
				
			||||||
 | 
					                "maxNumClients": 100,
 | 
				
			||||||
 | 
					                "multicastRate": "auto",
 | 
				
			||||||
 | 
					                "autoChannelSelection": false,
 | 
				
			||||||
 | 
					                "activeScanSettings": {
 | 
				
			||||||
 | 
					                    "model_type": "ActiveScanSettings",
 | 
				
			||||||
 | 
					                    "enabled": true,
 | 
				
			||||||
 | 
					                    "scanFrequencySeconds": 10,
 | 
				
			||||||
 | 
					                    "scanDurationMillis": 65
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                "managementRate": "auto",
 | 
				
			||||||
 | 
					                "rxCellSizeDb": -90,
 | 
				
			||||||
 | 
					                "probeResponseThresholdDb": -90,
 | 
				
			||||||
 | 
					                "clientDisconnectThresholdDb": -90,
 | 
				
			||||||
 | 
					                "eirpTxPower": 18,
 | 
				
			||||||
 | 
					                "bestApEnabled": null,
 | 
				
			||||||
 | 
					                "neighbouringListApConfig": {
 | 
				
			||||||
 | 
					                    "model_type": "NeighbouringAPListConfiguration",
 | 
				
			||||||
 | 
					                    "minSignal": -85,
 | 
				
			||||||
 | 
					                    "maxAps": 25
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                "perimeterDetectionEnabled": true,
 | 
				
			||||||
 | 
					                "channelHopSettings": {
 | 
				
			||||||
 | 
					                    "model_type": "ChannelHopSettings",
 | 
				
			||||||
 | 
					                    "noiseFloorThresholdInDB": -75,
 | 
				
			||||||
 | 
					                    "noiseFloorThresholdTimeInSeconds": 180,
 | 
				
			||||||
 | 
					                    "nonWifiThresholdInPercentage": 50,
 | 
				
			||||||
 | 
					                    "nonWifiThresholdTimeInSeconds": 180,
 | 
				
			||||||
 | 
					                    "obssHopMode": "NON_WIFI"
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                "bestApSettings": {
 | 
				
			||||||
 | 
					                    "model_type": "RadioBestApSettings",
 | 
				
			||||||
 | 
					                    "mlComputed": true,
 | 
				
			||||||
 | 
					                    "dropInSnrPercentage": 20,
 | 
				
			||||||
 | 
					                    "minLoadFactor": 50
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                "minAutoCellSize": -65
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					            "is5GHzU": {
 | 
				
			||||||
 | 
					                "model_type": "RfElementConfiguration",
 | 
				
			||||||
 | 
					                "rf": "TipWlan-rf",
 | 
				
			||||||
 | 
					                "radioType": "is5GHzU",
 | 
				
			||||||
 | 
					                "radioMode": "modeAC",
 | 
				
			||||||
 | 
					                "beaconInterval": 100,
 | 
				
			||||||
 | 
					                "forceScanDuringVoice": "disabled",
 | 
				
			||||||
 | 
					                "rtsCtsThreshold": 65535,
 | 
				
			||||||
 | 
					                "channelBandwidth": "is80MHz",
 | 
				
			||||||
 | 
					                "mimoMode": "twoByTwo",
 | 
				
			||||||
 | 
					                "maxNumClients": 100,
 | 
				
			||||||
 | 
					                "multicastRate": "auto",
 | 
				
			||||||
 | 
					                "autoChannelSelection": false,
 | 
				
			||||||
 | 
					                "activeScanSettings": {
 | 
				
			||||||
 | 
					                    "model_type": "ActiveScanSettings",
 | 
				
			||||||
 | 
					                    "enabled": true,
 | 
				
			||||||
 | 
					                    "scanFrequencySeconds": 10,
 | 
				
			||||||
 | 
					                    "scanDurationMillis": 65
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                "managementRate": "auto",
 | 
				
			||||||
 | 
					                "rxCellSizeDb": -90,
 | 
				
			||||||
 | 
					                "probeResponseThresholdDb": -90,
 | 
				
			||||||
 | 
					                "clientDisconnectThresholdDb": -90,
 | 
				
			||||||
 | 
					                "eirpTxPower": 18,
 | 
				
			||||||
 | 
					                "bestApEnabled": null,
 | 
				
			||||||
 | 
					                "neighbouringListApConfig": {
 | 
				
			||||||
 | 
					                    "model_type": "NeighbouringAPListConfiguration",
 | 
				
			||||||
 | 
					                    "minSignal": -85,
 | 
				
			||||||
 | 
					                    "maxAps": 25
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                "perimeterDetectionEnabled": true,
 | 
				
			||||||
 | 
					                "channelHopSettings": {
 | 
				
			||||||
 | 
					                    "model_type": "ChannelHopSettings",
 | 
				
			||||||
 | 
					                    "noiseFloorThresholdInDB": -75,
 | 
				
			||||||
 | 
					                    "noiseFloorThresholdTimeInSeconds": 180,
 | 
				
			||||||
 | 
					                    "nonWifiThresholdInPercentage": 50,
 | 
				
			||||||
 | 
					                    "nonWifiThresholdTimeInSeconds": 180,
 | 
				
			||||||
 | 
					                    "obssHopMode": "NON_WIFI"
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                "bestApSettings": {
 | 
				
			||||||
 | 
					                    "model_type": "RadioBestApSettings",
 | 
				
			||||||
 | 
					                    "mlComputed": true,
 | 
				
			||||||
 | 
					                    "dropInSnrPercentage": 30,
 | 
				
			||||||
 | 
					                    "minLoadFactor": 40
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                "minAutoCellSize": -65
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					            "is5GHzL": {
 | 
				
			||||||
 | 
					                "model_type": "RfElementConfiguration",
 | 
				
			||||||
 | 
					                "rf": "TipWlan-rf",
 | 
				
			||||||
 | 
					                "radioType": "is5GHzL",
 | 
				
			||||||
 | 
					                "radioMode": "modeAC",
 | 
				
			||||||
 | 
					                "beaconInterval": 100,
 | 
				
			||||||
 | 
					                "forceScanDuringVoice": "disabled",
 | 
				
			||||||
 | 
					                "rtsCtsThreshold": 65535,
 | 
				
			||||||
 | 
					                "channelBandwidth": "is80MHz",
 | 
				
			||||||
 | 
					                "mimoMode": "twoByTwo",
 | 
				
			||||||
 | 
					                "maxNumClients": 100,
 | 
				
			||||||
 | 
					                "multicastRate": "auto",
 | 
				
			||||||
 | 
					                "autoChannelSelection": false,
 | 
				
			||||||
 | 
					                "activeScanSettings": {
 | 
				
			||||||
 | 
					                    "model_type": "ActiveScanSettings",
 | 
				
			||||||
 | 
					                    "enabled": true,
 | 
				
			||||||
 | 
					                    "scanFrequencySeconds": 10,
 | 
				
			||||||
 | 
					                    "scanDurationMillis": 65
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                "managementRate": "auto",
 | 
				
			||||||
 | 
					                "rxCellSizeDb": -90,
 | 
				
			||||||
 | 
					                "probeResponseThresholdDb": -90,
 | 
				
			||||||
 | 
					                "clientDisconnectThresholdDb": -90,
 | 
				
			||||||
 | 
					                "eirpTxPower": 18,
 | 
				
			||||||
 | 
					                "bestApEnabled": null,
 | 
				
			||||||
 | 
					                "neighbouringListApConfig": {
 | 
				
			||||||
 | 
					                    "model_type": "NeighbouringAPListConfiguration",
 | 
				
			||||||
 | 
					                    "minSignal": -85,
 | 
				
			||||||
 | 
					                    "maxAps": 25
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                "perimeterDetectionEnabled": true,
 | 
				
			||||||
 | 
					                "channelHopSettings": {
 | 
				
			||||||
 | 
					                    "model_type": "ChannelHopSettings",
 | 
				
			||||||
 | 
					                    "noiseFloorThresholdInDB": -75,
 | 
				
			||||||
 | 
					                    "noiseFloorThresholdTimeInSeconds": 180,
 | 
				
			||||||
 | 
					                    "nonWifiThresholdInPercentage": 50,
 | 
				
			||||||
 | 
					                    "nonWifiThresholdTimeInSeconds": 180,
 | 
				
			||||||
 | 
					                    "obssHopMode": "NON_WIFI"
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                "bestApSettings": {
 | 
				
			||||||
 | 
					                    "model_type": "RadioBestApSettings",
 | 
				
			||||||
 | 
					                    "mlComputed": true,
 | 
				
			||||||
 | 
					                    "dropInSnrPercentage": 30,
 | 
				
			||||||
 | 
					                    "minLoadFactor": 40
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                "minAutoCellSize": -65
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					        "profileType": "rf"
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "createdTimestamp": 1602182806063,
 | 
				
			||||||
 | 
					    "lastModifiedTimestamp": 1602182806063,
 | 
				
			||||||
 | 
					    "childProfileIds": []
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -1,184 +1,134 @@
 | 
				
			|||||||
[
 | 
					[
 | 
				
			||||||
{
 | 
						{
 | 
				
			||||||
  "model_type": "Profile",
 | 
							"model_type": "Profile",
 | 
				
			||||||
  "id": 6,
 | 
							"id": 5,
 | 
				
			||||||
  "customerId": 2,
 | 
							"customerId": 2,
 | 
				
			||||||
  "profileType": "ssid",
 | 
							"profileType": "ssid",
 | 
				
			||||||
  "name": "DefaultSsid-2g",
 | 
							"name": "TipWlan-cloud-hotspot-access",
 | 
				
			||||||
  "details": {
 | 
							"details": {
 | 
				
			||||||
    "model_type": "SsidConfiguration",
 | 
								"model_type": "SsidConfiguration",
 | 
				
			||||||
    "ssid": "Default-SSID-2g",
 | 
								"ssid": "TipWlan-cloud-hotspot-access",
 | 
				
			||||||
    "appliedRadios": [
 | 
								"appliedRadios": [
 | 
				
			||||||
      "is2dot4GHz"
 | 
									"is5GHzU",
 | 
				
			||||||
    ],
 | 
									"is5GHzL",
 | 
				
			||||||
    "ssidAdminState": "enabled",
 | 
									"is2dot4GHz"
 | 
				
			||||||
    "secureMode": "wpa2PSK",
 | 
								],
 | 
				
			||||||
    "vlanId": 1,
 | 
								"ssidAdminState": "enabled",
 | 
				
			||||||
    "keyStr": "12345678",
 | 
								"secureMode": "wpa2PSK",
 | 
				
			||||||
    "broadcastSsid": "enabled",
 | 
								"vlanId": 1,
 | 
				
			||||||
    "keyRefresh": 0,
 | 
								"keyStr": "testing123",
 | 
				
			||||||
    "noLocalSubnets": false,
 | 
								"broadcastSsid": "enabled",
 | 
				
			||||||
    "radiusServiceName": null,
 | 
								"keyRefresh": 0,
 | 
				
			||||||
    "captivePortalId": null,
 | 
								"noLocalSubnets": false,
 | 
				
			||||||
    "bandwidthLimitDown": 0,
 | 
								"radiusServiceName": null,
 | 
				
			||||||
    "bandwidthLimitUp": 0,
 | 
								"captivePortalId": null,
 | 
				
			||||||
    "videoTrafficOnly": false,
 | 
								"bandwidthLimitDown": 0,
 | 
				
			||||||
    "radioBasedConfigs": {
 | 
								"bandwidthLimitUp": 0,
 | 
				
			||||||
      "is5GHz": {
 | 
								"clientBandwidthLimitDown": 0,
 | 
				
			||||||
        "model_type": "RadioBasedSsidConfiguration",
 | 
								"clientBandwidthLimitUp": 0,
 | 
				
			||||||
        "enable80211r": null,
 | 
								"videoTrafficOnly": false,
 | 
				
			||||||
        "enable80211k": null,
 | 
								"radioBasedConfigs": {
 | 
				
			||||||
        "enable80211v": null
 | 
									"is5GHz": {
 | 
				
			||||||
      },
 | 
										"model_type": "RadioBasedSsidConfiguration",
 | 
				
			||||||
      "is2dot4GHz": {
 | 
										"enable80211r": null,
 | 
				
			||||||
        "model_type": "RadioBasedSsidConfiguration",
 | 
										"enable80211k": null,
 | 
				
			||||||
        "enable80211r": null,
 | 
										"enable80211v": null
 | 
				
			||||||
        "enable80211k": null,
 | 
									},
 | 
				
			||||||
        "enable80211v": null
 | 
									"is2dot4GHz": {
 | 
				
			||||||
      },
 | 
										"model_type": "RadioBasedSsidConfiguration",
 | 
				
			||||||
      "is5GHzU": {
 | 
										"enable80211r": null,
 | 
				
			||||||
        "model_type": "RadioBasedSsidConfiguration",
 | 
										"enable80211k": null,
 | 
				
			||||||
        "enable80211r": null,
 | 
										"enable80211v": null
 | 
				
			||||||
        "enable80211k": null,
 | 
									},
 | 
				
			||||||
        "enable80211v": null
 | 
									"is5GHzU": {
 | 
				
			||||||
      },
 | 
										"model_type": "RadioBasedSsidConfiguration",
 | 
				
			||||||
      "is5GHzL": {
 | 
										"enable80211r": null,
 | 
				
			||||||
        "model_type": "RadioBasedSsidConfiguration",
 | 
										"enable80211k": null,
 | 
				
			||||||
        "enable80211r": null,
 | 
										"enable80211v": null
 | 
				
			||||||
        "enable80211k": null,
 | 
									},
 | 
				
			||||||
        "enable80211v": null
 | 
									"is5GHzL": {
 | 
				
			||||||
      }
 | 
										"model_type": "RadioBasedSsidConfiguration",
 | 
				
			||||||
    },
 | 
										"enable80211r": null,
 | 
				
			||||||
    "bonjourGatewayProfileId": null,
 | 
										"enable80211k": null,
 | 
				
			||||||
    "enable80211w": null,
 | 
										"enable80211v": null
 | 
				
			||||||
    "wepConfig": null,
 | 
									}
 | 
				
			||||||
    "forwardMode": null,
 | 
								},
 | 
				
			||||||
    "profileType": "ssid"
 | 
								"bonjourGatewayProfileId": null,
 | 
				
			||||||
  },
 | 
								"enable80211w": null,
 | 
				
			||||||
  "createdTimestamp": 1591653239983,
 | 
								"wepConfig": null,
 | 
				
			||||||
  "lastModifiedTimestamp": 1591653239983,
 | 
								"forwardMode": null,
 | 
				
			||||||
  "childProfileIds": []
 | 
								"profileType": "ssid"
 | 
				
			||||||
},
 | 
							},
 | 
				
			||||||
{
 | 
							"createdTimestamp": 1602113058718,
 | 
				
			||||||
  "model_type": "Profile",
 | 
							"lastModifiedTimestamp": 1602113059547,
 | 
				
			||||||
  "id": 7,
 | 
							"childProfileIds": [
 | 
				
			||||||
  "customerId": 2,
 | 
								10
 | 
				
			||||||
  "profileType": "ssid",
 | 
							]
 | 
				
			||||||
  "name": "DefaultSsid-5gl",
 | 
						},
 | 
				
			||||||
  "details": {
 | 
						{
 | 
				
			||||||
    "model_type": "SsidConfiguration",
 | 
							"model_type": "Profile",
 | 
				
			||||||
    "ssid": "Default-SSID-5gl",
 | 
							"id": 11,
 | 
				
			||||||
    "appliedRadios": [
 | 
							"customerId": 2,
 | 
				
			||||||
      "is5GHzL"
 | 
							"profileType": "ssid",
 | 
				
			||||||
    ],
 | 
							"name": "TipWlan-cloud-3-radios",
 | 
				
			||||||
    "ssidAdminState": "enabled",
 | 
							"details": {
 | 
				
			||||||
    "secureMode": "wpaEAP",
 | 
								"model_type": "SsidConfiguration",
 | 
				
			||||||
    "vlanId": 1,
 | 
								"ssid": "TipWlan-cloud-3-radios",
 | 
				
			||||||
    "keyStr": "12345678",
 | 
								"appliedRadios": [
 | 
				
			||||||
    "broadcastSsid": "enabled",
 | 
									"is5GHzL",
 | 
				
			||||||
    "keyRefresh": 0,
 | 
									"is2dot4GHz",
 | 
				
			||||||
    "noLocalSubnets": false,
 | 
									"is5GHzU"
 | 
				
			||||||
    "radiusServiceName": "RadiusProfileOttawa",
 | 
								],
 | 
				
			||||||
    "captivePortalId": null,
 | 
								"ssidAdminState": "enabled",
 | 
				
			||||||
    "bandwidthLimitDown": 0,
 | 
								"secureMode": "open",
 | 
				
			||||||
    "bandwidthLimitUp": 0,
 | 
								"vlanId": 1,
 | 
				
			||||||
    "videoTrafficOnly": false,
 | 
								"keyStr": null,
 | 
				
			||||||
    "radioBasedConfigs": {
 | 
								"broadcastSsid": "enabled",
 | 
				
			||||||
      "is5GHz": {
 | 
								"keyRefresh": 0,
 | 
				
			||||||
        "model_type": "RadioBasedSsidConfiguration",
 | 
								"noLocalSubnets": false,
 | 
				
			||||||
        "enable80211r": null,
 | 
								"radiusServiceName": null,
 | 
				
			||||||
        "enable80211k": null,
 | 
								"captivePortalId": null,
 | 
				
			||||||
        "enable80211v": null
 | 
								"bandwidthLimitDown": 0,
 | 
				
			||||||
      },
 | 
								"bandwidthLimitUp": 0,
 | 
				
			||||||
      "is2dot4GHz": {
 | 
								"clientBandwidthLimitDown": 0,
 | 
				
			||||||
        "model_type": "RadioBasedSsidConfiguration",
 | 
								"clientBandwidthLimitUp": 0,
 | 
				
			||||||
        "enable80211r": null,
 | 
								"videoTrafficOnly": false,
 | 
				
			||||||
        "enable80211k": null,
 | 
								"radioBasedConfigs": {
 | 
				
			||||||
        "enable80211v": null
 | 
									"is5GHz": {
 | 
				
			||||||
      },
 | 
										"model_type": "RadioBasedSsidConfiguration",
 | 
				
			||||||
      "is5GHzU": {
 | 
										"enable80211r": null,
 | 
				
			||||||
        "model_type": "RadioBasedSsidConfiguration",
 | 
										"enable80211k": null,
 | 
				
			||||||
        "enable80211r": null,
 | 
										"enable80211v": null
 | 
				
			||||||
        "enable80211k": null,
 | 
									},
 | 
				
			||||||
        "enable80211v": null
 | 
									"is2dot4GHz": {
 | 
				
			||||||
      },
 | 
										"model_type": "RadioBasedSsidConfiguration",
 | 
				
			||||||
      "is5GHzL": {
 | 
										"enable80211r": null,
 | 
				
			||||||
        "model_type": "RadioBasedSsidConfiguration",
 | 
										"enable80211k": null,
 | 
				
			||||||
        "enable80211r": null,
 | 
										"enable80211v": null
 | 
				
			||||||
        "enable80211k": null,
 | 
									},
 | 
				
			||||||
        "enable80211v": null
 | 
									"is5GHzU": {
 | 
				
			||||||
      }
 | 
										"model_type": "RadioBasedSsidConfiguration",
 | 
				
			||||||
    },
 | 
										"enable80211r": null,
 | 
				
			||||||
    "bonjourGatewayProfileId": null,
 | 
										"enable80211k": null,
 | 
				
			||||||
    "enable80211w": null,
 | 
										"enable80211v": null
 | 
				
			||||||
    "wepConfig": null,
 | 
									},
 | 
				
			||||||
    "forwardMode": null,
 | 
									"is5GHzL": {
 | 
				
			||||||
    "profileType": "ssid"
 | 
										"model_type": "RadioBasedSsidConfiguration",
 | 
				
			||||||
  },
 | 
										"enable80211r": null,
 | 
				
			||||||
  "createdTimestamp": 1591653240017,
 | 
										"enable80211k": null,
 | 
				
			||||||
  "lastModifiedTimestamp": 1591654215374,
 | 
										"enable80211v": null
 | 
				
			||||||
  "childProfileIds": [
 | 
									}
 | 
				
			||||||
    1
 | 
								},
 | 
				
			||||||
  ]
 | 
								"bonjourGatewayProfileId": null,
 | 
				
			||||||
},
 | 
								"enable80211w": null,
 | 
				
			||||||
{
 | 
								"wepConfig": null,
 | 
				
			||||||
  "model_type": "Profile",
 | 
								"forwardMode": null,
 | 
				
			||||||
  "id": 8,
 | 
								"profileType": "ssid"
 | 
				
			||||||
  "customerId": 2,
 | 
							},
 | 
				
			||||||
  "profileType": "ssid",
 | 
							"createdTimestamp": 1602183994766,
 | 
				
			||||||
  "name": "DefaultSsid-5gu",
 | 
							"lastModifiedTimestamp": 1602183994766,
 | 
				
			||||||
  "details": {
 | 
							"childProfileIds": [
 | 
				
			||||||
    "model_type": "SsidConfiguration",
 | 
								10
 | 
				
			||||||
    "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": []
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
]
 | 
					 | 
				
			||||||
 
 | 
				
			|||||||
@@ -0,0 +1,42 @@
 | 
				
			|||||||
 | 
					[
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        "model_type": "Profile",
 | 
				
			||||||
 | 
					        "id": 7,
 | 
				
			||||||
 | 
					        "customerId": 2,
 | 
				
			||||||
 | 
					        "profileType": "venue",
 | 
				
			||||||
 | 
					        "name": "TipWlan-Hotspot20-Venue",
 | 
				
			||||||
 | 
					        "details": {
 | 
				
			||||||
 | 
					            "model_type": "VenueProfile",
 | 
				
			||||||
 | 
					            "venueNameSet": [
 | 
				
			||||||
 | 
					                {
 | 
				
			||||||
 | 
					                    "model_type": "VenueName",
 | 
				
			||||||
 | 
					                    "locale": "fr_CA",
 | 
				
			||||||
 | 
					                    "dupleIso3Language": "fra",
 | 
				
			||||||
 | 
					                    "dupleName": "Exemple de lieu",
 | 
				
			||||||
 | 
					                    "defaultDupleSeparator": ":",
 | 
				
			||||||
 | 
					                    "venueUrl": "http://www.example.com/info-fra",
 | 
				
			||||||
 | 
					                    "asDuple": "fra:Exemple de lieu"
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                {
 | 
				
			||||||
 | 
					                    "model_type": "VenueName",
 | 
				
			||||||
 | 
					                    "locale": "en_CA",
 | 
				
			||||||
 | 
					                    "dupleIso3Language": "eng",
 | 
				
			||||||
 | 
					                    "dupleName": "Example venue",
 | 
				
			||||||
 | 
					                    "defaultDupleSeparator": ":",
 | 
				
			||||||
 | 
					                    "venueUrl": "http://www.example.com/info-eng",
 | 
				
			||||||
 | 
					                    "asDuple": "eng:Example venue"
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					            ],
 | 
				
			||||||
 | 
					            "venueTypeAssignment": {
 | 
				
			||||||
 | 
					                "model_type": "VenueTypeAssignment",
 | 
				
			||||||
 | 
					                "venueDescription": "Research and Development Facility",
 | 
				
			||||||
 | 
					                "venueGroupId": 2,
 | 
				
			||||||
 | 
					                "venueTypeId": 8
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					            "profileType": "venue"
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					        "createdTimestamp": 1602113058725,
 | 
				
			||||||
 | 
					        "lastModifiedTimestamp": 1602113058725,
 | 
				
			||||||
 | 
					        "childProfileIds": []
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					]
 | 
				
			||||||
@@ -64,7 +64,6 @@
 | 
				
			|||||||
  <logger name="org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainer" level="INFO"/>
 | 
					  <logger name="org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainer" level="INFO"/>
 | 
				
			||||||
  
 | 
					  
 | 
				
			||||||
  <logger name="com.telecominfraproject.wlan" level="INFO"/>
 | 
					  <logger name="com.telecominfraproject.wlan" level="INFO"/>
 | 
				
			||||||
  <logger name="ai.connectus" level="INFO"/>
 | 
					 | 
				
			||||||
  <logger name="com.netflix.servo.tag.aws.AwsInjectableTag" level="OFF"/>
 | 
					  <logger name="com.netflix.servo.tag.aws.AwsInjectableTag" level="OFF"/>
 | 
				
			||||||
  <logger name="com.vmware.ovsdb.service.OvsdbConnectionInfo" level="OFF"/>
 | 
					  <logger name="com.vmware.ovsdb.service.OvsdbConnectionInfo" level="OFF"/>
 | 
				
			||||||
  <logger name="com.vmware.ovsdb.netty.OvsdbConnectionHandler" level="ERROR"/>
 | 
					  <logger name="com.vmware.ovsdb.netty.OvsdbConnectionHandler" level="ERROR"/>
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,20 +1,20 @@
 | 
				
			|||||||
#!/bin/sh
 | 
					#!/bin/sh
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Prepare the hosts file - do it only if does not have required entries
 | 
					# Prepare the hosts file - do it only if does not have required entries
 | 
				
			||||||
n1=`grep opensync-mqtt-broker /etc/hosts | wc -l`
 | 
					n1=`grep opensync-mqtt-broker.zone1.lab.wlan.tip.build /etc/hosts | wc -l`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
if [[ $n1 -eq 0  ]]
 | 
					if [[ $n1 -eq 0  ]]
 | 
				
			||||||
then
 | 
					then
 | 
				
			||||||
  echo Adding opensync-mqtt-broker to /etc/hosts
 | 
					  echo Adding opensync-mqtt-broker.zone1.lab.wlan.tip.build to /etc/hosts
 | 
				
			||||||
  echo "127.0.0.1 opensync-mqtt-broker" >> /etc/hosts
 | 
					  echo "127.0.0.1 opensync-mqtt-broker.zone1.lab.wlan.tip.build" >> /etc/hosts
 | 
				
			||||||
fi
 | 
					fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
n2=`grep opensync-wifi-controller /etc/hosts | wc -l`
 | 
					n2=`grep opensync-controller.zone1.lab.wlan.tip.build /etc/hosts | wc -l`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
if [[ $n2 -eq 0  ]]
 | 
					if [[ $n2 -eq 0  ]]
 | 
				
			||||||
then
 | 
					then
 | 
				
			||||||
  echo Adding opensync-wifi-controller to /etc/hosts
 | 
					  echo Adding opensync-controller.zone1.lab.wlan.tip.build to /etc/hosts
 | 
				
			||||||
  echo "127.0.0.1 opensync-wifi-controller" >> /etc/hosts
 | 
					  echo "127.0.0.1 opensync-controller.zone1.lab.wlan.tip.build" >> /etc/hosts
 | 
				
			||||||
fi
 | 
					fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -33,24 +33,36 @@ OVSDB_SERVER_TRUSTSTORE_FILE="${OVSDB_SERVER_TRUSTSTORE_FILE:=/opt/tip-wlan/cert
 | 
				
			|||||||
OVSDB_SERVER_TRUSTSTORE_PASSWORD="${OVSDB_SERVER_TRUSTSTORE_PASSWORD:=mypassword}"
 | 
					OVSDB_SERVER_TRUSTSTORE_PASSWORD="${OVSDB_SERVER_TRUSTSTORE_PASSWORD:=mypassword}"
 | 
				
			||||||
OVSDB_EQUIPMENT_CONFIG_FILE="${OVSDB_EQUIPMENT_CONFIG_FILE:=/app/opensync/EquipmentExample.json}"
 | 
					OVSDB_EQUIPMENT_CONFIG_FILE="${OVSDB_EQUIPMENT_CONFIG_FILE:=/app/opensync/EquipmentExample.json}"
 | 
				
			||||||
OVSDB_APPROFILE_CONFIG_FILE="${OVSDB_AP_PROFILE_CONFIG_FILE:=/app/opensync/ProfileAPExample.json}"
 | 
					OVSDB_APPROFILE_CONFIG_FILE="${OVSDB_AP_PROFILE_CONFIG_FILE:=/app/opensync/ProfileAPExample.json}"
 | 
				
			||||||
 | 
					OVSDB_METRICSPROFILE_CONFIG_FILE="${OVSDB_METRICSPROFILE_CONFIG_FILE:=/app/opensync/ProfileMetrics.json}"
 | 
				
			||||||
 | 
					OVSDB_HOTSPOT20SPROFILE_CONFIG_FILE="${OVSDB_HOTSPOT20PROFILE_CONFIG_FILE:=/app/opensync/ProfileHotspot20.json}"
 | 
				
			||||||
 | 
					OVSDB_OPERATORPROFILE_CONFIG_FILE="${OVSDB_OPERATORPROFILE_CONFIG_FILE:=/app/opensync/ProfileOperator.json}"
 | 
				
			||||||
 | 
					OVSDB_BONJOURPROFILE_CONFIG_FILE="${OVSDB_BONJOURPROFILE_CONFIG_FILE:=/app/opensync/ProfileBonjour.json}"
 | 
				
			||||||
 | 
					OVSDB_VENUEPROFILE_CONFIG_FILE="${OVSDB_VENUEPROFILE_CONFIG_FILE:=/app/opensync/ProfileVenue.json}"
 | 
				
			||||||
 | 
					OVSDB_IDPROVIDERPROFILE_CONFIG_FILE="${OVSDB_IDPROVIDERPROFILE_CONFIG_FILE:=/app/opensync/ProfileIdProvider.json}"
 | 
				
			||||||
 | 
					OVSDB_RFPROFILE_CONFIG_FILE="${OVSDB_RF_PROFILE_CONFIG_FILE:=/app/opensync/ProfileRf.json}"
 | 
				
			||||||
OVSDB_SSIDPROFILE_CONFIG_FILE="${OVSDB_SSIDPROFILE_CONFIG_FILE:=/app/opensync/ProfileSsid.json}"
 | 
					OVSDB_SSIDPROFILE_CONFIG_FILE="${OVSDB_SSIDPROFILE_CONFIG_FILE:=/app/opensync/ProfileSsid.json}"
 | 
				
			||||||
OVSDB_LOCATION_CONFIG_FILE="${OVSDB_LOCATION_CONFIG_FILE:=/app/opensync/LocationBuildingExample.json}"
 | 
					OVSDB_LOCATION_CONFIG_FILE="${OVSDB_LOCATION_CONFIG_FILE:=/app/opensync/LocationBuildingExample.json}"
 | 
				
			||||||
OVSDB_RADIUSPROFILE_CONFIG_FILE="${OVSDB_RADIUSPROFILE_CONFIG_FILE:=/app/opensync/ProfileRadius.json}"
 | 
					OVSDB_RADIUSPROFILE_CONFIG_FILE="${OVSDB_RADIUSPROFILE_CONFIG_FILE:=/app/opensync/ProfileRadius.json}"
 | 
				
			||||||
 | 
					OVSDB_CAPTIVEPROFILE_CONFIG_FILE="${OVSDB_CAPTIVEPROFILE_CONFIG_FILE:=/app/opensync/ProfileCaptive.json}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
OVSDB_IF_DEFAULT_BRIDGE="${OVSDB_IF_DEFAULT_BRIDGE:=br-home}"
 | 
					OVSDB_IF_DEFAULT_BRIDGE="${OVSDB_IF_DEFAULT_BRIDGE:=lan}"
 | 
				
			||||||
echo $OVSDB_IF_DEFAULT_BRIDGE
 | 
					echo $OVSDB_IF_DEFAULT_BRIDGE
 | 
				
			||||||
OVSDB_IF_DEFAULT_RADIO_0="${OVSDB_IF_DEFAULT_RADIO_0:=home-ap-u50}"
 | 
					OVSDB_IF_DEFAULT_RADIO_0="${OVSDB_IF_DEFAULT_RADIO_0:=wlan0}"
 | 
				
			||||||
echo $OVSDB_IF_DEFAULT_RADIO_0
 | 
					echo $OVSDB_IF_DEFAULT_RADIO_0
 | 
				
			||||||
OVSDB_IF_DEFAULT_RADIO_1="${OVSDB_IF_DEFAULT_RADIO_1:=home-ap-24}"
 | 
					OVSDB_IF_DEFAULT_RADIO_1="${OVSDB_IF_DEFAULT_RADIO_1:=wlan1}"
 | 
				
			||||||
echo $OVSDB_IF_DEFAULT_RADIO_1
 | 
					echo $OVSDB_IF_DEFAULT_RADIO_1
 | 
				
			||||||
OVSDB_IF_DEFAULT_RADIO_2="${OVSDB_IF_DEFAULT_RADIO_2:=home-ap-l50}"
 | 
					OVSDB_IF_DEFAULT_RADIO_2="${OVSDB_IF_DEFAULT_RADIO_2:=wlan2}"
 | 
				
			||||||
echo $OVSDB_IF_DEFAULT_RADIO_2
 | 
					echo $OVSDB_IF_DEFAULT_RADIO_2
 | 
				
			||||||
OVSDB_DEVICE_RADIO_0="${OVSDB_DEVICE_RADIO_0:=wifi2}"
 | 
					OVSDB_DEVICE_DEFAULT_WAN_TYPE="${OVSDB_DEVICE_DEFAULT_WAN_TYPE:=bridge}"
 | 
				
			||||||
echo $OVSDB_DEVICE_RADIO_0
 | 
					echo $OVSDB_DEVICE_DEFAULT_WAN_TYPE
 | 
				
			||||||
OVSDB_DEVICE_RADIO_1="${OVSDB_DEVICE_RADIO_1:=wifi0}"
 | 
					OVSDB_DEVICE_DEFAULT_WAN_NAME="${OVSDB_DEVICE_DEFAULT_WAN_NAME:=wan}"
 | 
				
			||||||
echo $OVSDB_DEVICE_RADIO_1
 | 
					echo $OVSDB_DEVICE_DEFAULT_WAN_NAME
 | 
				
			||||||
OVSDB_DEVICE_RADIO_2="${OVSDB_DEVICE_RADIO_2:=wifi1}"
 | 
					OVSDB_DEVICE_DEFAULT_LAN_TYPE="${OVSDB_DEVICE_DEFAULT_LAN_TYPE:=bridge}"
 | 
				
			||||||
echo $OVSDB_DEVICE_RADIO_2
 | 
					echo $OVSDB_DEVICE_DEFAULT_LAN_TYPE
 | 
				
			||||||
 | 
					OVSDB_DEVICE_DEFAULT_LAN_NAME="${OVSDB_DEVICE_DEFAULT_LAN_NAME:=lan}"
 | 
				
			||||||
 | 
					echo $OVSDB_DEVICE_DEFAULT_LAN_NAME
 | 
				
			||||||
 | 
					OVSDB_PREVENT_CLIENTCN_ALTERATION="${OVSDB_PREVENT_CLIENTCN_ALTERATION:=false}"
 | 
				
			||||||
 | 
					echo $OVSDB_PREVENT_CLIENTCN_ALTERATION
 | 
				
			||||||
 | 
					
 | 
				
			||||||
echo Reading AP configuration from $OVSDB_CONFIG_FILE
 | 
					echo Reading AP configuration from $OVSDB_CONFIG_FILE
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -59,8 +71,9 @@ EXT_CLIENT_KEYSTORE_FILE="${EXT_CLIENT_KEYSTORE_FILE:=/opt/tip-wlan/certs/client
 | 
				
			|||||||
EXT_TRUSTSTORE_FILE="${EXT_TRUSTSTORE_FILE:=/opt/tip-wlan/certs/truststore.jks}"
 | 
					EXT_TRUSTSTORE_FILE="${EXT_TRUSTSTORE_FILE:=/opt/tip-wlan/certs/truststore.jks}"
 | 
				
			||||||
EXT_TRUSTSTORE_PASSWORD="${EXT_TRUSTSTORE_PASSWORD:=mypassword}"
 | 
					EXT_TRUSTSTORE_PASSWORD="${EXT_TRUSTSTORE_PASSWORD:=mypassword}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
MQTT_BROKER_HOST="${MQTT_BROKER_HOST:=opensync-mqtt-broker}"
 | 
					MQTT_BROKER_HOST_INTERNAL="${MQTT_BROKER_HOST_INTERNAL:=opensync-mqtt-broker.zone1.lab.wlan.tip.build}"
 | 
				
			||||||
OVSDB_MANAGER_HOST="${OVSDB_MANAGER_HOST:=opensync-wifi-controller}"
 | 
					MQTT_BROKER_HOST_EXTERNAL="${MQTT_BROKER_HOST_EXTERNAL:=opensync-mqtt-broker.zone1.lab.wlan.tip.build}"
 | 
				
			||||||
 | 
					OVSDB_MANAGER_HOST="${OVSDB_MANAGER_HOST:=opensync-controller.zone1.lab.wlan.tip.build}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
LOGBACK_CONFIG_FILE="${LOGBACK_CONFIG_FILE:=/app/opensync/logback.xml}"
 | 
					LOGBACK_CONFIG_FILE="${LOGBACK_CONFIG_FILE:=/app/opensync/logback.xml}"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -115,33 +128,44 @@ CLIENT_MQTT_SSL_PROPS="$CLIENT_MQTT_SSL_PROPS -Djavax.net.ssl.trustStore=$MQTT_T
 | 
				
			|||||||
CLIENT_MQTT_SSL_PROPS="$CLIENT_MQTT_SSL_PROPS -Djavax.net.ssl.trustStorePassword=$MQTT_TRUSTSTORE_PASSWORD"
 | 
					CLIENT_MQTT_SSL_PROPS="$CLIENT_MQTT_SSL_PROPS -Djavax.net.ssl.trustStorePassword=$MQTT_TRUSTSTORE_PASSWORD"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
OVSDB_PROPS=" "
 | 
					OVSDB_PROPS=" "
 | 
				
			||||||
OVSDB_PROPS="$OVSDB_PROPS -Dconnectus.ovsdb.managerAddr=$OVSDB_MANAGER_HOST"
 | 
					OVSDB_PROPS="$OVSDB_PROPS -Dtip.wlan.ovsdb.managerAddr=$OVSDB_MANAGER_HOST"
 | 
				
			||||||
OVSDB_PROPS="$OVSDB_PROPS -Dconnectus.ovsdb.listenPort=6640 "
 | 
					OVSDB_PROPS="$OVSDB_PROPS -Dtip.wlan.ovsdb.listenPort=6640 "
 | 
				
			||||||
OVSDB_PROPS="$OVSDB_PROPS -Dconnectus.ovsdb.redirector.listenPort=6643"
 | 
					OVSDB_PROPS="$OVSDB_PROPS -Dtip.wlan.ovsdb.redirector.listenPort=6643"
 | 
				
			||||||
OVSDB_PROPS="$OVSDB_PROPS -Dconnectus.ovsdb.timeoutSec=30"
 | 
					OVSDB_PROPS="$OVSDB_PROPS -Dtip.wlan.ovsdb.timeoutSec=30"
 | 
				
			||||||
OVSDB_PROPS="$OVSDB_PROPS -Dconnectus.ovsdb.trustStore=$OVSDB_SERVER_TRUSTSTORE_FILE"
 | 
					OVSDB_PROPS="$OVSDB_PROPS -Dtip.wlan.ovsdb.trustStore=$OVSDB_SERVER_TRUSTSTORE_FILE"
 | 
				
			||||||
OVSDB_PROPS="$OVSDB_PROPS -Dconnectus.ovsdb.trustStorePassword=$OVSDB_SERVER_TRUSTSTORE_PASSWORD"
 | 
					OVSDB_PROPS="$OVSDB_PROPS -Dtip.wlan.ovsdb.trustStorePassword=$OVSDB_SERVER_TRUSTSTORE_PASSWORD"
 | 
				
			||||||
OVSDB_PROPS="$OVSDB_PROPS -Dconnectus.ovsdb.keyStore=$OVSDB_SERVER_KEYSTORE_FILE"
 | 
					OVSDB_PROPS="$OVSDB_PROPS -Dtip.wlan.ovsdb.keyStore=$OVSDB_SERVER_KEYSTORE_FILE"
 | 
				
			||||||
OVSDB_PROPS="$OVSDB_PROPS -Dconnectus.ovsdb.keyStorePassword=$OVSDB_SERVER_KEYSTORE_PASSWORD"
 | 
					OVSDB_PROPS="$OVSDB_PROPS -Dtip.wlan.ovsdb.keyStorePassword=$OVSDB_SERVER_KEYSTORE_PASSWORD"
 | 
				
			||||||
OVSDB_PROPS="$OVSDB_PROPS -Dconnectus.ovsdb.customerEquipmentFileName=$OVSDB_EQUIPMENT_CONFIG_FILE"
 | 
					OVSDB_PROPS="$OVSDB_PROPS -Dtip.wlan.ovsdb.customerEquipmentFileName=$OVSDB_EQUIPMENT_CONFIG_FILE"
 | 
				
			||||||
OVSDB_PROPS="$OVSDB_PROPS -Dconnectus.ovsdb.apProfileFileName=$OVSDB_APPROFILE_CONFIG_FILE"
 | 
					OVSDB_PROPS="$OVSDB_PROPS -Dtip.wlan.ovsdb.apProfileFileName=$OVSDB_APPROFILE_CONFIG_FILE"
 | 
				
			||||||
OVSDB_PROPS="$OVSDB_PROPS -Dconnectus.ovsdb.ssidProfileFileName=$OVSDB_SSIDPROFILE_CONFIG_FILE"
 | 
					OVSDB_PROPS="$OVSDB_PROPS -Dtip.wlan.ovsdb.metricsProfileFileName=$OVSDB_METRICSPROFILE_CONFIG_FILE"
 | 
				
			||||||
OVSDB_PROPS="$OVSDB_PROPS -Dconnectus.ovsdb.radiusProfileFileName=$OVSDB_RADIUSPROFILE_CONFIG_FILE"
 | 
					OVSDB_PROPS="$OVSDB_PROPS -Dtip.wlan.ovsdb.hotspot20ProfileFileName=$OVSDB_HOTSPOT20PROFILE_CONFIG_FILE"
 | 
				
			||||||
OVSDB_PROPS="$OVSDB_PROPS -Dconnectus.ovsdb.locationFileName=$OVSDB_LOCATION_CONFIG_FILE"
 | 
					OVSDB_PROPS="$OVSDB_PROPS -Dtip.wlan.ovsdb.operatorProfileFileName=$OVSDB_OPERATORPROFILE_CONFIG_FILE"
 | 
				
			||||||
OVSDB_PROPS="$OVSDB_PROPS -Dconnectus.ovsdb.wifi-iface.default_bridge=$OVSDB_IF_DEFAULT_BRIDGE"
 | 
					OVSDB_PROPS="$OVSDB_PROPS -Dtip.wlan.ovsdb.venueProfileFileName=$OVSDB_VENUEPROFILE_CONFIG_FILE"
 | 
				
			||||||
OVSDB_PROPS="$OVSDB_PROPS -Dconnectus.ovsdb.wifi-iface.default_radio0=$OVSDB_IF_DEFAULT_RADIO_0"
 | 
					OVSDB_PROPS="$OVSDB_PROPS -Dtip.wlan.ovsdb.idProviderProfileFileName=$OVSDB_IDPROVIDERPROFILE_CONFIG_FILE"
 | 
				
			||||||
OVSDB_PROPS="$OVSDB_PROPS -Dconnectus.ovsdb.wifi-iface.default_radio1=$OVSDB_IF_DEFAULT_RADIO_1"
 | 
					OVSDB_PROPS="$OVSDB_PROPS -Dtip.wlan.ovsdb.rfProfileFileName=$OVSDB_RFPROFILE_CONFIG_FILE"
 | 
				
			||||||
OVSDB_PROPS="$OVSDB_PROPS -Dconnectus.ovsdb.wifi-iface.default_radio2=$OVSDB_IF_DEFAULT_RADIO_2"
 | 
					OVSDB_PROPS="$OVSDB_PROPS -Dtip.wlan.preventClientCnAlteration=$OVSDB_PREVENT_CLIENTCN_ALTERATION"
 | 
				
			||||||
OVSDB_PROPS="$OVSDB_PROPS -Dconnectus.ovsdb.wifi-device.radio0=$OVSDB_DEVICE_RADIO_0"
 | 
					OVSDB_PROPS="$OVSDB_PROPS -Dtip.wlan.ovsdb.ssidProfileFileName=$OVSDB_SSIDPROFILE_CONFIG_FILE"
 | 
				
			||||||
OVSDB_PROPS="$OVSDB_PROPS -Dconnectus.ovsdb.wifi-device.radio1=$OVSDB_DEVICE_RADIO_1"
 | 
					OVSDB_PROPS="$OVSDB_PROPS -Dtip.wlan.ovsdb.radiusProfileFileName=$OVSDB_RADIUSPROFILE_CONFIG_FILE"
 | 
				
			||||||
OVSDB_PROPS="$OVSDB_PROPS -Dconnectus.ovsdb.wifi-device.radio2=$OVSDB_DEVICE_RADIO_2"
 | 
					OVSDB_PROPS="$OVSDB_PROPS -Dtip.wlan.ovsdb.locationFileName=$OVSDB_LOCATION_CONFIG_FILE"
 | 
				
			||||||
 | 
					OVSDB_PROPS="$OVSDB_PROPS -Dtip.wlan.ovsdb.captiveProfileFileName=$OVSDB_CAPTIVEPROFILE_CONFIG_FILE"
 | 
				
			||||||
 | 
					OVSDB_PROPS="$OVSDB_PROPS -Dtip.wlan.ovsdb.bonjourProfileFileName=$OVSDB_BONJOURPROFILE_CONFIG_FILE"
 | 
				
			||||||
 | 
					OVSDB_PROPS="$OVSDB_PROPS -Dtip.wlan.ovsdb.wifi-iface.default_bridge=$OVSDB_IF_DEFAULT_BRIDGE"
 | 
				
			||||||
 | 
					OVSDB_PROPS="$OVSDB_PROPS -Dtip.wlan.ovsdb.wifi-iface.default_wan_type=$OVSDB_DEVICE_DEFAULT_WAN_TYPE"
 | 
				
			||||||
 | 
					OVSDB_PROPS="$OVSDB_PROPS -Dtip.wlan.ovsdb.wifi-iface.default_wan_name=$OVSDB_DEVICE_DEFAULT_WAN_NAME"
 | 
				
			||||||
 | 
					OVSDB_PROPS="$OVSDB_PROPS -Dtip.wlan.ovsdb.wifi-iface.default_lan_type=$OVSDB_DEVICE_DEFAULT_LAN_TYPE"
 | 
				
			||||||
 | 
					OVSDB_PROPS="$OVSDB_PROPS -Dtip.wlan.ovsdb.wifi-iface.default_lan_name=$OVSDB_DEVICE_DEFAULT_LAN_NAME"
 | 
				
			||||||
 | 
					OVSDB_PROPS="$OVSDB_PROPS -Dtip.wlan.ovsdb.wifi-iface.default_radio0=$OVSDB_IF_DEFAULT_RADIO_0"
 | 
				
			||||||
 | 
					OVSDB_PROPS="$OVSDB_PROPS -Dtip.wlan.ovsdb.wifi-iface.default_radio1=$OVSDB_IF_DEFAULT_RADIO_1"
 | 
				
			||||||
 | 
					OVSDB_PROPS="$OVSDB_PROPS -Dtip.wlan.ovsdb.wifi-iface.default_radio2=$OVSDB_IF_DEFAULT_RADIO_2"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
echo OVSDB_PROPS $OVSDB_PROPS
 | 
					echo OVSDB_PROPS $OVSDB_PROPS
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
MQTT_PROPS=" "
 | 
					MQTT_PROPS=" "
 | 
				
			||||||
MQTT_PROPS="$MQTT_PROPS -Dconnectus.mqttBroker.address=$MQTT_BROKER_HOST"
 | 
					MQTT_PROPS="$MQTT_PROPS -Dtip.wlan.mqttBroker.address.internal=$MQTT_BROKER_HOST_INTERNAL"
 | 
				
			||||||
MQTT_PROPS="$MQTT_PROPS -Dconnectus.mqttBroker.listenPort=1883"
 | 
					MQTT_PROPS="$MQTT_PROPS -Dtip.wlan.mqttBroker.address.external=$MQTT_BROKER_HOST_EXTERNAL"
 | 
				
			||||||
 | 
					MQTT_PROPS="$MQTT_PROPS -Dtip.wlan.mqttBroker.listenPort=1883"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
LOGGING_PROPS=" -Dlogging.config=file:$LOGBACK_CONFIG_FILE"
 | 
					LOGGING_PROPS=" -Dlogging.config=file:$LOGBACK_CONFIG_FILE"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,5 +1,5 @@
 | 
				
			|||||||
FROM adoptopenjdk/openjdk13:alpine-jre
 | 
					FROM adoptopenjdk/openjdk13:alpine-jre
 | 
				
			||||||
MAINTAINER ConnectUs
 | 
					MAINTAINER TipWlan
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Update the package list and upgrade installed packages
 | 
					# Update the package list and upgrade installed packages
 | 
				
			||||||
RUN apk update && apk upgrade && apk add bash
 | 
					RUN apk update && apk upgrade && apk add bash
 | 
				
			||||||
@@ -13,7 +13,15 @@ COPY app/opensync/EquipmentExample.json /app/opensync/EquipmentExample.json
 | 
				
			|||||||
COPY app/opensync/ProfileAPExample.json /app/opensync/ProfileAPExample.json
 | 
					COPY app/opensync/ProfileAPExample.json /app/opensync/ProfileAPExample.json
 | 
				
			||||||
COPY app/opensync/ProfileSsid.json /app/opensync/ProfileSsid.json
 | 
					COPY app/opensync/ProfileSsid.json /app/opensync/ProfileSsid.json
 | 
				
			||||||
COPY app/opensync/LocationBuildingExample.json /app/opensync/LocationBuildingExample.json
 | 
					COPY app/opensync/LocationBuildingExample.json /app/opensync/LocationBuildingExample.json
 | 
				
			||||||
 | 
					COPY app/opensync/ProfileMetrics.json /app/opensync/ProfileMetrics.json
 | 
				
			||||||
 | 
					COPY app/opensync/ProfileRf.json /app/opensync/ProfileRf.json
 | 
				
			||||||
 | 
					COPY app/opensync/ProfileHotspot20.json /app/opensync/ProfileHotspot20.json
 | 
				
			||||||
 | 
					COPY app/opensync/ProfileOperator.json /app/opensync/ProfileOperator.json
 | 
				
			||||||
 | 
					COPY app/opensync/ProfileVenue.json /app/opensync/ProfileVenue.json
 | 
				
			||||||
 | 
					COPY app/opensync/ProfileIdProvider.json /app/opensync/ProfileIdProvider.json
 | 
				
			||||||
 | 
					COPY app/opensync/ProfileBonjour.json /app/opensync/ProfileBonjour.json
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					COPY app/commit.properties /app
 | 
				
			||||||
RUN chmod +x /app/run.sh
 | 
					RUN chmod +x /app/run.sh
 | 
				
			||||||
 | 
					
 | 
				
			||||||
WORKDIR /app
 | 
					WORKDIR /app
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -0,0 +1,4 @@
 | 
				
			|||||||
 | 
					#This is a dummy property file to be used when running docker locally 
 | 
				
			||||||
 | 
					date=${date}
 | 
				
			||||||
 | 
					commitId=${commit.id}
 | 
				
			||||||
 | 
					projectVersion=${project.version}
 | 
				
			||||||
@@ -38,37 +38,28 @@
 | 
				
			|||||||
        "channelNumber": 6,
 | 
					        "channelNumber": 6,
 | 
				
			||||||
        "manualChannelNumber": 6,
 | 
					        "manualChannelNumber": 6,
 | 
				
			||||||
        "backupChannelNumber": 11,
 | 
					        "backupChannelNumber": 11,
 | 
				
			||||||
        "autoChannelSelection": false,
 | 
					 | 
				
			||||||
        "channelBandwidth": "is20MHz",
 | 
					 | 
				
			||||||
        "bannedChannels": [],
 | 
					        "bannedChannels": [],
 | 
				
			||||||
        "allowedChannels": [],
 | 
					        "allowedChannels": [],
 | 
				
			||||||
        "rxCellSizeDb": {
 | 
					        "rxCellSizeDb": {
 | 
				
			||||||
          "model_type": "AutoOrManualValue",
 | 
					          "model_type": "SourceSelectionValue",
 | 
				
			||||||
          "auto": true,
 | 
					        "source": "auto",
 | 
				
			||||||
          "value": -90
 | 
					          "value": -90
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        "probeResponseThresholdDb": {
 | 
					        "probeResponseThresholdDb": {
 | 
				
			||||||
          "model_type": "AutoOrManualValue",
 | 
					          "model_type": "SourceSelectionValue",
 | 
				
			||||||
          "auto": true,
 | 
					        "source": "auto",
 | 
				
			||||||
          "value": -90
 | 
					          "value": -90
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        "clientDisconnectThresholdDb": {
 | 
					        "clientDisconnectThresholdDb": {
 | 
				
			||||||
          "model_type": "AutoOrManualValue",
 | 
					          "model_type": "SourceSelectionValue",
 | 
				
			||||||
          "auto": true,
 | 
					        	 "source": "auto",
 | 
				
			||||||
          "value": -90
 | 
					          "value": -90
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        "eirpTxPower": {
 | 
					        "eirpTxPower": {
 | 
				
			||||||
          "model_type": "AutoOrManualValue",
 | 
					          "model_type": "SourceSelectionValue",
 | 
				
			||||||
          "auto": false,
 | 
					        	 "source": "auto",
 | 
				
			||||||
          "value": 32
 | 
					          "value": 32
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        "bestApEnabled": null,
 | 
					 | 
				
			||||||
        "neighbouringListApConfig": {
 | 
					 | 
				
			||||||
          "model_type": "NeighbouringAPListConfiguration",
 | 
					 | 
				
			||||||
          "minSignal": -85,
 | 
					 | 
				
			||||||
          "maxAps": 25
 | 
					 | 
				
			||||||
        },
 | 
					 | 
				
			||||||
        "minAutoCellSize": -80,
 | 
					 | 
				
			||||||
        "perimeterDetectionEnabled": true,
 | 
					        "perimeterDetectionEnabled": true,
 | 
				
			||||||
        "bestAPSteerType": "both",
 | 
					        "bestAPSteerType": "both",
 | 
				
			||||||
        "deauthAttackDetection": null,
 | 
					        "deauthAttackDetection": null,
 | 
				
			||||||
@@ -81,37 +72,28 @@
 | 
				
			|||||||
        "channelNumber": 149,
 | 
					        "channelNumber": 149,
 | 
				
			||||||
        "manualChannelNumber": 149,
 | 
					        "manualChannelNumber": 149,
 | 
				
			||||||
        "backupChannelNumber": 154,
 | 
					        "backupChannelNumber": 154,
 | 
				
			||||||
        "autoChannelSelection": false,
 | 
					 | 
				
			||||||
        "channelBandwidth": "is80MHz",
 | 
					 | 
				
			||||||
        "bannedChannels": [],
 | 
					        "bannedChannels": [],
 | 
				
			||||||
        "allowedChannels": [],
 | 
					        "allowedChannels": [],
 | 
				
			||||||
        "rxCellSizeDb": {
 | 
					        "rxCellSizeDb": {
 | 
				
			||||||
          "model_type": "AutoOrManualValue",
 | 
					          "model_type": "SourceSelectionValue",
 | 
				
			||||||
          "auto": true,
 | 
					        	 "source": "auto",
 | 
				
			||||||
          "value": -90
 | 
					          "value": -90
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        "probeResponseThresholdDb": {
 | 
					        "probeResponseThresholdDb": {
 | 
				
			||||||
          "model_type": "AutoOrManualValue",
 | 
					          "model_type": "SourceSelectionValue",
 | 
				
			||||||
          "auto": true,
 | 
					        	 "source": "auto",
 | 
				
			||||||
          "value": -90
 | 
					          "value": -90
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        "clientDisconnectThresholdDb": {
 | 
					        "clientDisconnectThresholdDb": {
 | 
				
			||||||
          "model_type": "AutoOrManualValue",
 | 
					          "model_type": "SourceSelectionValue",
 | 
				
			||||||
          "auto": true,
 | 
					        	 "source": "auto",
 | 
				
			||||||
          "value": -90
 | 
					          "value": -90
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        "eirpTxPower": {
 | 
					        "eirpTxPower": {
 | 
				
			||||||
          "model_type": "AutoOrManualValue",
 | 
					          "model_type": "SourceSelectionValue",
 | 
				
			||||||
          "auto": false,
 | 
					        	 "source": "auto",
 | 
				
			||||||
          "value": 32
 | 
					          "value": 32
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        "bestApEnabled": null,
 | 
					 | 
				
			||||||
        "neighbouringListApConfig": {
 | 
					 | 
				
			||||||
          "model_type": "NeighbouringAPListConfiguration",
 | 
					 | 
				
			||||||
          "minSignal": -85,
 | 
					 | 
				
			||||||
          "maxAps": 25
 | 
					 | 
				
			||||||
        },
 | 
					 | 
				
			||||||
        "minAutoCellSize": -80,
 | 
					 | 
				
			||||||
        "perimeterDetectionEnabled": true,
 | 
					        "perimeterDetectionEnabled": true,
 | 
				
			||||||
        "bestAPSteerType": "both",
 | 
					        "bestAPSteerType": "both",
 | 
				
			||||||
        "deauthAttackDetection": null,
 | 
					        "deauthAttackDetection": null,
 | 
				
			||||||
@@ -124,37 +106,28 @@
 | 
				
			|||||||
        "channelNumber": 36,
 | 
					        "channelNumber": 36,
 | 
				
			||||||
        "manualChannelNumber": 36,
 | 
					        "manualChannelNumber": 36,
 | 
				
			||||||
        "backupChannelNumber": 44,
 | 
					        "backupChannelNumber": 44,
 | 
				
			||||||
        "autoChannelSelection": false,
 | 
					 | 
				
			||||||
        "channelBandwidth": "is80MHz",
 | 
					 | 
				
			||||||
        "bannedChannels": [],
 | 
					        "bannedChannels": [],
 | 
				
			||||||
        "allowedChannels": [],
 | 
					        "allowedChannels": [],
 | 
				
			||||||
        "rxCellSizeDb": {
 | 
					        "rxCellSizeDb": {
 | 
				
			||||||
          "model_type": "AutoOrManualValue",
 | 
					          "model_type": "SourceSelectionValue",
 | 
				
			||||||
          "auto": true,
 | 
					        	 "source": "auto",
 | 
				
			||||||
          "value": -90
 | 
					          "value": -90
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        "probeResponseThresholdDb": {
 | 
					        "probeResponseThresholdDb": {
 | 
				
			||||||
          "model_type": "AutoOrManualValue",
 | 
					          "model_type": "SourceSelectionValue",
 | 
				
			||||||
          "auto": true,
 | 
					        	 "source": "auto",
 | 
				
			||||||
          "value": -90
 | 
					          "value": -90
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        "clientDisconnectThresholdDb": {
 | 
					        "clientDisconnectThresholdDb": {
 | 
				
			||||||
          "model_type": "AutoOrManualValue",
 | 
					          "model_type": "SourceSelectionValue",
 | 
				
			||||||
          "auto": true,
 | 
					        	 "source": "auto",
 | 
				
			||||||
          "value": -90
 | 
					          "value": -90
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        "eirpTxPower": {
 | 
					        "eirpTxPower": {
 | 
				
			||||||
          "model_type": "AutoOrManualValue",
 | 
					          "model_type": "SourceSelectionValue",
 | 
				
			||||||
          "auto": false,
 | 
					        	 "source": "auto",
 | 
				
			||||||
          "value": 32
 | 
					          "value": 32
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        "bestApEnabled": null,
 | 
					 | 
				
			||||||
        "neighbouringListApConfig": {
 | 
					 | 
				
			||||||
          "model_type": "NeighbouringAPListConfiguration",
 | 
					 | 
				
			||||||
          "minSignal": -85,
 | 
					 | 
				
			||||||
          "maxAps": 25
 | 
					 | 
				
			||||||
        },
 | 
					 | 
				
			||||||
        "minAutoCellSize": -80,
 | 
					 | 
				
			||||||
        "perimeterDetectionEnabled": true,
 | 
					        "perimeterDetectionEnabled": true,
 | 
				
			||||||
        "bestAPSteerType": "both",
 | 
					        "bestAPSteerType": "both",
 | 
				
			||||||
        "deauthAttackDetection": null,
 | 
					        "deauthAttackDetection": null,
 | 
				
			||||||
@@ -168,39 +141,24 @@
 | 
				
			|||||||
        "radioType": "is2dot4GHz",
 | 
					        "radioType": "is2dot4GHz",
 | 
				
			||||||
        "radioAdminState": "enabled",
 | 
					        "radioAdminState": "enabled",
 | 
				
			||||||
        "fragmentationThresholdBytes": 2346,
 | 
					        "fragmentationThresholdBytes": 2346,
 | 
				
			||||||
        "rtsCtsThreshold": 65535,
 | 
					 | 
				
			||||||
        "autoChannelSelection": "disabled",
 | 
					 | 
				
			||||||
        "radioMode": "modeN",
 | 
					 | 
				
			||||||
        "mimoMode": "twoByTwo",
 | 
					 | 
				
			||||||
        "wmmState": "enabled",
 | 
					 | 
				
			||||||
        "uapsdState": "enabled",
 | 
					        "uapsdState": "enabled",
 | 
				
			||||||
        "maxNumClients": 100,
 | 
					 | 
				
			||||||
        "stationIsolation": "disabled",
 | 
					        "stationIsolation": "disabled",
 | 
				
			||||||
        "multicastRate": "auto",
 | 
					        "managementRate": {
 | 
				
			||||||
        "managementRate": "auto",
 | 
					          "model_type": "SourceSelectionManagement",
 | 
				
			||||||
        "activeScanSettings": {
 | 
					          "source": "auto",
 | 
				
			||||||
          "model_type": "ActiveScanSettings",
 | 
					          "value": "auto"
 | 
				
			||||||
          "enabled": true,
 | 
					 | 
				
			||||||
          "scanFrequencySeconds": 10,
 | 
					 | 
				
			||||||
          "scanDurationMillis": 65
 | 
					 | 
				
			||||||
        },
 | 
					 | 
				
			||||||
        "channelHopSettings": {
 | 
					 | 
				
			||||||
          "model_type": "ChannelHopSettings",
 | 
					 | 
				
			||||||
          "noiseFloorThresholdInDB": -75,
 | 
					 | 
				
			||||||
          "noiseFloorThresholdTimeInSeconds": 180,
 | 
					 | 
				
			||||||
          "nonWifiThresholdInPercentage": 50,
 | 
					 | 
				
			||||||
          "nonWifiThresholdTimeInSeconds": 180,
 | 
					 | 
				
			||||||
          "obssHopMode": "NON_WIFI"
 | 
					 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        "bestApSettings": {
 | 
					        "bestApSettings": {
 | 
				
			||||||
          "model_type": "RadioBestApSettings",
 | 
					        "model_type": "SourceSelectionSteering",
 | 
				
			||||||
          "mlComputed": true,
 | 
					          "source": "auto",
 | 
				
			||||||
          "dropInSnrPercentage": 20,
 | 
					          "value": {
 | 
				
			||||||
          "minLoadFactor": 50
 | 
						          "model_type": "RadioBestApSettings",
 | 
				
			||||||
 | 
						          "mlComputed": true,
 | 
				
			||||||
 | 
						          "dropInSnrPercentage": 30,
 | 
				
			||||||
 | 
						          "minLoadFactor": 40
 | 
				
			||||||
 | 
					          }
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        "forceScanDuringVoice": "disabled",
 | 
					 | 
				
			||||||
        "legacyBSSRate": "enabled",
 | 
					        "legacyBSSRate": "enabled",
 | 
				
			||||||
        "beaconInterval": 100,
 | 
					 | 
				
			||||||
        "deauthAttackDetection": null
 | 
					        "deauthAttackDetection": null
 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      "is5GHzU": {
 | 
					      "is5GHzU": {
 | 
				
			||||||
@@ -208,39 +166,24 @@
 | 
				
			|||||||
        "radioType": "is5GHzU",
 | 
					        "radioType": "is5GHzU",
 | 
				
			||||||
        "radioAdminState": "enabled",
 | 
					        "radioAdminState": "enabled",
 | 
				
			||||||
        "fragmentationThresholdBytes": 2346,
 | 
					        "fragmentationThresholdBytes": 2346,
 | 
				
			||||||
        "rtsCtsThreshold": 65535,
 | 
					 | 
				
			||||||
        "autoChannelSelection": "disabled",
 | 
					 | 
				
			||||||
        "radioMode": "modeAC",
 | 
					 | 
				
			||||||
        "mimoMode": "twoByTwo",
 | 
					 | 
				
			||||||
        "wmmState": "enabled",
 | 
					 | 
				
			||||||
        "uapsdState": "enabled",
 | 
					        "uapsdState": "enabled",
 | 
				
			||||||
        "maxNumClients": 100,
 | 
					 | 
				
			||||||
        "stationIsolation": "disabled",
 | 
					        "stationIsolation": "disabled",
 | 
				
			||||||
        "multicastRate": "auto",
 | 
					        "managementRate": {
 | 
				
			||||||
        "managementRate": "auto",
 | 
					          "model_type": "SourceSelectionManagement",
 | 
				
			||||||
        "activeScanSettings": {
 | 
					          "source": "auto",
 | 
				
			||||||
          "model_type": "ActiveScanSettings",
 | 
					          "value": "auto"
 | 
				
			||||||
          "enabled": true,
 | 
					 | 
				
			||||||
          "scanFrequencySeconds": 10,
 | 
					 | 
				
			||||||
          "scanDurationMillis": 65
 | 
					 | 
				
			||||||
        },
 | 
					 | 
				
			||||||
        "channelHopSettings": {
 | 
					 | 
				
			||||||
          "model_type": "ChannelHopSettings",
 | 
					 | 
				
			||||||
          "noiseFloorThresholdInDB": -75,
 | 
					 | 
				
			||||||
          "noiseFloorThresholdTimeInSeconds": 180,
 | 
					 | 
				
			||||||
          "nonWifiThresholdInPercentage": 50,
 | 
					 | 
				
			||||||
          "nonWifiThresholdTimeInSeconds": 180,
 | 
					 | 
				
			||||||
          "obssHopMode": "NON_WIFI"
 | 
					 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        "bestApSettings": {
 | 
					        "bestApSettings": {
 | 
				
			||||||
          "model_type": "RadioBestApSettings",
 | 
					        "model_type": "SourceSelectionSteering",
 | 
				
			||||||
          "mlComputed": true,
 | 
					          "source": "auto",
 | 
				
			||||||
          "dropInSnrPercentage": 30,
 | 
					          "value": {
 | 
				
			||||||
          "minLoadFactor": 40
 | 
						          "model_type": "RadioBestApSettings",
 | 
				
			||||||
 | 
						          "mlComputed": true,
 | 
				
			||||||
 | 
						          "dropInSnrPercentage": 30,
 | 
				
			||||||
 | 
						          "minLoadFactor": 40
 | 
				
			||||||
 | 
					          }
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        "forceScanDuringVoice": "disabled",
 | 
					 | 
				
			||||||
        "legacyBSSRate": "enabled",
 | 
					        "legacyBSSRate": "enabled",
 | 
				
			||||||
        "beaconInterval": 100,
 | 
					 | 
				
			||||||
        "deauthAttackDetection": null
 | 
					        "deauthAttackDetection": null
 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      "is5GHzL": {
 | 
					      "is5GHzL": {
 | 
				
			||||||
@@ -248,39 +191,24 @@
 | 
				
			|||||||
        "radioType": "is5GHzL",
 | 
					        "radioType": "is5GHzL",
 | 
				
			||||||
        "radioAdminState": "enabled",
 | 
					        "radioAdminState": "enabled",
 | 
				
			||||||
        "fragmentationThresholdBytes": 2346,
 | 
					        "fragmentationThresholdBytes": 2346,
 | 
				
			||||||
        "rtsCtsThreshold": 65535,
 | 
					 | 
				
			||||||
        "autoChannelSelection": "disabled",
 | 
					 | 
				
			||||||
        "radioMode": "modeAC",
 | 
					 | 
				
			||||||
        "mimoMode": "twoByTwo",
 | 
					 | 
				
			||||||
        "wmmState": "enabled",
 | 
					 | 
				
			||||||
        "uapsdState": "enabled",
 | 
					        "uapsdState": "enabled",
 | 
				
			||||||
        "maxNumClients": 100,
 | 
					 | 
				
			||||||
        "stationIsolation": "disabled",
 | 
					        "stationIsolation": "disabled",
 | 
				
			||||||
        "multicastRate": "auto",
 | 
					        "managementRate": {
 | 
				
			||||||
        "managementRate": "auto",
 | 
					          "model_type": "SourceSelectionManagement",
 | 
				
			||||||
        "activeScanSettings": {
 | 
					          "source": "auto",
 | 
				
			||||||
          "model_type": "ActiveScanSettings",
 | 
					          "value": "auto"
 | 
				
			||||||
          "enabled": true,
 | 
					 | 
				
			||||||
          "scanFrequencySeconds": 10,
 | 
					 | 
				
			||||||
          "scanDurationMillis": 65
 | 
					 | 
				
			||||||
        },
 | 
					 | 
				
			||||||
        "channelHopSettings": {
 | 
					 | 
				
			||||||
          "model_type": "ChannelHopSettings",
 | 
					 | 
				
			||||||
          "noiseFloorThresholdInDB": -75,
 | 
					 | 
				
			||||||
          "noiseFloorThresholdTimeInSeconds": 180,
 | 
					 | 
				
			||||||
          "nonWifiThresholdInPercentage": 50,
 | 
					 | 
				
			||||||
          "nonWifiThresholdTimeInSeconds": 180,
 | 
					 | 
				
			||||||
          "obssHopMode": "NON_WIFI"
 | 
					 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        "bestApSettings": {
 | 
					        "bestApSettings": {
 | 
				
			||||||
          "model_type": "RadioBestApSettings",
 | 
					        "model_type": "SourceSelectionSteering",
 | 
				
			||||||
          "mlComputed": true,
 | 
					          "source": "auto",
 | 
				
			||||||
          "dropInSnrPercentage": 30,
 | 
					          "value": {
 | 
				
			||||||
          "minLoadFactor": 40
 | 
						          "model_type": "RadioBestApSettings",
 | 
				
			||||||
 | 
						          "mlComputed": true,
 | 
				
			||||||
 | 
						          "dropInSnrPercentage": 30,
 | 
				
			||||||
 | 
						          "minLoadFactor": 40
 | 
				
			||||||
 | 
					          }
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        "forceScanDuringVoice": "disabled",
 | 
					 | 
				
			||||||
        "legacyBSSRate": "enabled",
 | 
					        "legacyBSSRate": "enabled",
 | 
				
			||||||
        "beaconInterval": 100,
 | 
					 | 
				
			||||||
        "deauthAttackDetection": null
 | 
					        "deauthAttackDetection": null
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
@@ -290,4 +218,4 @@
 | 
				
			|||||||
  "serial": "21P10C68818122",
 | 
					  "serial": "21P10C68818122",
 | 
				
			||||||
  "createdTimestamp": 1591653239821,
 | 
					  "createdTimestamp": 1591653239821,
 | 
				
			||||||
  "lastModifiedTimestamp": 1591653241398
 | 
					  "lastModifiedTimestamp": 1591653241398
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,54 +1,50 @@
 | 
				
			|||||||
{
 | 
					{
 | 
				
			||||||
  "model_type": "Profile",
 | 
					    "model_type": "Profile",
 | 
				
			||||||
  "id": 5,
 | 
					    "id": 17,
 | 
				
			||||||
  "customerId": 2,
 | 
					    "customerId": 2,
 | 
				
			||||||
  "profileType": "equipment_ap",
 | 
					    "profileType": "equipment_ap",
 | 
				
			||||||
  "name": "DefaultApProfile",
 | 
					    "name": "ApProfile-3-radios",
 | 
				
			||||||
  "details": {
 | 
					    "details": {
 | 
				
			||||||
    "model_type": "ApNetworkConfiguration",
 | 
					        "model_type": "ApNetworkConfiguration",
 | 
				
			||||||
    "networkConfigVersion": "AP-1",
 | 
					        "networkConfigVersion": "AP-1",
 | 
				
			||||||
    "equipmentType": "AP",
 | 
					        "equipmentType": "AP",
 | 
				
			||||||
    "vlanNative": true,
 | 
					        "vlanNative": true,
 | 
				
			||||||
    "vlan": 0,
 | 
					        "vlan": 0,
 | 
				
			||||||
    "ntpServer": {
 | 
					        "ntpServer": {
 | 
				
			||||||
      "model_type": "AutoOrManualString",
 | 
					            "model_type": "AutoOrManualString",
 | 
				
			||||||
      "auto": true,
 | 
					            "auto": true,
 | 
				
			||||||
      "value": "pool.ntp.org"
 | 
					            "value": "pool.ntp.org"
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					        "syslogRelay": null,
 | 
				
			||||||
 | 
					        "rtlsSettings": null,
 | 
				
			||||||
 | 
					        "syntheticClientEnabled": true,
 | 
				
			||||||
 | 
					        "ledControlEnabled": true,
 | 
				
			||||||
 | 
					        "equipmentDiscovery": false,
 | 
				
			||||||
 | 
					        "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"
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "syslogRelay": null,
 | 
					    "createdTimestamp": 1602182806348,
 | 
				
			||||||
    "rtlsSettings": null,
 | 
					    "lastModifiedTimestamp": 1602182806348,
 | 
				
			||||||
    "syntheticClientEnabled": true,
 | 
					    "childProfileIds": [
 | 
				
			||||||
    "ledControlEnabled": true,
 | 
					        2,
 | 
				
			||||||
    "equipmentDiscovery": false,
 | 
					        5,
 | 
				
			||||||
    "radioMap": {
 | 
					        11,
 | 
				
			||||||
      "is5GHz": {
 | 
					        13
 | 
				
			||||||
        "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
 | 
					 | 
				
			||||||
  ]
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@@ -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": 10,
 | 
				
			||||||
 | 
					    "customerId": 2,
 | 
				
			||||||
 | 
					    "profileType": "hotspot_2pt0",
 | 
				
			||||||
 | 
					    "name": "TipWlan-Hotspot20-Config",
 | 
				
			||||||
 | 
					    "details": {
 | 
				
			||||||
 | 
					        "model_type": "Hotspot2Profile",
 | 
				
			||||||
 | 
					        "enableInterworkingAndHs20": true,
 | 
				
			||||||
 | 
					        "hessid": null,
 | 
				
			||||||
 | 
					        "accessNetworkType": "free_public_network",
 | 
				
			||||||
 | 
					        "networkAuthenticationType": "acceptance_of_terms_and_conditions",
 | 
				
			||||||
 | 
					        "additionalStepsRequiredForAccess": 0,
 | 
				
			||||||
 | 
					        "deauthRequestTimeout": 0,
 | 
				
			||||||
 | 
					        "operatingClass": 0,
 | 
				
			||||||
 | 
					        "termsAndConditionsFile": {
 | 
				
			||||||
 | 
					            "model_type": "ManagedFileInfo",
 | 
				
			||||||
 | 
					            "md5checksum": null,
 | 
				
			||||||
 | 
					            "lastModifiedTimestamp": null,
 | 
				
			||||||
 | 
					            "apExportUrl": "https://localhost:9091/filestore/termsAndConditions",
 | 
				
			||||||
 | 
					            "fileCategory": "ExternalPolicyConfiguration",
 | 
				
			||||||
 | 
					            "fileType": "TEXT",
 | 
				
			||||||
 | 
					            "altSlot": false
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					        "whitelistDomain": null,
 | 
				
			||||||
 | 
					        "emergencyServicesReachable": true,
 | 
				
			||||||
 | 
					        "unauthenticatedEmergencyServiceAccessible": false,
 | 
				
			||||||
 | 
					        "internetConnectivity": true,
 | 
				
			||||||
 | 
					        "connectionCapabilitySet": [
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                "model_type": "ConnectionCapability",
 | 
				
			||||||
 | 
					                "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-3-radios",
 | 
				
			||||||
 | 
					        "operatorProfileName": "TipWlan-Hotspot20-Operator",
 | 
				
			||||||
 | 
					        "venueProfileName": "TipWlan-Hotspot20-Venue",
 | 
				
			||||||
 | 
					        "idProviderProfileNames": [
 | 
				
			||||||
 | 
					            "TipWlan-Hotspot20-OSU-Provider-2",
 | 
				
			||||||
 | 
					            "TipWlan-Hotspot20-OSU-Provider"
 | 
				
			||||||
 | 
					        ],
 | 
				
			||||||
 | 
					        "profileType": "hotspot_2pt0",
 | 
				
			||||||
 | 
					        "associatedSsids": [
 | 
				
			||||||
 | 
					            "TipWlan-cloud-hotspot-access"
 | 
				
			||||||
 | 
					        ]
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "createdTimestamp": 1602182806040,
 | 
				
			||||||
 | 
					    "lastModifiedTimestamp": 1602182806040,
 | 
				
			||||||
 | 
					    "childProfileIds": [
 | 
				
			||||||
 | 
					        6,
 | 
				
			||||||
 | 
					        7,
 | 
				
			||||||
 | 
					        8,
 | 
				
			||||||
 | 
					        9
 | 
				
			||||||
 | 
					    ]
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					]
 | 
				
			||||||
@@ -0,0 +1,256 @@
 | 
				
			|||||||
 | 
					[
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    "model_type": "Profile",
 | 
				
			||||||
 | 
					    "id": 8,
 | 
				
			||||||
 | 
					    "customerId": 2,
 | 
				
			||||||
 | 
					    "profileType": "id_provider",
 | 
				
			||||||
 | 
					    "name": "TipWlan-Hotspot20-OSU-Provider",
 | 
				
			||||||
 | 
					    "details": {
 | 
				
			||||||
 | 
					        "model_type": "Hotspot20IdProviderProfile",
 | 
				
			||||||
 | 
					        "domainName": "rogers.com",
 | 
				
			||||||
 | 
					        "mccMncList": [
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                "model_type": "MccMnc",
 | 
				
			||||||
 | 
					                "mcc": 302,
 | 
				
			||||||
 | 
					                "mnc": 720,
 | 
				
			||||||
 | 
					                "iso": "ca",
 | 
				
			||||||
 | 
					                "country": "Canada",
 | 
				
			||||||
 | 
					                "countryCode": 1,
 | 
				
			||||||
 | 
					                "network": "Rogers AT&T Wireless",
 | 
				
			||||||
 | 
					                "mccMncPairing": "302,720"
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        ],
 | 
				
			||||||
 | 
					        "naiRealmList": [
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                "model_type": "NaiRealmInformation",
 | 
				
			||||||
 | 
					                "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": "OsuIcon",
 | 
				
			||||||
 | 
					                "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": "OsuIcon",
 | 
				
			||||||
 | 
					                "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": "OsuIcon",
 | 
				
			||||||
 | 
					                "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": "Hotspot20Duple",
 | 
				
			||||||
 | 
					                "locale": "en_CA",
 | 
				
			||||||
 | 
					                "dupleIso3Language": "eng",
 | 
				
			||||||
 | 
					                "dupleName": "Example provider rogers",
 | 
				
			||||||
 | 
					                "defaultDupleSeparator": ":",
 | 
				
			||||||
 | 
					                "asDuple": "eng:Example provider rogers"
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                "model_type": "Hotspot20Duple",
 | 
				
			||||||
 | 
					                "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": "Hotspot20Duple",
 | 
				
			||||||
 | 
					                "locale": "en_CA",
 | 
				
			||||||
 | 
					                "dupleIso3Language": "eng",
 | 
				
			||||||
 | 
					                "dupleName": "Example services rogers",
 | 
				
			||||||
 | 
					                "defaultDupleSeparator": ":",
 | 
				
			||||||
 | 
					                "asDuple": "eng:Example services rogers"
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                "model_type": "Hotspot20Duple",
 | 
				
			||||||
 | 
					                "locale": "fr_CA",
 | 
				
			||||||
 | 
					                "dupleIso3Language": "fra",
 | 
				
			||||||
 | 
					                "dupleName": "Exemples de services rogers",
 | 
				
			||||||
 | 
					                "defaultDupleSeparator": ":",
 | 
				
			||||||
 | 
					                "asDuple": "fra:Exemples de services rogers"
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        ],
 | 
				
			||||||
 | 
					        "profileType": "id_provider"
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "createdTimestamp": 1602182805654,
 | 
				
			||||||
 | 
					    "lastModifiedTimestamp": 1602182805654,
 | 
				
			||||||
 | 
					    "childProfileIds": []
 | 
				
			||||||
 | 
					},
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    "model_type": "Profile",
 | 
				
			||||||
 | 
					    "id": 9,
 | 
				
			||||||
 | 
					    "customerId": 2,
 | 
				
			||||||
 | 
					    "profileType": "id_provider",
 | 
				
			||||||
 | 
					    "name": "TipWlan-Hotspot20-OSU-Provider-2",
 | 
				
			||||||
 | 
					    "details": {
 | 
				
			||||||
 | 
					        "model_type": "Hotspot20IdProviderProfile",
 | 
				
			||||||
 | 
					        "domainName": "telus.com",
 | 
				
			||||||
 | 
					        "mccMncList": [
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                "model_type": "MccMnc",
 | 
				
			||||||
 | 
					                "mcc": 302,
 | 
				
			||||||
 | 
					                "mnc": 220,
 | 
				
			||||||
 | 
					                "iso": "ca",
 | 
				
			||||||
 | 
					                "country": "Canada",
 | 
				
			||||||
 | 
					                "countryCode": 1,
 | 
				
			||||||
 | 
					                "network": "Telus Mobility",
 | 
				
			||||||
 | 
					                "mccMncPairing": "302,220"
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        ],
 | 
				
			||||||
 | 
					        "naiRealmList": [
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                "model_type": "NaiRealmInformation",
 | 
				
			||||||
 | 
					                "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": "OsuIcon",
 | 
				
			||||||
 | 
					                "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": "OsuIcon",
 | 
				
			||||||
 | 
					                "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": "OsuIcon",
 | 
				
			||||||
 | 
					                "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": "Hotspot20Duple",
 | 
				
			||||||
 | 
					                "locale": "en_CA",
 | 
				
			||||||
 | 
					                "dupleIso3Language": "eng",
 | 
				
			||||||
 | 
					                "dupleName": "Example provider telus",
 | 
				
			||||||
 | 
					                "defaultDupleSeparator": ":",
 | 
				
			||||||
 | 
					                "asDuple": "eng:Example provider telus"
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                "model_type": "Hotspot20Duple",
 | 
				
			||||||
 | 
					                "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": "Hotspot20Duple",
 | 
				
			||||||
 | 
					                "locale": "en_CA",
 | 
				
			||||||
 | 
					                "dupleIso3Language": "eng",
 | 
				
			||||||
 | 
					                "dupleName": "Example services telus",
 | 
				
			||||||
 | 
					                "defaultDupleSeparator": ":",
 | 
				
			||||||
 | 
					                "asDuple": "eng:Example services telus"
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                "model_type": "Hotspot20Duple",
 | 
				
			||||||
 | 
					                "locale": "fr_CA",
 | 
				
			||||||
 | 
					                "dupleIso3Language": "fra",
 | 
				
			||||||
 | 
					                "dupleName": "Exemples de services telus",
 | 
				
			||||||
 | 
					                "defaultDupleSeparator": ":",
 | 
				
			||||||
 | 
					                "asDuple": "fra:Exemples de services telus"
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        ],
 | 
				
			||||||
 | 
					        "profileType": "id_provider"
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "createdTimestamp": 1602182805660,
 | 
				
			||||||
 | 
					    "lastModifiedTimestamp": 1602182805660,
 | 
				
			||||||
 | 
					    "childProfileIds": []
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					    ]
 | 
				
			||||||
@@ -0,0 +1,298 @@
 | 
				
			|||||||
 | 
					[
 | 
				
			||||||
 | 
					 {
 | 
				
			||||||
 | 
					        "model_type": "Profile",
 | 
				
			||||||
 | 
					        "id": 2,
 | 
				
			||||||
 | 
					        "customerId": 2,
 | 
				
			||||||
 | 
					        "profileType": "metrics",
 | 
				
			||||||
 | 
					        "name": "Metrics-Profile-3-radios",
 | 
				
			||||||
 | 
					        "details": {
 | 
				
			||||||
 | 
					            "model_type": "ServiceMetricsCollectionConfigProfile",
 | 
				
			||||||
 | 
					            "radioTypes": [
 | 
				
			||||||
 | 
					                "is5GHzU",
 | 
				
			||||||
 | 
					                "is5GHzL",
 | 
				
			||||||
 | 
					                "is2dot4GHz"
 | 
				
			||||||
 | 
					            ],
 | 
				
			||||||
 | 
					            "serviceMetricDataTypes": [
 | 
				
			||||||
 | 
					                "ApNode",
 | 
				
			||||||
 | 
					                "ApSsid",
 | 
				
			||||||
 | 
					                "Client",
 | 
				
			||||||
 | 
					                "Channel",
 | 
				
			||||||
 | 
					                "Neighbour"
 | 
				
			||||||
 | 
					            ],
 | 
				
			||||||
 | 
					            "metricConfigParameterMap": {
 | 
				
			||||||
 | 
					                "ApNode": [
 | 
				
			||||||
 | 
					                    {
 | 
				
			||||||
 | 
					                        "model_type": "ServiceMetricSurveyConfigParameters",
 | 
				
			||||||
 | 
					                        "samplingInterval": 30,
 | 
				
			||||||
 | 
					                        "reportingIntervalSeconds": 120,
 | 
				
			||||||
 | 
					                        "channelSurveyType": "OFF_CHANNEL",
 | 
				
			||||||
 | 
					                        "scanIntervalMillis": 0,
 | 
				
			||||||
 | 
					                        "percentUtilizationThreshold": 10,
 | 
				
			||||||
 | 
					                        "delayMillisecondsThreshold": 600,
 | 
				
			||||||
 | 
					                        "statsReportFormat": "RAW",
 | 
				
			||||||
 | 
					                        "radioType": "is5GHzU",
 | 
				
			||||||
 | 
					                        "serviceMetricDataType": "ApNode"
 | 
				
			||||||
 | 
					                    },
 | 
				
			||||||
 | 
					                    {
 | 
				
			||||||
 | 
					                        "model_type": "ServiceMetricSurveyConfigParameters",
 | 
				
			||||||
 | 
					                        "samplingInterval": 30,
 | 
				
			||||||
 | 
					                        "reportingIntervalSeconds": 120,
 | 
				
			||||||
 | 
					                        "channelSurveyType": "OFF_CHANNEL",
 | 
				
			||||||
 | 
					                        "scanIntervalMillis": 0,
 | 
				
			||||||
 | 
					                        "percentUtilizationThreshold": 10,
 | 
				
			||||||
 | 
					                        "delayMillisecondsThreshold": 600,
 | 
				
			||||||
 | 
					                        "statsReportFormat": "RAW",
 | 
				
			||||||
 | 
					                        "radioType": "is5GHzL",
 | 
				
			||||||
 | 
					                        "serviceMetricDataType": "ApNode"
 | 
				
			||||||
 | 
					                    },
 | 
				
			||||||
 | 
					                    {
 | 
				
			||||||
 | 
					                        "model_type": "ServiceMetricSurveyConfigParameters",
 | 
				
			||||||
 | 
					                        "samplingInterval": 30,
 | 
				
			||||||
 | 
					                        "reportingIntervalSeconds": 120,
 | 
				
			||||||
 | 
					                        "channelSurveyType": "OFF_CHANNEL",
 | 
				
			||||||
 | 
					                        "scanIntervalMillis": 0,
 | 
				
			||||||
 | 
					                        "percentUtilizationThreshold": 10,
 | 
				
			||||||
 | 
					                        "delayMillisecondsThreshold": 600,
 | 
				
			||||||
 | 
					                        "statsReportFormat": "RAW",
 | 
				
			||||||
 | 
					                        "radioType": "is2dot4GHz",
 | 
				
			||||||
 | 
					                        "serviceMetricDataType": "ApNode"
 | 
				
			||||||
 | 
					                    },
 | 
				
			||||||
 | 
					                    {
 | 
				
			||||||
 | 
					                        "model_type": "ServiceMetricSurveyConfigParameters",
 | 
				
			||||||
 | 
					                        "samplingInterval": 30,
 | 
				
			||||||
 | 
					                        "reportingIntervalSeconds": 60,
 | 
				
			||||||
 | 
					                        "channelSurveyType": "ON_CHANNEL",
 | 
				
			||||||
 | 
					                        "scanIntervalMillis": 0,
 | 
				
			||||||
 | 
					                        "percentUtilizationThreshold": 10,
 | 
				
			||||||
 | 
					                        "delayMillisecondsThreshold": 600,
 | 
				
			||||||
 | 
					                        "statsReportFormat": "RAW",
 | 
				
			||||||
 | 
					                        "radioType": "is5GHzL",
 | 
				
			||||||
 | 
					                        "serviceMetricDataType": "ApNode"
 | 
				
			||||||
 | 
					                    },
 | 
				
			||||||
 | 
					                    {
 | 
				
			||||||
 | 
					                        "model_type": "ServiceMetricSurveyConfigParameters",
 | 
				
			||||||
 | 
					                        "samplingInterval": 30,
 | 
				
			||||||
 | 
					                        "reportingIntervalSeconds": 60,
 | 
				
			||||||
 | 
					                        "channelSurveyType": "ON_CHANNEL",
 | 
				
			||||||
 | 
					                        "scanIntervalMillis": 0,
 | 
				
			||||||
 | 
					                        "percentUtilizationThreshold": 10,
 | 
				
			||||||
 | 
					                        "delayMillisecondsThreshold": 600,
 | 
				
			||||||
 | 
					                        "statsReportFormat": "RAW",
 | 
				
			||||||
 | 
					                        "radioType": "is2dot4GHz",
 | 
				
			||||||
 | 
					                        "serviceMetricDataType": "ApNode"
 | 
				
			||||||
 | 
					                    },
 | 
				
			||||||
 | 
					                    {
 | 
				
			||||||
 | 
					                        "model_type": "ServiceMetricSurveyConfigParameters",
 | 
				
			||||||
 | 
					                        "samplingInterval": 30,
 | 
				
			||||||
 | 
					                        "reportingIntervalSeconds": 60,
 | 
				
			||||||
 | 
					                        "channelSurveyType": "ON_CHANNEL",
 | 
				
			||||||
 | 
					                        "scanIntervalMillis": 0,
 | 
				
			||||||
 | 
					                        "percentUtilizationThreshold": 10,
 | 
				
			||||||
 | 
					                        "delayMillisecondsThreshold": 600,
 | 
				
			||||||
 | 
					                        "statsReportFormat": "RAW",
 | 
				
			||||||
 | 
					                        "radioType": "is5GHzU",
 | 
				
			||||||
 | 
					                        "serviceMetricDataType": "ApNode"
 | 
				
			||||||
 | 
					                    }
 | 
				
			||||||
 | 
					                ],
 | 
				
			||||||
 | 
					                "ApSsid": [
 | 
				
			||||||
 | 
					                    {
 | 
				
			||||||
 | 
					                        "model_type": "ServiceMetricRadioConfigParameters",
 | 
				
			||||||
 | 
					                        "samplingInterval": 30,
 | 
				
			||||||
 | 
					                        "reportingIntervalSeconds": 60,
 | 
				
			||||||
 | 
					                        "radioType": "is2dot4GHz",
 | 
				
			||||||
 | 
					                        "serviceMetricDataType": "ApSsid"
 | 
				
			||||||
 | 
					                    },
 | 
				
			||||||
 | 
					                    {
 | 
				
			||||||
 | 
					                        "model_type": "ServiceMetricRadioConfigParameters",
 | 
				
			||||||
 | 
					                        "samplingInterval": 30,
 | 
				
			||||||
 | 
					                        "reportingIntervalSeconds": 60,
 | 
				
			||||||
 | 
					                        "radioType": "is5GHzL",
 | 
				
			||||||
 | 
					                        "serviceMetricDataType": "ApSsid"
 | 
				
			||||||
 | 
					                    },
 | 
				
			||||||
 | 
					                    {
 | 
				
			||||||
 | 
					                        "model_type": "ServiceMetricRadioConfigParameters",
 | 
				
			||||||
 | 
					                        "samplingInterval": 30,
 | 
				
			||||||
 | 
					                        "reportingIntervalSeconds": 60,
 | 
				
			||||||
 | 
					                        "radioType": "is5GHzU",
 | 
				
			||||||
 | 
					                        "serviceMetricDataType": "ApSsid"
 | 
				
			||||||
 | 
					                    }
 | 
				
			||||||
 | 
					                ],
 | 
				
			||||||
 | 
					                "Client": [
 | 
				
			||||||
 | 
					                    {
 | 
				
			||||||
 | 
					                        "model_type": "ServiceMetricRadioConfigParameters",
 | 
				
			||||||
 | 
					                        "samplingInterval": 30,
 | 
				
			||||||
 | 
					                        "reportingIntervalSeconds": 60,
 | 
				
			||||||
 | 
					                        "radioType": "is2dot4GHz",
 | 
				
			||||||
 | 
					                        "serviceMetricDataType": "Client"
 | 
				
			||||||
 | 
					                    },
 | 
				
			||||||
 | 
					                    {
 | 
				
			||||||
 | 
					                        "model_type": "ServiceMetricRadioConfigParameters",
 | 
				
			||||||
 | 
					                        "samplingInterval": 30,
 | 
				
			||||||
 | 
					                        "reportingIntervalSeconds": 60,
 | 
				
			||||||
 | 
					                        "radioType": "is5GHzL",
 | 
				
			||||||
 | 
					                        "serviceMetricDataType": "Client"
 | 
				
			||||||
 | 
					                    },
 | 
				
			||||||
 | 
					                    {
 | 
				
			||||||
 | 
					                        "model_type": "ServiceMetricRadioConfigParameters",
 | 
				
			||||||
 | 
					                        "samplingInterval": 30,
 | 
				
			||||||
 | 
					                        "reportingIntervalSeconds": 60,
 | 
				
			||||||
 | 
					                        "radioType": "is5GHzU",
 | 
				
			||||||
 | 
					                        "serviceMetricDataType": "Client"
 | 
				
			||||||
 | 
					                    }
 | 
				
			||||||
 | 
					                ],
 | 
				
			||||||
 | 
					                "Channel": [
 | 
				
			||||||
 | 
					                    {
 | 
				
			||||||
 | 
					                        "model_type": "ServiceMetricSurveyConfigParameters",
 | 
				
			||||||
 | 
					                        "samplingInterval": 30,
 | 
				
			||||||
 | 
					                        "reportingIntervalSeconds": 60,
 | 
				
			||||||
 | 
					                        "channelSurveyType": "ON_CHANNEL",
 | 
				
			||||||
 | 
					                        "scanIntervalMillis": 0,
 | 
				
			||||||
 | 
					                        "percentUtilizationThreshold": 10,
 | 
				
			||||||
 | 
					                        "delayMillisecondsThreshold": 600,
 | 
				
			||||||
 | 
					                        "statsReportFormat": "RAW",
 | 
				
			||||||
 | 
					                        "radioType": "is5GHzL",
 | 
				
			||||||
 | 
					                        "serviceMetricDataType": "Channel"
 | 
				
			||||||
 | 
					                    },
 | 
				
			||||||
 | 
					                    {
 | 
				
			||||||
 | 
					                        "model_type": "ServiceMetricSurveyConfigParameters",
 | 
				
			||||||
 | 
					                        "samplingInterval": 30,
 | 
				
			||||||
 | 
					                        "reportingIntervalSeconds": 60,
 | 
				
			||||||
 | 
					                        "channelSurveyType": "ON_CHANNEL",
 | 
				
			||||||
 | 
					                        "scanIntervalMillis": 0,
 | 
				
			||||||
 | 
					                        "percentUtilizationThreshold": 10,
 | 
				
			||||||
 | 
					                        "delayMillisecondsThreshold": 600,
 | 
				
			||||||
 | 
					                        "statsReportFormat": "RAW",
 | 
				
			||||||
 | 
					                        "radioType": "is2dot4GHz",
 | 
				
			||||||
 | 
					                        "serviceMetricDataType": "Channel"
 | 
				
			||||||
 | 
					                    },
 | 
				
			||||||
 | 
					                    {
 | 
				
			||||||
 | 
					                        "model_type": "ServiceMetricSurveyConfigParameters",
 | 
				
			||||||
 | 
					                        "samplingInterval": 30,
 | 
				
			||||||
 | 
					                        "reportingIntervalSeconds": 60,
 | 
				
			||||||
 | 
					                        "channelSurveyType": "ON_CHANNEL",
 | 
				
			||||||
 | 
					                        "scanIntervalMillis": 0,
 | 
				
			||||||
 | 
					                        "percentUtilizationThreshold": 10,
 | 
				
			||||||
 | 
					                        "delayMillisecondsThreshold": 600,
 | 
				
			||||||
 | 
					                        "statsReportFormat": "RAW",
 | 
				
			||||||
 | 
					                        "radioType": "is5GHzU",
 | 
				
			||||||
 | 
					                        "serviceMetricDataType": "Channel"
 | 
				
			||||||
 | 
					                    },
 | 
				
			||||||
 | 
					                    {
 | 
				
			||||||
 | 
					                        "model_type": "ServiceMetricSurveyConfigParameters",
 | 
				
			||||||
 | 
					                        "samplingInterval": 30,
 | 
				
			||||||
 | 
					                        "reportingIntervalSeconds": 120,
 | 
				
			||||||
 | 
					                        "channelSurveyType": "OFF_CHANNEL",
 | 
				
			||||||
 | 
					                        "scanIntervalMillis": 0,
 | 
				
			||||||
 | 
					                        "percentUtilizationThreshold": 10,
 | 
				
			||||||
 | 
					                        "delayMillisecondsThreshold": 600,
 | 
				
			||||||
 | 
					                        "statsReportFormat": "RAW",
 | 
				
			||||||
 | 
					                        "radioType": "is5GHzL",
 | 
				
			||||||
 | 
					                        "serviceMetricDataType": "Channel"
 | 
				
			||||||
 | 
					                    },
 | 
				
			||||||
 | 
					                    {
 | 
				
			||||||
 | 
					                        "model_type": "ServiceMetricSurveyConfigParameters",
 | 
				
			||||||
 | 
					                        "samplingInterval": 30,
 | 
				
			||||||
 | 
					                        "reportingIntervalSeconds": 120,
 | 
				
			||||||
 | 
					                        "channelSurveyType": "OFF_CHANNEL",
 | 
				
			||||||
 | 
					                        "scanIntervalMillis": 0,
 | 
				
			||||||
 | 
					                        "percentUtilizationThreshold": 10,
 | 
				
			||||||
 | 
					                        "delayMillisecondsThreshold": 600,
 | 
				
			||||||
 | 
					                        "statsReportFormat": "RAW",
 | 
				
			||||||
 | 
					                        "radioType": "is2dot4GHz",
 | 
				
			||||||
 | 
					                        "serviceMetricDataType": "Channel"
 | 
				
			||||||
 | 
					                    },
 | 
				
			||||||
 | 
					                    {
 | 
				
			||||||
 | 
					                        "model_type": "ServiceMetricSurveyConfigParameters",
 | 
				
			||||||
 | 
					                        "samplingInterval": 30,
 | 
				
			||||||
 | 
					                        "reportingIntervalSeconds": 120,
 | 
				
			||||||
 | 
					                        "channelSurveyType": "OFF_CHANNEL",
 | 
				
			||||||
 | 
					                        "scanIntervalMillis": 0,
 | 
				
			||||||
 | 
					                        "percentUtilizationThreshold": 10,
 | 
				
			||||||
 | 
					                        "delayMillisecondsThreshold": 600,
 | 
				
			||||||
 | 
					                        "statsReportFormat": "RAW",
 | 
				
			||||||
 | 
					                        "radioType": "is5GHzU",
 | 
				
			||||||
 | 
					                        "serviceMetricDataType": "Channel"
 | 
				
			||||||
 | 
					                    }
 | 
				
			||||||
 | 
					                ],
 | 
				
			||||||
 | 
					                "Neighbour": [
 | 
				
			||||||
 | 
					                    {
 | 
				
			||||||
 | 
					                        "model_type": "ServiceMetricSurveyConfigParameters",
 | 
				
			||||||
 | 
					                        "samplingInterval": 30,
 | 
				
			||||||
 | 
					                        "reportingIntervalSeconds": 60,
 | 
				
			||||||
 | 
					                        "channelSurveyType": "ON_CHANNEL",
 | 
				
			||||||
 | 
					                        "scanIntervalMillis": 0,
 | 
				
			||||||
 | 
					                        "percentUtilizationThreshold": 10,
 | 
				
			||||||
 | 
					                        "delayMillisecondsThreshold": 600,
 | 
				
			||||||
 | 
					                        "statsReportFormat": "RAW",
 | 
				
			||||||
 | 
					                        "radioType": "is5GHzL",
 | 
				
			||||||
 | 
					                        "serviceMetricDataType": "Neighbour"
 | 
				
			||||||
 | 
					                    },
 | 
				
			||||||
 | 
					                    {
 | 
				
			||||||
 | 
					                        "model_type": "ServiceMetricSurveyConfigParameters",
 | 
				
			||||||
 | 
					                        "samplingInterval": 30,
 | 
				
			||||||
 | 
					                        "reportingIntervalSeconds": 60,
 | 
				
			||||||
 | 
					                        "channelSurveyType": "ON_CHANNEL",
 | 
				
			||||||
 | 
					                        "scanIntervalMillis": 0,
 | 
				
			||||||
 | 
					                        "percentUtilizationThreshold": 10,
 | 
				
			||||||
 | 
					                        "delayMillisecondsThreshold": 600,
 | 
				
			||||||
 | 
					                        "statsReportFormat": "RAW",
 | 
				
			||||||
 | 
					                        "radioType": "is2dot4GHz",
 | 
				
			||||||
 | 
					                        "serviceMetricDataType": "Neighbour"
 | 
				
			||||||
 | 
					                    },
 | 
				
			||||||
 | 
					                    {
 | 
				
			||||||
 | 
					                        "model_type": "ServiceMetricSurveyConfigParameters",
 | 
				
			||||||
 | 
					                        "samplingInterval": 30,
 | 
				
			||||||
 | 
					                        "reportingIntervalSeconds": 60,
 | 
				
			||||||
 | 
					                        "channelSurveyType": "ON_CHANNEL",
 | 
				
			||||||
 | 
					                        "scanIntervalMillis": 0,
 | 
				
			||||||
 | 
					                        "percentUtilizationThreshold": 10,
 | 
				
			||||||
 | 
					                        "delayMillisecondsThreshold": 600,
 | 
				
			||||||
 | 
					                        "statsReportFormat": "RAW",
 | 
				
			||||||
 | 
					                        "radioType": "is5GHzU",
 | 
				
			||||||
 | 
					                        "serviceMetricDataType": "Neighbour"
 | 
				
			||||||
 | 
					                    },
 | 
				
			||||||
 | 
					                    {
 | 
				
			||||||
 | 
					                        "model_type": "ServiceMetricSurveyConfigParameters",
 | 
				
			||||||
 | 
					                        "samplingInterval": 30,
 | 
				
			||||||
 | 
					                        "reportingIntervalSeconds": 120,
 | 
				
			||||||
 | 
					                        "channelSurveyType": "OFF_CHANNEL",
 | 
				
			||||||
 | 
					                        "scanIntervalMillis": 0,
 | 
				
			||||||
 | 
					                        "percentUtilizationThreshold": 10,
 | 
				
			||||||
 | 
					                        "delayMillisecondsThreshold": 600,
 | 
				
			||||||
 | 
					                        "statsReportFormat": "RAW",
 | 
				
			||||||
 | 
					                        "radioType": "is5GHzU",
 | 
				
			||||||
 | 
					                        "serviceMetricDataType": "Neighbour"
 | 
				
			||||||
 | 
					                    },
 | 
				
			||||||
 | 
					                    {
 | 
				
			||||||
 | 
					                        "model_type": "ServiceMetricSurveyConfigParameters",
 | 
				
			||||||
 | 
					                        "samplingInterval": 30,
 | 
				
			||||||
 | 
					                        "reportingIntervalSeconds": 120,
 | 
				
			||||||
 | 
					                        "channelSurveyType": "OFF_CHANNEL",
 | 
				
			||||||
 | 
					                        "scanIntervalMillis": 0,
 | 
				
			||||||
 | 
					                        "percentUtilizationThreshold": 10,
 | 
				
			||||||
 | 
					                        "delayMillisecondsThreshold": 600,
 | 
				
			||||||
 | 
					                        "statsReportFormat": "RAW",
 | 
				
			||||||
 | 
					                        "radioType": "is5GHzL",
 | 
				
			||||||
 | 
					                        "serviceMetricDataType": "Neighbour"
 | 
				
			||||||
 | 
					                    },
 | 
				
			||||||
 | 
					                    {
 | 
				
			||||||
 | 
					                        "model_type": "ServiceMetricSurveyConfigParameters",
 | 
				
			||||||
 | 
					                        "samplingInterval": 30,
 | 
				
			||||||
 | 
					                        "reportingIntervalSeconds": 120,
 | 
				
			||||||
 | 
					                        "channelSurveyType": "OFF_CHANNEL",
 | 
				
			||||||
 | 
					                        "scanIntervalMillis": 0,
 | 
				
			||||||
 | 
					                        "percentUtilizationThreshold": 10,
 | 
				
			||||||
 | 
					                        "delayMillisecondsThreshold": 600,
 | 
				
			||||||
 | 
					                        "statsReportFormat": "RAW",
 | 
				
			||||||
 | 
					                        "radioType": "is2dot4GHz",
 | 
				
			||||||
 | 
					                        "serviceMetricDataType": "Neighbour"
 | 
				
			||||||
 | 
					                    }
 | 
				
			||||||
 | 
					                ]
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					            "profileType": "metrics"
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					        "createdTimestamp": 1602113058699,
 | 
				
			||||||
 | 
					        "lastModifiedTimestamp": 1602113058699,
 | 
				
			||||||
 | 
					        "childProfileIds": []
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					]
 | 
				
			||||||
@@ -0,0 +1,36 @@
 | 
				
			|||||||
 | 
					[
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					        "model_type": "Profile",
 | 
				
			||||||
 | 
					        "id": 6,
 | 
				
			||||||
 | 
					        "customerId": 2,
 | 
				
			||||||
 | 
					        "profileType": "operator",
 | 
				
			||||||
 | 
					        "name": "TipWlan-Hotspot20-Operator",
 | 
				
			||||||
 | 
					        "details": {
 | 
				
			||||||
 | 
					            "model_type": "OperatorProfile",
 | 
				
			||||||
 | 
					            "serverOnlyAuthenticatedL2EncryptionNetwork": false,
 | 
				
			||||||
 | 
					            "x509CertificateLocation": "/etc/ca.pem",
 | 
				
			||||||
 | 
					            "operatorFriendlyName": [
 | 
				
			||||||
 | 
					                {
 | 
				
			||||||
 | 
					                    "model_type": "Hotspot20Duple",
 | 
				
			||||||
 | 
					                    "locale": "en_CA",
 | 
				
			||||||
 | 
					                    "dupleIso3Language": "eng",
 | 
				
			||||||
 | 
					                    "dupleName": "Default friendly operator name",
 | 
				
			||||||
 | 
					                    "defaultDupleSeparator": ":",
 | 
				
			||||||
 | 
					                    "asDuple": "eng:Default friendly operator name"
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                {
 | 
				
			||||||
 | 
					                    "model_type": "Hotspot20Duple",
 | 
				
			||||||
 | 
					                    "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": "operator"
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					        "createdTimestamp": 1602113058719,
 | 
				
			||||||
 | 
					        "lastModifiedTimestamp": 1602113058719,
 | 
				
			||||||
 | 
					        "childProfileIds": []
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					]
 | 
				
			||||||
@@ -1,34 +1,34 @@
 | 
				
			|||||||
[
 | 
					[
 | 
				
			||||||
{
 | 
					        {
 | 
				
			||||||
  "model_type": "Profile",
 | 
					            "model_type": "Profile",
 | 
				
			||||||
  "id": 1,
 | 
					            "id": 1,
 | 
				
			||||||
  "customerId": 2,
 | 
					            "customerId": 2,
 | 
				
			||||||
  "profileType": "radius",
 | 
					            "profileType": "radius",
 | 
				
			||||||
  "name": "RadiusProfileOttawa",
 | 
					            "name": "Radius-Profile",
 | 
				
			||||||
  "details": {
 | 
					            "details": {
 | 
				
			||||||
    "model_type": "RadiusProfile",
 | 
					                "model_type": "RadiusProfile",
 | 
				
			||||||
    "subnetConfiguration": null,
 | 
					                "subnetConfiguration": null,
 | 
				
			||||||
    "serviceRegionMap": {
 | 
					                "serviceRegionMap": {
 | 
				
			||||||
      "Ottawa": {
 | 
					                    "Ottawa": {
 | 
				
			||||||
        "model_type": "RadiusServiceRegion",
 | 
					                        "model_type": "RadiusServiceRegion",
 | 
				
			||||||
        "serverMap": {
 | 
					                        "serverMap": {
 | 
				
			||||||
          "RadiusProfileOttawa": [
 | 
					                            "Radius-Profile": [
 | 
				
			||||||
            {
 | 
					                                {
 | 
				
			||||||
              "model_type": "RadiusServer",
 | 
					                                    "model_type": "RadiusServer",
 | 
				
			||||||
              "ipAddress": "localhost",
 | 
					                                    "ipAddress": "192.168.0.1",
 | 
				
			||||||
              "secret": "testing123",
 | 
					                                    "secret": "testing123",
 | 
				
			||||||
              "authPort": 1812,
 | 
					                                    "authPort": 1812,
 | 
				
			||||||
              "timeout": null
 | 
					                                    "timeout": null
 | 
				
			||||||
            }
 | 
					                                }
 | 
				
			||||||
          ]
 | 
					                            ]
 | 
				
			||||||
        },
 | 
					                        },
 | 
				
			||||||
        "regionName": "Ottawa"
 | 
					                        "regionName": "Ottawa"
 | 
				
			||||||
      }
 | 
					                    }
 | 
				
			||||||
    },
 | 
					                },
 | 
				
			||||||
    "profileType": "radius"
 | 
					                "profileType": "radius"
 | 
				
			||||||
  },
 | 
					            },
 | 
				
			||||||
  "createdTimestamp": 1591653174195,
 | 
					            "createdTimestamp": 1601961451668,
 | 
				
			||||||
  "lastModifiedTimestamp": 1591653174195,
 | 
					            "lastModifiedTimestamp": 1601961451668,
 | 
				
			||||||
  "childProfileIds": []
 | 
					            "childProfileIds": []
 | 
				
			||||||
}
 | 
					        }
 | 
				
			||||||
]
 | 
					]
 | 
				
			||||||
@@ -0,0 +1,204 @@
 | 
				
			|||||||
 | 
					{
 | 
				
			||||||
 | 
					    "model_type": "Profile",
 | 
				
			||||||
 | 
					    "id": 13,
 | 
				
			||||||
 | 
					    "customerId": 2,
 | 
				
			||||||
 | 
					    "profileType": "rf",
 | 
				
			||||||
 | 
					    "name": "TipWlan-rf",
 | 
				
			||||||
 | 
					    "details": {
 | 
				
			||||||
 | 
					        "model_type": "RfConfiguration",
 | 
				
			||||||
 | 
					        "rfConfigMap": {
 | 
				
			||||||
 | 
					            "is5GHz": {
 | 
				
			||||||
 | 
					                "model_type": "RfElementConfiguration",
 | 
				
			||||||
 | 
					                "rf": "TipWlan-rf",
 | 
				
			||||||
 | 
					                "radioType": "is5GHz",
 | 
				
			||||||
 | 
					                "radioMode": "modeAC",
 | 
				
			||||||
 | 
					                "beaconInterval": 100,
 | 
				
			||||||
 | 
					                "forceScanDuringVoice": "disabled",
 | 
				
			||||||
 | 
					                "rtsCtsThreshold": 65535,
 | 
				
			||||||
 | 
					                "channelBandwidth": "is80MHz",
 | 
				
			||||||
 | 
					                "mimoMode": "twoByTwo",
 | 
				
			||||||
 | 
					                "maxNumClients": 100,
 | 
				
			||||||
 | 
					                "multicastRate": "auto",
 | 
				
			||||||
 | 
					                "autoChannelSelection": false,
 | 
				
			||||||
 | 
					                "activeScanSettings": {
 | 
				
			||||||
 | 
					                    "model_type": "ActiveScanSettings",
 | 
				
			||||||
 | 
					                    "enabled": true,
 | 
				
			||||||
 | 
					                    "scanFrequencySeconds": 10,
 | 
				
			||||||
 | 
					                    "scanDurationMillis": 65
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                "managementRate": "auto",
 | 
				
			||||||
 | 
					                "rxCellSizeDb": -90,
 | 
				
			||||||
 | 
					                "probeResponseThresholdDb": -90,
 | 
				
			||||||
 | 
					                "clientDisconnectThresholdDb": -90,
 | 
				
			||||||
 | 
					                "eirpTxPower": 18,
 | 
				
			||||||
 | 
					                "bestApEnabled": null,
 | 
				
			||||||
 | 
					                "neighbouringListApConfig": {
 | 
				
			||||||
 | 
					                    "model_type": "NeighbouringAPListConfiguration",
 | 
				
			||||||
 | 
					                    "minSignal": -85,
 | 
				
			||||||
 | 
					                    "maxAps": 25
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                "perimeterDetectionEnabled": true,
 | 
				
			||||||
 | 
					                "channelHopSettings": {
 | 
				
			||||||
 | 
					                    "model_type": "ChannelHopSettings",
 | 
				
			||||||
 | 
					                    "noiseFloorThresholdInDB": -75,
 | 
				
			||||||
 | 
					                    "noiseFloorThresholdTimeInSeconds": 180,
 | 
				
			||||||
 | 
					                    "nonWifiThresholdInPercentage": 50,
 | 
				
			||||||
 | 
					                    "nonWifiThresholdTimeInSeconds": 180,
 | 
				
			||||||
 | 
					                    "obssHopMode": "NON_WIFI"
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                "bestApSettings": {
 | 
				
			||||||
 | 
					                    "model_type": "RadioBestApSettings",
 | 
				
			||||||
 | 
					                    "mlComputed": true,
 | 
				
			||||||
 | 
					                    "dropInSnrPercentage": 30,
 | 
				
			||||||
 | 
					                    "minLoadFactor": 40
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                "minAutoCellSize": -65
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					            "is2dot4GHz": {
 | 
				
			||||||
 | 
					                "model_type": "RfElementConfiguration",
 | 
				
			||||||
 | 
					                "rf": "TipWlan-rf",
 | 
				
			||||||
 | 
					                "radioType": "is2dot4GHz",
 | 
				
			||||||
 | 
					                "radioMode": "modeN",
 | 
				
			||||||
 | 
					                "beaconInterval": 100,
 | 
				
			||||||
 | 
					                "forceScanDuringVoice": "disabled",
 | 
				
			||||||
 | 
					                "rtsCtsThreshold": 65535,
 | 
				
			||||||
 | 
					                "channelBandwidth": "is20MHz",
 | 
				
			||||||
 | 
					                "mimoMode": "twoByTwo",
 | 
				
			||||||
 | 
					                "maxNumClients": 100,
 | 
				
			||||||
 | 
					                "multicastRate": "auto",
 | 
				
			||||||
 | 
					                "autoChannelSelection": false,
 | 
				
			||||||
 | 
					                "activeScanSettings": {
 | 
				
			||||||
 | 
					                    "model_type": "ActiveScanSettings",
 | 
				
			||||||
 | 
					                    "enabled": true,
 | 
				
			||||||
 | 
					                    "scanFrequencySeconds": 10,
 | 
				
			||||||
 | 
					                    "scanDurationMillis": 65
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                "managementRate": "auto",
 | 
				
			||||||
 | 
					                "rxCellSizeDb": -90,
 | 
				
			||||||
 | 
					                "probeResponseThresholdDb": -90,
 | 
				
			||||||
 | 
					                "clientDisconnectThresholdDb": -90,
 | 
				
			||||||
 | 
					                "eirpTxPower": 18,
 | 
				
			||||||
 | 
					                "bestApEnabled": null,
 | 
				
			||||||
 | 
					                "neighbouringListApConfig": {
 | 
				
			||||||
 | 
					                    "model_type": "NeighbouringAPListConfiguration",
 | 
				
			||||||
 | 
					                    "minSignal": -85,
 | 
				
			||||||
 | 
					                    "maxAps": 25
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                "perimeterDetectionEnabled": true,
 | 
				
			||||||
 | 
					                "channelHopSettings": {
 | 
				
			||||||
 | 
					                    "model_type": "ChannelHopSettings",
 | 
				
			||||||
 | 
					                    "noiseFloorThresholdInDB": -75,
 | 
				
			||||||
 | 
					                    "noiseFloorThresholdTimeInSeconds": 180,
 | 
				
			||||||
 | 
					                    "nonWifiThresholdInPercentage": 50,
 | 
				
			||||||
 | 
					                    "nonWifiThresholdTimeInSeconds": 180,
 | 
				
			||||||
 | 
					                    "obssHopMode": "NON_WIFI"
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                "bestApSettings": {
 | 
				
			||||||
 | 
					                    "model_type": "RadioBestApSettings",
 | 
				
			||||||
 | 
					                    "mlComputed": true,
 | 
				
			||||||
 | 
					                    "dropInSnrPercentage": 20,
 | 
				
			||||||
 | 
					                    "minLoadFactor": 50
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                "minAutoCellSize": -65
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					            "is5GHzU": {
 | 
				
			||||||
 | 
					                "model_type": "RfElementConfiguration",
 | 
				
			||||||
 | 
					                "rf": "TipWlan-rf",
 | 
				
			||||||
 | 
					                "radioType": "is5GHzU",
 | 
				
			||||||
 | 
					                "radioMode": "modeAC",
 | 
				
			||||||
 | 
					                "beaconInterval": 100,
 | 
				
			||||||
 | 
					                "forceScanDuringVoice": "disabled",
 | 
				
			||||||
 | 
					                "rtsCtsThreshold": 65535,
 | 
				
			||||||
 | 
					                "channelBandwidth": "is80MHz",
 | 
				
			||||||
 | 
					                "mimoMode": "twoByTwo",
 | 
				
			||||||
 | 
					                "maxNumClients": 100,
 | 
				
			||||||
 | 
					                "multicastRate": "auto",
 | 
				
			||||||
 | 
					                "autoChannelSelection": false,
 | 
				
			||||||
 | 
					                "activeScanSettings": {
 | 
				
			||||||
 | 
					                    "model_type": "ActiveScanSettings",
 | 
				
			||||||
 | 
					                    "enabled": true,
 | 
				
			||||||
 | 
					                    "scanFrequencySeconds": 10,
 | 
				
			||||||
 | 
					                    "scanDurationMillis": 65
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                "managementRate": "auto",
 | 
				
			||||||
 | 
					                "rxCellSizeDb": -90,
 | 
				
			||||||
 | 
					                "probeResponseThresholdDb": -90,
 | 
				
			||||||
 | 
					                "clientDisconnectThresholdDb": -90,
 | 
				
			||||||
 | 
					                "eirpTxPower": 18,
 | 
				
			||||||
 | 
					                "bestApEnabled": null,
 | 
				
			||||||
 | 
					                "neighbouringListApConfig": {
 | 
				
			||||||
 | 
					                    "model_type": "NeighbouringAPListConfiguration",
 | 
				
			||||||
 | 
					                    "minSignal": -85,
 | 
				
			||||||
 | 
					                    "maxAps": 25
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                "perimeterDetectionEnabled": true,
 | 
				
			||||||
 | 
					                "channelHopSettings": {
 | 
				
			||||||
 | 
					                    "model_type": "ChannelHopSettings",
 | 
				
			||||||
 | 
					                    "noiseFloorThresholdInDB": -75,
 | 
				
			||||||
 | 
					                    "noiseFloorThresholdTimeInSeconds": 180,
 | 
				
			||||||
 | 
					                    "nonWifiThresholdInPercentage": 50,
 | 
				
			||||||
 | 
					                    "nonWifiThresholdTimeInSeconds": 180,
 | 
				
			||||||
 | 
					                    "obssHopMode": "NON_WIFI"
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                "bestApSettings": {
 | 
				
			||||||
 | 
					                    "model_type": "RadioBestApSettings",
 | 
				
			||||||
 | 
					                    "mlComputed": true,
 | 
				
			||||||
 | 
					                    "dropInSnrPercentage": 30,
 | 
				
			||||||
 | 
					                    "minLoadFactor": 40
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                "minAutoCellSize": -65
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					            "is5GHzL": {
 | 
				
			||||||
 | 
					                "model_type": "RfElementConfiguration",
 | 
				
			||||||
 | 
					                "rf": "TipWlan-rf",
 | 
				
			||||||
 | 
					                "radioType": "is5GHzL",
 | 
				
			||||||
 | 
					                "radioMode": "modeAC",
 | 
				
			||||||
 | 
					                "beaconInterval": 100,
 | 
				
			||||||
 | 
					                "forceScanDuringVoice": "disabled",
 | 
				
			||||||
 | 
					                "rtsCtsThreshold": 65535,
 | 
				
			||||||
 | 
					                "channelBandwidth": "is80MHz",
 | 
				
			||||||
 | 
					                "mimoMode": "twoByTwo",
 | 
				
			||||||
 | 
					                "maxNumClients": 100,
 | 
				
			||||||
 | 
					                "multicastRate": "auto",
 | 
				
			||||||
 | 
					                "autoChannelSelection": false,
 | 
				
			||||||
 | 
					                "activeScanSettings": {
 | 
				
			||||||
 | 
					                    "model_type": "ActiveScanSettings",
 | 
				
			||||||
 | 
					                    "enabled": true,
 | 
				
			||||||
 | 
					                    "scanFrequencySeconds": 10,
 | 
				
			||||||
 | 
					                    "scanDurationMillis": 65
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                "managementRate": "auto",
 | 
				
			||||||
 | 
					                "rxCellSizeDb": -90,
 | 
				
			||||||
 | 
					                "probeResponseThresholdDb": -90,
 | 
				
			||||||
 | 
					                "clientDisconnectThresholdDb": -90,
 | 
				
			||||||
 | 
					                "eirpTxPower": 18,
 | 
				
			||||||
 | 
					                "bestApEnabled": null,
 | 
				
			||||||
 | 
					                "neighbouringListApConfig": {
 | 
				
			||||||
 | 
					                    "model_type": "NeighbouringAPListConfiguration",
 | 
				
			||||||
 | 
					                    "minSignal": -85,
 | 
				
			||||||
 | 
					                    "maxAps": 25
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                "perimeterDetectionEnabled": true,
 | 
				
			||||||
 | 
					                "channelHopSettings": {
 | 
				
			||||||
 | 
					                    "model_type": "ChannelHopSettings",
 | 
				
			||||||
 | 
					                    "noiseFloorThresholdInDB": -75,
 | 
				
			||||||
 | 
					                    "noiseFloorThresholdTimeInSeconds": 180,
 | 
				
			||||||
 | 
					                    "nonWifiThresholdInPercentage": 50,
 | 
				
			||||||
 | 
					                    "nonWifiThresholdTimeInSeconds": 180,
 | 
				
			||||||
 | 
					                    "obssHopMode": "NON_WIFI"
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                "bestApSettings": {
 | 
				
			||||||
 | 
					                    "model_type": "RadioBestApSettings",
 | 
				
			||||||
 | 
					                    "mlComputed": true,
 | 
				
			||||||
 | 
					                    "dropInSnrPercentage": 30,
 | 
				
			||||||
 | 
					                    "minLoadFactor": 40
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                "minAutoCellSize": -65
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					        "profileType": "rf"
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "createdTimestamp": 1602182806063,
 | 
				
			||||||
 | 
					    "lastModifiedTimestamp": 1602182806063,
 | 
				
			||||||
 | 
					    "childProfileIds": []
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -1,184 +1,134 @@
 | 
				
			|||||||
[
 | 
					[
 | 
				
			||||||
{
 | 
						{
 | 
				
			||||||
  "model_type": "Profile",
 | 
							"model_type": "Profile",
 | 
				
			||||||
  "id": 6,
 | 
							"id": 5,
 | 
				
			||||||
  "customerId": 2,
 | 
							"customerId": 2,
 | 
				
			||||||
  "profileType": "ssid",
 | 
							"profileType": "ssid",
 | 
				
			||||||
  "name": "DefaultSsid-2g",
 | 
							"name": "TipWlan-cloud-hotspot-access",
 | 
				
			||||||
  "details": {
 | 
							"details": {
 | 
				
			||||||
    "model_type": "SsidConfiguration",
 | 
								"model_type": "SsidConfiguration",
 | 
				
			||||||
    "ssid": "Default-SSID-2g",
 | 
								"ssid": "TipWlan-cloud-hotspot-access",
 | 
				
			||||||
    "appliedRadios": [
 | 
								"appliedRadios": [
 | 
				
			||||||
      "is2dot4GHz"
 | 
									"is5GHzU",
 | 
				
			||||||
    ],
 | 
									"is5GHzL",
 | 
				
			||||||
    "ssidAdminState": "enabled",
 | 
									"is2dot4GHz"
 | 
				
			||||||
    "secureMode": "wpa2PSK",
 | 
								],
 | 
				
			||||||
    "vlanId": 1,
 | 
								"ssidAdminState": "enabled",
 | 
				
			||||||
    "keyStr": "12345678",
 | 
								"secureMode": "wpa2PSK",
 | 
				
			||||||
    "broadcastSsid": "enabled",
 | 
								"vlanId": 1,
 | 
				
			||||||
    "keyRefresh": 0,
 | 
								"keyStr": "testing123",
 | 
				
			||||||
    "noLocalSubnets": false,
 | 
								"broadcastSsid": "enabled",
 | 
				
			||||||
    "radiusServiceName": null,
 | 
								"keyRefresh": 0,
 | 
				
			||||||
    "captivePortalId": null,
 | 
								"noLocalSubnets": false,
 | 
				
			||||||
    "bandwidthLimitDown": 0,
 | 
								"radiusServiceName": null,
 | 
				
			||||||
    "bandwidthLimitUp": 0,
 | 
								"captivePortalId": null,
 | 
				
			||||||
    "videoTrafficOnly": false,
 | 
								"bandwidthLimitDown": 0,
 | 
				
			||||||
    "radioBasedConfigs": {
 | 
								"bandwidthLimitUp": 0,
 | 
				
			||||||
      "is5GHz": {
 | 
								"clientBandwidthLimitDown": 0,
 | 
				
			||||||
        "model_type": "RadioBasedSsidConfiguration",
 | 
								"clientBandwidthLimitUp": 0,
 | 
				
			||||||
        "enable80211r": null,
 | 
								"videoTrafficOnly": false,
 | 
				
			||||||
        "enable80211k": null,
 | 
								"radioBasedConfigs": {
 | 
				
			||||||
        "enable80211v": null
 | 
									"is5GHz": {
 | 
				
			||||||
      },
 | 
										"model_type": "RadioBasedSsidConfiguration",
 | 
				
			||||||
      "is2dot4GHz": {
 | 
										"enable80211r": null,
 | 
				
			||||||
        "model_type": "RadioBasedSsidConfiguration",
 | 
										"enable80211k": null,
 | 
				
			||||||
        "enable80211r": null,
 | 
										"enable80211v": null
 | 
				
			||||||
        "enable80211k": null,
 | 
									},
 | 
				
			||||||
        "enable80211v": null
 | 
									"is2dot4GHz": {
 | 
				
			||||||
      },
 | 
										"model_type": "RadioBasedSsidConfiguration",
 | 
				
			||||||
      "is5GHzU": {
 | 
										"enable80211r": null,
 | 
				
			||||||
        "model_type": "RadioBasedSsidConfiguration",
 | 
										"enable80211k": null,
 | 
				
			||||||
        "enable80211r": null,
 | 
										"enable80211v": null
 | 
				
			||||||
        "enable80211k": null,
 | 
									},
 | 
				
			||||||
        "enable80211v": null
 | 
									"is5GHzU": {
 | 
				
			||||||
      },
 | 
										"model_type": "RadioBasedSsidConfiguration",
 | 
				
			||||||
      "is5GHzL": {
 | 
										"enable80211r": null,
 | 
				
			||||||
        "model_type": "RadioBasedSsidConfiguration",
 | 
										"enable80211k": null,
 | 
				
			||||||
        "enable80211r": null,
 | 
										"enable80211v": null
 | 
				
			||||||
        "enable80211k": null,
 | 
									},
 | 
				
			||||||
        "enable80211v": null
 | 
									"is5GHzL": {
 | 
				
			||||||
      }
 | 
										"model_type": "RadioBasedSsidConfiguration",
 | 
				
			||||||
    },
 | 
										"enable80211r": null,
 | 
				
			||||||
    "bonjourGatewayProfileId": null,
 | 
										"enable80211k": null,
 | 
				
			||||||
    "enable80211w": null,
 | 
										"enable80211v": null
 | 
				
			||||||
    "wepConfig": null,
 | 
									}
 | 
				
			||||||
    "forwardMode": null,
 | 
								},
 | 
				
			||||||
    "profileType": "ssid"
 | 
								"bonjourGatewayProfileId": null,
 | 
				
			||||||
  },
 | 
								"enable80211w": null,
 | 
				
			||||||
  "createdTimestamp": 1591653239983,
 | 
								"wepConfig": null,
 | 
				
			||||||
  "lastModifiedTimestamp": 1591653239983,
 | 
								"forwardMode": null,
 | 
				
			||||||
  "childProfileIds": []
 | 
								"profileType": "ssid"
 | 
				
			||||||
},
 | 
							},
 | 
				
			||||||
{
 | 
							"createdTimestamp": 1602113058718,
 | 
				
			||||||
  "model_type": "Profile",
 | 
							"lastModifiedTimestamp": 1602113059547,
 | 
				
			||||||
  "id": 7,
 | 
							"childProfileIds": [
 | 
				
			||||||
  "customerId": 2,
 | 
								10
 | 
				
			||||||
  "profileType": "ssid",
 | 
							]
 | 
				
			||||||
  "name": "DefaultSsid-5gl",
 | 
						},
 | 
				
			||||||
  "details": {
 | 
						{
 | 
				
			||||||
    "model_type": "SsidConfiguration",
 | 
							"model_type": "Profile",
 | 
				
			||||||
    "ssid": "Default-SSID-5gl",
 | 
							"id": 11,
 | 
				
			||||||
    "appliedRadios": [
 | 
							"customerId": 2,
 | 
				
			||||||
      "is5GHzL"
 | 
							"profileType": "ssid",
 | 
				
			||||||
    ],
 | 
							"name": "TipWlan-cloud-3-radios",
 | 
				
			||||||
    "ssidAdminState": "enabled",
 | 
							"details": {
 | 
				
			||||||
    "secureMode": "wpaEAP",
 | 
								"model_type": "SsidConfiguration",
 | 
				
			||||||
    "vlanId": 1,
 | 
								"ssid": "TipWlan-cloud-3-radios",
 | 
				
			||||||
    "keyStr": "12345678",
 | 
								"appliedRadios": [
 | 
				
			||||||
    "broadcastSsid": "enabled",
 | 
									"is5GHzL",
 | 
				
			||||||
    "keyRefresh": 0,
 | 
									"is2dot4GHz",
 | 
				
			||||||
    "noLocalSubnets": false,
 | 
									"is5GHzU"
 | 
				
			||||||
    "radiusServiceName": "RadiusProfileOttawa",
 | 
								],
 | 
				
			||||||
    "captivePortalId": null,
 | 
								"ssidAdminState": "enabled",
 | 
				
			||||||
    "bandwidthLimitDown": 0,
 | 
								"secureMode": "open",
 | 
				
			||||||
    "bandwidthLimitUp": 0,
 | 
								"vlanId": 1,
 | 
				
			||||||
    "videoTrafficOnly": false,
 | 
								"keyStr": null,
 | 
				
			||||||
    "radioBasedConfigs": {
 | 
								"broadcastSsid": "enabled",
 | 
				
			||||||
      "is5GHz": {
 | 
								"keyRefresh": 0,
 | 
				
			||||||
        "model_type": "RadioBasedSsidConfiguration",
 | 
								"noLocalSubnets": false,
 | 
				
			||||||
        "enable80211r": null,
 | 
								"radiusServiceName": null,
 | 
				
			||||||
        "enable80211k": null,
 | 
								"captivePortalId": null,
 | 
				
			||||||
        "enable80211v": null
 | 
								"bandwidthLimitDown": 0,
 | 
				
			||||||
      },
 | 
								"bandwidthLimitUp": 0,
 | 
				
			||||||
      "is2dot4GHz": {
 | 
								"clientBandwidthLimitDown": 0,
 | 
				
			||||||
        "model_type": "RadioBasedSsidConfiguration",
 | 
								"clientBandwidthLimitUp": 0,
 | 
				
			||||||
        "enable80211r": null,
 | 
								"videoTrafficOnly": false,
 | 
				
			||||||
        "enable80211k": null,
 | 
								"radioBasedConfigs": {
 | 
				
			||||||
        "enable80211v": null
 | 
									"is5GHz": {
 | 
				
			||||||
      },
 | 
										"model_type": "RadioBasedSsidConfiguration",
 | 
				
			||||||
      "is5GHzU": {
 | 
										"enable80211r": null,
 | 
				
			||||||
        "model_type": "RadioBasedSsidConfiguration",
 | 
										"enable80211k": null,
 | 
				
			||||||
        "enable80211r": null,
 | 
										"enable80211v": null
 | 
				
			||||||
        "enable80211k": null,
 | 
									},
 | 
				
			||||||
        "enable80211v": null
 | 
									"is2dot4GHz": {
 | 
				
			||||||
      },
 | 
										"model_type": "RadioBasedSsidConfiguration",
 | 
				
			||||||
      "is5GHzL": {
 | 
										"enable80211r": null,
 | 
				
			||||||
        "model_type": "RadioBasedSsidConfiguration",
 | 
										"enable80211k": null,
 | 
				
			||||||
        "enable80211r": null,
 | 
										"enable80211v": null
 | 
				
			||||||
        "enable80211k": null,
 | 
									},
 | 
				
			||||||
        "enable80211v": null
 | 
									"is5GHzU": {
 | 
				
			||||||
      }
 | 
										"model_type": "RadioBasedSsidConfiguration",
 | 
				
			||||||
    },
 | 
										"enable80211r": null,
 | 
				
			||||||
    "bonjourGatewayProfileId": null,
 | 
										"enable80211k": null,
 | 
				
			||||||
    "enable80211w": null,
 | 
										"enable80211v": null
 | 
				
			||||||
    "wepConfig": null,
 | 
									},
 | 
				
			||||||
    "forwardMode": null,
 | 
									"is5GHzL": {
 | 
				
			||||||
    "profileType": "ssid"
 | 
										"model_type": "RadioBasedSsidConfiguration",
 | 
				
			||||||
  },
 | 
										"enable80211r": null,
 | 
				
			||||||
  "createdTimestamp": 1591653240017,
 | 
										"enable80211k": null,
 | 
				
			||||||
  "lastModifiedTimestamp": 1591654215374,
 | 
										"enable80211v": null
 | 
				
			||||||
  "childProfileIds": [
 | 
									}
 | 
				
			||||||
    1
 | 
								},
 | 
				
			||||||
  ]
 | 
								"bonjourGatewayProfileId": null,
 | 
				
			||||||
},
 | 
								"enable80211w": null,
 | 
				
			||||||
{
 | 
								"wepConfig": null,
 | 
				
			||||||
  "model_type": "Profile",
 | 
								"forwardMode": null,
 | 
				
			||||||
  "id": 8,
 | 
								"profileType": "ssid"
 | 
				
			||||||
  "customerId": 2,
 | 
							},
 | 
				
			||||||
  "profileType": "ssid",
 | 
							"createdTimestamp": 1602183994766,
 | 
				
			||||||
  "name": "DefaultSsid-5gu",
 | 
							"lastModifiedTimestamp": 1602183994766,
 | 
				
			||||||
  "details": {
 | 
							"childProfileIds": [
 | 
				
			||||||
    "model_type": "SsidConfiguration",
 | 
								10
 | 
				
			||||||
    "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": []
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
]
 | 
					 | 
				
			||||||
 
 | 
				
			|||||||
@@ -0,0 +1,42 @@
 | 
				
			|||||||
 | 
					[
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        "model_type": "Profile",
 | 
				
			||||||
 | 
					        "id": 7,
 | 
				
			||||||
 | 
					        "customerId": 2,
 | 
				
			||||||
 | 
					        "profileType": "venue",
 | 
				
			||||||
 | 
					        "name": "TipWlan-Hotspot20-Venue",
 | 
				
			||||||
 | 
					        "details": {
 | 
				
			||||||
 | 
					            "model_type": "VenueProfile",
 | 
				
			||||||
 | 
					            "venueNameSet": [
 | 
				
			||||||
 | 
					                {
 | 
				
			||||||
 | 
					                    "model_type": "VenueName",
 | 
				
			||||||
 | 
					                    "locale": "fr_CA",
 | 
				
			||||||
 | 
					                    "dupleIso3Language": "fra",
 | 
				
			||||||
 | 
					                    "dupleName": "Exemple de lieu",
 | 
				
			||||||
 | 
					                    "defaultDupleSeparator": ":",
 | 
				
			||||||
 | 
					                    "venueUrl": "http://www.example.com/info-fra",
 | 
				
			||||||
 | 
					                    "asDuple": "fra:Exemple de lieu"
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                {
 | 
				
			||||||
 | 
					                    "model_type": "VenueName",
 | 
				
			||||||
 | 
					                    "locale": "en_CA",
 | 
				
			||||||
 | 
					                    "dupleIso3Language": "eng",
 | 
				
			||||||
 | 
					                    "dupleName": "Example venue",
 | 
				
			||||||
 | 
					                    "defaultDupleSeparator": ":",
 | 
				
			||||||
 | 
					                    "venueUrl": "http://www.example.com/info-eng",
 | 
				
			||||||
 | 
					                    "asDuple": "eng:Example venue"
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					            ],
 | 
				
			||||||
 | 
					            "venueTypeAssignment": {
 | 
				
			||||||
 | 
					                "model_type": "VenueTypeAssignment",
 | 
				
			||||||
 | 
					                "venueDescription": "Research and Development Facility",
 | 
				
			||||||
 | 
					                "venueGroupId": 2,
 | 
				
			||||||
 | 
					                "venueTypeId": 8
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					            "profileType": "venue"
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					        "createdTimestamp": 1602113058725,
 | 
				
			||||||
 | 
					        "lastModifiedTimestamp": 1602113058725,
 | 
				
			||||||
 | 
					        "childProfileIds": []
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					]
 | 
				
			||||||
@@ -57,7 +57,6 @@
 | 
				
			|||||||
  <logger name="org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainer" level="INFO"/>
 | 
					  <logger name="org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainer" level="INFO"/>
 | 
				
			||||||
  
 | 
					  
 | 
				
			||||||
  <logger name="com.telecominfraproject.wlan" level="DEBUG"/>
 | 
					  <logger name="com.telecominfraproject.wlan" level="DEBUG"/>
 | 
				
			||||||
  <logger name="ai.connectus" level="DEBUG"/>
 | 
					 | 
				
			||||||
  <logger name="com.netflix.servo.tag.aws.AwsInjectableTag" level="OFF"/>
 | 
					  <logger name="com.netflix.servo.tag.aws.AwsInjectableTag" level="OFF"/>
 | 
				
			||||||
  <logger name="com.vmware.ovsdb.service.OvsdbConnectionInfo" level="OFF"/>
 | 
					  <logger name="com.vmware.ovsdb.service.OvsdbConnectionInfo" level="OFF"/>
 | 
				
			||||||
  <logger name="com.vmware.ovsdb.netty.OvsdbConnectionHandler" level="ERROR"/>
 | 
					  <logger name="com.vmware.ovsdb.netty.OvsdbConnectionHandler" level="ERROR"/>
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -10,33 +10,44 @@ CLIENT_MQTT_SSL_PROPS+=" -Djavax.net.ssl.keyStore=/opt/tip-wlan/certs/client_key
 | 
				
			|||||||
CLIENT_MQTT_SSL_PROPS+=" -Djavax.net.ssl.keyStorePassword=mypassword"
 | 
					CLIENT_MQTT_SSL_PROPS+=" -Djavax.net.ssl.keyStorePassword=mypassword"
 | 
				
			||||||
CLIENT_MQTT_SSL_PROPS+=" -Djavax.net.ssl.trustStore=/opt/tip-wlan/certs/truststore.jks"
 | 
					CLIENT_MQTT_SSL_PROPS+=" -Djavax.net.ssl.trustStore=/opt/tip-wlan/certs/truststore.jks"
 | 
				
			||||||
CLIENT_MQTT_SSL_PROPS+=" -Djavax.net.ssl.trustStorePassword=mypassword"
 | 
					CLIENT_MQTT_SSL_PROPS+=" -Djavax.net.ssl.trustStorePassword=mypassword"
 | 
				
			||||||
CLIENT_MQTT_SSL_PROPS+=" -Dconnectus.mqttBroker.password=admin"
 | 
					CLIENT_MQTT_SSL_PROPS+=" -Dtip.wlan.mqttBroker.password=admin"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
OVSDB_PROPS=" "
 | 
					OVSDB_PROPS=" "
 | 
				
			||||||
OVSDB_PROPS+=" -Dconnectus.ovsdb.managerAddr=opensync-controller"
 | 
					OVSDB_PROPS+=" -Dtip.wlan.ovsdb.managerAddr=opensync-controller"
 | 
				
			||||||
OVSDB_PROPS+=" -Dconnectus.ovsdb.listenPort=6640 "
 | 
					OVSDB_PROPS+=" -Dtip.wlan.ovsdb.listenPort=6640 "
 | 
				
			||||||
OVSDB_PROPS+=" -Dconnectus.ovsdb.redirector.listenPort=6643"
 | 
					OVSDB_PROPS+=" -Dtip.wlan.ovsdb.redirector.listenPort=6643"
 | 
				
			||||||
OVSDB_PROPS+=" -Dconnectus.ovsdb.timeoutSec=30"
 | 
					OVSDB_PROPS+=" -Dtip.wlan.ovsdb.timeoutSec=30"
 | 
				
			||||||
OVSDB_PROPS+=" -Dconnectus.ovsdb.trustStore=/opt/tip-wlan/certs/truststore.jks"
 | 
					OVSDB_PROPS+=" -Dtip.wlan.ovsdb.trustStore=/opt/tip-wlan/certs/truststore.jks"
 | 
				
			||||||
OVSDB_PROPS+=" -Dconnectus.ovsdb.keyStore=/opt/tip-wlan/certs/server.pkcs12"
 | 
					OVSDB_PROPS+=" -Dtip.wlan.ovsdb.keyStore=/opt/tip-wlan/certs/server.pkcs12"
 | 
				
			||||||
OVSDB_PROPS+=" -Dconnectus.ovsdb.customerEquipmentFileName=$OVSDB_EQUIPMENT_CONFIG_FILE"
 | 
					OVSDB_PROPS+=" -Dtip.wlan.ovsdb.customerEquipmentFileName=$OVSDB_EQUIPMENT_CONFIG_FILE"
 | 
				
			||||||
OVSDB_PROPS+=" -Dconnectus.ovsdb.apProfileFileName=$OVSDB_APPROFILE_CONFIG_FILE"
 | 
					OVSDB_PROPS+=" -Dtip.wlan.ovsdb.apProfileFileName=$OVSDB_APPROFILE_CONFIG_FILE"
 | 
				
			||||||
OVSDB_PROPS+=" -Dconnectus.ovsdb.ssidProfileFileName=$OVSDB_SSIDPROFILE_CONFIG_FILE"
 | 
					OVSDB_PROPS+=" -Dtip.wlan.ovsdb.metricsProfileFileName=$OVSDB_METRICSPROFILE_CONFIG_FILE"
 | 
				
			||||||
OVSDB_PROPS+=" -Dconnectus.ovsdb.radiusProfileFileName=$OVSDB_RADIUSPROFILE_CONFIG_FILE"
 | 
					OVSDB_PROPS+=" -Dtip.wlan.ovsdb.hotspot20ProfileFileName=$OVSDB_HOTSPOT20PROFILE_CONFIG_FILE"
 | 
				
			||||||
OVSDB_PROPS+=" -Dconnectus.ovsdb.locationFileName=$OVSDB_LOCATION_CONFIG_FILE"
 | 
					OVSDB_PROPS+=" -Dtip.wlan.ovsdb.operatorProfileFileName=$OVSDB_OPERATORPROFILE_CONFIG_FILE"
 | 
				
			||||||
OVSDB_PROPS+=" -Dconnectus.ovsdb.wifi-iface.default_bridge=$OVSDB_IF_DEFAULT_BRIDGE"
 | 
					OVSDB_PROPS+=" -Dtip.wlan.ovsdb.venueProfileFileName=$OVSDB_VENUEPROFILE_CONFIG_FILE"
 | 
				
			||||||
OVSDB_PROPS+=" -Dconnectus.ovsdb.wifi-iface.default_radio0=$OVSDB_IF_DEFAULT_RADIO_0"
 | 
					OVSDB_PROPS+=" -Dtip.wlan.ovsdb.idProviderProfileFileName=$OVSDB_IDPROVIDERPROFILE_CONFIG_FILE"
 | 
				
			||||||
OVSDB_PROPS+=" -Dconnectus.ovsdb.wifi-iface.default_radio1=$OVSDB_IF_DEFAULT_RADIO_1"
 | 
					OVSDB_PROPS+=" -Dtip.wlan.ovsdb.rfProfileFileName=$OVSDB_RFPROFILE_CONFIG_FILE"
 | 
				
			||||||
OVSDB_PROPS+=" -Dconnectus.ovsdb.wifi-iface.default_radio2=$OVSDB_IF_DEFAULT_RADIO_2"
 | 
					OVSDB_PROPS+=" -Dtip.wlan.ovsdb.ssidProfileFileName=$OVSDB_SSIDPROFILE_CONFIG_FILE"
 | 
				
			||||||
OVSDB_PROPS+=" -Dconnectus.ovsdb.wifi-device.radio0=$OVSDB_DEVICE_RADIO_0"
 | 
					OVSDB_PROPS+=" -Dtip.wlan.preventClientCnAlteration=$OVSDB_PREVENT_CLIENTCN_ALTERATION"
 | 
				
			||||||
OVSDB_PROPS+=" -Dconnectus.ovsdb.wifi-device.radio1=$OVSDB_DEVICE_RADIO_1"
 | 
					OVSDB_PROPS+=" -Dtip.wlan.ovsdb.radiusProfileFileName=$OVSDB_RADIUSPROFILE_CONFIG_FILE"
 | 
				
			||||||
OVSDB_PROPS+=" -Dconnectus.ovsdb.wifi-device.radio2=$OVSDB_DEVICE_RADIO_2"
 | 
					OVSDB_PROPS+=" -Dtip.wlan.ovsdb.captiveProfileFileName=$OVSDB_CAPTIVEPROFILE_CONFIG_FILE"
 | 
				
			||||||
 | 
					OVSDB_PROPS+=" -Dtip.wlan.ovsdb.bonjourProfileFileName=$OVSDB_BONJOURPROFILE_CONFIG_FILE"
 | 
				
			||||||
 | 
					OVSDB_PROPS+=" -Dtip.wlan.ovsdb.locationFileName=$OVSDB_LOCATION_CONFIG_FILE"
 | 
				
			||||||
 | 
					OVSDB_PROPS+=" -Dtip.wlan.ovsdb.wifi-iface.default_bridge=$OVSDB_IF_DEFAULT_BRIDGE"
 | 
				
			||||||
 | 
					OVSDB_PROPS+=" -Dtip.wlan.ovsdb.wifi-iface.default_wan_type=$OVSDB_DEVICE_DEFAULT_WAN_TYPE"
 | 
				
			||||||
 | 
					OVSDB_PROPS+=" -Dtip.wlan.ovsdb.wifi-iface.default_wan_name=$OVSDB_DEVICE_DEFAULT_WAN_NAME"
 | 
				
			||||||
 | 
					OVSDB_PROPS+=" -Dtip.wlan.ovsdb.wifi-iface.default_lan_type=$OVSDB_DEVICE_DEFAULT_LAN_TYPE"
 | 
				
			||||||
 | 
					OVSDB_PROPS+=" -Dtip.wlan.ovsdb.wifi-iface.default_lan_name=$OVSDB_DEVICE_DEFAULT_LAN_NAME"
 | 
				
			||||||
 | 
					OVSDB_PROPS+=" -Dtip.wlan.ovsdb.wifi-iface.default_radio0=$OVSDB_IF_DEFAULT_RADIO_0"
 | 
				
			||||||
 | 
					OVSDB_PROPS+=" -Dtip.wlan.ovsdb.wifi-iface.default_radio1=$OVSDB_IF_DEFAULT_RADIO_1"
 | 
				
			||||||
 | 
					OVSDB_PROPS+=" -Dtip.wlan.ovsdb.wifi-iface.default_radio2=$OVSDB_IF_DEFAULT_RADIO_2"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
echo OVSDB_PROPS $OVSDB_PROPS
 | 
					echo OVSDB_PROPS $OVSDB_PROPS
 | 
				
			||||||
 | 
					
 | 
				
			||||||
MQTT_PROPS=" "
 | 
					MQTT_PROPS=" "
 | 
				
			||||||
MQTT_PROPS+=" -Dconnectus.mqttBroker.address=tip-wlan-opensync-mqtt-broker"
 | 
					MQTT_PROPS+=" -Dtip.wlan.mqttBroker.address.internal=tip-wlan-opensync-mqtt-broker-internal"
 | 
				
			||||||
MQTT_PROPS+=" -Dconnectus.mqttBroker.listenPort=1883"
 | 
					MQTT_PROPS+=" -Dtip.wlan.mqttBroker.address.external=tip-wlan-opensync-mqtt-broker-external"
 | 
				
			||||||
 | 
					MQTT_PROPS+=" -Dtip.wlan.mqttBroker.listenPort=1883"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
LOGGING_PROPS=" -Dlogging.config=file:/app/opensync/logback.xml"
 | 
					LOGGING_PROPS=" -Dlogging.config=file:/app/opensync/logback.xml"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -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"
 | 
					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
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -38,37 +38,28 @@
 | 
				
			|||||||
        "channelNumber": 6,
 | 
					        "channelNumber": 6,
 | 
				
			||||||
        "manualChannelNumber": 6,
 | 
					        "manualChannelNumber": 6,
 | 
				
			||||||
        "backupChannelNumber": 11,
 | 
					        "backupChannelNumber": 11,
 | 
				
			||||||
        "autoChannelSelection": false,
 | 
					 | 
				
			||||||
        "channelBandwidth": "is20MHz",
 | 
					 | 
				
			||||||
        "bannedChannels": [],
 | 
					        "bannedChannels": [],
 | 
				
			||||||
        "allowedChannels": [],
 | 
					        "allowedChannels": [],
 | 
				
			||||||
        "rxCellSizeDb": {
 | 
					        "rxCellSizeDb": {
 | 
				
			||||||
          "model_type": "AutoOrManualValue",
 | 
					          "model_type": "SourceSelectionValue",
 | 
				
			||||||
          "auto": true,
 | 
					        "source": "auto",
 | 
				
			||||||
          "value": -90
 | 
					          "value": -90
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        "probeResponseThresholdDb": {
 | 
					        "probeResponseThresholdDb": {
 | 
				
			||||||
          "model_type": "AutoOrManualValue",
 | 
					          "model_type": "SourceSelectionValue",
 | 
				
			||||||
          "auto": true,
 | 
					        "source": "auto",
 | 
				
			||||||
          "value": -90
 | 
					          "value": -90
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        "clientDisconnectThresholdDb": {
 | 
					        "clientDisconnectThresholdDb": {
 | 
				
			||||||
          "model_type": "AutoOrManualValue",
 | 
					          "model_type": "SourceSelectionValue",
 | 
				
			||||||
          "auto": true,
 | 
					        	 "source": "auto",
 | 
				
			||||||
          "value": -90
 | 
					          "value": -90
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        "eirpTxPower": {
 | 
					        "eirpTxPower": {
 | 
				
			||||||
          "model_type": "AutoOrManualValue",
 | 
					          "model_type": "SourceSelectionValue",
 | 
				
			||||||
          "auto": false,
 | 
					        	 "source": "auto",
 | 
				
			||||||
          "value": 32
 | 
					          "value": 32
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        "bestApEnabled": null,
 | 
					 | 
				
			||||||
        "neighbouringListApConfig": {
 | 
					 | 
				
			||||||
          "model_type": "NeighbouringAPListConfiguration",
 | 
					 | 
				
			||||||
          "minSignal": -85,
 | 
					 | 
				
			||||||
          "maxAps": 25
 | 
					 | 
				
			||||||
        },
 | 
					 | 
				
			||||||
        "minAutoCellSize": -80,
 | 
					 | 
				
			||||||
        "perimeterDetectionEnabled": true,
 | 
					        "perimeterDetectionEnabled": true,
 | 
				
			||||||
        "bestAPSteerType": "both",
 | 
					        "bestAPSteerType": "both",
 | 
				
			||||||
        "deauthAttackDetection": null,
 | 
					        "deauthAttackDetection": null,
 | 
				
			||||||
@@ -81,37 +72,28 @@
 | 
				
			|||||||
        "channelNumber": 149,
 | 
					        "channelNumber": 149,
 | 
				
			||||||
        "manualChannelNumber": 149,
 | 
					        "manualChannelNumber": 149,
 | 
				
			||||||
        "backupChannelNumber": 154,
 | 
					        "backupChannelNumber": 154,
 | 
				
			||||||
        "autoChannelSelection": false,
 | 
					 | 
				
			||||||
        "channelBandwidth": "is80MHz",
 | 
					 | 
				
			||||||
        "bannedChannels": [],
 | 
					        "bannedChannels": [],
 | 
				
			||||||
        "allowedChannels": [],
 | 
					        "allowedChannels": [],
 | 
				
			||||||
        "rxCellSizeDb": {
 | 
					        "rxCellSizeDb": {
 | 
				
			||||||
          "model_type": "AutoOrManualValue",
 | 
					          "model_type": "SourceSelectionValue",
 | 
				
			||||||
          "auto": true,
 | 
					        	 "source": "auto",
 | 
				
			||||||
          "value": -90
 | 
					          "value": -90
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        "probeResponseThresholdDb": {
 | 
					        "probeResponseThresholdDb": {
 | 
				
			||||||
          "model_type": "AutoOrManualValue",
 | 
					          "model_type": "SourceSelectionValue",
 | 
				
			||||||
          "auto": true,
 | 
					        	 "source": "auto",
 | 
				
			||||||
          "value": -90
 | 
					          "value": -90
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        "clientDisconnectThresholdDb": {
 | 
					        "clientDisconnectThresholdDb": {
 | 
				
			||||||
          "model_type": "AutoOrManualValue",
 | 
					          "model_type": "SourceSelectionValue",
 | 
				
			||||||
          "auto": true,
 | 
					        	 "source": "auto",
 | 
				
			||||||
          "value": -90
 | 
					          "value": -90
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        "eirpTxPower": {
 | 
					        "eirpTxPower": {
 | 
				
			||||||
          "model_type": "AutoOrManualValue",
 | 
					          "model_type": "SourceSelectionValue",
 | 
				
			||||||
          "auto": false,
 | 
					        	 "source": "auto",
 | 
				
			||||||
          "value": 32
 | 
					          "value": 32
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        "bestApEnabled": null,
 | 
					 | 
				
			||||||
        "neighbouringListApConfig": {
 | 
					 | 
				
			||||||
          "model_type": "NeighbouringAPListConfiguration",
 | 
					 | 
				
			||||||
          "minSignal": -85,
 | 
					 | 
				
			||||||
          "maxAps": 25
 | 
					 | 
				
			||||||
        },
 | 
					 | 
				
			||||||
        "minAutoCellSize": -80,
 | 
					 | 
				
			||||||
        "perimeterDetectionEnabled": true,
 | 
					        "perimeterDetectionEnabled": true,
 | 
				
			||||||
        "bestAPSteerType": "both",
 | 
					        "bestAPSteerType": "both",
 | 
				
			||||||
        "deauthAttackDetection": null,
 | 
					        "deauthAttackDetection": null,
 | 
				
			||||||
@@ -124,37 +106,28 @@
 | 
				
			|||||||
        "channelNumber": 36,
 | 
					        "channelNumber": 36,
 | 
				
			||||||
        "manualChannelNumber": 36,
 | 
					        "manualChannelNumber": 36,
 | 
				
			||||||
        "backupChannelNumber": 44,
 | 
					        "backupChannelNumber": 44,
 | 
				
			||||||
        "autoChannelSelection": false,
 | 
					 | 
				
			||||||
        "channelBandwidth": "is80MHz",
 | 
					 | 
				
			||||||
        "bannedChannels": [],
 | 
					        "bannedChannels": [],
 | 
				
			||||||
        "allowedChannels": [],
 | 
					        "allowedChannels": [],
 | 
				
			||||||
        "rxCellSizeDb": {
 | 
					        "rxCellSizeDb": {
 | 
				
			||||||
          "model_type": "AutoOrManualValue",
 | 
					          "model_type": "SourceSelectionValue",
 | 
				
			||||||
          "auto": true,
 | 
					        	 "source": "auto",
 | 
				
			||||||
          "value": -90
 | 
					          "value": -90
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        "probeResponseThresholdDb": {
 | 
					        "probeResponseThresholdDb": {
 | 
				
			||||||
          "model_type": "AutoOrManualValue",
 | 
					          "model_type": "SourceSelectionValue",
 | 
				
			||||||
          "auto": true,
 | 
					        	 "source": "auto",
 | 
				
			||||||
          "value": -90
 | 
					          "value": -90
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        "clientDisconnectThresholdDb": {
 | 
					        "clientDisconnectThresholdDb": {
 | 
				
			||||||
          "model_type": "AutoOrManualValue",
 | 
					          "model_type": "SourceSelectionValue",
 | 
				
			||||||
          "auto": true,
 | 
					        	 "source": "auto",
 | 
				
			||||||
          "value": -90
 | 
					          "value": -90
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        "eirpTxPower": {
 | 
					        "eirpTxPower": {
 | 
				
			||||||
          "model_type": "AutoOrManualValue",
 | 
					          "model_type": "SourceSelectionValue",
 | 
				
			||||||
          "auto": false,
 | 
					        	 "source": "auto",
 | 
				
			||||||
          "value": 32
 | 
					          "value": 32
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        "bestApEnabled": null,
 | 
					 | 
				
			||||||
        "neighbouringListApConfig": {
 | 
					 | 
				
			||||||
          "model_type": "NeighbouringAPListConfiguration",
 | 
					 | 
				
			||||||
          "minSignal": -85,
 | 
					 | 
				
			||||||
          "maxAps": 25
 | 
					 | 
				
			||||||
        },
 | 
					 | 
				
			||||||
        "minAutoCellSize": -80,
 | 
					 | 
				
			||||||
        "perimeterDetectionEnabled": true,
 | 
					        "perimeterDetectionEnabled": true,
 | 
				
			||||||
        "bestAPSteerType": "both",
 | 
					        "bestAPSteerType": "both",
 | 
				
			||||||
        "deauthAttackDetection": null,
 | 
					        "deauthAttackDetection": null,
 | 
				
			||||||
@@ -168,39 +141,24 @@
 | 
				
			|||||||
        "radioType": "is2dot4GHz",
 | 
					        "radioType": "is2dot4GHz",
 | 
				
			||||||
        "radioAdminState": "enabled",
 | 
					        "radioAdminState": "enabled",
 | 
				
			||||||
        "fragmentationThresholdBytes": 2346,
 | 
					        "fragmentationThresholdBytes": 2346,
 | 
				
			||||||
        "rtsCtsThreshold": 65535,
 | 
					 | 
				
			||||||
        "autoChannelSelection": "disabled",
 | 
					 | 
				
			||||||
        "radioMode": "modeN",
 | 
					 | 
				
			||||||
        "mimoMode": "twoByTwo",
 | 
					 | 
				
			||||||
        "wmmState": "enabled",
 | 
					 | 
				
			||||||
        "uapsdState": "enabled",
 | 
					        "uapsdState": "enabled",
 | 
				
			||||||
        "maxNumClients": 100,
 | 
					 | 
				
			||||||
        "stationIsolation": "disabled",
 | 
					        "stationIsolation": "disabled",
 | 
				
			||||||
        "multicastRate": "auto",
 | 
					        "managementRate": {
 | 
				
			||||||
        "managementRate": "auto",
 | 
					          "model_type": "SourceSelectionManagement",
 | 
				
			||||||
        "activeScanSettings": {
 | 
					          "source": "auto",
 | 
				
			||||||
          "model_type": "ActiveScanSettings",
 | 
					          "value": "auto"
 | 
				
			||||||
          "enabled": true,
 | 
					 | 
				
			||||||
          "scanFrequencySeconds": 10,
 | 
					 | 
				
			||||||
          "scanDurationMillis": 65
 | 
					 | 
				
			||||||
        },
 | 
					 | 
				
			||||||
        "channelHopSettings": {
 | 
					 | 
				
			||||||
          "model_type": "ChannelHopSettings",
 | 
					 | 
				
			||||||
          "noiseFloorThresholdInDB": -75,
 | 
					 | 
				
			||||||
          "noiseFloorThresholdTimeInSeconds": 180,
 | 
					 | 
				
			||||||
          "nonWifiThresholdInPercentage": 50,
 | 
					 | 
				
			||||||
          "nonWifiThresholdTimeInSeconds": 180,
 | 
					 | 
				
			||||||
          "obssHopMode": "NON_WIFI"
 | 
					 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        "bestApSettings": {
 | 
					        "bestApSettings": {
 | 
				
			||||||
          "model_type": "RadioBestApSettings",
 | 
					        "model_type": "SourceSelectionSteering",
 | 
				
			||||||
          "mlComputed": true,
 | 
					          "source": "auto",
 | 
				
			||||||
          "dropInSnrPercentage": 20,
 | 
					          "value": {
 | 
				
			||||||
          "minLoadFactor": 50
 | 
						          "model_type": "RadioBestApSettings",
 | 
				
			||||||
 | 
						          "mlComputed": true,
 | 
				
			||||||
 | 
						          "dropInSnrPercentage": 30,
 | 
				
			||||||
 | 
						          "minLoadFactor": 40
 | 
				
			||||||
 | 
					          }
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        "forceScanDuringVoice": "disabled",
 | 
					 | 
				
			||||||
        "legacyBSSRate": "enabled",
 | 
					        "legacyBSSRate": "enabled",
 | 
				
			||||||
        "beaconInterval": 100,
 | 
					 | 
				
			||||||
        "deauthAttackDetection": null
 | 
					        "deauthAttackDetection": null
 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      "is5GHzU": {
 | 
					      "is5GHzU": {
 | 
				
			||||||
@@ -208,39 +166,24 @@
 | 
				
			|||||||
        "radioType": "is5GHzU",
 | 
					        "radioType": "is5GHzU",
 | 
				
			||||||
        "radioAdminState": "enabled",
 | 
					        "radioAdminState": "enabled",
 | 
				
			||||||
        "fragmentationThresholdBytes": 2346,
 | 
					        "fragmentationThresholdBytes": 2346,
 | 
				
			||||||
        "rtsCtsThreshold": 65535,
 | 
					 | 
				
			||||||
        "autoChannelSelection": "disabled",
 | 
					 | 
				
			||||||
        "radioMode": "modeAC",
 | 
					 | 
				
			||||||
        "mimoMode": "twoByTwo",
 | 
					 | 
				
			||||||
        "wmmState": "enabled",
 | 
					 | 
				
			||||||
        "uapsdState": "enabled",
 | 
					        "uapsdState": "enabled",
 | 
				
			||||||
        "maxNumClients": 100,
 | 
					 | 
				
			||||||
        "stationIsolation": "disabled",
 | 
					        "stationIsolation": "disabled",
 | 
				
			||||||
        "multicastRate": "auto",
 | 
					        "managementRate": {
 | 
				
			||||||
        "managementRate": "auto",
 | 
					          "model_type": "SourceSelectionManagement",
 | 
				
			||||||
        "activeScanSettings": {
 | 
					          "source": "auto",
 | 
				
			||||||
          "model_type": "ActiveScanSettings",
 | 
					          "value": "auto"
 | 
				
			||||||
          "enabled": true,
 | 
					 | 
				
			||||||
          "scanFrequencySeconds": 10,
 | 
					 | 
				
			||||||
          "scanDurationMillis": 65
 | 
					 | 
				
			||||||
        },
 | 
					 | 
				
			||||||
        "channelHopSettings": {
 | 
					 | 
				
			||||||
          "model_type": "ChannelHopSettings",
 | 
					 | 
				
			||||||
          "noiseFloorThresholdInDB": -75,
 | 
					 | 
				
			||||||
          "noiseFloorThresholdTimeInSeconds": 180,
 | 
					 | 
				
			||||||
          "nonWifiThresholdInPercentage": 50,
 | 
					 | 
				
			||||||
          "nonWifiThresholdTimeInSeconds": 180,
 | 
					 | 
				
			||||||
          "obssHopMode": "NON_WIFI"
 | 
					 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        "bestApSettings": {
 | 
					        "bestApSettings": {
 | 
				
			||||||
          "model_type": "RadioBestApSettings",
 | 
					        "model_type": "SourceSelectionSteering",
 | 
				
			||||||
          "mlComputed": true,
 | 
					          "source": "auto",
 | 
				
			||||||
          "dropInSnrPercentage": 30,
 | 
					          "value": {
 | 
				
			||||||
          "minLoadFactor": 40
 | 
						          "model_type": "RadioBestApSettings",
 | 
				
			||||||
 | 
						          "mlComputed": true,
 | 
				
			||||||
 | 
						          "dropInSnrPercentage": 30,
 | 
				
			||||||
 | 
						          "minLoadFactor": 40
 | 
				
			||||||
 | 
					          }
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        "forceScanDuringVoice": "disabled",
 | 
					 | 
				
			||||||
        "legacyBSSRate": "enabled",
 | 
					        "legacyBSSRate": "enabled",
 | 
				
			||||||
        "beaconInterval": 100,
 | 
					 | 
				
			||||||
        "deauthAttackDetection": null
 | 
					        "deauthAttackDetection": null
 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
      "is5GHzL": {
 | 
					      "is5GHzL": {
 | 
				
			||||||
@@ -248,39 +191,24 @@
 | 
				
			|||||||
        "radioType": "is5GHzL",
 | 
					        "radioType": "is5GHzL",
 | 
				
			||||||
        "radioAdminState": "enabled",
 | 
					        "radioAdminState": "enabled",
 | 
				
			||||||
        "fragmentationThresholdBytes": 2346,
 | 
					        "fragmentationThresholdBytes": 2346,
 | 
				
			||||||
        "rtsCtsThreshold": 65535,
 | 
					 | 
				
			||||||
        "autoChannelSelection": "disabled",
 | 
					 | 
				
			||||||
        "radioMode": "modeAC",
 | 
					 | 
				
			||||||
        "mimoMode": "twoByTwo",
 | 
					 | 
				
			||||||
        "wmmState": "enabled",
 | 
					 | 
				
			||||||
        "uapsdState": "enabled",
 | 
					        "uapsdState": "enabled",
 | 
				
			||||||
        "maxNumClients": 100,
 | 
					 | 
				
			||||||
        "stationIsolation": "disabled",
 | 
					        "stationIsolation": "disabled",
 | 
				
			||||||
        "multicastRate": "auto",
 | 
					        "managementRate": {
 | 
				
			||||||
        "managementRate": "auto",
 | 
					          "model_type": "SourceSelectionManagement",
 | 
				
			||||||
        "activeScanSettings": {
 | 
					          "source": "auto",
 | 
				
			||||||
          "model_type": "ActiveScanSettings",
 | 
					          "value": "auto"
 | 
				
			||||||
          "enabled": true,
 | 
					 | 
				
			||||||
          "scanFrequencySeconds": 10,
 | 
					 | 
				
			||||||
          "scanDurationMillis": 65
 | 
					 | 
				
			||||||
        },
 | 
					 | 
				
			||||||
        "channelHopSettings": {
 | 
					 | 
				
			||||||
          "model_type": "ChannelHopSettings",
 | 
					 | 
				
			||||||
          "noiseFloorThresholdInDB": -75,
 | 
					 | 
				
			||||||
          "noiseFloorThresholdTimeInSeconds": 180,
 | 
					 | 
				
			||||||
          "nonWifiThresholdInPercentage": 50,
 | 
					 | 
				
			||||||
          "nonWifiThresholdTimeInSeconds": 180,
 | 
					 | 
				
			||||||
          "obssHopMode": "NON_WIFI"
 | 
					 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        "bestApSettings": {
 | 
					        "bestApSettings": {
 | 
				
			||||||
          "model_type": "RadioBestApSettings",
 | 
					        "model_type": "SourceSelectionSteering",
 | 
				
			||||||
          "mlComputed": true,
 | 
					          "source": "auto",
 | 
				
			||||||
          "dropInSnrPercentage": 30,
 | 
					          "value": {
 | 
				
			||||||
          "minLoadFactor": 40
 | 
						          "model_type": "RadioBestApSettings",
 | 
				
			||||||
 | 
						          "mlComputed": true,
 | 
				
			||||||
 | 
						          "dropInSnrPercentage": 30,
 | 
				
			||||||
 | 
						          "minLoadFactor": 40
 | 
				
			||||||
 | 
					          }
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        "forceScanDuringVoice": "disabled",
 | 
					 | 
				
			||||||
        "legacyBSSRate": "enabled",
 | 
					        "legacyBSSRate": "enabled",
 | 
				
			||||||
        "beaconInterval": 100,
 | 
					 | 
				
			||||||
        "deauthAttackDetection": null
 | 
					        "deauthAttackDetection": null
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
@@ -290,4 +218,4 @@
 | 
				
			|||||||
  "serial": "21P10C68818122",
 | 
					  "serial": "21P10C68818122",
 | 
				
			||||||
  "createdTimestamp": 1591653239821,
 | 
					  "createdTimestamp": 1591653239821,
 | 
				
			||||||
  "lastModifiedTimestamp": 1591653241398
 | 
					  "lastModifiedTimestamp": 1591653241398
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,54 +1,50 @@
 | 
				
			|||||||
{
 | 
					{
 | 
				
			||||||
  "model_type": "Profile",
 | 
					    "model_type": "Profile",
 | 
				
			||||||
  "id": 5,
 | 
					    "id": 17,
 | 
				
			||||||
  "customerId": 2,
 | 
					    "customerId": 2,
 | 
				
			||||||
  "profileType": "equipment_ap",
 | 
					    "profileType": "equipment_ap",
 | 
				
			||||||
  "name": "DefaultApProfile",
 | 
					    "name": "ApProfile-3-radios",
 | 
				
			||||||
  "details": {
 | 
					    "details": {
 | 
				
			||||||
    "model_type": "ApNetworkConfiguration",
 | 
					        "model_type": "ApNetworkConfiguration",
 | 
				
			||||||
    "networkConfigVersion": "AP-1",
 | 
					        "networkConfigVersion": "AP-1",
 | 
				
			||||||
    "equipmentType": "AP",
 | 
					        "equipmentType": "AP",
 | 
				
			||||||
    "vlanNative": true,
 | 
					        "vlanNative": true,
 | 
				
			||||||
    "vlan": 0,
 | 
					        "vlan": 0,
 | 
				
			||||||
    "ntpServer": {
 | 
					        "ntpServer": {
 | 
				
			||||||
      "model_type": "AutoOrManualString",
 | 
					            "model_type": "AutoOrManualString",
 | 
				
			||||||
      "auto": true,
 | 
					            "auto": true,
 | 
				
			||||||
      "value": "pool.ntp.org"
 | 
					            "value": "pool.ntp.org"
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					        "syslogRelay": null,
 | 
				
			||||||
 | 
					        "rtlsSettings": null,
 | 
				
			||||||
 | 
					        "syntheticClientEnabled": true,
 | 
				
			||||||
 | 
					        "ledControlEnabled": true,
 | 
				
			||||||
 | 
					        "equipmentDiscovery": false,
 | 
				
			||||||
 | 
					        "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"
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "syslogRelay": null,
 | 
					    "createdTimestamp": 1602182806348,
 | 
				
			||||||
    "rtlsSettings": null,
 | 
					    "lastModifiedTimestamp": 1602182806348,
 | 
				
			||||||
    "syntheticClientEnabled": true,
 | 
					    "childProfileIds": [
 | 
				
			||||||
    "ledControlEnabled": true,
 | 
					        2,
 | 
				
			||||||
    "equipmentDiscovery": false,
 | 
					        5,
 | 
				
			||||||
    "radioMap": {
 | 
					        11,
 | 
				
			||||||
      "is5GHz": {
 | 
					        13
 | 
				
			||||||
        "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
 | 
					 | 
				
			||||||
  ]
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@@ -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": 10,
 | 
				
			||||||
 | 
					    "customerId": 2,
 | 
				
			||||||
 | 
					    "profileType": "hotspot_2pt0",
 | 
				
			||||||
 | 
					    "name": "TipWlan-Hotspot20-Config",
 | 
				
			||||||
 | 
					    "details": {
 | 
				
			||||||
 | 
					        "model_type": "Hotspot2Profile",
 | 
				
			||||||
 | 
					        "enableInterworkingAndHs20": true,
 | 
				
			||||||
 | 
					        "hessid": null,
 | 
				
			||||||
 | 
					        "accessNetworkType": "free_public_network",
 | 
				
			||||||
 | 
					        "networkAuthenticationType": "acceptance_of_terms_and_conditions",
 | 
				
			||||||
 | 
					        "additionalStepsRequiredForAccess": 0,
 | 
				
			||||||
 | 
					        "deauthRequestTimeout": 0,
 | 
				
			||||||
 | 
					        "operatingClass": 0,
 | 
				
			||||||
 | 
					        "termsAndConditionsFile": {
 | 
				
			||||||
 | 
					            "model_type": "ManagedFileInfo",
 | 
				
			||||||
 | 
					            "md5checksum": null,
 | 
				
			||||||
 | 
					            "lastModifiedTimestamp": null,
 | 
				
			||||||
 | 
					            "apExportUrl": "https://localhost:9091/filestore/termsAndConditions",
 | 
				
			||||||
 | 
					            "fileCategory": "ExternalPolicyConfiguration",
 | 
				
			||||||
 | 
					            "fileType": "TEXT",
 | 
				
			||||||
 | 
					            "altSlot": false
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					        "whitelistDomain": null,
 | 
				
			||||||
 | 
					        "emergencyServicesReachable": true,
 | 
				
			||||||
 | 
					        "unauthenticatedEmergencyServiceAccessible": false,
 | 
				
			||||||
 | 
					        "internetConnectivity": true,
 | 
				
			||||||
 | 
					        "connectionCapabilitySet": [
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                "model_type": "ConnectionCapability",
 | 
				
			||||||
 | 
					                "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-3-radios",
 | 
				
			||||||
 | 
					        "operatorProfileName": "TipWlan-Hotspot20-Operator",
 | 
				
			||||||
 | 
					        "venueProfileName": "TipWlan-Hotspot20-Venue",
 | 
				
			||||||
 | 
					        "idProviderProfileNames": [
 | 
				
			||||||
 | 
					            "TipWlan-Hotspot20-OSU-Provider-2",
 | 
				
			||||||
 | 
					            "TipWlan-Hotspot20-OSU-Provider"
 | 
				
			||||||
 | 
					        ],
 | 
				
			||||||
 | 
					        "profileType": "hotspot_2pt0",
 | 
				
			||||||
 | 
					        "associatedSsids": [
 | 
				
			||||||
 | 
					            "TipWlan-cloud-hotspot-access"
 | 
				
			||||||
 | 
					        ]
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "createdTimestamp": 1602182806040,
 | 
				
			||||||
 | 
					    "lastModifiedTimestamp": 1602182806040,
 | 
				
			||||||
 | 
					    "childProfileIds": [
 | 
				
			||||||
 | 
					        6,
 | 
				
			||||||
 | 
					        7,
 | 
				
			||||||
 | 
					        8,
 | 
				
			||||||
 | 
					        9
 | 
				
			||||||
 | 
					    ]
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					]
 | 
				
			||||||
@@ -0,0 +1,256 @@
 | 
				
			|||||||
 | 
					[
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    "model_type": "Profile",
 | 
				
			||||||
 | 
					    "id": 8,
 | 
				
			||||||
 | 
					    "customerId": 2,
 | 
				
			||||||
 | 
					    "profileType": "id_provider",
 | 
				
			||||||
 | 
					    "name": "TipWlan-Hotspot20-OSU-Provider",
 | 
				
			||||||
 | 
					    "details": {
 | 
				
			||||||
 | 
					        "model_type": "Hotspot20IdProviderProfile",
 | 
				
			||||||
 | 
					        "domainName": "rogers.com",
 | 
				
			||||||
 | 
					        "mccMncList": [
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                "model_type": "MccMnc",
 | 
				
			||||||
 | 
					                "mcc": 302,
 | 
				
			||||||
 | 
					                "mnc": 720,
 | 
				
			||||||
 | 
					                "iso": "ca",
 | 
				
			||||||
 | 
					                "country": "Canada",
 | 
				
			||||||
 | 
					                "countryCode": 1,
 | 
				
			||||||
 | 
					                "network": "Rogers AT&T Wireless",
 | 
				
			||||||
 | 
					                "mccMncPairing": "302,720"
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        ],
 | 
				
			||||||
 | 
					        "naiRealmList": [
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                "model_type": "NaiRealmInformation",
 | 
				
			||||||
 | 
					                "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": "OsuIcon",
 | 
				
			||||||
 | 
					                "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": "OsuIcon",
 | 
				
			||||||
 | 
					                "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": "OsuIcon",
 | 
				
			||||||
 | 
					                "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": "Hotspot20Duple",
 | 
				
			||||||
 | 
					                "locale": "en_CA",
 | 
				
			||||||
 | 
					                "dupleIso3Language": "eng",
 | 
				
			||||||
 | 
					                "dupleName": "Example provider rogers",
 | 
				
			||||||
 | 
					                "defaultDupleSeparator": ":",
 | 
				
			||||||
 | 
					                "asDuple": "eng:Example provider rogers"
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                "model_type": "Hotspot20Duple",
 | 
				
			||||||
 | 
					                "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": "Hotspot20Duple",
 | 
				
			||||||
 | 
					                "locale": "en_CA",
 | 
				
			||||||
 | 
					                "dupleIso3Language": "eng",
 | 
				
			||||||
 | 
					                "dupleName": "Example services rogers",
 | 
				
			||||||
 | 
					                "defaultDupleSeparator": ":",
 | 
				
			||||||
 | 
					                "asDuple": "eng:Example services rogers"
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                "model_type": "Hotspot20Duple",
 | 
				
			||||||
 | 
					                "locale": "fr_CA",
 | 
				
			||||||
 | 
					                "dupleIso3Language": "fra",
 | 
				
			||||||
 | 
					                "dupleName": "Exemples de services rogers",
 | 
				
			||||||
 | 
					                "defaultDupleSeparator": ":",
 | 
				
			||||||
 | 
					                "asDuple": "fra:Exemples de services rogers"
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        ],
 | 
				
			||||||
 | 
					        "profileType": "id_provider"
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "createdTimestamp": 1602182805654,
 | 
				
			||||||
 | 
					    "lastModifiedTimestamp": 1602182805654,
 | 
				
			||||||
 | 
					    "childProfileIds": []
 | 
				
			||||||
 | 
					},
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    "model_type": "Profile",
 | 
				
			||||||
 | 
					    "id": 9,
 | 
				
			||||||
 | 
					    "customerId": 2,
 | 
				
			||||||
 | 
					    "profileType": "id_provider",
 | 
				
			||||||
 | 
					    "name": "TipWlan-Hotspot20-OSU-Provider-2",
 | 
				
			||||||
 | 
					    "details": {
 | 
				
			||||||
 | 
					        "model_type": "Hotspot20IdProviderProfile",
 | 
				
			||||||
 | 
					        "domainName": "telus.com",
 | 
				
			||||||
 | 
					        "mccMncList": [
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                "model_type": "MccMnc",
 | 
				
			||||||
 | 
					                "mcc": 302,
 | 
				
			||||||
 | 
					                "mnc": 220,
 | 
				
			||||||
 | 
					                "iso": "ca",
 | 
				
			||||||
 | 
					                "country": "Canada",
 | 
				
			||||||
 | 
					                "countryCode": 1,
 | 
				
			||||||
 | 
					                "network": "Telus Mobility",
 | 
				
			||||||
 | 
					                "mccMncPairing": "302,220"
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        ],
 | 
				
			||||||
 | 
					        "naiRealmList": [
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                "model_type": "NaiRealmInformation",
 | 
				
			||||||
 | 
					                "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": "OsuIcon",
 | 
				
			||||||
 | 
					                "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": "OsuIcon",
 | 
				
			||||||
 | 
					                "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": "OsuIcon",
 | 
				
			||||||
 | 
					                "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": "Hotspot20Duple",
 | 
				
			||||||
 | 
					                "locale": "en_CA",
 | 
				
			||||||
 | 
					                "dupleIso3Language": "eng",
 | 
				
			||||||
 | 
					                "dupleName": "Example provider telus",
 | 
				
			||||||
 | 
					                "defaultDupleSeparator": ":",
 | 
				
			||||||
 | 
					                "asDuple": "eng:Example provider telus"
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                "model_type": "Hotspot20Duple",
 | 
				
			||||||
 | 
					                "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": "Hotspot20Duple",
 | 
				
			||||||
 | 
					                "locale": "en_CA",
 | 
				
			||||||
 | 
					                "dupleIso3Language": "eng",
 | 
				
			||||||
 | 
					                "dupleName": "Example services telus",
 | 
				
			||||||
 | 
					                "defaultDupleSeparator": ":",
 | 
				
			||||||
 | 
					                "asDuple": "eng:Example services telus"
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					            {
 | 
				
			||||||
 | 
					                "model_type": "Hotspot20Duple",
 | 
				
			||||||
 | 
					                "locale": "fr_CA",
 | 
				
			||||||
 | 
					                "dupleIso3Language": "fra",
 | 
				
			||||||
 | 
					                "dupleName": "Exemples de services telus",
 | 
				
			||||||
 | 
					                "defaultDupleSeparator": ":",
 | 
				
			||||||
 | 
					                "asDuple": "fra:Exemples de services telus"
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        ],
 | 
				
			||||||
 | 
					        "profileType": "id_provider"
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "createdTimestamp": 1602182805660,
 | 
				
			||||||
 | 
					    "lastModifiedTimestamp": 1602182805660,
 | 
				
			||||||
 | 
					    "childProfileIds": []
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					    ]
 | 
				
			||||||
@@ -0,0 +1,298 @@
 | 
				
			|||||||
 | 
					[
 | 
				
			||||||
 | 
					 {
 | 
				
			||||||
 | 
					        "model_type": "Profile",
 | 
				
			||||||
 | 
					        "id": 2,
 | 
				
			||||||
 | 
					        "customerId": 2,
 | 
				
			||||||
 | 
					        "profileType": "metrics",
 | 
				
			||||||
 | 
					        "name": "Metrics-Profile-3-radios",
 | 
				
			||||||
 | 
					        "details": {
 | 
				
			||||||
 | 
					            "model_type": "ServiceMetricsCollectionConfigProfile",
 | 
				
			||||||
 | 
					            "radioTypes": [
 | 
				
			||||||
 | 
					                "is5GHzU",
 | 
				
			||||||
 | 
					                "is5GHzL",
 | 
				
			||||||
 | 
					                "is2dot4GHz"
 | 
				
			||||||
 | 
					            ],
 | 
				
			||||||
 | 
					            "serviceMetricDataTypes": [
 | 
				
			||||||
 | 
					                "ApNode",
 | 
				
			||||||
 | 
					                "ApSsid",
 | 
				
			||||||
 | 
					                "Client",
 | 
				
			||||||
 | 
					                "Channel",
 | 
				
			||||||
 | 
					                "Neighbour"
 | 
				
			||||||
 | 
					            ],
 | 
				
			||||||
 | 
					            "metricConfigParameterMap": {
 | 
				
			||||||
 | 
					                "ApNode": [
 | 
				
			||||||
 | 
					                    {
 | 
				
			||||||
 | 
					                        "model_type": "ServiceMetricSurveyConfigParameters",
 | 
				
			||||||
 | 
					                        "samplingInterval": 30,
 | 
				
			||||||
 | 
					                        "reportingIntervalSeconds": 120,
 | 
				
			||||||
 | 
					                        "channelSurveyType": "OFF_CHANNEL",
 | 
				
			||||||
 | 
					                        "scanIntervalMillis": 0,
 | 
				
			||||||
 | 
					                        "percentUtilizationThreshold": 10,
 | 
				
			||||||
 | 
					                        "delayMillisecondsThreshold": 600,
 | 
				
			||||||
 | 
					                        "statsReportFormat": "RAW",
 | 
				
			||||||
 | 
					                        "radioType": "is5GHzU",
 | 
				
			||||||
 | 
					                        "serviceMetricDataType": "ApNode"
 | 
				
			||||||
 | 
					                    },
 | 
				
			||||||
 | 
					                    {
 | 
				
			||||||
 | 
					                        "model_type": "ServiceMetricSurveyConfigParameters",
 | 
				
			||||||
 | 
					                        "samplingInterval": 30,
 | 
				
			||||||
 | 
					                        "reportingIntervalSeconds": 120,
 | 
				
			||||||
 | 
					                        "channelSurveyType": "OFF_CHANNEL",
 | 
				
			||||||
 | 
					                        "scanIntervalMillis": 0,
 | 
				
			||||||
 | 
					                        "percentUtilizationThreshold": 10,
 | 
				
			||||||
 | 
					                        "delayMillisecondsThreshold": 600,
 | 
				
			||||||
 | 
					                        "statsReportFormat": "RAW",
 | 
				
			||||||
 | 
					                        "radioType": "is5GHzL",
 | 
				
			||||||
 | 
					                        "serviceMetricDataType": "ApNode"
 | 
				
			||||||
 | 
					                    },
 | 
				
			||||||
 | 
					                    {
 | 
				
			||||||
 | 
					                        "model_type": "ServiceMetricSurveyConfigParameters",
 | 
				
			||||||
 | 
					                        "samplingInterval": 30,
 | 
				
			||||||
 | 
					                        "reportingIntervalSeconds": 120,
 | 
				
			||||||
 | 
					                        "channelSurveyType": "OFF_CHANNEL",
 | 
				
			||||||
 | 
					                        "scanIntervalMillis": 0,
 | 
				
			||||||
 | 
					                        "percentUtilizationThreshold": 10,
 | 
				
			||||||
 | 
					                        "delayMillisecondsThreshold": 600,
 | 
				
			||||||
 | 
					                        "statsReportFormat": "RAW",
 | 
				
			||||||
 | 
					                        "radioType": "is2dot4GHz",
 | 
				
			||||||
 | 
					                        "serviceMetricDataType": "ApNode"
 | 
				
			||||||
 | 
					                    },
 | 
				
			||||||
 | 
					                    {
 | 
				
			||||||
 | 
					                        "model_type": "ServiceMetricSurveyConfigParameters",
 | 
				
			||||||
 | 
					                        "samplingInterval": 30,
 | 
				
			||||||
 | 
					                        "reportingIntervalSeconds": 60,
 | 
				
			||||||
 | 
					                        "channelSurveyType": "ON_CHANNEL",
 | 
				
			||||||
 | 
					                        "scanIntervalMillis": 0,
 | 
				
			||||||
 | 
					                        "percentUtilizationThreshold": 10,
 | 
				
			||||||
 | 
					                        "delayMillisecondsThreshold": 600,
 | 
				
			||||||
 | 
					                        "statsReportFormat": "RAW",
 | 
				
			||||||
 | 
					                        "radioType": "is5GHzL",
 | 
				
			||||||
 | 
					                        "serviceMetricDataType": "ApNode"
 | 
				
			||||||
 | 
					                    },
 | 
				
			||||||
 | 
					                    {
 | 
				
			||||||
 | 
					                        "model_type": "ServiceMetricSurveyConfigParameters",
 | 
				
			||||||
 | 
					                        "samplingInterval": 30,
 | 
				
			||||||
 | 
					                        "reportingIntervalSeconds": 60,
 | 
				
			||||||
 | 
					                        "channelSurveyType": "ON_CHANNEL",
 | 
				
			||||||
 | 
					                        "scanIntervalMillis": 0,
 | 
				
			||||||
 | 
					                        "percentUtilizationThreshold": 10,
 | 
				
			||||||
 | 
					                        "delayMillisecondsThreshold": 600,
 | 
				
			||||||
 | 
					                        "statsReportFormat": "RAW",
 | 
				
			||||||
 | 
					                        "radioType": "is2dot4GHz",
 | 
				
			||||||
 | 
					                        "serviceMetricDataType": "ApNode"
 | 
				
			||||||
 | 
					                    },
 | 
				
			||||||
 | 
					                    {
 | 
				
			||||||
 | 
					                        "model_type": "ServiceMetricSurveyConfigParameters",
 | 
				
			||||||
 | 
					                        "samplingInterval": 30,
 | 
				
			||||||
 | 
					                        "reportingIntervalSeconds": 60,
 | 
				
			||||||
 | 
					                        "channelSurveyType": "ON_CHANNEL",
 | 
				
			||||||
 | 
					                        "scanIntervalMillis": 0,
 | 
				
			||||||
 | 
					                        "percentUtilizationThreshold": 10,
 | 
				
			||||||
 | 
					                        "delayMillisecondsThreshold": 600,
 | 
				
			||||||
 | 
					                        "statsReportFormat": "RAW",
 | 
				
			||||||
 | 
					                        "radioType": "is5GHzU",
 | 
				
			||||||
 | 
					                        "serviceMetricDataType": "ApNode"
 | 
				
			||||||
 | 
					                    }
 | 
				
			||||||
 | 
					                ],
 | 
				
			||||||
 | 
					                "ApSsid": [
 | 
				
			||||||
 | 
					                    {
 | 
				
			||||||
 | 
					                        "model_type": "ServiceMetricRadioConfigParameters",
 | 
				
			||||||
 | 
					                        "samplingInterval": 30,
 | 
				
			||||||
 | 
					                        "reportingIntervalSeconds": 60,
 | 
				
			||||||
 | 
					                        "radioType": "is2dot4GHz",
 | 
				
			||||||
 | 
					                        "serviceMetricDataType": "ApSsid"
 | 
				
			||||||
 | 
					                    },
 | 
				
			||||||
 | 
					                    {
 | 
				
			||||||
 | 
					                        "model_type": "ServiceMetricRadioConfigParameters",
 | 
				
			||||||
 | 
					                        "samplingInterval": 30,
 | 
				
			||||||
 | 
					                        "reportingIntervalSeconds": 60,
 | 
				
			||||||
 | 
					                        "radioType": "is5GHzL",
 | 
				
			||||||
 | 
					                        "serviceMetricDataType": "ApSsid"
 | 
				
			||||||
 | 
					                    },
 | 
				
			||||||
 | 
					                    {
 | 
				
			||||||
 | 
					                        "model_type": "ServiceMetricRadioConfigParameters",
 | 
				
			||||||
 | 
					                        "samplingInterval": 30,
 | 
				
			||||||
 | 
					                        "reportingIntervalSeconds": 60,
 | 
				
			||||||
 | 
					                        "radioType": "is5GHzU",
 | 
				
			||||||
 | 
					                        "serviceMetricDataType": "ApSsid"
 | 
				
			||||||
 | 
					                    }
 | 
				
			||||||
 | 
					                ],
 | 
				
			||||||
 | 
					                "Client": [
 | 
				
			||||||
 | 
					                    {
 | 
				
			||||||
 | 
					                        "model_type": "ServiceMetricRadioConfigParameters",
 | 
				
			||||||
 | 
					                        "samplingInterval": 30,
 | 
				
			||||||
 | 
					                        "reportingIntervalSeconds": 60,
 | 
				
			||||||
 | 
					                        "radioType": "is2dot4GHz",
 | 
				
			||||||
 | 
					                        "serviceMetricDataType": "Client"
 | 
				
			||||||
 | 
					                    },
 | 
				
			||||||
 | 
					                    {
 | 
				
			||||||
 | 
					                        "model_type": "ServiceMetricRadioConfigParameters",
 | 
				
			||||||
 | 
					                        "samplingInterval": 30,
 | 
				
			||||||
 | 
					                        "reportingIntervalSeconds": 60,
 | 
				
			||||||
 | 
					                        "radioType": "is5GHzL",
 | 
				
			||||||
 | 
					                        "serviceMetricDataType": "Client"
 | 
				
			||||||
 | 
					                    },
 | 
				
			||||||
 | 
					                    {
 | 
				
			||||||
 | 
					                        "model_type": "ServiceMetricRadioConfigParameters",
 | 
				
			||||||
 | 
					                        "samplingInterval": 30,
 | 
				
			||||||
 | 
					                        "reportingIntervalSeconds": 60,
 | 
				
			||||||
 | 
					                        "radioType": "is5GHzU",
 | 
				
			||||||
 | 
					                        "serviceMetricDataType": "Client"
 | 
				
			||||||
 | 
					                    }
 | 
				
			||||||
 | 
					                ],
 | 
				
			||||||
 | 
					                "Channel": [
 | 
				
			||||||
 | 
					                    {
 | 
				
			||||||
 | 
					                        "model_type": "ServiceMetricSurveyConfigParameters",
 | 
				
			||||||
 | 
					                        "samplingInterval": 30,
 | 
				
			||||||
 | 
					                        "reportingIntervalSeconds": 60,
 | 
				
			||||||
 | 
					                        "channelSurveyType": "ON_CHANNEL",
 | 
				
			||||||
 | 
					                        "scanIntervalMillis": 0,
 | 
				
			||||||
 | 
					                        "percentUtilizationThreshold": 10,
 | 
				
			||||||
 | 
					                        "delayMillisecondsThreshold": 600,
 | 
				
			||||||
 | 
					                        "statsReportFormat": "RAW",
 | 
				
			||||||
 | 
					                        "radioType": "is5GHzL",
 | 
				
			||||||
 | 
					                        "serviceMetricDataType": "Channel"
 | 
				
			||||||
 | 
					                    },
 | 
				
			||||||
 | 
					                    {
 | 
				
			||||||
 | 
					                        "model_type": "ServiceMetricSurveyConfigParameters",
 | 
				
			||||||
 | 
					                        "samplingInterval": 30,
 | 
				
			||||||
 | 
					                        "reportingIntervalSeconds": 60,
 | 
				
			||||||
 | 
					                        "channelSurveyType": "ON_CHANNEL",
 | 
				
			||||||
 | 
					                        "scanIntervalMillis": 0,
 | 
				
			||||||
 | 
					                        "percentUtilizationThreshold": 10,
 | 
				
			||||||
 | 
					                        "delayMillisecondsThreshold": 600,
 | 
				
			||||||
 | 
					                        "statsReportFormat": "RAW",
 | 
				
			||||||
 | 
					                        "radioType": "is2dot4GHz",
 | 
				
			||||||
 | 
					                        "serviceMetricDataType": "Channel"
 | 
				
			||||||
 | 
					                    },
 | 
				
			||||||
 | 
					                    {
 | 
				
			||||||
 | 
					                        "model_type": "ServiceMetricSurveyConfigParameters",
 | 
				
			||||||
 | 
					                        "samplingInterval": 30,
 | 
				
			||||||
 | 
					                        "reportingIntervalSeconds": 60,
 | 
				
			||||||
 | 
					                        "channelSurveyType": "ON_CHANNEL",
 | 
				
			||||||
 | 
					                        "scanIntervalMillis": 0,
 | 
				
			||||||
 | 
					                        "percentUtilizationThreshold": 10,
 | 
				
			||||||
 | 
					                        "delayMillisecondsThreshold": 600,
 | 
				
			||||||
 | 
					                        "statsReportFormat": "RAW",
 | 
				
			||||||
 | 
					                        "radioType": "is5GHzU",
 | 
				
			||||||
 | 
					                        "serviceMetricDataType": "Channel"
 | 
				
			||||||
 | 
					                    },
 | 
				
			||||||
 | 
					                    {
 | 
				
			||||||
 | 
					                        "model_type": "ServiceMetricSurveyConfigParameters",
 | 
				
			||||||
 | 
					                        "samplingInterval": 30,
 | 
				
			||||||
 | 
					                        "reportingIntervalSeconds": 120,
 | 
				
			||||||
 | 
					                        "channelSurveyType": "OFF_CHANNEL",
 | 
				
			||||||
 | 
					                        "scanIntervalMillis": 0,
 | 
				
			||||||
 | 
					                        "percentUtilizationThreshold": 10,
 | 
				
			||||||
 | 
					                        "delayMillisecondsThreshold": 600,
 | 
				
			||||||
 | 
					                        "statsReportFormat": "RAW",
 | 
				
			||||||
 | 
					                        "radioType": "is5GHzL",
 | 
				
			||||||
 | 
					                        "serviceMetricDataType": "Channel"
 | 
				
			||||||
 | 
					                    },
 | 
				
			||||||
 | 
					                    {
 | 
				
			||||||
 | 
					                        "model_type": "ServiceMetricSurveyConfigParameters",
 | 
				
			||||||
 | 
					                        "samplingInterval": 30,
 | 
				
			||||||
 | 
					                        "reportingIntervalSeconds": 120,
 | 
				
			||||||
 | 
					                        "channelSurveyType": "OFF_CHANNEL",
 | 
				
			||||||
 | 
					                        "scanIntervalMillis": 0,
 | 
				
			||||||
 | 
					                        "percentUtilizationThreshold": 10,
 | 
				
			||||||
 | 
					                        "delayMillisecondsThreshold": 600,
 | 
				
			||||||
 | 
					                        "statsReportFormat": "RAW",
 | 
				
			||||||
 | 
					                        "radioType": "is2dot4GHz",
 | 
				
			||||||
 | 
					                        "serviceMetricDataType": "Channel"
 | 
				
			||||||
 | 
					                    },
 | 
				
			||||||
 | 
					                    {
 | 
				
			||||||
 | 
					                        "model_type": "ServiceMetricSurveyConfigParameters",
 | 
				
			||||||
 | 
					                        "samplingInterval": 30,
 | 
				
			||||||
 | 
					                        "reportingIntervalSeconds": 120,
 | 
				
			||||||
 | 
					                        "channelSurveyType": "OFF_CHANNEL",
 | 
				
			||||||
 | 
					                        "scanIntervalMillis": 0,
 | 
				
			||||||
 | 
					                        "percentUtilizationThreshold": 10,
 | 
				
			||||||
 | 
					                        "delayMillisecondsThreshold": 600,
 | 
				
			||||||
 | 
					                        "statsReportFormat": "RAW",
 | 
				
			||||||
 | 
					                        "radioType": "is5GHzU",
 | 
				
			||||||
 | 
					                        "serviceMetricDataType": "Channel"
 | 
				
			||||||
 | 
					                    }
 | 
				
			||||||
 | 
					                ],
 | 
				
			||||||
 | 
					                "Neighbour": [
 | 
				
			||||||
 | 
					                    {
 | 
				
			||||||
 | 
					                        "model_type": "ServiceMetricSurveyConfigParameters",
 | 
				
			||||||
 | 
					                        "samplingInterval": 30,
 | 
				
			||||||
 | 
					                        "reportingIntervalSeconds": 60,
 | 
				
			||||||
 | 
					                        "channelSurveyType": "ON_CHANNEL",
 | 
				
			||||||
 | 
					                        "scanIntervalMillis": 0,
 | 
				
			||||||
 | 
					                        "percentUtilizationThreshold": 10,
 | 
				
			||||||
 | 
					                        "delayMillisecondsThreshold": 600,
 | 
				
			||||||
 | 
					                        "statsReportFormat": "RAW",
 | 
				
			||||||
 | 
					                        "radioType": "is5GHzL",
 | 
				
			||||||
 | 
					                        "serviceMetricDataType": "Neighbour"
 | 
				
			||||||
 | 
					                    },
 | 
				
			||||||
 | 
					                    {
 | 
				
			||||||
 | 
					                        "model_type": "ServiceMetricSurveyConfigParameters",
 | 
				
			||||||
 | 
					                        "samplingInterval": 30,
 | 
				
			||||||
 | 
					                        "reportingIntervalSeconds": 60,
 | 
				
			||||||
 | 
					                        "channelSurveyType": "ON_CHANNEL",
 | 
				
			||||||
 | 
					                        "scanIntervalMillis": 0,
 | 
				
			||||||
 | 
					                        "percentUtilizationThreshold": 10,
 | 
				
			||||||
 | 
					                        "delayMillisecondsThreshold": 600,
 | 
				
			||||||
 | 
					                        "statsReportFormat": "RAW",
 | 
				
			||||||
 | 
					                        "radioType": "is2dot4GHz",
 | 
				
			||||||
 | 
					                        "serviceMetricDataType": "Neighbour"
 | 
				
			||||||
 | 
					                    },
 | 
				
			||||||
 | 
					                    {
 | 
				
			||||||
 | 
					                        "model_type": "ServiceMetricSurveyConfigParameters",
 | 
				
			||||||
 | 
					                        "samplingInterval": 30,
 | 
				
			||||||
 | 
					                        "reportingIntervalSeconds": 60,
 | 
				
			||||||
 | 
					                        "channelSurveyType": "ON_CHANNEL",
 | 
				
			||||||
 | 
					                        "scanIntervalMillis": 0,
 | 
				
			||||||
 | 
					                        "percentUtilizationThreshold": 10,
 | 
				
			||||||
 | 
					                        "delayMillisecondsThreshold": 600,
 | 
				
			||||||
 | 
					                        "statsReportFormat": "RAW",
 | 
				
			||||||
 | 
					                        "radioType": "is5GHzU",
 | 
				
			||||||
 | 
					                        "serviceMetricDataType": "Neighbour"
 | 
				
			||||||
 | 
					                    },
 | 
				
			||||||
 | 
					                    {
 | 
				
			||||||
 | 
					                        "model_type": "ServiceMetricSurveyConfigParameters",
 | 
				
			||||||
 | 
					                        "samplingInterval": 30,
 | 
				
			||||||
 | 
					                        "reportingIntervalSeconds": 120,
 | 
				
			||||||
 | 
					                        "channelSurveyType": "OFF_CHANNEL",
 | 
				
			||||||
 | 
					                        "scanIntervalMillis": 0,
 | 
				
			||||||
 | 
					                        "percentUtilizationThreshold": 10,
 | 
				
			||||||
 | 
					                        "delayMillisecondsThreshold": 600,
 | 
				
			||||||
 | 
					                        "statsReportFormat": "RAW",
 | 
				
			||||||
 | 
					                        "radioType": "is5GHzU",
 | 
				
			||||||
 | 
					                        "serviceMetricDataType": "Neighbour"
 | 
				
			||||||
 | 
					                    },
 | 
				
			||||||
 | 
					                    {
 | 
				
			||||||
 | 
					                        "model_type": "ServiceMetricSurveyConfigParameters",
 | 
				
			||||||
 | 
					                        "samplingInterval": 30,
 | 
				
			||||||
 | 
					                        "reportingIntervalSeconds": 120,
 | 
				
			||||||
 | 
					                        "channelSurveyType": "OFF_CHANNEL",
 | 
				
			||||||
 | 
					                        "scanIntervalMillis": 0,
 | 
				
			||||||
 | 
					                        "percentUtilizationThreshold": 10,
 | 
				
			||||||
 | 
					                        "delayMillisecondsThreshold": 600,
 | 
				
			||||||
 | 
					                        "statsReportFormat": "RAW",
 | 
				
			||||||
 | 
					                        "radioType": "is5GHzL",
 | 
				
			||||||
 | 
					                        "serviceMetricDataType": "Neighbour"
 | 
				
			||||||
 | 
					                    },
 | 
				
			||||||
 | 
					                    {
 | 
				
			||||||
 | 
					                        "model_type": "ServiceMetricSurveyConfigParameters",
 | 
				
			||||||
 | 
					                        "samplingInterval": 30,
 | 
				
			||||||
 | 
					                        "reportingIntervalSeconds": 120,
 | 
				
			||||||
 | 
					                        "channelSurveyType": "OFF_CHANNEL",
 | 
				
			||||||
 | 
					                        "scanIntervalMillis": 0,
 | 
				
			||||||
 | 
					                        "percentUtilizationThreshold": 10,
 | 
				
			||||||
 | 
					                        "delayMillisecondsThreshold": 600,
 | 
				
			||||||
 | 
					                        "statsReportFormat": "RAW",
 | 
				
			||||||
 | 
					                        "radioType": "is2dot4GHz",
 | 
				
			||||||
 | 
					                        "serviceMetricDataType": "Neighbour"
 | 
				
			||||||
 | 
					                    }
 | 
				
			||||||
 | 
					                ]
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					            "profileType": "metrics"
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					        "createdTimestamp": 1602113058699,
 | 
				
			||||||
 | 
					        "lastModifiedTimestamp": 1602113058699,
 | 
				
			||||||
 | 
					        "childProfileIds": []
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					]
 | 
				
			||||||
@@ -0,0 +1,36 @@
 | 
				
			|||||||
 | 
					[
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					        "model_type": "Profile",
 | 
				
			||||||
 | 
					        "id": 6,
 | 
				
			||||||
 | 
					        "customerId": 2,
 | 
				
			||||||
 | 
					        "profileType": "operator",
 | 
				
			||||||
 | 
					        "name": "TipWlan-Hotspot20-Operator",
 | 
				
			||||||
 | 
					        "details": {
 | 
				
			||||||
 | 
					            "model_type": "OperatorProfile",
 | 
				
			||||||
 | 
					            "serverOnlyAuthenticatedL2EncryptionNetwork": false,
 | 
				
			||||||
 | 
					            "x509CertificateLocation": "/etc/ca.pem",
 | 
				
			||||||
 | 
					            "operatorFriendlyName": [
 | 
				
			||||||
 | 
					                {
 | 
				
			||||||
 | 
					                    "model_type": "Hotspot20Duple",
 | 
				
			||||||
 | 
					                    "locale": "en_CA",
 | 
				
			||||||
 | 
					                    "dupleIso3Language": "eng",
 | 
				
			||||||
 | 
					                    "dupleName": "Default friendly operator name",
 | 
				
			||||||
 | 
					                    "defaultDupleSeparator": ":",
 | 
				
			||||||
 | 
					                    "asDuple": "eng:Default friendly operator name"
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                {
 | 
				
			||||||
 | 
					                    "model_type": "Hotspot20Duple",
 | 
				
			||||||
 | 
					                    "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": "operator"
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					        "createdTimestamp": 1602113058719,
 | 
				
			||||||
 | 
					        "lastModifiedTimestamp": 1602113058719,
 | 
				
			||||||
 | 
					        "childProfileIds": []
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					]
 | 
				
			||||||
Some files were not shown because too many files have changed in this diff Show More
		Reference in New Issue
	
	Block a user