1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 import argparse
20 import os
21 from pprint import pprint
22 import sys
23
24 import os_client_config
25
26 import yakumo
27
28
29 ENVIRONMENT_VARIABLES = {
30 'os_cloud': 'OS_CLOUD',
31 'os_cert': 'OS_CERT',
32 'os_cacert': 'OS_CACERT',
33 'os_region_name': 'OS_REGION_NAME',
34 'os_interface': 'OS_INTERFACE',
35 'os_key': 'OS_KEY',
36 'os_auth_type': 'OS_AUTH_TYPE',
37 }
38
39
41 kwargs = {dest: os.environ.get(env)
42 for dest, env in ENVIRONMENT_VARIABLES.items()}
43 parser = argparse.ArgumentParser()
44 cloud_config = os_client_config.OpenStackConfig()
45 cloud_config.register_argparse_arguments(parser, sys.argv)
46 for opt in parser._actions:
47 if opt.dest in ENVIRONMENT_VARIABLES:
48 opt.metavar = ENVIRONMENT_VARIABLES[opt.dest]
49 parser.set_defaults(timeout=None, insecure=False, **kwargs)
50 parser.add_argument('--verbose', help='Verbose output',
51 action='store_true')
52
53 options = parser.parse_args()
54 c = yakumo.Client(**options.__dict__)
55
56 local_vars = locals()
57 local_vars['pprint'] = pprint
58 try:
59 import bpython
60 bpython.embed(locals_=local_vars)
61 except ImportError:
62 try:
63 import code
64 import readline
65 readline.parse_and_bind("tab:complete")
66 except ImportError:
67 pass
68 code.interact(None, None, local_vars)
69
70 if __name__ == '__main__':
71 main()
72