Auto-generated patch by python-black
[integration/test.git] / tools / odl-mdsal-clustering-tests / clustering-performance-test / flow_stats_stability_monitor.py
index 9dacaec456aca698fe1f516717bfd393ca8a6159..a43cff48a118af760c930ba1c45b6d187b4fc700 100755 (executable)
@@ -51,71 +51,145 @@ if __name__ == "__main__":
     #    for a specified period of time.
     ############################################################################
 
-    parser = argparse.ArgumentParser(description='Flow programming performance test: First adds and then deletes flows '
-                                                 'into the config tree, as specified by optional parameters.')
-
-    parser.add_argument('--host', default='127.0.0.1',
-                        help='Host where odl controller is running (default is 127.0.0.1)')
-    parser.add_argument('--port', default='8181',
-                        help='Port on which odl\'s RESTCONF is listening (default is 8181)')
-    parser.add_argument('--cycles', type=int, default=1,
-                        help='Number of flow add/delete cycles; default 1. Both Flow Adds and Flow Deletes are '
-                             'performed in cycles. <THREADS> worker threads are started in each cycle and the cycle '
-                             'ends when all threads finish. Another cycle is started when the previous cycle finished.')
-    parser.add_argument('--threads', type=int, default=1,
-                        help='Number of request worker threads to start in each cycle; default=1. '
-                             'Each thread will add/delete <FLOWS> flows.')
-    parser.add_argument('--flows', type=int, default=10,
-                        help='Number of flows that will be added/deleted by each worker thread in each cycle; '
-                             'default 10')
-    parser.add_argument('--fpr', type=int, default=1,
-                        help='Flows-per-Request - number of flows (batch size) sent in each HTTP request; '
-                             'default 1')
-    parser.add_argument('--delay', type=int, default=2,
-                        help='Time (seconds) to between inventory polls when waiting for stats to catch up; default=1')
-    parser.add_argument('--timeout', type=int, default=100,
-                        help='The maximum time (seconds) to wait between the add and delete cycles; default=100')
-    parser.add_argument('--delete', dest='delete', action='store_true', default=True,
-                        help='Delete all added flows one by one, benchmark delete '
-                             'performance.')
-    parser.add_argument('--bulk-delete', dest='bulk_delete', action='store_true', default=False,
-                        help='Delete all flows in bulk; default=False')
-    parser.add_argument('--auth', dest='auth', action='store_true',
-                        help="Use authenticated access to REST (username: 'admin', password: 'admin'); default=False")
-    parser.add_argument('--startflow', type=int, default=0,
-                        help='The starting Flow ID; default=0')
-    parser.add_argument('--file', default='',
-                        help='File from which to read the JSON flow template; default: no file, use a built in '
-                             'template.')
-    parser.add_argument('--config_monitor', type=int, default=60,
-                        help='Time to monotir inventory after flows are configured in seconds; default=60')
-    parser.add_argument('--deconfig_monitor', type=int, default=60,
-                        help='Time to monitor inventory after flows are de configured in seconds; default=60')
-    parser.add_argument('--monitor_period', type=int, default=10,
-                        help='Monitor period of triggering inventory crawler in seconds; default=10')
-    parser.add_argument('--monitor_outfile', default=None, help='Output file(if specified)')
+    parser = argparse.ArgumentParser(
+        description="Flow programming performance test: First adds and then deletes flows "
+        "into the config tree, as specified by optional parameters."
+    )
+
+    parser.add_argument(
+        "--host",
+        default="127.0.0.1",
+        help="Host where odl controller is running (default is 127.0.0.1)",
+    )
+    parser.add_argument(
+        "--port",
+        default="8181",
+        help="Port on which odl's RESTCONF is listening (default is 8181)",
+    )
+    parser.add_argument(
+        "--cycles",
+        type=int,
+        default=1,
+        help="Number of flow add/delete cycles; default 1. Both Flow Adds and Flow Deletes are "
+        "performed in cycles. <THREADS> worker threads are started in each cycle and the cycle "
+        "ends when all threads finish. Another cycle is started when the previous cycle finished.",
+    )
+    parser.add_argument(
+        "--threads",
+        type=int,
+        default=1,
+        help="Number of request worker threads to start in each cycle; default=1. "
+        "Each thread will add/delete <FLOWS> flows.",
+    )
+    parser.add_argument(
+        "--flows",
+        type=int,
+        default=10,
+        help="Number of flows that will be added/deleted by each worker thread in each cycle; "
+        "default 10",
+    )
+    parser.add_argument(
+        "--fpr",
+        type=int,
+        default=1,
+        help="Flows-per-Request - number of flows (batch size) sent in each HTTP request; "
+        "default 1",
+    )
+    parser.add_argument(
+        "--delay",
+        type=int,
+        default=2,
+        help="Time (seconds) to between inventory polls when waiting for stats to catch up; default=1",
+    )
+    parser.add_argument(
+        "--timeout",
+        type=int,
+        default=100,
+        help="The maximum time (seconds) to wait between the add and delete cycles; default=100",
+    )
+    parser.add_argument(
+        "--delete",
+        dest="delete",
+        action="store_true",
+        default=True,
+        help="Delete all added flows one by one, benchmark delete " "performance.",
+    )
+    parser.add_argument(
+        "--bulk-delete",
+        dest="bulk_delete",
+        action="store_true",
+        default=False,
+        help="Delete all flows in bulk; default=False",
+    )
+    parser.add_argument(
+        "--auth",
+        dest="auth",
+        action="store_true",
+        help="Use authenticated access to REST (username: 'admin', password: 'admin'); default=False",
+    )
+    parser.add_argument(
+        "--startflow", type=int, default=0, help="The starting Flow ID; default=0"
+    )
+    parser.add_argument(
+        "--file",
+        default="",
+        help="File from which to read the JSON flow template; default: no file, use a built in "
+        "template.",
+    )
+    parser.add_argument(
+        "--config_monitor",
+        type=int,
+        default=60,
+        help="Time to monotir inventory after flows are configured in seconds; default=60",
+    )
+    parser.add_argument(
+        "--deconfig_monitor",
+        type=int,
+        default=60,
+        help="Time to monitor inventory after flows are de configured in seconds; default=60",
+    )
+    parser.add_argument(
+        "--monitor_period",
+        type=int,
+        default=10,
+        help="Monitor period of triggering inventory crawler in seconds; default=10",
+    )
+    parser.add_argument(
+        "--monitor_outfile", default=None, help="Output file(if specified)"
+    )
 
     in_args = parser.parse_args()
 
     # Initialize
-    if in_args.file != '':
+    if in_args.file != "":
         flow_template = get_json_from_file(in_args.file)
     else:
         flow_template = None
 
-    ic = InventoryCrawler(in_args.host, in_args.port, 0, 'operational', in_args.auth, False)
-
-    fct = FlowConfigBlaster(in_args.host, in_args.port, in_args.cycles, in_args.threads, in_args.fpr,
-                            16, in_args.flows, in_args.startflow, in_args.auth)
+    ic = InventoryCrawler(
+        in_args.host, in_args.port, 0, "operational", in_args.auth, False
+    )
+
+    fct = FlowConfigBlaster(
+        in_args.host,
+        in_args.port,
+        in_args.cycles,
+        in_args.threads,
+        in_args.fpr,
+        16,
+        in_args.flows,
+        in_args.startflow,
+        in_args.auth,
+    )
     # Get the baseline stats. Required in Step 3 to validate if the delete
     # function gets the controller back to the baseline
     ic.crawl_inventory()
     reported = ic.reported_flows
     found = ic.found_flows
 
-    print('Baseline:')
-    print('   Reported nodes: %d' % reported)
-    print('   Found nodes:    %d' % found)
+    print("Baseline:")
+    print("   Reported nodes: %d" % reported)
+    print("   Found nodes:    %d" % found)
 
     stats = []
     stats.append((time.time(), ic.nodes, ic.reported_flows, ic.found_flows))
@@ -123,8 +197,8 @@ if __name__ == "__main__":
     # each cycle and <FLOWS> flows are added from each thread
     fct.add_blaster()
 
-    print('\n*** Total flows added: %d' % fct.get_ok_flows())
-    print('    HTTP[OK] results:  %d\n' % fct.get_ok_rqsts())
+    print("\n*** Total flows added: %d" % fct.get_ok_flows())
+    print("    HTTP[OK] results:  %d\n" % fct.get_ok_rqsts())
 
     # monitor stats and save results in the list
     for stat_item in monitor_stats(ic, in_args.config_monitor, in_args.monitor_period):
@@ -135,25 +209,27 @@ if __name__ == "__main__":
     # in each cycle and <FLOWS> flows previously added in an add cycle are
     # deleted in each thread
     if in_args.bulk_delete:
-        print('\nDeleting all flows in bulk:')
+        print("\nDeleting all flows in bulk:")
         sts = cleanup_config_odl(in_args.host, in_args.port, in_args.auth)
         if sts != 200:
-            print('   Failed to delete flows, code %d' % sts)
+            print("   Failed to delete flows, code %d" % sts)
         else:
-            print('   All flows deleted.')
+            print("   All flows deleted.")
     else:
-        print('\nDeleting flows one by one\n   ',)
+        print("\nDeleting flows one by one\n   ")
         fct.delete_blaster()
-        print('\n*** Total flows deleted: %d' % fct.get_ok_flows())
-        print('    HTTP[OK] results:    %d\n' % fct.get_ok_rqsts())
+        print("\n*** Total flows deleted: %d" % fct.get_ok_flows())
+        print("    HTTP[OK] results:    %d\n" % fct.get_ok_rqsts())
 
     # monitor stats and append to the list
-    for stat_item in monitor_stats(ic, in_args.deconfig_monitor, in_args.monitor_period):
+    for stat_item in monitor_stats(
+        ic, in_args.deconfig_monitor, in_args.monitor_period
+    ):
         print(stat_item)
         stats.append(stat_item)
 
     # if requested, write collected data into the file
     if in_args.monitor_outfile is not None:
-        with open(in_args.monitor_outfile, 'wt') as fd:
+        with open(in_args.monitor_outfile, "wt") as fd:
             for e in stats:
-                fd.write('{0} {1} {2} {3}\n'.format(e[0], e[1], e[2], e[3]))
+                fd.write("{0} {1} {2} {3}\n".format(e[0], e[1], e[2], e[3]))