From 3e3f928d19e60c049033646fdf23919f81d91ce4 Mon Sep 17 00:00:00 2001 From: waleed mousa Date: Mon, 4 Feb 2019 04:11:42 -0500 Subject: [PATCH] Allow adding sriov_pf over ovs_bridge, linux_bond and ovs_bond Change-Id: I55149d4a1a0fa36badd7480f521d73fbc116b1a5 Related-Bug: #1814510 --- os_net_config/cli.py | 14 ++++++++++++++ os_net_config/schema.yaml | 3 +++ 2 files changed, 17 insertions(+) diff --git a/os_net_config/cli.py b/os_net_config/cli.py index ef047fae..7eda5997 100644 --- a/os_net_config/cli.py +++ b/os_net_config/cli.py @@ -133,6 +133,16 @@ def configure_logger(verbose=False, debug=False): level=log_level) +def check_configure_sriov(obj): + configure_sriov = False + for member in obj.members: + if isinstance(member, objects.SriovPF): + configure_sriov = True + elif hasattr(member, "members") and member.members is not None: + configure_sriov = check_configure_sriov(member) + return configure_sriov + + def main(argv=sys.argv): opts = parse_opts(argv) configure_logger(opts.verbose, opts.debug) @@ -263,6 +273,10 @@ def main(argv=sys.argv): if isinstance(obj, objects.SriovPF): configure_sriov = True provider.add_object(obj) + elif hasattr(obj, 'members') and obj.members is not None: + if check_configure_sriov(obj): + configure_sriov = True + provider.add_object(obj) if configure_sriov: # Apply the ifcfgs for PFs now, so that NM_CONTROLLED=no is applied diff --git a/os_net_config/schema.yaml b/os_net_config/schema.yaml index 285c3fc7..8bae8cab 100644 --- a/os_net_config/schema.yaml +++ b/os_net_config/schema.yaml @@ -475,6 +475,7 @@ definitions: - $ref: "#/definitions/ovs_tunnel" - $ref: "#/definitions/ovs_patch_port" - $ref: "#/definitions/sriov_vf" + - $ref: "#/definitions/sriov_pf" ovs_options: $ref: "#/definitions/ovs_options_string_or_param" ovs_extra: @@ -589,6 +590,7 @@ definitions: - $ref: "#/definitions/interface" - $ref: "#/definitions/sriov_vf" - $ref: "#/definitions/vlan" + - $ref: "#/definitions/sriov_pf" minItems: 1 ovs_options: $ref: "#/definitions/ovs_options_string_or_param" @@ -1110,6 +1112,7 @@ definitions: - $ref: "#/definitions/interface" - $ref: "#/definitions/vlan" - $ref: "#/definitions/sriov_vf" + - $ref: "#/definitions/sriov_pf" bonding_options: $ref: "#/definitions/bonding_options" # common options: