diff options
Diffstat (limited to 'sdnvpn/lib')
-rw-r--r-- | sdnvpn/lib/utils.py | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/sdnvpn/lib/utils.py b/sdnvpn/lib/utils.py index 371f3ed..54c9730 100644 --- a/sdnvpn/lib/utils.py +++ b/sdnvpn/lib/utils.py @@ -727,3 +727,20 @@ def get_nova_instances_quota(nova_client): except Exception as e: logger.error("Error in getting nova instances quota: %s" % e) raise + + +def get_ovs_groups(compute_node_list, ovs_br_list, of_protocol="OpenFlow13"): + """ + Gets, as input, a list of compute nodes and a list of OVS bridges + and returns the command console output, as a list of lines, that + contains all the OVS groups from all bridges and nodes in lists. + """ + cmd_out_lines = [] + for compute_node in compute_node_list: + for ovs_br in ovs_br_list: + if ovs_br in compute_node.run_cmd("sudo ovs-vsctl show"): + ovs_groups_cmd = ("sudo ovs-ofctl dump-groups {} -O {} | " + "grep group".format(ovs_br, of_protocol)) + cmd_out_lines += (compute_node.run_cmd(ovs_groups_cmd).strip(). + split("\n")) + return cmd_out_lines |