mirror of
https://github.com/Telecominfraproject/wlan-testing.git
synced 2025-11-01 11:28:09 +00:00
Added FMS and GW Test cases as a part of sanity
Signed-off-by: shivamcandela <shivam.thakur@candelatech.com>
This commit is contained in:
@@ -17,7 +17,6 @@ import random
|
|||||||
import paramiko
|
import paramiko
|
||||||
from scp import SCPClient
|
from scp import SCPClient
|
||||||
import os
|
import os
|
||||||
import allure
|
|
||||||
|
|
||||||
|
|
||||||
class APNOS:
|
class APNOS:
|
||||||
@@ -50,12 +49,10 @@ class APNOS:
|
|||||||
cmd = "kill " + str(a).replace("b'", "")
|
cmd = "kill " + str(a).replace("b'", "")
|
||||||
print(cmd)
|
print(cmd)
|
||||||
stdin, stdout, stderr = client.exec_command(cmd)
|
stdin, stdout, stderr = client.exec_command(cmd)
|
||||||
print(stdout)
|
|
||||||
client = self.ssh_cli_connect()
|
|
||||||
cmd = '[ -f ~/cicd-git/ ] && echo "True" || echo "False"'
|
cmd = '[ -f ~/cicd-git/ ] && echo "True" || echo "False"'
|
||||||
stdin, stdout, stderr = client.exec_command(cmd)
|
stdin, stdout, stderr = client.exec_command(cmd)
|
||||||
output = str(stdout.read())
|
output = str(stdout.read())
|
||||||
print(output)
|
|
||||||
if output.__contains__("False"):
|
if output.__contains__("False"):
|
||||||
cmd = 'mkdir ~/cicd-git/'
|
cmd = 'mkdir ~/cicd-git/'
|
||||||
stdin, stdout, stderr = client.exec_command(cmd)
|
stdin, stdout, stderr = client.exec_command(cmd)
|
||||||
@@ -69,6 +66,7 @@ class APNOS:
|
|||||||
cmd = '[ -f ~/cicd-git/openwrt_ctl.py ] && echo "True" || echo "False"'
|
cmd = '[ -f ~/cicd-git/openwrt_ctl.py ] && echo "True" || echo "False"'
|
||||||
stdin, stdout, stderr = client.exec_command(cmd)
|
stdin, stdout, stderr = client.exec_command(cmd)
|
||||||
var = str(stdout.read())
|
var = str(stdout.read())
|
||||||
|
client.close()
|
||||||
if var.__contains__("True"):
|
if var.__contains__("True"):
|
||||||
print("APNOS Serial Setup OK")
|
print("APNOS Serial Setup OK")
|
||||||
else:
|
else:
|
||||||
@@ -109,6 +107,7 @@ class APNOS:
|
|||||||
client.close()
|
client.close()
|
||||||
data = str(data).replace(" ", "").split("\\r\\n")
|
data = str(data).replace(" ", "").split("\\r\\n")
|
||||||
band_info = []
|
band_info = []
|
||||||
|
client.close()
|
||||||
for i in data:
|
for i in data:
|
||||||
tmp = []
|
tmp = []
|
||||||
if i.__contains__("AccessPoint"):
|
if i.__contains__("AccessPoint"):
|
||||||
@@ -323,13 +322,18 @@ class APNOS:
|
|||||||
f"cmd --value \"{cmd}\" "
|
f"cmd --value \"{cmd}\" "
|
||||||
stdin, stdout, stderr = client.exec_command(cmd)
|
stdin, stdout, stderr = client.exec_command(cmd)
|
||||||
output = stdout.read()
|
output = stdout.read()
|
||||||
# print(output, stderr.read())
|
print(output)
|
||||||
connected = False
|
if 'latest' not in str(output):
|
||||||
if "connected" in output.decode('utf-8').splitlines()[2]:
|
print("ubus call ucentral status: command has invalid output", str(output))
|
||||||
connected = True
|
connected, latest, active = "Error", "Error1", "Error2"
|
||||||
# connected = output.decode('utf-8').splitlines()[2]
|
return connected, latest, active
|
||||||
latest = output.decode('utf-8').splitlines()[3].split(":")[1].replace(" ", "").replace(",", "")
|
else:
|
||||||
active = output.decode('utf-8').splitlines()[4].split(":")[1].replace(" ", "").replace(",", "")
|
connected = False
|
||||||
|
if "connected" in output.decode('utf-8').splitlines()[2]:
|
||||||
|
connected = True
|
||||||
|
# connected = output.decode('utf-8').splitlines()[2]
|
||||||
|
latest = output.decode('utf-8').splitlines()[3].split(":")[1].replace(" ", "").replace(",", "")
|
||||||
|
active = output.decode('utf-8').splitlines()[4].split(":")[1].replace(" ", "").replace(",", "")
|
||||||
client.close()
|
client.close()
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
print(e)
|
print(e)
|
||||||
@@ -467,6 +471,7 @@ class APNOS:
|
|||||||
stdin, stdout, stderr = client.exec_command(cmd)
|
stdin, stdout, stderr = client.exec_command(cmd)
|
||||||
output = stdout.read().replace(b":~# iwinfo", b"").decode('utf-8')
|
output = stdout.read().replace(b":~# iwinfo", b"").decode('utf-8')
|
||||||
o = output
|
o = output
|
||||||
|
client.close()
|
||||||
return o
|
return o
|
||||||
|
|
||||||
def gettxpower(self):
|
def gettxpower(self):
|
||||||
@@ -489,6 +494,7 @@ class APNOS:
|
|||||||
name = output.replace("\t", "").splitlines()
|
name = output.replace("\t", "").splitlines()
|
||||||
name.remove('')
|
name.remove('')
|
||||||
name.pop(-1)
|
name.pop(-1)
|
||||||
|
client.close()
|
||||||
return tx_power, name
|
return tx_power, name
|
||||||
|
|
||||||
def get_logread(self, start_ref="", stop_ref=""):
|
def get_logread(self, start_ref="", stop_ref=""):
|
||||||
@@ -574,20 +580,21 @@ class APNOS:
|
|||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
obj = {
|
obj = {
|
||||||
'model': 'wf188n',
|
'model': 'ecw5211',
|
||||||
'mode': 'wifi6',
|
'mode': 'wifi5',
|
||||||
'serial': '0000c1018812',
|
'serial': '68215fda456d',
|
||||||
'jumphost': True,
|
'jumphost': True,
|
||||||
'ip': "10.28.3.103",
|
'ip': "localhost",
|
||||||
'username': "lanforge",
|
'username': "lanforge",
|
||||||
'password': "pumpkin77",
|
'password': "pumpkin77",
|
||||||
'port': 22,
|
'port': 8733,
|
||||||
'jumphost_tty': '/dev/ttyAP1',
|
'jumphost_tty': "/dev/ttyAP5",
|
||||||
'version': "https://tip.jfrog.io/artifactory/tip-wlan-ap-firmware/uCentral/cig_wf188/20210729-cig_wf188-v2.0.0-rc2-ec3662e-upgrade.bin"
|
'version': "release-latest"
|
||||||
}
|
}
|
||||||
var = APNOS(credentials=obj, sdk="2.x")
|
var = APNOS(credentials=obj, sdk="2.x")
|
||||||
a = var.run_generic_command(cmd="wifi status")
|
a, b, c = var.get_ucentral_status()
|
||||||
print("".join(a))
|
print(a, b, c)
|
||||||
|
|
||||||
# S = 9
|
# S = 9
|
||||||
# instance_name = ''.join(random.choices(string.ascii_uppercase + string.digits, k=S))
|
# instance_name = ''.join(random.choices(string.ascii_uppercase + string.digits, k=S))
|
||||||
# var.run_generic_command(cmd="logger start testcase: " + instance_name)
|
# var.run_generic_command(cmd="logger start testcase: " + instance_name)
|
||||||
|
|||||||
@@ -233,28 +233,30 @@ class FMSUtils:
|
|||||||
return {}
|
return {}
|
||||||
|
|
||||||
# 2c3becf
|
# 2c3becf
|
||||||
def get_firmwares(self, limit="", model="", latestonly="", branch="", commit_id=""):
|
def get_firmwares(self, limit="10000", model="", latestonly="", branch="", commit_id="", offset="3000"):
|
||||||
|
|
||||||
deviceType = self.ap_model_lookup(model=model)
|
deviceType = self.ap_model_lookup(model=model)
|
||||||
params = "limit=" + limit + "&deviceType=" + deviceType + "&latestonly=" + latestonly
|
params = "limit=" + limit + \
|
||||||
|
"&deviceType=" + deviceType + \
|
||||||
response = self.sdk_client.request(service="fms", command="firmwares/", method="GET", params=params, payload="")
|
"&latestonly=" + latestonly + \
|
||||||
|
"offset=" + offset
|
||||||
|
command = "firmwares/"
|
||||||
|
response = self.sdk_client.request(service="fms", command=command, method="GET", params=params, payload="")
|
||||||
|
allure.attach(name=command + params,
|
||||||
|
body=str(response.status_code) + "\n" + str(response.json()),
|
||||||
|
attachment_type=allure.attachment_type.JSON)
|
||||||
if response.status_code == 200:
|
if response.status_code == 200:
|
||||||
data = response.json()
|
data = response.json()
|
||||||
newlist = sorted(data['firmwares'], key=itemgetter('created'))
|
newlist = sorted(data['firmwares'], key=itemgetter('created'))
|
||||||
print("finding a bug", len(newlist))
|
# for i in newlist:
|
||||||
for i in newlist:
|
# print(i['uri'])
|
||||||
print(i['uri'])
|
# print(i['revision'])
|
||||||
print(i['revision'])
|
|
||||||
# print(newlist)
|
# print(newlist)
|
||||||
self.sdk_client.logout()
|
|
||||||
pytest.exit("hey")
|
|
||||||
|
|
||||||
return newlist
|
return newlist
|
||||||
# print(data)
|
# print(data)
|
||||||
|
|
||||||
return "devices"
|
return "error"
|
||||||
|
|
||||||
|
|
||||||
class UProfileUtility:
|
class UProfileUtility:
|
||||||
@@ -540,7 +542,8 @@ if __name__ == '__main__':
|
|||||||
}
|
}
|
||||||
obj = Controller(controller_data=controller)
|
obj = Controller(controller_data=controller)
|
||||||
fms = FMSUtils(sdk_client=obj)
|
fms = FMSUtils(sdk_client=obj)
|
||||||
fms.get_firmwares()
|
new = fms.get_firmwares(model='cig_wf194c', offset='3')
|
||||||
|
print(len(new))
|
||||||
# fms.get_device_set()
|
# fms.get_device_set()
|
||||||
# model = fms.get_latest_fw(model="eap102")
|
# model = fms.get_latest_fw(model="eap102")
|
||||||
# print(model)
|
# print(model)
|
||||||
|
|||||||
@@ -83,7 +83,7 @@ def pytest_addoption(parser):
|
|||||||
parser.addini("influx_token", "Influx Token", default="TCkdATXAbHmNbn4QyNaj43WpGBYxFrzV")
|
parser.addini("influx_token", "Influx Token", default="TCkdATXAbHmNbn4QyNaj43WpGBYxFrzV")
|
||||||
parser.addini("influx_bucket", "influx bucket", default="tip-cicd")
|
parser.addini("influx_bucket", "influx bucket", default="tip-cicd")
|
||||||
parser.addini("influx_org", "influx organization", default="tip")
|
parser.addini("influx_org", "influx organization", default="tip")
|
||||||
parser.addini("build", "AP Firmware build URL", default="0")
|
parser.addini(name="firmware", type='string', help="AP Firmware build URL", default="0")
|
||||||
parser.addini("cloud_ctlr", "AP Firmware build URL", default="0")
|
parser.addini("cloud_ctlr", "AP Firmware build URL", default="0")
|
||||||
|
|
||||||
parser.addini("num_stations", "Number of Stations/Clients for testing")
|
parser.addini("num_stations", "Number of Stations/Clients for testing")
|
||||||
@@ -224,6 +224,11 @@ def get_configuration(testbed, request):
|
|||||||
"""yields the selected testbed information from lab info file (configuration.py)"""
|
"""yields the selected testbed information from lab info file (configuration.py)"""
|
||||||
if request.config.getini("cloud_ctlr") != "0":
|
if request.config.getini("cloud_ctlr") != "0":
|
||||||
CONFIGURATION[testbed]["controller"]["url"] = request.config.getini("cloud_ctlr")
|
CONFIGURATION[testbed]["controller"]["url"] = request.config.getini("cloud_ctlr")
|
||||||
|
if request.config.getini("firmware") != "0":
|
||||||
|
version = request.config.getini("firmware")
|
||||||
|
version_list = version.split(",")
|
||||||
|
for i in range(len(CONFIGURATION[testbed]["access_point"])):
|
||||||
|
CONFIGURATION[testbed]["access_point"][i]["version"] = version_list[i]
|
||||||
yield CONFIGURATION[testbed]
|
yield CONFIGURATION[testbed]
|
||||||
|
|
||||||
|
|
||||||
@@ -258,8 +263,9 @@ def setup_controller(request, get_configuration, test_access_point, add_env_prop
|
|||||||
|
|
||||||
|
|
||||||
@pytest.fixture(scope="session")
|
@pytest.fixture(scope="session")
|
||||||
def setup_firmware(fixtures_ver):
|
def setup_firmware(setup_controller):
|
||||||
""" Fixture to Setup Firmware with the selected sdk """
|
""" Fixture to Setup Firmware with the selected sdk """
|
||||||
|
setup_controller.instantiate_firmware()
|
||||||
yield True
|
yield True
|
||||||
|
|
||||||
|
|
||||||
@@ -480,53 +486,23 @@ def get_markers(request, get_security_flags):
|
|||||||
yield security_dict
|
yield security_dict
|
||||||
|
|
||||||
|
|
||||||
# Will be availabe as a test case
|
|
||||||
@pytest.fixture(scope="session")
|
@pytest.fixture(scope="session")
|
||||||
def test_access_point(request, testbed, get_apnos, get_configuration):
|
def test_access_point(fixtures_ver, request, get_configuration, get_apnos):
|
||||||
"""used to check the manager status of AP, should be used as a setup to verify if ap can reach cloud"""
|
"""used to check the manager status of AP, should be used as a setup to verify if ap can reach cloud"""
|
||||||
mgr_status = []
|
status = fixtures_ver.get_ap_cloud_connectivity_status(get_configuration, get_apnos)
|
||||||
if request.config.getoption("1.x"):
|
|
||||||
for access_point_info in get_configuration['access_point']:
|
|
||||||
ap_ssh = get_apnos(access_point_info, sdk="1.x")
|
|
||||||
status = ap_ssh.get_manager_state()
|
|
||||||
if "ACTIVE" not in status:
|
|
||||||
time.sleep(30)
|
|
||||||
ap_ssh = APNOS(access_point_info)
|
|
||||||
status = ap_ssh.get_manager_state()
|
|
||||||
mgr_status.append(status)
|
|
||||||
else:
|
|
||||||
# forgit access_point_info in get_configuration['access_point']:
|
|
||||||
# ap_ssh = get_apnos(access_point_info)
|
|
||||||
# status = ap_ssh.get_manager_state()
|
|
||||||
# if "ACTIVE" not in status:
|
|
||||||
# time.sleep(30)
|
|
||||||
# ap_ssh = APNOS(access_point_info)
|
|
||||||
# status = ap_ssh.get_manager_state()
|
|
||||||
# mgr_status.append(status)
|
|
||||||
pass
|
|
||||||
yield mgr_status
|
|
||||||
|
|
||||||
|
def teardown_session():
|
||||||
|
data = []
|
||||||
|
data.append(False)
|
||||||
|
for s in status:
|
||||||
|
data.append(s[0])
|
||||||
|
print(data)
|
||||||
|
if False not in data:
|
||||||
|
pytest.exit("AP is Not connected to ucentral gw")
|
||||||
|
allure.attach(name=str(status), body="")
|
||||||
|
|
||||||
# Not used anymore, needs to depreciate it
|
request.addfinalizer(teardown_session)
|
||||||
@pytest.fixture(scope="session")
|
yield status
|
||||||
def get_lanforge_data(get_configuration):
|
|
||||||
"""depreciate it"""
|
|
||||||
lanforge_data = {}
|
|
||||||
if get_configuration['traffic_generator']['name'] == 'lanforge':
|
|
||||||
lanforge_data = {
|
|
||||||
"lanforge_ip": get_configuration['traffic_generator']['details']['ip'],
|
|
||||||
"lanforge-port-number": get_configuration['traffic_generator']['details']['port'],
|
|
||||||
"lanforge_2dot4g": get_configuration['traffic_generator']['details']['2.4G-Radio'][0],
|
|
||||||
"lanforge_5g": get_configuration['traffic_generator']['details']['5G-Radio'][0],
|
|
||||||
"lanforge_2dot4g_prefix": get_configuration['traffic_generator']['details']['2.4G-Station-Name'],
|
|
||||||
"lanforge_5g_prefix": get_configuration['traffic_generator']['details']['5G-Station-Name'],
|
|
||||||
"lanforge_2dot4g_station": get_configuration['traffic_generator']['details']['2.4G-Station-Name'],
|
|
||||||
"lanforge_5g_station": get_configuration['traffic_generator']['details']['5G-Station-Name'],
|
|
||||||
"lanforge_bridge_port": get_configuration['traffic_generator']['details']['upstream'],
|
|
||||||
"lanforge_vlan_port": get_configuration['traffic_generator']['details']['upstream'] + ".100",
|
|
||||||
"vlan": 100
|
|
||||||
}
|
|
||||||
yield lanforge_data
|
|
||||||
|
|
||||||
|
|
||||||
@pytest.fixture(scope="session")
|
@pytest.fixture(scope="session")
|
||||||
@@ -575,14 +551,6 @@ def lf_tools(get_configuration, testbed):
|
|||||||
yield obj
|
yield obj
|
||||||
|
|
||||||
|
|
||||||
@pytest.fixture(scope="session")
|
|
||||||
def lf_tools(get_configuration, testbed):
|
|
||||||
""" Create a DUT on LANforge"""
|
|
||||||
obj = ChamberView(lanforge_data=get_configuration["traffic_generator"]["details"],
|
|
||||||
testbed=testbed, access_point_data=get_configuration["access_point"])
|
|
||||||
yield obj
|
|
||||||
|
|
||||||
|
|
||||||
@pytest.fixture(scope="session")
|
@pytest.fixture(scope="session")
|
||||||
def setup_influx(request, testbed, get_configuration):
|
def setup_influx(request, testbed, get_configuration):
|
||||||
""" Setup Influx Parameters: Used in CV Automation"""
|
""" Setup Influx Parameters: Used in CV Automation"""
|
||||||
@@ -645,8 +613,8 @@ def fixtures_ver(request, get_configuration):
|
|||||||
|
|
||||||
@pytest.fixture(scope="session")
|
@pytest.fixture(scope="session")
|
||||||
def firmware_upgrade(fixtures_ver, get_apnos, get_configuration):
|
def firmware_upgrade(fixtures_ver, get_apnos, get_configuration):
|
||||||
fixtures_ver.setup_firmware(get_apnos, get_configuration)
|
upgrade_status = fixtures_ver.setup_firmware(get_apnos, get_configuration)
|
||||||
yield True
|
yield upgrade_status
|
||||||
|
|
||||||
|
|
||||||
"""
|
"""
|
||||||
|
|||||||
@@ -7,11 +7,12 @@ import pytest
|
|||||||
import json
|
import json
|
||||||
import allure
|
import allure
|
||||||
|
|
||||||
|
@pytest.mark.uc_sanityw
|
||||||
@allure.feature("SDK REST API")
|
@allure.feature("SDK REST API")
|
||||||
|
|
||||||
class TestUcentralGatewayService(object):
|
class TestUcentralGatewayService(object):
|
||||||
"""
|
"""
|
||||||
"""
|
"""
|
||||||
|
|
||||||
@pytest.mark.sdk_restapi
|
@pytest.mark.sdk_restapi
|
||||||
def test_gwservice_listdevices(self, setup_controller):
|
def test_gwservice_listdevices(self, setup_controller):
|
||||||
"""
|
"""
|
||||||
@@ -24,7 +25,7 @@ class TestUcentralGatewayService(object):
|
|||||||
if resp.status_code != 200:
|
if resp.status_code != 200:
|
||||||
assert False
|
assert False
|
||||||
devices = json.loads(resp.text)
|
devices = json.loads(resp.text)
|
||||||
print (devices)
|
print(devices)
|
||||||
|
|
||||||
@pytest.mark.sdk_restapi
|
@pytest.mark.sdk_restapi
|
||||||
def test_gwservice_createdevice(self, setup_controller):
|
def test_gwservice_createdevice(self, setup_controller):
|
||||||
@@ -48,7 +49,7 @@ class TestUcentralGatewayService(object):
|
|||||||
if resp.status_code != 200:
|
if resp.status_code != 200:
|
||||||
assert False
|
assert False
|
||||||
devices = json.loads(resp.text)
|
devices = json.loads(resp.text)
|
||||||
print (devices)
|
print(devices)
|
||||||
|
|
||||||
resp = setup_controller.request("gw", "device/DEADBEEF0011", "GET", None, None)
|
resp = setup_controller.request("gw", "device/DEADBEEF0011", "GET", None, None)
|
||||||
body = resp.url + "," + str(resp.status_code) + ',' + resp.text
|
body = resp.url + "," + str(resp.status_code) + ',' + resp.text
|
||||||
@@ -83,7 +84,7 @@ class TestUcentralGatewayService(object):
|
|||||||
if resp.status_code != 200:
|
if resp.status_code != 200:
|
||||||
assert False
|
assert False
|
||||||
devices = json.loads(resp.text)
|
devices = json.loads(resp.text)
|
||||||
print (devices)
|
print(devices)
|
||||||
|
|
||||||
payload = {'serialNumber': 'DEADBEEF0011',
|
payload = {'serialNumber': 'DEADBEEF0011',
|
||||||
'owner': 'pytest'}
|
'owner': 'pytest'}
|
||||||
@@ -100,8 +101,7 @@ class TestUcentralGatewayService(object):
|
|||||||
assert False
|
assert False
|
||||||
|
|
||||||
device = json.loads(resp.text)
|
device = json.loads(resp.text)
|
||||||
print (device)
|
print(device)
|
||||||
|
|
||||||
|
|
||||||
resp = setup_controller.request("gw", "device/DEADBEEF0011", "DELETE", None, None)
|
resp = setup_controller.request("gw", "device/DEADBEEF0011", "DELETE", None, None)
|
||||||
body = resp.url + "," + str(resp.status_code) + ',' + resp.text
|
body = resp.url + "," + str(resp.status_code) + ',' + resp.text
|
||||||
@@ -130,12 +130,10 @@ class TestUcentralGatewayService(object):
|
|||||||
if resp.status_code != 200:
|
if resp.status_code != 200:
|
||||||
assert False
|
assert False
|
||||||
devices = json.loads(resp.text)
|
devices = json.loads(resp.text)
|
||||||
print (devices)
|
print(devices)
|
||||||
|
|
||||||
|
|
||||||
resp = setup_controller.request("gw", "device/DEADBEEF0011", "DELETE", None, None)
|
resp = setup_controller.request("gw", "device/DEADBEEF0011", "DELETE", None, None)
|
||||||
body = resp.url + "," + str(resp.status_code) + ',' + resp.text
|
body = resp.url + "," + str(resp.status_code) + ',' + resp.text
|
||||||
allure.attach(name="gw get device", body=body)
|
allure.attach(name="gw get device", body=body)
|
||||||
if resp.status_code != 200:
|
if resp.status_code != 200:
|
||||||
assert False
|
assert False
|
||||||
|
|
||||||
|
|||||||
@@ -60,6 +60,18 @@ class Fixtures_1x:
|
|||||||
def setup_firmware(self):
|
def setup_firmware(self):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
def get_ap_cloud_connectivity_status(self, get_configuration, get_apnos):
|
||||||
|
mgr_status = []
|
||||||
|
for access_point_info in get_configuration['access_point']:
|
||||||
|
ap_ssh = get_apnos(access_point_info, sdk="1.x")
|
||||||
|
status = ap_ssh.get_manager_state()
|
||||||
|
if "ACTIVE" not in status:
|
||||||
|
time.sleep(30)
|
||||||
|
ap_ssh = APNOS(access_point_info)
|
||||||
|
status = ap_ssh.get_manager_state()
|
||||||
|
mgr_status.append(status)
|
||||||
|
return mgr_status
|
||||||
|
|
||||||
def get_ap_version(self, get_apnos, get_configuration):
|
def get_ap_version(self, get_apnos, get_configuration):
|
||||||
# version_list = []
|
# version_list = []
|
||||||
# for access_point_info in get_configuration['access_point']:
|
# for access_point_info in get_configuration['access_point']:
|
||||||
|
|||||||
@@ -60,8 +60,10 @@ class Fixtures_2x:
|
|||||||
|
|
||||||
def setup_firmware(self, get_apnos, get_configuration, request=""):
|
def setup_firmware(self, get_apnos, get_configuration, request=""):
|
||||||
# Query AP Firmware
|
# Query AP Firmware
|
||||||
|
upgrade_status = []
|
||||||
for ap in get_configuration['access_point']:
|
for ap in get_configuration['access_point']:
|
||||||
|
|
||||||
|
ap_ssh = get_apnos(ap, pwd="../libs/apnos/", sdk="2.x")
|
||||||
# If specified as URL
|
# If specified as URL
|
||||||
try:
|
try:
|
||||||
response = requests.get(ap['version'])
|
response = requests.get(ap['version'])
|
||||||
@@ -78,24 +80,19 @@ class Fixtures_2x:
|
|||||||
|
|
||||||
items = list(range(0, 300))
|
items = list(range(0, 300))
|
||||||
l = len(items)
|
l = len(items)
|
||||||
self.printProgressBar(0, l, prefix='Progress:', suffix='Complete', length=50)
|
|
||||||
for i, item in enumerate(items):
|
|
||||||
# Do stuff...
|
|
||||||
time.sleep(0.8)
|
|
||||||
# Update Progress Bar
|
|
||||||
self.printProgressBar(i + 1, l, prefix='Progress:', suffix='Complete', length=50)
|
|
||||||
|
|
||||||
ap_version = ap_ssh.get_ap_version_ucentral()
|
ap_version = ap_ssh.get_ap_version_ucentral()
|
||||||
current_version_commit = str(ap_version).split("/")[1].replace(" ", "").splitlines()[0]
|
current_version_commit = str(ap_version).split("/")[1].replace(" ", "").splitlines()[0]
|
||||||
if target_revision_commit in current_version_commit:
|
if target_revision_commit in current_version_commit:
|
||||||
|
upgrade_status.append([ap['serial'], target_revision_commit, current_version_commit])
|
||||||
print("Firmware Upgraded to :", ap_version)
|
print("Firmware Upgraded to :", ap_version)
|
||||||
|
else:
|
||||||
|
print("firmware upgraded failed: ", target_revision)
|
||||||
|
upgrade_status.append([ap['serial'],target_revision_commit, current_version_commit])
|
||||||
|
break
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
print("URL does not exist on Internet")
|
print("URL does not exist on Internet")
|
||||||
|
|
||||||
|
|
||||||
# else Specified as "branch-commit_id" / "branch-latest"
|
# else Specified as "branch-commit_id" / "branch-latest"
|
||||||
firmware_url = ""
|
firmware_url = ""
|
||||||
ap_ssh = get_apnos(ap, pwd="../libs/apnos/", sdk="2.x")
|
|
||||||
ap_version = ap_ssh.get_ap_version_ucentral()
|
ap_version = ap_ssh.get_ap_version_ucentral()
|
||||||
response = self.fw_client.get_latest_fw(model=ap["model"])
|
response = self.fw_client.get_latest_fw(model=ap["model"])
|
||||||
# if the target version specified is "branch-latest"
|
# if the target version specified is "branch-latest"
|
||||||
@@ -122,20 +119,16 @@ class Fixtures_2x:
|
|||||||
|
|
||||||
# if AP is already in target Version then skip upgrade unless force upgrade is specified
|
# if AP is already in target Version then skip upgrade unless force upgrade is specified
|
||||||
if current_version == target_revision:
|
if current_version == target_revision:
|
||||||
|
upgrade_status.append([ap['serial'], target_revision, current_version, 'skip'])
|
||||||
print("Skipping Upgrade! AP is already in target version")
|
print("Skipping Upgrade! AP is already in target version")
|
||||||
allure.attach(name="Skipping Upgrade because AP is already in the target Version", body="")
|
allure.attach(name="Skipping Upgrade because AP is already in the target Version",
|
||||||
|
body="")
|
||||||
break
|
break
|
||||||
|
|
||||||
self.fw_client.upgrade_firmware(serial=ap['serial'], url=str(firmware['uri']))
|
self.fw_client.upgrade_firmware(serial=ap['serial'], url=str(firmware['uri']))
|
||||||
# wait for 300 seconds after firmware upgrade
|
# wait for 300 seconds after firmware upgrade
|
||||||
items = list(range(0, 300))
|
print("waiting for 300 Sec for Firmware Upgrade")
|
||||||
l = len(items)
|
time.sleep(300)
|
||||||
# self.printProgressBar(0, l, prefix='Progress:', suffix='Complete', length=50)
|
|
||||||
# for i, item in enumerate(items):
|
|
||||||
# # Do stuff...
|
|
||||||
# time.sleep(0.8)
|
|
||||||
# # Update Progress Bar
|
|
||||||
# self.printProgressBar(i + 1, l, prefix='Progress:', suffix='Complete', length=50)
|
|
||||||
|
|
||||||
# check the current AP Revision again
|
# check the current AP Revision again
|
||||||
ap_version = ap_ssh.get_ap_version_ucentral()
|
ap_version = ap_ssh.get_ap_version_ucentral()
|
||||||
@@ -145,8 +138,10 @@ class Fixtures_2x:
|
|||||||
body="current revision: " + current_version + "\ntarget revision: " + target_revision)
|
body="current revision: " + current_version + "\ntarget revision: " + target_revision)
|
||||||
print("current revision: ", current_version, "\ntarget revision: ", target_revision)
|
print("current revision: ", current_version, "\ntarget revision: ", target_revision)
|
||||||
if current_version == target_revision:
|
if current_version == target_revision:
|
||||||
|
upgrade_status.append([ap['serial'], target_revision, current_version])
|
||||||
print("firmware upgraded successfully: ", target_revision)
|
print("firmware upgraded successfully: ", target_revision)
|
||||||
else:
|
else:
|
||||||
|
upgrade_status.append([ap['serial'], target_revision, current_version])
|
||||||
print("firmware upgraded failed: ", target_revision)
|
print("firmware upgraded failed: ", target_revision)
|
||||||
break
|
break
|
||||||
if firmware['image'].split("-")[-2] == ap['version'].split('-')[0]:
|
if firmware['image'].split("-")[-2] == ap['version'].split('-')[0]:
|
||||||
@@ -166,20 +161,15 @@ class Fixtures_2x:
|
|||||||
|
|
||||||
# if AP is already in target Version then skip upgrade unless force upgrade is specified
|
# if AP is already in target Version then skip upgrade unless force upgrade is specified
|
||||||
if current_version == target_revision:
|
if current_version == target_revision:
|
||||||
|
upgrade_status.append([ap['serial'], target_revision, current_version, 'skip'])
|
||||||
print("Skipping Upgrade! AP is already in target version")
|
print("Skipping Upgrade! AP is already in target version")
|
||||||
allure.attach(name="Skipping Upgrade because AP is already in the target Version", body="")
|
allure.attach(name="Skipping Upgrade because AP is already in the target Version", body="")
|
||||||
break
|
break
|
||||||
|
|
||||||
self.fw_client.upgrade_firmware(serial=ap['serial'], url=str(firmware['uri']))
|
self.fw_client.upgrade_firmware(serial=ap['serial'], url=str(firmware['uri']))
|
||||||
# wait for 300 seconds after firmware upgrade
|
# wait for 300 seconds after firmware upgrade
|
||||||
items = list(range(0, 300))
|
print("waiting for 300 Sec for Firmware Upgrade")
|
||||||
l = len(items)
|
time.sleep(300)
|
||||||
self.printProgressBar(0, l, prefix='Progress:', suffix='Complete', length=50)
|
|
||||||
for i, item in enumerate(items):
|
|
||||||
# Do stuff...
|
|
||||||
time.sleep(0.8)
|
|
||||||
# Update Progress Bar
|
|
||||||
self.printProgressBar(i + 1, l, prefix='Progress:', suffix='Complete', length=50)
|
|
||||||
|
|
||||||
# check the current AP Revision again
|
# check the current AP Revision again
|
||||||
ap_version = ap_ssh.get_ap_version_ucentral()
|
ap_version = ap_ssh.get_ap_version_ucentral()
|
||||||
@@ -189,19 +179,20 @@ class Fixtures_2x:
|
|||||||
body="current revision: " + current_version + "\ntarget revision: " + target_revision)
|
body="current revision: " + current_version + "\ntarget revision: " + target_revision)
|
||||||
print("current revision: ", current_version, "\ntarget revision: ", target_revision)
|
print("current revision: ", current_version, "\ntarget revision: ", target_revision)
|
||||||
if current_version == target_revision:
|
if current_version == target_revision:
|
||||||
|
upgrade_status.append([ap['serial'], target_revision, current_version])
|
||||||
print("firmware upgraded successfully: ", target_revision)
|
print("firmware upgraded successfully: ", target_revision)
|
||||||
else:
|
else:
|
||||||
|
upgrade_status.append([ap['serial'], target_revision, current_version])
|
||||||
print("firmware upgraded failed: ", target_revision)
|
print("firmware upgraded failed: ", target_revision)
|
||||||
break
|
break
|
||||||
|
|
||||||
|
|
||||||
# if branch-commit is specified
|
# if branch-commit is specified
|
||||||
else:
|
else:
|
||||||
firmware_list = self.fw_client.get_firmwares(model=ap['model'], branch="", commit_id='')
|
firmware_list = self.fw_client.get_firmwares(model=ap['model'], branch="", commit_id='')
|
||||||
fw_list = []
|
fw_list = []
|
||||||
# getting the list of firmwares in fw_list that has the commit id specified as an input
|
# getting the list of firmwares in fw_list that has the commit id specified as an input
|
||||||
for firmware in firmware_list:
|
for firmware in firmware_list:
|
||||||
if firmware['revision'].split("/")[1].replace(" ", "").split('-')[-1] == ap['version'].split('-')[1]:
|
if firmware['revision'].split("/")[1].replace(" ", "").split('-')[-1] == ap['version'].split('-')[
|
||||||
|
1]:
|
||||||
fw_list.append(firmware)
|
fw_list.append(firmware)
|
||||||
|
|
||||||
# If there is only 1 commit ID in fw_list
|
# If there is only 1 commit ID in fw_list
|
||||||
@@ -224,6 +215,7 @@ class Fixtures_2x:
|
|||||||
|
|
||||||
# if AP is already in target Version then skip upgrade unless force upgrade is specified
|
# if AP is already in target Version then skip upgrade unless force upgrade is specified
|
||||||
if current_version == target_revision:
|
if current_version == target_revision:
|
||||||
|
upgrade_status.append([ap['serial'], target_revision, current_version, 'skip'])
|
||||||
print("Skipping Upgrade! AP is already in target version")
|
print("Skipping Upgrade! AP is already in target version")
|
||||||
allure.attach(name="Skipping Upgrade because AP is already in the target Version", body="")
|
allure.attach(name="Skipping Upgrade because AP is already in the target Version", body="")
|
||||||
break
|
break
|
||||||
@@ -233,14 +225,8 @@ class Fixtures_2x:
|
|||||||
self.fw_client.upgrade_firmware(serial=ap['serial'], url=str(url))
|
self.fw_client.upgrade_firmware(serial=ap['serial'], url=str(url))
|
||||||
|
|
||||||
# wait for 300 seconds after firmware upgrade
|
# wait for 300 seconds after firmware upgrade
|
||||||
items = list(range(0, 300))
|
print("waiting for 300 Sec for Firmware Upgrade")
|
||||||
l = len(items)
|
time.sleep(300)
|
||||||
self.printProgressBar(0, l, prefix='Progress:', suffix='Complete', length=50)
|
|
||||||
for i, item in enumerate(items):
|
|
||||||
# Do stuff...
|
|
||||||
time.sleep(0.8)
|
|
||||||
# Update Progress Bar
|
|
||||||
self.printProgressBar(i + 1, l, prefix='Progress:', suffix='Complete', length=50)
|
|
||||||
|
|
||||||
# check the current AP Revision again
|
# check the current AP Revision again
|
||||||
ap_version = ap_ssh.get_ap_version_ucentral()
|
ap_version = ap_ssh.get_ap_version_ucentral()
|
||||||
@@ -250,8 +236,10 @@ class Fixtures_2x:
|
|||||||
body="current revision: " + current_version + "\ntarget revision: " + target_revision)
|
body="current revision: " + current_version + "\ntarget revision: " + target_revision)
|
||||||
print("current revision: ", current_version, "\ntarget revision: ", target_revision)
|
print("current revision: ", current_version, "\ntarget revision: ", target_revision)
|
||||||
if current_version == target_revision:
|
if current_version == target_revision:
|
||||||
|
upgrade_status.append([ap['serial'], target_revision, current_version])
|
||||||
print("firmware upgraded successfully: ", target_revision)
|
print("firmware upgraded successfully: ", target_revision)
|
||||||
else:
|
else:
|
||||||
|
upgrade_status.append([ap['serial'], target_revision, current_version])
|
||||||
print("firmware upgraded failed: ", target_revision)
|
print("firmware upgraded failed: ", target_revision)
|
||||||
break
|
break
|
||||||
|
|
||||||
@@ -283,6 +271,7 @@ class Fixtures_2x:
|
|||||||
|
|
||||||
# if AP is already in target Version then skip upgrade unless force upgrade is specified
|
# if AP is already in target Version then skip upgrade unless force upgrade is specified
|
||||||
if current_version == target_revision:
|
if current_version == target_revision:
|
||||||
|
upgrade_status.append([ap['serial'], target_revision, current_version, 'skip'])
|
||||||
print("Skipping Upgrade! AP is already in target version")
|
print("Skipping Upgrade! AP is already in target version")
|
||||||
allure.attach(name="Skipping Upgrade because AP is already in the target Version", body="")
|
allure.attach(name="Skipping Upgrade because AP is already in the target Version", body="")
|
||||||
break
|
break
|
||||||
@@ -290,15 +279,8 @@ class Fixtures_2x:
|
|||||||
self.fw_client.upgrade_firmware(serial=ap['serial'], url=str(firmware['uri']))
|
self.fw_client.upgrade_firmware(serial=ap['serial'], url=str(firmware['uri']))
|
||||||
# wait for 300 seconds after firmware upgrade
|
# wait for 300 seconds after firmware upgrade
|
||||||
|
|
||||||
# Initial call to print 0% progress
|
print("waiting for 300 Sec for Firmware Upgrade")
|
||||||
items = list(range(0, 300))
|
time.sleep(300)
|
||||||
l = len(items)
|
|
||||||
self.printProgressBar(0, l, prefix='Progress:', suffix='Complete', length=50)
|
|
||||||
for i, item in enumerate(items):
|
|
||||||
# Do stuff...
|
|
||||||
time.sleep(0.8)
|
|
||||||
# Update Progress Bar
|
|
||||||
self.printProgressBar(i + 1, l, prefix='Progress:', suffix='Complete', length=50)
|
|
||||||
|
|
||||||
# check the current AP Revision again
|
# check the current AP Revision again
|
||||||
ap_version = ap_ssh.get_ap_version_ucentral()
|
ap_version = ap_ssh.get_ap_version_ucentral()
|
||||||
@@ -308,13 +290,25 @@ class Fixtures_2x:
|
|||||||
body="current revision: " + current_version + "\ntarget revision: " + target_revision)
|
body="current revision: " + current_version + "\ntarget revision: " + target_revision)
|
||||||
print("current revision: ", current_version, "\ntarget revision: ", target_revision)
|
print("current revision: ", current_version, "\ntarget revision: ", target_revision)
|
||||||
if current_version == target_revision:
|
if current_version == target_revision:
|
||||||
|
upgrade_status.append([target_revision, current_version])
|
||||||
print("firmware upgraded successfully: ", target_revision)
|
print("firmware upgraded successfully: ", target_revision)
|
||||||
else:
|
else:
|
||||||
|
upgrade_status.append([target_revision, current_version])
|
||||||
print("firmware upgraded failed: ", target_revision)
|
print("firmware upgraded failed: ", target_revision)
|
||||||
break
|
break
|
||||||
|
return upgrade_status
|
||||||
|
|
||||||
|
def get_ap_cloud_connectivity_status(self, get_configuration, get_apnos):
|
||||||
|
status_data = []
|
||||||
|
self.ubus_connection = []
|
||||||
|
for access_point_info in get_configuration['access_point']:
|
||||||
|
ap_ssh = get_apnos(access_point_info, sdk="2.x")
|
||||||
|
status = ap_ssh.get_ucentral_status()
|
||||||
|
print(status)
|
||||||
|
status_data.append(status)
|
||||||
|
connectivity_data = ap_ssh.run_generic_command(cmd="ubus call ucentral status")
|
||||||
|
self.ubus_connection.append(['Serial Number: ' + access_point_info['serial'], connectivity_data])
|
||||||
|
return status_data
|
||||||
|
|
||||||
def get_ap_version(self, get_apnos, get_configuration):
|
def get_ap_version(self, get_apnos, get_configuration):
|
||||||
version_list = []
|
version_list = []
|
||||||
@@ -579,7 +573,7 @@ class Fixtures_2x:
|
|||||||
pass
|
pass
|
||||||
ap_ssh.run_generic_command(cmd="logger stop testcase: " + instance_name)
|
ap_ssh.run_generic_command(cmd="logger stop testcase: " + instance_name)
|
||||||
ap_logs = ap_ssh.get_logread(start_ref="start testcase: " + instance_name,
|
ap_logs = ap_ssh.get_logread(start_ref="start testcase: " + instance_name,
|
||||||
stop_ref="stop testcase: " + instance_name)
|
stop_ref="stop testcase: " + instance_name)
|
||||||
allure.attach(body=ap_logs, name="AP Log: ")
|
allure.attach(body=ap_logs, name="AP Log: ")
|
||||||
|
|
||||||
try:
|
try:
|
||||||
@@ -620,25 +614,3 @@ class Fixtures_2x:
|
|||||||
|
|
||||||
request.addfinalizer(teardown_session)
|
request.addfinalizer(teardown_session)
|
||||||
return test_cases
|
return test_cases
|
||||||
|
|
||||||
# Print iterations progress
|
|
||||||
def printProgressBar(self, iteration, total, prefix='', suffix='', decimals=1, length=100, fill='█', printEnd="\r"):
|
|
||||||
"""
|
|
||||||
Call in a loop to create terminal progress bar
|
|
||||||
@params:
|
|
||||||
iteration - Required : current iteration (Int)
|
|
||||||
total - Required : total iterations (Int)
|
|
||||||
prefix - Optional : prefix string (Str)
|
|
||||||
suffix - Optional : suffix string (Str)
|
|
||||||
decimals - Optional : positive number of decimals in percent complete (Int)
|
|
||||||
length - Optional : character length of bar (Int)
|
|
||||||
fill - Optional : bar fill character (Str)
|
|
||||||
printEnd - Optional : end character (e.g. "\r", "\r\n") (Str)
|
|
||||||
"""
|
|
||||||
percent = ("{0:." + str(decimals) + "f}").format(100 * (iteration / float(total)))
|
|
||||||
filledLength = int(length * iteration // total)
|
|
||||||
bar = fill * filledLength + '-' * (length - filledLength)
|
|
||||||
print(f'\r{prefix} |{bar}| {percent}% {suffix}', end=printEnd)
|
|
||||||
# Print New Line on Complete
|
|
||||||
if iteration == total:
|
|
||||||
print()
|
|
||||||
@@ -11,7 +11,7 @@ num_stations=1
|
|||||||
sdk-customer-id=2
|
sdk-customer-id=2
|
||||||
|
|
||||||
#fIRMWARE Option
|
#fIRMWARE Option
|
||||||
build=0
|
firmware=0
|
||||||
|
|
||||||
# Influx Params
|
# Influx Params
|
||||||
influx_host=influx.cicd.lab.wlan.tip.build
|
influx_host=influx.cicd.lab.wlan.tip.build
|
||||||
|
|||||||
@@ -6,16 +6,10 @@ import allure
|
|||||||
import pytest
|
import pytest
|
||||||
import requests
|
import requests
|
||||||
|
|
||||||
pytestmark = [pytest.mark.test_resources, pytest.mark.sanity,
|
pytestmark = [pytest.mark.test_resources, pytest.mark.sanity, pytest.mark.uc_sanity,
|
||||||
pytest.mark.sanity_55]
|
pytest.mark.sanity_55]
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.fw
|
|
||||||
def test_firmware(firmware_upgrade):
|
|
||||||
|
|
||||||
assert True
|
|
||||||
|
|
||||||
|
|
||||||
@allure.testcase(name="Test Resources", url="")
|
@allure.testcase(name="Test Resources", url="")
|
||||||
class TestResources(object):
|
class TestResources(object):
|
||||||
"""Test Case Class: Test cases to cover resource Connectivity"""
|
"""Test Case Class: Test cases to cover resource Connectivity"""
|
||||||
@@ -28,39 +22,133 @@ class TestResources(object):
|
|||||||
login_response_json = setup_controller.login_resp.json()
|
login_response_json = setup_controller.login_resp.json()
|
||||||
response_code = setup_controller.login_resp.status_code
|
response_code = setup_controller.login_resp.status_code
|
||||||
allure.attach(name="Login Response Code", body=str(response_code))
|
allure.attach(name="Login Response Code", body=str(response_code))
|
||||||
allure.attach(name="Login Response JSON", body=str(login_response_json))
|
allure.attach(name="Login Response JSON",
|
||||||
# if setup_controller.bearer:
|
body=str(login_response_json),
|
||||||
# allure.attach(name="Controller Connectivity Success", body="")
|
attachment_type=allure.attachment_type.JSON)
|
||||||
# else:
|
|
||||||
# allure.attach(name="Controller Connectivity Failed", body="")
|
|
||||||
# pytest.exit("Controller Not Available")
|
|
||||||
# assert setup_controller.bearer
|
|
||||||
assert response_code == 200
|
assert response_code == 200
|
||||||
|
|
||||||
@pytest.mark.test_access_points_connectivity
|
@pytest.mark.test_access_points_connectivity
|
||||||
@allure.testcase(name="test_access_points_connectivity", url="")
|
@allure.testcase(name="test_access_points_connectivity", url="")
|
||||||
def test_access_points_connectivity(self, test_access_point):
|
def test_access_points_connectivity(self, test_access_point, fixtures_ver):
|
||||||
"""Test case to verify Access Points Connectivity"""
|
"""Test case to verify Access Points Connectivity"""
|
||||||
flag = True
|
data = []
|
||||||
for i in test_access_point:
|
for status in test_access_point:
|
||||||
if "ACTIVE" not in i:
|
data.append(status[0])
|
||||||
flag = False
|
allure.attach(name="AP - Cloud connectivity info", body=str(fixtures_ver.ubus_connection))
|
||||||
if flag is False:
|
assert False not in data
|
||||||
allure.attach(name="Access Point Connectivity Success", body=str(test_access_point))
|
|
||||||
pytest.exit("Access Point Manager state is not Active")
|
|
||||||
else:
|
|
||||||
allure.attach(name="Access Point Connectivity Failed", body=str(test_access_point))
|
|
||||||
|
|
||||||
assert flag
|
|
||||||
|
|
||||||
@pytest.mark.traffic_generator_connectivity
|
@pytest.mark.traffic_generator_connectivity
|
||||||
@allure.testcase(name="test_traffic_generator_connectivity", url="")
|
@allure.testcase(name="test_traffic_generator_connectivity", url="")
|
||||||
def test_traffic_generator_connectivity(self, traffic_generator_connectivity, update_report, test_cases):
|
def test_traffic_generator_connectivity(self, traffic_generator_connectivity):
|
||||||
"""Test case to verify Traffic Generator Connectivity"""
|
"""Test case to verify Traffic Generator Connectivity"""
|
||||||
if traffic_generator_connectivity == "5.4.4":
|
allure.attach(name="LANforge version", body=str(traffic_generator_connectivity))
|
||||||
allure.attach(name="LANforge-", body=str(traffic_generator_connectivity))
|
|
||||||
|
|
||||||
else:
|
|
||||||
pytest.exit("LANforgeGUI-5.4.3 is not available")
|
|
||||||
|
|
||||||
assert traffic_generator_connectivity
|
assert traffic_generator_connectivity
|
||||||
|
|
||||||
|
|
||||||
|
@allure.testcase(name="Firmware Management", url="")
|
||||||
|
@pytest.mark.uc_firmware
|
||||||
|
class TestFMS(object):
|
||||||
|
|
||||||
|
@pytest.mark.get_firmware_list
|
||||||
|
def test_fms_version_list(self, fixtures_ver, get_configuration):
|
||||||
|
PASS = []
|
||||||
|
for ap in get_configuration['access_point']:
|
||||||
|
# get the latest branch
|
||||||
|
firmware_list = fixtures_ver.fw_client.get_firmwares(model=ap['model'],
|
||||||
|
branch="",
|
||||||
|
commit_id='',
|
||||||
|
limit='10000',
|
||||||
|
offset='3000')
|
||||||
|
firmware_list.reverse()
|
||||||
|
release_list_data = []
|
||||||
|
for i in firmware_list:
|
||||||
|
release_list_data.append(str(i['release']))
|
||||||
|
allure.attach(name="firmware_list", body=str("\n".join(release_list_data)),
|
||||||
|
attachment_type=allure.attachment_type.JSON)
|
||||||
|
try:
|
||||||
|
response = requests.get(ap['version'])
|
||||||
|
print("URL is valid and exists on the internet")
|
||||||
|
allure.attach(name="firmware url: ", body=str(ap['version']))
|
||||||
|
target_revision_commit = ap['version'].split("-")[-2]
|
||||||
|
target_revision_branch = ap['version'].split("-")[-3]
|
||||||
|
flag = True
|
||||||
|
for i in release_list_data:
|
||||||
|
if target_revision_commit == i.split('-')[-1] and target_revision_branch == i.split('-')[-2]:
|
||||||
|
print('target firmware : ' + ap['version'] + " is available in FMS : " + i)
|
||||||
|
allure.attach(name='target firmware : ' + ap['version'] + " is available in FMS : " + i,
|
||||||
|
body="")
|
||||||
|
PASS.append(True)
|
||||||
|
flag = False
|
||||||
|
|
||||||
|
if flag:
|
||||||
|
print('target firmware : ' + ap['version'] + " is not available in FMS : ")
|
||||||
|
allure.attach(name='target firmware : ' + ap['version'] + " is not available in FMS : ",
|
||||||
|
body="")
|
||||||
|
PASS.append(False)
|
||||||
|
break
|
||||||
|
except Exception as e:
|
||||||
|
pass
|
||||||
|
|
||||||
|
if ap['version'].split('-')[1] == "latest":
|
||||||
|
|
||||||
|
for firmware in firmware_list:
|
||||||
|
if ap['version'].split('-')[0] == 'release':
|
||||||
|
version = firmware['revision'].split("/")[1].replace(" ", "").split('-')[1]
|
||||||
|
if firmware['revision'].split("/")[1].replace(" ", "").split('-')[1].__contains__('v2.'):
|
||||||
|
print("Target Firmware: \n", firmware)
|
||||||
|
allure.attach(name="Target firmware : ", body=str(firmware['release']))
|
||||||
|
break
|
||||||
|
|
||||||
|
if firmware['release'].split("-")[-2] == ap['version'].split('-')[0]:
|
||||||
|
print("Target Firmware: \n", firmware)
|
||||||
|
allure.attach(name="Target firmware : ", body=str(firmware['release']))
|
||||||
|
break
|
||||||
|
else:
|
||||||
|
flag = True
|
||||||
|
for firmware in firmware_list:
|
||||||
|
if ap['version'].split('-')[0] == 'release':
|
||||||
|
branch = firmware['revision'].split("/")[1].replace(" ", "").split('-')[1]
|
||||||
|
commit = ap['version'].split('-')[1]
|
||||||
|
if branch.__contains__('v2.') and commit == firmware['release'].split('-')[-1]:
|
||||||
|
print("Target Firmware: \n", firmware)
|
||||||
|
allure.attach(name="Target firmware : ", body=str(firmware['release']))
|
||||||
|
PASS.append(True)
|
||||||
|
flag = False
|
||||||
|
break
|
||||||
|
if ap['version'].split('-')[1] == firmware['release'].split('-')[-1] and ap['version'].split('-')[
|
||||||
|
0] == \
|
||||||
|
firmware['release'].split('-')[-2]:
|
||||||
|
print('target firmware : ' + ap['version'] + " is available in FMS : " + firmware['release'])
|
||||||
|
allure.attach(
|
||||||
|
name='target firmware : ' + ap['version'] + " is available in FMS : " + firmware['release']
|
||||||
|
, body="")
|
||||||
|
PASS.append(True)
|
||||||
|
flag = False
|
||||||
|
|
||||||
|
if flag:
|
||||||
|
print('target firmware : ' + ap['version'] + " is not available in FMS : ")
|
||||||
|
allure.attach(name='target firmware : ' + ap['version'] + " is not available in FMS : ",
|
||||||
|
body="")
|
||||||
|
PASS.append(False)
|
||||||
|
assert False not in PASS
|
||||||
|
|
||||||
|
@pytest.mark.firmware_upgrade
|
||||||
|
def test_firmware_upgrade_request(self, firmware_upgrade):
|
||||||
|
assert True
|
||||||
|
|
||||||
|
@pytest.mark.test_firmware_ap
|
||||||
|
def test_firmware_upgrade_status_AP(self, firmware_upgrade):
|
||||||
|
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):
|
||||||
|
status = []
|
||||||
|
for ap in get_configuration['access_point']:
|
||||||
|
ap_ssh = get_apnos(ap, pwd="../libs/apnos/", sdk="2.x")
|
||||||
|
ap_version = ap_ssh.get_ap_version_ucentral()
|
||||||
|
current_version_ap = str(ap_version).split()
|
||||||
|
data = setup_controller.get_device_by_serial_number(serial_number=ap['serial'])
|
||||||
|
allure.attach(name=str(data['firmware']) + str(current_version_ap), body="")
|
||||||
|
status.append(current_version_ap == data['firmware'].split())
|
||||||
|
assert False not in status
|
||||||
|
|||||||
Reference in New Issue
Block a user