diff --git a/.github/workflows/ow_sdk_docker-compose.yml b/.github/workflows/ow_sdk_docker-compose.yml new file mode 100644 index 000000000..7bfd440a4 --- /dev/null +++ b/.github/workflows/ow_sdk_docker-compose.yml @@ -0,0 +1,11 @@ +name: 2.x SDK testing with Docker Compose deployment + +on: + workflow_dispatch: + +jobs: + test: + runs-on: ubuntu-20.04 + steps: + - name: Run echo + run: echo "This is a dummy workflow." diff --git a/.github/workflows/uc_sanity.yml b/.github/workflows/uc_sanity.yml index f6e302484..fdba5e70a 100644 --- a/.github/workflows/uc_sanity.yml +++ b/.github/workflows/uc_sanity.yml @@ -107,11 +107,11 @@ jobs: run: | export NAMESPACE=${{ github.run_id }} export DEPLOY_METHOD=git - export CHART_VERSION=v2.2.0-RC1 - export OWGW_VERSION=v2.2.0-RC1 - export OWGWUI_VERSION=v2.2.0-RC1 - export OWSEC_VERSION=v2.2.0-RC1 - export OWFMS_VERSION=v2.2.0-RC1 + export CHART_VERSION=main + export OWGW_VERSION=master + export OWGWUI_VERSION=main + export OWSEC_VERSION=main + export OWFMS_VERSION=main export OWPROV_VERSION=main export OWPROVUI_VERSION=main export VALUES_FILE_LOCATION=values.ucentral-qa.yaml @@ -143,9 +143,6 @@ jobs: run: | kubectl describe persistentvolumeclaims --namespace openwifi-${{ github.run_id }} - - name: wait for DNS to propagate - run: sleep 900 - generate-matrix: name: generate testbed matrix runs-on: ubuntu-latest @@ -198,6 +195,7 @@ jobs: for id in $(echo -e 'from configuration import CONFIGURATION\nfor ap in CONFIGURATION["${{ matrix.testbed }}"]["access_point"]: print(ap["serial"])' | python3) do ./wlan-pki-cert-scripts/digicert-change-ap-redirector.sh $id "${{ needs.deploy-controller.outputs.gateway_url }}" + echo "Exit code - $?" done - name: factory reset APs @@ -479,6 +477,7 @@ jobs: for id in $(echo -e 'from configuration import CONFIGURATION\nfor ap in CONFIGURATION["${{ matrix.testbed }}"]["access_point"]: print(ap["serial"])' | python3) do ./wlan-pki-cert-scripts/digicert-change-ap-redirector.sh $id gw-qa01.cicd.lab.wlan.tip.build + echo "Exit code - $?" done - name: factory reset APs diff --git a/helm/ucentral/deploy.sh b/helm/ucentral/deploy.sh index 2f3e5a0cc..47430275b 100755 --- a/helm/ucentral/deploy.sh +++ b/helm/ucentral/deploy.sh @@ -127,6 +127,7 @@ helm upgrade --install --create-namespace --wait --timeout 20m \ --set owprovui.ingresses.default.annotations."external-dns\.alpha\.kubernetes\.io/hostname"=provui-${NAMESPACE}.cicd.lab.wlan.tip.build \ --set owprovui.ingresses.default.hosts={provui-${NAMESPACE}.cicd.lab.wlan.tip.build} \ --set owprovui.public_env_variables.DEFAULT_UCENTRALSEC_URL=https://sec-${NAMESPACE}.cicd.lab.wlan.tip.build:16001 \ + --set clustersysteminfo.public_env_variables.OWSEC=sec-${NAMESPACE}.cicd.lab.wlan.tip.build:16001 \ --set-file owgw.certs."restapi-cert\.pem"=$CERT_LOCATION \ --set-file owgw.certs."restapi-key\.pem"=$KEY_LOCATION \ --set-file owgw.certs."websocket-cert\.pem"=$CERT_LOCATION \ diff --git a/helm/ucentral/values.ucentral-qa.external-db.yaml b/helm/ucentral/values.ucentral-qa.external-db.yaml index 2ce286961..a759e5c61 100644 --- a/helm/ucentral/values.ucentral-qa.external-db.yaml +++ b/helm/ucentral/values.ucentral-qa.external-db.yaml @@ -19,9 +19,6 @@ owgw: storage.type.postgresql.host: owgw-pgsql storage.type.postgresql.database: owgw - public_env_variables: - READINESS_METHOD: systeminfo - certs: restapi-ca.pem: | -----BEGIN CERTIFICATE----- @@ -69,9 +66,6 @@ owsec: service.beta.kubernetes.io/aws-load-balancer-ssl-cert: "arn:aws:acm:us-east-2:289708231103:certificate/bfa89c7a-5b64-4a8a-bcfe-ffec655b5285" service.beta.kubernetes.io/aws-load-balancer-ssl-ports: "16001,17001" - public_env_variables: - READINESS_METHOD: systeminfo - certs: restapi-ca.pem: | -----BEGIN CERTIFICATE----- @@ -146,9 +140,6 @@ owfms: service.beta.kubernetes.io/aws-load-balancer-ssl-cert: "arn:aws:acm:us-east-2:289708231103:certificate/bfa89c7a-5b64-4a8a-bcfe-ffec655b5285" service.beta.kubernetes.io/aws-load-balancer-ssl-ports: "16004,17004" - public_env_variables: - READINESS_METHOD: systeminfo - certs: restapi-ca.pem: | -----BEGIN CERTIFICATE----- @@ -186,9 +177,6 @@ owprov: service.beta.kubernetes.io/aws-load-balancer-ssl-cert: "arn:aws:acm:us-east-2:289708231103:certificate/bfa89c7a-5b64-4a8a-bcfe-ffec655b5285" service.beta.kubernetes.io/aws-load-balancer-ssl-ports: "16005,17005" - public_env_variables: - READINESS_METHOD: systeminfo - certs: restapi-ca.pem: | -----BEGIN CERTIFICATE----- @@ -255,3 +243,6 @@ kafka: limits: cpu: 200m memory: 384Mi + +clustersysteminfo: + enabled: true diff --git a/helm/ucentral/values.ucentral-qa.yaml b/helm/ucentral/values.ucentral-qa.yaml index c7acc66fc..cf4c76149 100644 --- a/helm/ucentral/values.ucentral-qa.yaml +++ b/helm/ucentral/values.ucentral-qa.yaml @@ -16,9 +16,6 @@ owgw: # rtty rtty.enabled: "true" - public_env_variables: - READINESS_METHOD: systeminfo - certs: restapi-ca.pem: | -----BEGIN CERTIFICATE----- @@ -56,9 +53,6 @@ owsec: service.beta.kubernetes.io/aws-load-balancer-ssl-cert: "arn:aws:acm:us-east-2:289708231103:certificate/bfa89c7a-5b64-4a8a-bcfe-ffec655b5285" service.beta.kubernetes.io/aws-load-balancer-ssl-ports: "16001,17001" - public_env_variables: - READINESS_METHOD: systeminfo - certs: restapi-ca.pem: | -----BEGIN CERTIFICATE----- @@ -133,9 +127,6 @@ owfms: service.beta.kubernetes.io/aws-load-balancer-ssl-cert: "arn:aws:acm:us-east-2:289708231103:certificate/bfa89c7a-5b64-4a8a-bcfe-ffec655b5285" service.beta.kubernetes.io/aws-load-balancer-ssl-ports: "16004,17004" - public_env_variables: - READINESS_METHOD: systeminfo - certs: restapi-ca.pem: | -----BEGIN CERTIFICATE----- @@ -173,9 +164,6 @@ owprov: service.beta.kubernetes.io/aws-load-balancer-ssl-cert: "arn:aws:acm:us-east-2:289708231103:certificate/bfa89c7a-5b64-4a8a-bcfe-ffec655b5285" service.beta.kubernetes.io/aws-load-balancer-ssl-ports: "16005,17005" - public_env_variables: - READINESS_METHOD: systeminfo - certs: restapi-ca.pem: | -----BEGIN CERTIFICATE----- @@ -246,3 +234,6 @@ kafka: limits: cpu: 200m memory: 384Mi + +clustersysteminfo: + enabled: true diff --git a/libs/apnos/apnos.py b/libs/apnos/apnos.py index 0833ba86e..db408655e 100644 --- a/libs/apnos/apnos.py +++ b/libs/apnos/apnos.py @@ -337,8 +337,11 @@ class APNOS: active = output.decode('utf-8').splitlines()[4].split(":")[1].replace(" ", "").replace(",", "") client.close() except Exception as e: - pytest.exit("ubus call ucentral status: error" + output) - print(e) + if output.__contains__('"connected":'): + pass + else: + pytest.exit("ubus call ucentral status: error" + str(output)) + print(e) connected, latest, active = "Error", "Error", "Error" return connected, latest, active diff --git a/libs/lanforge/lf_tests.py b/libs/lanforge/lf_tests.py index 322d63d2b..a8048b494 100644 --- a/libs/lanforge/lf_tests.py +++ b/libs/lanforge/lf_tests.py @@ -764,7 +764,7 @@ if __name__ == '__main__': "influx_tag": ["basic-03", "ec420"], } lanforge_data = { - "ip": "192.168.200.80", + "ip": "192.168.200.10", "port": 8080, "ssh_port": 22, "2.4G-Radio": ["wiphy0"], @@ -778,8 +778,20 @@ if __name__ == '__main__': "AX-Station-Name": "ax" } obj = RunTest(lanforge_data=lanforge_data, debug=False, influx_params=influx_params) - obj.Client_Connect(ssid="ssid_wpa_5g_br", passkey="something", security="wpa", station_name=['sta0000']) - obj.dataplane(station_name=["sta0000"]) + upstream = lanforge_data['upstream'] + data = obj.staConnect.json_get("/port/all") + for i in data["interfaces"]: + if list(i.keys())[0] == "1.1.eth1.10": + print(i) + # print(dict(list(data['interfaces'])).keys()) + # print(obj.staConnect.json_get("/port/" + upstream.split(".")[0] + + # "/" + upstream.split(".")[1] + + # "/" + upstream.split(".")[2] + "/" + "10")) + # print("/port/" + upstream.split(".")[0] + + # "/" + upstream.split(".")[1] + + # "/" + upstream.split(".")[2] + "/" + "100") + # obj.Client_Connect(ssid="ssid_wpa_5g_br", passkey="something", security="wpa", station_name=['sta0000']) + # obj.dataplane(station_name=["sta0000"]) # a = obj.staConnect.json_get("/events/since/") # print(a) # print(obj.eap_connect.json_get("port/1/1/sta0000?fields=ap,ip")) diff --git a/libs/lanforge/lf_tools.py b/libs/lanforge/lf_tools.py index 5c7b86162..83b2fc22e 100644 --- a/libs/lanforge/lf_tools.py +++ b/libs/lanforge/lf_tools.py @@ -18,7 +18,7 @@ sys.path.append(f"../lanforge/lanforge-scripts/py-scripts/tip-cicd-sanity") sys.path.append(f'../libs') sys.path.append(f'../libs/lanforge/') import allure - +from sta_connect2 import StaConnect2 from create_chamberview import CreateChamberview from create_chamberview_dut import DUT import time @@ -88,6 +88,7 @@ class ChamberView: self.exit_on_error = False self.dut_idx_mapping = {} self.ssid_list = [] + self.staConnect = StaConnect2(self.lanforge_ip, self.lanforge_port, debug_=self.debug) self.raw_line = [ ["profile_link " + self.upstream_resources + " upstream-dhcp 1 NA NA " + self.upstream_port.split(".") [2] + ",AUTO -1 NA"], @@ -148,10 +149,17 @@ class ChamberView: return self.CreateChamberview, self.scenario_name def add_vlan(self, vlan_ids=[]): + data = self.staConnect.json_get("/port/all") + flag = 0 for vlans in vlan_ids: - self.raw_line.append(["profile_link 1.1 " + "vlan-100 1 " + self.upstream_port - + " NA " + self.upstream_port.split(".")[2] + ",AUTO -1 " + str(vlans)]) - self.Chamber_View() + for i in data["interfaces"]: + if list(i.keys())[0] != self.upstream_port + "." + str(vlans): + flag = 1 + if flag == 1: + for vlans in vlan_ids: + self.raw_line.append(["profile_link 1.1 " + "vlan-100 1 " + self.upstream_port + + " NA " + self.upstream_port.split(".")[2] + ",AUTO -1 " + str(vlans)]) + self.Chamber_View() def add_stations(self, band="2G", num_stations="max", dut="NA", ssid_name=[]): idx = 0 diff --git a/tests/e2e/basic/conftest.py b/tests/e2e/basic/conftest.py index 2bb310cd8..369a60b09 100644 --- a/tests/e2e/basic/conftest.py +++ b/tests/e2e/basic/conftest.py @@ -47,10 +47,9 @@ def create_lanforge_chamberview_dut(lf_tools): @pytest.fixture(scope="class") -def setup_profiles(request, setup_controller, testbed, get_equipment_ref, fixtures_ver, +def setup_profiles(request, setup_controller, testbed, get_equipment_ref, fixtures_ver, reset_scenario_lf, instantiate_profile, get_markers, create_lanforge_chamberview_dut, lf_tools, get_security_flags, get_configuration, radius_info, get_apnos, radius_accounting_info): - lf_tools.reset_scenario() param = dict(request.param) # VLAN Setup @@ -84,8 +83,6 @@ def setup_profiles(request, setup_controller, testbed, get_equipment_ref, fixtur yield return_var - - @pytest.fixture(scope="session") def station_names_twog(request, get_configuration): station_names = [] @@ -101,6 +98,7 @@ def station_names_fiveg(request, get_configuration): station_names.append(get_configuration["traffic_generator"]["details"]["5G-Station-Name"] + "0" + str(i)) yield station_names + @pytest.fixture(scope="session") def station_names_ax(request, get_configuration): station_names = [] @@ -108,6 +106,7 @@ def station_names_ax(request, get_configuration): station_names.append(get_configuration["traffic_generator"]["details"]["AX-Station-Name"] + "0" + str(i)) yield station_names + @pytest.fixture(scope="session") def num_stations(request): num_sta = int(request.config.getini("num_stations")) @@ -131,3 +130,14 @@ def get_vlan_list(get_apnos, get_configuration): vlan_list = list(ap_ssh.get_vlan()) vlan_list.sort() yield vlan_list + + +@pytest.fixture(scope="session") +def reset_scenario_lf(request, lf_tools): + lf_tools.reset_scenario() + + def teardown_session(): + lf_tools.reset_scenario() + + request.addfinalizer(teardown_session) + yield "" diff --git a/tests/test_connectivity.py b/tests/test_connectivity.py index a9bcc2473..726924c58 100644 --- a/tests/test_connectivity.py +++ b/tests/test_connectivity.py @@ -52,7 +52,7 @@ class TestResources(object): class TestFMS(object): @pytest.mark.get_firmware_list - def test_fms_version_list(self, fixtures_ver, get_configuration): + def test_fms_version_list(self, fixtures_ver, get_configuration, get_ap_logs): PASS = [] for ap in get_configuration['access_point']: # get the latest branch @@ -135,18 +135,18 @@ class TestFMS(object): assert False not in PASS @pytest.mark.firmware_upgrade - def test_firmware_upgrade_request(self, firmware_upgrade): + def test_firmware_upgrade_request(self, firmware_upgrade, get_ap_logs): for update in firmware_upgrade: allure.attach(name='serial: ' + update[0], body="") assert True @pytest.mark.test_firmware_ap - def test_firmware_upgrade_status_AP(self, firmware_upgrade): + def test_firmware_upgrade_status_AP(self, firmware_upgrade, get_ap_logs): allure.attach(name="firmware Upgrade Status:", body="") assert True @pytest.mark.test_firmware_gw - def test_firmware_upgrade_status_gateway(self, get_apnos, get_configuration, setup_controller): + def test_firmware_upgrade_status_gateway(self, get_apnos, get_configuration, setup_controller, get_ap_logs): status = [] for ap in get_configuration['access_point']: ap_ssh = get_apnos(ap, pwd="../libs/apnos/", sdk="2.x")