Add flake8 support and fix issues 77/71677/2
authorSam Hague <shague@redhat.com>
Wed, 2 May 2018 23:44:25 +0000 (19:44 -0400)
committerSam Hague <shague@redhat.com>
Thu, 3 May 2018 00:42:30 +0000 (20:42 -0400)
To run flake8:
- cd to root of odltools project, .../odtools
- tox -e flake
* tox by itself can be used but will also run the unit tests

JIRA: NETVIRT-1232
Change-Id: I2702c1073474b9e3d12b9ae65c5252b3887ebd5b
Signed-off-by: Sam Hague <shague@redhat.com>
33 files changed:
resources/tools/odltools/odltools/__main__.py
resources/tools/odltools/odltools/cli.py
resources/tools/odltools/odltools/csit/cli.py
resources/tools/odltools/odltools/csit/robotfiles.py
resources/tools/odltools/odltools/csit/tests/test_robotfiles.py
resources/tools/odltools/odltools/mdsal/cmd.py
resources/tools/odltools/odltools/mdsal/models/constants.py
resources/tools/odltools/odltools/mdsal/models/model.py
resources/tools/odltools/odltools/mdsal/models/models.py
resources/tools/odltools/odltools/mdsal/models/neutron.py
resources/tools/odltools/odltools/mdsal/models/odl_interface_meta.py
resources/tools/odltools/odltools/mdsal/models/opendaylight_inventory.py
resources/tools/odltools/odltools/mdsal/tests/test_ietf_interfaces.py
resources/tools/odltools/odltools/mdsal/tests/test_itm_state.py
resources/tools/odltools/odltools/mdsal/tests/test_network_topology.py
resources/tools/odltools/odltools/mdsal/tests/test_neutron.py
resources/tools/odltools/odltools/mdsal/tests/test_odl_fib.py
resources/tools/odltools/odltools/mdsal/tests/test_opendaylight_inventory.py
resources/tools/odltools/odltools/mdsal/tests/test_request.py
resources/tools/odltools/odltools/netvirt/analyze.py
resources/tools/odltools/odltools/netvirt/config.py
resources/tools/odltools/odltools/netvirt/flow_parser.py
resources/tools/odltools/odltools/netvirt/flows.py
resources/tools/odltools/odltools/netvirt/ovs_flows.py
resources/tools/odltools/odltools/netvirt/show.py
resources/tools/odltools/odltools/netvirt/tests/test_analyze.py
resources/tools/odltools/odltools/netvirt/tests/test_ovs_flows.py
resources/tools/odltools/odltools/netvirt/tests/test_request.py
resources/tools/odltools/odltools/netvirt/tests/test_show.py
resources/tools/odltools/odltools/netvirt/tests/test_tables.py
resources/tools/odltools/odltools/tests/test_cli.py
resources/tools/odltools/setup.py
resources/tools/odltools/tox.ini

index 02c337c30b2997bb9eced28ab09790c9b12f6fa8..0f12cae232c3a6189bb358af8eee53bea924d07c 100644 (file)
@@ -6,5 +6,6 @@ def main():
     logg.Logger()
     cli.main()
 
+
 if __name__ == "__main__":
     main()
index 6efcf746222b320f9e8ca909a67ca0893d4a85f3..0864109773ab1f1093717494fdfb543a01baf34f 100644 (file)
@@ -1,8 +1,7 @@
 import argparse
 
-import mdsal.cli
-import netvirt.cli
-import odltools
+import odltools.mdsal.cli
+import odltools.netvirt.cli
 import odltools.csit.cli
 
 
index f5f6beec5add290b3575cc0ba255f1aee22376d6..7f22d35f0b698b10a6173e49bf9ea260be9b9c52 100644 (file)
@@ -12,4 +12,3 @@ def add_parser(subparsers):
     parser.add_argument("-d", "--dump", action="store_true",
                         help="dump extra debugging, e.g. ovs metadata")
     parser.set_defaults(func=robotfiles.run)
-
index b12d9cafaa92583be4b4ded608f02f8bab0a2ccd..acb9f84078987dc215cd5a625e48371674777402 100644 (file)
@@ -98,7 +98,8 @@ class RobotFiles:
         text = element.text
         attribs = element.attrib
         if logger.isEnabledFor(logging.DEBUG) and text is not None and attribs:
-            logger.debug("process_element: %s - %s - %s - %s - %s - %s", state.state, state.command, event, tag, (text is not None), attribs)
+            logger.debug("process_element: %s - %s - %s - %s - %s - %s",
+                         state.state, state.command, event, tag, (text is not None), attribs)
         if event == "end":
             if element.tag == "test":
                 state.pdata['nodes'] = state.nodes
index cb89696ff948f788641f29c3995d477a6c5ee09a..794399d96a9a06139d4950a0de0cc1447b7d42b8 100644 (file)
@@ -56,5 +56,6 @@ class TestRobotFiles(unittest.TestCase):
         self.robotfile.write_pdata()
         self.robotfile.write_debug_pdata()
 
+
 if __name__ == '__main__':
     unittest.main()
index 3e508be0accb227d49718293e9b785b29af1063c..6615eb0a301abe7c6c11e9f3d6dc87c51816e2b3 100644 (file)
@@ -12,7 +12,7 @@ DSM_ROOT2 = 4
 """
 
 DSMAP = {
-    'acls': ['acls.json', 'config','ietf-access-control-list:access-lists',
+    'acls': ['acls.json', 'config', 'ietf-access-control-list:access-lists',
              'access-lists', 'acls'],
     'bindings': ['service-bindings.json', 'config', 'interface-service-bindings:service-bindings',
                  'service-bindings', 'services-info'],
index e1a0cda52232974cfb6659058b52518ff1ddfb4f..f1772a7855cc638619b9c2428b0a4a116a73e81a 100644 (file)
@@ -1,6 +1,6 @@
 VIF_TYPE_TO_PREFIX = {
-    'ovs':'tap',
-    'vhost_user':'vhu'
+    'ovs': 'tap',
+    'vhost_user': 'vhu'
 }
 
 VIF_TYPE = 'neutron-binding:vif-type'
index ce9fadeee6f658744d3dd357d1dbe895f2e7aac4..edb4f8c5b59f38db08dd869eb35e496504d7b7b4 100644 (file)
@@ -40,8 +40,8 @@ class Model:
 
     def get_list(self, data, container_key, lst):
         c = data and data.get(container_key, {})
-        l = c.get(lst, [])
-        return l
+        lst = c.get(lst, [])
+        return lst
 
     def get_clist(self):
         return self.get_list(self.data, self.container, self.clist)
index 57d5bf038265a57798e892462c98ba2138cea380..385071d44814ad964bd9eee995786a5c690767a4 100644 (file)
@@ -67,7 +67,8 @@ class Models:
         self.id_manager_id_pools = id_manager.id_pools(Model.CONFIG, args)
         self.ietf_interfaces_interfaces = ietf_interfaces.interfaces(Model.CONFIG, args)
         self.ietf_interfaces_interfaces_state = ietf_interfaces.interfaces_state(Model.OPERATIONAL, args)
-        self.interface_service_bindings_service_bindings = interface_service_bindings.service_bindings(Model.CONFIG, args)
+        self.interface_service_bindings_service_bindings = \
+            interface_service_bindings.service_bindings(Model.CONFIG, args)
         self.itm_state_tunnels_state = itm_state.tunnels_state(Model.OPERATIONAL, args)
         self.l3vpn_vpn_interfaces = l3vpn.vpn_instance_to_vpn_id(Model.CONFIG, args)
         self.mip_mac = mip.mac(Model.CONFIG, args)
@@ -75,7 +76,8 @@ class Models:
         self.network_topology_network_topology_operational = network_topology.network_topology(Model.CONFIG, args)
         self.neutron_neutron = neutron.neutron(Model.CONFIG, args)
         self.odl_fib_fib_entries = odl_fib.fib_entries(Model.CONFIG, args)
-        self.odl_interface_meta_if_index_interface_map = odl_interface_meta.if_indexes_interface_map(Model.OPERATIONAL, args)
+        self.odl_interface_meta_if_index_interface_map = \
+            odl_interface_meta.if_indexes_interface_map(Model.OPERATIONAL, args)
         self.odl_inventory_nodes_config = opendaylight_inventory.nodes(Model.CONFIG, args)
         self.odl_inventory_nodes_operational = opendaylight_inventory.nodes(Model.OPERATIONAL, args)
         self.odl_l3vpn_vpn_instance_to_vpn_id = odl_l3vpn.vpn_instance_to_vpn_id(Model.CONFIG, args)
@@ -94,7 +96,8 @@ class Models:
         if "ietf_interfaces_interfaces_state" in models:
             self.ietf_interfaces_interfaces_state = ietf_interfaces.interfaces_state(Model.OPERATIONAL, args)
         if "interface_service_bindings_service_bindings" in models:
-            self.interface_service_bindings_service_bindings = interface_service_bindings.service_bindings(Model.CONFIG, args)
+            self.interface_service_bindings_service_bindings = \
+                interface_service_bindings.service_bindings(Model.CONFIG, args)
         if "itm_state_tunnels_state" in models:
             self.itm_state_tunnels_state = itm_state.tunnels_state(Model.OPERATIONAL, args)
         if "l3vpn_vpn_interfaces" in models:
@@ -112,7 +115,8 @@ class Models:
         if "odl_fib_fib_entries" in models:
             self.odl_fib_fib_entries = odl_fib.fib_entries(Model.CONFIG, args)
         if "odl_interface_meta_if_index_interface_map" in models:
-            self.odl_interface_meta_if_index_interface_map = odl_interface_meta.if_indexes_interface_map(Model.OPERATIONAL, args)
+            self.odl_interface_meta_if_index_interface_map = \
+                odl_interface_meta.if_indexes_interface_map(Model.OPERATIONAL, args)
         if "odl_inventory_nodes_config" in models:
             self.odl_inventory_nodes_config = opendaylight_inventory.nodes(Model.CONFIG, args)
         if "odl_inventory_nodes_operational" in models:
index d109eb0cdba168f5f269c3c095911a0baccd5e8a..0316242988c081b36dab00b7f964e9527bee5f02 100644 (file)
@@ -26,8 +26,8 @@ class Neutron(Model):
 
     def get_ccl(self, parent, child, item):
         c = self.data and self.data.get(parent, {})
-        l = self.get_list(c, child, item)
-        return l
+        lst = self.get_list(c, child, item)
+        return lst
 
     def get_ccl_by_key(self, parent, child, item, key="uuid"):
         d = {}
index 087957f9297487084033c70ceb26d95acea74113..2ccf750177c193584bc0a532b2b955cd349d73a2 100644 (file)
@@ -11,4 +11,4 @@ def if_indexes_interface_map(store, args):
 class IfIndexesInterfaceMap(Model):
     CONTAINER = "if-indexes-interface-map"
     CLIST = "if-index-interface"
-    CLIST_KEY= "if-index"
+    CLIST_KEY = "if-index"
index fb98d6ac59c4241ba46491d3d8ee81d6df9c143d..0b117d08add9bd75e7bf928a6e4f201cea22c38d 100644 (file)
@@ -35,4 +35,3 @@ class Nodes(Model):
             dpnid = self.get_dpn_from_ofnodeid(node['id'])
             nodes_dict[dpnid] = node.get('flow-node-inventory:description', '')
         return nodes_dict
-
index b6681f575544097f842b8fe2b6f6ce96327535d2..c2391aac985f545f9a91150d70947463518682ff 100644 (file)
@@ -23,5 +23,6 @@ class TestIetfInterfaces(unittest.TestCase):
         d = self.interfaces_state.get_clist_by_key()
         self.assertIsNotNone(d.get('tap67eb9b7f-db'))
 
+
 if __name__ == '__main__':
     unittest.main()
index a20dfd191394b742158fe78f44b590fc5859c65c..0e9d4fad16e29b33d392c64b817903a03509eacf 100644 (file)
@@ -19,8 +19,8 @@ class TestItmState(unittest.TestCase):
         self.tunnels_state = tunnels_state(Model.OPERATIONAL, args)
 
     def test_read_file(self):
-        logger.debug("dpn-endpoints: %s",self.dpn_endpoints.data)
-        logger.debug("dpn-endpoints: \n%s",self.dpn_endpoints.pretty_format(self.dpn_endpoints.data))
+        logger.debug("dpn-endpoints: %s", self.dpn_endpoints.data)
+        logger.debug("dpn-endpoints: \n%s", self.dpn_endpoints.pretty_format(self.dpn_endpoints.data))
 
     def test_get_ip_address(self):
         dpn_ids = self.dpn_endpoints.get_dpn_ids()
@@ -57,5 +57,6 @@ class TestItmState(unittest.TestCase):
         d = self.tunnels_state.get_clist_by_key()
         self.assertIsNotNone(d and d['tun428ee8c4fe7'])
 
+
 if __name__ == '__main__':
     unittest.main()
index 6a24ccd305144cacaeb0e38c5e29ceb14f01c302..e5e1f3c7d9656634b71bbc36b559b5a979565253 100644 (file)
@@ -21,5 +21,6 @@ class TestNetworkTopology(unittest.TestCase):
         d = self.network_topology.get_nodes_by_tid_and_key()
         self.assertIsNotNone(d.get('ovsdb://uuid/8eabb815-5570-42fc-9635-89c880ebc4ac/bridge/br-int'))
 
+
 if __name__ == '__main__':
     unittest.main()
index 9869ab570d9ed708987662dbbc035e1742c827d9..77bdf9ff45e966bb0f5d891925474cbf4086ee98 100644 (file)
@@ -26,5 +26,6 @@ class TestNeutron(unittest.TestCase):
         d = self.neutron.get_trunks_by_key()
         self.assertIsNotNone(d.get('8e3c262e-7b45-4222-ac4e-528db75e5516'))
 
+
 if __name__ == '__main__':
     unittest.main()
index d94773457b435fee52aa371f4655f181deb64284..92ca380cae9e9df53837052a88ebc8bf46adb67b 100644 (file)
@@ -21,5 +21,6 @@ class TestOdlFib(unittest.TestCase):
         d = self.fib_entries.get_vrf_entries_by_key()
         self.assertIsNotNone(d.get(100011))
 
+
 if __name__ == '__main__':
     unittest.main()
index 7a49448abed5c086ded0d0ed19e5f935c12aa18e..f425a3f53983acd61791b0ea346ed6774637c28b 100644 (file)
@@ -25,5 +25,6 @@ class TestOpendaylightInventory(unittest.TestCase):
         d = self.nodes.get_dpn_host_mapping()
         self.assertIsNotNone(d.get('132319289050514'))
 
+
 if __name__ == '__main__':
     unittest.main()
index c775c6c86dc9ab0d2b593e83be6c2db10e26dc07..a40eee5fb699ee955411b41f056055375d5a472a 100644 (file)
@@ -16,5 +16,6 @@ class TestRequest(unittest.TestCase):
         data = request.read_file(self.filename)
         self.assertEquals(len(data), 1)
 
+
 if __name__ == '__main__':
     unittest.main()
index 6f38d7791c95d3ff82167259709e54e9897cc560..39b7cd013131e5a76d7620df5d52337d6ff49e21 100644 (file)
@@ -62,16 +62,16 @@ def analyze_interface(args):
         print "Tunnel: \n{}".format(utils.format_json(args, tunnel))
     if tunState:
         print "TunState: \n{}".format(utils.format_json(args, tunState))
-    if ifstate:
-        ncId = ifstate.get('lower-layer-if')[0]
-        nodeid = ncId[:ncId.rindex(':')]
-        # analyze_inventory(nodeid, True, ncId, ifname)
-        # analyze_inventory(nodeid, False, ncId, ifname)
+    if ifstate:
+        # ncid = ifstate.get('lower-layer-if')[0]
+        # nodeid = ncid[:ncid.rindex(':')]
+        # analyze_inventory(nodeid, True, ncid, ifname)
+        # analyze_inventory(nodeid, False, ncid, ifname)
 
 
 def analyze_trunks(args):
     ietf_interfaces_interfaces = ietf_interfaces.interfaces(Model.CONFIG, args)
-    ietf_interfaces_interfaces_state = ietf_interfaces.interfaces_state(Model.OPERATIONAL, args)
+    ietf_interfaces_interfaces_state = ietf_interfaces.interfaces_state(Model.OPERATIONAL, args)
     l3vpn_vpn_interfaces = l3vpn.vpn_instance_to_vpn_id(Model.CONFIG, args)
     neutron_neutron = neutron.neutron(Model.CONFIG, args)
 
@@ -79,7 +79,7 @@ def analyze_trunks(args):
     ntrunks = neutron_neutron.get_trunks_by_key()
     vpninterfaces = l3vpn_vpn_interfaces.get_clist_by_key()
     ifaces = ietf_interfaces_interfaces.get_clist_by_key()
-    ifstates = ietf_interfaces_interfaces_state.get_clist_by_key()
+    ifstates = ietf_interfaces_interfaces_state.get_clist_by_key()
     subport_dict = {}
     for v in ntrunks.itervalues():
         nport = nports.get(v.get('port-id'))
@@ -89,49 +89,49 @@ def analyze_trunks(args):
             snport = nports.get(sport_id)
             svpniface = vpninterfaces.get(sport_id)
             siface = ifaces.get(sport_id)
-            sifstate = ifstates.get(sport_id)
+            sifstate = ifstates.get(sport_id)
             subport['SubNeutronPort'] = 'Correct' if snport else 'Wrong'
             subport['SubVpnInterface'] = 'Correct' if svpniface else 'Wrong'
             subport['ofport'] = Model.get_ofport_from_ncid()
             if siface:
                 vlan_mode = siface.get('odl-interface:l2vlan-mode')
                 parent_iface_id = siface.get('odl-interface:parent-interface')
-                if vlan_mode !='trunk-member':
+                if vlan_mode != 'trunk-member':
                     subport['SubIface'] = 'WrongMode'
-                elif parent_iface_id !=v.get('port-id'):
+                elif parent_iface_id != v.get('port-id'):
                     subport['SubIface'] = 'WrongParent'
-                elif siface.get('odl-interface:vlan-id') !=subport.get('segmentation-id'):
+                elif siface.get('odl-interface:vlan-id') != subport.get('segmentation-id'):
                     subport['SubIface'] = 'WrongVlanId'
                 else:
                     subport['SubIface'] = 'Correct'
             else:
                 subport['SubIface'] = 'Wrong'
-            s_subport = 'SegId:{}, PortId:{}, SubNeutronPort:{}, SubIface:{}, SubVpnIface:{}'.format(
-                subport.get('segmentation-id'), subport.get('port-id'),
-                subport.get('SubNeutronPort'),
-                subport.get('SubIface'),
-                subport.get('SubVpnInterface'))
+                # s_subport = 'SegId:{}, PortId:{}, SubNeutronPort:{}, SubIface:{}, SubVpnIface:{}'.format(
+                #     subport.get('segmentation-id'), subport.get('port-id'),
+                #     subport.get('SubNeutronPort'),
+                #     subport.get('SubIface'),
+                #     subport.get('SubVpnInterface'))
             s_subports.append(subport)
             subport_dict[subport['port-id']] = subport
-        s_trunk = 'TrunkName:{}, TrunkId:{}, PortId:{}, NeutronPort:{}, SubPorts:{}'.format(
-            v.get('name'), v.get('uuid'), v.get('port-id'),
-            'Correct' if nport else 'Wrong', utils.format_json(args, s_subports))
-        print s_trunk
-    print '\n------------------------------------'
-    print   'Analyzing Flow status for SubPorts'
-    print   '------------------------------------'
-    for flow in utils.sort(flows.get_all_flows(['ifm'], ['vlanid']), 'ifname'):
-        subport = subport_dict.get(flow.get('ifname')) or None
-        vlanid = subport.get('segmentation-id') if subport else None
-        ofport = subport.get('ofport') if subport else None
-        flow_status = 'Okay'
-        if flow.get('ofport') and flow.get('ofport') != ofport:
-            flow_status = 'OfPort mismatch for SubPort:{} and Flow:{}'.format(subport, flow.get('flow'))
-        if flow.get('vlanid') and flow.get('vlanid') != vlanid:
-            flow_status = 'VlanId mismatch for SubPort:{} and Flow:{}'.format(subport, flow.get('flow'))
-        if subport:
-            print 'SubPort:{},Table:{},FlowStatus:{}'.format(
-                subport.get('port-id'), flow.get('table'), flow_status)
+            s_trunk = 'TrunkName:{}, TrunkId:{}, PortId:{}, NeutronPort:{}, SubPorts:{}'.format(
+                v.get('name'), v.get('uuid'), v.get('port-id'),
+                'Correct' if nport else 'Wrong', utils.format_json(args, s_subports))
+            print s_trunk
+            print '\n------------------------------------'
+            print 'Analyzing Flow status for SubPorts'
+            print '------------------------------------'
+            for flow in utils.sort(flows.get_all_flows(['ifm'], ['vlanid']), 'ifname'):
+                subport = subport_dict.get(flow.get('ifname')) or None
+                vlanid = subport.get('segmentation-id') if subport else None
+                ofport = subport.get('ofport') if subport else None
+                flow_status = 'Okay'
+                if flow.get('ofport') and flow.get('ofport') != ofport:
+                    flow_status = 'OfPort mismatch for SubPort:{} and Flow:{}'.format(subport, flow.get('flow'))
+                if flow.get('vlanid') and flow.get('vlanid') != vlanid:
+                    flow_status = 'VlanId mismatch for SubPort:{} and Flow:{}'.format(subport, flow.get('flow'))
+                if subport:
+                    print 'SubPort:{},Table:{},FlowStatus:{}'.format(
+                        subport.get('port-id'), flow.get('table'), flow_status)
 
 
 def analyze_neutron_port(port, iface, ifstate):
@@ -162,7 +162,7 @@ def analyze_inventory(args):
         print "node: {} was not found".format("openflow:" + args.nodeid)
         return
     tables = node.get(Nodes.NODE_TABLE)
-    groups = node.get(Nodes.NODE_GROUP)
+    groups = node.get(Nodes.NODE_GROUP)
     flow_list = []
     print "Flows:"
     for table in tables:
index 0eb2f79e9f2874c7627950c843f941b4d0169b26..f05eade4945bf5b327588724a0aac6d65a6659ab 100644 (file)
@@ -8,5 +8,3 @@ def get_models(args, models):
     global gmodels
     gmodels = Models()
     gmodels.get_models(args, models)
-
-
index e9ff1870188124ac525fc3805f1f3104ce89981e..8431f986747ceaee8c9bb578a3d40fe9fc7f5efa 100644 (file)
@@ -73,15 +73,15 @@ VRFID_MASK = 0x0000000000fffffe
 
 
 def parse_flow(flow):
-    #parse flow fields
-    #hex(int(mask, 16) & int(data, 16))
+    # parse flow fields
+    # hex(int(mask, 16) & int(data, 16))
     if flow['cookie']:
         utils.to_hex(flow, 'cookie')
     # parse instructions
     for instruction in flow['instructions'].get('instruction', []):
         if 'write-metadata' in instruction:
-            utils.to_hex(instruction['write-metadata'],'metadata')
-            utils.to_hex(instruction['write-metadata'],'metadata-mask')
+            utils.to_hex(instruction['write-metadata'], 'metadata')
+            utils.to_hex(instruction['write-metadata'], 'metadata-mask')
         if 'apply-actions' in instruction:
             for action in instruction['apply-actions'].get('action', []):
                 if 'openflowplugin-extension-nicira-action:nx-reg-load' in action:
@@ -89,8 +89,8 @@ def parse_flow(flow):
     # parse matches
     if 'metadata' in flow['match']:
         metadata = flow['match']['metadata']
-        utils.to_hex(metadata,'metadata')
-        utils.to_hex(metadata,'metadata-mask')
+        utils.to_hex(metadata, 'metadata')
+        utils.to_hex(metadata, 'metadata-mask')
 
     for ofex in flow['match'].get('openflowplugin-extension-general:extension-list', []):
         if ofex['extension-key'] == 'openflowplugin-extension-nicira-match:nxm-nx-reg6-key':
index c5427674e0e5d94932dddccb816a8fc707b18e45..4c488d9e52f8c902645174b84ac3ce245912e0e9 100644 (file)
@@ -1,12 +1,6 @@
 import collections
 import logging
-from odltools.mdsal.models import ietf_interfaces
-from odltools.mdsal.models import odl_fib
-from odltools.mdsal.models import odl_interface_meta
-from odltools.mdsal.models import odl_l3vpn
-from odltools.mdsal.models import opendaylight_inventory
 from odltools.mdsal.models.model import Model
-from odltools.mdsal.models.models import Models
 from odltools.mdsal.models.opendaylight_inventory import Nodes
 from odltools.netvirt import utils
 import config
@@ -44,7 +38,7 @@ def get_all_flows(args, modules=None, filter_by=None):
     ifaces = {}
     ifstates = {}
     ifindexes = {}
-    bindings = {}
+    bindings = {}
     einsts = {}
     eifaces = {}
     fibentries = {}
@@ -211,7 +205,7 @@ def stale_acl_flow(flow, flow_info, ifaces, ifindexes, einsts, eifaces):
     if not is_elantag_valid(eltag, eifaces, einsts, iface):
         flow_info['reason'] = 'Lport Elantag mismatch'
         return create_flow_dict(flow_info, flow)
-    #return create_flow_dict(flow_info, flow)
+    # return create_flow_dict(flow_info, flow)
     return None
 
 
@@ -231,11 +225,11 @@ def is_correct_elan_flow(flow_info, mmac, einsts, flow_host):
             # print einst_tag, flow_etag, mac_host
             if flow_etag and einst_tag and flow_etag == einst_tag:
                 if mac_host.startswith(flow_host):
-                    act_resubmit = get_act_resubmit(flow)
-                    if (act_resubmit and act_resubmit.get('table') == 220):
+                    act_resubmit = flow_parser.get_act_resubmit(flow)
+                    if act_resubmit and act_resubmit.get('table') == 220:
                         return 'Correct'
                 else:
-                    act_tunnel = get_act_set_tunnel(flow)
+                    act_tunnel = flow_parser.get_act_set_tunnel(flow)
                     if act_tunnel:
                         return 'Correct'
                 return 'Wrong'
@@ -266,7 +260,7 @@ def get_stale_flows(modules=['ifm']):
     ifaces = {}
     ifstates = {}
     ifindexes = {}
-    bindings = {}
+    bindings = {}
     einsts = {}
     eifaces = {}
     fibentries = {}
@@ -274,7 +268,7 @@ def get_stale_flows(modules=['ifm']):
     vpninterfaces = {}
     groups = {}
     table_list = list(set([table for module in modules for table in TABLE_MAP[module]]))
-    ##table_list = [214, 244]
+    # table_list = [214, 244]
 
     of_nodes = config.gmodels.odl_inventory_nodes_config.get_clist_by_key()
     if 'ifm' in modules:
@@ -307,7 +301,8 @@ def get_stale_flows(modules=['ifm']):
                 if 'ifm' in modules and table['id'] in TABLE_MAP['ifm']:
                     flow_dict = stale_ifm_flow(flow, flow_info, ifaces, ifstates)
                 if 'l3vpn' in modules and table['id'] in TABLE_MAP['l3vpn']:
-                    flow_dict = stale_l3vpn_flow(flow, flow_info, groups, ifaces, ifindexes, vpnids, vpninterfaces, fibentries)
+                    flow_dict = stale_l3vpn_flow(flow, flow_info, groups, ifaces, ifindexes, vpnids,
+                                                 vpninterfaces, fibentries)
                 if 'elan' in modules and table['id'] in TABLE_MAP['elan']:
                     flow_dict = stale_elan_flow(flow, flow_info, ifaces, ifindexes, einsts, eifaces)
                 if 'acl' in modules and table['id'] in TABLE_MAP['acl']:
@@ -356,9 +351,9 @@ def show_stale_flows(args, sort_by='table'):
             flow['table'], host, flow['id'],
             utils.show_optionals(flow))
         print result
-        ##path = get_data_path('flows', flow)
-        #print('http://192.168.2.32:8383/restconf/config/{}'.format(path))
-        #print 'Flow:', utils.format_json(args, flow_parser.parse_flow(flow['flow']))
+        # path = get_data_path('flows', flow)
+        # print('http://192.168.2.32:8383/restconf/config/{}'.format(path))
+        # print 'Flow:', utils.format_json(args, flow_parser.parse_flow(flow['flow']))
 
 
 def show_elan_flows(args):
@@ -375,9 +370,9 @@ def show_elan_flows(args):
         host = compute_map.get(flow.get('dpnid'), flow.get('dpnid'))
         result = 'MacHost:{}{}, Table:{}, FlowId:{}, {}, Flow:{}'.format(
             flow['id'][-17:], host, flow['table'], flow['id'], utils.show_optionals(flow),
-           utils.format_json(args, flow_parser.parse_flow(flow['flow'])))
+            utils.format_json(args, flow_parser.parse_flow(flow['flow'])))
         print result
-        #print 'Flow:', utils.format_json(args, flow_parser.parse_flow(flow['flow']))
+        # print 'Flow:', utils.format_json(args, flow_parser.parse_flow(flow['flow']))
 
 
 def get_matchstr(args, flow):
@@ -455,11 +450,10 @@ def show_learned_mac_flows(args):
         flow = flow_info.get('flow')
         dpnid = flow_info.get('dpnid')
         host = compute_map.get(dpnid, dpnid)
-        if ((flow_info.get('table') == 50 and
-                     flow.get('idle-timeout') == 300 and not
-        nports.get(flow_info.get('src-mac'))) or
-                (flow_info.get('table') == 51 and
-                     not nports.get(flow_info.get('dst-mac')))):
+        if ((flow_info.get('table') == 50 and flow.get('idle-timeout') == 300
+             and not nports.get(flow_info.get('src-mac')))
+            or (flow_info.get('table') == 51 and not nports.get(flow_info.get('dst-mac')))):  # NOQA
+
             result = 'Table:{}, Host:{}, FlowId:{}{}'.format(
                 flow_info.get('table'), host, flow.get('id'),
                 utils.show_optionals(flow_info))
@@ -482,7 +476,6 @@ def dump_flows(args, modules=None, sort_by='table', filter_by=None):
     compute_map = config.gmodels.odl_inventory_nodes_operational.get_dpn_host_mapping()
     # neutron_neutron = neutron.neutron(Model.CONFIG, args)
     nports = config.gmodels.neutron_neutron.get_ports_by_key()
-    logger.info("dump_flows: %s", args)
     for flow in utils.sort(get_all_flows(modules, filter_by), sort_by):
         host = compute_map.get(flow.get('dpnid'), flow.get('dpnid'))
         ip_list = get_ips_for_iface(nports, flow.get('ifname'))
@@ -536,15 +529,14 @@ def stale_ifm_flow(flow, flow_info, ifaces, ifstates):
         if dpn and dpn != flow_info['dpnid']:
             flow_info['reason'] = 'DpnId mismatch for flow and Interface'
             return create_flow_dict(flow_info, flow)
-        if (flow_info.get('lport') and ifstate.get('if-index')
-            and flow_info['lport'] != ifstate['if-index']):
+        if flow_info.get('lport') and ifstate.get('if-index') and flow_info['lport'] != ifstate['if-index']:
             flow_info['reason'] = 'Lport and IfIndex mismatch'
             return create_flow_dict(flow_info, flow)
         if (flow_info.get('ofport') and ifstate.get('lower-layer-if')
-            and flow_info['ofport'] != Model.get_ofport_from_ncid(ifstate.get('lower-layer-if')[0])):
+            and flow_info['ofport'] != Model.get_ofport_from_ncid(ifstate.get('lower-layer-if')[0])):  # NOQA
             flow_info['reason'] = 'OfPort mismatch'
         if (flow_info.get('vlanid') and iface.get('odl-interface:vlan-id')
-            and flow_info['vlanid'] != iface.get('odl-interface:vlan-id')):
+            and flow_info['vlanid'] != iface.get('odl-interface:vlan-id')):  # NOQA
             flow_info['reason'] = 'VlanId mismatch'
     return None
     # return create_flow_dict(flow_info, flow)
index 5cb8bda88e8e6d9116bd14d683eacc9f5e71c078..11bb64733dd61a858370d11a625c5b1938793be8 100644 (file)
@@ -41,10 +41,10 @@ class Flows:
             logger.error("init: data is not a supported type")
             return
         self.start = 0
-        logger.info("init: Copied %d lines", len(self.data))
+        logger.debug("init: Copied %d lines", len(self.data))
         self.process_data()
         self.format_data()
-        logger.info("init: data has been processed and formatted")
+        logger.debug("init: data has been processed and formatted")
 
     def pretty_print(self, data):
         return "{}".format(pformat(data))
@@ -82,9 +82,7 @@ class Flows:
         # Create a dictionary of all tokens in that flow.
         # Append this flow dictionary to a list of flows.
         for line in self.data[self.start:end]:
-            pline = {}
-            pline[Flows.IDLE_TIMEOUT] = "---"
-            pline[Flows.SEND_FLOW_REMOVED] = "-"
+            pline = {Flows.IDLE_TIMEOUT: "---", Flows.SEND_FLOW_REMOVED: "-"}
             tokens = line.split(" ")
             for token in tokens:
                 # most lines are key=value so look for that pattern
@@ -106,8 +104,8 @@ class Flows:
             self.pdata.append(pline)
             logger.debug("process_data: Processed line %d into: \n%s",
                          self.start + len(self.pdata), pformat(pline))
-        logger.info("process_data: Processed %d lines, skipped %d", len(self.pdata),
-                    self.start + len(self.data) - end)
+        logger.debug("process_data: Processed %d lines, skipped %d", len(self.pdata),
+                     self.start + len(self.data) - end)
 
         return self.pdata
 
@@ -153,16 +151,6 @@ class Flows:
         for i, line in enumerate(self.pdata):
             logger.debug("format_data: processing line %d: %s", self.start + i + 1, line)
 
-            #if Flows.SEND_FLOW_REMOVED in line:
-            #    send_flow_rem = " {} ".format(line[Flows.SEND_FLOW_REMOVED])
-            #else:
-            #    send_flow_rem = ""
-
-            #if Flows.IDLE_TIMEOUT in line:
-            #    idle_timeo = " {}={}".format(Flows.IDLE_TIMEOUT, line[Flows.IDLE_TIMEOUT])
-            #else:
-            #    idle_timeo = ""
-
             if Flows.ACTIONS in line:
                 nactions = re_gt.sub(self.re_table, line[Flows.ACTIONS])
             else:
index 869a3044091a65d00acf01adabd37fc8533c400a..61467f0563ce25e0f088e5d2392eedfe1af44c4a 100644 (file)
@@ -91,7 +91,7 @@ def show_stale_bindings(args):
     stale_ids, bindings = flows.get_stale_bindings(args)
     for iface_id in sorted(stale_ids):
         for binding in bindings[iface_id].itervalues():
-            #if binding.get('bound-services'):
+            # if binding.get('bound-services'):
             path = get_data_path('bindings', binding)
             print utils.format_json(bindings[iface_id])
             print('http://{}:{}/restconf/config/{}'.format(args.ip, args.port, path))
index a50eda135aec5d1ff2db358b3f9ca82f744d054d..7e7682ce7e13fd23db8e279c9847c5ffecaeb490 100644 (file)
@@ -20,5 +20,6 @@ class TestAnalyze(unittest.TestCase):
     def test_analyze_interface(self):
         analyze.analyze_interface(self.args)
 
+
 if __name__ == '__main__':
     unittest.main()
index 441dddfa1ebe4ed4fe6e7b8087df2eed70b9943f..b5cd38f9711ac6f6b45e09ca8c46e2dbaadb4208 100644 (file)
@@ -17,15 +17,18 @@ class TestFlows(unittest.TestCase):
         self.flows = ovs_flows.Flows(self.data)
 
     def test_process_data(self):
-        print "pretty_print:\n{}".format(self.flows.pretty_print(self.flows.pdata))
+        # print "pretty_print:\n{}".format(self.flows.pretty_print(self.flows.pdata))
+        self.assertIsNotNone(self.flows.data)
 
     def test_format_data(self):
-        print "pretty_print:\n{}".format(self.flows.pretty_print(self.flows.fdata))
+        # print "pretty_print:\n{}".format(self.flows.pretty_print(self.flows.fdata))
+        self.assertIsNotNone(self.flows.fdata)
 
     def test_write_file(self):
         filename = "/tmp/flow_dumps.3.out.txt"
         self.flows.write_fdata(filename)
         self.assertTrue(os.path.exists(filename))
 
+
 if __name__ == '__main__':
     unittest.main()
index a00dad3a647e9ae8477fdc0c5fb114ce402dd632..ed35a6aa90cb7e88989f071463d38882e6307e78 100644 (file)
@@ -24,5 +24,6 @@ class TestRequest(unittest.TestCase):
         request.write_file(self.outpath, data)
         self.assertTrue(os.path.exists(self.outpath))
 
+
 if __name__ == '__main__':
     unittest.main()
index a035fafc9877967ef71ab425e3781f9588402cbf..5ca70dc4655b88e74d2ab4ce3030dd2fc448e07d 100644 (file)
@@ -30,5 +30,6 @@ class TestShow(unittest.TestCase):
     def test_show_tables(self):
         show.show_tables(self.args)
 
+
 if __name__ == '__main__':
     unittest.main()
index 72c51b0f140429f8e387135f3897005e4985d012..188e23f794ab39eda00bbe965dbf4925ec35e62b 100644 (file)
@@ -12,5 +12,6 @@ class TestTables(unittest.TestCase):
     def test_get_table_name(self):
         self.assertEqual(tables.get_table_name(17), "DISPATCHER")
 
+
 if __name__ == '__main__':
     unittest.main()
index b029547e7540b22e539288ba7715b888ab4d03c5..03696b5003b4bf088fc4735aa965fbcf9381b0d2 100644 (file)
@@ -32,5 +32,6 @@ class TestOdltools(unittest.TestCase):
         args = parser.parse_args(['csit', self.DATAPATH, self.OUTPATH, '-g', '-d'])
         robotfiles.run(args)
 
+
 if __name__ == '__main__':
     unittest.main()
index 369b7985c45929dedbaf4b026730681dbbf7ee87..450926e09ec24cfb8df3368336273595356ddc08 100644 (file)
@@ -27,6 +27,7 @@ class CleanCommand(Command):
     def run(self):
         os.system('rm -vrf ./build ./dist ./*.pyc ./*.tgz ./*.egg-info')
 
+
 setup(
     name='odltools',
     version=__version__,
index a3f692a9f94e9bd3255ae1b832e24682e6f1ee01..b4cab633236250638afeed7192b5e793ba4762a5 100644 (file)
@@ -1,5 +1,5 @@
 [tox]
-envlist = py27
+envlist = py27, flake8
 
 [testenv]
 deps = discover
@@ -7,5 +7,7 @@ commands = python -m unittest discover -v
 
 [testenv:flake8]
 deps = flake8
-basepython = python2.7
-commands = flake8 .
\ No newline at end of file
+commands = flake8
+
+[flake8]
+max-line-length = 119