]>
Commit | Line | Data |
---|---|---|
7c673cae FG |
1 | #!/usr/bin/env python |
2 | # vim: ts=4 sw=4 smarttab expandtab | |
3 | ||
4 | import argparse | |
5 | import inspect | |
6 | import os | |
7 | import sys | |
8 | ||
9 | # Make life easier on developers | |
10 | ||
11 | MYPATH = os.path.abspath(__file__) | |
12 | MYDIR = os.path.dirname(MYPATH) | |
13 | DEVMODEMSG = '*** DEVELOPER MODE: setting PYTHONPATH and LD_LIBRARY_PATH' | |
14 | ||
15 | def parse_args(): | |
16 | parser = argparse.ArgumentParser(description="Ceph REST API webapp") | |
224ce89b WB |
17 | parser.add_argument('-c', '--conf', help='Ceph configuration file', |
18 | default='/etc/ceph/ceph.conf') | |
7c673cae FG |
19 | parser.add_argument('--cluster', help='Ceph cluster name') |
20 | parser.add_argument('-n', '--name', help='Ceph client name') | |
224ce89b | 21 | parser.add_argument('-i', '--id', help='Ceph client id', default='admin') |
7c673cae FG |
22 | |
23 | return parser.parse_known_args() | |
24 | ||
25 | # main | |
26 | ||
27 | parsed_args, rest = parse_args() | |
28 | ||
29 | # import now that env vars are available to imported module | |
30 | ||
31 | try: | |
32 | import ceph_rest_api | |
33 | except EnvironmentError as e: | |
34 | print >> sys.stderr, "Error importing ceph_rest_api: ", str(e) | |
35 | sys.exit(1) | |
36 | ||
37 | # let other exceptions generate traceback | |
38 | ||
39 | app = ceph_rest_api.generate_app( | |
40 | parsed_args.conf, | |
41 | parsed_args.cluster, | |
42 | parsed_args.name, | |
43 | parsed_args.id, | |
44 | rest, | |
45 | ) | |
46 | ||
47 | files = [os.path.split(fr[1])[-1] for fr in inspect.stack()] | |
48 | if 'pdb.py' in files: | |
49 | app.run(host=app.ceph_addr, port=app.ceph_port, | |
50 | debug=True, use_reloader=False, use_debugger=False) | |
51 | else: | |
224ce89b WB |
52 | if __name__ == '__main__': |
53 | app.run(host=app.ceph_addr, port=app.ceph_port) | |
54 | else: | |
55 | application = app |