mirror of
				https://github.com/Telecominfraproject/wlan-lanforge-scripts.git
				synced 2025-11-03 20:27:54 +00:00 
			
		
		
		
	Changes to use API to check CloudSDK version. cluster_version.py is now obsolete and is deleted
This commit is contained in:
		@@ -58,7 +58,7 @@ from cloudsdk import CloudSDK
 | 
				
			|||||||
import ap_ssh
 | 
					import ap_ssh
 | 
				
			||||||
from ap_ssh import ssh_cli_active_fw
 | 
					from ap_ssh import ssh_cli_active_fw
 | 
				
			||||||
from ap_ssh import iwinfo_status
 | 
					from ap_ssh import iwinfo_status
 | 
				
			||||||
import cluster_version
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
### Set CloudSDK URL ###
 | 
					### Set CloudSDK URL ###
 | 
				
			||||||
cloudSDK_url=os.getenv('CLOUD_SDK_URL')
 | 
					cloudSDK_url=os.getenv('CLOUD_SDK_URL')
 | 
				
			||||||
@@ -265,40 +265,14 @@ test_cases = [
 | 
				
			|||||||
       5250,
 | 
					       5250,
 | 
				
			||||||
       5251,
 | 
					       5251,
 | 
				
			||||||
       5252,
 | 
					       5252,
 | 
				
			||||||
       5253
 | 
					       5253,
 | 
				
			||||||
 | 
					       5540
 | 
				
			||||||
]
 | 
					]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
##AP models for jfrog
 | 
					##AP models for jfrog
 | 
				
			||||||
ap_models = ["ec420","ea8300","ecw5211","ecw5410"]
 | 
					ap_models = ["ec420","ea8300","ecw5211","ecw5410"]
 | 
				
			||||||
#ap_models = ["ecw5410"]
 | 
					#ap_models = ["ecw5410"]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#############################################################################
 | 
					 | 
				
			||||||
##################### CloudSDK Version ###############################
 | 
					 | 
				
			||||||
print("Getting CloudSDK version information...")
 | 
					 | 
				
			||||||
try:
 | 
					 | 
				
			||||||
    cluster_ver = cluster_version.main()
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    print("CloudSDK Version Information:")
 | 
					 | 
				
			||||||
    print("-------------------------------------------")
 | 
					 | 
				
			||||||
    print(cluster_ver)
 | 
					 | 
				
			||||||
    print("-------------------------------------------")
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    logger.info('CloudSDK version info:'+cluster_ver)
 | 
					 | 
				
			||||||
    cloudsdk_cluster_info = {}
 | 
					 | 
				
			||||||
    for line in cluster_ver.splitlines():
 | 
					 | 
				
			||||||
        (key, val) = line.split("=")
 | 
					 | 
				
			||||||
        cloudsdk_cluster_info[key] = val
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
except:
 | 
					 | 
				
			||||||
    cluster_ver = 'error'
 | 
					 | 
				
			||||||
    print("ERROR: CloudSDK Version Unavailable")
 | 
					 | 
				
			||||||
    logger.info('CloudSDK version Unavailable')
 | 
					 | 
				
			||||||
    cloudsdk_cluster_info = {
 | 
					 | 
				
			||||||
        "date" : "unknown",
 | 
					 | 
				
			||||||
        "commitId" : "unknown",
 | 
					 | 
				
			||||||
        "projectVersion" : "unknown"
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
############################################################################
 | 
					############################################################################
 | 
				
			||||||
#################### Create Report #########################################
 | 
					#################### Create Report #########################################
 | 
				
			||||||
############################################################################
 | 
					############################################################################
 | 
				
			||||||
@@ -325,7 +299,12 @@ except:
 | 
				
			|||||||
tc_results = dict.fromkeys(test_cases, "not run")
 | 
					tc_results = dict.fromkeys(test_cases, "not run")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
report_data = dict()
 | 
					report_data = dict()
 | 
				
			||||||
report_data['cloud_sdk'] = cloudsdk_cluster_info
 | 
					report_data['cloud_sdk'] = {
 | 
				
			||||||
 | 
					               "ea8300" : "",
 | 
				
			||||||
 | 
					               "ecw5211": "",
 | 
				
			||||||
 | 
					               "ecw5410": "",
 | 
				
			||||||
 | 
					               "ec420": ""
 | 
				
			||||||
 | 
					              }
 | 
				
			||||||
report_data["fw_available"] = dict.fromkeys(ap_models,"Unknown")
 | 
					report_data["fw_available"] = dict.fromkeys(ap_models,"Unknown")
 | 
				
			||||||
report_data["fw_under_test"] = dict.fromkeys(ap_models,"N/A")
 | 
					report_data["fw_under_test"] = dict.fromkeys(ap_models,"N/A")
 | 
				
			||||||
report_data['pass_percent'] = dict.fromkeys(ap_models,"")
 | 
					report_data['pass_percent'] = dict.fromkeys(ap_models,"")
 | 
				
			||||||
@@ -406,10 +385,6 @@ for key in equipment_id_dict:
 | 
				
			|||||||
    ##Get Bearer Token to make sure its valid (long tests can require re-auth)
 | 
					    ##Get Bearer Token to make sure its valid (long tests can require re-auth)
 | 
				
			||||||
    bearer = CloudSDK.get_bearer(cloudSDK_url)
 | 
					    bearer = CloudSDK.get_bearer(cloudSDK_url)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    # create dictionary to track test case pass/fail
 | 
					 | 
				
			||||||
    #tc_results = dict.fromkeys(test_cases, "Not Run")
 | 
					 | 
				
			||||||
    #print(tc_results)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    ###Get Current AP Firmware and upgrade
 | 
					    ###Get Current AP Firmware and upgrade
 | 
				
			||||||
    customer_id = "2"
 | 
					    customer_id = "2"
 | 
				
			||||||
    equipment_id = equipment_id_dict[key]
 | 
					    equipment_id = equipment_id_dict[key]
 | 
				
			||||||
@@ -439,6 +414,13 @@ for key in equipment_id_dict:
 | 
				
			|||||||
        print('FW does not require updating')
 | 
					        print('FW does not require updating')
 | 
				
			||||||
        report_data['fw_available'][key] = "No"
 | 
					        report_data['fw_available'][key] = "No"
 | 
				
			||||||
        logger.info(fw_model + " does not require upgrade. Not performing sanity tests for this AP variant")
 | 
					        logger.info(fw_model + " does not require upgrade. Not performing sanity tests for this AP variant")
 | 
				
			||||||
 | 
					        cloudsdk_cluster_info = {
 | 
				
			||||||
 | 
					            "date": "N/A",
 | 
				
			||||||
 | 
					            "commitId": "N/A",
 | 
				
			||||||
 | 
					            "projectVersion": "N/A"
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        report_data['cloud_sdk'][key] = cloudsdk_cluster_info
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    else:
 | 
					    else:
 | 
				
			||||||
        print('FW needs updating')
 | 
					        print('FW needs updating')
 | 
				
			||||||
        report_data['fw_available'][key] = "Yes"
 | 
					        report_data['fw_available'][key] = "Yes"
 | 
				
			||||||
@@ -447,10 +429,46 @@ for key in equipment_id_dict:
 | 
				
			|||||||
        ###Create Test Run
 | 
					        ###Create Test Run
 | 
				
			||||||
        today = str(date.today())
 | 
					        today = str(date.today())
 | 
				
			||||||
        test_run_name = "Daily_Sanity_" + fw_model + "_" + today + "_" + latest_ap_image
 | 
					        test_run_name = "Daily_Sanity_" + fw_model + "_" + today + "_" + latest_ap_image
 | 
				
			||||||
        client.create_testrun(name=test_run_name, case_ids=test_cases, project_id=projId, milestone_id=milestoneId, description='CloudSDK version info:\n'+cluster_ver)
 | 
					        client.create_testrun(name=test_run_name, case_ids=test_cases, project_id=projId, milestone_id=milestoneId, description="Automated Nightly Sanity test run for new firmware build")
 | 
				
			||||||
        rid = client.get_run_id(test_run_name="Daily_Sanity_" + fw_model + "_" + today + "_" + latest_ap_image)
 | 
					        rid = client.get_run_id(test_run_name="Daily_Sanity_" + fw_model + "_" + today + "_" + latest_ap_image)
 | 
				
			||||||
        print("TIP run ID is:", rid)
 | 
					        print("TIP run ID is:", rid)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        ###GetCloudSDK Version
 | 
				
			||||||
 | 
					        print("Getting CloudSDK version information...")
 | 
				
			||||||
 | 
					        try:
 | 
				
			||||||
 | 
					            cluster_ver = CloudSDK.get_cloudsdk_version(cloudSDK_url, bearer)
 | 
				
			||||||
 | 
					            print("CloudSDK Version Information:")
 | 
				
			||||||
 | 
					            print("-------------------------------------------")
 | 
				
			||||||
 | 
					            print(cluster_ver)
 | 
				
			||||||
 | 
					            print("-------------------------------------------")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            cloudsdk_cluster_info = {}
 | 
				
			||||||
 | 
					            cloudsdk_cluster_info['date'] = cluster_ver['commitDate']
 | 
				
			||||||
 | 
					            cloudsdk_cluster_info['commitId'] = cluster_ver['commitID']
 | 
				
			||||||
 | 
					            cloudsdk_cluster_info['projectVersion'] = cluster_ver['projectVersion']
 | 
				
			||||||
 | 
					            report_data['cloud_sdk'][key] = cloudsdk_cluster_info
 | 
				
			||||||
 | 
					            logger.info('CloudSDK version info: ',cluster_ver)
 | 
				
			||||||
 | 
					            client.update_testrail(case_id="5540", run_id=rid, status_id=1, msg='Read CloudSDK version from API successfully')
 | 
				
			||||||
 | 
					            report_data['tests'][key][5540] = "passed"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        except:
 | 
				
			||||||
 | 
					            cluster_ver = 'error'
 | 
				
			||||||
 | 
					            print("ERROR: CloudSDK Version Unavailable")
 | 
				
			||||||
 | 
					            logger.info('CloudSDK version Unavailable')
 | 
				
			||||||
 | 
					            cloudsdk_cluster_info = {
 | 
				
			||||||
 | 
					                "date": "unknown",
 | 
				
			||||||
 | 
					                "commitId": "unknown",
 | 
				
			||||||
 | 
					                "projectVersion": "unknown"
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					            client.update_testrail(case_id="5540", run_id=rid, status_id=5, msg='Could not read CloudSDK version from API')
 | 
				
			||||||
 | 
					            report_data['cloud_sdk'][key] = cloudsdk_cluster_info
 | 
				
			||||||
 | 
					            report_data['tests'][key][5540] = "failed"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        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 AP firmware
 | 
				
			||||||
        upgrade_fw = CloudSDK.update_firmware(equipment_id, latest_firmware_id, cloudSDK_url, bearer)
 | 
					        upgrade_fw = CloudSDK.update_firmware(equipment_id, latest_firmware_id, cloudSDK_url, bearer)
 | 
				
			||||||
        logger.info("Lab "+fw_model+" Requires FW update")
 | 
					        logger.info("Lab "+fw_model+" Requires FW update")
 | 
				
			||||||
@@ -467,9 +485,6 @@ for key in equipment_id_dict:
 | 
				
			|||||||
            logger.warning('Firmware upgrade API failed to send')
 | 
					            logger.warning('Firmware upgrade API failed to send')
 | 
				
			||||||
            continue
 | 
					            continue
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        print("Wait for AP Upgrade")
 | 
					 | 
				
			||||||
        time.sleep(300)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        # Check if upgrade success is displayed on CloudSDK
 | 
					        # Check if upgrade success is displayed on CloudSDK
 | 
				
			||||||
        cloud_ap_fw = CloudSDK.ap_firmware(customer_id, equipment_id, cloudSDK_url, bearer)
 | 
					        cloud_ap_fw = CloudSDK.ap_firmware(customer_id, equipment_id, cloudSDK_url, bearer)
 | 
				
			||||||
        print('Current AP Firmware from CloudSDK:', cloud_ap_fw)
 | 
					        print('Current AP Firmware from CloudSDK:', cloud_ap_fw)
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -157,3 +157,16 @@ class CloudSDK:
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
        response = requests.request("PUT", url, headers=headers, data=json.dumps(equipment_info))
 | 
					        response = requests.request("PUT", url, headers=headers, data=json.dumps(equipment_info))
 | 
				
			||||||
        #print(response)
 | 
					        #print(response)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def get_cloudsdk_version(cloudSDK_url, bearer):
 | 
				
			||||||
 | 
					        #print(latest_ap_image)
 | 
				
			||||||
 | 
					        fw_id_url = cloudSDK_url+"/ping"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        payload = {}
 | 
				
			||||||
 | 
					        headers = {
 | 
				
			||||||
 | 
					            'Authorization': 'Bearer ' + bearer
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        response = requests.request("GET", fw_id_url, headers=headers, data=payload)
 | 
				
			||||||
 | 
					        cloud_sdk_version = response.json()
 | 
				
			||||||
 | 
					        return cloud_sdk_version
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,74 +0,0 @@
 | 
				
			|||||||
##################################################################################
 | 
					 | 
				
			||||||
# Used to login to AWS and determine current CloudSDK version
 | 
					 | 
				
			||||||
# Requires user to install chromedriver and specify path
 | 
					 | 
				
			||||||
#
 | 
					 | 
				
			||||||
# Used by Nightly_Sanity #########################################################
 | 
					 | 
				
			||||||
##################################################################################
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
import time
 | 
					 | 
				
			||||||
from threading import Thread
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
from selenium import webdriver
 | 
					 | 
				
			||||||
from selenium.webdriver.common.by import By
 | 
					 | 
				
			||||||
from selenium.webdriver.common.keys import Keys
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
import os
 | 
					 | 
				
			||||||
import subprocess
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
user=os.getenv('AWS_USER')
 | 
					 | 
				
			||||||
password=os.getenv('AWS_PWD')
 | 
					 | 
				
			||||||
chromedriver_dir=os.getenv('CHROMEDRIVER_PATH')
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
def main():
 | 
					 | 
				
			||||||
    chrome_options = webdriver.ChromeOptions()
 | 
					 | 
				
			||||||
    chrome_options.add_argument("--headless")
 | 
					 | 
				
			||||||
    driver = webdriver.Chrome(executable_path=chromedriver_dir, options=chrome_options)
 | 
					 | 
				
			||||||
    driver.get("https://telecominfraproject.awsapps.com/start#")
 | 
					 | 
				
			||||||
    time.sleep(10);
 | 
					 | 
				
			||||||
    elem = driver.find_element_by_xpath('//*[@id="awsui-input-0"]')
 | 
					 | 
				
			||||||
    elem.send_keys(user);
 | 
					 | 
				
			||||||
    elem.send_keys(Keys.ENTER)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    time.sleep(5);
 | 
					 | 
				
			||||||
    elem2 = driver.find_element_by_xpath('//*[@id="awsui-input-1"]')
 | 
					 | 
				
			||||||
    elem2.send_keys(password)
 | 
					 | 
				
			||||||
    elem2.send_keys(Keys.ENTER)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    time.sleep(10);
 | 
					 | 
				
			||||||
    driver.find_element_by_xpath("//*[@id=\"app-03e8643328913682\"]").click()
 | 
					 | 
				
			||||||
    time.sleep(2);
 | 
					 | 
				
			||||||
    driver.find_element_by_xpath("//*[@id=\"ins-9f89e35be3e67abf\"]/div/div/img").click()
 | 
					 | 
				
			||||||
    time.sleep(5);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    driver.find_element_by_xpath("//*[@id=\"temp-credentials-button\"]").click()
 | 
					 | 
				
			||||||
    time.sleep(2);
 | 
					 | 
				
			||||||
    AWS_ACCESS_KEY_ID = driver.find_element_by_xpath("//*[@id=\"env-var-linux\"]/div[1]").text
 | 
					 | 
				
			||||||
    AWS_ACCESS_KEY_ID = AWS_ACCESS_KEY_ID[26:-1]
 | 
					 | 
				
			||||||
    AWS_SECRET_ACCESS_KEY = driver.find_element_by_xpath("//*[@id=\"env-var-linux\"]/div[2]").text
 | 
					 | 
				
			||||||
    AWS_SECRET_ACCESS_KEY = AWS_SECRET_ACCESS_KEY[30:-1]
 | 
					 | 
				
			||||||
    AWS_SESSION_TOKEN = driver.find_element_by_xpath("//*[@id=\"env-var-linux\"]/div[3]").text
 | 
					 | 
				
			||||||
    AWS_SESSION_TOKEN = AWS_SESSION_TOKEN[26:-1]
 | 
					 | 
				
			||||||
    driver.close()
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    #print (AWS_ACCESS_KEY_ID)
 | 
					 | 
				
			||||||
    #print(AWS_SECRET_ACCESS_KEY)
 | 
					 | 
				
			||||||
    #print(AWS_SESSION_TOKEN)
 | 
					 | 
				
			||||||
    # //*[@id="env-var-linux"]/div[2]/text()
 | 
					 | 
				
			||||||
    # //*[@id="env-var-linux"]/div[3]/text()
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    os.environ['AWS_ACCESS_KEY_ID'] = AWS_ACCESS_KEY_ID
 | 
					 | 
				
			||||||
    os.environ['AWS_SECRET_ACCESS_KEY'] = AWS_SECRET_ACCESS_KEY
 | 
					 | 
				
			||||||
    os.environ['AWS_SESSION_TOKEN'] = AWS_SESSION_TOKEN
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    get_pods = subprocess.check_output("kubectl -n tip get pods | grep tip-wlan-opensync-gw-cloud", shell=True, universal_newlines=True)
 | 
					 | 
				
			||||||
    #print(get_pods)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    opensync = str(get_pods.split()[0])
 | 
					 | 
				
			||||||
    #print(opensync)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    version_info = subprocess.check_output("kubectl exec -it -n tip "+opensync+" -- cat commit.properties", shell=True, universal_newlines=True)
 | 
					 | 
				
			||||||
    return version_info
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
@@ -6,8 +6,8 @@
 | 
				
			|||||||
<head>
 | 
					<head>
 | 
				
			||||||
    
 | 
					    
 | 
				
			||||||
<?php
 | 
					<?php
 | 
				
			||||||
error_reporting(E_ALL);
 | 
					//error_reporting(E_ALL);
 | 
				
			||||||
ini_set('display_errors', '1');
 | 
					//ini_set('display_errors', '1');
 | 
				
			||||||
$results = file_get_contents('report_data.json');
 | 
					$results = file_get_contents('report_data.json');
 | 
				
			||||||
$json = json_decode($results, true);
 | 
					$json = json_decode($results, true);
 | 
				
			||||||
?>
 | 
					?>
 | 
				
			||||||
@@ -76,13 +76,49 @@ $json = json_decode($results, true);
 | 
				
			|||||||
        <TD style="font-size:12px"><?php echo print_r($json['fw_under_test']['ec420'],true) ?></TD>
 | 
					        <TD style="font-size:12px"><?php echo print_r($json['fw_under_test']['ec420'],true) ?></TD>
 | 
				
			||||||
   </TR>
 | 
					   </TR>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        <TR ALIGN="CENTER" style="font-weight:bold">
 | 
				
			||||||
 | 
					        <TD></TD>
 | 
				
			||||||
 | 
					        <TD ALIGN="LEFT" >CloudSDK Commit Date</TD>
 | 
				
			||||||
 | 
					        <TD style="font-size:12px"><?php echo print_r($json['cloud_sdk']['ea8300']['date'],true) ?></TD>
 | 
				
			||||||
 | 
					        <TD style="font-size:12px"><?php echo print_r($json['cloud_sdk']['ecw5211']['date'],true) ?></TD>
 | 
				
			||||||
 | 
					        <TD style="font-size:12px"><?php echo print_r($json['cloud_sdk']['ecw5410']['date'],true) ?></TD>
 | 
				
			||||||
 | 
					        <TD style="font-size:12px"><?php echo print_r($json['cloud_sdk']['ec420']['date'],true) ?></TD>
 | 
				
			||||||
 | 
					   </TR>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        <TR ALIGN="CENTER" style="font-weight:bold">
 | 
				
			||||||
 | 
					        <TD></TD>
 | 
				
			||||||
 | 
					        <TD ALIGN="LEFT" >CloudSDK Commit ID</TD>
 | 
				
			||||||
 | 
					        <TD style="font-size:10px"><?php echo print_r($json['cloud_sdk']['ea8300']['commitId'],true) ?></TD>
 | 
				
			||||||
 | 
					        <TD style="font-size:10px"><?php echo print_r($json['cloud_sdk']['ecw5211']['commitId'],true) ?></TD>
 | 
				
			||||||
 | 
					        <TD style="font-size:10px"><?php echo print_r($json['cloud_sdk']['ecw5410']['commitId'],true) ?></TD>
 | 
				
			||||||
 | 
					        <TD style="font-size:10px"><?php echo print_r($json['cloud_sdk']['ec420']['commitId'],true) ?></TD>
 | 
				
			||||||
 | 
					   </TR>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        <TR ALIGN="CENTER" style="font-weight:bold">
 | 
				
			||||||
 | 
					        <TD></TD>
 | 
				
			||||||
 | 
					        <TD ALIGN="LEFT" >CloudSDK Project Version</TD>
 | 
				
			||||||
 | 
					        <TD style="font-size:12px"><?php echo print_r($json['cloud_sdk']['ea8300']['projectVersion'],true) ?></TD>
 | 
				
			||||||
 | 
					        <TD style="font-size:12px"><?php echo print_r($json['cloud_sdk']['ecw5211']['projectVersion'],true) ?></TD>
 | 
				
			||||||
 | 
					        <TD style="font-size:12px"><?php echo print_r($json['cloud_sdk']['ecw5410']['projectVersion'],true) ?></TD>
 | 
				
			||||||
 | 
					        <TD style="font-size:12px"><?php echo print_r($json['cloud_sdk']['ec420']['projectVersion'],true) ?></TD>
 | 
				
			||||||
 | 
					   </TR>
 | 
				
			||||||
 | 
					       
 | 
				
			||||||
       <TR ALIGN="CENTER" style="font-weight:bold">
 | 
					       <TR ALIGN="CENTER" style="font-weight:bold">
 | 
				
			||||||
        <TD></TD>
 | 
					        <TD></TD>
 | 
				
			||||||
        <TD ALIGN="LEFT">Test Pass Rate</TD>
 | 
					        <TD ALIGN="LEFT">Test Pass Rate</TD>
 | 
				
			||||||
        <TD style="font-size:14px"><?php echo print_r($json['pass_percent']['ea8300'],true) ?>%</TD>
 | 
					        <TD style="font-size:14px"><?php echo print_r($json['pass_percent']['ea8300'],true) ?></TD>
 | 
				
			||||||
        <TD style="font-size:14px"><?php echo print_r($json['pass_percent']['ecw5211'],true) ?>%</TD>
 | 
					        <TD style="font-size:14px"><?php echo print_r($json['pass_percent']['ecw5211'],true) ?></TD>
 | 
				
			||||||
        <TD style="font-size:14px"><?php echo print_r($json['pass_percent']['ecw5410'],true) ?>%</TD>
 | 
					        <TD style="font-size:14px"><?php echo print_r($json['pass_percent']['ecw5410'],true) ?></TD>
 | 
				
			||||||
        <TD style="font-size:14px"><?php echo print_r($json['pass_percent']['ec420'],true) ?>%</TD>
 | 
					        <TD style="font-size:14px"><?php echo print_r($json['pass_percent']['ec420'],true) ?></TD>
 | 
				
			||||||
 | 
					   </TR>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      <TR ALIGN="CENTER">
 | 
				
			||||||
 | 
					      <TD>5540</TD>
 | 
				
			||||||
 | 
					      <TD ALIGN="LEFT">Get CloudSDK Version with API</TD>
 | 
				
			||||||
 | 
					      <TD><?php echo print_r($json['tests']['ea8300']['5540'],true) ?></TD>
 | 
				
			||||||
 | 
					       <TD><?php echo print_r($json['tests']['ecw5211']['5540'],true) ?></TD>
 | 
				
			||||||
 | 
					       <TD><?php echo print_r($json['tests']['ecw5410']['5540'],true) ?></TD>
 | 
				
			||||||
 | 
					       <TD><?php echo print_r($json['tests']['ec420']['5540'],true) ?></TD>
 | 
				
			||||||
   </TR>
 | 
					   </TR>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    <TR ALIGN="CENTER">
 | 
					    <TR ALIGN="CENTER">
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user