os-vif 3.2.0__tar.gz → 3.7.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- os_vif-3.7.1/.coveragerc +4 -0
- {os_vif-3.2.0 → os_vif-3.7.1}/AUTHORS +4 -0
- {os_vif-3.2.0 → os_vif-3.7.1}/ChangeLog +43 -0
- os_vif-3.7.1/PKG-INFO +74 -0
- {os_vif-3.2.0 → os_vif-3.7.1}/doc/requirements.txt +1 -1
- {os_vif-3.2.0 → os_vif-3.7.1}/os_vif/internal/ip/api.py +3 -0
- os_vif-3.7.1/os_vif.egg-info/PKG-INFO +74 -0
- {os_vif-3.2.0 → os_vif-3.7.1}/os_vif.egg-info/SOURCES.txt +4 -0
- {os_vif-3.2.0 → os_vif-3.7.1}/os_vif.egg-info/entry_points.txt +0 -1
- os_vif-3.7.1/os_vif.egg-info/pbr.json +1 -0
- {os_vif-3.2.0 → os_vif-3.7.1}/os_vif.egg-info/requires.txt +6 -7
- os_vif-3.7.1/releasenotes/notes/deprecate-windows-support-49f5ca1b1a1f4d66.yaml +4 -0
- os_vif-3.7.1/releasenotes/notes/fix-broken-dataplane-on-nova-restart-with-isolate_vif-71617a41741b33e8.yaml +7 -0
- os_vif-3.7.1/releasenotes/source/2023.2.rst +6 -0
- os_vif-3.7.1/releasenotes/source/2024.1.rst +6 -0
- {os_vif-3.2.0 → os_vif-3.7.1}/releasenotes/source/index.rst +2 -0
- {os_vif-3.2.0 → os_vif-3.7.1}/releasenotes/source/victoria.rst +1 -1
- {os_vif-3.2.0 → os_vif-3.7.1}/releasenotes/source/wallaby.rst +1 -1
- {os_vif-3.2.0 → os_vif-3.7.1}/releasenotes/source/xena.rst +1 -1
- {os_vif-3.2.0 → os_vif-3.7.1}/releasenotes/source/yoga.rst +1 -1
- {os_vif-3.2.0 → os_vif-3.7.1}/releasenotes/source/zed.rst +1 -1
- {os_vif-3.2.0 → os_vif-3.7.1}/requirements.txt +3 -7
- {os_vif-3.2.0 → os_vif-3.7.1}/setup.cfg +1 -0
- {os_vif-3.2.0 → os_vif-3.7.1}/setup.py +0 -8
- os_vif-3.7.1/test-requirements.txt +5 -0
- {os_vif-3.2.0 → os_vif-3.7.1}/tox.ini +2 -7
- {os_vif-3.2.0 → os_vif-3.7.1}/vif_plug_ovs/ovs.py +21 -7
- {os_vif-3.2.0 → os_vif-3.7.1}/vif_plug_ovs/ovsdb/ovsdb_lib.py +22 -1
- {os_vif-3.2.0 → os_vif-3.7.1}/vif_plug_ovs/tests/functional/test_plugin.py +97 -0
- {os_vif-3.2.0 → os_vif-3.7.1}/vif_plug_ovs/tests/unit/ovsdb/test_ovsdb_lib.py +12 -2
- {os_vif-3.2.0 → os_vif-3.7.1}/vif_plug_ovs/tests/unit/test_plugin.py +42 -2
- os_vif-3.2.0/.coveragerc +0 -4
- os_vif-3.2.0/PKG-INFO +0 -52
- os_vif-3.2.0/os_vif.egg-info/PKG-INFO +0 -52
- os_vif-3.2.0/os_vif.egg-info/pbr.json +0 -1
- os_vif-3.2.0/test-requirements.txt +0 -9
- {os_vif-3.2.0 → os_vif-3.7.1}/.mailmap +0 -0
- {os_vif-3.2.0 → os_vif-3.7.1}/.stestr.conf +0 -0
- {os_vif-3.2.0 → os_vif-3.7.1}/.zuul.yaml +0 -0
- {os_vif-3.2.0 → os_vif-3.7.1}/CONTRIBUTING.rst +0 -0
- {os_vif-3.2.0 → os_vif-3.7.1}/HACKING.rst +0 -0
- {os_vif-3.2.0 → os_vif-3.7.1}/LICENSE +0 -0
- {os_vif-3.2.0 → os_vif-3.7.1}/README.rst +0 -0
- {os_vif-3.2.0 → os_vif-3.7.1}/bindep.txt +0 -0
- {os_vif-3.2.0 → os_vif-3.7.1}/doc/source/conf.py +0 -0
- {os_vif-3.2.0 → os_vif-3.7.1}/doc/source/contributor/contributing.rst +0 -0
- {os_vif-3.2.0 → os_vif-3.7.1}/doc/source/index.rst +0 -0
- {os_vif-3.2.0 → os_vif-3.7.1}/doc/source/reference/glossary.rst +0 -0
- {os_vif-3.2.0 → os_vif-3.7.1}/doc/source/user/host-info.rst +0 -0
- {os_vif-3.2.0 → os_vif-3.7.1}/doc/source/user/plugins/linux-bridge.rst +0 -0
- {os_vif-3.2.0 → os_vif-3.7.1}/doc/source/user/plugins/noop.rst +0 -0
- {os_vif-3.2.0 → os_vif-3.7.1}/doc/source/user/plugins/ovs.rst +0 -0
- {os_vif-3.2.0 → os_vif-3.7.1}/doc/source/user/usage.rst +0 -0
- {os_vif-3.2.0 → os_vif-3.7.1}/doc/source/user/vif-types.rst +0 -0
- {os_vif-3.2.0 → os_vif-3.7.1}/os_vif/__init__.py +0 -0
- {os_vif-3.2.0 → os_vif-3.7.1}/os_vif/exception.py +0 -0
- {os_vif-3.2.0 → os_vif-3.7.1}/os_vif/i18n.py +0 -0
- {os_vif-3.2.0 → os_vif-3.7.1}/os_vif/internal/__init__.py +0 -0
- {os_vif-3.2.0 → os_vif-3.7.1}/os_vif/internal/ip/__init__.py +0 -0
- {os_vif-3.2.0 → os_vif-3.7.1}/os_vif/internal/ip/ip_command.py +0 -0
- {os_vif-3.2.0 → os_vif-3.7.1}/os_vif/internal/ip/linux/__init__.py +0 -0
- {os_vif-3.2.0 → os_vif-3.7.1}/os_vif/internal/ip/linux/impl_pyroute2.py +0 -0
- {os_vif-3.2.0 → os_vif-3.7.1}/os_vif/internal/ip/windows/__init__.py +0 -0
- {os_vif-3.2.0 → os_vif-3.7.1}/os_vif/internal/ip/windows/impl_netifaces.py +0 -0
- {os_vif-3.2.0 → os_vif-3.7.1}/os_vif/objects/__init__.py +0 -0
- {os_vif-3.2.0 → os_vif-3.7.1}/os_vif/objects/base.py +0 -0
- {os_vif-3.2.0 → os_vif-3.7.1}/os_vif/objects/fields.py +0 -0
- {os_vif-3.2.0 → os_vif-3.7.1}/os_vif/objects/fixed_ip.py +0 -0
- {os_vif-3.2.0 → os_vif-3.7.1}/os_vif/objects/host_info.py +0 -0
- {os_vif-3.2.0 → os_vif-3.7.1}/os_vif/objects/instance_info.py +0 -0
- {os_vif-3.2.0 → os_vif-3.7.1}/os_vif/objects/network.py +0 -0
- {os_vif-3.2.0 → os_vif-3.7.1}/os_vif/objects/route.py +0 -0
- {os_vif-3.2.0 → os_vif-3.7.1}/os_vif/objects/subnet.py +0 -0
- {os_vif-3.2.0 → os_vif-3.7.1}/os_vif/objects/vif.py +0 -0
- {os_vif-3.2.0 → os_vif-3.7.1}/os_vif/opts.py +0 -0
- {os_vif-3.2.0 → os_vif-3.7.1}/os_vif/plugin.py +0 -0
- {os_vif-3.2.0 → os_vif-3.7.1}/os_vif/tests/__init__.py +0 -0
- {os_vif-3.2.0 → os_vif-3.7.1}/os_vif/tests/functional/__init__.py +0 -0
- {os_vif-3.2.0 → os_vif-3.7.1}/os_vif/tests/functional/base.py +0 -0
- {os_vif-3.2.0 → os_vif-3.7.1}/os_vif/tests/functional/internal/__init__.py +0 -0
- {os_vif-3.2.0 → os_vif-3.7.1}/os_vif/tests/functional/internal/command/__init__.py +0 -0
- {os_vif-3.2.0 → os_vif-3.7.1}/os_vif/tests/functional/internal/command/ip/__init__.py +0 -0
- {os_vif-3.2.0 → os_vif-3.7.1}/os_vif/tests/functional/internal/command/ip/test_impl_pyroute2.py +0 -0
- {os_vif-3.2.0 → os_vif-3.7.1}/os_vif/tests/functional/privsep.py +0 -0
- {os_vif-3.2.0 → os_vif-3.7.1}/os_vif/tests/unit/__init__.py +0 -0
- {os_vif-3.2.0 → os_vif-3.7.1}/os_vif/tests/unit/base.py +0 -0
- {os_vif-3.2.0 → os_vif-3.7.1}/os_vif/tests/unit/internal/__init__.py +0 -0
- {os_vif-3.2.0 → os_vif-3.7.1}/os_vif/tests/unit/internal/ip/__init__.py +0 -0
- {os_vif-3.2.0 → os_vif-3.7.1}/os_vif/tests/unit/internal/ip/linux/__init__.py +0 -0
- {os_vif-3.2.0 → os_vif-3.7.1}/os_vif/tests/unit/internal/ip/linux/test_impl_pyroute2.py +0 -0
- {os_vif-3.2.0 → os_vif-3.7.1}/os_vif/tests/unit/internal/ip/test_api.py +0 -0
- {os_vif-3.2.0 → os_vif-3.7.1}/os_vif/tests/unit/internal/ip/windows/__init__.py +0 -0
- {os_vif-3.2.0 → os_vif-3.7.1}/os_vif/tests/unit/internal/ip/windows/test_impl_netifaces.py +0 -0
- {os_vif-3.2.0 → os_vif-3.7.1}/os_vif/tests/unit/test_base.py +0 -0
- {os_vif-3.2.0 → os_vif-3.7.1}/os_vif/tests/unit/test_exception.py +0 -0
- {os_vif-3.2.0 → os_vif-3.7.1}/os_vif/tests/unit/test_host_info.py +0 -0
- {os_vif-3.2.0 → os_vif-3.7.1}/os_vif/tests/unit/test_objects.py +0 -0
- {os_vif-3.2.0 → os_vif-3.7.1}/os_vif/tests/unit/test_os_vif.py +0 -0
- {os_vif-3.2.0 → os_vif-3.7.1}/os_vif/tests/unit/test_vif.py +0 -0
- {os_vif-3.2.0 → os_vif-3.7.1}/os_vif/utils.py +0 -0
- {os_vif-3.2.0 → os_vif-3.7.1}/os_vif/version.py +0 -0
- {os_vif-3.2.0 → os_vif-3.7.1}/os_vif.egg-info/dependency_links.txt +0 -0
- {os_vif-3.2.0 → os_vif-3.7.1}/os_vif.egg-info/not-zip-safe +0 -0
- {os_vif-3.2.0 → os_vif-3.7.1}/os_vif.egg-info/top_level.txt +0 -0
- {os_vif-3.2.0 → os_vif-3.7.1}/playbooks/openstack-tox-functional-ovs-with-sudo/Debian.yaml +0 -0
- {os_vif-3.2.0 → os_vif-3.7.1}/playbooks/openstack-tox-functional-ovs-with-sudo/Gentoo.yaml +0 -0
- {os_vif-3.2.0 → os_vif-3.7.1}/playbooks/openstack-tox-functional-ovs-with-sudo/RedHat.yaml +0 -0
- {os_vif-3.2.0 → os_vif-3.7.1}/playbooks/openstack-tox-functional-ovs-with-sudo/Suse.yaml +0 -0
- {os_vif-3.2.0 → os_vif-3.7.1}/playbooks/openstack-tox-functional-ovs-with-sudo/pre.yaml +0 -0
- {os_vif-3.2.0 → os_vif-3.7.1}/releasenotes/notes/OVSVif-hybrid-unplug-f37bf57bc8e913de.yaml +0 -0
- {os_vif-3.2.0 → os_vif-3.7.1}/releasenotes/notes/add-abstract-ovsdb-api-8f04df58d4ed5b73.yaml +0 -0
- {os_vif-3.2.0 → os_vif-3.7.1}/releasenotes/notes/add-fast-path-vhostuser-support-fe87e558326909b6.yaml +0 -0
- {os_vif-3.2.0 → os_vif-3.7.1}/releasenotes/notes/add-no-op-plugin-763a6703e7328a24.yaml +0 -0
- {os_vif-3.2.0 → os_vif-3.7.1}/releasenotes/notes/add-ovs-representor-portprofile-5f8290e5a40bf0a4.yaml +0 -0
- {os_vif-3.2.0 → os_vif-3.7.1}/releasenotes/notes/add-ovs-vhostuser-support-2ba8de51c1f3a244.yaml +0 -0
- {os_vif-3.2.0 → os_vif-3.7.1}/releasenotes/notes/add-ovsdb-native-322fffb49c91503d.yaml +0 -0
- {os_vif-3.2.0 → os_vif-3.7.1}/releasenotes/notes/always-plug-vifs-for-ovs-1d033fc49a9c6c4e.yaml +0 -0
- {os_vif-3.2.0 → os_vif-3.7.1}/releasenotes/notes/brctl-removal-a5b0e69b865afa57.yaml +0 -0
- {os_vif-3.2.0 → os_vif-3.7.1}/releasenotes/notes/bug-1892132-812e6d5ce0588ebb.yaml +0 -0
- {os_vif-3.2.0 → os_vif-3.7.1}/releasenotes/notes/contextlib-and-nested-with-statements-2747a9ebb9a5bfd7.yaml +0 -0
- {os_vif-3.2.0 → os_vif-3.7.1}/releasenotes/notes/default-qos-policy-for-ovs-26f8806046a59c82.yaml +0 -0
- {os_vif-3.2.0 → os_vif-3.7.1}/releasenotes/notes/default-to-native-ovsdb-driver-112fb5adf6e19a30.yaml +0 -0
- {os_vif-3.2.0 → os_vif-3.7.1}/releasenotes/notes/do-not-force-mac-ageing-c6e8d750130c5740.yaml +0 -0
- {os_vif-3.2.0 → os_vif-3.7.1}/releasenotes/notes/drop-py36-support-0e9b07073f6ad73f.yaml +0 -0
- {os_vif-3.2.0 → os_vif-3.7.1}/releasenotes/notes/drop-python2-support-7a4bc7d31253c1e5.yaml +0 -0
- {os_vif-3.2.0 → os_vif-3.7.1}/releasenotes/notes/ensure-ovs-bridge-a0c1b51f469c92d0.yaml +0 -0
- {os_vif-3.2.0 → os_vif-3.7.1}/releasenotes/notes/extend-vhostuser-object-fada14a1457d4e56.yaml +0 -0
- {os_vif-3.2.0 → os_vif-3.7.1}/releasenotes/notes/fix-ovs-plugin-describe-049750609559f1ba.yaml +0 -0
- {os_vif-3.2.0 → os_vif-3.7.1}/releasenotes/notes/fix-stevedore-entrypoints-8002ec7a5166c977.yaml +0 -0
- {os_vif-3.2.0 → os_vif-3.7.1}/releasenotes/notes/fix-vif-openvswitch-fa0d19be9dd668e1.yaml +0 -0
- {os_vif-3.2.0 → os_vif-3.7.1}/releasenotes/notes/generic-datapath-offloads-41cabb6842b41533.yaml +0 -0
- {os_vif-3.2.0 → os_vif-3.7.1}/releasenotes/notes/initial-release-2c71d6bbf55f763b.yaml +0 -0
- {os_vif-3.2.0 → os_vif-3.7.1}/releasenotes/notes/oslo-config-opts-entrypoints-e83f907b686d774a.yaml +0 -0
- {os_vif-3.2.0 → os_vif-3.7.1}/releasenotes/notes/per-port-bridge-c6a50179a0256de3.yaml +0 -0
- {os_vif-3.2.0 → os_vif-3.7.1}/releasenotes/notes/port-profile-info-linux-bridge-4800f5a0b7328615.yaml +0 -0
- {os_vif-3.2.0 → os_vif-3.7.1}/releasenotes/notes/port-profile-info-ovs-63b46a3eafc11de2.yaml +0 -0
- {os_vif-3.2.0 → os_vif-3.7.1}/releasenotes/notes/prevent-lb-reply-arp-6459133bfb056069.yaml +0 -0
- {os_vif-3.2.0 → os_vif-3.7.1}/releasenotes/notes/remove_iptools_implementation-2eb866573a680e61.yaml +0 -0
- {os_vif-3.2.0 → os_vif-3.7.1}/releasenotes/notes/revert-always-plug-port-for-ovs-hybrid-plug-false-dc015985cbc5443b.yaml +0 -0
- {os_vif-3.2.0 → os_vif-3.7.1}/releasenotes/notes/vhost-user-mtu-support-cbc7d02a6665fab1.yaml +0 -0
- {os_vif-3.2.0 → os_vif-3.7.1}/releasenotes/notes/vhost-user-reconnect-fa4cbb731b787f71.yaml +0 -0
- {os_vif-3.2.0 → os_vif-3.7.1}/releasenotes/source/2023.1.rst +0 -0
- {os_vif-3.2.0 → os_vif-3.7.1}/releasenotes/source/_static/.placeholder +0 -0
- {os_vif-3.2.0 → os_vif-3.7.1}/releasenotes/source/_templates/.placeholder +0 -0
- {os_vif-3.2.0 → os_vif-3.7.1}/releasenotes/source/conf.py +0 -0
- {os_vif-3.2.0 → os_vif-3.7.1}/releasenotes/source/newton.rst +0 -0
- {os_vif-3.2.0 → os_vif-3.7.1}/releasenotes/source/ocata.rst +0 -0
- {os_vif-3.2.0 → os_vif-3.7.1}/releasenotes/source/pike.rst +0 -0
- {os_vif-3.2.0 → os_vif-3.7.1}/releasenotes/source/queens.rst +0 -0
- {os_vif-3.2.0 → os_vif-3.7.1}/releasenotes/source/rocky.rst +0 -0
- {os_vif-3.2.0 → os_vif-3.7.1}/releasenotes/source/stein.rst +0 -0
- {os_vif-3.2.0 → os_vif-3.7.1}/releasenotes/source/train.rst +0 -0
- {os_vif-3.2.0 → os_vif-3.7.1}/releasenotes/source/unreleased.rst +0 -0
- {os_vif-3.2.0 → os_vif-3.7.1}/releasenotes/source/ussuri.rst +0 -0
- {os_vif-3.2.0 → os_vif-3.7.1}/vif_plug_linux_bridge/__init__.py +0 -0
- {os_vif-3.2.0 → os_vif-3.7.1}/vif_plug_linux_bridge/constants.py +0 -0
- {os_vif-3.2.0 → os_vif-3.7.1}/vif_plug_linux_bridge/iptables.py +0 -0
- {os_vif-3.2.0 → os_vif-3.7.1}/vif_plug_linux_bridge/linux_bridge.py +0 -0
- {os_vif-3.2.0 → os_vif-3.7.1}/vif_plug_linux_bridge/linux_net.py +0 -0
- {os_vif-3.2.0 → os_vif-3.7.1}/vif_plug_linux_bridge/privsep.py +0 -0
- {os_vif-3.2.0 → os_vif-3.7.1}/vif_plug_linux_bridge/tests/__init__.py +0 -0
- {os_vif-3.2.0 → os_vif-3.7.1}/vif_plug_linux_bridge/tests/unit/__init__.py +0 -0
- {os_vif-3.2.0 → os_vif-3.7.1}/vif_plug_linux_bridge/tests/unit/test_linux_net.py +0 -0
- {os_vif-3.2.0 → os_vif-3.7.1}/vif_plug_linux_bridge/tests/unit/test_plugin.py +0 -0
- {os_vif-3.2.0 → os_vif-3.7.1}/vif_plug_noop/__init__.py +0 -0
- {os_vif-3.2.0 → os_vif-3.7.1}/vif_plug_noop/noop.py +0 -0
- {os_vif-3.2.0 → os_vif-3.7.1}/vif_plug_noop/tests/__init__.py +0 -0
- {os_vif-3.2.0 → os_vif-3.7.1}/vif_plug_noop/tests/unit/__init__.py +0 -0
- {os_vif-3.2.0 → os_vif-3.7.1}/vif_plug_noop/tests/unit/test_plugin.py +0 -0
- {os_vif-3.2.0 → os_vif-3.7.1}/vif_plug_ovs/__init__.py +0 -0
- {os_vif-3.2.0 → os_vif-3.7.1}/vif_plug_ovs/constants.py +0 -0
- {os_vif-3.2.0 → os_vif-3.7.1}/vif_plug_ovs/exception.py +0 -0
- {os_vif-3.2.0 → os_vif-3.7.1}/vif_plug_ovs/linux_net.py +0 -0
- {os_vif-3.2.0 → os_vif-3.7.1}/vif_plug_ovs/ovsdb/__init__.py +0 -0
- {os_vif-3.2.0 → os_vif-3.7.1}/vif_plug_ovs/ovsdb/api.py +0 -0
- {os_vif-3.2.0 → os_vif-3.7.1}/vif_plug_ovs/ovsdb/impl_idl.py +0 -0
- {os_vif-3.2.0 → os_vif-3.7.1}/vif_plug_ovs/ovsdb/impl_vsctl.py +0 -0
- {os_vif-3.2.0 → os_vif-3.7.1}/vif_plug_ovs/privsep.py +0 -0
- {os_vif-3.2.0 → os_vif-3.7.1}/vif_plug_ovs/tests/__init__.py +0 -0
- {os_vif-3.2.0 → os_vif-3.7.1}/vif_plug_ovs/tests/functional/__init__.py +0 -0
- {os_vif-3.2.0 → os_vif-3.7.1}/vif_plug_ovs/tests/functional/base.py +0 -0
- {os_vif-3.2.0 → os_vif-3.7.1}/vif_plug_ovs/tests/functional/ovsdb/__init__.py +0 -0
- {os_vif-3.2.0 → os_vif-3.7.1}/vif_plug_ovs/tests/functional/ovsdb/test_ovsdb_lib.py +0 -0
- {os_vif-3.2.0 → os_vif-3.7.1}/vif_plug_ovs/tests/unit/__init__.py +0 -0
- {os_vif-3.2.0 → os_vif-3.7.1}/vif_plug_ovs/tests/unit/ovsdb/__init__.py +0 -0
- {os_vif-3.2.0 → os_vif-3.7.1}/vif_plug_ovs/tests/unit/test_linux_net.py +0 -0
os_vif-3.7.1/.coveragerc
ADDED
|
@@ -2,6 +2,7 @@ Adrian Chiris <adrianc@mellanox.com>
|
|
|
2
2
|
Alin Balutoiu <abalutoiu@cloudbasesolutions.com>
|
|
3
3
|
Andreas Jaeger <aj@suse.com>
|
|
4
4
|
Balazs Gibizer <gibi@redhat.com>
|
|
5
|
+
Bence Romsics <bence.romsics@gmail.com>
|
|
5
6
|
Brian Haley <brian.haley@hpe.com>
|
|
6
7
|
Cao Xuan Hoang <hoangcx@vn.fujitsu.com>
|
|
7
8
|
Carlos Goncalves <cgoncalves@redhat.com>
|
|
@@ -53,11 +54,13 @@ Spencer Yu <yushb@gohighsec.com>
|
|
|
53
54
|
Sriharsha Basavapatna <sriharsha.basavapatna@broadcom.com>
|
|
54
55
|
Stephen Finucane <sfinucan@redhat.com>
|
|
55
56
|
Swapnil Kulkarni (coolsvap) <me@coolsvap.net>
|
|
57
|
+
Takashi Kajinami <kajinamit@oss.nttdata.com>
|
|
56
58
|
Takashi NATSUME <natsume.takashi@lab.ntt.co.jp>
|
|
57
59
|
Takashi Natsume <takanattie@gmail.com>
|
|
58
60
|
Thomas Bechtold <tbechtold@suse.com>
|
|
59
61
|
Tony Breeds <tony@bakeyournoodle.com>
|
|
60
62
|
Tony Xu <hhktony@gmail.com>
|
|
63
|
+
Vasyl Saienko <vsaienko@mirantis.com>
|
|
61
64
|
Vieri <15050873171@163.com>
|
|
62
65
|
Vu Cong Tuan <tuanvc@vn.fujitsu.com>
|
|
63
66
|
XinxinShen <shenxinxin@inspur.com>
|
|
@@ -65,6 +68,7 @@ YAMAMOTO Takashi <yamamoto@midokura.com>
|
|
|
65
68
|
ZhijunWei <wzj334965317@outlook.com>
|
|
66
69
|
blue55 <yllan@fiberhome.com>
|
|
67
70
|
caoyuan <cao.yuan@99cloud.net>
|
|
71
|
+
elajkat <lajos.katona@est.tech>
|
|
68
72
|
ericxiett <eric_xiett@163.com>
|
|
69
73
|
gecong1973 <ge.cong@zte.com.cn>
|
|
70
74
|
jacky06 <zhang.min@99cloud.net>
|
|
@@ -1,6 +1,49 @@
|
|
|
1
1
|
CHANGES
|
|
2
2
|
=======
|
|
3
3
|
|
|
4
|
+
3.7.1
|
|
5
|
+
-----
|
|
6
|
+
|
|
7
|
+
* OVS Trunk: Add bridge\_name to external\_ids
|
|
8
|
+
* Do not add taps in trunk bridges to the dead vlan
|
|
9
|
+
* Update TOX\_CONSTRAINTS\_FILE for stable/2024.2
|
|
10
|
+
* Update .gitreview for stable/2024.2
|
|
11
|
+
|
|
12
|
+
3.7.0
|
|
13
|
+
-----
|
|
14
|
+
|
|
15
|
+
* Remove old excludes
|
|
16
|
+
|
|
17
|
+
3.6.0
|
|
18
|
+
-----
|
|
19
|
+
|
|
20
|
+
* reno: Update master for unmaintained/zed
|
|
21
|
+
* Update master for stable/2024.1
|
|
22
|
+
* reno: Update master for unmaintained/xena
|
|
23
|
+
* reno: Update master for unmaintained/wallaby
|
|
24
|
+
* reno: Update master for unmaintained/victoria
|
|
25
|
+
|
|
26
|
+
3.5.0
|
|
27
|
+
-----
|
|
28
|
+
|
|
29
|
+
* Drop wrong stacklevel
|
|
30
|
+
* Fix missing or unnecessary dependencies
|
|
31
|
+
* reno: Update master for unmaintained/yoga
|
|
32
|
+
* tox: Drop envdir
|
|
33
|
+
* Update python classifier in setup.cfg
|
|
34
|
+
|
|
35
|
+
3.4.0
|
|
36
|
+
-----
|
|
37
|
+
|
|
38
|
+
* coveragerc: Remove non-existent path
|
|
39
|
+
* Deprecate Windows support
|
|
40
|
+
|
|
41
|
+
3.3.0
|
|
42
|
+
-----
|
|
43
|
+
|
|
44
|
+
* Update master for stable/2023.2
|
|
45
|
+
* Don't break traffic if port already exists
|
|
46
|
+
|
|
4
47
|
3.2.0
|
|
5
48
|
-----
|
|
6
49
|
|
os_vif-3.7.1/PKG-INFO
ADDED
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: os_vif
|
|
3
|
+
Version: 3.7.1
|
|
4
|
+
Summary: A library for plugging and unplugging virtual interfaces in OpenStack.
|
|
5
|
+
Home-page: https://docs.openstack.org/os-vif/latest/
|
|
6
|
+
Author: OpenStack
|
|
7
|
+
Author-email: openstack-discuss@lists.openstack.org
|
|
8
|
+
Classifier: Environment :: OpenStack
|
|
9
|
+
Classifier: Intended Audience :: Information Technology
|
|
10
|
+
Classifier: Intended Audience :: System Administrators
|
|
11
|
+
Classifier: License :: OSI Approved :: Apache Software License
|
|
12
|
+
Classifier: Operating System :: POSIX :: Linux
|
|
13
|
+
Classifier: Programming Language :: Python
|
|
14
|
+
Classifier: Programming Language :: Python :: 3
|
|
15
|
+
Classifier: Programming Language :: Python :: 3 :: Only
|
|
16
|
+
Classifier: Programming Language :: Python :: 3.8
|
|
17
|
+
Classifier: Programming Language :: Python :: 3.9
|
|
18
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
19
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
20
|
+
Classifier: Programming Language :: Python :: Implementation :: CPython
|
|
21
|
+
Requires-Python: >=3.8
|
|
22
|
+
License-File: LICENSE
|
|
23
|
+
Requires-Dist: pbr>=3.0.0
|
|
24
|
+
Requires-Dist: oslo.concurrency>=3.20.0
|
|
25
|
+
Requires-Dist: oslo.config>=5.1.0
|
|
26
|
+
Requires-Dist: oslo.log>=3.30.0
|
|
27
|
+
Requires-Dist: oslo.i18n>=3.15.3
|
|
28
|
+
Requires-Dist: oslo.privsep>=1.23.0
|
|
29
|
+
Requires-Dist: oslo.serialization>=2.20.0
|
|
30
|
+
Requires-Dist: oslo.utils>=2.0.0
|
|
31
|
+
Requires-Dist: oslo.versionedobjects>=1.28.0
|
|
32
|
+
Requires-Dist: ovsdbapp>=0.12.1
|
|
33
|
+
Requires-Dist: pyroute2>=0.5.2
|
|
34
|
+
Requires-Dist: stevedore>=1.20.0
|
|
35
|
+
Requires-Dist: debtcollector>=1.19.0
|
|
36
|
+
Dynamic: author
|
|
37
|
+
Dynamic: author-email
|
|
38
|
+
Dynamic: classifier
|
|
39
|
+
Dynamic: description
|
|
40
|
+
Dynamic: home-page
|
|
41
|
+
Dynamic: license-file
|
|
42
|
+
Dynamic: requires-dist
|
|
43
|
+
Dynamic: requires-python
|
|
44
|
+
Dynamic: summary
|
|
45
|
+
|
|
46
|
+
========================
|
|
47
|
+
Team and repository tags
|
|
48
|
+
========================
|
|
49
|
+
|
|
50
|
+
.. image:: https://governance.openstack.org/tc/badges/os-vif.svg
|
|
51
|
+
:target: https://governance.openstack.org/tc/reference/tags/index.html
|
|
52
|
+
|
|
53
|
+
.. Change things from this point on
|
|
54
|
+
|
|
55
|
+
======
|
|
56
|
+
os-vif
|
|
57
|
+
======
|
|
58
|
+
|
|
59
|
+
.. image:: https://img.shields.io/pypi/v/os-vif.svg
|
|
60
|
+
:target: https://pypi.org/project/os-vif/
|
|
61
|
+
:alt: Latest Version
|
|
62
|
+
|
|
63
|
+
.. image:: https://img.shields.io/pypi/dm/os-vif.svg
|
|
64
|
+
:target: https://pypi.org/project/os-vif/
|
|
65
|
+
:alt: Downloads
|
|
66
|
+
|
|
67
|
+
A library for plugging and unplugging virtual interfaces in OpenStack.
|
|
68
|
+
|
|
69
|
+
* License: Apache License, Version 2.0
|
|
70
|
+
* Documentation: https://docs.openstack.org/os-vif/latest/
|
|
71
|
+
* Source: https://opendev.org/openstack/os-vif
|
|
72
|
+
* Bugs: https://bugs.launchpad.net/os-vif
|
|
73
|
+
* Release Notes: https://docs.openstack.org/releasenotes/os-vif
|
|
74
|
+
|
|
@@ -11,10 +11,13 @@
|
|
|
11
11
|
# under the License.
|
|
12
12
|
|
|
13
13
|
import os
|
|
14
|
+
import warnings
|
|
14
15
|
|
|
15
16
|
from oslo_log import log as logging
|
|
16
17
|
|
|
17
18
|
if os.name == 'nt':
|
|
19
|
+
warnings.warn('Support for Windows OS is deprecated.',
|
|
20
|
+
category=DeprecationWarning)
|
|
18
21
|
from os_vif.internal.ip.windows.impl_netifaces import \
|
|
19
22
|
Netifaces as ip_lib_class
|
|
20
23
|
else:
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: os_vif
|
|
3
|
+
Version: 3.7.1
|
|
4
|
+
Summary: A library for plugging and unplugging virtual interfaces in OpenStack.
|
|
5
|
+
Home-page: https://docs.openstack.org/os-vif/latest/
|
|
6
|
+
Author: OpenStack
|
|
7
|
+
Author-email: openstack-discuss@lists.openstack.org
|
|
8
|
+
Classifier: Environment :: OpenStack
|
|
9
|
+
Classifier: Intended Audience :: Information Technology
|
|
10
|
+
Classifier: Intended Audience :: System Administrators
|
|
11
|
+
Classifier: License :: OSI Approved :: Apache Software License
|
|
12
|
+
Classifier: Operating System :: POSIX :: Linux
|
|
13
|
+
Classifier: Programming Language :: Python
|
|
14
|
+
Classifier: Programming Language :: Python :: 3
|
|
15
|
+
Classifier: Programming Language :: Python :: 3 :: Only
|
|
16
|
+
Classifier: Programming Language :: Python :: 3.8
|
|
17
|
+
Classifier: Programming Language :: Python :: 3.9
|
|
18
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
19
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
20
|
+
Classifier: Programming Language :: Python :: Implementation :: CPython
|
|
21
|
+
Requires-Python: >=3.8
|
|
22
|
+
License-File: LICENSE
|
|
23
|
+
Requires-Dist: pbr>=3.0.0
|
|
24
|
+
Requires-Dist: oslo.concurrency>=3.20.0
|
|
25
|
+
Requires-Dist: oslo.config>=5.1.0
|
|
26
|
+
Requires-Dist: oslo.log>=3.30.0
|
|
27
|
+
Requires-Dist: oslo.i18n>=3.15.3
|
|
28
|
+
Requires-Dist: oslo.privsep>=1.23.0
|
|
29
|
+
Requires-Dist: oslo.serialization>=2.20.0
|
|
30
|
+
Requires-Dist: oslo.utils>=2.0.0
|
|
31
|
+
Requires-Dist: oslo.versionedobjects>=1.28.0
|
|
32
|
+
Requires-Dist: ovsdbapp>=0.12.1
|
|
33
|
+
Requires-Dist: pyroute2>=0.5.2
|
|
34
|
+
Requires-Dist: stevedore>=1.20.0
|
|
35
|
+
Requires-Dist: debtcollector>=1.19.0
|
|
36
|
+
Dynamic: author
|
|
37
|
+
Dynamic: author-email
|
|
38
|
+
Dynamic: classifier
|
|
39
|
+
Dynamic: description
|
|
40
|
+
Dynamic: home-page
|
|
41
|
+
Dynamic: license-file
|
|
42
|
+
Dynamic: requires-dist
|
|
43
|
+
Dynamic: requires-python
|
|
44
|
+
Dynamic: summary
|
|
45
|
+
|
|
46
|
+
========================
|
|
47
|
+
Team and repository tags
|
|
48
|
+
========================
|
|
49
|
+
|
|
50
|
+
.. image:: https://governance.openstack.org/tc/badges/os-vif.svg
|
|
51
|
+
:target: https://governance.openstack.org/tc/reference/tags/index.html
|
|
52
|
+
|
|
53
|
+
.. Change things from this point on
|
|
54
|
+
|
|
55
|
+
======
|
|
56
|
+
os-vif
|
|
57
|
+
======
|
|
58
|
+
|
|
59
|
+
.. image:: https://img.shields.io/pypi/v/os-vif.svg
|
|
60
|
+
:target: https://pypi.org/project/os-vif/
|
|
61
|
+
:alt: Latest Version
|
|
62
|
+
|
|
63
|
+
.. image:: https://img.shields.io/pypi/dm/os-vif.svg
|
|
64
|
+
:target: https://pypi.org/project/os-vif/
|
|
65
|
+
:alt: Downloads
|
|
66
|
+
|
|
67
|
+
A library for plugging and unplugging virtual interfaces in OpenStack.
|
|
68
|
+
|
|
69
|
+
* License: Apache License, Version 2.0
|
|
70
|
+
* Documentation: https://docs.openstack.org/os-vif/latest/
|
|
71
|
+
* Source: https://opendev.org/openstack/os-vif
|
|
72
|
+
* Bugs: https://bugs.launchpad.net/os-vif
|
|
73
|
+
* Release Notes: https://docs.openstack.org/releasenotes/os-vif
|
|
74
|
+
|
|
@@ -99,11 +99,13 @@ releasenotes/notes/bug-1892132-812e6d5ce0588ebb.yaml
|
|
|
99
99
|
releasenotes/notes/contextlib-and-nested-with-statements-2747a9ebb9a5bfd7.yaml
|
|
100
100
|
releasenotes/notes/default-qos-policy-for-ovs-26f8806046a59c82.yaml
|
|
101
101
|
releasenotes/notes/default-to-native-ovsdb-driver-112fb5adf6e19a30.yaml
|
|
102
|
+
releasenotes/notes/deprecate-windows-support-49f5ca1b1a1f4d66.yaml
|
|
102
103
|
releasenotes/notes/do-not-force-mac-ageing-c6e8d750130c5740.yaml
|
|
103
104
|
releasenotes/notes/drop-py36-support-0e9b07073f6ad73f.yaml
|
|
104
105
|
releasenotes/notes/drop-python2-support-7a4bc7d31253c1e5.yaml
|
|
105
106
|
releasenotes/notes/ensure-ovs-bridge-a0c1b51f469c92d0.yaml
|
|
106
107
|
releasenotes/notes/extend-vhostuser-object-fada14a1457d4e56.yaml
|
|
108
|
+
releasenotes/notes/fix-broken-dataplane-on-nova-restart-with-isolate_vif-71617a41741b33e8.yaml
|
|
107
109
|
releasenotes/notes/fix-ovs-plugin-describe-049750609559f1ba.yaml
|
|
108
110
|
releasenotes/notes/fix-stevedore-entrypoints-8002ec7a5166c977.yaml
|
|
109
111
|
releasenotes/notes/fix-vif-openvswitch-fa0d19be9dd668e1.yaml
|
|
@@ -119,6 +121,8 @@ releasenotes/notes/revert-always-plug-port-for-ovs-hybrid-plug-false-dc015985cbc
|
|
|
119
121
|
releasenotes/notes/vhost-user-mtu-support-cbc7d02a6665fab1.yaml
|
|
120
122
|
releasenotes/notes/vhost-user-reconnect-fa4cbb731b787f71.yaml
|
|
121
123
|
releasenotes/source/2023.1.rst
|
|
124
|
+
releasenotes/source/2023.2.rst
|
|
125
|
+
releasenotes/source/2024.1.rst
|
|
122
126
|
releasenotes/source/conf.py
|
|
123
127
|
releasenotes/source/index.rst
|
|
124
128
|
releasenotes/source/newton.rst
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"git_version": "a19f532", "is_release": true}
|
|
@@ -1,14 +1,13 @@
|
|
|
1
|
-
|
|
2
|
-
netaddr>=0.7.18
|
|
1
|
+
pbr>=3.0.0
|
|
3
2
|
oslo.concurrency>=3.20.0
|
|
4
3
|
oslo.config>=5.1.0
|
|
5
|
-
oslo.i18n>=3.15.3
|
|
6
4
|
oslo.log>=3.30.0
|
|
5
|
+
oslo.i18n>=3.15.3
|
|
7
6
|
oslo.privsep>=1.23.0
|
|
7
|
+
oslo.serialization>=2.20.0
|
|
8
|
+
oslo.utils>=2.0.0
|
|
8
9
|
oslo.versionedobjects>=1.28.0
|
|
9
10
|
ovsdbapp>=0.12.1
|
|
10
|
-
pbr!=2.1.0,>=2.0.0
|
|
11
|
-
stevedore>=1.20.0
|
|
12
|
-
|
|
13
|
-
[:(sys_platform!='win32')]
|
|
14
11
|
pyroute2>=0.5.2
|
|
12
|
+
stevedore>=1.20.0
|
|
13
|
+
debtcollector>=1.19.0
|
|
@@ -1,18 +1,14 @@
|
|
|
1
1
|
# Requirements lower bounds listed here are our best effort to keep them up to
|
|
2
2
|
# date but we do not test them so no guarantee of having them all correct. If
|
|
3
3
|
# you find any incorrect lower bounds, let us know or propose a fix.
|
|
4
|
-
|
|
5
|
-
# The order of packages is significant, because pip processes them in the order
|
|
6
|
-
# of appearance. Changing the order has an impact on the overall integration
|
|
7
|
-
# process, which may cause wedges in the gate later.
|
|
8
|
-
|
|
9
|
-
pbr!=2.1.0,>=2.0.0 # Apache-2.0
|
|
10
|
-
netaddr>=0.7.18 # BSD
|
|
4
|
+
pbr>=3.0.0 # Apache-2.0
|
|
11
5
|
oslo.concurrency>=3.20.0 # Apache-2.0
|
|
12
6
|
oslo.config>=5.1.0 # Apache-2.0
|
|
13
7
|
oslo.log>=3.30.0 # Apache-2.0
|
|
14
8
|
oslo.i18n>=3.15.3 # Apache-2.0
|
|
15
9
|
oslo.privsep>=1.23.0 # Apache-2.0
|
|
10
|
+
oslo.serialization>=2.20.0 # Apache-2.0
|
|
11
|
+
oslo.utils>=2.0.0 # Apache-2.0
|
|
16
12
|
oslo.versionedobjects>=1.28.0 # Apache-2.0
|
|
17
13
|
ovsdbapp>=0.12.1 # Apache-2.0
|
|
18
14
|
pyroute2>=0.5.2;sys_platform!='win32' # Apache-2.0 (+ dual licensed GPL2)
|
|
@@ -13,16 +13,8 @@
|
|
|
13
13
|
# See the License for the specific language governing permissions and
|
|
14
14
|
# limitations under the License.
|
|
15
15
|
|
|
16
|
-
# THIS FILE IS MANAGED BY THE GLOBAL REQUIREMENTS REPO - DO NOT EDIT
|
|
17
16
|
import setuptools
|
|
18
17
|
|
|
19
|
-
# In python < 2.7.4, a lazy loading of package `pbr` will break
|
|
20
|
-
# setuptools if some other modules registered functions in `atexit`.
|
|
21
|
-
# solution from: http://bugs.python.org/issue15881#msg170215
|
|
22
|
-
try:
|
|
23
|
-
import multiprocessing # noqa
|
|
24
|
-
except ImportError:
|
|
25
|
-
pass
|
|
26
18
|
|
|
27
19
|
setuptools.setup(
|
|
28
20
|
setup_requires=['pbr>=2.0.0'],
|
|
@@ -6,13 +6,12 @@ envlist = py3,pep8,docs,releasenotes,cover
|
|
|
6
6
|
usedevelop = True
|
|
7
7
|
setenv =
|
|
8
8
|
deps =
|
|
9
|
-
-c{env:TOX_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/
|
|
9
|
+
-c{env:TOX_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/2024.2}
|
|
10
10
|
-r{toxinidir}/requirements.txt
|
|
11
11
|
-r{toxinidir}/test-requirements.txt
|
|
12
12
|
commands = stestr run --exclude-regex ".tests.functional" {posargs}
|
|
13
13
|
|
|
14
14
|
[testenv:functional]
|
|
15
|
-
envdir = {toxworkdir}/shared
|
|
16
15
|
setenv =
|
|
17
16
|
{[testenv]setenv}
|
|
18
17
|
commands =
|
|
@@ -20,12 +19,11 @@ commands =
|
|
|
20
19
|
|
|
21
20
|
[testenv:docs]
|
|
22
21
|
deps =
|
|
23
|
-
-c{env:TOX_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/
|
|
22
|
+
-c{env:TOX_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/2024.2}
|
|
24
23
|
-r{toxinidir}/doc/requirements.txt
|
|
25
24
|
commands = sphinx-build -W -b html doc/source doc/build/html
|
|
26
25
|
|
|
27
26
|
[testenv:pdf-docs]
|
|
28
|
-
envdir = {toxworkdir}/docs
|
|
29
27
|
deps = {[testenv:docs]deps}
|
|
30
28
|
allowlist_externals =
|
|
31
29
|
rm
|
|
@@ -36,7 +34,6 @@ commands =
|
|
|
36
34
|
make -C doc/build/pdf
|
|
37
35
|
|
|
38
36
|
[testenv:releasenotes]
|
|
39
|
-
envdir = {toxworkdir}/docs
|
|
40
37
|
deps = {[testenv:docs]deps}
|
|
41
38
|
commands = sphinx-build -a -E -W -d releasenotes/build/doctrees -b html releasenotes/source releasenotes/build/html
|
|
42
39
|
|
|
@@ -47,7 +44,6 @@ deps =
|
|
|
47
44
|
-r{toxinidir}/doc/requirements.txt
|
|
48
45
|
|
|
49
46
|
[testenv:cover]
|
|
50
|
-
envdir = {toxworkdir}/shared
|
|
51
47
|
setenv =
|
|
52
48
|
{[testenv]setenv}
|
|
53
49
|
PYTHON=coverage run --source os_vif,vif_plug_linux_bridge,vif_plug_ovs,vif_plug_noop --parallel-mode
|
|
@@ -59,7 +55,6 @@ commands =
|
|
|
59
55
|
coverage report
|
|
60
56
|
|
|
61
57
|
[testenv:pep8]
|
|
62
|
-
envdir = {toxworkdir}/shared
|
|
63
58
|
deps =
|
|
64
59
|
hacking>=3.0.1,<3.1.0
|
|
65
60
|
commands = flake8
|
|
@@ -37,6 +37,10 @@ from vif_plug_ovs.ovsdb import ovsdb_lib
|
|
|
37
37
|
LOG = logging.getLogger(__name__)
|
|
38
38
|
|
|
39
39
|
|
|
40
|
+
def is_trunk_bridge(bridge_name):
|
|
41
|
+
return bridge_name.startswith(constants.TRUNK_BR_PREFIX)
|
|
42
|
+
|
|
43
|
+
|
|
40
44
|
class OvsPlugin(plugin.PluginBase):
|
|
41
45
|
"""An OVS plugin that can setup VIFs in many ways
|
|
42
46
|
|
|
@@ -186,6 +190,13 @@ class OvsPlugin(plugin.PluginBase):
|
|
|
186
190
|
|
|
187
191
|
return True
|
|
188
192
|
|
|
193
|
+
def _isolate_vif(self, vif_name, bridge):
|
|
194
|
+
# NOTE(vsaienko): don't break traffic if port already exists,
|
|
195
|
+
# we assume it is called when nova-compute is initialized and
|
|
196
|
+
# since port is present it should be bound already.
|
|
197
|
+
return (self.config.isolate_vif and
|
|
198
|
+
not self.ovsdb.port_exists(vif_name, bridge))
|
|
199
|
+
|
|
189
200
|
def _create_vif_port(self, vif, vif_name, instance_info, **kwargs):
|
|
190
201
|
mtu = self._get_mtu(vif)
|
|
191
202
|
# NOTE(sean-k-mooney): As part of a partial fix to bug #1734320
|
|
@@ -200,8 +211,13 @@ class OvsPlugin(plugin.PluginBase):
|
|
|
200
211
|
# TODO(sean-k-mooney): Extend neutron to record what ml2 driver
|
|
201
212
|
# bound the interface in the vif binding details so isolation
|
|
202
213
|
# can be enabled automatically in the future.
|
|
203
|
-
|
|
214
|
+
bridge = kwargs.pop('bridge', vif.network.bridge)
|
|
215
|
+
# See bug #2069543.
|
|
216
|
+
if (self._isolate_vif(vif_name, bridge) and
|
|
217
|
+
not is_trunk_bridge(bridge)):
|
|
204
218
|
kwargs['tag'] = constants.DEAD_VLAN
|
|
219
|
+
kwargs['vlan_mode'] = 'trunk'
|
|
220
|
+
kwargs['trunks'] = constants.DEAD_VLAN
|
|
205
221
|
qos_type = self._get_qos_type(vif)
|
|
206
222
|
if qos_type is not None:
|
|
207
223
|
# NOTE(sean-k-mooney): If the port is not already created
|
|
@@ -215,7 +231,6 @@ class OvsPlugin(plugin.PluginBase):
|
|
|
215
231
|
# for more details.
|
|
216
232
|
if not self.ovsdb.port_exists(vif_name, vif.network.bridge):
|
|
217
233
|
kwargs['qos_type'] = qos_type
|
|
218
|
-
bridge = kwargs.pop('bridge', vif.network.bridge)
|
|
219
234
|
self.ovsdb.create_ovs_vif_port(
|
|
220
235
|
bridge,
|
|
221
236
|
vif_name,
|
|
@@ -302,7 +317,9 @@ class OvsPlugin(plugin.PluginBase):
|
|
|
302
317
|
vif, vif.vif_name, instance_info, bridge=port_bridge_name,
|
|
303
318
|
set_ids=False
|
|
304
319
|
)
|
|
305
|
-
tag = constants.DEAD_VLAN
|
|
320
|
+
tag = (constants.DEAD_VLAN
|
|
321
|
+
if self._isolate_vif(int_bridge_patch, int_bridge_name)
|
|
322
|
+
else None)
|
|
306
323
|
iface_id = vif.id
|
|
307
324
|
mac = vif.address
|
|
308
325
|
instance_id = instance_info.uuid
|
|
@@ -397,11 +414,8 @@ class OvsPlugin(plugin.PluginBase):
|
|
|
397
414
|
vif=vif,
|
|
398
415
|
err="This vif type is not supported by this plugin")
|
|
399
416
|
|
|
400
|
-
def _is_trunk_bridge(self, bridge_name):
|
|
401
|
-
return bridge_name.startswith(constants.TRUNK_BR_PREFIX)
|
|
402
|
-
|
|
403
417
|
def _delete_bridge_if_trunk(self, vif):
|
|
404
|
-
if
|
|
418
|
+
if is_trunk_bridge(vif.network.bridge):
|
|
405
419
|
self.ovsdb.delete_ovs_bridge(vif.network.bridge)
|
|
406
420
|
|
|
407
421
|
def _unplug_vhostuser(self, vif, instance_info):
|
|
@@ -17,6 +17,7 @@ from oslo_log import log as logging
|
|
|
17
17
|
|
|
18
18
|
from vif_plug_ovs import constants
|
|
19
19
|
from vif_plug_ovs import linux_net
|
|
20
|
+
from vif_plug_ovs import ovs
|
|
20
21
|
from vif_plug_ovs.ovsdb import api as ovsdb_api
|
|
21
22
|
|
|
22
23
|
|
|
@@ -145,7 +146,7 @@ class BaseOVS(object):
|
|
|
145
146
|
self, bridge, dev, iface_id, mac, instance_id,
|
|
146
147
|
mtu=None, interface_type=None, vhost_server_path=None,
|
|
147
148
|
tag=None, pf_pci=None, vf_num=None, set_ids=True, datapath_type=None,
|
|
148
|
-
qos_type=None
|
|
149
|
+
qos_type=None, vlan_mode=None, trunks=None
|
|
149
150
|
):
|
|
150
151
|
"""Create OVS port
|
|
151
152
|
|
|
@@ -173,6 +174,21 @@ class BaseOVS(object):
|
|
|
173
174
|
'iface-status': 'active',
|
|
174
175
|
'attached-mac': mac,
|
|
175
176
|
'vm-uuid': instance_id}
|
|
177
|
+
|
|
178
|
+
# Note(lajoskatona): Neutron fills external_ids for trunk, see:
|
|
179
|
+
# https://opendev.org/openstack/neutron/src/commit/
|
|
180
|
+
# 1bc4b526e9c743423069ab4cf6ef3883d5e48217/neutron/services/trunk/
|
|
181
|
+
# drivers/openvswitch/agent/ovsdb_handler.py#L418
|
|
182
|
+
# The following keys are added there: bridge_name, trunk_id and
|
|
183
|
+
# subport_ids. These values are used during the cleanup after the
|
|
184
|
+
# deletion of the trunk. It can happen that Neutron can't fill these
|
|
185
|
+
# fields.
|
|
186
|
+
# In os-vif when the plug happens we can use the same transaction to
|
|
187
|
+
# add bridge_name to external_ids in case of it is a trunk.
|
|
188
|
+
# By this Neutron can do the cleanup of trunk related interfaces.
|
|
189
|
+
if ovs.is_trunk_bridge(bridge):
|
|
190
|
+
external_ids['bridge_name'] = bridge
|
|
191
|
+
|
|
176
192
|
col_values = [('external_ids', external_ids)] if set_ids else []
|
|
177
193
|
if interface_type:
|
|
178
194
|
col_values.append(('type', interface_type))
|
|
@@ -210,6 +226,11 @@ class BaseOVS(object):
|
|
|
210
226
|
txn.add(self.ovsdb.add_port(bridge, dev))
|
|
211
227
|
if tag:
|
|
212
228
|
txn.add(self.ovsdb.db_set('Port', dev, ('tag', tag)))
|
|
229
|
+
if vlan_mode:
|
|
230
|
+
txn.add(self.ovsdb.db_set('Port', dev,
|
|
231
|
+
('vlan_mode', vlan_mode)))
|
|
232
|
+
if trunks:
|
|
233
|
+
txn.add(self.ovsdb.db_set('Port', dev, ('trunks', trunks)))
|
|
213
234
|
if qid:
|
|
214
235
|
txn.add(self.ovsdb.db_set('Port', dev, ('qos', qid)))
|
|
215
236
|
if col_values:
|