diff options
| author | ckonstanski <kostcarl@isu.edu> | 2026-07-30 18:17:14 -0600 |
|---|---|---|
| committer | ckonstanski <kostcarl@isu.edu> | 2026-07-30 18:17:14 -0600 |
| commit | 640ff61422bc0ee3966941b93d9889ddbbd38d77 (patch) | |
| tree | abf1c08f5d38ee53ec8b29dc4f425722517505e6 /tests/paas-setup-check/site_run_command.py | |
| parent | 22dae02a86c1fce71091bfa5289cf99abba1b217 (diff) | |
Diffstat (limited to 'tests/paas-setup-check/site_run_command.py')
| -rw-r--r-- | tests/paas-setup-check/site_run_command.py | 130 |
1 files changed, 130 insertions, 0 deletions
diff --git a/tests/paas-setup-check/site_run_command.py b/tests/paas-setup-check/site_run_command.py new file mode 100644 index 0000000..e19afac --- /dev/null +++ b/tests/paas-setup-check/site_run_command.py @@ -0,0 +1,130 @@ +import sys +import csv +import time +import pexpect +import psycopg2 + +class RunCmdFromList(): + + def run_cmd(self, site_name): + try: + + #get oam_ip + site_ip = self._get_remote_region_oam_ip(site_name) + print('site_ip ' + site_ip) + + ssh_prefix = 'ssh -o StrictHostKeyChecking=no -t sysadmin@' + site_ip + raw_cmd = " sudo reboot " + cmd1 = ssh_prefix + raw_cmd + print(cmd1) + self._execute_cmd_and_save_op(cmd1, raw_cmd, 'xxxxxxx', additional_password=True) + print('called ' + raw_cmd + ' for ' + site_name) + + except Exception as e: + print(e) + + def _execute_cmd_and_save_op(self, cmd, raw_cmd, password, additional_password=False): + cmds = [] + #print(cmd) + cmds.append(cmd) + all_lines = self._run_command_get_all_lines(cmds, password, additional_password=additional_password) + print(all_lines) + print(raw_cmd + ":\n") + print("-------------------------\n") + for line in all_lines.split("\n"): + if 'Connection' not in line: + print(line) + print("\n") + print("\n") + + def _run_command_get_all_lines(self, commands, host_password, timeout=None, additional_password=False): + #print("Inside _run_command_get_all_lines") + all_lines = [] + for command in commands: + print("Executing.." + command) + child = pexpect.spawn(command) + child.timeout=timeout + try: + i = child.expect(['password: ','Connection refused\r\r\n'], timeout=timeout) + if i == 0: + child.sendline(host_password) + if additional_password: + child.expect_exact("Password:") + child.sendline(host_password) + all_lines = child.read() + all_lines = all_lines.rstrip().lstrip() + all_lines = all_lines.decode('utf-8').replace('\r\n', '\n') + #logger.info(all_lines) + if i == 1: + print("Connection refused") + except: + print(str(child)) + return all_lines + + def _get_remote_region_oam_ip(self, cluster_name): + + """ Connect to the PostgreSQL database server """ + conn = None + oam_ip = None + try: + print('Connecting to the PostgreSQL database...') + + conn = psycopg2.connect( + host='xxxxxxx', + port='5432', + database="faredge", + user="faredge", + password='xxxxxx') + + # create a cursor + cur = conn.cursor() + + # execute a statement + print('select oam_vip_address from caas_wrbatch where cluster_name=' + site_name ) + sql = 'select oam_vip_address from caas_wrbatch where cluster_name=' + '\'' + site_name + '\'' + cur.execute(sql) + + #print('PostgreSQL database version:') + #cur.execute('SELECT version()') + + # display the PostgreSQL database server version + oam_ip = cur.fetchone() + print( site_name + ' ' + str(oam_ip)) + + # close the communication with the PostgreSQL + cur.close() + except (Exception, psycopg2.DatabaseError) as error: + print(error) + finally: + if conn is not None: + conn.close() + print('Database connection closed.') + + print(site_name + " OAM IP:" + oam_ip[0]) + return oam_ip[0] + + +if __name__ == '__main__': + + if len(sys.argv) < 1: + print("Usage:") + print(" python site_run_command.py <site_list_csv_file>") + exit(0) + + site_list_file = sys.argv[1] + print("Input WR installed site list file:" + site_list_file) + runCmdFromList = RunCmdFromList() + + with open(site_list_file) as csv_file: + csv_reader = csv.reader(csv_file, delimiter=',') + line_count = 0 + for row in csv_reader: + print(f'\t{row[0]}') + #site_name = 'wsbomagj-d325030-001'; + site_name = row[0]; + runCmdFromList.run_cmd(site_name) + line_count += 1 + time.sleep(3) + + + print(f'Processed {line_count} lines.') |
