1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
|
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 <site_list_csv_file>")
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.')
|