Wire in subparsers 60/71360/1
authorSam Hague <shague@redhat.com>
Wed, 25 Apr 2018 21:44:26 +0000 (17:44 -0400)
committerSam Hague <shague@redhat.com>
Wed, 25 Apr 2018 21:44:26 +0000 (17:44 -0400)
Change-Id: I7f4f64ffb4914342e73ea1d35ebd1a74501f2f54
Signed-off-by: Sam Hague <shague@redhat.com>
resources/tools/odltools/csit/cli.py [new file with mode: 0644]
resources/tools/odltools/csit/robotfiles.py
resources/tools/odltools/mdsal/cli.py [new file with mode: 0644]
resources/tools/odltools/mdsal/models.py
resources/tools/odltools/netvirt/cli.py [new file with mode: 0644]
resources/tools/odltools/netvirt/constants.py
resources/tools/odltools/netvirt/ds_analyze.py
resources/tools/odltools/netvirt/netvirt_utils.py
resources/tools/odltools/odltools/__main__.py [new file with mode: 0644]
resources/tools/odltools/odltools/cli.py [moved from resources/tools/odltools/odltools/odltools.py with 80% similarity]
resources/tools/odltools/odltools/tests/test_cli.py [moved from resources/tools/odltools/odltools/tests/test_odltools.py with 80% similarity]

diff --git a/resources/tools/odltools/csit/cli.py b/resources/tools/odltools/csit/cli.py
new file mode 100644 (file)
index 0000000..c2a25d6
--- /dev/null
@@ -0,0 +1,15 @@
+import robotfiles
+
+
+def add_parser(subparsers):
+    parser = subparsers.add_parser("csit")
+    parser.add_argument("infile",
+                        help="XML output from a Robot test, e.g. output_01_l2.xml.gz")
+    parser.add_argument("outdir",
+                        help="the directory that the parsed data is written into")
+    parser.add_argument("-g", "--gunzip", action="store_true",
+                        help="unzip the infile")
+    parser.add_argument("-d", "--dump", action="store_true",
+                        help="dump extra debugging, e.g. ovs metadata")
+    parser.set_defaults(func=robotfiles.run)
+
index 9f84e1832889c4beeed7333d340935df2b441beb..337c04cb1555741c92d6c7d3bea4e984542e416d 100644 (file)
@@ -272,17 +272,3 @@ def run(args):
     robotfile.write_pdata()
     if args.dump:
         robotfile.write_debug_pdata()
-
-
-def add_parser(subparsers):
-    parser = subparsers.add_parser("csit")
-    parser.add_argument("infile",
-                        help="XML output from a Robot test, e.g. output_01_l2.xml.gz")
-    parser.add_argument("outdir",
-                        help="the directory that the parsed data is written into")
-    parser.add_argument("-g", "--gunzip", action="store_true",
-                        help="unzip the infile")
-    parser.add_argument("-d", "--dump", action="store_true",
-                        help="dump extra debugging, e.g. ovs metadata")
-    parser.set_defaults(func=run)
-
diff --git a/resources/tools/odltools/mdsal/cli.py b/resources/tools/odltools/mdsal/cli.py
new file mode 100644 (file)
index 0000000..5be0aa3
--- /dev/null
@@ -0,0 +1,24 @@
+import models
+
+
+def add_dump_parser(parsers):
+    parser = parsers.add_parser("dump")
+    parser.add_argument("outdir",
+                        help="the directory that the parsed data is written into")
+    parser.add_argument("-i", "--ip", default="localhost",
+                        help="OpenDaylight ip address")
+    parser.add_argument("-p", "--pretty_print", action="store_true",
+                        help="json dump with pretty_print")
+    parser.add_argument("-t", "--port", default="8181",
+                        help="OpenDaylight restconf port, defaul: 8181")
+    parser.add_argument("-u", "--user", default="admin",
+                        help="OpenDaylight restconf username, default: admin")
+    parser.add_argument("-w", "--pw", default="admin",
+                        help="OpenDaylight restconf password, default: admin")
+    parser.set_defaults(func=models.run_dump)
+
+
+def add_parser(parsers):
+    parser = parsers.add_parser("model")
+    subparsers = parser.add_subparsers(dest="subcommand")
+    add_dump_parser(subparsers)
index fbdad9e08262cfe46f8b35fa1f70ed98503429e4..c36b21cff4fd7f162584d9de7daaba749967e668 100644 (file)
@@ -238,3 +238,7 @@ def get_model_data(filename, url, user, pw, pretty_print=False):
     data = get_from_odl(url, user, pw)
     if data is not None:
         request.write_file(filename, data, pretty_print)
+
+
+def run_dump(args):
+    get_all_dumps(args.outdir, args.ip, args.port, args.user, args.pw, args.pretty_print)
diff --git a/resources/tools/odltools/netvirt/cli.py b/resources/tools/odltools/netvirt/cli.py
new file mode 100644 (file)
index 0000000..d44500d
--- /dev/null
@@ -0,0 +1,24 @@
+import ds_analyze
+
+
+def add_interface_parser(parsers):
+    parser = parsers.add_parser("interface")
+    parser.add_argument("outdir",
+                        help="the directory that the parsed data is written into")
+    parser.add_argument("-i", "--ip", default="localhost",
+                        help="OpenDaylight ip address")
+    parser.add_argument("-p", "--pretty_print", action="store_true",
+                        help="json dump with pretty_print")
+    parser.add_argument("-t", "--port", default="8181",
+                        help="OpenDaylight restconf port, defaul: 8181")
+    parser.add_argument("-u", "--user", default="admin",
+                        help="OpenDaylight restconf username, default: admin")
+    parser.add_argument("-w", "--pw", default="admin",
+                        help="OpenDaylight restconf password, default: admin")
+    parser.set_defaults(func=ds_analyze.analyze_interface)
+
+
+def add_parser(parsers):
+    parser = parsers.add_parser("analyze")
+    subparsers = parser.add_subparsers(dest="subcommand")
+    add_interface_parser(subparsers)
index 4126d82cb0c78456cbf6cda97526f86f2527bd40..a946242957ac224802c85d97bf2db3be604c463f 100644 (file)
@@ -12,7 +12,6 @@ IFTYPE_TUNNEL = 'iana-if-type:tunnel'
 NODE_GROUP = 'flow-node-inventory:group'
 NODE_TABLE = 'flow-node-inventory:table'
 
-
 TABLE_MAP = {
     'ifm': [0, 17, 220],
     'l3vpn': [19, 20, 21, 22, 36, 81],
index f95b74f8840cd138e9bd639c9634526072d1ad11..5e47d26f7adabe0955f97aa987bf030ec8133d8d 100644 (file)
@@ -587,9 +587,6 @@ def analyze_trunks():
             print 'SubPort:{},Table:{},FlowStatus:{}'.format(
                     subport.get('port-id'), flow.get('table'), flow_status)
 
-def get_all_dumps():
-    dsg.get_all_dumps()
-
 
 def main(args=None):
     global elan_elan_instances
index 8c0d88817eb1e4706e6a38fa0b04da5530e72017..ce7717589c3dc2bdfd0133a570a20c04138bb0dc 100644 (file)
@@ -1,5 +1,5 @@
 import constants as const
-import json, pprint, urllib2, base64, sys
+import json, pprint, sys
 import optparse
 
 
@@ -43,27 +43,6 @@ def get_temp_path():
     return './'
 
 
-def grabJson(url):
-    data = None
-    try:
-        request = urllib2.Request(url)
-        # You need the replace to handle encodestring adding a trailing newline
-        # (https://docs.python.org/2/library/base64.html#base64.encodestring)
-        base64string = base64.encodestring('{}:{}'.format(options.odlUsername, options.odlPassword)).replace('\n', '')
-        request.add_header('Authorization', 'Basic {}'.format(base64string))
-        result = urllib2.urlopen(request)
-    except urllib2.URLError, e:
-        printError('Unable to send request: {}\n'.format(e))
-        return data
-
-    if (result.code != 200):
-        printError( '{}\n{}\n\nError: unexpected code: {}\n'.format(result.info(), result.read(), result.code) )
-        return data
-
-    data = json.load(result)
-    return data
-
-
 def nstr(s):
     if not s:
         return ''
diff --git a/resources/tools/odltools/odltools/__main__.py b/resources/tools/odltools/odltools/__main__.py
new file mode 100644 (file)
index 0000000..9952c7a
--- /dev/null
@@ -0,0 +1,7 @@
+import cli
+import logg
+
+
+if __name__ == "__main__":
+    logg.Logger()
+    cli.main()
similarity index 80%
rename from resources/tools/odltools/odltools/odltools.py
rename to resources/tools/odltools/odltools/cli.py
index 46659fc3a8b5d97bfad8117055a5693a7b7b3503..b096177a350fa95ed33b2c255e8e29c77775be4b 100644 (file)
@@ -1,7 +1,7 @@
-#!/usr/bin/env python
 import argparse
-import csit.robotfiles
-import logg
+import csit.cli
+import mdsal.cli
+import netvirt.cli
 
 __version__ = "0.1"
 
@@ -13,7 +13,9 @@ def create_parser():
     parser.add_argument("-V", "--version", action="version",
                         version="%(prog)s (version {version})".format(version=__version__))
     subparsers = parser.add_subparsers(dest="command")
-    csit.robotfiles.add_parser(subparsers)
+    csit.cli.add_parser(subparsers)
+    mdsal.cli.add_parser(subparsers)
+    netvirt.cli.add_parser(subparsers)
 
     return parser
 
@@ -28,7 +30,3 @@ def parse_args():
 def main():
     args = parse_args()
     args.func(args)
-
-if __name__ == "__main__":
-    logg.Logger()
-    main()
similarity index 80%
rename from resources/tools/odltools/odltools/tests/test_odltools.py
rename to resources/tools/odltools/odltools/tests/test_cli.py
index 7b9aa1fe4023120a732a9bc5dc2425a03ee32836..63e2ba7573a741199b28687bf5434bbed35975a4 100644 (file)
@@ -1,5 +1,5 @@
 import unittest
-from odltools import odltools
+from odltools import cli
 from csit import robotfiles
 
 
@@ -8,24 +8,24 @@ class TestOdltools(unittest.TestCase):
     OUTPATH = "/tmp/robotjob"
 
     def test_parser_empty(self):
-        parser = odltools.create_parser()
+        parser = cli.create_parser()
         with self.assertRaises(SystemExit) as cm:
             parser.parse_args([])
         self.assertEqual(cm.exception.code, 2)
 
     def test_parser_help(self):
-        parser = odltools.create_parser()
+        parser = cli.create_parser()
         with self.assertRaises(SystemExit) as cm:
             parser.parse_args(['-h'])
         self.assertEqual(cm.exception.code, 0)
 
     def test_robotfiles_run(self):
-        parser = odltools.create_parser()
+        parser = cli.create_parser()
         args = parser.parse_args(['csit', self.DATAPATH, self.OUTPATH, '-g'])
         robotfiles.run(args)
 
     def test_csit(self):
-        parser = odltools.create_parser()
+        parser = cli.create_parser()
         args = parser.parse_args(['csit', self.DATAPATH, self.OUTPATH, '-g', '-d'])
         robotfiles.run(args)