diff --git a/py-json/LANforge/LFRequest.py b/py-json/LANforge/LFRequest.py index b0e881bf..7ea796c5 100644 --- a/py-json/LANforge/LFRequest.py +++ b/py-json/LANforge/LFRequest.py @@ -1,3 +1,5 @@ +#!/usr/bin/env python3 + # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Class holds default settings for json requests - # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -6,8 +8,6 @@ import os import importlib import urllib from urllib import request -from urllib import error -from urllib import parse import json if sys.version_info[0] != 3: diff --git a/py-json/LANforge/LFUtils.py b/py-json/LANforge/LFUtils.py index 850ae56d..e5d7bb35 100644 --- a/py-json/LANforge/LFUtils.py +++ b/py-json/LANforge/LFUtils.py @@ -1,3 +1,5 @@ +#!/usr/bin/env python3 + # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - # Define useful common methods - # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -7,8 +9,7 @@ import importlib import pprint import time from time import sleep -from random import seed -from random import randint +from random import seed, randint import re import ipaddress diff --git a/py-json/LANforge/lfcli_base.py b/py-json/LANforge/lfcli_base.py index bc57ea3b..d7120ab9 100644 --- a/py-json/LANforge/lfcli_base.py +++ b/py-json/LANforge/lfcli_base.py @@ -2,7 +2,6 @@ import sys import os import importlib -import signal import traceback # Extend this class to use common set of debug and request features for your script from pprint import pprint @@ -11,9 +10,6 @@ import random import string import datetime import argparse -import csv -import pandas as pd -import re if sys.version_info[0] != 3: print("This script requires Python 3") @@ -661,118 +657,3 @@ class LFCliBase: abgnAX : 12, bgnAX : 13 """ - - #================ Pandas Dataframe Functions ====================================== - - #takes any dataframe and returns the specified file extension of it - def df_to_file(self, output_f=None,dataframe=None, save_path=None): - if output_f.lower() == 'hdf': - import tables - dataframe.to_hdf(save_path.replace('csv','h5',1), 'table', append=True) - if output_f.lower() == 'parquet': - import pyarrow as pa - dataframe.to_parquet(save_path.replace('csv','parquet',1), engine='pyarrow') - if output_f.lower() == 'png': - fig = dataframe.plot().get_figure() - fig.savefig(save_path.replace('csv','png',1)) - if output_f.lower() == 'xlsx': - dataframe.to_excel(save_path.replace('csv','xlsx',1)) - if output_f.lower() == 'json': - dataframe.to_json(save_path.replace('csv','json',1)) - if output_f.lower() == 'stata': - dataframe.to_stata(save_path.replace('csv','dta',1)) - if output_f.lower() == 'pickle': - dataframe.to_pickle(save_path.replace('csv','pkl',1)) - if output_f.lower() == 'html': - dataframe.to_html(save_path.replace('csv','html',1)) - - #takes any format of a file and returns a dataframe of it - def file_to_df(self,file_name): - if file_name.split('.')[-1] == 'csv': - return pd.read_csv(file_name) - - #only works for test_ipv4_variable_time at the moment - def compare_two_df(self,dataframe_one=None,dataframe_two=None): - #df one = current report - #df two = compared report - pd.set_option("display.max_rows", None, "display.max_columns", None) - #get all of common columns besides Timestamp, Timestamp milliseconds - common_cols = list(set(dataframe_one.columns).intersection(set(dataframe_two.columns))) - cols_to_remove = ['Timestamp milliseconds epoch','Timestamp','LANforge GUI Build: 5.4.3'] - com_cols = [i for i in common_cols if i not in cols_to_remove] - #check if dataframes have the same endpoints - if dataframe_one.name.unique().tolist().sort() == dataframe_two.name.unique().tolist().sort(): - endpoint_names = dataframe_one.name.unique().tolist() - if com_cols is not None: - dataframe_one = dataframe_one[[c for c in dataframe_one.columns if c in com_cols]] - dataframe_two = dataframe_two[[c for c in dataframe_one.columns if c in com_cols]] - dataframe_one = dataframe_one.loc[:, ~dataframe_one.columns.str.startswith('Script Name:')] - dataframe_two = dataframe_two.loc[:, ~dataframe_two.columns.str.startswith('Script Name:')] - lowest_duration=min(dataframe_one['Duration elapsed'].max(),dataframe_two['Duration elapsed'].max()) - print("The max duration in the new dataframe will be... " + str(lowest_duration)) - - compared_values_dataframe = pd.DataFrame(columns=[col for col in com_cols if not col.startswith('Script Name:')]) - cols = compared_values_dataframe.columns.tolist() - cols=sorted(cols, key=lambda L: (L.lower(), L)) - compared_values_dataframe= compared_values_dataframe[cols] - print(compared_values_dataframe) - for duration_elapsed in range(lowest_duration): - for endpoint in endpoint_names: - #check if value has a space in it or is a str. - # if value as a space, only take value before space for calc, append that calculated value after space. - #if str. check if values match from 2 df's. if values do not match, write N/A - for_loop_df1 = dataframe_one.loc[(dataframe_one['name'] == endpoint) & (dataframe_one['Duration elapsed'] == duration_elapsed)] - for_loop_df2 = dataframe_two.loc[(dataframe_one['name'] == endpoint) & (dataframe_two['Duration elapsed'] == duration_elapsed)] - # print(for_loop_df1) - # print(for_loop_df2) - cols_to_loop = [i for i in com_cols if i not in ['Duration elapsed', 'Name', 'Script Name: test_ipv4_variable_time']] - cols_to_loop=sorted(cols_to_loop, key=lambda L: (L.lower(), L)) - print(cols_to_loop) - row_to_append={} - row_to_append["Duration elapsed"] = duration_elapsed - for col in cols_to_loop: - print(col) - print(for_loop_df1) - #print(for_loop_df2) - print(for_loop_df1.at[0, col]) - print(for_loop_df2.at[0, col]) - if type(for_loop_df1.at[0, col]) == str and type(for_loop_df2.at[0, col]) == str: - if (' ' in for_loop_df1.at[0,col]) == True: - #do subtraction - new_value = float(for_loop_df1.at[0, col].split(" ")[0]) - float(for_loop_df2.at[0, col].split(" ")[0]) - #add on last half of string - new_value = str(new_value)+ for_loop_df2.at[0, col].split(" ")[1] - # print(new_value) - row_to_append[col] = new_value - else: - if for_loop_df1.at[0, col] != for_loop_df2.at[0, col]: - row_to_append[col] = 'NaN' - else: - row_to_append[col] = for_loop_df1.at[0,col] - elif type(for_loop_df1.at[0, col]) == int and type(for_loop_df2.at[0, col]) == int or type(for_loop_df1.at[0, col]) == float and type(for_loop_df2.at[0,col]) == float: - new_value = for_loop_df1.at[0, col] - for_loop_df2.at[0, col] - row_to_append[col] = new_value - compared_values_dataframe = compared_values_dataframe.append(row_to_append, ignore_index=True,) - print(compared_values_dataframe) - #add col name to new df - print(dataframe_one) - print(dataframe_two) - print(compared_values_dataframe) - else: - ValueError("Unable to execute report comparison due to inadequate file commonalities. ") - exit(1) - else: - ValueError("Two files do not have the same endpoints. Please try file comparison with files that have the same endpoints.") - exit(1) - - - #take those columns and separate those columns from others in DF. - - - pass - #return compared_df - - def append_df_to_file(self,dataframe, file_name): - pass - -# ~class diff --git a/py-json/LANforge/pandas_extensions.py b/py-json/LANforge/pandas_extensions.py new file mode 100644 index 00000000..935daa4b --- /dev/null +++ b/py-json/LANforge/pandas_extensions.py @@ -0,0 +1,118 @@ +#!/usr/bin/env pythonn3 + +import pandas as pd + +class pandas_extensions: + + # ================ Pandas Dataframe Functions ====================================== + + # takes any dataframe and returns the specified file extension of it + def df_to_file(self, output_f=None, dataframe=None, save_path=None): + if output_f.lower() == 'hdf': + dataframe.to_hdf(save_path.replace('csv', 'h5', 1), 'table', append=True) + if output_f.lower() == 'parquet': + dataframe.to_parquet(save_path.replace('csv', 'parquet', 1), engine='pyarrow') + if output_f.lower() == 'png': + fig = dataframe.plot().get_figure() + fig.savefig(save_path.replace('csv', 'png', 1)) + if output_f.lower() == 'xlsx': + dataframe.to_excel(save_path.replace('csv', 'xlsx', 1)) + if output_f.lower() == 'json': + dataframe.to_json(save_path.replace('csv', 'json', 1)) + if output_f.lower() == 'stata': + dataframe.to_stata(save_path.replace('csv', 'dta', 1)) + if output_f.lower() == 'pickle': + dataframe.to_pickle(save_path.replace('csv', 'pkl', 1)) + if output_f.lower() == 'html': + dataframe.to_html(save_path.replace('csv', 'html', 1)) + + # takes any format of a file and returns a dataframe of it + def file_to_df(self, file_name): + if file_name.split('.')[-1] == 'csv': + return pd.read_csv(file_name) + + # only works for test_ipv4_variable_time at the moment + def compare_two_df(self, dataframe_one=None, dataframe_two=None): + # df one = current report + # df two = compared report + pd.set_option("display.max_rows", None, "display.max_columns", None) + # get all of common columns besides Timestamp, Timestamp milliseconds + common_cols = list(set(dataframe_one.columns).intersection(set(dataframe_two.columns))) + cols_to_remove = ['Timestamp milliseconds epoch', 'Timestamp', 'LANforge GUI Build: 5.4.3'] + com_cols = [i for i in common_cols if i not in cols_to_remove] + # check if dataframes have the same endpoints + if dataframe_one.name.unique().tolist().sort() == dataframe_two.name.unique().tolist().sort(): + endpoint_names = dataframe_one.name.unique().tolist() + if com_cols is not None: + dataframe_one = dataframe_one[[c for c in dataframe_one.columns if c in com_cols]] + dataframe_two = dataframe_two[[c for c in dataframe_one.columns if c in com_cols]] + dataframe_one = dataframe_one.loc[:, ~dataframe_one.columns.str.startswith('Script Name:')] + dataframe_two = dataframe_two.loc[:, ~dataframe_two.columns.str.startswith('Script Name:')] + lowest_duration = min(dataframe_one['Duration elapsed'].max(), dataframe_two['Duration elapsed'].max()) + print("The max duration in the new dataframe will be... " + str(lowest_duration)) + + compared_values_dataframe = pd.DataFrame( + columns=[col for col in com_cols if not col.startswith('Script Name:')]) + cols = compared_values_dataframe.columns.tolist() + cols = sorted(cols, key=lambda L: (L.lower(), L)) + compared_values_dataframe = compared_values_dataframe[cols] + print(compared_values_dataframe) + for duration_elapsed in range(lowest_duration): + for endpoint in endpoint_names: + # check if value has a space in it or is a str. + # if value as a space, only take value before space for calc, append that calculated value after space. + # if str. check if values match from 2 df's. if values do not match, write N/A + for_loop_df1 = dataframe_one.loc[(dataframe_one['name'] == endpoint) & ( + dataframe_one['Duration elapsed'] == duration_elapsed)] + for_loop_df2 = dataframe_two.loc[(dataframe_one['name'] == endpoint) & ( + dataframe_two['Duration elapsed'] == duration_elapsed)] + # print(for_loop_df1) + # print(for_loop_df2) + cols_to_loop = [i for i in com_cols if + i not in ['Duration elapsed', 'Name', 'Script Name: test_ipv4_variable_time']] + cols_to_loop = sorted(cols_to_loop, key=lambda L: (L.lower(), L)) + print(cols_to_loop) + row_to_append = {} + row_to_append["Duration elapsed"] = duration_elapsed + for col in cols_to_loop: + print(col) + print(for_loop_df1) + # print(for_loop_df2) + print(for_loop_df1.at[0, col]) + print(for_loop_df2.at[0, col]) + if type(for_loop_df1.at[0, col]) == str and type(for_loop_df2.at[0, col]) == str: + if (' ' in for_loop_df1.at[0, col]) == True: + # do subtraction + new_value = float(for_loop_df1.at[0, col].split(" ")[0]) - float( + for_loop_df2.at[0, col].split(" ")[0]) + # add on last half of string + new_value = str(new_value) + for_loop_df2.at[0, col].split(" ")[1] + # print(new_value) + row_to_append[col] = new_value + else: + if for_loop_df1.at[0, col] != for_loop_df2.at[0, col]: + row_to_append[col] = 'NaN' + else: + row_to_append[col] = for_loop_df1.at[0, col] + elif type(for_loop_df1.at[0, col]) == int and type(for_loop_df2.at[0, col]) == int or type( + for_loop_df1.at[0, col]) == float and type(for_loop_df2.at[0, col]) == float: + new_value = for_loop_df1.at[0, col] - for_loop_df2.at[0, col] + row_to_append[col] = new_value + compared_values_dataframe = compared_values_dataframe.append(row_to_append, ignore_index=True, ) + print(compared_values_dataframe) + # add col name to new df + print(dataframe_one) + print(dataframe_two) + print(compared_values_dataframe) + else: + ValueError("Unable to execute report comparison due to inadequate file commonalities. ") + exit(1) + else: + ValueError( + "Two files do not have the same endpoints. Please try file comparison with files that have the same endpoints.") + exit(1) + + # take those columns and separate those columns from others in DF. + + pass + # return compared_df diff --git a/py-json/base_profile.py b/py-json/base_profile.py index 5a3f5ebb..c73fed0d 100644 --- a/py-json/base_profile.py +++ b/py-json/base_profile.py @@ -1,12 +1,7 @@ #!/usr/bin/env python3 -import re -import time -import pprint -import csv import datetime import random import string -import pprint from pprint import pprint class BaseProfile: diff --git a/py-json/create_wanlink.py b/py-json/create_wanlink.py index e9fbac35..fab6c0bb 100755 --- a/py-json/create_wanlink.py +++ b/py-json/create_wanlink.py @@ -10,7 +10,6 @@ if sys.version_info[0] != 3: exit(1) import os -import time from time import sleep from urllib import error import pprint diff --git a/py-json/cv_test_manager.py b/py-json/cv_test_manager.py index c2f8bac8..d4ad7adf 100644 --- a/py-json/cv_test_manager.py +++ b/py-json/cv_test_manager.py @@ -426,7 +426,7 @@ class cv_test(Realm): _influx_bucket=args.influx_bucket) # lf_wifi_capacity_test.py may be run / initiated by a remote system against a lanforge - # the local_lf_report_dir is data is stored, if there is no local_lf_report_dir then the test is run directly on lanforge + # the local_lf_report_dir is where data is stored, if there is no local_lf_report_dir then the test is run directly on lanforge if self.local_lf_report_dir == "": csv_path = "%s/kpi.csv" % (self.lf_report_dir) else: diff --git a/py-json/dut_profile.py b/py-json/dut_profile.py index c449961a..141ff953 100644 --- a/py-json/dut_profile.py +++ b/py-json/dut_profile.py @@ -2,9 +2,7 @@ import sys import os import importlib -import pprint from pprint import pprint -import time import base64 diff --git a/py-json/fio_endp_profile.py b/py-json/fio_endp_profile.py index 5b43365f..a3497923 100644 --- a/py-json/fio_endp_profile.py +++ b/py-json/fio_endp_profile.py @@ -6,8 +6,6 @@ import sys import os import importlib -import pprint -from pprint import pprint import time diff --git a/py-json/gen_cxprofile.py b/py-json/gen_cxprofile.py index 73dd137a..f2d870c5 100644 --- a/py-json/gen_cxprofile.py +++ b/py-json/gen_cxprofile.py @@ -2,7 +2,6 @@ import sys import os import importlib -import pprint from pprint import pprint import csv import pandas as pd @@ -15,6 +14,7 @@ sys.path.append(os.path.join(os.path.abspath(__file__ + "../../../"))) lfcli_base = importlib.import_module("py-json.LANforge.lfcli_base") LFCliBase = lfcli_base.LFCliBase +pandas_extensions = importlib.import_module("py-json.LANforge.pandas_extensions") class GenCXProfile(LFCliBase): @@ -597,12 +597,12 @@ class GenCXProfile(LFCliBase): # comparison to last report / report inputted if compared_report is not None: - compared_df = self.compare_two_df(dataframe_one=self.file_to_df(report_file), - dataframe_two=self.file_to_df(compared_report)) + compared_df = pandas_extensions.compare_two_df(dataframe_one=pandas_extensions.file_to_df(report_file), + dataframe_two=pandas_extensions.file_to_df(compared_report)) exit(1) # append compared df to created one if output_format.lower() != 'csv': - self.df_to_file(dataframe=pd.read_csv(report_file), output_f=output_format, save_path=report_file) + pandas_extensions.df_to_file(dataframe=pd.read_csv(report_file), output_f=output_format, save_path=report_file) else: if output_format.lower() != 'csv': - self.df_to_file(dataframe=pd.read_csv(report_file), output_f=output_format, save_path=report_file) + pandas_extensions.df_to_file(dataframe=pd.read_csv(report_file), output_f=output_format, save_path=report_file) diff --git a/py-json/http_profile.py b/py-json/http_profile.py index edc367ef..9acd05d5 100644 --- a/py-json/http_profile.py +++ b/py-json/http_profile.py @@ -2,8 +2,6 @@ import sys import os import importlib -from pprint import pprint -import pprint import time diff --git a/py-json/l3_cxprofile.py b/py-json/l3_cxprofile.py index 4e4deb3a..524820fb 100644 --- a/py-json/l3_cxprofile.py +++ b/py-json/l3_cxprofile.py @@ -2,7 +2,6 @@ import sys import os import importlib -import pprint from pprint import pprint import csv import pandas as pd @@ -14,6 +13,7 @@ sys.path.append(os.path.join(os.path.abspath(__file__ + "../../../"))) lfcli_base = importlib.import_module("py-json.LANforge.lfcli_base") LFCliBase = lfcli_base.LFCliBase +pandas_extensions = importlib.import_module("py-json.LANforge.pandas_extensions") class L3CXProfile(LFCliBase): @@ -288,15 +288,15 @@ class L3CXProfile(LFCliBase): # comparison to last report / report inputted if compared_report is not None: - compared_df = self.compare_two_df(dataframe_one=self.file_to_df(report_file), - dataframe_two=self.file_to_df(compared_report)) + compared_df = pandas_extensions.compare_two_df(dataframe_one=pandas_extensions.file_to_df(report_file), + dataframe_two=pandas_extensions.file_to_df(compared_report)) exit(1) # append compared df to created one if output_format.lower() != 'csv': - self.df_to_file(dataframe=pd.read_csv(report_file), output_f=output_format, save_path=report_file) + pandas_extensions.df_to_file(dataframe=pd.read_csv(report_file), output_f=output_format, save_path=report_file) else: if output_format.lower() != 'csv': - self.df_to_file(dataframe=pd.read_csv(report_file), output_f=output_format, save_path=report_file) + pandas_extensions.df_to_file(dataframe=pd.read_csv(report_file), output_f=output_format, save_path=report_file) def refresh_cx(self): for cx_name in self.created_cx.keys(): diff --git a/py-json/l3_cxprofile2.py b/py-json/l3_cxprofile2.py index b0893cb9..1bbc3e08 100644 --- a/py-json/l3_cxprofile2.py +++ b/py-json/l3_cxprofile2.py @@ -2,22 +2,16 @@ import sys import os import importlib -import re -import time -import pprint -import datetime -import base64 import csv from pprint import pprint import time -import random -import string import datetime sys.path.append(os.path.join(os.path.abspath(__file__ + "../../../"))) lfdata = importlib.import_module("py-json.lfdata") +LFDataCollection = lfdata.LFDataCollection base_profile = importlib.import_module("py-json.base_profile") BaseProfile = base_profile.BaseProfile @@ -674,7 +668,7 @@ class L3CXProfile2(BaseProfile): end_time = start_time + datetime.timedelta(seconds=duration_sec) #create lf data object - lf_data_collection= LFDataCollection(local_realm=self.local_realm,debug=self.debug) + lf_data_collection = LFDataCollection(local_realm=self.local_realm,debug=self.debug) while datetime.datetime.now() < end_time: csvwriter.writerow(lf_data_collection.monitor_interval(start_time_=start_time,sta_list_=sta_list_edit, created_cx_=created_cx, layer3_fields_=layer3_fields,port_mgr_fields_=",".join(port_mgr_cols))) time.sleep(monitor_interval_ms) diff --git a/py-json/l4_cxprofile.py b/py-json/l4_cxprofile.py index d1aea4c3..25138e72 100644 --- a/py-json/l4_cxprofile.py +++ b/py-json/l4_cxprofile.py @@ -2,14 +2,11 @@ import sys import os import importlib -import pprint -from pprint import pprint import requests import pandas as pd import time import datetime import ast -import csv sys.path.append(os.path.join(os.path.abspath(__file__ + "../../../"))) diff --git a/py-json/lfdata.py b/py-json/lfdata.py index 12935ed0..b0e154ad 100644 --- a/py-json/lfdata.py +++ b/py-json/lfdata.py @@ -1,16 +1,5 @@ #!/usr/bin/env python3 -import re -import time -import pprint -from pprint import pprint -import os import datetime -import base64 -import xlsxwriter -import pandas as pd -import requests -import ast -import csv # LFData class actions: diff --git a/py-json/mac_vlan_profile.py b/py-json/mac_vlan_profile.py index 3c15a0c6..87636973 100644 --- a/py-json/mac_vlan_profile.py +++ b/py-json/mac_vlan_profile.py @@ -2,7 +2,6 @@ import sys import os import importlib -import pprint from pprint import pprint import time diff --git a/py-json/multicast_profile.py b/py-json/multicast_profile.py index 8612f280..faf43ad4 100644 --- a/py-json/multicast_profile.py +++ b/py-json/multicast_profile.py @@ -2,7 +2,6 @@ import sys import os import importlib -import pprint from pprint import pprint diff --git a/py-json/qvlan_profile.py b/py-json/qvlan_profile.py index 3c54554f..e2b8bbe6 100644 --- a/py-json/qvlan_profile.py +++ b/py-json/qvlan_profile.py @@ -2,7 +2,6 @@ import sys import os import importlib -import pprint from pprint import pprint import time diff --git a/py-json/realm.py b/py-json/realm.py index 92ed14d7..e19f01be 100755 --- a/py-json/realm.py +++ b/py-json/realm.py @@ -12,7 +12,6 @@ import os import importlib import re import time -import pprint from pprint import pprint # ---- ---- ---- ---- LANforge Base Imports ---- ---- ---- ---- diff --git a/py-json/realm_test.py b/py-json/realm_test.py index 55d941c9..e3e6d913 100755 --- a/py-json/realm_test.py +++ b/py-json/realm_test.py @@ -2,7 +2,6 @@ import sys import os import importlib -import pprint import time from pprint import pprint diff --git a/py-json/show_ports.py b/py-json/show_ports.py index 1f18b05c..05fae06a 100644 --- a/py-json/show_ports.py +++ b/py-json/show_ports.py @@ -6,7 +6,6 @@ import sys import os import importlib -import json import pprint if sys.version_info[0] != 3: diff --git a/py-json/station_profile.py b/py-json/station_profile.py index b9c61251..f06ea12c 100644 --- a/py-json/station_profile.py +++ b/py-json/station_profile.py @@ -2,7 +2,6 @@ import sys import os import importlib -import pprint from pprint import pprint import time diff --git a/py-json/test_base.py b/py-json/test_base.py index fc6e8959..aa349e66 100644 --- a/py-json/test_base.py +++ b/py-json/test_base.py @@ -1,14 +1,4 @@ #!/usr/bin/env python3 -import sys -import os -import importlib - - -sys.path.append(os.path.join(os.path.abspath(__file__ + "../../../"))) - -lfdata = importlib.import_module("py-json.lfdata") -LFDataCollection = lfdata.LFDataCollection - class TestBase: def __init__(self): diff --git a/py-json/test_group_profile.py b/py-json/test_group_profile.py index e9814653..b1723c4a 100644 --- a/py-json/test_group_profile.py +++ b/py-json/test_group_profile.py @@ -2,9 +2,6 @@ import sys import os import importlib -import pprint -from pprint import pprint -import time sys.path.append(os.path.join(os.path.abspath(__file__ + "../../../"))) diff --git a/py-json/test_histogram.py b/py-json/test_histogram.py index c8968ace..aefd2ab6 100755 --- a/py-json/test_histogram.py +++ b/py-json/test_histogram.py @@ -5,7 +5,6 @@ import sys import os import importlib -import pprint sys.path.append(os.path.join(os.path.abspath(__file__ + "../../../"))) diff --git a/py-json/test_utility.py b/py-json/test_utility.py index 34559473..edc6462a 100644 --- a/py-json/test_utility.py +++ b/py-json/test_utility.py @@ -8,10 +8,6 @@ Date : import sys import os import importlib -from pprint import pprint -from uuid import uuid1 -import argparse -import datetime import time import matplotlib.pyplot as plt import threading diff --git a/py-json/vap_profile.py b/py-json/vap_profile.py index 3901a274..cace9bb3 100644 --- a/py-json/vap_profile.py +++ b/py-json/vap_profile.py @@ -2,7 +2,6 @@ import sys import os import importlib -import pprint from pprint import pprint import time diff --git a/py-json/vr_profile2.py b/py-json/vr_profile2.py index c8f1a98c..7e994ddf 100644 --- a/py-json/vr_profile2.py +++ b/py-json/vr_profile2.py @@ -1,3 +1,5 @@ +#!/usr/bin/env python3 + import sys import os import importlib diff --git a/py-json/wifi_monitor_profile.py b/py-json/wifi_monitor_profile.py index 7761d5a8..ac001b8f 100644 --- a/py-json/wifi_monitor_profile.py +++ b/py-json/wifi_monitor_profile.py @@ -1,9 +1,8 @@ #!/usr/bin/env python3 + import sys import os import importlib -import pprint -from pprint import pprint import time diff --git a/py-json/wlan_theoretical_sta.py b/py-json/wlan_theoretical_sta.py index 33da6451..261c23c2 100755 --- a/py-json/wlan_theoretical_sta.py +++ b/py-json/wlan_theoretical_sta.py @@ -1,3 +1,5 @@ +#!/usr/bin/env python3 + ''' Candela Technologies Inc. diff --git a/py-json/ws-sta-monitor.py b/py-json/ws-sta-monitor.py index f47a0661..c957be29 100755 --- a/py-json/ws-sta-monitor.py +++ b/py-json/ws-sta-monitor.py @@ -14,9 +14,7 @@ import importlib import argparse import json import logging -import pprint import traceback -import time from time import sleep import websocket import re @@ -329,7 +327,7 @@ def m_error(wsock, err): # ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- def m_open(wsock): def run(*args): - time.sleep(0.1) + sleep(0.1) # ping = json.loads(); wsock.send('{"text":"ping"}') diff --git a/py-scripts/cicd_testrail.py b/py-scripts/cicd_testrail.py index 1cc2f2a9..bfd38748 100755 --- a/py-scripts/cicd_testrail.py +++ b/py-scripts/cicd_testrail.py @@ -1,3 +1,5 @@ +#!/usr/bin/env python3 + """TestRail API binding for Python 3.x. """ diff --git a/py-scripts/cicd_testrailAndInfraSetup.py b/py-scripts/cicd_testrailAndInfraSetup.py index b7aa0a31..97930ebb 100755 --- a/py-scripts/cicd_testrailAndInfraSetup.py +++ b/py-scripts/cicd_testrailAndInfraSetup.py @@ -1,14 +1,12 @@ +#!/usr/bin/env python3 import base64 import urllib.request from bs4 import BeautifulSoup import ssl -import subprocess, os +import subprocess from artifactory import ArtifactoryPath import tarfile -import paramiko -from paramiko import SSHClient -from scp import SCPClient import os import pexpect from pexpect import pxssh diff --git a/py-scripts/connection_test.py b/py-scripts/connection_test.py index 7327c780..7e2a6096 100755 --- a/py-scripts/connection_test.py +++ b/py-scripts/connection_test.py @@ -11,9 +11,7 @@ import importlib import argparse import datetime import time -from test_utility import CreateHTML -# from test_utility import RuntimeUpdates -from test_utility import StatusMsg +from test_utility import CreateHTML, StatusMsg import pdfkit if sys.version_info[0] != 3: diff --git a/py-scripts/create_bond.py b/py-scripts/create_bond.py index ead8b1b2..b094622e 100755 --- a/py-scripts/create_bond.py +++ b/py-scripts/create_bond.py @@ -14,7 +14,6 @@ import os import importlib import argparse import time -import pprint if sys.version_info[0] != 3: print("This script requires Python 3") diff --git a/py-scripts/create_bridge.py b/py-scripts/create_bridge.py index 420d2bfc..c830e646 100755 --- a/py-scripts/create_bridge.py +++ b/py-scripts/create_bridge.py @@ -6,7 +6,6 @@ import sys import os import importlib -import time import pprint import argparse diff --git a/py-scripts/create_l3.py b/py-scripts/create_l3.py index d1424b1d..68457ce1 100755 --- a/py-scripts/create_l3.py +++ b/py-scripts/create_l3.py @@ -1,17 +1,16 @@ #!/usr/bin/env python3 -# Create Layer-3 Cross Connection Using LANforge JSON AP : https://www.candelatech.com/cookbook.php?vol=fire&book=scripted+layer-3+test -# Written by Candela Technologies Inc. -# Updated by: Erin Grimes """ -Example Command: -./create_l3.py --endp_a 'eth1' --endp_b 'eth2' --min_rate_a '56000' --min_rate_b '40000' + + Create Layer-3 Cross Connection Using LANforge JSON AP : https://www.candelatech.com/cookbook.php?vol=fire&book=scripted+layer-3+test + Written by Candela Technologies Inc. + Updated by: Erin Grimes + Example Command: + ./create_l3.py --endp_a 'eth1' --endp_b 'eth2' --min_rate_a '56000' --min_rate_b '40000' """ import sys import os import importlib import argparse -import time -import datetime if sys.version_info[0] != 3: print("This script requires Python 3") diff --git a/py-scripts/create_l3_stations.py b/py-scripts/create_l3_stations.py new file mode 100755 index 00000000..65521043 --- /dev/null +++ b/py-scripts/create_l3_stations.py @@ -0,0 +1,198 @@ +#!/usr/bin/env python3 + +""" + This script will create a variable number of layer3 stations each with their own set of cross-connects and endpoints. + + Example script: + './create_l3_stations.py --radio wiphy0 --ssid lanforge --password password --security wpa2' +""" + +import sys +import os + +if sys.version_info[0] != 3: + print("This script requires Python 3") + exit(1) + +if 'py-json' not in sys.path: + sys.path.append(os.path.join(os.path.abspath('..'), 'py-json')) + +import argparse +from LANforge.lfcli_base import LFCliBase +from LANforge import LFUtils +from realm import Realm + + +class CreateL3(Realm): + def __init__(self, + ssid, security, password, sta_list, name_prefix, upstream, radio, + host="localhost", port=8080, mode=0, ap=None, + side_a_min_rate=56, side_a_max_rate=0, + side_b_min_rate=56, side_b_max_rate=0, + number_template="00000", use_ht160=False, + _debug_on=False, + _exit_on_error=False, + _exit_on_fail=False): + super().__init__(host, port) + self.upstream = upstream + self.host = host + self.port = port + self.ssid = ssid + self.sta_list = sta_list + self.security = security + self.password = password + self.radio = radio + self.mode = mode + self.ap = ap + self.number_template = number_template + self.debug = _debug_on + self.name_prefix = name_prefix + self.station_profile = self.new_station_profile() + self.cx_profile = self.new_l3_cx_profile() + self.station_profile.lfclient_url = self.lfclient_url + self.station_profile.ssid = self.ssid + self.station_profile.ssid_pass = self.password + self.station_profile.security = self.security + self.station_profile.number_template_ = self.number_template + self.station_profile.debug = self.debug + self.station_profile.use_ht160 = use_ht160 + if self.station_profile.use_ht160: + self.station_profile.mode = 9 + self.station_profile.mode = mode + if self.ap is not None: + self.station_profile.set_command_param("add_sta", "ap", self.ap) + # self.station_list= LFUtils.portNameSeries(prefix_="sta", start_id_=0, end_id_=2, padding_number_=10000, radio='wiphy0') #Make radio a user defined variable from terminal. + + self.cx_profile.host = self.host + self.cx_profile.port = self.port + self.cx_profile.name_prefix = self.name_prefix + self.cx_profile.side_a_min_bps = side_a_min_rate + self.cx_profile.side_a_max_bps = side_a_max_rate + self.cx_profile.side_b_min_bps = side_b_min_rate + self.cx_profile.side_b_max_bps = side_b_max_rate + + def pre_cleanup(self): + self.cx_profile.cleanup_prefix() + for sta in self.sta_list: + self.rm_port(sta, check_exists=True) + + def build(self): + + self.station_profile.use_security(self.security, + self.ssid, + self.password) + self.station_profile.set_number_template(self.number_template) + print("Creating stations") + self.station_profile.set_command_flag("add_sta", "create_admin_down", 1) + self.station_profile.set_command_param("set_port", "report_timer", 1500) + self.station_profile.set_command_flag("set_port", "rpt_timer", 1) + self.station_profile.create(radio=self.radio, + sta_names_=self.sta_list, + debug=self.debug) + self.cx_profile.create(endp_type="lf_udp", + side_a=self.station_profile.station_names, + side_b=self.upstream, + sleep_time=0) + self._pass("PASS: Station build finished") + + +def main(): + parser = LFCliBase.create_basic_argparse( + prog='create_l3_stations.py', + formatter_class=argparse.RawTextHelpFormatter, + epilog='''\ + Create stations to test connection and traffic on VAPs of varying security types (WEP, WPA, WPA2, WPA3, Open) + ''', + + description='''\ + create_l3_stations.py: + -------------------- + Generic command layout: + + python3 ./create_l3_stations.py + --upstream_port eth1 + --radio wiphy0 + --num_stations 32 + --security {open|wep|wpa|wpa2|wpa3} \\ + --mode 1 + {"auto" : "0", + "a" : "1", + "b" : "2", + "g" : "3", + "abg" : "4", + "abgn" : "5", + "bgn" : "6", + "bg" : "7", + "abgnAC" : "8", + "anAC" : "9", + "an" : "10", + "bgnAC" : "11", + "abgnAX" : "12", + "bgnAX" : "13", + --ssid netgear + --password admin123 + --a_min 1000 + --b_min 1000 + --ap "00:0e:8e:78:e1:76" + --number_template 0000 + --debug + ''') + + required_args = None + for group in parser._action_groups: + if group.title == "required arguments": + required_args = group + break; + if required_args is not None: + required_args.add_argument('--a_min', help='--a_min bps rate minimum for side_a', default=256000) + required_args.add_argument('--b_min', help='--b_min bps rate minimum for side_b', default=256000) + + optional_args = None + for group in parser._action_groups: + if group.title == "optional arguments": + optional_args = group + break; + if optional_args is not None: + optional_args.add_argument('--mode', help='Used to force mode of stations') + optional_args.add_argument('--ap', help='Used to force a connection to a particular AP') + optional_args.add_argument('--number_template', help='Start the station numbering with a particular number. Default is 0000', default=0000) + optional_args.add_argument('--station_list', help='Optional: User defined station names', action='append',default=None) + args = parser.parse_args() + + num_sta = 2 + if (args.num_stations is not None) and (int(args.num_stations) > 0): + num_sta = int(args.num_stations) + + if args.station_list is None: + station_list = LFUtils.portNameSeries(prefix_="sta", start_id_=int(args.number_template), end_id_=num_sta+int(args.number_template) - 1, padding_number_=10000, + radio=args.radio) + else: + station_list = args.station_list + + ip_var_test = CreateL3(host=args.mgr, + port=args.mgr_port, + number_template=str(args.number_template), + sta_list=station_list, + name_prefix="VT", + upstream=args.upstream_port, + ssid=args.ssid, + password=args.passwd, + radio=args.radio, + security=args.security, + use_ht160=False, + side_a_min_rate=args.a_min, + side_b_min_rate=args.b_min, + mode=args.mode, + ap=args.ap, + _debug_on=args.debug) + + ip_var_test.pre_cleanup() + ip_var_test.build() + if not ip_var_test.passes(): + print(ip_var_test.get_fail_message()) + ip_var_test.exit_fail() + print('Creates %s stations and connections' % num_sta) + + +if __name__ == "__main__": + main() diff --git a/py-scripts/create_l4.py b/py-scripts/create_l4.py index 46c4ce66..12662b49 100755 --- a/py-scripts/create_l4.py +++ b/py-scripts/create_l4.py @@ -8,8 +8,6 @@ import sys import os import importlib import argparse -import time -import datetime if sys.version_info[0] != 3: print("This script requires Python 3") diff --git a/py-scripts/create_vap.py b/py-scripts/create_vap.py index 5bc199a8..d627998b 100755 --- a/py-scripts/create_vap.py +++ b/py-scripts/create_vap.py @@ -6,7 +6,6 @@ import sys import os import importlib import argparse -import time import pprint if sys.version_info[0] != 3: diff --git a/py-scripts/create_wanlink.py b/py-scripts/create_wanlink.py index 10433f80..40c20e3e 100755 --- a/py-scripts/create_wanlink.py +++ b/py-scripts/create_wanlink.py @@ -1,7 +1,11 @@ #!/usr/bin/python3 -# Create and modify WAN Links Using LANforge JSON AP : http://www.candelatech.com/cookbook.php?vol=cli&book=JSON:+Managing+WANlinks+using+JSON+and+Python -# Written by Candela Technologies Inc. -# Updated by: Erin Grimes +""" + + Create and modify WAN Links Using LANforge JSON AP : http://www.candelatech.com/cookbook.php?vol=cli&book=JSON:+Managing+WANlinks+using+JSON+and+Python + Written by Candela Technologies Inc. + Updated by: Erin Grimes + +""" import sys if sys.version_info[0] != 3: @@ -13,7 +17,6 @@ if sys.version_info[0] != 3: from time import sleep import urllib -from urllib import error import pprint sys.path.append("../py-json") diff --git a/py-scripts/csv_convert.py b/py-scripts/csv_convert.py index aa422ea2..a0ac5255 100755 --- a/py-scripts/csv_convert.py +++ b/py-scripts/csv_convert.py @@ -1,17 +1,20 @@ #!/usr/bin/env python3 -# This program is used to read in a LANforge Dataplane CSV file and output -# a csv file that works with a customer's RvRvO visualization tool. -# -# Example use case: -# -# Read in ~/text-csv-0-candela.csv, output is stored at outfile.csv -# ./py-scripts/csv_convert.py -i ~/text-csv-0-candela.csv -# -# Output is csv file with mixxed columns, top part: -# Test Run,Position [Deg],Attenuation 1 [dB], Pal Stats Endpoint 1 Control Rssi [dBm], Pal Stats Endpoint 1 Data Rssi [dBm] +""" -# Second part: -# Step Index,Position [Deg],Attenuation [dB],Traffic Pair 1 Throughput [Mbps] + This program is used to read in a LANforge Dataplane CSV file and output + a csv file that works with a customer's RvRvO visualization tool. + + Example use case: + + Read in ~/text-csv-0-candela.csv, output is stored at outfile.csv + ./py-scripts/csv_convert.py -i ~/text-csv-0-candela.csv + + Output is csv file with mixxed columns, top part: + Test Run,Position [Deg],Attenuation 1 [dB], Pal Stats Endpoint 1 Control Rssi [dBm], Pal Stats Endpoint 1 Data Rssi [dBm] + + Second part: + Step Index,Position [Deg],Attenuation [dB],Traffic Pair 1 Throughput [Mbps] +""" import sys import os import argparse diff --git a/py-scripts/docstrings.py b/py-scripts/docstrings.py index 310decd3..39638660 100755 --- a/py-scripts/docstrings.py +++ b/py-scripts/docstrings.py @@ -6,7 +6,6 @@ import ast import os -import pprint class DocstringCollector: diff --git a/py-scripts/event_breaker.py b/py-scripts/event_breaker.py index 0a64e0fb..15a2fa2b 100755 --- a/py-scripts/event_breaker.py +++ b/py-scripts/event_breaker.py @@ -7,10 +7,7 @@ Please use concurrently with event_flood.py. import sys import os import importlib -import datetime from datetime import datetime -import time -from time import sleep import pprint import argparse diff --git a/py-scripts/event_flood.py b/py-scripts/event_flood.py index 019db2bc..573800b8 100755 --- a/py-scripts/event_flood.py +++ b/py-scripts/event_flood.py @@ -8,11 +8,8 @@ import sys import os import importlib import argparse -import datetime from datetime import datetime -import time from time import sleep -import pprint if sys.version_info[0] != 3: print("This script requires Python 3") diff --git a/py-scripts/example_security_connection.py b/py-scripts/example_security_connection.py index a66ad946..54fe1463 100755 --- a/py-scripts/example_security_connection.py +++ b/py-scripts/example_security_connection.py @@ -3,8 +3,6 @@ import sys import os import importlib import argparse -import time -import pprint if sys.version_info[0] != 3: print("This script requires Python 3") diff --git a/py-scripts/ftp_html.py b/py-scripts/ftp_html.py index 7f5edd85..3d7f5788 100644 --- a/py-scripts/ftp_html.py +++ b/py-scripts/ftp_html.py @@ -1,7 +1,6 @@ #!/usr/bin/env python3 from matplotlib import pyplot as plt -from datetime import datetime import numpy as np import os.path from os import path diff --git a/py-scripts/grafana_profile.py b/py-scripts/grafana_profile.py index 94741447..ad0b01fb 100755 --- a/py-scripts/grafana_profile.py +++ b/py-scripts/grafana_profile.py @@ -9,7 +9,6 @@ import sys import os import importlib import argparse -import string if sys.version_info[0] != 3: print("This script requires Python 3") diff --git a/py-scripts/html_template.py b/py-scripts/html_template.py index 862ab487..c5530910 100644 --- a/py-scripts/html_template.py +++ b/py-scripts/html_template.py @@ -3,12 +3,7 @@ date - 11- feb - 2021 -Nikita Yadav """ - -from matplotlib import pyplot as plt -from datetime import datetime -import numpy as np import os.path -from os import path import sys print(sys.path) diff --git a/py-scripts/layer4_test.py b/py-scripts/layer4_test.py index 972f5397..6507ef2a 100755 --- a/py-scripts/layer4_test.py +++ b/py-scripts/layer4_test.py @@ -12,7 +12,6 @@ import importlib import argparse import datetime import time -import pdfkit import json import re diff --git a/py-scripts/lf_ap_auto_test.py b/py-scripts/lf_ap_auto_test.py index 4d059212..f8d68855 100755 --- a/py-scripts/lf_ap_auto_test.py +++ b/py-scripts/lf_ap_auto_test.py @@ -167,8 +167,6 @@ import os import importlib import argparse import time -import json -from os import path if sys.version_info[0] != 3: print("This script requires Python 3") diff --git a/py-scripts/lf_atten_mod_test.py b/py-scripts/lf_atten_mod_test.py index d703bbc0..9a7e91d5 100755 --- a/py-scripts/lf_atten_mod_test.py +++ b/py-scripts/lf_atten_mod_test.py @@ -22,7 +22,6 @@ import sys import os import importlib import argparse -import time if sys.version_info[0] != 3: print("This script requires Python 3") diff --git a/py-scripts/lf_dataplane_test.py b/py-scripts/lf_dataplane_test.py index f326ff36..43fd1d91 100755 --- a/py-scripts/lf_dataplane_test.py +++ b/py-scripts/lf_dataplane_test.py @@ -100,7 +100,6 @@ import importlib import argparse import time import json -from os import path if sys.version_info[0] != 3: print("This script requires Python 3") diff --git a/py-scripts/lf_dut_sta_vap_test.py b/py-scripts/lf_dut_sta_vap_test.py index 75f2b76b..4965ae8a 100755 --- a/py-scripts/lf_dut_sta_vap_test.py +++ b/py-scripts/lf_dut_sta_vap_test.py @@ -1,6 +1,6 @@ #!/usr/bin/env python3 ''' - This Scrip has two classes : + This Script has two classes : 1. LoadScenario : It will load the existing saved scenario to the Lanforge (Here used for Loading Bridged VAP) 2. CreateSTA_CX : It will create stations and L3 Cross connects and start them 3. Login_DUT : This class is specifically used to test the Linux based DUT that has SSH Server. It is used to read the CPU Core temperature during testing @@ -31,11 +31,9 @@ import logging import paramiko as pm from paramiko.ssh_exception import NoValidConnectionsError as exception import xlsxwriter -from bokeh.io import output_file, show +from bokeh.io import show from bokeh.plotting import figure from bokeh.models import LinearAxis, Range1d -from bokeh.models import HoverTool -from bokeh.layouts import row if sys.version_info[0] != 3: print("This script requires Python 3") diff --git a/py-scripts/lf_ftp.py b/py-scripts/lf_ftp.py index 99bd5c76..fe0ee7fe 100755 --- a/py-scripts/lf_ftp.py +++ b/py-scripts/lf_ftp.py @@ -4,11 +4,9 @@ License: Free to distribute and modify. LANforge systems must be licensed. """ import sys -import os import importlib import paramiko import argparse -import datetime from datetime import datetime import time import os diff --git a/py-scripts/lf_graph.py b/py-scripts/lf_graph.py index 1043a580..9704c305 100755 --- a/py-scripts/lf_graph.py +++ b/py-scripts/lf_graph.py @@ -21,11 +21,8 @@ import sys import os import importlib import matplotlib.pyplot as plt -import matplotlib as mpl import numpy as np -import pandas as pd import pdfkit -import math from matplotlib.colors import ListedColormap diff --git a/py-scripts/lf_mesh_test.py b/py-scripts/lf_mesh_test.py index ccd8dabf..f93b2a32 100755 --- a/py-scripts/lf_mesh_test.py +++ b/py-scripts/lf_mesh_test.py @@ -118,8 +118,6 @@ import os import importlib import argparse import time -import json -from os import path if sys.version_info[0] != 3: print("This script requires Python 3") diff --git a/py-scripts/lf_multipsk.py b/py-scripts/lf_multipsk.py old mode 100644 new mode 100755 index d5437c5c..1ec90d2a --- a/py-scripts/lf_multipsk.py +++ b/py-scripts/lf_multipsk.py @@ -1,3 +1,5 @@ +#!/usr/bin/env python3 + """ NAME: lf_multipsk.py diff --git a/py-scripts/lf_wifi_capacity_test.py b/py-scripts/lf_wifi_capacity_test.py index a24e8c78..567aaccb 100755 --- a/py-scripts/lf_wifi_capacity_test.py +++ b/py-scripts/lf_wifi_capacity_test.py @@ -307,8 +307,6 @@ import os import importlib import argparse import time -import json -from os import path if sys.version_info[0] != 3: print("This script requires Python 3") diff --git a/py-scripts/measure_station_time_up.py b/py-scripts/measure_station_time_up.py index 8ceb223a..7a9f0d9f 100755 --- a/py-scripts/measure_station_time_up.py +++ b/py-scripts/measure_station_time_up.py @@ -8,7 +8,6 @@ import os import importlib import argparse import datetime -import pprint import pandas as pd import time diff --git a/py-scripts/regression_test.sh b/py-scripts/regression_test.sh index 41b4daa0..6e25430c 100755 --- a/py-scripts/regression_test.sh +++ b/py-scripts/regression_test.sh @@ -197,9 +197,8 @@ if [[ $MGRLEN -gt 0 ]]; then # --ap_name WAC505 --ap_ip 192.168.213.90 --bands Both --directions Download --twog_radio wiphy1 --fiveg_radio wiphy0 --file_size 2MB --num_stations 40 --Both_duration 1 --traffic_duration 2 --ssh_port 22_" "./lf_ftp_test.py --mgr $MGR --ssid $SSID --passwd $PASSWD_USED --security $SECURITY --bands 5G --direction Download \ --file_size 2MB --num_stations 2" - #./lf_graph - #./lf_influx_db - #./lf_mesh_test + "./lf_graph.py --mgr $MGR" + #"./lf_mesh_test.py --mgr $MGR --upstream $UPSTREAM --raw_line 'selected_dut2 RootAP wactest $BSSID'" #./lf_multipsk #./lf_report #./lf_report_test @@ -207,7 +206,7 @@ if [[ $MGRLEN -gt 0 ]]; then #./lf_rx_sensitivity_test.py #./lf_sniff_radio #./lf_snp_test - #./lf_tr398_test + "./lf_tr398_test.py --mgr $MGR" #./lf_webpage "./lf_wifi_capacity_test.py --mgr $MGR --port 8080 --lf_user lanforge --lf_password lanforge \ --instance_name this_inst --config_name test_con --upstream 1.1.eth2 --batch_size 1,5,25,50,100 --loop_iter 1 \ diff --git a/py-scripts/rvr_scenario.py b/py-scripts/rvr_scenario.py index fc133ae7..696fed85 100755 --- a/py-scripts/rvr_scenario.py +++ b/py-scripts/rvr_scenario.py @@ -5,7 +5,6 @@ import sys import os import importlib import argparse -import pprint from pprint import pprint from time import sleep diff --git a/py-scripts/scenario.py b/py-scripts/scenario.py index e54c60e2..418de7a8 100755 --- a/py-scripts/scenario.py +++ b/py-scripts/scenario.py @@ -2,7 +2,6 @@ import sys import os import importlib -import pprint import argparse if sys.version_info[0] != 3: diff --git a/py-scripts/sta_connect_bssid_mac.py b/py-scripts/sta_connect_bssid_mac.py index 38b34fa5..e0da58c1 100644 --- a/py-scripts/sta_connect_bssid_mac.py +++ b/py-scripts/sta_connect_bssid_mac.py @@ -12,35 +12,28 @@ Example: --passwd "BLANK" #password --bssid 78:d2:94:4f:20:c5,78:d2:94:4f:20:c5 #bssid names --sta_name "sta001,sta002" #station names - --mac 04:f0:21:89:3e:ea,04:f0:21:89:4e:ea #mac - --bss_trans #flag to set BSS transition on all stations -""" -import sys -import os -import importlib -import argparse -import time -import json -from os import path -import argparse -import time -import datetime - -if sys.version_info[0] != 3: - print("This script requires Python 3") - exit(1) - - -sys.path.append(os.path.join(os.path.abspath(__file__ + "../../../"))) - -lfcli_base = importlib.import_module("py-json.LANforge.lfcli_base") -LFCliBase = lfcli_base.LFCliBase -LFUtils = importlib.import_module("py-json.LANforge.LFUtils") -realm = importlib.import_module("py-json.realm") -Realm = realm.Realm - - -class client_connect(Realm): + --mac 04:f0:21:89:3e:ea,04:f0:21:89:4e:ea #mac + --bss_trans #flag to set BSS transition on all stations +""" +import sys +import os +import importlib + +if sys.version_info[0] != 3: + print("This script requires Python 3") + exit(1) + + +sys.path.append(os.path.join(os.path.abspath(__file__ + "../../../"))) + +lfcli_base = importlib.import_module("py-json.LANforge.lfcli_base") +LFCliBase = lfcli_base.LFCliBase +LFUtils = importlib.import_module("py-json.LANforge.LFUtils") +realm = importlib.import_module("py-json.realm") +Realm = realm.Realm + + +class client_connect(Realm): def __init__(self, lfclient_host="localhost", lfclient_port=8080, radio=None, sta_name=None, ssid=None, security=None, paswd=None, bssid=None, mac=None, bss_trans=False): super().__init__(lfclient_host, lfclient_port) diff --git a/py-scripts/sta_connect_multi_example.py b/py-scripts/sta_connect_multi_example.py index a0dab444..9c5dd040 100755 --- a/py-scripts/sta_connect_multi_example.py +++ b/py-scripts/sta_connect_multi_example.py @@ -3,8 +3,6 @@ import sys import os import importlib -import pprint -from pprint import pprint if sys.version_info[0] != 3: print("This script requires Python 3") diff --git a/py-scripts/sta_scan_test.py b/py-scripts/sta_scan_test.py index 50189111..e9a9a86c 100755 --- a/py-scripts/sta_scan_test.py +++ b/py-scripts/sta_scan_test.py @@ -28,9 +28,7 @@ sys.path.append(os.path.join(os.path.abspath('..'), 'py-dashboard')) import argparse from LANforge import LFUtils from realm import Realm -import datetime import time -import pprint class StaScan(Realm): diff --git a/py-scripts/stations_connected.py b/py-scripts/stations_connected.py index 6533c5c4..74070fbc 100755 --- a/py-scripts/stations_connected.py +++ b/py-scripts/stations_connected.py @@ -3,8 +3,6 @@ import sys import os import importlib -import pprint -from pprint import pprint if sys.version_info[0] != 3: print("This script requires Python 3") diff --git a/py-scripts/test_1k_clients_jedtest.py b/py-scripts/test_1k_clients_jedtest.py index b7bcef8e..cde6597c 100755 --- a/py-scripts/test_1k_clients_jedtest.py +++ b/py-scripts/test_1k_clients_jedtest.py @@ -5,7 +5,6 @@ import importlib import argparse import time import datetime -import pprint if sys.version_info[0] != 3: print("This script requires Python 3") diff --git a/py-scripts/test_fileio.py b/py-scripts/test_fileio.py index 738ef594..6148a78c 100755 --- a/py-scripts/test_fileio.py +++ b/py-scripts/test_fileio.py @@ -32,7 +32,6 @@ import importlib import argparse import time import datetime -import pprint if sys.version_info[0] != 3: print("This script requires Python 3") diff --git a/py-scripts/test_generic.py b/py-scripts/test_generic.py index a0ff5071..6ce023f5 100755 --- a/py-scripts/test_generic.py +++ b/py-scripts/test_generic.py @@ -38,7 +38,6 @@ import pprint import argparse import time import datetime -import json if sys.version_info[0] != 3: print("This script requires Python 3") diff --git a/py-scripts/test_l3_longevity.py b/py-scripts/test_l3_longevity.py index 435b6c41..a7953099 100755 --- a/py-scripts/test_l3_longevity.py +++ b/py-scripts/test_l3_longevity.py @@ -49,14 +49,12 @@ import sys import os import importlib from pprint import pprint -import re import serial import pexpect from pexpect_serial import SerialSpawn import argparse import time import datetime -import subprocess import csv if sys.version_info[0] != 3: @@ -67,8 +65,6 @@ if sys.version_info[0] != 3: sys.path.append(os.path.join(os.path.abspath(__file__ + "../../../"))) lf_report = importlib.import_module("py-scripts.lf_report") -# lfcli_base = importlib.import_module("py-json.LANforge.lfcli_base") -# LFCliBase = lfcli_base.LFCliBase LFUtils = importlib.import_module("py-json.LANforge.LFUtils") realm = importlib.import_module("py-json.realm") Realm = realm.Realm diff --git a/py-scripts/test_l3_powersave_traffic.py b/py-scripts/test_l3_powersave_traffic.py index ded5c400..b87d419a 100755 --- a/py-scripts/test_l3_powersave_traffic.py +++ b/py-scripts/test_l3_powersave_traffic.py @@ -2,8 +2,6 @@ import sys import os import importlib -import pprint -import argparse import time import datetime diff --git a/py-scripts/test_l3_scenario_throughput.py b/py-scripts/test_l3_scenario_throughput.py index 11f5a9b8..d73d8cfc 100755 --- a/py-scripts/test_l3_scenario_throughput.py +++ b/py-scripts/test_l3_scenario_throughput.py @@ -33,11 +33,9 @@ import logging import paramiko as pmgo from paramiko.ssh_exception import NoValidConnectionsError as exception import xlsxwriter -from bokeh.io import output_file, show +from bokeh.io import show from bokeh.plotting import figure from bokeh.models import LinearAxis, Range1d -from bokeh.models import HoverTool, Range1d -from bokeh.layouts import row from datetime import datetime import socket diff --git a/py-scripts/test_status_msg.py b/py-scripts/test_status_msg.py index 557284d3..ed1297f6 100755 --- a/py-scripts/test_status_msg.py +++ b/py-scripts/test_status_msg.py @@ -2,10 +2,8 @@ import sys import os import importlib -# import time import argparse from uuid import uuid1 -import pprint from pprint import pprint if sys.version_info[0] != 3: diff --git a/py-scripts/test_wpa_passphrases.py b/py-scripts/test_wpa_passphrases.py index 1434081e..71db3c50 100755 --- a/py-scripts/test_wpa_passphrases.py +++ b/py-scripts/test_wpa_passphrases.py @@ -8,7 +8,6 @@ License: Free to distribute and modify. LANforge systems must be licensed. import sys import os import importlib -import argparse if sys.version_info[0] != 3: print("This script requires Python 3") diff --git a/py-scripts/testgroup2.py b/py-scripts/testgroup2.py index 889c34af..792d490b 100755 --- a/py-scripts/testgroup2.py +++ b/py-scripts/testgroup2.py @@ -9,7 +9,6 @@ import os import importlib import argparse import time -import datetime if sys.version_info[0] != 3: print("This script requires Python 3") diff --git a/py-scripts/tip_station_powersave.py b/py-scripts/tip_station_powersave.py index 0e9e4b2f..1401372e 100755 --- a/py-scripts/tip_station_powersave.py +++ b/py-scripts/tip_station_powersave.py @@ -3,7 +3,6 @@ import sys import os import importlib import pprint -import argparse import time import datetime diff --git a/py-scripts/vap_stations_example.py b/py-scripts/vap_stations_example.py index 59e50d1a..a6bd28eb 100755 --- a/py-scripts/vap_stations_example.py +++ b/py-scripts/vap_stations_example.py @@ -5,7 +5,6 @@ This is an outdated example. Please see modern py-scripts/test_X example scripts import sys import os import importlib -import traceback if sys.version_info[0] != 3: print("This script requires Python 3") diff --git a/py-scripts/ws_generic_monitor_test.py b/py-scripts/ws_generic_monitor_test.py index f688acfa..11aecea9 100755 --- a/py-scripts/ws_generic_monitor_test.py +++ b/py-scripts/ws_generic_monitor_test.py @@ -7,7 +7,6 @@ This script when running, will monitor the events triggered by test_ipv4_connect import sys import os import importlib -import json sys.path.append(os.path.join(os.path.abspath(__file__ + "../../../")))