From 6f6c4b9d9ac9057fb84a73a19f224138d0c07e91 Mon Sep 17 00:00:00 2001 From: Max Date: Mon, 28 Feb 2022 12:06:29 +0100 Subject: [PATCH] switch to JSON lab configuration (#405) Signed-off-by: Max Brenner --- .github/actions/run-tests/action.yml | 8 +- .github/workflows/advanced.yml | 2 +- .github/workflows/get_redirector_url.yml | 2 +- .github/workflows/interop.yml | 16 +-- .github/workflows/manual.yml | 2 +- .github/workflows/ow_docker-compose.yml | 12 +- .github/workflows/performance.yml | 2 +- .github/workflows/quali-advanced.yml | 140 +--------------------- .github/workflows/quali-basic-manual.yml | 107 +---------------- .github/workflows/quali.yml | 144 ++--------------------- .github/workflows/regression.yml | 10 +- .quali/get_configuration.py | 13 +- 12 files changed, 57 insertions(+), 401 deletions(-) diff --git a/.github/actions/run-tests/action.yml b/.github/actions/run-tests/action.yml index 20c411305..353f0a51d 100644 --- a/.github/actions/run-tests/action.yml +++ b/.github/actions/run-tests/action.yml @@ -46,17 +46,17 @@ runs: id: job run: echo "::set-output name=name::testing" - - name: create configuration.py secret + - name: create configuration secret shell: bash run: | if [ -n "${{ inputs.configuration_file }}" ]; then kubectl create secret generic configuration --from-file=configuration=${{ inputs.configuration_file }} else - cat << EOF > configuration.py + cat << EOF > lab_info.json ${{ inputs.configuration || 'configuration missing' }} EOF - kubectl create secret generic configuration --from-file=configuration=./configuration.py + kubectl create secret generic configuration --from-file=configuration=./lab_info.json fi - name: run tests @@ -103,7 +103,7 @@ runs: exit \$ret volumeMounts: - name: configuration - mountPath: "/wlan-testing/tests/configuration.py" + mountPath: "/wlan-testing/tests/lab_info.json" subPath: configuration readOnly: true nodeSelector: diff --git a/.github/workflows/advanced.yml b/.github/workflows/advanced.yml index c84e5622d..2443509bf 100644 --- a/.github/workflows/advanced.yml +++ b/.github/workflows/advanced.yml @@ -66,7 +66,7 @@ jobs: namespace: ${{ steps.namespace.outputs.name }} testbed: ${{ matrix.testbed }} marker_expression: advance - configuration: "${{ secrets.LAB_CONFIGURATION }}" + configuration: "${{ secrets.LAB_CONFIGURATION_JSON }}" testing_docker_image: tip-tip-wlan-cloud-docker-repo.jfrog.io/cloud-sdk-nightly:${{ github.run_id }} allure_results_artifact_name: allure-results-${{ matrix.testbed }} diff --git a/.github/workflows/get_redirector_url.yml b/.github/workflows/get_redirector_url.yml index a3d9138c7..ea0ee89fb 100644 --- a/.github/workflows/get_redirector_url.yml +++ b/.github/workflows/get_redirector_url.yml @@ -53,7 +53,7 @@ jobs: - name: create configuration.py file run: | cat << EOF > configuration.py - ${{ secrets.LAB_CONFIGURATION }} + ${{ secrets.LAB_CONFIGURATION_JSON }} EOF - name: Get redirector URL diff --git a/.github/workflows/interop.yml b/.github/workflows/interop.yml index e40a2ce91..a2fa01918 100644 --- a/.github/workflows/interop.yml +++ b/.github/workflows/interop.yml @@ -71,7 +71,7 @@ jobs: namespace: interop-${{ github.run_id }}-galaxy-s9 testbed: interop-01 marker_expression: "${{ needs.vars.outputs.marker_overwrite || 'interop_uc_sanity and client_connect and android and not wpa3_personal' }}" - configuration: "${{ secrets.LAB_CONFIGURATION }}" + configuration: "${{ secrets.LAB_CONFIGURATION_JSON }}" testing_docker_image: tip-tip-wlan-cloud-docker-repo.jfrog.io/cloud-sdk-nightly:${{ github.run_id }} additional_args: "-o model-android='Galaxy S9' -o 'jobName=Github-Interop-galaxy-s9' -o 'jobNumber=${{ github.run_number }}' --skip-lanforge" allure_results_artifact_name: allure-results-galaxy-s9 @@ -98,7 +98,7 @@ jobs: namespace: interop-${{ github.run_id }}-iphone-12 testbed: interop-01 marker_expression: "${{ needs.vars.outputs.marker_overwrite || 'interop_uc_sanity and client_connect and ios' }}" - configuration: "${{ secrets.LAB_CONFIGURATION }}" + configuration: "${{ secrets.LAB_CONFIGURATION_JSON }}" testing_docker_image: tip-tip-wlan-cloud-docker-repo.jfrog.io/cloud-sdk-nightly:${{ github.run_id }} additional_args: "-o model-iOS='iPhone-12' -o 'jobName=Github-Interop-iphone-12' -o 'jobNumber=${{ github.run_number }}' --skip-lanforge" allure_results_artifact_name: allure-results-iphone-12 @@ -126,7 +126,7 @@ jobs: namespace: interop-${{ github.run_id }}-galaxy-s10 testbed: interop-02 marker_expression: "${{ needs.vars.outputs.marker_overwrite || 'interop_uc_sanity and client_connect and android' }}" - configuration: "${{ secrets.LAB_CONFIGURATION }}" + configuration: "${{ secrets.LAB_CONFIGURATION_JSON }}" testing_docker_image: tip-tip-wlan-cloud-docker-repo.jfrog.io/cloud-sdk-nightly:${{ github.run_id }} additional_args: "-o model-android='Galaxy S10.*' -o 'jobName=Github-Interop-galaxy-s10' -o 'jobNumber=${{ github.run_number }}' --skip-lanforge" allure_results_artifact_name: allure-results-galaxy-s10 @@ -153,7 +153,7 @@ jobs: namespace: interop-${{ github.run_id }}-iphone-7 testbed: interop-02 marker_expression: "${{ needs.vars.outputs.marker_overwrite || 'interop_uc_sanity and client_connect and ios' }}" - configuration: "${{ secrets.LAB_CONFIGURATION }}" + configuration: "${{ secrets.LAB_CONFIGURATION_JSON }}" testing_docker_image: tip-tip-wlan-cloud-docker-repo.jfrog.io/cloud-sdk-nightly:${{ github.run_id }} additional_args: "-o model-iOS='iPhone-7' -o 'jobName=Github-Interop-iphone-7' -o 'jobNumber=${{ github.run_number }}' --skip-lanforge" allure_results_artifact_name: allure-results-iphone-7 @@ -181,7 +181,7 @@ jobs: namespace: interop-${{ github.run_id }}-galaxy-s20 testbed: interop-03 marker_expression: "${{ needs.vars.outputs.marker_overwrite || 'interop_uc_sanity and client_connect and android' }}" - configuration: "${{ secrets.LAB_CONFIGURATION }}" + configuration: "${{ secrets.LAB_CONFIGURATION_JSON }}" testing_docker_image: tip-tip-wlan-cloud-docker-repo.jfrog.io/cloud-sdk-nightly:${{ github.run_id }} additional_args: "-o model-android='Galaxy S20' -o 'jobName=Github-Interop-galaxy-s20' -o 'jobNumber=${{ github.run_number }}' --skip-lanforge" allure_results_artifact_name: allure-results-galaxy-s20 @@ -208,7 +208,7 @@ jobs: namespace: interop-${{ github.run_id }}-iphone-xr testbed: interop-03 marker_expression: "${{ needs.vars.outputs.marker_overwrite || 'interop_uc_sanity and client_connect and ios' }}" - configuration: "${{ secrets.LAB_CONFIGURATION }}" + configuration: "${{ secrets.LAB_CONFIGURATION_JSON }}" testing_docker_image: tip-tip-wlan-cloud-docker-repo.jfrog.io/cloud-sdk-nightly:${{ github.run_id }} additional_args: "-o model-iOS='iPhone-XR' -o 'jobName=Github-Interop-iphone-xr' -o 'jobNumber=${{ github.run_number }}' --skip-lanforge" allure_results_artifact_name: allure-results-iphone-xr @@ -236,7 +236,7 @@ jobs: namespace: interop-${{ github.run_id }}-pixel-4 testbed: interop-04 marker_expression: "${{ needs.vars.outputs.marker_overwrite || 'interop_uc_sanity and client_connect and android' }}" - configuration: "${{ secrets.LAB_CONFIGURATION }}" + configuration: "${{ secrets.LAB_CONFIGURATION_JSON }}" testing_docker_image: tip-tip-wlan-cloud-docker-repo.jfrog.io/cloud-sdk-nightly:${{ github.run_id }} additional_args: "-o model-android='Pixel 4' -o 'jobName=Github-Interop-pixel-4' -o 'jobNumber=${{ github.run_number }}' --skip-lanforge" allure_results_artifact_name: allure-results-pixel-4 @@ -263,7 +263,7 @@ jobs: namespace: interop-${{ github.run_id }}-iphone-11 testbed: interop-04 marker_expression: "${{ needs.vars.outputs.marker_overwrite || 'interop_uc_sanity and client_connect and ios' }}" - configuration: "${{ secrets.LAB_CONFIGURATION }}" + configuration: "${{ secrets.LAB_CONFIGURATION_JSON }}" testing_docker_image: tip-tip-wlan-cloud-docker-repo.jfrog.io/cloud-sdk-nightly:${{ github.run_id }} additional_args: "-o model-iOS='iPhone-11' -o 'jobName=Github-Interop-iphone-11' -o 'jobNumber=${{ github.run_number }}' --skip-lanforge" allure_results_artifact_name: allure-results-iphone-11 diff --git a/.github/workflows/manual.yml b/.github/workflows/manual.yml index 110a5baa5..8cb908bd9 100644 --- a/.github/workflows/manual.yml +++ b/.github/workflows/manual.yml @@ -81,7 +81,7 @@ jobs: namespace: "manual-${{ github.run_id }}-${{ github.event.inputs.testbed }}" testbed: "${{ github.event.inputs.testbed }}" marker_expression: "${{ github.event.inputs.marker_expression }}" - configuration: "${{ secrets.LAB_CONFIGURATION }}" + configuration: "${{ secrets.LAB_CONFIGURATION_JSON }}" testing_docker_image: tip-tip-wlan-cloud-docker-repo.jfrog.io/cloud-sdk-nightly:${{ github.run_id }} additional_args: "-o firmware=${{ github.event.inputs.firmware }} ${{ github.event.inputs.additional_args }}" allure_results_artifact_name: allure-results diff --git a/.github/workflows/ow_docker-compose.yml b/.github/workflows/ow_docker-compose.yml index 4267640d3..6f063618f 100644 --- a/.github/workflows/ow_docker-compose.yml +++ b/.github/workflows/ow_docker-compose.yml @@ -358,13 +358,13 @@ jobs: NAMESPACE="testing-${{ github.run_id }}" echo "::set-output name=name::${NAMESPACE}" - - name: create configuration.py secret + - name: create configuration secret run: | - cat << EOF > configuration.py - ${{ secrets.LAB_CONFIGURATION }} + cat << EOF > lab_info.json + ${{ secrets.LAB_CONFIGURATION_JSON }} EOF - sed -i -r "s/'url': ('|\").*('|\")/'url': 'https:\/\/${{ needs.deploy-controller.outputs.sec_url }}:16001'/" configuration.py - sed -i -r "s/'password': ('|\")openwifi('|\")/'password': '"${{ secrets.OWSEC_NEW_PASSWORD }}"'/" configuration.py + jq '.CONFIGURATION["${{ github.event.inputs.testbeds || 'basic-05' }}"].controller.url="https://${{ needs.deploy-controller.outputs.sec_url }}:16001"' lab_info.json > lab_info.json.tmp && mv lab_info.json.tmp lab_info.json + jq '.CONFIGURATION["${{ github.event.inputs.testbeds || 'basic-05' }}"].controller.password="${{ secrets.OWSEC_NEW_PASSWORD }}"' lab_info.json > lab_info.json.tmp && mv lab_info.json.tmp lab_info.json - name: run tests uses: ./.github/actions/run-tests @@ -372,7 +372,7 @@ jobs: namespace: ${{ steps.namespace.outputs.name }} testbed: "${{ github.event.inputs.testbeds || 'basic-05' }}" marker_expression: "${{ github.event.inputs.marker_expression || 'sdk_restapi' }}" - configuration_file: "./configuration.py" + configuration_file: "./lab_info.json" testing_docker_image: tip-tip-wlan-cloud-docker-repo.jfrog.io/cloud-sdk-nightly:${{ github.run_id }} allure_results_artifact_name: allure-results-docker-compose-${{ github.event.inputs.marker_expression || 'sdk_restapi' }} diff --git a/.github/workflows/performance.yml b/.github/workflows/performance.yml index f5c459cdf..6368522cc 100644 --- a/.github/workflows/performance.yml +++ b/.github/workflows/performance.yml @@ -77,7 +77,7 @@ jobs: namespace: ${{ steps.namespace.outputs.name }} testbed: ${{ steps.testbed.outputs.name }} marker_expression: "performance and ${{ matrix.marker }}" - configuration: "${{ secrets.LAB_CONFIGURATION }}" + configuration: "${{ secrets.LAB_CONFIGURATION_JSON }}" testing_docker_image: tip-tip-wlan-cloud-docker-repo.jfrog.io/cloud-sdk-nightly:${{ github.run_id }} allure_results_artifact_name: allure-results-${{ matrix.marker }} diff --git a/.github/workflows/quali-advanced.yml b/.github/workflows/quali-advanced.yml index 270e46f91..86f0b0b7d 100644 --- a/.github/workflows/quali-advanced.yml +++ b/.github/workflows/quali-advanced.yml @@ -133,148 +133,20 @@ jobs: - name: prepare configuration run: | - cat << EOF > configuration.py - Customer = "" - server = "" - CONFIGURATION = { - "advanced": $(python .quali/get_configuration.py ${{ steps.reservation.outputs.identifier }}) - } - open_flow = {} - RADIUS_SERVER_DATA = { - "ip": "10.10.1.221", - "port": 1812, - "secret": "testing123", - "user": "user", - "password": "password", - "pk_password": "whatever" - } - - RADIUS_ACCOUNTING_DATA = { - "ip": "10.10.1.221", - "port": 1813, - "secret": "testing123", - "user": "user", - "password": "password", - "pk_password": "whatever" - } - - DYNAMIC_VLAN_RADIUS_SERVER_DATA = { - "ip": "3.20.165.131", - "port": 1812, - "secret": "testing123", - "user": "user", - "password": "password", - "pk_password": "whatever" - } - - DYNAMIC_VLAN_RADIUS_ACCOUNTING_DATA = { - "ip": "3.20.165.131", - "port": 1813, - "secret": "testing123", - "user": "user", - "password": "password", - "pk_password": "whatever" - } - - PASSPOINT_RADIUS_SERVER_DATA = { - "ip": "52.234.179.191", - "port": 11812, - "secret": "yeababy20!", - "user": "nolaradius", - "password": "nolastart", - "pk_password": "whatever" - } - - PASSPOINT_RADIUS_ACCOUNTING_SERVER_DATA = { - "ip": "52.234.179.191", - "port": 11813, - "secret": "yeababy20!" - } - - PASSPOINT_PROVIDER_INFO = { - "mcc": None, - "mnc": None, - "network": None, - "nai_realms": { - "domain": "oss.ameriband.com", - "encoding": 0, - "eap_map": {"EAP-TTLS with username/password": ["Credential Type:username/password", - "Non-EAP Inner Authentication Type:MSCHAPV2"]} - }, - "osu_nai_standalone": "anonymous@ameriband.com", - "osu_nai_shared": "anonymous@ameriband.com", - "roaming_oi": [] - } - RATE_LIMITING_RADIUS_SERVER_DATA = { - "ip": "18.189.85.200", - "port": 1812, - "secret": "testing123", - "user": "user", - "password": "password", - "pk_password": "whatever" - } - - RATE_LIMITING_RADIUS_ACCOUNTING_DATA = { - "ip": "18.189.85.200", - "port": 1813, - "secret": "testing123", - "user": "user", - "password": "password", - "pk_password": "whatever" - } - - PASSPOINT_OPERATOR_INFO = { - "osen": "Disabled", - "domain_name_list": ["telecominfraproject.atlassian.net"], - "operator_names": [ - {"locale": "eng", "name": "Default friendly passpoint_operator name"}, - {"locale": "fra", "name": "Nom de l'opérateur convivial par défaut"} - ] - } - - PASSPOINT_VENUE_INFO = { - "venue_type": {"group": "Business", "type": "Police Station"}, - "venue_names": [ - {"locale": "eng", "name": "Example passpoint_venue", "url": "http://www.example.com/info-eng"}, - {"locale": "fra", "name": "Exemple de lieu", "url": "http://www.example.com/info-fra"} - ] - } - - PASSPOINT_PROFILE_INFO = { - "profile_download_url_ios": "https://onboard.almondlabs.net/ttls/AmeriBand-Profile.mobileconfig", - "profile_download_url_android": "https://onboard.almondlabs.net/ttls/androidconfig.cfg", - "profile_name_on_device": "AmeriBand", - "radius_configuration": { - "user_defined_nas_id": "FB001AP001", - "operator_id": "AmeribandTIP", - "radius_acounting_service_interval": 60 - }, - "interworking_hs2dot0": "Enabled", - "hessid": None, - "access_network": { - "Access Network Type": "Free Public Network", - "Authentication Type": "Acceptance of Terms & Conditions", - "Emergency Services Reachable": "Enabled", - "Unauthenticated Emergency Service": "Disabled", - }, - "ip_connectivity": { - "Internet Connectivity": "Enabled", - "IP Address Type": "Public IPv4 Address Available", - "Connection Capability": [{"status": "open", "protocol": "TCP", "port": 8888}], - "ANQP Domain ID": 1234, - "GAS Address 3 Behaviour": "P2P Spec Workaround From Request", - "Disable DGAF": False - } - } + cat << EOF > lab_info.json + ${{ secrets.LAB_CONFIGURATION_JSON }} EOF + DYN_CONFIG="$(python .quali/get_configuration.py --json ${{ steps.reservation.outputs.identifier }})" + jq ".CONFIGURATION.basic=$DYN_CONFIG" lab_info.json > lab_info.json.tmp && mv lab_info.json.tmp lab_info.json + - name: run tests uses: ./.github/actions/run-tests with: namespace: ${{ steps.namespace.outputs.name }} testbed: advanced marker_expression: "${{ needs.vars.outputs.marker_expression }}" - configuration_file: "./configuration.py" + configuration_file: "./lab_info.json" testing_docker_image: tip-tip-wlan-cloud-docker-repo.jfrog.io/cloud-sdk-nightly:${{ github.run_id }} additional_args: '-o firmware="${{ needs.vars.outputs.ap_version }}"' allure_results_artifact_name: allure-results-${{ matrix.ap_model }} diff --git a/.github/workflows/quali-basic-manual.yml b/.github/workflows/quali-basic-manual.yml index 2e39fc686..b532beda3 100644 --- a/.github/workflows/quali-basic-manual.yml +++ b/.github/workflows/quali-basic-manual.yml @@ -124,115 +124,20 @@ jobs: CLOUDSHELL_USER: ${{ secrets.CLOUDSHELL_USER }} CLOUDSHELL_PASSWORD: ${{ secrets.CLOUDSHELL_PASSWORD }} run: | - cat << EOF > configuration.py - Customer = "" - server = "" - CONFIGURATION = { - "basic": $(python .quali/get_configuration.py ${{ steps.reservation.outputs.identifier }}) - } - - open_flow = {} - - RADIUS_SERVER_DATA = { - "ip": "10.10.1.221", - "port": 1812, - "secret": "testing123", - "user": "user", - "password": "password", - "pk_password": "whatever" - } - - RADIUS_ACCOUNTING_DATA = { - "ip": "10.10.1.221", - "port": 1813, - "secret": "testing123", - "user": "user", - "password": "password", - "pk_password": "whatever" - } - - PASSPOINT_RADIUS_SERVER_DATA = { - "ip": "52.234.179.191", - "port": 11812, - "secret": "yeababy20!", - "user": "nolaradius", - "password": "nolastart", - "pk_password": "whatever" - } - - PASSPOINT_RADIUS_ACCOUNTING_SERVER_DATA = { - "ip": "52.234.179.191", - "port": 11813, - "secret": "yeababy20!" - } - - PASSPOINT_PROVIDER_INFO = { - "mcc": None, - "mnc": None, - "network": None, - "nai_realms": { - "domain": "oss.ameriband.com", - "encoding": 0, - "eap_map": {"EAP-TTLS with username/password": ["Credential Type:username/password", - "Non-EAP Inner Authentication Type:MSCHAPV2"]} - }, - "osu_nai_standalone": "anonymous@ameriband.com", - "osu_nai_shared": "anonymous@ameriband.com", - "roaming_oi": [] - } - - PASSPOINT_OPERATOR_INFO = { - "osen": "Disabled", - "domain_name_list": ["telecominfraproject.atlassian.net"], - "operator_names": [ - {"locale": "eng", "name": "Default friendly passpoint_operator name"}, - {"locale": "fra", "name": "Nom de l'opérateur convivial par défaut"} - ] - } - - PASSPOINT_VENUE_INFO = { - "venue_type": {"group": "Business", "type": "Police Station"}, - "venue_names": [ - {"locale": "eng", "name": "Example passpoint_venue", "url": "http://www.example.com/info-eng"}, - {"locale": "fra", "name": "Exemple de lieu", "url": "http://www.example.com/info-fra"} - ] - } - - PASSPOINT_PROFILE_INFO = { - "profile_download_url_ios": "https://onboard.almondlabs.net/ttls/AmeriBand-Profile.mobileconfig", - "profile_download_url_android": "https://onboard.almondlabs.net/ttls/androidconfig.cfg", - "profile_name_on_device": "AmeriBand", - "radius_configuration": { - "user_defined_nas_id": "FB001AP001", - "operator_id": "AmeribandTIP", - "radius_acounting_service_interval": 60 - }, - "interworking_hs2dot0": "Enabled", - "hessid": None, - "access_network": { - "Access Network Type": "Free Public Network", - "Authentication Type": "Acceptance of Terms & Conditions", - "Emergency Services Reachable": "Enabled", - "Unauthenticated Emergency Service": "Disabled", - }, - "ip_connectivity": { - "Internet Connectivity": "Enabled", - "IP Address Type": "Public IPv4 Address Available", - "Connection Capability": [{"status": "open", "protocol": "TCP", "port": 8888}], - "ANQP Domain ID": 1234, - "GAS Address 3 Behaviour": "P2P Spec Workaround From Request", - "Disable DGAF": False - } - } + cat << EOF > lab_info.json + ${{ secrets.LAB_CONFIGURATION_JSON }} EOF + DYN_CONFIG="$(python .quali/get_configuration.py --json ${{ steps.reservation.outputs.identifier }})" + jq ".CONFIGURATION.basic=$DYN_CONFIG" lab_info.json > lab_info.json.tmp && mv lab_info.json.tmp lab_info.json + - name: run tests uses: ./.github/actions/run-tests with: namespace: ${{ steps.namespace.outputs.name }} testbed: basic marker_expression: ${{ github.event.inputs.marker_expression }} - configuration_file: "./configuration.py" + configuration_file: "./lab_info.json" testing_docker_image: tip-tip-wlan-cloud-docker-repo.jfrog.io/cloud-sdk-nightly:${{ github.run_id }} additional_args: '-o firmware="${{ github.event.inputs.firmware }}"' allure_results_artifact_name: allure-results diff --git a/.github/workflows/quali.yml b/.github/workflows/quali.yml index 0dcf3b768..4fa77d09b 100644 --- a/.github/workflows/quali.yml +++ b/.github/workflows/quali.yml @@ -138,147 +138,17 @@ jobs: - name: prepare configuration run: | - cat << EOF > configuration.py - Customer = '' - server = '' - CONFIGURATION = { - 'basic': $(python .quali/get_configuration.py ${{ steps.reservation.outputs.identifier }}) - } - - open_flow = {} - - RADIUS_SERVER_DATA = { - 'ip': '10.10.1.221', - 'port': 1812, - 'secret': 'testing123', - 'user': 'user', - 'password': 'password', - 'pk_password': 'whatever' - } - - RADIUS_ACCOUNTING_DATA = { - 'ip': '10.10.1.221', - 'port': 1813, - 'secret': 'testing123', - 'user': 'user', - 'password': 'password', - 'pk_password': 'whatever' - } - - DYNAMIC_VLAN_RADIUS_SERVER_DATA = { - 'ip': '3.20.165.131', - 'port': 1812, - 'secret': 'testing123', - 'user': 'user', - 'password': 'password', - 'pk_password': 'whatever' - } - - DYNAMIC_VLAN_RADIUS_ACCOUNTING_DATA = { - 'ip': '3.20.165.131', - 'port': 1813, - 'secret': 'testing123', - 'user': 'user', - 'password': 'password', - 'pk_password': 'whatever' - } - - PASSPOINT_RADIUS_SERVER_DATA = { - 'ip': '52.234.179.191', - 'port': 11812, - 'secret': 'yeababy20!', - 'user': 'nolaradius', - 'password': 'nolastart', - 'pk_password': 'whatever' - } - - PASSPOINT_RADIUS_ACCOUNTING_SERVER_DATA = { - 'ip': '52.234.179.191', - 'port': 11813, - 'secret': 'yeababy20!' - } - - PASSPOINT_PROVIDER_INFO = { - 'mcc': None, - 'mnc': None, - 'network': None, - 'nai_realms': { - 'domain': 'oss.ameriband.com', - 'encoding': 0, - 'eap_map': {'EAP-TTLS with username/password': ['Credential Type:username/password', - 'Non-EAP Inner Authentication Type:MSCHAPV2']} - }, - 'osu_nai_standalone': 'anonymous@ameriband.com', - 'osu_nai_shared': 'anonymous@ameriband.com', - 'roaming_oi': [] - } - RATE_LIMITING_RADIUS_SERVER_DATA = { - 'ip': '18.189.85.200', - 'port': 1812, - 'secret': 'testing123', - 'user': 'user', - 'password': 'password', - 'pk_password': 'whatever' - } - - RATE_LIMITING_RADIUS_ACCOUNTING_DATA = { - 'ip': '18.189.85.200', - 'port': 1813, - 'secret': 'testing123', - 'user': 'user', - 'password': 'password', - 'pk_password': 'whatever' - } - - PASSPOINT_OPERATOR_INFO = { - 'osen': 'Disabled', - 'domain_name_list': ['telecominfraproject.atlassian.net'], - 'operator_names': [ - {'locale': 'eng', 'name': 'Default friendly passpoint_operator name'}, - {'locale': 'fra', 'name': 'Nom de l\'opérateur convivial par défaut'} - ] - } - - PASSPOINT_VENUE_INFO = { - 'venue_type': {'group': 'Business', 'type': 'Police Station'}, - 'venue_names': [ - {'locale': 'eng', 'name': 'Example passpoint_venue', 'url': 'http://www.example.com/info-eng'}, - {'locale': 'fra', 'name': 'Exemple de lieu', 'url': 'http://www.example.com/info-fra'} - ] - } - - PASSPOINT_PROFILE_INFO = { - 'profile_download_url_ios': 'https://onboard.almondlabs.net/ttls/AmeriBand-Profile.mobileconfig', - 'profile_download_url_android': 'https://onboard.almondlabs.net/ttls/androidconfig.cfg', - 'profile_name_on_device': 'AmeriBand', - 'radius_configuration': { - 'user_defined_nas_id': 'FB001AP001', - 'operator_id': 'AmeribandTIP', - 'radius_acounting_service_interval': 60 - }, - 'interworking_hs2dot0': 'Enabled', - 'hessid': None, - 'access_network': { - 'Access Network Type': 'Free Public Network', - 'Authentication Type': 'Acceptance of Terms & Conditions', - 'Emergency Services Reachable': 'Enabled', - 'Unauthenticated Emergency Service': 'Disabled', - }, - 'ip_connectivity': { - 'Internet Connectivity': 'Enabled', - 'IP Address Type': 'Public IPv4 Address Available', - 'Connection Capability': [{'status': 'open', 'protocol': 'TCP', 'port': 8888}], - 'ANQP Domain ID': 1234, - 'GAS Address 3 Behaviour': 'P2P Spec Workaround From Request', - 'Disable DGAF': False - } - } + cat << EOF > lab_info.json + ${{ secrets.LAB_CONFIGURATION_JSON }} EOF + DYN_CONFIG="$(python .quali/get_configuration.py --json ${{ steps.reservation.outputs.identifier }})" + jq ".CONFIGURATION.basic=$DYN_CONFIG" lab_info.json > lab_info.json.tmp && mv lab_info.json.tmp lab_info.json + # overwrite configuration value from Quali if [ ${{ needs.vars.outputs.existing_controller }} != '' ] then - sed -i "s/https:\/\/sec-.*\.cicd\.lab\.wlan\.tip\.build/https:\/\/sec-${{ needs.vars.outputs.existing_controller }}.cicd.lab.wlan.tip.build/g" configuration.py + jq '.CONFIGURATION.basic.controller.url="https://sec-${{ needs.vars.outputs.existing_controller }}.cicd.lab.wlan.tip.build:16001"' lab_info.json > lab_info.json.tmp && mv lab_info.json.tmp lab_info.json fi - name: run tests @@ -287,7 +157,7 @@ jobs: namespace: ${{ steps.namespace.outputs.name }} testbed: basic marker_expression: "${{ needs.vars.outputs.marker_expression }}" - configuration_file: "./configuration.py" + configuration_file: "./lab_info.json" testing_docker_image: tip-tip-wlan-cloud-docker-repo.jfrog.io/cloud-sdk-nightly:${{ github.run_id }} additional_args: '-o firmware="${{ needs.vars.outputs.ap_version }}"' allure_results_artifact_name: allure-results-${{ matrix.ap_model }} diff --git a/.github/workflows/regression.yml b/.github/workflows/regression.yml index 76507c78f..4f56e6fd1 100644 --- a/.github/workflows/regression.yml +++ b/.github/workflows/regression.yml @@ -88,7 +88,7 @@ jobs: namespace: regression-${{ github.run_id }}-${{ matrix.testbed }}-dfs testbed: "${{ matrix.testbed }}" marker_expression: "regression and dfs" - configuration: "${{ secrets.LAB_CONFIGURATION }}" + configuration: "${{ secrets.LAB_CONFIGURATION_JSON }}" testing_docker_image: tip-tip-wlan-cloud-docker-repo.jfrog.io/cloud-sdk-nightly:${{ github.run_id }} allure_results_artifact_name: allure-results-${{ matrix.testbed }}-dfs @@ -99,7 +99,7 @@ jobs: namespace: regression-${{ github.run_id }}-${{ matrix.testbed }}-multipsk testbed: "${{ matrix.testbed }}" marker_expression: "regression and multipsk" - configuration: "${{ secrets.LAB_CONFIGURATION }}" + configuration: "${{ secrets.LAB_CONFIGURATION_JSON }}" testing_docker_image: tip-tip-wlan-cloud-docker-repo.jfrog.io/cloud-sdk-nightly:${{ github.run_id }} allure_results_artifact_name: allure-results-${{ matrix.testbed }}-multipsk @@ -110,7 +110,7 @@ jobs: namespace: regression-${{ github.run_id }}-${{ matrix.testbed }}-rate_limiting testbed: "${{ matrix.testbed }}" marker_expression: "regression and rate_limiting" - configuration: "${{ secrets.LAB_CONFIGURATION }}" + configuration: "${{ secrets.LAB_CONFIGURATION_JSON }}" testing_docker_image: tip-tip-wlan-cloud-docker-repo.jfrog.io/cloud-sdk-nightly:${{ github.run_id }} allure_results_artifact_name: allure-results-${{ matrix.testbed }}-rate_limiting @@ -121,7 +121,7 @@ jobs: namespace: regression-${{ github.run_id }}-${{ matrix.testbed }}-rate_limiting_with_radius testbed: "${{ matrix.testbed }}" marker_expression: "regression and rate_limiting_with_radius" - configuration: "${{ secrets.LAB_CONFIGURATION }}" + configuration: "${{ secrets.LAB_CONFIGURATION_JSON }}" testing_docker_image: tip-tip-wlan-cloud-docker-repo.jfrog.io/cloud-sdk-nightly:${{ github.run_id }} allure_results_artifact_name: allure-results-${{ matrix.testbed }}-rate_limiting_with_radius @@ -132,7 +132,7 @@ jobs: namespace: regression-${{ github.run_id }}-${{ matrix.testbed }}-dynamic_vlan testbed: "${{ matrix.testbed }}" marker_expression: "regression and dynamic_vlan" - configuration: "${{ secrets.LAB_CONFIGURATION }}" + configuration: "${{ secrets.LAB_CONFIGURATION_JSON }}" testing_docker_image: tip-tip-wlan-cloud-docker-repo.jfrog.io/cloud-sdk-nightly:${{ github.run_id }} allure_results_artifact_name: allure-results-${{ matrix.testbed }}-dynamic_vlan diff --git a/.quali/get_configuration.py b/.quali/get_configuration.py index 26d1d773a..bd4480e51 100644 --- a/.quali/get_configuration.py +++ b/.quali/get_configuration.py @@ -1,3 +1,4 @@ +import argparse import json import sys @@ -18,8 +19,13 @@ def get_attribute_value(cloudshell_session, attribute): def main(): + argparser = argparse.ArgumentParser() + argparser.add_argument('--json', default=False, help="render configuration as JSON instead of Python dict", action='store_true') + argparser.add_argument('reservation_id') + args = argparser.parse_args() + session = get_session() - res_id = sys.argv[1] + res_id = args.reservation_id reservation_details = session.GetReservationDetails(res_id).ReservationDescription resources_in_reservation = reservation_details.Resources @@ -83,7 +89,10 @@ def main(): else: continue - print(repr(config)) + if args.json: + print(json.dumps(config)) + else: + print(repr(config)) if __name__ == '__main__':