From c666b942ecf647b1cc0d9f2164bcaf78c8b07072 Mon Sep 17 00:00:00 2001 From: shivamcandela Date: Mon, 29 Nov 2021 13:58:23 +0530 Subject: [PATCH 1/9] WIFI-5837 : Added Lanforge Logs as a part of test cases Signed-off-by: shivamcandela --- tests/conftest.py | 20 ++++++++++++++++++++ tools/scp_util.py | 0 2 files changed, 20 insertions(+) create mode 100644 tools/scp_util.py diff --git a/tests/conftest.py b/tests/conftest.py index 31e663f25..8822c9442 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -679,3 +679,23 @@ def get_ap_logs(request, get_apnos, get_configuration): pass request.addfinalizer(collect_logs) + + +@pytest.fixture(scope="function") +def get_lf_logs(request, get_apnos, get_configuration): + S = 9 + instance_name = ''.join(random.choices(string.ascii_uppercase + string.digits, k=S)) + for ap in get_configuration['access_point']: + ap_ssh = get_apnos(ap, pwd="../libs/apnos/", sdk="2.x") + ap_ssh.run_generic_command(cmd="logger start testcase: " + instance_name) + + def collect_logs(): + for ap in get_configuration['access_point']: + ap_ssh = get_apnos(ap, pwd="../libs/apnos/", sdk="2.x") + ap_ssh.run_generic_command(cmd="logger stop testcase: " + instance_name) + ap_logs = ap_ssh.get_logread(start_ref="start testcase: " + instance_name, + stop_ref="stop testcase: " + instance_name) + allure.attach(name='logread', body=str(ap_logs)) + pass + + request.addfinalizer(collect_logs) diff --git a/tools/scp_util.py b/tools/scp_util.py new file mode 100644 index 000000000..e69de29bb From dfee600cd49377fd9e8df1d3321645c86d7bdce3 Mon Sep 17 00:00:00 2001 From: Max Date: Mon, 29 Nov 2021 13:59:41 +0100 Subject: [PATCH 2/9] implement manual basic quali workflow (#284) * implement manual basic quali workflow Signed-off-by: Max Brenner --- .github/workflows/quali-basic-manual.yml | 549 +++++++++++++++++++++++ 1 file changed, 549 insertions(+) create mode 100644 .github/workflows/quali-basic-manual.yml diff --git a/.github/workflows/quali-basic-manual.yml b/.github/workflows/quali-basic-manual.yml new file mode 100644 index 000000000..1568c8abc --- /dev/null +++ b/.github/workflows/quali-basic-manual.yml @@ -0,0 +1,549 @@ +name: manual pytest execution against basic lab +env: + # thirdparties + DOCKER_SERVER: tip-tip-wlan-cloud-docker-repo.jfrog.io + DOCKER_USER_NAME: wlan-testing-cicd + DOCKER_USER_PASSWORD: ${{ secrets.DOCKER_USER_PASSWORD }} + # AWS credentials + AWS_EKS_NAME: tip-wlan-main + AWS_DEFAULT_OUTPUT: json + AWS_DEFAULT_REGION: us-east-2 + AWS_ACCOUNT_ID: ${{ secrets.AWS_ACCOUNT_ID }} + AWS_ACCESS_KEY_ID: ${{ secrets.AWS_CLIENT_ID }} + AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_CLIENT_KEY }} + # Cloud SDK certs + CACERT: ${{ secrets.CACERT }} + CAKEY: ${{ secrets.CAKEY }} + ALLURE_CLI_VERSION: 2.14.0 + +on: + workflow_dispatch: + inputs: + openwifi_revision: + required: true + default: 'main' + description: 'revision of the Open Wifi Helm chart' + openwifi_gw_revision: + required: true + default: 'master' + description: 'revision of the Open Wifi gateway service' + openwifi_sec_revision: + required: true + default: 'main' + description: 'revision of the Open Wifi security service' + openwifi_fms_revision: + required: true + default: 'main' + description: 'revision of the Open Wifi fms service' + openwifi_ui_revision: + required: true + default: 'main' + description: 'revision of the Open Wifi UI' + ap_model: + description: 'AP model to test, one of ECW5410,EAP101,EC420,ECW5211,WF188N,EAP102,CIG194C' + required: true + firmware: + default: 'next-latest' + description: 'Target firmware version to be specified -' + required: false + marker_expression: + description: "marker expression that will be passed to pytest's -m" + required: true + +defaults: + run: + shell: bash + +jobs: + build: + runs-on: ubuntu-latest + steps: + # checkout needed repositories + - name: Checkout Testing repo + uses: actions/checkout@v2 + with: + path: wlan-testing + + - name: Checkout LANforge scripts + uses: actions/checkout@v2 + with: + path: wlan-lanforge-scripts + repository: Telecominfraproject/wlan-lanforge-scripts + + - name: import LANforge scripts + working-directory: wlan-testing + run: ./sync_repos.bash + + # build and push docker image + - name: docker login + run: docker login ${{ env.DOCKER_SERVER }} -u ${{ env.DOCKER_USER_NAME }} -p ${{ env.DOCKER_USER_PASSWORD }} + - name: build docker image + working-directory: wlan-testing + run: docker build -t ${{ env.DOCKER_SERVER }}/cloud-sdk-nightly:${{ github.run_id }} -f docker/Dockerfile . + - name: push docker image + run: docker push ${{ env.DOCKER_SERVER }}/cloud-sdk-nightly:${{ github.run_id }} + + test: + runs-on: [ self-hosted, small ] + needs: [ build ] + + steps: + - uses: actions/checkout@v2 + - name: Set up Python + uses: actions/setup-python@v2 + with: + python-version: '3.8' + + - name: install dependencies + run: pip install -r .quali/requirements.txt + + - name: start reservation + id: start + run: | + RES_ID=$(python .quali/start_reservation.py --openwifi-version "${{ github.event.inputs.openwifi_revision }}" --openwifi-gw-version "${{ github.event.inputs.openwifi_gw_revision }}" --openwifi-sec-version "${{ github.event.inputs.openwifi_sec_revision }}" --openwifi-fms-version "${{ github.event.inputs.openwifi_fms_revision }}" --openwifi-ui-version "${{ github.event.inputs.openwifi_ui_revision }}" --ap-model "${{ github.event.inputs.ap_model }}") + echo ::set-output name=res_id::"$RES_ID" + + - name: set reservation identifier + id: reservation + run: echo ::set-output name=identifier::$(echo ${{ steps.start.outputs.res_id }} | cut -d "-" -f 1) + + - name: install JRE + run: | + sudo apt-get update + sudo apt-get install -y default-jre + + - name: install aws CLI tool + run: | + curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip" + unzip awscliv2.zip + sudo ./aws/install + + - name: get EKS access credentials + run: aws eks update-kubeconfig --name ${{ env.AWS_EKS_NAME }} + + - name: install kubectl + run: | + curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl" + sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl + + - name: install Allure CLI tool + run: | + wget https://repo.maven.apache.org/maven2/io/qameta/allure/allure-commandline/${{ env.ALLURE_CLI_VERSION }}/allure-commandline-${{ env.ALLURE_CLI_VERSION }}.tgz + tar -xzf allure-commandline-${{ env.ALLURE_CLI_VERSION }}.tgz + + - name: set job name + id: job + run: echo "::set-output name=name::manual-${{ github.run_id }}" + + - name: prepare namespace + id: namespace + run: | + NAMESPACE="testing-${{ github.run_id }}" + kubectl create ns $NAMESPACE + kubectl config set-context --current --namespace=$NAMESPACE + echo "::set-output name=name::${NAMESPACE}" + + - name: prepare configuration + run: | + cat << EOF > configuration.py + Customer = "" + server = "" + CONFIGURATION = { + "basic": $(python .quali/get_configuration.py ${{ steps.start.outputs.res_id }}) + } + + 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 + } + } + + TEST_CASES = { + "ap_upgrade": 2233, + "5g_wpa2_bridge": 2236, + "2g_wpa2_bridge": 2237, + "5g_wpa_bridge": 2419, + "2g_wpa_bridge": 2420, + "2g_wpa_nat": 4323, + "5g_wpa_nat": 4324, + "2g_wpa2_nat": 4325, + "5g_wpa2_nat": 4326, + "2g_wpa2_eap_ttls_bridge": 5214, + "5g_wpa2_eap_ttls_bridge": 5215, + "2g_wpa2_eap_ttls_nat": 5216, + "5g_wpa2_eap_ttls_nat": 5217, + "cloud_connection": 5222, + "cloud_fw": 5247, + "5g_wpa2_vlan": 5248, + "5g_wpa_vlan": 5249, + "5g_wpa2_eap_ttls_vlan": 5250, + "2g_wpa2_vlan": 5251, + "2g_wpa_vlan": 5252, + "2g_wpa2_eap_ttls_vlan": 5253, + "cloud_ver": 5540, + "bridge_vifc": 5541, + "nat_vifc": 5542, + "vlan_vifc": 5543, + "bridge_vifs": 5544, + "nat_vifs": 5545, + "vlan_vifs": 5546, + "upgrade_api": 5547, + "create_fw": 5548, + "ap_profile_bridge": 5641, + "ap_profile_nat": 5642, + "ap_profile_vlan": 5643, + "ssid_2g_wpa2_eap_bridge": 5644, + "ssid_2g_wpa2_bridge": 5645, + "ssid_2g_wpa_bridge": 5646, + "ssid_5g_wpa2_eap_bridge": 5647, + "ssid_5g_wpa2_bridge": 5648, + "ssid_5g_wpa_bridge": 5649, + "ssid_2g_wpa2_eap_nat": 5650, + "ssid_2g_wpa2_nat": 5651, + "ssid_2g_wpa_nat": 5652, + "ssid_5g_wpa2_eap_nat": 5653, + "ssid_5g_wpa2_nat": 5654, + "ssid_5g_wpa_nat": 5655, + "ssid_2g_wpa2_eap_vlan": 5656, + "ssid_2g_wpa2_vlan": 5657, + "ssid_2g_wpa_vlan": 5658, + "ssid_5g_wpa2_eap_vlan": 5659, + "ssid_5g_wpa2_vlan": 5660, + "ssid_5g_wpa_vlan": 5661, + "radius_profile": 5808, + "bridge_ssid_update": 8742, + "nat_ssid_update": 8743, + "vlan_ssid_update": 8744, + "2g_wpa3_bridge": 9740, + "5g_wpa3_bridge": 9741, + "ssid_2g_wpa3_bridge": 9742, + "ssid_5g_wpa3_bridge": 9743, + "ssid_2g_wpa3_nat": 9744, + "ssid_5g_wpa3_nat": 9745, + "ssid_2g_wpa3_vlan": 9746, + "ssid_5g_wpa3_vlan": 9747, + "2g_wpa3_nat": 9748, + "5g_wpa3_nat": 9749, + "2g_wpa3_vlan": 9750, + "5g_wpa3_vlan": 9751, + "ssid_2g_wpa3_eap_bridge": 9752, + "ssid_5g_wpa3_eap_bridge": 9753, + "2g_wpa3_eap_ttls_bridge": 9754, + "5g_wpa3_eap_ttls_bridge": 9755, + "ssid_2g_wpa3_eap_nat": 9756, + "ssid_5g_wpa3_eap_nat": 9757, + "ssid_2g_wpa3_eap_vlan": 9758, + "ssid_5g_wpa3_eap_vlan": 9759, + "2g_wpa3_eap_ttls_nat": 9760, + "5g_wpa3_eap_ttls_nat": 9761, + "2g_wpa3_eap_ttls_vlan": 9762, + "5g_wpa3_eap_ttls_vlan": 9763, + "ssid_2g_wpa3_mixed_bridge": 9764, + "ssid_5g_wpa3_mixed_bridge": 9765, + "2g_wpa3_mixed_eap_ttls_wpa3_bridge": 9766, + "2g_wpa3_mixed_wpa3_bridge": 9767, + "5g_wpa3_mixed_eap_ttls_wpa3_bridge": 9768, + "5g_wpa3_mixed_wpa3_bridge": 9769, + "ssid_2g_wpa3_mixed_nat": 9770, + "ssid_5g_wpa3_mixed_nat": 9771, + "ssid_2g_wpa3_mixed_vlan": 9772, + "ssid_5g_wpa3_mixed_vlan": 9773, + # "2g_wpa3_mixed_wpa2_nat": 9774, + "2g_wpa3_mixed_wpa3_nat": 9775, + # "5g_wpa3_mixed_wpa2_nat": 9776, + "5g_wpa3_mixed_wpa3_nat": 9777, + # "2g_wpa3_mixed_wpa2_vlan": 9778, + "2g_wpa3_mixed_wpa3_vlan": 9779, + # "5g_wpa3_mixed_wpa2_vlan": 9780, + "5g_wpa3_mixed_wpa3_vlan": 9781, + "ssid_2g_wpa3_enterprise_mixed_bridge": 9782, + "ssid_5g_wpa3_enterprise_mixed_bridge": 9783, + "2g_wpa2_mixed_eap_wpa2_bridge": 9784, + "2g_wpa3_mixed_eap_wpa3_bridge": 9785, + "5g_wpa3_mixed_eap_wpa2_bridge": 9786, + "5g_wpa3_mixed_eap_wpa3_bridge": 9787, + "ssid_2g_wpa3_enterprise_mixed_nat": 9788, + "ssid_5g_wpa3_enterprise_mixed_nat": 9789, + "2g_wpa3_mixed_eap_wpa2_nat": 9790, + "2g_wpa3_mixed_eap_ttls_wpa3_nat": 9791, + "5g_wpa3_mixed_eap_wpa2_nat": 9792, + "5g_wpa3_mixed_eap_ttls_wpa3_nat": 9793, + "ssid_2g_wpa3_enterprise_mixed_vlan": 9794, + "ssid_5g_wpa3_enterprise_mixed_vlan": 9795, + "2g_wpa3_mixed_eap_wpa2_vlan": 9796, + "2g_wpa3_mixed_eap_ttls_wpa3_vlan": 9797, + "5g_wpa3_mixed_eap_wpa2_vlan": 9798, + "5g_wpa3_mixed_eap_ttls_wpa3_vlan": 9799, + "ssid_2g_open_bridge": 9805, + "ssid_5g_open_bridge": 9806, + "ssid_2g_open_nat": 9807, + "ssid_5g_open_nat": 9808, + "ssid_2g_open_vlan": 9809, + "ssid_5g_open_vlan": 9810, + "ssid_2g_wpa2_mixed_bridge": 9811, + "ssid_5g_wpa2_mixed_bridge": 9812, + "ssid_2g_wpa2_mixed_nat": 9813, + "ssid_5g_wpa2_mixed_nat": 9814, + "ssid_2g_wpa2_mixed_vlan": 9815, + "ssid_5g_wpa2_mixed_vlan": 9817, + "ssid_2g_wpa_wpa2_enterprise_mixed_bridge": 9818, + "ssid_5g_wpa_wpa2_enterprise_mixed_bridge": 9819, + "ssid_2g_wpa_wpa2_enterprise_mixed_nat": 9820, + "ssid_5g_wpa_wpa2_enterprise_mixed_nat": 9821, + "ssid_2g_wpa_wpa2_enterprise_mixed_vlan": 9822, + "ssid_5g_wpa_wpa2_enterprise_mixed_vlan": 9823, + "ssid_2g_wpa_eap_bridge": 9824, + "ssid_5g_wpa_eap_bridge": 9825, + # "ssid_2g_wpa2_eap_bridge": 9824, + # "ssid_5g_wpa2_eap_bridge": 9825, + "ssid_2g_wpa_eap_nat": 9826, + "ssid_5g_wpa_eap_nat": 9827, + "ssid_2g_wpa_eap_vlan": 9828, + "ssid_5g_wpa_eap_vlan": 9829, + # "ap_update_bridge": 9856, + # "ap_update_nat": 9857, + # "ap_update_vlan": 9858, + # "bridge_vifc_update": 9859, + # "nat_vifc_update": 9860, + # "vlan_vifc_update": 9861, + # "bridge_vifs_update": 9862, + # "nat_vifs_update": 9863, + # "vlan_vifs_update": 9864, + "2g_wpa_eap_ttls_bridge": 9867, + "5g_wpa_eap_ttls_bridge": 9768, + "2g_wpa_eap_ttls_nat": 9869, + "5g_wpa_eap_ttls_nat": 9770, + "2g_wpa_eap_ttls_vlan": 9871, + "5g_wpa_eap_ttls_vlan": 9872, + # "2g_wpa2_mixed_eap_wpa_bridge": 9873, + "2g_wpa2_mixed_eap_ttls_wpa2_bridge": 9874, + # "5g_wpa2_mixed_eap_wpa_bridge": 9875, + "5g_wpa2_mixed_eap_ttls_wpa2_bridge": 9876, + # "2g_wpa2_mixed_eap_wpa_nat": 9877, + "2g_wpa2_mixed_eap_ttls_wpa2_nat": 9878, + # "5g_wpa2_mixed_eap_wpa_nat": 9879, + "5g_wpa2_mixed_eap_ttls_wpa2_nat": 9880, + # "2g_wpa2_mixed_eap_wpa_vlan": 9881, + "2g_wpa2_mixed_eap_ttls_wpa2_vlan": 9882, + # "5g_wpa2_mixed_eap_wpa_vlan": 9883, + "5g_wpa2_mixed_eap_ttls_wpa2_vlan": 9884, + # "2g_wpa2_mixed_wpa_bridge": 9885, + "2g_wpa2_mixed_wpa2_bridge": 9886, + # "5g_wpa2_mixed_wpa_bridge": 9887, + "5g_wpa2_mixed_wpa2_bridge": 9888, + # "2g_wpa2_mixed_wpa_nat": 9889, + "2g_wpa2_mixed_wpa2_nat": 9890, + # "5g_wpa2_mixed_wpa_nat": 9891, + "5g_wpa2_mixed_wpa2_nat": 9892, + # "2g_wpa2_mixed_wpa_vlan": 9893, + "2g_wpa2_mixed_wpa2_vlan": 9894, + # "5g_wpa2_mixed_wpa_vlan": 9895, + "5g_wpa2_mixed_wpa2_vlan": 9896, + "2g_open_bridge": 2234, + "5g_open_bridge": 2235, + "2g_open_nat": 4321, + "5g_open_nat": 4322, + "2g_open_vlan": 9897, + "5g_open_vlan": 9898 + } + EOF + + kubectl create secret generic configuration --from-file=configuration=./configuration.py + + - name: run tests + run: | + cat </dev/null 2>&1 + done + echo "tests completed" + echo "downloading allure results..." + kubectl cp $podname:/tmp/allure-results allure-results >/dev/null 2>&1 + echo "waiting for pod to exit" + kubectl logs -f $podname >/dev/null 2>&1 + exit $(kubectl get pod $podname --output="jsonpath={.status.containerStatuses[].state.terminated.exitCode}") + + - name: upload Allure results as artifact + if: always() + uses: actions/upload-artifact@v2 + with: + name: allure-results + path: allure-results + + - name: generate Allure report + run: allure-${{ env.ALLURE_CLI_VERSION }}/bin/allure generate allure-results + + - name: upload Allure report as artifact + uses: actions/upload-artifact@v2 + with: + name: allure-report + path: allure-report + + - name: cleanup + if: always() + run: | + kubectl delete ns "${{ steps.namespace.outputs.name }}" --wait=true + + - name: stop reservation + if: always() + run: python .quali/stop_reservation.py ${{ steps.start.outputs.res_id }} + + cleanup: + needs: [ test ] + runs-on: ubuntu-latest + if: always() + steps: + - name: cleanup Docker image + run: curl -u${{ env.DOCKER_USER_NAME }}:${{ env.DOCKER_USER_PASSWORD }} -X DELETE "https://tip.jfrog.io/artifactory/tip-wlan-cloud-docker-repo/cloud-sdk-nightly/${{ github.run_id }}" From 9717957c166b732e6e9f5694eec0d1998733bfaa Mon Sep 17 00:00:00 2001 From: Max Brenner Date: Mon, 29 Nov 2021 14:18:34 +0100 Subject: [PATCH 3/9] add missing environment variables Signed-off-by: Max Brenner --- .github/workflows/quali-basic-manual.yml | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/.github/workflows/quali-basic-manual.yml b/.github/workflows/quali-basic-manual.yml index 1568c8abc..06b46075d 100644 --- a/.github/workflows/quali-basic-manual.yml +++ b/.github/workflows/quali-basic-manual.yml @@ -99,6 +99,10 @@ jobs: - name: start reservation id: start + env: + CLOUDSHELL_URL: quali-cloudshell.lab.wlan.tip.build + CLOUDSHELL_USER: ${{ secrets.CLOUDSHELL_USER }} + CLOUDSHELL_PASSWORD: ${{ secrets.CLOUDSHELL_PASSWORD }} run: | RES_ID=$(python .quali/start_reservation.py --openwifi-version "${{ github.event.inputs.openwifi_revision }}" --openwifi-gw-version "${{ github.event.inputs.openwifi_gw_revision }}" --openwifi-sec-version "${{ github.event.inputs.openwifi_sec_revision }}" --openwifi-fms-version "${{ github.event.inputs.openwifi_fms_revision }}" --openwifi-ui-version "${{ github.event.inputs.openwifi_ui_revision }}" --ap-model "${{ github.event.inputs.ap_model }}") echo ::set-output name=res_id::"$RES_ID" @@ -144,6 +148,10 @@ jobs: echo "::set-output name=name::${NAMESPACE}" - name: prepare configuration + env: + CLOUDSHELL_URL: quali-cloudshell.lab.wlan.tip.build + CLOUDSHELL_USER: ${{ secrets.CLOUDSHELL_USER }} + CLOUDSHELL_PASSWORD: ${{ secrets.CLOUDSHELL_PASSWORD }} run: | cat << EOF > configuration.py Customer = "" @@ -539,6 +547,10 @@ jobs: - name: stop reservation if: always() run: python .quali/stop_reservation.py ${{ steps.start.outputs.res_id }} + env: + CLOUDSHELL_URL: quali-cloudshell.lab.wlan.tip.build + CLOUDSHELL_USER: ${{ secrets.CLOUDSHELL_USER }} + CLOUDSHELL_PASSWORD: ${{ secrets.CLOUDSHELL_PASSWORD }} cleanup: needs: [ test ] From a26a96421d255589a7603a5ea1801deef048c463 Mon Sep 17 00:00:00 2001 From: Max Brenner Date: Mon, 29 Nov 2021 14:54:39 +0100 Subject: [PATCH 4/9] fix testbed identifier Signed-off-by: Max Brenner --- .github/workflows/quali-basic-manual.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/quali-basic-manual.yml b/.github/workflows/quali-basic-manual.yml index 06b46075d..01d869605 100644 --- a/.github/workflows/quali-basic-manual.yml +++ b/.github/workflows/quali-basic-manual.yml @@ -481,7 +481,7 @@ jobs: done cd tests - pytest -m "${{ github.event.inputs.marker_expression }}" -s -vvv --testbed="${{ github.event.inputs.testbed }}" -o firmware="${{ github.event.inputs.firmware }}" --alluredir=/tmp/allure-results + pytest -m "${{ github.event.inputs.marker_expression }}" -s -vvv --testbed="basic" -o firmware="${{ github.event.inputs.firmware }}" --alluredir=/tmp/allure-results ret=\$? # sleep some time to be able to download the Allure results sleep 60 From 4cdaa84cdccf03bf0103aa1af1f8912ad9051941 Mon Sep 17 00:00:00 2001 From: Max Brenner Date: Mon, 29 Nov 2021 15:30:14 +0100 Subject: [PATCH 5/9] improve dns resolution logic Signed-off-by: Max Brenner --- .github/workflows/quali-basic-manual.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/quali-basic-manual.yml b/.github/workflows/quali-basic-manual.yml index 01d869605..ce09f368e 100644 --- a/.github/workflows/quali-basic-manual.yml +++ b/.github/workflows/quali-basic-manual.yml @@ -472,11 +472,11 @@ jobs: - -x - -c - | - apt-get update - apt-get install -y dnsutils HOSTS="sec-${{ steps.reservation.outputs.identifier }}.cicd.lab.wlan.tip.build gw-${{ steps.reservation.outputs.identifier }}.cicd.lab.wlan.tip.build fms-${{ steps.reservation.outputs.identifier }}.cicd.lab.wlan.tip.build" for HOST in \$HOSTS; do - until sleep 1; host \$HOST; do :; done + HOST_ENTRY="" + until [[ ! -z "\$HOST_ENTRY" ]]; do sleep 1; HOST_ENTRY=\$(getent hosts \$HOST); done; + echo "\$HOST_ENTRY" >> /etc/hosts echo "DNS record for \$HOST resolved successfully!" done From 34367bd8b17e72b32f1052ea341c7ea3e8b6f972 Mon Sep 17 00:00:00 2001 From: shivamcandela Date: Mon, 29 Nov 2021 20:03:41 +0530 Subject: [PATCH 6/9] WIFI-5837 Added supplicant and lanforge logs to all sanity test cases Signed-off-by: shivamcandela --- libs/lanforge/lf_tests.py | 17 +++++ libs/lanforge/scp_util.py | 55 +++++++++++++++ tests/conftest.py | 34 ++++----- .../test_enterprise_ttls.py | 20 +++--- .../test_general_security_modes.py | 27 ++++--- .../test_enterprise_ttls.py | 22 +++--- .../test_general_security_modes.py | 24 +++---- .../test_enterprise_ttls.py | 22 +++--- .../test_general_security_modes.py | 46 ++++++------ tools/lf_tools.py | 70 ------------------- tools/scp_util.py | 55 +++++++++++++++ 11 files changed, 227 insertions(+), 165 deletions(-) create mode 100755 libs/lanforge/scp_util.py delete mode 100644 tools/lf_tools.py mode change 100644 => 100755 tools/scp_util.py diff --git a/libs/lanforge/lf_tests.py b/libs/lanforge/lf_tests.py index a439174b5..076d82d0d 100644 --- a/libs/lanforge/lf_tests.py +++ b/libs/lanforge/lf_tests.py @@ -22,6 +22,8 @@ for folder in 'py-json', 'py-scripts': sys.path.append(f"../lanforge/lanforge-scripts/py-scripts/tip-cicd-sanity") sys.path.append(f'../libs') +sys.path.append(f'../tools') +from tools.scp_util import SCP_File sys.path.append(f'../libs/lanforge/') from sta_connect2 import StaConnect2 import time @@ -50,6 +52,7 @@ class RunTest: def __init__(self, lanforge_data=None, local_report_path="../reports/", influx_params=None, debug=False): self.lanforge_ip = lanforge_data["ip"] self.lanforge_port = lanforge_data["port"] + self.lanforge_ssh_port = lanforge_data["ssh_port"] self.twog_radios = lanforge_data["2.4G-Radio"] self.fiveg_radios = lanforge_data["5G-Radio"] self.ax_radios = lanforge_data["AX-Radio"] @@ -129,6 +132,13 @@ class RunTest: print("test result: " + result) pytest.exit("Test Failed: Debug True") self.staConnect.cleanup() + supplicqant = "/home/lanforge/wifi/wpa_supplicant_log_" + self.staConnect.radio.split(".")[2] + ".txt" + obj = SCP_File(ip=self.lanforge_ip, port=self.lanforge_ssh_port, username="root", password="lanforge", + remote_path=supplicqant, + local_path=".") + obj.pull_file() + allure.attach.file(source="wpa_supplicant_log_" + self.staConnect.radio.split(".")[2] + ".txt", + name="supplicant_log") for result in run_results: print("test result: " + result) result = True @@ -215,6 +225,13 @@ class RunTest: # print(e) self.eap_connect.stop() + supplicqant = "/home/lanforge/wifi/wpa_supplicant_log_" + self.eap_connect.radio.split(".")[2] + ".txt" + obj = SCP_File(ip=self.lanforge_ip, port=self.lanforge_ssh_port, username="root", password="lanforge", + remote_path=supplicqant, + local_path=".") + obj.pull_file() + allure.attach.file(source="wpa_supplicant_log_" + self.eap_connect.radio.split(".")[2] + ".txt", + name="supplicant_log") if not self.eap_connect.passes(): if self.debug: print("test result: " + self.eap_connect.passes()) diff --git a/libs/lanforge/scp_util.py b/libs/lanforge/scp_util.py new file mode 100755 index 000000000..3b2c53177 --- /dev/null +++ b/libs/lanforge/scp_util.py @@ -0,0 +1,55 @@ +#!/usr/bin/env python3 +import argparse + +import paramiko +from scp import SCPClient + + +class SCP_File: + def __init__(self, ip="localhost", port=22, username="lanforge", password="lanforge", remote_path="/home/lanforge/", + local_path="."): + self.ip = ip + self.port = port + self.remote_path = remote_path + self.local_path = local_path + self.username = username + self.password = password + + def pull_file(self): + ssh = paramiko.SSHClient() + ssh.load_system_host_keys() + ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) + ssh.connect(hostname=self.ip, username=self.username, password=self.password, port=self.port, allow_agent=False, + look_for_keys=False) + # ssh.close() + + with SCPClient(ssh.get_transport()) as scp: + scp.get(remote_path=self.remote_path, local_path=self.local_path, recursive=True) + scp.close() + + +def main(): + parser = argparse.ArgumentParser(prog="lf_utils", + formatter_class=argparse.RawTextHelpFormatter, + allow_abbrev=True, + epilog="About lf_tools.py", + description="Tools for LANforge System") + parser.add_argument('--host', type=str, help=' --host : IP Address f LANforge System', default="localhost") + parser.add_argument('--port', type=int, help='--passwd of dut', default=22) + parser.add_argument('--username', type=str, help='--username to use on LANforge', default="lanforge") + parser.add_argument('--password', type=str, help='--password to use on LANforge', default="lanforge") + parser.add_argument('--remote_path', type=str, help='--password to the given username', + default="/home/lanforge/lf_kinstall.pl") + parser.add_argument('--local_path', type=str, help='--action to perform' + 'reboot | run_cmd', default=".") + args = parser.parse_args() + lf_tools = SCP_File(ip=args.host, port=args.port, + username=args.username, password=args.password, + remote_path=args.remote_path, local_path=args.local_path) + lf_tools.pull_file() + + + + +if __name__ == '__main__': + main() diff --git a/tests/conftest.py b/tests/conftest.py index 8822c9442..6b24e4454 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -42,7 +42,6 @@ from LANforge.LFUtils import * if 'py-json' not in sys.path: sys.path.append('../py-scripts') from apnos.apnos import APNOS -from controller.controller_1x.controller import Controller from controller.controller_1x.controller import FirmwareUtility import pytest from lanforge.lf_tests import RunTest @@ -50,11 +49,10 @@ from cv_test_manager import cv_test from configuration import CONFIGURATION from configuration import RADIUS_SERVER_DATA from configuration import RADIUS_ACCOUNTING_DATA - +from lanforge.scp_util import SCP_File from testrails.testrail_api import APIClient from testrails.reporting import Reporting from lf_tools import ChamberView -from sta_connect2 import StaConnect2 from os import path from typing import Any, Callable, Optional @@ -683,19 +681,21 @@ def get_ap_logs(request, get_apnos, get_configuration): @pytest.fixture(scope="function") def get_lf_logs(request, get_apnos, get_configuration): - S = 9 - instance_name = ''.join(random.choices(string.ascii_uppercase + string.digits, k=S)) - for ap in get_configuration['access_point']: - ap_ssh = get_apnos(ap, pwd="../libs/apnos/", sdk="2.x") - ap_ssh.run_generic_command(cmd="logger start testcase: " + instance_name) + ip = get_configuration["traffic_generator"]["details"]["ip"] + port = get_configuration["traffic_generator"]["details"]["ssh_port"] - def collect_logs(): - for ap in get_configuration['access_point']: - ap_ssh = get_apnos(ap, pwd="../libs/apnos/", sdk="2.x") - ap_ssh.run_generic_command(cmd="logger stop testcase: " + instance_name) - ap_logs = ap_ssh.get_logread(start_ref="start testcase: " + instance_name, - stop_ref="stop testcase: " + instance_name) - allure.attach(name='logread', body=str(ap_logs)) - pass + def collect_logs_lf(): + log_0 = "/home/lanforge/lanforge_log_0.txt" + log_1 = "/home/lanforge/lanforge_log_1.txt" + obj = SCP_File(ip=ip, port=port, username="root", password="lanforge", remote_path=log_0, + local_path=".") + obj.pull_file() + allure.attach.file(source="lanforge_log_0.txt", + name="lanforge_log_0") + obj = SCP_File(ip=ip, port=port, username="root", password="lanforge", remote_path=log_1, + local_path=".") + obj.pull_file() + allure.attach.file(source="lanforge_log_1.txt", + name="lanforge_log_1") - request.addfinalizer(collect_logs) + request.addfinalizer(collect_logs_lf) diff --git a/tests/e2e/basic/validation_of_operating_modes/bridge_mode/client_connectivity/test_enterprise_ttls.py b/tests/e2e/basic/validation_of_operating_modes/bridge_mode/client_connectivity/test_enterprise_ttls.py index aac865b2b..6d2683a34 100644 --- a/tests/e2e/basic/validation_of_operating_modes/bridge_mode/client_connectivity/test_enterprise_ttls.py +++ b/tests/e2e/basic/validation_of_operating_modes/bridge_mode/client_connectivity/test_enterprise_ttls.py @@ -46,7 +46,7 @@ class TestBridgeModeEnterpriseTTLSSuiteA(object): @pytest.mark.wpa_enterprise @pytest.mark.twog - def test_wpa_enterprise_2g(self, get_vif_state, get_ap_logs, + def test_wpa_enterprise_2g(self, get_vif_state, get_ap_logs, get_lf_logs, station_names_twog, setup_profiles, lf_test, update_report, test_cases, radius_info, exit_on_fail): """ wpa enterprise 2g @@ -73,7 +73,7 @@ class TestBridgeModeEnterpriseTTLSSuiteA(object): @pytest.mark.wpa_enterprise @pytest.mark.fiveg - def test_wpa_enterprise_5g(self, station_names_fiveg, get_ap_logs, + def test_wpa_enterprise_5g(self, station_names_fiveg, get_ap_logs, get_lf_logs, setup_profiles, lf_test, update_report, test_cases, radius_info, exit_on_fail): """ wpa enterprise 5g @@ -98,7 +98,7 @@ class TestBridgeModeEnterpriseTTLSSuiteA(object): @pytest.mark.sanity_light @pytest.mark.wpa2_enterprise @pytest.mark.twog - def test_wpa2_enterprise_2g(self, get_vif_state, get_ap_logs, + def test_wpa2_enterprise_2g(self, get_vif_state, get_ap_logs, get_lf_logs, station_names_twog, setup_profiles, lf_test, update_report, test_cases, radius_info, exit_on_fail): """ wpa enterprise 2g @@ -126,7 +126,7 @@ class TestBridgeModeEnterpriseTTLSSuiteA(object): @pytest.mark.sanity_light @pytest.mark.wpa2_enterprise @pytest.mark.fiveg - def test_wpa2_enterprise_5g(self, get_vif_state, get_ap_logs, + def test_wpa2_enterprise_5g(self, get_vif_state, get_ap_logs, get_lf_logs, station_names_fiveg, setup_profiles, lf_test, update_report, test_cases, radius_info, exit_on_fail): """ wpa enterprise 2g @@ -154,7 +154,7 @@ class TestBridgeModeEnterpriseTTLSSuiteA(object): @pytest.mark.wpa3_enterprise @pytest.mark.twog - def test_wpa3_enterprise_2g(self, get_vif_state, get_ap_logs, + def test_wpa3_enterprise_2g(self, get_vif_state, get_ap_logs, get_lf_logs, station_names_twog, setup_profiles, lf_test, update_report, test_cases, radius_info, exit_on_fail): """ wpa enterprise 2g @@ -181,7 +181,7 @@ class TestBridgeModeEnterpriseTTLSSuiteA(object): @pytest.mark.wpa3_enterprise @pytest.mark.fiveg - def test_wpa3_enterprise_5g(self, get_vif_state, get_ap_logs, + def test_wpa3_enterprise_5g(self, get_vif_state, get_ap_logs, get_lf_logs, station_names_fiveg, setup_profiles, lf_test, update_report, test_cases, radius_info, exit_on_fail): """ wpa enterprise 2g @@ -239,7 +239,7 @@ class TestBridgeModeEnterpriseTTLSSuiteTwo(object): @pytest.mark.wpa_wpa2_enterprise_mixed @pytest.mark.twog - def test_wpa_wpa2_enterprise_2g(self, get_vif_state, get_ap_logs, + def test_wpa_wpa2_enterprise_2g(self, get_vif_state, get_ap_logs, get_lf_logs, station_names_twog, setup_profiles, lf_test, update_report, test_cases, radius_info, exit_on_fail): """ wpa enterprise 2g @@ -267,7 +267,7 @@ class TestBridgeModeEnterpriseTTLSSuiteTwo(object): @pytest.mark.wpa_wpa2_enterprise_mixed @pytest.mark.fiveg - def test_wpa_wpa2_enterprise_5g(self, get_vif_state, get_ap_logs, + def test_wpa_wpa2_enterprise_5g(self, get_vif_state, get_ap_logs, get_lf_logs, station_names_fiveg, setup_profiles, lf_test, update_report, test_cases, radius_info, exit_on_fail): """ wpa enterprise 2g @@ -295,7 +295,7 @@ class TestBridgeModeEnterpriseTTLSSuiteTwo(object): @pytest.mark.wpa3_enterprise_mixed @pytest.mark.twog - def test_wpa3_enterprise_mixed_2g(self, get_vif_state, get_ap_logs, + def test_wpa3_enterprise_mixed_2g(self, get_vif_state, get_ap_logs, get_lf_logs, station_names_twog, setup_profiles, lf_test, update_report, test_cases, radius_info, exit_on_fail): """ wpa enterprise 2g @@ -322,7 +322,7 @@ class TestBridgeModeEnterpriseTTLSSuiteTwo(object): @pytest.mark.wpa3_enterprise_mixed @pytest.mark.fiveg - def test_wpa3_enterprise_mixed_5g(self, get_vif_state, get_ap_logs, + def test_wpa3_enterprise_mixed_5g(self, get_vif_state, get_ap_logs, get_lf_logs, station_names_fiveg, setup_profiles, lf_test, update_report, exit_on_fail, test_cases, radius_info): diff --git a/tests/e2e/basic/validation_of_operating_modes/bridge_mode/client_connectivity/test_general_security_modes.py b/tests/e2e/basic/validation_of_operating_modes/bridge_mode/client_connectivity/test_general_security_modes.py index b97121a4d..20ac2762c 100644 --- a/tests/e2e/basic/validation_of_operating_modes/bridge_mode/client_connectivity/test_general_security_modes.py +++ b/tests/e2e/basic/validation_of_operating_modes/bridge_mode/client_connectivity/test_general_security_modes.py @@ -50,7 +50,8 @@ class TestBridgeModeConnectivitySuiteA(object): @pytest.mark.open @pytest.mark.twog @allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-2809", name="JIRA LINK") - def test_open_ssid_2g(self, get_vif_state, get_ap_logs, setup_profiles, lf_test, update_report, + def test_open_ssid_2g(self, get_vif_state, get_ap_logs, get_lf_logs, setup_profiles, lf_test, + update_report, station_names_twog, test_cases): """Client Connectivity open ssid 2.4G @@ -76,7 +77,7 @@ class TestBridgeModeConnectivitySuiteA(object): @pytest.mark.open @pytest.mark.fiveg @allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-2801", name="JIRA LINK") - def test_open_ssid_5g(self, get_vif_state, get_ap_logs, lf_test, test_cases, station_names_fiveg, + def test_open_ssid_5g(self, get_vif_state, get_ap_logs, lf_test, test_cases, station_names_fiveg, get_lf_logs, update_report): """Client Connectivity open ssid 5G pytest -m "client_connectivity and bridge and general and open and fiveg" @@ -103,7 +104,7 @@ class TestBridgeModeConnectivitySuiteA(object): @pytest.mark.twog @allure.story('wpa 2.4 GHZ Band') @allure.testcase(url="https://telecominfraproject.atlassian.net/browse/WIFI-2801", name="JIRA LINK") - def test_wpa_ssid_2g(self, get_vif_state, get_ap_logs, update_report, + def test_wpa_ssid_2g(self, get_vif_state, get_ap_logs, update_report, get_lf_logs, lf_test, test_cases, station_names_twog): """Client Connectivity wpa ssid 2.4G pytest -m "client_connectivity and bridge and general and wpa and twog" @@ -129,7 +130,8 @@ class TestBridgeModeConnectivitySuiteA(object): @pytest.mark.wpa @pytest.mark.fiveg @allure.story('wpa 5 GHZ Band') - def test_wpa_ssid_5g(self, get_vif_state, get_ap_logs, lf_test, update_report, test_cases, station_names_fiveg): + def test_wpa_ssid_5g(self, get_vif_state, get_ap_logs, lf_test, update_report, get_lf_logs, + test_cases, station_names_fiveg): """Client Connectivity wpa ssid 5G pytest -m "client_connectivity and bridge and general and wpa and fiveg" """ @@ -154,7 +156,8 @@ class TestBridgeModeConnectivitySuiteA(object): @pytest.mark.wpa2_personal @pytest.mark.twog @allure.story('wpa2_personal 2.4 GHZ Band') - def test_wpa2_personal_ssid_2g(self, get_vif_state, get_ap_logs, lf_test, update_report, test_cases, + def test_wpa2_personal_ssid_2g(self, get_vif_state, get_ap_logs, get_lf_logs, + lf_test, update_report, test_cases, station_names_twog): """Client Connectivity wpa2_personal ssid 2.4G pytest -m "client_connectivity and bridge and general and wpa2_personal and twog" @@ -181,7 +184,7 @@ class TestBridgeModeConnectivitySuiteA(object): @pytest.mark.fiveg @allure.story('wpa2_personal 5 GHZ Band') def test_wpa2_personal_ssid_5g(self, get_vif_state, get_ap_logs, update_report, test_cases, - station_names_fiveg, + station_names_fiveg, get_lf_logs, lf_test): """Client Connectivity wpa2_personal ssid 5G pytest -m "client_connectivity and bridge and general and wpa2_personal and fiveg" @@ -270,7 +273,8 @@ class TestBridgeModeConnectivitySuiteTwo(object): @pytest.mark.wpa3_personal @pytest.mark.fiveg @allure.story('open 5 GHZ Band') - def test_wpa3_personal_ssid_5g(self, get_vif_state, get_ap_logs, station_names_fiveg, lf_test, test_cases, + def test_wpa3_personal_ssid_5g(self, get_vif_state, get_ap_logs, station_names_fiveg, + lf_test, test_cases, get_lf_logs, update_report): """Client Connectivity open ssid 2.4G pytest -m "client_connectivity and bridge and general and wpa3_personal and fiveg" @@ -296,7 +300,7 @@ class TestBridgeModeConnectivitySuiteTwo(object): @pytest.mark.twog @allure.story('open 2.4 GHZ Band') def test_wpa3_personal_mixed_ssid_2g(self, get_vif_state, get_ap_logs, station_names_twog, setup_profiles, - lf_test, + lf_test, get_lf_logs, update_report, test_cases): """Client Connectivity open ssid 2.4G @@ -323,7 +327,7 @@ class TestBridgeModeConnectivitySuiteTwo(object): @pytest.mark.fiveg @allure.story('open 5 GHZ Band') def test_wpa3_personal_mixed_ssid_5g(self, get_vif_state, get_ap_logs, station_names_fiveg, lf_test, - test_cases, + test_cases, get_lf_logs, update_report): """Client Connectivity open ssid 2.4G pytest -m "client_connectivity and bridge and general and wpa3_personal_mixed and fiveg" @@ -349,7 +353,7 @@ class TestBridgeModeConnectivitySuiteTwo(object): @pytest.mark.twog @allure.story('wpa wpa2 personal mixed 2.4 GHZ Band') def test_wpa_wpa2_personal_ssid_2g(self, get_vif_state, get_ap_logs, station_names_twog, setup_profiles, - lf_test, + lf_test, get_lf_logs, update_report, test_cases): """Client Connectivity open ssid 2.4G @@ -376,7 +380,8 @@ class TestBridgeModeConnectivitySuiteTwo(object): @pytest.mark.wpa_wpa2_personal_mixed @pytest.mark.fiveg @allure.story('wpa wpa2 personal mixed 5 GHZ Band') - def test_wpa_wpa2_personal_ssid_5g(self, get_vif_state, get_ap_logs, station_names_fiveg, lf_test, test_cases, + def test_wpa_wpa2_personal_ssid_5g(self, get_vif_state, get_ap_logs, station_names_fiveg, get_lf_logs, + lf_test, test_cases, update_report): """Client Connectivity open ssid 2.4G pytest -m "client_connectivity and bridge and general and wpa_wpa2_personal_mixed and fiveg" diff --git a/tests/e2e/basic/validation_of_operating_modes/nat_mode/client_connectivity/test_enterprise_ttls.py b/tests/e2e/basic/validation_of_operating_modes/nat_mode/client_connectivity/test_enterprise_ttls.py index d88ed1823..c5b35b0e2 100644 --- a/tests/e2e/basic/validation_of_operating_modes/nat_mode/client_connectivity/test_enterprise_ttls.py +++ b/tests/e2e/basic/validation_of_operating_modes/nat_mode/client_connectivity/test_enterprise_ttls.py @@ -34,7 +34,7 @@ class TestNATModeEnterpriseTTLSSuiteOne(object): @pytest.mark.wpa_enterprise @pytest.mark.twog - def test_wpa_enterprise_2g(self, get_vif_state, get_ap_logs, + def test_wpa_enterprise_2g(self, get_vif_state, get_ap_logs, get_lf_logs, station_names_twog, setup_profiles, lf_test, update_report, test_cases, radius_info, exit_on_fail): profile_data = setup_params_enterprise["ssid_modes"]["wpa_enterprise"][0] @@ -59,7 +59,7 @@ class TestNATModeEnterpriseTTLSSuiteOne(object): @pytest.mark.wpa_enterprise @pytest.mark.fiveg - def test_wpa_enterprise_5g(self, get_vif_state, get_ap_logs, + def test_wpa_enterprise_5g(self, get_vif_state, get_ap_logs, get_lf_logs, station_names_fiveg, setup_profiles, lf_test, update_report, test_cases, radius_info, exit_on_fail): profile_data = setup_params_enterprise["ssid_modes"]["wpa_enterprise"][1] @@ -85,7 +85,7 @@ class TestNATModeEnterpriseTTLSSuiteOne(object): @pytest.mark.sanity_light @pytest.mark.wpa2_enterprise @pytest.mark.twog - def test_wpa2_enterprise_2g(self, get_vif_state, get_ap_logs, + def test_wpa2_enterprise_2g(self, get_vif_state, get_ap_logs, get_lf_logs, station_names_twog, setup_profiles, lf_test, update_report, test_cases, radius_info, exit_on_fail): profile_data = setup_params_enterprise["ssid_modes"]["wpa2_enterprise"][0] @@ -111,7 +111,7 @@ class TestNATModeEnterpriseTTLSSuiteOne(object): @pytest.mark.sanity_light @pytest.mark.wpa2_enterprise @pytest.mark.fiveg - def test_wpa2_enterprise_5g(self, get_vif_state, get_ap_logs, + def test_wpa2_enterprise_5g(self, get_vif_state, get_ap_logs, get_lf_logs, station_names_fiveg, setup_profiles, lf_test, update_report, test_cases, radius_info, exit_on_fail): profile_data = setup_params_enterprise["ssid_modes"]["wpa2_enterprise"][1] @@ -136,7 +136,7 @@ class TestNATModeEnterpriseTTLSSuiteOne(object): @pytest.mark.wpa3_enterprise @pytest.mark.twog - def test_wpa3_enterprise_2g(self, get_vif_state, get_ap_logs, + def test_wpa3_enterprise_2g(self, get_vif_state, get_ap_logs, get_lf_logs, station_names_twog, setup_profiles, lf_test, update_report, test_cases, radius_info, exit_on_fail): profile_data = setup_params_enterprise["ssid_modes"]["wpa3_enterprise"][0] @@ -160,7 +160,7 @@ class TestNATModeEnterpriseTTLSSuiteOne(object): @pytest.mark.wpa3_enterprise @pytest.mark.fiveg - def test_wpa3_enterprise_5g(self, get_vif_state,station_names_fiveg, get_ap_logs, + def test_wpa3_enterprise_5g(self, get_vif_state,station_names_fiveg, get_ap_logs, get_lf_logs, setup_profiles, lf_test, update_report, test_cases, radius_info, exit_on_fail): profile_data = setup_params_enterprise["ssid_modes"]["wpa3_enterprise"][1] @@ -210,7 +210,7 @@ class TestNATModeEnterpriseTTLSSuiteTwo(object): @pytest.mark.wpa_wpa2_enterprise_mixed @pytest.mark.twog - def test_wpa_wpa2_enterprise_2g(self, get_vif_state, get_ap_logs, + def test_wpa_wpa2_enterprise_2g(self, get_vif_state, get_ap_logs, get_lf_logs, station_names_twog, setup_profiles, lf_test, update_report, test_cases, radius_info, exit_on_fail): profile_data = setup_params_enterprise_two["ssid_modes"]["wpa_wpa2_enterprise_mixed"][0] @@ -235,7 +235,7 @@ class TestNATModeEnterpriseTTLSSuiteTwo(object): @pytest.mark.wpa_wpa2_enterprise_mixed @pytest.mark.fiveg - def test_wpa_wpa2_enterprise_5g(self, get_vif_state, get_ap_logs, + def test_wpa_wpa2_enterprise_5g(self, get_vif_state, get_ap_logs, get_lf_logs, station_names_fiveg, setup_profiles, lf_test, update_report, test_cases, radius_info, exit_on_fail): profile_data = setup_params_enterprise_two["ssid_modes"]["wpa_wpa2_enterprise_mixed"][1] @@ -260,7 +260,7 @@ class TestNATModeEnterpriseTTLSSuiteTwo(object): @pytest.mark.wpa3_enterprise_mixed @pytest.mark.twog - def test_wpa3_enterprise_mixed_2g(self, get_vif_state, get_ap_logs, + def test_wpa3_enterprise_mixed_2g(self, get_vif_state, get_ap_logs, get_lf_logs, station_names_twog, setup_profiles, lf_test, update_report, test_cases, radius_info, exit_on_fail): profile_data = setup_params_enterprise_two["ssid_modes"]["wpa3_enterprise_mixed"][0] @@ -284,8 +284,8 @@ class TestNATModeEnterpriseTTLSSuiteTwo(object): @pytest.mark.wpa3_enterprise_mixed @pytest.mark.fiveg - def test_wpa3_enterprise_mixed_5g(self, get_vif_state, get_ap_logs, - station_names_fiveg, setup_profiles, lf_test, + def test_wpa3_enterprise_mixed_5g(self, get_vif_state, get_ap_logs, get_lf_logs, + station_names_fiveg, setup_profiles, lf_test, update_report, exit_on_fail, test_cases, radius_info): profile_data = setup_params_enterprise_two["ssid_modes"]["wpa3_enterprise_mixed"][1] diff --git a/tests/e2e/basic/validation_of_operating_modes/nat_mode/client_connectivity/test_general_security_modes.py b/tests/e2e/basic/validation_of_operating_modes/nat_mode/client_connectivity/test_general_security_modes.py index 32da13361..311411d1d 100644 --- a/tests/e2e/basic/validation_of_operating_modes/nat_mode/client_connectivity/test_general_security_modes.py +++ b/tests/e2e/basic/validation_of_operating_modes/nat_mode/client_connectivity/test_general_security_modes.py @@ -48,7 +48,7 @@ class TestNATModeConnectivitySuiteA(object): @pytest.mark.open @pytest.mark.twog @allure.story('open 2.4 GHZ Band') - def test_open_ssid_2g(self, get_vif_state, get_ap_logs, + def test_open_ssid_2g(self, get_vif_state, get_ap_logs, get_lf_logs, setup_profiles, lf_test, update_report, station_names_twog, test_cases): @@ -77,7 +77,7 @@ class TestNATModeConnectivitySuiteA(object): @pytest.mark.open @pytest.mark.fiveg @allure.story('open 5 GHZ Band') - def test_open_ssid_5g(self, get_vif_state, get_ap_logs, + def test_open_ssid_5g(self, get_vif_state, get_ap_logs, get_lf_logs, lf_test, test_cases, station_names_fiveg, update_report): """Client Connectivity open ssid 5G @@ -104,7 +104,7 @@ class TestNATModeConnectivitySuiteA(object): @pytest.mark.wpa @pytest.mark.twog @allure.story('wpa 2.4 GHZ Band') - def test_wpa_ssid_2g(self, get_vif_state, get_ap_logs, update_report, + def test_wpa_ssid_2g(self, get_vif_state, get_ap_logs, update_report, get_lf_logs, lf_test, test_cases, station_names_twog): """Client Connectivity wpa ssid 2.4G pytest -m "client_connectivity and NAT and general and wpa and twog" @@ -129,7 +129,7 @@ class TestNATModeConnectivitySuiteA(object): @pytest.mark.wpa @pytest.mark.fiveg @allure.story('wpa 5 GHZ Band') - def test_wpa_ssid_5g(self, get_vif_state, get_ap_logs, + def test_wpa_ssid_5g(self, get_vif_state, get_ap_logs, get_lf_logs, lf_test, update_report, test_cases, station_names_fiveg): """Client Connectivity wpa ssid 5G pytest -m "client_connectivity and NAT and general and wpa and fiveg" @@ -155,7 +155,7 @@ class TestNATModeConnectivitySuiteA(object): @pytest.mark.wpa2_personal @pytest.mark.twog @allure.story('wpa2_personal 2.4 GHZ Band') - def test_wpa2_personal_ssid_2g(self, get_vif_state, get_ap_logs, + def test_wpa2_personal_ssid_2g(self, get_vif_state, get_ap_logs, get_lf_logs, lf_test, update_report, test_cases, station_names_twog): """Client Connectivity wpa2_personal ssid 2.4G @@ -182,7 +182,7 @@ class TestNATModeConnectivitySuiteA(object): @pytest.mark.wpa2_personal @pytest.mark.fiveg @allure.story('wpa2_personal 5 GHZ Band') - def test_wpa2_personal_ssid_5g(self, get_vif_state, get_ap_logs, + def test_wpa2_personal_ssid_5g(self, get_vif_state, get_ap_logs, get_lf_logs, update_report, test_cases, station_names_fiveg, lf_test): @@ -245,7 +245,7 @@ class TestNATModeConnectivitySuiteB(object): @pytest.mark.wpa3_personal @pytest.mark.twog @allure.story('open 2.4 GHZ Band') - def test_wpa3_personal_ssid_2g(self, get_vif_state, get_ap_logs, + def test_wpa3_personal_ssid_2g(self, get_vif_state, get_ap_logs, get_lf_logs, station_names_twog, setup_profiles, lf_test, update_report, test_cases): @@ -272,7 +272,7 @@ class TestNATModeConnectivitySuiteB(object): @pytest.mark.wpa3_personal @pytest.mark.fiveg @allure.story('open 5 GHZ Band') - def test_wpa3_personal_ssid_5g(self, get_vif_state, get_ap_logs, + def test_wpa3_personal_ssid_5g(self, get_vif_state, get_ap_logs, get_lf_logs, station_names_fiveg, lf_test, test_cases, update_report): """Client Connectivity open ssid 2.4G @@ -300,7 +300,7 @@ class TestNATModeConnectivitySuiteB(object): @allure.story('open 2.4 GHZ Band') def test_wpa3_personal_mixed_ssid_2g(self, get_vif_state, get_ap_logs, station_names_twog, setup_profiles, - lf_test, + lf_test, get_lf_logs, update_report, test_cases): """Client Connectivity open ssid 2.4G @@ -326,7 +326,7 @@ class TestNATModeConnectivitySuiteB(object): @pytest.mark.wpa3_personal_mixed @pytest.mark.fiveg @allure.story('open 5 GHZ Band') - def test_wpa3_personal_mixed_ssid_5g(self, get_vif_state, get_ap_logs, + def test_wpa3_personal_mixed_ssid_5g(self, get_vif_state, get_ap_logs, get_lf_logs, station_names_fiveg, lf_test, test_cases, update_report): @@ -353,7 +353,7 @@ class TestNATModeConnectivitySuiteB(object): @pytest.mark.wpa_wpa2_personal_mixed @pytest.mark.twog @allure.story('wpa wpa2 personal mixed 2.4 GHZ Band') - def test_wpa_wpa2_personal_ssid_2g(self, get_vif_state, get_ap_logs, + def test_wpa_wpa2_personal_ssid_2g(self, get_vif_state, get_ap_logs, get_lf_logs, station_names_twog, setup_profiles, lf_test, update_report, @@ -382,7 +382,7 @@ class TestNATModeConnectivitySuiteB(object): @pytest.mark.wpa_wpa2_personal_mixed @pytest.mark.fiveg @allure.story('wpa wpa2 personal mixed 5 GHZ Band') - def test_wpa_wpa2_personal_ssid_5g(self, get_vif_state, get_ap_logs, + def test_wpa_wpa2_personal_ssid_5g(self, get_vif_state, get_ap_logs, get_lf_logs, station_names_fiveg, lf_test, test_cases, update_report): """Client Connectivity open ssid 2.4G diff --git a/tests/e2e/basic/validation_of_operating_modes/vlan_mode/client_connectivity/test_enterprise_ttls.py b/tests/e2e/basic/validation_of_operating_modes/vlan_mode/client_connectivity/test_enterprise_ttls.py index 5b2ade4eb..b804dda56 100644 --- a/tests/e2e/basic/validation_of_operating_modes/vlan_mode/client_connectivity/test_enterprise_ttls.py +++ b/tests/e2e/basic/validation_of_operating_modes/vlan_mode/client_connectivity/test_enterprise_ttls.py @@ -28,13 +28,13 @@ setup_params_enterprise = { indirect=True, scope="class" ) -@pytest.mark.uc_sanity +@pytest.mark.uc_sanityo @pytest.mark.usefixtures("setup_profiles") class TestVLANModeEnterpriseTTLSSuiteOne(object): @pytest.mark.wpa_enterprise @pytest.mark.twog - def test_wpa_enterprise_2g(self, get_vif_state, get_ap_logs, + def test_wpa_enterprise_2g(self, get_vif_state, get_ap_logs, get_lf_logs, station_names_twog, setup_profiles, lf_test, update_report, test_cases, radius_info, exit_on_fail): @@ -60,7 +60,7 @@ class TestVLANModeEnterpriseTTLSSuiteOne(object): @pytest.mark.wpa_enterprise @pytest.mark.fiveg - def test_wpa_enterprise_5g(self, get_vif_state, get_ap_logs, + def test_wpa_enterprise_5g(self, get_vif_state, get_ap_logs, get_lf_logs, station_names_fiveg, setup_profiles, lf_test, update_report, test_cases, radius_info, exit_on_fail): @@ -87,7 +87,7 @@ class TestVLANModeEnterpriseTTLSSuiteOne(object): @pytest.mark.sanity_light @pytest.mark.wpa2_enterprise @pytest.mark.twog - def test_wpa2_enterprise_2g(self, get_vif_state, get_ap_logs, + def test_wpa2_enterprise_2g(self, get_vif_state, get_ap_logs, get_lf_logs, station_names_twog, setup_profiles, lf_test, update_report, test_cases, radius_info, exit_on_fail): @@ -114,7 +114,7 @@ class TestVLANModeEnterpriseTTLSSuiteOne(object): @pytest.mark.sanity_light @pytest.mark.wpa2_enterprise @pytest.mark.fiveg - def test_wpa2_enterprise_5g(self, get_vif_state, get_ap_logs, + def test_wpa2_enterprise_5g(self, get_vif_state, get_ap_logs, get_lf_logs, station_names_fiveg, setup_profiles, lf_test, update_report, test_cases, radius_info, exit_on_fail): @@ -140,7 +140,7 @@ class TestVLANModeEnterpriseTTLSSuiteOne(object): @pytest.mark.wpa3_enterprise @pytest.mark.twog - def test_wpa3_enterprise_2g(self, get_vif_state, get_ap_logs, + def test_wpa3_enterprise_2g(self, get_vif_state, get_ap_logs, get_lf_logs, station_names_twog, setup_profiles, lf_test, update_report, test_cases, radius_info, exit_on_fail): @@ -165,7 +165,7 @@ class TestVLANModeEnterpriseTTLSSuiteOne(object): @pytest.mark.wpa3_enterprise @pytest.mark.fiveg - def test_wpa3_enterprise_5g(self, get_vif_state, get_ap_logs, + def test_wpa3_enterprise_5g(self, get_vif_state, get_ap_logs, get_lf_logs, station_names_fiveg, setup_profiles, lf_test, update_report, test_cases, radius_info, exit_on_fail): @@ -216,7 +216,7 @@ class TestVLANModeEnterpriseTTLSSuiteTwo(object): @pytest.mark.wpa_wpa2_enterprise_mixed @pytest.mark.twog - def test_wpa_wpa2_enterprise_2g(self, get_vif_state, get_ap_logs, + def test_wpa_wpa2_enterprise_2g(self, get_vif_state, get_ap_logs, get_lf_logs, station_names_twog, setup_profiles, lf_test, update_report, test_cases, radius_info, exit_on_fail): @@ -244,7 +244,7 @@ class TestVLANModeEnterpriseTTLSSuiteTwo(object): @pytest.mark.fiveg def test_wpa_wpa2_enterprise_5g(self, get_vif_state, get_ap_logs, station_names_fiveg, setup_profiles, - lf_test, + lf_test, get_lf_logs, update_report, test_cases, radius_info, exit_on_fail): profile_data = setup_params_enterprise_two["ssid_modes"]["wpa_wpa2_enterprise_mixed"][1] ssid_name = profile_data["ssid_name"] @@ -268,7 +268,7 @@ class TestVLANModeEnterpriseTTLSSuiteTwo(object): @pytest.mark.wpa3_enterprise_mixed @pytest.mark.twog - def test_wpa3_enterprise_mixed_2g(self, get_vif_state, get_ap_logs, + def test_wpa3_enterprise_mixed_2g(self, get_vif_state, get_ap_logs, get_lf_logs, station_names_twog, setup_profiles, lf_test, update_report, test_cases, radius_info, exit_on_fail): @@ -293,7 +293,7 @@ class TestVLANModeEnterpriseTTLSSuiteTwo(object): @pytest.mark.wpa3_enterprise_mixed @pytest.mark.fiveg - def test_wpa3_enterprise_mixed_5g(self, get_vif_state, get_ap_logs, + def test_wpa3_enterprise_mixed_5g(self, get_vif_state, get_ap_logs, get_lf_logs, station_names_fiveg, setup_profiles, lf_test, update_report, exit_on_fail, diff --git a/tests/e2e/basic/validation_of_operating_modes/vlan_mode/client_connectivity/test_general_security_modes.py b/tests/e2e/basic/validation_of_operating_modes/vlan_mode/client_connectivity/test_general_security_modes.py index 021096dfb..25f2507fe 100644 --- a/tests/e2e/basic/validation_of_operating_modes/vlan_mode/client_connectivity/test_general_security_modes.py +++ b/tests/e2e/basic/validation_of_operating_modes/vlan_mode/client_connectivity/test_general_security_modes.py @@ -28,7 +28,7 @@ setup_params_general = { } -@pytest.mark.uc_sanity +@pytest.mark.uc_sanityo @pytest.mark.suiteA @allure.feature("vlan MODE CLIENT CONNECTIVITY") @pytest.mark.parametrize( @@ -46,8 +46,8 @@ class TestvlanModeConnectivitySuiteA(object): @pytest.mark.open @pytest.mark.twog @allure.story('open 2.4 GHZ Band') - def test_open_ssid_2g(self, get_vif_state, get_ap_logs, - setup_profiles, lf_test, update_report, + def test_open_ssid_2g(self, get_vif_state, get_ap_logs, get_lf_logs, + setup_profiles, lf_test, update_report, station_names_twog, test_cases): """Client Connectivity open ssid 2.4G @@ -72,8 +72,8 @@ class TestvlanModeConnectivitySuiteA(object): @pytest.mark.open @pytest.mark.fiveg @allure.story('open 5 GHZ Band') - def test_open_ssid_5g(self, get_vif_state, get_ap_logs, - lf_test, test_cases, station_names_fiveg, + def test_open_ssid_5g(self, get_vif_state, get_ap_logs, get_lf_logs, + lf_test, test_cases, station_names_fiveg, update_report): """Client Connectivity open ssid 5G pytest -m "client_connectivity and vlan and general and open and fiveg" @@ -100,7 +100,7 @@ class TestvlanModeConnectivitySuiteA(object): @pytest.mark.twog @allure.story('wpa 2.4 GHZ Band') def test_wpa_ssid_2g(self, get_vif_state, get_ap_logs, - update_report, + update_report, get_lf_logs, lf_test, test_cases, station_names_twog): """Client Connectivity wpa ssid 2.4G pytest -m "client_connectivity and vlan and general and wpa and twog" @@ -126,7 +126,7 @@ class TestvlanModeConnectivitySuiteA(object): @pytest.mark.wpa @pytest.mark.fiveg @allure.story('wpa 5 GHZ Band') - def test_wpa_ssid_5g(self, get_vif_state, get_ap_logs, + def test_wpa_ssid_5g(self, get_vif_state, get_ap_logs, get_lf_logs, lf_test, update_report, test_cases, station_names_fiveg): """Client Connectivity wpa ssid 5G pytest -m "client_connectivity and vlan and general and wpa and fiveg" @@ -152,8 +152,8 @@ class TestvlanModeConnectivitySuiteA(object): @pytest.mark.wpa2_personal @pytest.mark.twog @allure.story('wpa2_personal 2.4 GHZ Band') - def test_wpa2_personal_ssid_2g(self, get_vif_state, get_ap_logs, - lf_test, update_report, test_cases, + def test_wpa2_personal_ssid_2g(self, get_vif_state, get_ap_logs, get_lf_logs, + lf_test, update_report, test_cases, station_names_twog): """Client Connectivity wpa2_personal ssid 2.4G pytest -m "client_connectivity and vlan and general and wpa2_personal and twog" @@ -179,8 +179,8 @@ class TestvlanModeConnectivitySuiteA(object): @pytest.mark.wpa2_personal @pytest.mark.fiveg @allure.story('wpa2_personal 5 GHZ Band') - def test_wpa2_personal_ssid_5g(self, get_vif_state, get_ap_logs, - update_report, test_cases, + def test_wpa2_personal_ssid_5g(self, get_vif_state, get_ap_logs, get_lf_logs, + update_report, test_cases, station_names_fiveg, lf_test): """Client Connectivity wpa2_personal ssid 5G @@ -243,8 +243,8 @@ class TestvlanModeConnectivitySuiteTwo(object): @pytest.mark.wpa3_personal @pytest.mark.twog @allure.story('open 2.4 GHZ Band') - def test_wpa3_personal_ssid_2g(self, get_vif_state, get_ap_logs, - station_names_twog, setup_profiles, lf_test, + def test_wpa3_personal_ssid_2g(self, get_vif_state, get_ap_logs, get_lf_logs, + station_names_twog, setup_profiles, lf_test, update_report, test_cases): """Client Connectivity open ssid 2.4G @@ -271,8 +271,8 @@ class TestvlanModeConnectivitySuiteTwo(object): @pytest.mark.wpa3_personal @pytest.mark.fiveg @allure.story('open 5 GHZ Band') - def test_wpa3_personal_ssid_5g(self, get_vif_state, get_ap_logs, - station_names_fiveg, lf_test, test_cases, + def test_wpa3_personal_ssid_5g(self, get_vif_state, get_ap_logs, get_lf_logs, + station_names_fiveg, lf_test, test_cases, update_report): """Client Connectivity open ssid 2.4G pytest -m "client_connectivity and vlan and general and wpa3_personal and fiveg" @@ -298,8 +298,8 @@ class TestvlanModeConnectivitySuiteTwo(object): @pytest.mark.twog @allure.story('open 2.4 GHZ Band') def test_wpa3_personal_mixed_ssid_2g(self, get_vif_state, get_ap_logs, - station_names_twog, setup_profiles, - lf_test, + station_names_twog, setup_profiles, + lf_test, get_lf_logs, update_report, test_cases): """Client Connectivity open ssid 2.4G @@ -326,8 +326,8 @@ class TestvlanModeConnectivitySuiteTwo(object): @pytest.mark.fiveg @allure.story('open 5 GHZ Band') def test_wpa3_personal_mixed_ssid_5g(self, get_vif_state, get_ap_logs, - station_names_fiveg, lf_test, - test_cases, + station_names_fiveg, lf_test, + test_cases, get_lf_logs, update_report): """Client Connectivity open ssid 2.4G pytest -m "client_connectivity and vlan and general and wpa3_personal_mixed and fiveg" @@ -353,8 +353,8 @@ class TestvlanModeConnectivitySuiteTwo(object): @pytest.mark.twog @allure.story('wpa wpa2 personal mixed 2.4 GHZ Band') def test_wpa_wpa2_personal_ssid_2g(self, get_vif_state, get_ap_logs, - station_names_twog, setup_profiles, - lf_test, + station_names_twog, setup_profiles, + lf_test, get_lf_logs, update_report, test_cases): """Client Connectivity open ssid 2.4G @@ -381,8 +381,8 @@ class TestvlanModeConnectivitySuiteTwo(object): @pytest.mark.wpa_wpa2_personal_mixed @pytest.mark.fiveg @allure.story('wpa wpa2 personal mixed 5 GHZ Band') - def test_wpa_wpa2_personal_ssid_5g(self, get_vif_state, get_ap_logs, - station_names_fiveg, lf_test, test_cases, + def test_wpa_wpa2_personal_ssid_5g(self, get_vif_state, get_ap_logs, get_lf_logs, + station_names_fiveg, lf_test, test_cases, update_report): """Client Connectivity open ssid 2.4G pytest -m "client_connectivity and vlan and general and wpa_wpa2_personal_mixed and fiveg" diff --git a/tools/lf_tools.py b/tools/lf_tools.py deleted file mode 100644 index bb47ad288..000000000 --- a/tools/lf_tools.py +++ /dev/null @@ -1,70 +0,0 @@ -#!/usr/bin/python3.9 -""" - - lf_tools : Tools for LANforge - reboot, run_cmd, etc - ./lf_tools --host 10.28.3.8 --port 22 --username root --password lanforge --action reboot - ./lf_tools --host 10.28.3.8 --port 22 --username root --password lanforge --action run_cmd --cmd ls - -""" -import argparse -import paramiko - - -class LFTools: - - def __init__(self, host="", port=22, username="root", password="lanforge"): - self.host = host - self.port = port - self.username = username - self.password = password - - def ssh_cli_connect(self): - client = paramiko.SSHClient() - client.set_missing_host_key_policy(paramiko.AutoAddPolicy()) - print("Connecting to LANforge: %s@%s:%s" % ( - self.username, self.host, self.port)) - client.connect(self.host, username=self.username, password=self.password, - port=self.port, timeout=10, allow_agent=False, banner_timeout=200) - - return client - - def run_cmd(self, cmd): - client = self.ssh_cli_connect() - stdin, stdout, stderr = client.exec_command(cmd) - output = "Output: " + str(stdout.read()) - error = "Error: " + str(stderr.read()) - client.close() - return output, error - - def run_action(self, action, cmd): - if action == "reboot": - output, error = self.run_cmd("reboot") - print(output, error) - elif action == "run_cmd": - output, error = self.run_cmd(cmd) - print(output, error) - else: - print("Invalid Action") - - -def main(): - parser = argparse.ArgumentParser(prog="lf_utils", - formatter_class=argparse.RawTextHelpFormatter, - allow_abbrev=True, - epilog="About lf_tools.py", - description="Tools for LANforge System") - parser.add_argument('--host', type=str, help=' --host : IP Address f LANforge System', default="localhost") - parser.add_argument('--port', type=int, help='--passwd of dut', default=22) - parser.add_argument('--username', type=str, help='--username to use on LANforge', default="root") - parser.add_argument('--password', type=str, help='--password to the given username', default="lanforge") - parser.add_argument('--action', type=str, help='--action to perform' - 'reboot | run_cmd', default="run_cmd") - parser.add_argument('--cmd', type=str, help='--cmd : used when action is "run_cmd"', default="pwd") - args = parser.parse_args() - lf_tools = LFTools(host=args.host, port=args.port, username=args.username, password=args.password) - lf_tools.run_action(args.action, args.cmd) - - -if __name__ == '__main__': - main() diff --git a/tools/scp_util.py b/tools/scp_util.py old mode 100644 new mode 100755 index e69de29bb..3b2c53177 --- a/tools/scp_util.py +++ b/tools/scp_util.py @@ -0,0 +1,55 @@ +#!/usr/bin/env python3 +import argparse + +import paramiko +from scp import SCPClient + + +class SCP_File: + def __init__(self, ip="localhost", port=22, username="lanforge", password="lanforge", remote_path="/home/lanforge/", + local_path="."): + self.ip = ip + self.port = port + self.remote_path = remote_path + self.local_path = local_path + self.username = username + self.password = password + + def pull_file(self): + ssh = paramiko.SSHClient() + ssh.load_system_host_keys() + ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) + ssh.connect(hostname=self.ip, username=self.username, password=self.password, port=self.port, allow_agent=False, + look_for_keys=False) + # ssh.close() + + with SCPClient(ssh.get_transport()) as scp: + scp.get(remote_path=self.remote_path, local_path=self.local_path, recursive=True) + scp.close() + + +def main(): + parser = argparse.ArgumentParser(prog="lf_utils", + formatter_class=argparse.RawTextHelpFormatter, + allow_abbrev=True, + epilog="About lf_tools.py", + description="Tools for LANforge System") + parser.add_argument('--host', type=str, help=' --host : IP Address f LANforge System', default="localhost") + parser.add_argument('--port', type=int, help='--passwd of dut', default=22) + parser.add_argument('--username', type=str, help='--username to use on LANforge', default="lanforge") + parser.add_argument('--password', type=str, help='--password to use on LANforge', default="lanforge") + parser.add_argument('--remote_path', type=str, help='--password to the given username', + default="/home/lanforge/lf_kinstall.pl") + parser.add_argument('--local_path', type=str, help='--action to perform' + 'reboot | run_cmd', default=".") + args = parser.parse_args() + lf_tools = SCP_File(ip=args.host, port=args.port, + username=args.username, password=args.password, + remote_path=args.remote_path, local_path=args.local_path) + lf_tools.pull_file() + + + + +if __name__ == '__main__': + main() From ab844eb86de85fddd70192475c1201246f1ec008 Mon Sep 17 00:00:00 2001 From: Max Date: Mon, 29 Nov 2021 16:47:02 +0100 Subject: [PATCH 7/9] output controller logs on test failure (#297) Signed-off-by: Max Brenner --- .github/workflows/quali.yml | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/.github/workflows/quali.yml b/.github/workflows/quali.yml index 26c029c63..b3f76616e 100644 --- a/.github/workflows/quali.yml +++ b/.github/workflows/quali.yml @@ -552,6 +552,22 @@ jobs: kubectl logs -f $podname >/dev/null 2>&1 exit $(kubectl get pod $podname --output="jsonpath={.status.containerStatuses[].state.terminated.exitCode}") + - name: show gw logs + if: failure() + run: kubectl -n openwifi-${{ steps.reservation.outputs.identifier }} logs deployment/owgw + + - name: show fms logs + if: failure() + run: kubectl -n openwifi-${{ steps.reservation.outputs.identifier }} logs deployment/owfms + + - name: show prov logs + if: failure() + run: kubectl -n openwifi-${{ steps.reservation.outputs.identifier }} logs deployment/owprov + + - name: show sec logs + if: failure() + run: kubectl -n openwifi-${{ steps.reservation.outputs.identifier }} logs deployment/owsec + - name: upload Allure results as artifact if: always() uses: actions/upload-artifact@v2 From 4d038859f0c347c3995906b0a21ff748a941c140 Mon Sep 17 00:00:00 2001 From: shivamcandela Date: Mon, 29 Nov 2021 22:00:51 +0530 Subject: [PATCH 8/9] WIFI-5837 : added lf_tests Signed-off-by: shivamcandela --- libs/lanforge/lf_tests.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/libs/lanforge/lf_tests.py b/libs/lanforge/lf_tests.py index 076d82d0d..fef4074ba 100644 --- a/libs/lanforge/lf_tests.py +++ b/libs/lanforge/lf_tests.py @@ -23,13 +23,12 @@ sys.path.append(f"../lanforge/lanforge-scripts/py-scripts/tip-cicd-sanity") sys.path.append(f'../libs') sys.path.append(f'../tools') -from tools.scp_util import SCP_File sys.path.append(f'../libs/lanforge/') from sta_connect2 import StaConnect2 import time import string import random - +from scp_util import SCP_File S = 12 # from eap_connect import EAPConnect from test_ipv4_ttls import TTLSTest From de931cf3c40bcbb9b0f59d5f99a45898f1f220a5 Mon Sep 17 00:00:00 2001 From: shivamcandela Date: Mon, 29 Nov 2021 22:15:56 +0530 Subject: [PATCH 9/9] WIFI-5837 : fixed the marker expression Signed-off-by: shivamcandela --- .../vlan_mode/client_connectivity/test_enterprise_ttls.py | 2 +- .../client_connectivity/test_general_security_modes.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/e2e/basic/validation_of_operating_modes/vlan_mode/client_connectivity/test_enterprise_ttls.py b/tests/e2e/basic/validation_of_operating_modes/vlan_mode/client_connectivity/test_enterprise_ttls.py index b804dda56..748202f50 100644 --- a/tests/e2e/basic/validation_of_operating_modes/vlan_mode/client_connectivity/test_enterprise_ttls.py +++ b/tests/e2e/basic/validation_of_operating_modes/vlan_mode/client_connectivity/test_enterprise_ttls.py @@ -28,7 +28,7 @@ setup_params_enterprise = { indirect=True, scope="class" ) -@pytest.mark.uc_sanityo +@pytest.mark.uc_sanity @pytest.mark.usefixtures("setup_profiles") class TestVLANModeEnterpriseTTLSSuiteOne(object): diff --git a/tests/e2e/basic/validation_of_operating_modes/vlan_mode/client_connectivity/test_general_security_modes.py b/tests/e2e/basic/validation_of_operating_modes/vlan_mode/client_connectivity/test_general_security_modes.py index 25f2507fe..097703e20 100644 --- a/tests/e2e/basic/validation_of_operating_modes/vlan_mode/client_connectivity/test_general_security_modes.py +++ b/tests/e2e/basic/validation_of_operating_modes/vlan_mode/client_connectivity/test_general_security_modes.py @@ -28,7 +28,7 @@ setup_params_general = { } -@pytest.mark.uc_sanityo +@pytest.mark.uc_sanity @pytest.mark.suiteA @allure.feature("vlan MODE CLIENT CONNECTIVITY") @pytest.mark.parametrize(