forked from Juniper/contrail-provisioning
-
Notifications
You must be signed in to change notification settings - Fork 0
/
setup-vnc-openstack.py
executable file
·122 lines (103 loc) · 4.8 KB
/
setup-vnc-openstack.py
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
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
#!/usr/bin/python
#
# Copyright (c) 2013 Juniper Networks, Inc. All rights reserved.
#
import argparse
import ConfigParser
import os
import sys
sys.path.insert(0, os.getcwd())
from contrail_setup_utils.setup import Setup
class SetupVncOpenstack(object):
def __init__(self, args_str = None):
self._args = None
if not args_str:
args_str = ' '.join(sys.argv[1:])
self._parse_args(args_str)
self_ip = self._args.self_ip
cfgm_ip = self._args.cfgm_ip
keystone_ip = self._args.keystone_ip
internal_vip = self._args.internal_vip
openstack_index = self._args.openstack_index
service_token = self._args.service_token
ks_auth_protocol = self._args.keystone_auth_protocol
amqp_server_ip = self._args.amqp_server_ip
quantum_service_protocol = self._args.quantum_service_protocol
setup_args_str = "--role openstack "
setup_args_str = setup_args_str + " --cfgm_ip %s " %(cfgm_ip)
setup_args_str = setup_args_str + " --keystone_ip %s " %(keystone_ip)
setup_args_str = setup_args_str + " --ks_auth_protocol %s" %(ks_auth_protocol)
setup_args_str = setup_args_str + " --amqp_server_ip %s" %(amqp_server_ip)
setup_args_str = setup_args_str + " --quantum_service_protocol %s" %(quantum_service_protocol)
if internal_vip:
setup_args_str = setup_args_str + " --internal_vip %s " %(internal_vip)
if service_token:
setup_args_str = setup_args_str + " --service_token %s " %(service_token)
if self._args.haproxy:
setup_args_str = setup_args_str + " --haproxy"
if openstack_index:
setup_args_str = setup_args_str + " --openstack_index %s" \
%(self._args.openstack_index)
setup_obj = Setup(setup_args_str)
setup_obj.do_setup()
setup_obj.run_services()
#end __init__
def _parse_args(self, args_str):
'''
Eg. python setup-vnc-openstack.py --self_ip 10.1.5.11 --cfgm_ip 10.1.5.12
--keystone_ip 10.1.5.13 --service_token c0ntrail123 --haproxy
--internal_vip 10.1.5.100 --openstack_index 1
'''
# Source any specified config/ini file
# Turn off help, so we print all options in response to -h
conf_parser = argparse.ArgumentParser(add_help = False)
conf_parser.add_argument("-c", "--conf_file",
help="Specify config file", metavar="FILE")
args, remaining_argv = conf_parser.parse_known_args(args_str.split())
global_defaults = {
'self_ip': '127.0.0.1',
'service_token': '',
'cfgm_ip': '127.0.0.1',
'keystone_ip': '127.0.0.1',
'haproxy': False,
'ks_auth_protocol':'http',
'amqp_server_ip':'127.0.0.1',
'quantum_service_protocol': 'http',
}
if args.conf_file:
config = ConfigParser.SafeConfigParser()
config.read([args.conf_file])
global_defaults.update(dict(config.items("GLOBAL")))
# Override with CLI options
# Don't surpress add_help here so it will handle -h
parser = argparse.ArgumentParser(
# Inherit options from config_parser
parents=[conf_parser],
# print script description with -h/--help
description=__doc__,
# Don't mess with format of description
formatter_class=argparse.RawDescriptionHelpFormatter,
)
all_defaults = {'global': global_defaults}
parser.set_defaults(**all_defaults)
parser.add_argument("--self_ip", help = "IP Address of this system")
parser.add_argument("--cfgm_ip", help = "IP Address of quantum node")
parser.add_argument("--keystone_ip", help = "IP Address of keystone node")
parser.add_argument("--internal_vip", help = "VIP Address of openstack nodes")
parser.add_argument("--service_token", help = "The service password to access keystone")
parser.add_argument("--haproxy", help = "Enable haproxy", action="store_true")
parser.add_argument("--quantum_service_protocol",
help = "Protocol of neutron for nova to use", default="http")
parser.add_argument("--amqp_server_ip",
help = "IP of the AMQP server to be used for openstack")
parser.add_argument("--keystone_auth_protocol",
help = "Auth protocol used to talk to keystone", default='http')
parser.add_argument("--openstack_index", help = "The index of this openstack node")
self._args = parser.parse_args(remaining_argv)
#end _parse_args
#end class SetupVncOpenstack
def main(args_str = None):
SetupVncOpenstack(args_str)
#end main
if __name__ == "__main__":
main()