os-vif 3.2.0__tar.gz → 3.4.0__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.

Potentially problematic release.


This version of os-vif might be problematic. Click here for more details.

Files changed (182) hide show
  1. os_vif-3.4.0/.coveragerc +4 -0
  2. {os_vif-3.2.0 → os_vif-3.4.0}/AUTHORS +2 -0
  3. {os_vif-3.2.0 → os_vif-3.4.0}/ChangeLog +12 -0
  4. {os_vif-3.2.0 → os_vif-3.4.0}/PKG-INFO +1 -1
  5. {os_vif-3.2.0 → os_vif-3.4.0}/os_vif/internal/ip/api.py +3 -0
  6. {os_vif-3.2.0 → os_vif-3.4.0}/os_vif.egg-info/PKG-INFO +1 -1
  7. {os_vif-3.2.0 → os_vif-3.4.0}/os_vif.egg-info/SOURCES.txt +3 -0
  8. os_vif-3.4.0/os_vif.egg-info/pbr.json +1 -0
  9. os_vif-3.4.0/releasenotes/notes/deprecate-windows-support-49f5ca1b1a1f4d66.yaml +4 -0
  10. os_vif-3.4.0/releasenotes/notes/fix-broken-dataplane-on-nova-restart-with-isolate_vif-71617a41741b33e8.yaml +7 -0
  11. os_vif-3.4.0/releasenotes/source/2023.2.rst +6 -0
  12. {os_vif-3.2.0 → os_vif-3.4.0}/releasenotes/source/index.rst +1 -0
  13. {os_vif-3.2.0 → os_vif-3.4.0}/vif_plug_ovs/ovs.py +12 -3
  14. {os_vif-3.2.0 → os_vif-3.4.0}/vif_plug_ovs/tests/unit/test_plugin.py +38 -1
  15. os_vif-3.2.0/.coveragerc +0 -4
  16. os_vif-3.2.0/os_vif.egg-info/pbr.json +0 -1
  17. {os_vif-3.2.0 → os_vif-3.4.0}/.mailmap +0 -0
  18. {os_vif-3.2.0 → os_vif-3.4.0}/.stestr.conf +0 -0
  19. {os_vif-3.2.0 → os_vif-3.4.0}/.zuul.yaml +0 -0
  20. {os_vif-3.2.0 → os_vif-3.4.0}/CONTRIBUTING.rst +0 -0
  21. {os_vif-3.2.0 → os_vif-3.4.0}/HACKING.rst +0 -0
  22. {os_vif-3.2.0 → os_vif-3.4.0}/LICENSE +0 -0
  23. {os_vif-3.2.0 → os_vif-3.4.0}/README.rst +0 -0
  24. {os_vif-3.2.0 → os_vif-3.4.0}/bindep.txt +0 -0
  25. {os_vif-3.2.0 → os_vif-3.4.0}/doc/requirements.txt +0 -0
  26. {os_vif-3.2.0 → os_vif-3.4.0}/doc/source/conf.py +0 -0
  27. {os_vif-3.2.0 → os_vif-3.4.0}/doc/source/contributor/contributing.rst +0 -0
  28. {os_vif-3.2.0 → os_vif-3.4.0}/doc/source/index.rst +0 -0
  29. {os_vif-3.2.0 → os_vif-3.4.0}/doc/source/reference/glossary.rst +0 -0
  30. {os_vif-3.2.0 → os_vif-3.4.0}/doc/source/user/host-info.rst +0 -0
  31. {os_vif-3.2.0 → os_vif-3.4.0}/doc/source/user/plugins/linux-bridge.rst +0 -0
  32. {os_vif-3.2.0 → os_vif-3.4.0}/doc/source/user/plugins/noop.rst +0 -0
  33. {os_vif-3.2.0 → os_vif-3.4.0}/doc/source/user/plugins/ovs.rst +0 -0
  34. {os_vif-3.2.0 → os_vif-3.4.0}/doc/source/user/usage.rst +0 -0
  35. {os_vif-3.2.0 → os_vif-3.4.0}/doc/source/user/vif-types.rst +0 -0
  36. {os_vif-3.2.0 → os_vif-3.4.0}/os_vif/__init__.py +0 -0
  37. {os_vif-3.2.0 → os_vif-3.4.0}/os_vif/exception.py +0 -0
  38. {os_vif-3.2.0 → os_vif-3.4.0}/os_vif/i18n.py +0 -0
  39. {os_vif-3.2.0 → os_vif-3.4.0}/os_vif/internal/__init__.py +0 -0
  40. {os_vif-3.2.0 → os_vif-3.4.0}/os_vif/internal/ip/__init__.py +0 -0
  41. {os_vif-3.2.0 → os_vif-3.4.0}/os_vif/internal/ip/ip_command.py +0 -0
  42. {os_vif-3.2.0 → os_vif-3.4.0}/os_vif/internal/ip/linux/__init__.py +0 -0
  43. {os_vif-3.2.0 → os_vif-3.4.0}/os_vif/internal/ip/linux/impl_pyroute2.py +0 -0
  44. {os_vif-3.2.0 → os_vif-3.4.0}/os_vif/internal/ip/windows/__init__.py +0 -0
  45. {os_vif-3.2.0 → os_vif-3.4.0}/os_vif/internal/ip/windows/impl_netifaces.py +0 -0
  46. {os_vif-3.2.0 → os_vif-3.4.0}/os_vif/objects/__init__.py +0 -0
  47. {os_vif-3.2.0 → os_vif-3.4.0}/os_vif/objects/base.py +0 -0
  48. {os_vif-3.2.0 → os_vif-3.4.0}/os_vif/objects/fields.py +0 -0
  49. {os_vif-3.2.0 → os_vif-3.4.0}/os_vif/objects/fixed_ip.py +0 -0
  50. {os_vif-3.2.0 → os_vif-3.4.0}/os_vif/objects/host_info.py +0 -0
  51. {os_vif-3.2.0 → os_vif-3.4.0}/os_vif/objects/instance_info.py +0 -0
  52. {os_vif-3.2.0 → os_vif-3.4.0}/os_vif/objects/network.py +0 -0
  53. {os_vif-3.2.0 → os_vif-3.4.0}/os_vif/objects/route.py +0 -0
  54. {os_vif-3.2.0 → os_vif-3.4.0}/os_vif/objects/subnet.py +0 -0
  55. {os_vif-3.2.0 → os_vif-3.4.0}/os_vif/objects/vif.py +0 -0
  56. {os_vif-3.2.0 → os_vif-3.4.0}/os_vif/opts.py +0 -0
  57. {os_vif-3.2.0 → os_vif-3.4.0}/os_vif/plugin.py +0 -0
  58. {os_vif-3.2.0 → os_vif-3.4.0}/os_vif/tests/__init__.py +0 -0
  59. {os_vif-3.2.0 → os_vif-3.4.0}/os_vif/tests/functional/__init__.py +0 -0
  60. {os_vif-3.2.0 → os_vif-3.4.0}/os_vif/tests/functional/base.py +0 -0
  61. {os_vif-3.2.0 → os_vif-3.4.0}/os_vif/tests/functional/internal/__init__.py +0 -0
  62. {os_vif-3.2.0 → os_vif-3.4.0}/os_vif/tests/functional/internal/command/__init__.py +0 -0
  63. {os_vif-3.2.0 → os_vif-3.4.0}/os_vif/tests/functional/internal/command/ip/__init__.py +0 -0
  64. {os_vif-3.2.0 → os_vif-3.4.0}/os_vif/tests/functional/internal/command/ip/test_impl_pyroute2.py +0 -0
  65. {os_vif-3.2.0 → os_vif-3.4.0}/os_vif/tests/functional/privsep.py +0 -0
  66. {os_vif-3.2.0 → os_vif-3.4.0}/os_vif/tests/unit/__init__.py +0 -0
  67. {os_vif-3.2.0 → os_vif-3.4.0}/os_vif/tests/unit/base.py +0 -0
  68. {os_vif-3.2.0 → os_vif-3.4.0}/os_vif/tests/unit/internal/__init__.py +0 -0
  69. {os_vif-3.2.0 → os_vif-3.4.0}/os_vif/tests/unit/internal/ip/__init__.py +0 -0
  70. {os_vif-3.2.0 → os_vif-3.4.0}/os_vif/tests/unit/internal/ip/linux/__init__.py +0 -0
  71. {os_vif-3.2.0 → os_vif-3.4.0}/os_vif/tests/unit/internal/ip/linux/test_impl_pyroute2.py +0 -0
  72. {os_vif-3.2.0 → os_vif-3.4.0}/os_vif/tests/unit/internal/ip/test_api.py +0 -0
  73. {os_vif-3.2.0 → os_vif-3.4.0}/os_vif/tests/unit/internal/ip/windows/__init__.py +0 -0
  74. {os_vif-3.2.0 → os_vif-3.4.0}/os_vif/tests/unit/internal/ip/windows/test_impl_netifaces.py +0 -0
  75. {os_vif-3.2.0 → os_vif-3.4.0}/os_vif/tests/unit/test_base.py +0 -0
  76. {os_vif-3.2.0 → os_vif-3.4.0}/os_vif/tests/unit/test_exception.py +0 -0
  77. {os_vif-3.2.0 → os_vif-3.4.0}/os_vif/tests/unit/test_host_info.py +0 -0
  78. {os_vif-3.2.0 → os_vif-3.4.0}/os_vif/tests/unit/test_objects.py +0 -0
  79. {os_vif-3.2.0 → os_vif-3.4.0}/os_vif/tests/unit/test_os_vif.py +0 -0
  80. {os_vif-3.2.0 → os_vif-3.4.0}/os_vif/tests/unit/test_vif.py +0 -0
  81. {os_vif-3.2.0 → os_vif-3.4.0}/os_vif/utils.py +0 -0
  82. {os_vif-3.2.0 → os_vif-3.4.0}/os_vif/version.py +0 -0
  83. {os_vif-3.2.0 → os_vif-3.4.0}/os_vif.egg-info/dependency_links.txt +0 -0
  84. {os_vif-3.2.0 → os_vif-3.4.0}/os_vif.egg-info/entry_points.txt +0 -0
  85. {os_vif-3.2.0 → os_vif-3.4.0}/os_vif.egg-info/not-zip-safe +0 -0
  86. {os_vif-3.2.0 → os_vif-3.4.0}/os_vif.egg-info/requires.txt +0 -0
  87. {os_vif-3.2.0 → os_vif-3.4.0}/os_vif.egg-info/top_level.txt +0 -0
  88. {os_vif-3.2.0 → os_vif-3.4.0}/playbooks/openstack-tox-functional-ovs-with-sudo/Debian.yaml +0 -0
  89. {os_vif-3.2.0 → os_vif-3.4.0}/playbooks/openstack-tox-functional-ovs-with-sudo/Gentoo.yaml +0 -0
  90. {os_vif-3.2.0 → os_vif-3.4.0}/playbooks/openstack-tox-functional-ovs-with-sudo/RedHat.yaml +0 -0
  91. {os_vif-3.2.0 → os_vif-3.4.0}/playbooks/openstack-tox-functional-ovs-with-sudo/Suse.yaml +0 -0
  92. {os_vif-3.2.0 → os_vif-3.4.0}/playbooks/openstack-tox-functional-ovs-with-sudo/pre.yaml +0 -0
  93. {os_vif-3.2.0 → os_vif-3.4.0}/releasenotes/notes/OVSVif-hybrid-unplug-f37bf57bc8e913de.yaml +0 -0
  94. {os_vif-3.2.0 → os_vif-3.4.0}/releasenotes/notes/add-abstract-ovsdb-api-8f04df58d4ed5b73.yaml +0 -0
  95. {os_vif-3.2.0 → os_vif-3.4.0}/releasenotes/notes/add-fast-path-vhostuser-support-fe87e558326909b6.yaml +0 -0
  96. {os_vif-3.2.0 → os_vif-3.4.0}/releasenotes/notes/add-no-op-plugin-763a6703e7328a24.yaml +0 -0
  97. {os_vif-3.2.0 → os_vif-3.4.0}/releasenotes/notes/add-ovs-representor-portprofile-5f8290e5a40bf0a4.yaml +0 -0
  98. {os_vif-3.2.0 → os_vif-3.4.0}/releasenotes/notes/add-ovs-vhostuser-support-2ba8de51c1f3a244.yaml +0 -0
  99. {os_vif-3.2.0 → os_vif-3.4.0}/releasenotes/notes/add-ovsdb-native-322fffb49c91503d.yaml +0 -0
  100. {os_vif-3.2.0 → os_vif-3.4.0}/releasenotes/notes/always-plug-vifs-for-ovs-1d033fc49a9c6c4e.yaml +0 -0
  101. {os_vif-3.2.0 → os_vif-3.4.0}/releasenotes/notes/brctl-removal-a5b0e69b865afa57.yaml +0 -0
  102. {os_vif-3.2.0 → os_vif-3.4.0}/releasenotes/notes/bug-1892132-812e6d5ce0588ebb.yaml +0 -0
  103. {os_vif-3.2.0 → os_vif-3.4.0}/releasenotes/notes/contextlib-and-nested-with-statements-2747a9ebb9a5bfd7.yaml +0 -0
  104. {os_vif-3.2.0 → os_vif-3.4.0}/releasenotes/notes/default-qos-policy-for-ovs-26f8806046a59c82.yaml +0 -0
  105. {os_vif-3.2.0 → os_vif-3.4.0}/releasenotes/notes/default-to-native-ovsdb-driver-112fb5adf6e19a30.yaml +0 -0
  106. {os_vif-3.2.0 → os_vif-3.4.0}/releasenotes/notes/do-not-force-mac-ageing-c6e8d750130c5740.yaml +0 -0
  107. {os_vif-3.2.0 → os_vif-3.4.0}/releasenotes/notes/drop-py36-support-0e9b07073f6ad73f.yaml +0 -0
  108. {os_vif-3.2.0 → os_vif-3.4.0}/releasenotes/notes/drop-python2-support-7a4bc7d31253c1e5.yaml +0 -0
  109. {os_vif-3.2.0 → os_vif-3.4.0}/releasenotes/notes/ensure-ovs-bridge-a0c1b51f469c92d0.yaml +0 -0
  110. {os_vif-3.2.0 → os_vif-3.4.0}/releasenotes/notes/extend-vhostuser-object-fada14a1457d4e56.yaml +0 -0
  111. {os_vif-3.2.0 → os_vif-3.4.0}/releasenotes/notes/fix-ovs-plugin-describe-049750609559f1ba.yaml +0 -0
  112. {os_vif-3.2.0 → os_vif-3.4.0}/releasenotes/notes/fix-stevedore-entrypoints-8002ec7a5166c977.yaml +0 -0
  113. {os_vif-3.2.0 → os_vif-3.4.0}/releasenotes/notes/fix-vif-openvswitch-fa0d19be9dd668e1.yaml +0 -0
  114. {os_vif-3.2.0 → os_vif-3.4.0}/releasenotes/notes/generic-datapath-offloads-41cabb6842b41533.yaml +0 -0
  115. {os_vif-3.2.0 → os_vif-3.4.0}/releasenotes/notes/initial-release-2c71d6bbf55f763b.yaml +0 -0
  116. {os_vif-3.2.0 → os_vif-3.4.0}/releasenotes/notes/oslo-config-opts-entrypoints-e83f907b686d774a.yaml +0 -0
  117. {os_vif-3.2.0 → os_vif-3.4.0}/releasenotes/notes/per-port-bridge-c6a50179a0256de3.yaml +0 -0
  118. {os_vif-3.2.0 → os_vif-3.4.0}/releasenotes/notes/port-profile-info-linux-bridge-4800f5a0b7328615.yaml +0 -0
  119. {os_vif-3.2.0 → os_vif-3.4.0}/releasenotes/notes/port-profile-info-ovs-63b46a3eafc11de2.yaml +0 -0
  120. {os_vif-3.2.0 → os_vif-3.4.0}/releasenotes/notes/prevent-lb-reply-arp-6459133bfb056069.yaml +0 -0
  121. {os_vif-3.2.0 → os_vif-3.4.0}/releasenotes/notes/remove_iptools_implementation-2eb866573a680e61.yaml +0 -0
  122. {os_vif-3.2.0 → os_vif-3.4.0}/releasenotes/notes/revert-always-plug-port-for-ovs-hybrid-plug-false-dc015985cbc5443b.yaml +0 -0
  123. {os_vif-3.2.0 → os_vif-3.4.0}/releasenotes/notes/vhost-user-mtu-support-cbc7d02a6665fab1.yaml +0 -0
  124. {os_vif-3.2.0 → os_vif-3.4.0}/releasenotes/notes/vhost-user-reconnect-fa4cbb731b787f71.yaml +0 -0
  125. {os_vif-3.2.0 → os_vif-3.4.0}/releasenotes/source/2023.1.rst +0 -0
  126. {os_vif-3.2.0 → os_vif-3.4.0}/releasenotes/source/_static/.placeholder +0 -0
  127. {os_vif-3.2.0 → os_vif-3.4.0}/releasenotes/source/_templates/.placeholder +0 -0
  128. {os_vif-3.2.0 → os_vif-3.4.0}/releasenotes/source/conf.py +0 -0
  129. {os_vif-3.2.0 → os_vif-3.4.0}/releasenotes/source/newton.rst +0 -0
  130. {os_vif-3.2.0 → os_vif-3.4.0}/releasenotes/source/ocata.rst +0 -0
  131. {os_vif-3.2.0 → os_vif-3.4.0}/releasenotes/source/pike.rst +0 -0
  132. {os_vif-3.2.0 → os_vif-3.4.0}/releasenotes/source/queens.rst +0 -0
  133. {os_vif-3.2.0 → os_vif-3.4.0}/releasenotes/source/rocky.rst +0 -0
  134. {os_vif-3.2.0 → os_vif-3.4.0}/releasenotes/source/stein.rst +0 -0
  135. {os_vif-3.2.0 → os_vif-3.4.0}/releasenotes/source/train.rst +0 -0
  136. {os_vif-3.2.0 → os_vif-3.4.0}/releasenotes/source/unreleased.rst +0 -0
  137. {os_vif-3.2.0 → os_vif-3.4.0}/releasenotes/source/ussuri.rst +0 -0
  138. {os_vif-3.2.0 → os_vif-3.4.0}/releasenotes/source/victoria.rst +0 -0
  139. {os_vif-3.2.0 → os_vif-3.4.0}/releasenotes/source/wallaby.rst +0 -0
  140. {os_vif-3.2.0 → os_vif-3.4.0}/releasenotes/source/xena.rst +0 -0
  141. {os_vif-3.2.0 → os_vif-3.4.0}/releasenotes/source/yoga.rst +0 -0
  142. {os_vif-3.2.0 → os_vif-3.4.0}/releasenotes/source/zed.rst +0 -0
  143. {os_vif-3.2.0 → os_vif-3.4.0}/requirements.txt +0 -0
  144. {os_vif-3.2.0 → os_vif-3.4.0}/setup.cfg +0 -0
  145. {os_vif-3.2.0 → os_vif-3.4.0}/setup.py +0 -0
  146. {os_vif-3.2.0 → os_vif-3.4.0}/test-requirements.txt +0 -0
  147. {os_vif-3.2.0 → os_vif-3.4.0}/tox.ini +0 -0
  148. {os_vif-3.2.0 → os_vif-3.4.0}/vif_plug_linux_bridge/__init__.py +0 -0
  149. {os_vif-3.2.0 → os_vif-3.4.0}/vif_plug_linux_bridge/constants.py +0 -0
  150. {os_vif-3.2.0 → os_vif-3.4.0}/vif_plug_linux_bridge/iptables.py +0 -0
  151. {os_vif-3.2.0 → os_vif-3.4.0}/vif_plug_linux_bridge/linux_bridge.py +0 -0
  152. {os_vif-3.2.0 → os_vif-3.4.0}/vif_plug_linux_bridge/linux_net.py +0 -0
  153. {os_vif-3.2.0 → os_vif-3.4.0}/vif_plug_linux_bridge/privsep.py +0 -0
  154. {os_vif-3.2.0 → os_vif-3.4.0}/vif_plug_linux_bridge/tests/__init__.py +0 -0
  155. {os_vif-3.2.0 → os_vif-3.4.0}/vif_plug_linux_bridge/tests/unit/__init__.py +0 -0
  156. {os_vif-3.2.0 → os_vif-3.4.0}/vif_plug_linux_bridge/tests/unit/test_linux_net.py +0 -0
  157. {os_vif-3.2.0 → os_vif-3.4.0}/vif_plug_linux_bridge/tests/unit/test_plugin.py +0 -0
  158. {os_vif-3.2.0 → os_vif-3.4.0}/vif_plug_noop/__init__.py +0 -0
  159. {os_vif-3.2.0 → os_vif-3.4.0}/vif_plug_noop/noop.py +0 -0
  160. {os_vif-3.2.0 → os_vif-3.4.0}/vif_plug_noop/tests/__init__.py +0 -0
  161. {os_vif-3.2.0 → os_vif-3.4.0}/vif_plug_noop/tests/unit/__init__.py +0 -0
  162. {os_vif-3.2.0 → os_vif-3.4.0}/vif_plug_noop/tests/unit/test_plugin.py +0 -0
  163. {os_vif-3.2.0 → os_vif-3.4.0}/vif_plug_ovs/__init__.py +0 -0
  164. {os_vif-3.2.0 → os_vif-3.4.0}/vif_plug_ovs/constants.py +0 -0
  165. {os_vif-3.2.0 → os_vif-3.4.0}/vif_plug_ovs/exception.py +0 -0
  166. {os_vif-3.2.0 → os_vif-3.4.0}/vif_plug_ovs/linux_net.py +0 -0
  167. {os_vif-3.2.0 → os_vif-3.4.0}/vif_plug_ovs/ovsdb/__init__.py +0 -0
  168. {os_vif-3.2.0 → os_vif-3.4.0}/vif_plug_ovs/ovsdb/api.py +0 -0
  169. {os_vif-3.2.0 → os_vif-3.4.0}/vif_plug_ovs/ovsdb/impl_idl.py +0 -0
  170. {os_vif-3.2.0 → os_vif-3.4.0}/vif_plug_ovs/ovsdb/impl_vsctl.py +0 -0
  171. {os_vif-3.2.0 → os_vif-3.4.0}/vif_plug_ovs/ovsdb/ovsdb_lib.py +0 -0
  172. {os_vif-3.2.0 → os_vif-3.4.0}/vif_plug_ovs/privsep.py +0 -0
  173. {os_vif-3.2.0 → os_vif-3.4.0}/vif_plug_ovs/tests/__init__.py +0 -0
  174. {os_vif-3.2.0 → os_vif-3.4.0}/vif_plug_ovs/tests/functional/__init__.py +0 -0
  175. {os_vif-3.2.0 → os_vif-3.4.0}/vif_plug_ovs/tests/functional/base.py +0 -0
  176. {os_vif-3.2.0 → os_vif-3.4.0}/vif_plug_ovs/tests/functional/ovsdb/__init__.py +0 -0
  177. {os_vif-3.2.0 → os_vif-3.4.0}/vif_plug_ovs/tests/functional/ovsdb/test_ovsdb_lib.py +0 -0
  178. {os_vif-3.2.0 → os_vif-3.4.0}/vif_plug_ovs/tests/functional/test_plugin.py +0 -0
  179. {os_vif-3.2.0 → os_vif-3.4.0}/vif_plug_ovs/tests/unit/__init__.py +0 -0
  180. {os_vif-3.2.0 → os_vif-3.4.0}/vif_plug_ovs/tests/unit/ovsdb/__init__.py +0 -0
  181. {os_vif-3.2.0 → os_vif-3.4.0}/vif_plug_ovs/tests/unit/ovsdb/test_ovsdb_lib.py +0 -0
  182. {os_vif-3.2.0 → os_vif-3.4.0}/vif_plug_ovs/tests/unit/test_linux_net.py +0 -0
@@ -0,0 +1,4 @@
1
+ [run]
2
+ branch = True
3
+ source = os_vif
4
+ omit = os_vif/tests/*
@@ -53,11 +53,13 @@ Spencer Yu <yushb@gohighsec.com>
53
53
  Sriharsha Basavapatna <sriharsha.basavapatna@broadcom.com>
54
54
  Stephen Finucane <sfinucan@redhat.com>
55
55
  Swapnil Kulkarni (coolsvap) <me@coolsvap.net>
56
+ Takashi Kajinami <kajinamit@oss.nttdata.com>
56
57
  Takashi NATSUME <natsume.takashi@lab.ntt.co.jp>
57
58
  Takashi Natsume <takanattie@gmail.com>
58
59
  Thomas Bechtold <tbechtold@suse.com>
59
60
  Tony Breeds <tony@bakeyournoodle.com>
60
61
  Tony Xu <hhktony@gmail.com>
62
+ Vasyl Saienko <vsaienko@mirantis.com>
61
63
  Vieri <15050873171@163.com>
62
64
  Vu Cong Tuan <tuanvc@vn.fujitsu.com>
63
65
  XinxinShen <shenxinxin@inspur.com>
@@ -1,6 +1,18 @@
1
1
  CHANGES
2
2
  =======
3
3
 
4
+ 3.4.0
5
+ -----
6
+
7
+ * coveragerc: Remove non-existent path
8
+ * Deprecate Windows support
9
+
10
+ 3.3.0
11
+ -----
12
+
13
+ * Update master for stable/2023.2
14
+ * Don't break traffic if port already exists
15
+
4
16
  3.2.0
5
17
  -----
6
18
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 1.2
2
2
  Name: os_vif
3
- Version: 3.2.0
3
+ Version: 3.4.0
4
4
  Summary: A library for plugging and unplugging virtual interfaces in OpenStack.
5
5
  Home-page: https://docs.openstack.org/os-vif/latest/
6
6
  Author: OpenStack
@@ -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, stacklevel=3)
18
21
  from os_vif.internal.ip.windows.impl_netifaces import \
19
22
  Netifaces as ip_lib_class
20
23
  else:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 1.2
2
2
  Name: os-vif
3
- Version: 3.2.0
3
+ Version: 3.4.0
4
4
  Summary: A library for plugging and unplugging virtual interfaces in OpenStack.
5
5
  Home-page: https://docs.openstack.org/os-vif/latest/
6
6
  Author: OpenStack
@@ -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,7 @@ 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
122
125
  releasenotes/source/conf.py
123
126
  releasenotes/source/index.rst
124
127
  releasenotes/source/newton.rst
@@ -0,0 +1 @@
1
+ {"git_version": "a10ac95", "is_release": true}
@@ -0,0 +1,4 @@
1
+ ---
2
+ features:
3
+ - |
4
+ Support for Windows operating systems has been deprecated.
@@ -0,0 +1,7 @@
1
+ ---
2
+ fixes:
3
+ - |
4
+ An issue when after nova-compute service restart configured with
5
+ `isolate_vif=True` instances lost connectivity unless neutron
6
+ rebinds ports. Which is normally happening by agent restart or port
7
+ update.
@@ -0,0 +1,6 @@
1
+ ===========================
2
+ 2023.2 Series Release Notes
3
+ ===========================
4
+
5
+ .. release-notes::
6
+ :branch: stable/2023.2
@@ -6,6 +6,7 @@ Release Notes
6
6
  :maxdepth: 1
7
7
 
8
8
  unreleased
9
+ 2023.2
9
10
  2023.1
10
11
  zed
11
12
  yoga
@@ -186,6 +186,13 @@ class OvsPlugin(plugin.PluginBase):
186
186
 
187
187
  return True
188
188
 
189
+ def _isolate_vif(self, vif_name, bridge):
190
+ # NOTE(vsaienko): don't break traffic if port already exists,
191
+ # we assume it is called when nova-compute is initialized and
192
+ # since port is present it should be bound already.
193
+ return (self.config.isolate_vif and
194
+ not self.ovsdb.port_exists(vif_name, bridge))
195
+
189
196
  def _create_vif_port(self, vif, vif_name, instance_info, **kwargs):
190
197
  mtu = self._get_mtu(vif)
191
198
  # NOTE(sean-k-mooney): As part of a partial fix to bug #1734320
@@ -200,7 +207,8 @@ class OvsPlugin(plugin.PluginBase):
200
207
  # TODO(sean-k-mooney): Extend neutron to record what ml2 driver
201
208
  # bound the interface in the vif binding details so isolation
202
209
  # can be enabled automatically in the future.
203
- if self.config.isolate_vif:
210
+ bridge = kwargs.pop('bridge', vif.network.bridge)
211
+ if self._isolate_vif(vif_name, bridge):
204
212
  kwargs['tag'] = constants.DEAD_VLAN
205
213
  qos_type = self._get_qos_type(vif)
206
214
  if qos_type is not None:
@@ -215,7 +223,6 @@ class OvsPlugin(plugin.PluginBase):
215
223
  # for more details.
216
224
  if not self.ovsdb.port_exists(vif_name, vif.network.bridge):
217
225
  kwargs['qos_type'] = qos_type
218
- bridge = kwargs.pop('bridge', vif.network.bridge)
219
226
  self.ovsdb.create_ovs_vif_port(
220
227
  bridge,
221
228
  vif_name,
@@ -302,7 +309,9 @@ class OvsPlugin(plugin.PluginBase):
302
309
  vif, vif.vif_name, instance_info, bridge=port_bridge_name,
303
310
  set_ids=False
304
311
  )
305
- tag = constants.DEAD_VLAN if self.config.isolate_vif else None
312
+ tag = (constants.DEAD_VLAN
313
+ if self._isolate_vif(int_bridge_patch, int_bridge_name)
314
+ else None)
306
315
  iface_id = vif.id
307
316
  mac = vif.address
308
317
  instance_id = instance_info.uuid
@@ -187,8 +187,28 @@ class PluginTest(testtools.TestCase):
187
187
  interface_type=constants.OVS_VHOSTUSER_INTERFACE_TYPE)
188
188
 
189
189
  @mock.patch.object(ovsdb_lib.BaseOVS, 'create_ovs_vif_port')
190
- def test_create_vif_port_isolate(self, mock_create_ovs_vif_port):
190
+ @mock.patch.object(ovsdb_lib.BaseOVS, 'port_exists')
191
+ def test_create_vif_port_isolate_port_no_isolate_vif_no_port(
192
+ self, mock_port_exists, mock_create_ovs_vif_port):
191
193
  plugin = ovs.OvsPlugin.load(constants.PLUGIN_NAME)
194
+ mock_port_exists.return_value = False
195
+ with mock.patch.object(plugin.config, 'isolate_vif', False):
196
+ plugin._create_vif_port(
197
+ self.vif_ovs, mock.sentinel.vif_name, self.instance,
198
+ interface_type=constants.OVS_VHOSTUSER_INTERFACE_TYPE)
199
+ mock_create_ovs_vif_port.assert_called_once_with(
200
+ self.vif_ovs.network.bridge, mock.sentinel.vif_name,
201
+ self.vif_ovs.port_profile.interface_id,
202
+ self.vif_ovs.address, self.instance.uuid,
203
+ mtu=plugin.config.network_device_mtu,
204
+ interface_type=constants.OVS_VHOSTUSER_INTERFACE_TYPE)
205
+
206
+ @mock.patch.object(ovsdb_lib.BaseOVS, 'create_ovs_vif_port')
207
+ @mock.patch.object(ovsdb_lib.BaseOVS, 'port_exists')
208
+ def test_create_vif_port_isolate_port_isolate_vif_no_port(
209
+ self, mock_port_exists, mock_create_ovs_vif_port):
210
+ plugin = ovs.OvsPlugin.load(constants.PLUGIN_NAME)
211
+ mock_port_exists.return_value = False
192
212
  with mock.patch.object(plugin.config, 'isolate_vif', True):
193
213
  plugin._create_vif_port(
194
214
  self.vif_ovs, mock.sentinel.vif_name, self.instance,
@@ -201,6 +221,23 @@ class PluginTest(testtools.TestCase):
201
221
  interface_type=constants.OVS_VHOSTUSER_INTERFACE_TYPE,
202
222
  tag=constants.DEAD_VLAN)
203
223
 
224
+ @mock.patch.object(ovsdb_lib.BaseOVS, 'create_ovs_vif_port')
225
+ @mock.patch.object(ovsdb_lib.BaseOVS, 'port_exists')
226
+ def test_create_vif_port_isolate_port_isolate_vif_port_exists(
227
+ self, mock_port_exists, mock_create_ovs_vif_port):
228
+ plugin = ovs.OvsPlugin.load(constants.PLUGIN_NAME)
229
+ mock_port_exists.return_value = True
230
+ with mock.patch.object(plugin.config, 'isolate_vif', True):
231
+ plugin._create_vif_port(
232
+ self.vif_ovs, mock.sentinel.vif_name, self.instance,
233
+ interface_type=constants.OVS_VHOSTUSER_INTERFACE_TYPE)
234
+ mock_create_ovs_vif_port.assert_called_once_with(
235
+ self.vif_ovs.network.bridge, mock.sentinel.vif_name,
236
+ self.vif_ovs.port_profile.interface_id,
237
+ self.vif_ovs.address, self.instance.uuid,
238
+ mtu=plugin.config.network_device_mtu,
239
+ interface_type=constants.OVS_VHOSTUSER_INTERFACE_TYPE)
240
+
204
241
  @mock.patch.object(ovs, 'sys')
205
242
  @mock.patch.object(ovs.OvsPlugin, '_plug_vif_generic')
206
243
  def test_plug_ovs_port_bridge_false(self, plug_vif_generic, mock_sys):
os_vif-3.2.0/.coveragerc DELETED
@@ -1,4 +0,0 @@
1
- [run]
2
- branch = True
3
- source = os_vif
4
- omit = os_vif/tests/*,os_vif/openstack/*
@@ -1 +0,0 @@
1
- {"git_version": "da742a8", "is_release": true}
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes