import requests import sys import csv import time class SendVMBMessages(): auth = ('SVC-Far-Edge','QxbV44IU4P7t7rN44dxK4xyPB'); def _is_network_ok(self, site_name): url = 'https://middleware.vcpfe.vzwops.com/orchestration/remote-regions/' + site_name + '/site-details' resp = requests.get(url, auth=self.auth, verify=False) if resp.status_code == 500: print(site_name + ' ssh network unreachable') return False, resp.status_code print(resp.json()) namespaces = resp.json()['setup_details']['namespaces'] for namespace in namespaces: print('namespace: ' + namespace) if 'Unable to connect to the server' in namespace: print(site_name + ' k8s network unreachable') return False, 500 network_no = len(resp.json()['setup_details']['network_details']) if network_no and network_no >= 15: print(site_name + ' network setup succeeded') return True, resp.status_code else: return False, resp.status_code #200 def run_setup_cluster(self, site_name, network_setup=True): try: namespace_setup_url = 'https://middleware.vcpfe.vzwops.com/orchestration/setup-cluster/' + site_name #namespace_setup_url = 'http://localhost:8000/orchestration/setup-cluster/' + site_name print('calling setup-cluster with network_setup : ' + str(network_setup) ) payload = {'network_setup': network_setup} resp = requests.get(namespace_setup_url, auth=self.auth, params=payload, verify=False) if resp.status_code == 500: print(site_name + ' setup-cluster call failed') else: print('called sending message to VMB for ' + site_name) except Exception as e: print(e) if __name__ == '__main__': if len(sys.argv) < 1: print("Usage:") print(" python SendVMBMessages.py ") exit(0) site_list_file = sys.argv[1] print("Input WR installed site list file:" + site_list_file) sendVMBMessages = SendVMBMessages() 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]; network_ok, status_code = sendVMBMessages._is_network_ok(site_name) if status_code != 500: if network_ok: sendVMBMessages.run_setup_cluster(site_name, network_setup=False) else: sendVMBMessages.run_setup_cluster(site_name, network_setup=True) line_count += 1 time.sleep(3) print(f'Processed {line_count} lines.')