--- /dev/null
+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)
+
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)
-
--- /dev/null
+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)
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)
--- /dev/null
+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)
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],
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
import constants as const
-import json, pprint, urllib2, base64, sys
+import json, pprint, sys
import optparse
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 ''
--- /dev/null
+import cli
+import logg
+
+
+if __name__ == "__main__":
+ logg.Logger()
+ cli.main()
-#!/usr/bin/env python
import argparse
-import csit.robotfiles
-import logg
+import csit.cli
+import mdsal.cli
+import netvirt.cli
__version__ = "0.1"
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
def main():
args = parse_args()
args.func(args)
-
-if __name__ == "__main__":
- logg.Logger()
- main()
import unittest
-from odltools import odltools
+from odltools import cli
from csit import robotfiles
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)