Use transport in cli for http/https
[netvirt.git] / resources / tools / odltools / odltools / netvirt / cli.py
1 import analyze
2 import argparse
3 import show
4
5
6 def add_common_args(parser):
7     parser.add_argument("--path",
8                         help="the directory that the parsed data is written into")
9     parser.add_argument("--transport", default="http",
10                         choices=["http", "https"],
11                         help="transport for connections")
12     parser.add_argument("-i", "--ip", default="localhost",
13                         help="OpenDaylight ip address")
14     parser.add_argument("-t", "--port", default="8181",
15                         help="OpenDaylight restconf port, default: 8181")
16     parser.add_argument("-u", "--user", default="admin",
17                         help="OpenDaylight restconf username, default: admin")
18     parser.add_argument("-w", "--pw", default="admin",
19                         help="OpenDaylight restconf password, default: admin")
20     parser.add_argument("-p", "--pretty_print", action="store_true",
21                         help="json dump with pretty_print")
22
23
24 def add_interface_parser(parsers):
25     parser = parsers.add_parser("interface")
26     add_common_args(parser)
27     parser.add_argument("--ifName",
28                         help="interfaces-state:interface:name")
29     parser.set_defaults(func=analyze.analyze_interface)
30
31     parser = parsers.add_parser("inventory")
32     add_common_args(parser)
33     parser.add_argument("--ifName",
34                         help="interfaces-state:interface:name")
35     parser.add_argument("--isConfig",
36                         help="config or operational inventory")
37     parser.add_argument("--nodeId",
38                         help="nodeId")
39     parser.set_defaults(func=analyze.analyze_inventory)
40
41     parser = parsers.add_parser("trunks")
42     add_common_args(parser)
43     parser.set_defaults(func=analyze.analyze_trunks)
44
45
46 def call_func(args):
47     args.func2(args)
48
49
50 def add_show_parser(parsers):
51     parser = parsers.add_parser("elan-instances")
52     add_common_args(parser)
53     parser.set_defaults(func=show.show_elan_instances)
54
55     parser = parsers.add_parser("flows")
56     add_common_args(parser)
57     parser.add_argument("--modules",
58                         help="service module owning the flow")
59     parser.add_argument("flowtype", choices=["all", "duplicate", "elan", "learned", "stale"])
60     parser.add_argument("--metaOnly", action="store_true",
61                         help="display flow meta info only")
62     parser.add_argument("--urls", action="store_true",
63                         help="show flow urls")
64     parser.set_defaults(func=show.show_flows)
65
66     parser = parsers.add_parser("id-pools")
67     add_common_args(parser)
68     parser.set_defaults(func=show.show_idpools)
69
70     parser = parsers.add_parser("groups")
71     add_common_args(parser)
72     parser.set_defaults(func=show.show_groups)
73
74     parser = parsers.add_parser("stale-bindings")
75     add_common_args(parser)
76     # parser.set_defaults(func=show.show_stale_bindings)
77     parser.add_argument("--func2", default=show.show_stale_bindings, help=argparse.SUPPRESS)
78     parser.set_defaults(func=call_func)
79
80     parser = parsers.add_parser("tables")
81     add_common_args(parser)
82     parser.set_defaults(func=show.show_tables)
83
84
85 def add_parser(parsers):
86     parser = parsers.add_parser("analyze")
87     subparsers = parser.add_subparsers(dest="subcommand")
88     add_interface_parser(subparsers)
89
90     parser = parsers.add_parser("show")
91     subparsers = parser.add_subparsers(dest="showcommand")
92     add_show_parser(subparsers)