24160313008f2df12636585ddf32fa87c5936f0d
[integration.git] / test / vcpe / healthcheck-k8s.py
1 #!/usr/bin/env python
2
3 import argparse
4 import json
5 import logging
6 from subprocess import Popen,PIPE
7 import sys
8
9 def parse_args():
10     """
11     Parse command line arguments
12     :return: arguments
13     """
14     parser = argparse.ArgumentParser(description='Processing arguments for vCPE healthcheck',formatter_class=argparse.ArgumentDefaultsHelpFormatter)
15     parser.add_argument('--namespace', default="onap",
16                              metavar=('<namespace_name>'),
17                              help='Namespace name for existing ONAP deployment')
18     parser.add_argument('--environment', default="dev",
19                              metavar=('<environment_name>'),
20                              help='Environment name for existing ONAP deployment visible in <environment_name>-sdnc-sdnc-0 pod name')
21     args = parser.parse_args()
22     return args
23
24
25 args = parse_args()
26
27 namespace = args.namespace
28 environment = args.environment
29
30 # config section
31 kube_cmd = 'kubectl -n {0} exec {1}-sdnc-sdnc-0 -- bash -c '.format(namespace, environment)
32 curl_cmd = 'curl -s -u admin:admin -X GET http://{0}:8183/restconf/config/ietf-interfaces:interfaces'
33 endpoints = {
34     "vGMUX": '10.0.101.21',
35     "vBRG": '10.3.0.2'
36 }
37 # end of config section
38
39 for ename,eip in endpoints.items():
40     print('Checking {0} REST API from SDNC'.format(ename))
41     p = Popen(kube_cmd.split() + [curl_cmd.format(eip)], stdout=PIPE, stderr=PIPE)
42     (output, error) = p.communicate()
43     if p.returncode:
44         print(error)
45         sys.exit(p.returncode)
46     else:
47         print(json.dumps(json.loads(output), indent=4))
48     print('\n')
49
50 print('Checking SDNC DB for vBRG MAC address')
51 kube_db_cmd = 'kubectl -n {0} exec {1}-mariadb-galera-mariadb-galera-0 -- bash -c'
52 db_cmd = "mysql -uroot -psecretpassword sdnctl -e 'select * from DHCP_MAP'"
53 p = Popen(kube_db_cmd.format(namespace, environment).split() + [db_cmd], stdout=PIPE)
54 (output, error) = p.communicate()
55 print(output)