summaryrefslogtreecommitdiff
path: root/tests/paas-setup-check/send-vmb-messages.py
blob: d94004fdc312844ec5ce1e717db9095909e8b283 (plain)
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.')