Add tests in Nightly Sanity for AP profile push from CloudSDK and AP config apply

This commit is contained in:
bealler
2020-12-01 14:16:27 -05:00
parent dcc2c23ee5
commit f35f20bbb6
3 changed files with 313 additions and 17 deletions

View File

@@ -266,7 +266,13 @@ test_cases = [
5251,
5252,
5253,
5540
5540,
5541,
5542,
5543,
5544,
5545,
5546
]
##AP models for jfrog
@@ -467,7 +473,6 @@ for key in equipment_id_dict:
with open(report_path + today + '/report_data.json', 'w') as report_json_file:
json.dump(report_data, report_json_file)
time.sleep(60)
# Upgrade AP firmware
upgrade_fw = CloudSDK.update_firmware(equipment_id, latest_firmware_id, cloudSDK_url, bearer)
@@ -485,6 +490,8 @@ for key in equipment_id_dict:
logger.warning('Firmware upgrade API failed to send')
continue
time.sleep(300)
# Check if upgrade success is displayed on CloudSDK
cloud_ap_fw = CloudSDK.ap_firmware(customer_id, equipment_id, cloudSDK_url, bearer)
print('Current AP Firmware from CloudSDK:', cloud_ap_fw)
@@ -603,6 +610,48 @@ for key in equipment_id_dict:
### Wait for Profile Push
time.sleep(180)
###Check if VIF Config and VIF State reflect AP Profile from CloudSDK
## VIF Config
try:
ssid_config = profile_info_dict[key]["ssid_list"]
print("SSIDs in AP Profile:", ssid_config)
ssid_list = ap_ssh.get_vif_config(ap_ip, ap_username, ap_password)
print("SSIDs in AP VIF Config:", ssid_list)
if set(ssid_list) == set(ssid_config):
print("SSIDs in Wifi_VIF_Config Match AP Profile Config")
client.update_testrail(case_id="5541", run_id=rid, status_id=1, msg='SSIDs in VIF Config matches AP Profile Config')
report_data['tests'][key][5541] = "passed"
else:
print("SSIDs in Wifi_VIF_Config do not match desired AP Profile Config")
client.update_testrail(case_id="5541", run_id=rid, status_id=5, msg='SSIDs in VIF Config do not match AP Profile Config')
report_data['tests'][key][5541] = "failed"
except:
ssid_list = "ERROR"
print("Error accessing VIF Config from AP CLI")
client.update_testrail(case_id="5541", run_id=rid, status_id=4, msg='Cannot determine VIF Config - re-test required')
report_data['tests'][key][5541] = "error"
# VIF State
try:
ssid_state = ap_ssh.get_vif_state(ap_ip, ap_username, ap_password)
print("SSIDs in AP VIF State:", ssid_state)
if set(ssid_state) == set(ssid_config):
print("SSIDs properly applied on AP")
client.update_testrail(case_id="5544", run_id=rid, status_id=1, msg='SSIDs in VIF Config applied to VIF State')
report_data['tests'][key][5544] = "passed"
else:
print("SSIDs not applied on AP")
client.update_testrail(case_id="5544", run_id=rid, status_id=5, msg='SSIDs in VIF Config not applied to VIF State')
report_data['tests'][key][5544] = "failed"
except:
ssid_list = "ERROR"
print("Error accessing VIF State from AP CLI")
print("Error accessing VIF Config from AP CLI")
client.update_testrail(case_id="5544", run_id=rid, status_id=4, msg='Cannot determine VIF State - re-test required')
report_data['tests'][key][5544] = "error"
### Set LANForge port for tests
port = "eth2"
@@ -611,7 +660,7 @@ for key in equipment_id_dict:
print(iwinfo)
###Run Client Single Connectivity Test Cases for Bridge SSIDs
# TC5215 - 2.4 GHz WPA2-Enterprise
# TC5214 - 2.4 GHz WPA2-Enterprise
test_case = "5214"
radio = "wiphy0"
sta_list = ["eap5214"]
@@ -762,6 +811,54 @@ for key in equipment_id_dict:
### Wait for Profile Push
time.sleep(180)
###Check if VIF Config and VIF State reflect AP Profile from CloudSDK
## VIF Config
try:
ssid_config = profile_info_dict[fw_model + '_nat']["ssid_list"]
print("SSIDs in AP Profile:", ssid_config)
ssid_list = ap_ssh.get_vif_config(ap_ip, ap_username, ap_password)
print("SSIDs in AP VIF Config:", ssid_list)
if set(ssid_list) == set(ssid_config):
print("SSIDs in Wifi_VIF_Config Match AP Profile Config")
client.update_testrail(case_id="5542", run_id=rid, status_id=1,
msg='SSIDs in VIF Config matches AP Profile Config')
report_data['tests'][key][5542] = "passed"
else:
print("SSIDs in Wifi_VIF_Config do not match desired AP Profile Config")
client.update_testrail(case_id="5542", run_id=rid, status_id=5,
msg='SSIDs in VIF Config do not match AP Profile Config')
report_data['tests'][key][5542] = "failed"
except:
ssid_list = "ERROR"
print("Error accessing VIF Config from AP CLI")
client.update_testrail(case_id="5542", run_id=rid, status_id=4,
msg='Cannot determine VIF Config - re-test required')
report_data['tests'][key][5542] = "error"
# VIF State
try:
ssid_state = ap_ssh.get_vif_state(ap_ip, ap_username, ap_password)
print("SSIDs in AP VIF State:", ssid_state)
if set(ssid_state) == set(ssid_config):
print("SSIDs properly applied on AP")
client.update_testrail(case_id="5545", run_id=rid, status_id=1,
msg='SSIDs in VIF Config applied to VIF State')
report_data['tests'][key][5545] = "passed"
else:
print("SSIDs not applied on AP")
client.update_testrail(case_id="5545", run_id=rid, status_id=5,
msg='SSIDs in VIF Config not applied to VIF State')
report_data['tests'][key][5545] = "failed"
except:
ssid_list = "ERROR"
print("Error accessing VIF State from AP CLI")
print("Error accessing VIF Config from AP CLI")
client.update_testrail(case_id="5545", run_id=rid, status_id=4,
msg='Cannot determine VIF State - re-test required')
report_data['tests'][key][5545] = "error"
### Set LANForge port for tests
port = "eth2"
@@ -920,6 +1017,51 @@ for key in equipment_id_dict:
### Wait for Profile Push
time.sleep(180)
###Check if VIF Config and VIF State reflect AP Profile from CloudSDK
## VIF Config
try:
ssid_config = profile_info_dict[fw_model + '_vlan']["ssid_list"]
print("SSIDs in AP Profile:", ssid_config)
ssid_list = ap_ssh.get_vif_config(ap_ip, ap_username, ap_password)
print("SSIDs in AP VIF Config:", ssid_list)
if set(ssid_list) == set(ssid_config):
print("SSIDs in Wifi_VIF_Config Match AP Profile Config")
client.update_testrail(case_id="5543", run_id=rid, status_id=1,
msg='SSIDs in VIF Config matches AP Profile Config')
report_data['tests'][key][5543] = "passed"
else:
print("SSIDs in Wifi_VIF_Config do not match desired AP Profile Config")
client.update_testrail(case_id="5543", run_id=rid, status_id=5,
msg='SSIDs in VIF Config do not match AP Profile Config')
report_data['tests'][key][5543] = "failed"
except:
ssid_list = "ERROR"
print("Error accessing VIF Config from AP CLI")
client.update_testrail(case_id="5543", run_id=rid, status_id=4, msg='Cannot determine VIF Config - re-test required')
report_data['tests'][key][5543] = "error"
# VIF State
try:
ssid_state = ap_ssh.get_vif_state(ap_ip, ap_username, ap_password)
print("SSIDs in AP VIF State:", ssid_state)
if set(ssid_state) == set(ssid_config):
print("SSIDs properly applied on AP")
client.update_testrail(case_id="5546", run_id=rid, status_id=1, msg='SSIDs in VIF Config applied to VIF State')
report_data['tests'][key][5546] = "passed"
else:
print("SSIDs not applied on AP")
client.update_testrail(case_id="5546", run_id=rid, status_id=5, msg='SSIDs in VIF Config not applied to VIF State')
report_data['tests'][key][5546] = "failed"
except:
ssid_list = "ERROR"
print("Error accessing VIF State from AP CLI")
print("Error accessing VIF Config from AP CLI")
client.update_testrail(case_id="5546", run_id=rid, status_id=4,
msg='Cannot determine VIF State - re-test required')
report_data['tests'][key][5546] = "error"
### Set port for LANForge
port = "vlan100"

View File

@@ -60,6 +60,52 @@ def iwinfo_status(ap_ip, username, password):
for line in stdout.read().splitlines():
print(line)
except paramiko.ssh_exception.AuthenticationException:
print("Authentication Error, Check Credentials")
return "ERROR"
except paramiko.SSHException:
print("Cannot SSH to the AP")
return "ERROR"
except socket.timeout:
print("AP Unreachable")
return "ERROR"
def get_vif_config(ap_ip, username, password):
try:
client = paramiko.SSHClient()
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
client.connect(ap_ip, username=username, password=password, timeout=5)
stdin, stdout, stderr = client.exec_command(
"/usr/opensync/bin/ovsh s Wifi_VIF_Config -c | grep 'ssid :'")
output = str(stdout.read(), 'utf-8')
ssid_output = output.splitlines()
ssid_list = [s.strip('ssid : ') for s in ssid_output]
return ssid_list
except paramiko.ssh_exception.AuthenticationException:
print("Authentication Error, Check Credentials")
return "ERROR"
except paramiko.SSHException:
print("Cannot SSH to the AP")
return "ERROR"
except socket.timeout:
print("AP Unreachable")
return "ERROR"
def get_vif_state(ap_ip, username, password):
try:
client = paramiko.SSHClient()
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
client.connect(ap_ip, username=username, password=password, timeout=5)
stdin, stdout, stderr = client.exec_command(
"/usr/opensync/bin/ovsh s Wifi_VIF_Config -c | grep 'ssid :'")
output = str(stdout.read(), 'utf-8')
ssid_output = output.splitlines()
ssid_list = [s.strip('ssid : ') for s in ssid_output]
return ssid_list
except paramiko.ssh_exception.AuthenticationException:
print("Authentication Error, Check Credentials")
return "ERROR"

View File

@@ -65,16 +65,24 @@ profile_info_dict = {
"twoFourG_OPEN_SSID": "ECW5410_2dot4G_OPEN",
"twoFourG_WPA2_SSID": "ECW5410_2dot4G_WPA2",
"twoFourG_WPA2_PSK": "Connectus123$",
"twoFourG_WPA_SSID":"ECW5410_2dot4G_WPA",
"twoFourG_WPA_SSID": "ECW5410_2dot4G_WPA",
"twoFourG_WPA_PSK": "Connectus123$",
"twoFourG_WPA2-EAP_SSID": "ECW5410_2dot4G_WPA2-EAP"
"twoFourG_WPA2-EAP_SSID": "ECW5410_2dot4G_WPA2-EAP",
"ssid_list": [
"ECW5410_5G_WPA2",
"ECW5410_5G_WPA",
"ECW5410_5G_WPA2-EAP",
"ECW5410_2dot4G_WPA2",
"ECW5410_2dot4G_WPA",
"ECW5410_2dot4G_WPA2-EAP"
]
},
"ea8300": {
"profile_id": "153",
"fiveG_WPA2_SSID": "EA8300_5G_WPA2",
"fiveG_WPA2_PSK": "Connectus123$",
"fiveG_WPA_SSID": "EA8300_5G_WPA",
"fiveG_WPA_SSID": "EA8300_5G_WPA2",
"fiveG_WPA_PSK": "Connectus123$",
"fiveG_OPEN_SSID": "EA8300_5G_OPEN",
"fiveG_WPA2-EAP_SSID": "EA8300_5G_WPA2-EAP",
@@ -83,7 +91,19 @@ profile_info_dict = {
"twoFourG_WPA2_PSK": "Connectus123$",
"twoFourG_WPA_SSID":"EA8300_2dot4G_WPA",
"twoFourG_WPA_PSK": "Connectus123$",
"twoFourG_WPA2-EAP_SSID": "EA8300_2dot4G_WPA2-EAP"
"twoFourG_WPA2-EAP_SSID": "EA8300_2dot4G_WPA2-EAP",
#EA8300 has 2x 5GHz SSIDs because it is a tri-radio AP!
"ssid_list": [
"EA8300_5G_WPA2",
"EA8300_5G_WPA2",
"EA8300_5G_WPA",
"EA8300_5G_WPA",
"EA8300_5G_WPA2-EAP",
"EA8300_5G_WPA2-EAP",
"EA8300_2dot4G_WPA2",
"EA8300_2dot4G_WPA",
"EA8300_2dot4G_WPA2-EAP"
]
},
"ec420": {
@@ -99,7 +119,15 @@ profile_info_dict = {
"twoFourG_WPA2_PSK": "Connectus123$",
"twoFourG_WPA_SSID":"EC420_2dot4G_WPA",
"twoFourG_WPA_PSK": "Connectus123$",
"twoFourG_WPA2-EAP_SSID": "EC420_2dot4G_WPA2-EAP"
"twoFourG_WPA2-EAP_SSID": "EC420_2dot4G_WPA2-EAP",
"ssid_list": [
"EC420_5G_WPA2",
"EC420_5G_WPA",
"EC420_5G_WPA2-EAP",
"EC420_2dot4G_WPA2",
"EC420_2dot4G_WPA",
"EC420_2dot4G_WPA2-EAP"
]
},
"ecw5211": {
@@ -115,7 +143,15 @@ profile_info_dict = {
"twoFourG_WPA2_PSK": "Connectus123$",
"twoFourG_WPA_SSID":"ECW5211_2dot4G_WPA",
"twoFourG_WPA_PSK": "Connectus123$",
"twoFourG_WPA2-EAP_SSID": "ECW5211_2dot4G_WPA2-EAP"
"twoFourG_WPA2-EAP_SSID": "ECW5211_2dot4G_WPA2-EAP",
"ssid_list": [
"ECW5211_5G_WPA2",
"ECW5211_5G_WPA",
"ECW5211_5G_WPA2-EAP",
"ECW5211_2dot4G_WPA2",
"ECW5211_2dot4G_WPA",
"ECW5211_2dot4G_WPA2-EAP"
]
},
"ecw5410_nat": {
@@ -131,7 +167,15 @@ profile_info_dict = {
"twoFourG_WPA2_PSK": "Connectus123$",
"twoFourG_WPA_SSID":"ECW5410_2dot4G_WPA_NAT",
"twoFourG_WPA_PSK": "Connectus123$",
"twoFourG_WPA2-EAP_SSID": "ECW5410_2dot4G_WPA2-EAP_NAT"
"twoFourG_WPA2-EAP_SSID": "ECW5410_2dot4G_WPA2-EAP_NAT",
"ssid_list": [
"ECW5410_5G_WPA2_NAT",
"ECW5410_5G_WPA_NAT",
"ECW5410_5G_WPA2-EAP_NAT",
"ECW5410_2dot4G_WPA2_NAT",
"ECW5410_2dot4G_WPA_NAT",
"ECW5410_2dot4G_WPA2-EAP_NAT"
]
},
"ea8300_nat": {
@@ -147,7 +191,19 @@ profile_info_dict = {
"twoFourG_WPA2_PSK": "Connectus123$",
"twoFourG_WPA_SSID":"EA8300_2dot4G_WPA_NAT",
"twoFourG_WPA_PSK": "Connectus123$",
"twoFourG_WPA2-EAP_SSID": "EA8300_2dot4G_WPA2-EAP_NAT"
"twoFourG_WPA2-EAP_SSID": "EA8300_2dot4G_WPA2-EAP_NAT",
#EA8300 has 2x 5GHz SSIDs because it is a tri-radio AP!
"ssid_list": [
"EA8300_5G_WPA2_NAT",
"EA8300_5G_WPA2_NAT",
"EA8300_5G_WPA_NAT",
"EA8300_5G_WPA_NAT",
"EA8300_5G_WPA2-EAP_NAT",
"EA8300_5G_WPA2-EAP_NAT",
"EA8300_2dot4G_WPA2_NAT",
"EA8300_2dot4G_WPA_NAT",
"EA8300_2dot4G_WPA2-EAP_NAT"
]
},
"ec420_nat": {
@@ -163,7 +219,15 @@ profile_info_dict = {
"twoFourG_WPA2_PSK": "Connectus123$",
"twoFourG_WPA_SSID":"EC420_2dot4G_WPA_NAT",
"twoFourG_WPA_PSK": "Connectus123$",
"twoFourG_WPA2-EAP_SSID": "EC420_2dot4G_WPA2-EAP_NAT"
"twoFourG_WPA2-EAP_SSID": "EC420_2dot4G_WPA2-EAP_NAT",
"ssid_list": [
"EC420_5G_WPA2_NAT",
"EC420_5G_WPA_NAT",
"EC420_5G_WPA2-EAP_NAT",
"EC420_2dot4G_WPA2_NAT",
"EC420_2dot4G_WPA_NAT",
"EC420_2dot4G_WPA2-EAP_NAT"
]
},
"ecw5211_nat": {
@@ -179,7 +243,15 @@ profile_info_dict = {
"twoFourG_WPA2_PSK": "Connectus123$",
"twoFourG_WPA_SSID":"ECW5211_2dot4G_WPA_NAT",
"twoFourG_WPA_PSK": "Connectus123$",
"twoFourG_WPA2-EAP_SSID": "ECW5211_2dot4G_WPA2-EAP_NAT"
"twoFourG_WPA2-EAP_SSID": "ECW5211_2dot4G_WPA2-EAP_NAT",
"ssid_list": [
"ECW5211_5G_WPA2_NAT",
"ECW5211_5G_WPA_NAT",
"ECW5211_5G_WPA2-EAP_NAT",
"ECW5211_2dot4G_WPA2_NAT",
"ECW5211_2dot4G_WPA_NAT",
"ECW5211_2dot4G_WPA2-EAP_NAT"
]
},
"ecw5410_vlan": {
@@ -195,7 +267,15 @@ profile_info_dict = {
"twoFourG_WPA2_PSK": "Connectus123$",
"twoFourG_WPA_SSID":"ECW5410_2dot4G_WPA_VLAN",
"twoFourG_WPA_PSK": "Connectus123$",
"twoFourG_WPA2-EAP_SSID": "ECW5410_2dot4G_WPA2-EAP_VLAN"
"twoFourG_WPA2-EAP_SSID": "ECW5410_2dot4G_WPA2-EAP_VLAN",
"ssid_list": [
"ECW5410_5G_WPA2_VLAN",
"ECW5410_5G_WPA_VLAN",
"ECW5410_5G_WPA2-EAP_VLAN",
"ECW5410_2dot4G_WPA2_VLAN",
"ECW5410_2dot4G_WPA_VLAN",
"ECW5410_2dot4G_WPA2-EAP_VLAN"
]
},
"ea8300_vlan": {
@@ -211,7 +291,19 @@ profile_info_dict = {
"twoFourG_WPA2_PSK": "Connectus123$",
"twoFourG_WPA_SSID":"EA8300_2dot4G_WPA_VLAN",
"twoFourG_WPA_PSK": "Connectus123$",
"twoFourG_WPA2-EAP_SSID": "EA8300_2dot4G_WPA2-EAP_VLAN"
"twoFourG_WPA2-EAP_SSID": "EA8300_2dot4G_WPA2-EAP_VLAN",
#EA8300 has 2x 5GHz SSIDs because it is a tri-radio AP!
"ssid_list": [
"EA8300_5G_WPA2_VLAN",
"EA8300_5G_WPA2_VLAN",
"EA8300_5G_WPA_VLAN",
"EA8300_5G_WPA_VLAN",
"EA8300_5G_WPA2-EAP_VLAN",
"EA8300_5G_WPA2-EAP_VLAN",
"EA8300_2dot4G_WPA2_VLAN",
"EA8300_2dot4G_WPA_VLAN",
"EA8300_2dot4G_WPA2-EAP_VLAN"
]
},
"ec420_vlan": {
@@ -227,7 +319,15 @@ profile_info_dict = {
"twoFourG_WPA2_PSK": "Connectus123$",
"twoFourG_WPA_SSID":"EC420_2dot4G_WPA_VLAN",
"twoFourG_WPA_PSK": "Connectus123$",
"twoFourG_WPA2-EAP_SSID": "EC420_2dot4G_WPA2-EAP_VLAN"
"twoFourG_WPA2-EAP_SSID": "EC420_2dot4G_WPA2-EAP_VLAN",
"ssid_list": [
"EC420_5G_WPA2_VLAN",
"EC420_5G_WPA_VLAN",
"EC420_5G_WPA2-EAP_VLAN",
"EC420_2dot4G_WPA2_VLAN",
"EC420_2dot4G_WPA_VLAN",
"EC420_2dot4G_WPA2-EAP_VLAN"
]
},
"ecw5211_vlan": {
@@ -243,6 +343,14 @@ profile_info_dict = {
"twoFourG_WPA2_PSK": "Connectus123$",
"twoFourG_WPA_SSID":"ECW5211_2dot4G_WPA_VLAN",
"twoFourG_WPA_PSK": "Connectus123$",
"twoFourG_WPA2-EAP_SSID": "ECW5211_2dot4G_WPA2-EAP_VLAN"
"twoFourG_WPA2-EAP_SSID": "ECW5211_2dot4G_WPA2-EAP_VLAN",
"ssid_list": [
"ECW5211_5G_WPA2_VLAN",
"ECW5211_5G_WPA_VLAN",
"ECW5211_5G_WPA2-EAP_VLAN",
"ECW5211_2dot4G_WPA2_VLAN",
"ECW5211_2dot4G_WPA_VLAN",
"ECW5211_2dot4G_WPA2-EAP_VLAN"
]
}
}