* Update ovsdbapp from branch 'master'
to d5e21c17b28cb063d3ab4005bfde973c1321107b
- Fix BFD functional test, avoid comparing status column
The status column is updated by OVN so we cannot rely on its
contents being stable.
The test already attempts to address this by using frozen rows,
but that does not fully solve the issue as objects are created at
different points in time and then compared, which may give
unpredictable results.
Filter out the `status` column from the affected tests.
Closes-Bug: #2058264
Change-Id: Ibaa54d93109434b445f54de583f534021defccbb
Signed-off-by: Frode Nordahl <fnordahl@ubuntu.com>
* Update ovsdbapp from branch 'master'
to 1ddf16801f765a887e7c55539f19a0ae5adcb42b
- Merge "Update master for stable/2024.1"
- Update master for stable/2024.1
Add file to the reno documentation build to show release notes for
stable/2024.1.
Use pbr instruction to increment the minor version number
automatically so that master versions are higher than the versions on
stable/2024.1.
Sem-Ver: feature
Change-Id: I5b86f41d5841636b94fe5be243f243dd08a6fe8a
* Update ovsdbapp from branch 'master'
to 4a2302617435b0ab249f1373c791f86bbcab1c72
- Merge "nb: commands: fix passing string to LSP attach/detach mirror API"
- nb: commands: fix passing string to LSP attach/detach mirror API
Pass an instance of idlutils.Row mirror as a value instead of raw string/uuid
to addvalue/delvalue methods since OVS library Atom.from_python() ctor
doesn't expect string as an argument.
Closes-bug: #2055094
Change-Id: Ibc1a5aaefe68f7e02f92285900654c9f70aed69e
* Update ovsdbapp from branch 'master'
to f86a5985e7a309e69fa93658000b8356242b6322
- ovn-sb: remove chassis from Chassis_Private on ChassisDelCommand
When deleting a chassis from OVN Southbound it should be also deleted from Chassis_Private table
Signed-off-by: Seena Fallah <seenafallah@gmail.com>
Change-Id: Ibff5fb6c4a809e798b5cf0e70f0861264043c7ba
* Update ovsdbapp from branch 'master'
to 7a242c6ed8618052b65e54306a049c9667ca893c
- Merge "reno: Update master for unmaintained/victoria"
- reno: Update master for unmaintained/victoria
Update the victoria release notes configuration to build from
unmaintained/victoria.
Change-Id: I7074a4d86f12f9f4bf51edf37e890de8440b4170
* Update ovsdbapp from branch 'master'
to ac5d59926040a51606d59a6a5da2370fe092a3c1
- Merge "reno: Update master for unmaintained/wallaby"
- reno: Update master for unmaintained/wallaby
Update the wallaby release notes configuration to build from
unmaintained/wallaby.
Change-Id: Ifafbc4cc9ad107d40184dbd0996abb2bd4692305
* Update ovsdbapp from branch 'master'
to 4b6ece964f0576a107763124a846b0c9ee07130f
- reno: Update master for unmaintained/xena
Update the xena release notes configuration to build from
unmaintained/xena.
Change-Id: I90e829472ed5353f63f54a6f7ed52014498d7229
* Update ovsdbapp from branch 'master'
to 11b11a1108c75a7847e080c7a9d98828bd746e53
- Merge "Update supported python versions"
- Update supported python versions
Python 3.10 and 3.11 are now part of the tested runtimes.
Change-Id: Iee9578401a7501b97f5f03bbd846b93e450f51b6
* Update ovsdbapp from branch 'master'
to be6e8d10fb2b8da0e1fd4f791cac5c909dfe0b24
- reno: Update master for unmaintained/yoga
Update the yoga release notes configuration to build from
unmaintained/yoga.
Change-Id: I338bf44421a41e1216c0fee8d21cb4ba2395de34
* Update ovsdbapp from branch 'master'
to b9b15d89cf67418ff323e6c31e85bec4e260b47f
- tox: Drop envdir
tox now always recreates an env although the env is shared using envdir
options.
~~~
$ tox -e genpolicy
genpolicy: recreate env because env type changed from
{'name': 'genconfig', 'type': 'VirtualEnvRunner'} to
{'name': 'genpolicy', 'type': 'VirtualEnvRunner'}
~~~
According to the maintainer of tox, this functionality is not intended
to be supported.
https://github.com/tox-dev/tox/issues/425#issuecomment-1011944293
Change-Id: I63264b8c11ceea4b312b251c9a28f4a246592733
* Update ovsdbapp from branch 'master'
to fc9f465f6056c1259c265d26fb3d51d0b61d76cd
- Merge "Bump hacking"
- Bump hacking
... because hacking 3.0.x is too old. pylint is also bumped to resolve
conflicting dependencies. The new version is currently used in neutron.
The pylint setting is imported from neutron with one additional
disablement to ignore the following error.
ovsdbapp/schema/open_vswitch/helpers.py:47:14: R1732: Consider using
'with' for resource-allocating operations (consider-using-with)
Change-Id: I41b4524ff13b8d46d2e0c76f09b5ec47601bd955
* Update ovsdbapp from branch 'master'
to 374bf64068418e5111f6e2f3e2bf1bd4e3d84b15
- Support add/remove CIDR type address in Address_Set cmds
Related-Bug: #1982287
Change-Id: I6bfd486bf037da5b4d2dd61c84a50d6a7fbfb39d
* Update ovsdbapp from branch 'master'
to 1cb9acc015414ba1eda822fcce886b678117c554
- Merge "add Port_Binding to lookup_table"
- add Port_Binding to lookup_table
Currently the index logical_port on Port_Binding
is missing because autocreate_indices() skips
indexes with multiple columns:
-> "indexes": [["datapath", "tunnel_key"], ["logical_port"]]
This slows down the ovn-bgp-agent at scale(31060 Port_Binding
entries) heavily. (See bug #https://bugs.launchpad.net/ovn-bgp-agent/+bug/2045892)
Full sync iteration:
Without Port_Binding index: ~6min
With Port_Binding index: ~5sec
Closes-Bug: #2045892
Change-Id: I815c695fd8a5e12a94e02a7a29da8aadc99541c4
* Update ovsdbapp from branch 'master'
to 8e55b0b74cfdf63729d69638c040593a666a8d2d
- Merge "venv: unit tests don't work for 'hardware_vtep'"
- venv: unit tests don't work for 'hardware_vtep'
If OVN and OVS are not installed on the system, but cloned into '.venv',
the 'OvsVtepVenvFixture' class is not instantiated correctly and all
unit tests fail.
Closes-bug: 2037568
Change-Id: Id26004b57cb02900faed5dabeee8956ff9c66b54
* Update ovsdbapp from branch 'master'
to c22fbe766b300981e2e0ba482f5d8c55df7fa998
- Merge "Handle events with conditions and match_fn"
- Handle events with conditions and match_fn
The original goal of adding match_fn() the ovs_idl backend
implementation of RowEvent was to give an option to specify more
complex matching behavior than conditions/old_conditions allowed.
It was never intended that users would use both together, but it
also was not documented that that was the case. This patch allows
conditions and match_fn() to be treated as a logical AND to avoid
accidentally removing conditions when adding a match_fn()
Change-Id: Ifc18bf42e2a0ce8247bf986d14646f66d9554ca7
* Update ovsdbapp from branch 'master'
to 21d663a47567cfb12922d34620276ea0b4456e08
- Merge "TAAS: Add commands for creating Mirrors"
- TAAS: Add commands for creating Mirrors
Note: mirrors are available only from OVN v22.12.0
Change-Id: I8d70d24beefb2813c977e9f89aa0535c3494ee85
Related-Bug: #2015471
* Update ovsdbapp from branch 'master'
to ef564d64aa0dec3eb230cccd5464de944b497eed
- nb: allow to add route even if learned route exists
Allow to install static route even if static route with same CIDR has
been learned by ovn-ic from another AZ.
See this commit for more information: 68105f68c3
Closes-bug: 2037573
Change-Id: I2a7a110551ee302dc9602ef6b01153262ea637d4
* Update ovsdbapp from branch 'master'
to dae455b6eea3dcae931d07d4a81c03190e8259ed
- nb: provide 'route_table' in lr-route-{add,del,list}
Adds possibility to specify 'route_table' in methods for static
routes.
See this commit for more information:
1655a6c146
Closes-bug: 2037652
Change-Id: Ic965ae098adb6db2e5a057eee74250e3b6331b01
* Update ovsdbapp from branch 'master'
to 033b6e3bd217c3e424e13f94893d1cb112abf87c
- nb: add 'nexthop' argument to 'lr_route_del'
In request https://review.opendev.org/c/openstack/ovsdbapp/+/882268, the ability to create ECMP routes was added. This PR adds the ability to delete these routes.
Closes-bug: 2037536
Change-Id: I84f234c6c5bbf4d318893166943de62fb87fff69
* Update ovsdbapp from branch 'master'
to a39b4f8e62bcef958cc962adfad0103a3a41c1ae
- Update master for stable/2023.2
Add file to the reno documentation build to show release notes for
stable/2023.2.
Use pbr instruction to increment the minor version number
automatically so that master versions are higher than the versions on
stable/2023.2.
Sem-Ver: feature
Change-Id: Ie46f51ba773dfa7dc321f954aafd269fff9fa194
* Update ovsdbapp from branch 'master'
to 6f7aed70982ba33ccf5a76a02bf9f9fa659e505c
- Add some basic usage documentation
This adds some basic usage documentation and a simple tutorial for
ovsdbapp.
Change-Id: I19583b439f0d8488e957265d89309abf08d307e7
* Update ovsdbapp from branch 'master'
to d542e5cee1c41703c0edb3e206c36c1392a57028
- Merge "Ensure LrpAddCommand may_exits works without peers"
- Ensure LrpAddCommand may_exits works without peers
This patch sets the default for peers to [] instead of None, to match
what it is stored on the DB
Closes-Bug: #2019109
Change-Id: I66948039e61503480fd140ee9e0ce645a6ef4453
* Update ovsdbapp from branch 'master'
to cc1ddf6a9e71c7a35be776e78a94af090f50c3f9
- Add support for ecmp routes
Add ECMP support so that routes with different nexthops but
same ip_prefix can be added
Change-Id: I57e0caa4e604a1152f5015a6aabf3b52349b3a02
* Update ovsdbapp from branch 'master'
to 770f77d86f8beb5beb50f6fa30cdd4432253951d
- Merge "Add if_exists and **kwargs columns to db_set"
- Add if_exists and **kwargs columns to db_set
The original API for db_set() out of an over-abundance of caution
use *args tuples in the format of ('column_name', value) due to the
fear that there may be OVSDB column names that were not valid
Python argument names (e.g. 'some-column'). But the OVSDB RFC
forbids column names that would be a problem.
This patch adds **columns which will be used only if there are
no values passed as *col_values. It also adds if_exists support
to db_set(), as there are situations where you don't want to throw
an error if you are updating a Row in a multi-op transaction and
it's possible that the row has been deleted on the server.
Change-Id: Ia17e545706a16f5c726ec52bae339e9362b0b614
* Update ovsdbapp from branch 'master'
to 2b9895b346b58d7e6af1cafc343df7686be3b81d
- Merge "Add 'no timeout' option to wait_for_change"
- Add 'no timeout' option to wait_for_change
Neutron currently overrides wait_for_change because it needs a
version without a timeout. This adds the ability to set either
timeout=None or timeout <= 0 to not timeout.
Change-Id: Iff708c259a5500848eab73b05da70300ff8e4134
* Update ovsdbapp from branch 'master'
to ab6682e3f6bc41a630beaa828861d4ae25d55909
- Add Interface paramteres to ``OvsdbIdl.add_port`` method.
Now it is possible to define the "Interface" parameters when creating
a "Port" register (a "Interface" register is created along with any
new "Port").
Related-Bug: #2006603
Change-Id: I6b946ef27b38e76fd70d2b529d645f5f09ac2404
* Update ovsdbapp from branch 'master'
to f2c5a39edd0e89b21455b49e9720be95fc0bd2dd
- Add new function ls_get_localnet_ports
This is used to detect if a given logical_switch has localnet
ports associated to it, and return them
Change-Id: Iabfc1bd0a1b2c6998a013d19c47cda10a3879c82
* Update ovsdbapp from branch 'master'
to ee28e381fb46a04be3451de65a5166dd457eede8
- Use OVN's OVS submodule for functional tests
The OVN tree for several years has had an OVS submodule that pulls
in the version of OVS it is guaranteed to work with. There is
currently a patch in OVS master that breaks the build of OVN main
so switch to using the submodule.
Change-Id: I61195cd3ebf8a5015890d3ba3988c3d9795ee817
* Update ovsdbapp from branch 'master'
to 2ed128014898c357063427e9347124835ff5384c
- [CI] Set the default OS_TEST_PATH in the stestr conf file
Set the default OS_TEST_PATH in the stestr configuration file. Any
other test environment can overwrite this variable in the "setenv"
section.
Change-Id: I51564920cec916031aaebf8151b015a3d87e9471
* Update ovsdbapp from branch 'master'
to 54dc562a1df4f993638243ac9f039a8d610f45d3
- Update master for stable/2023.1
Add file to the reno documentation build to show release notes for
stable/2023.1.
Use pbr instruction to increment the minor version number
automatically so that master versions are higher than the versions on
stable/2023.1.
Sem-Ver: feature
Change-Id: Ie65e709d20526528f35cc13b2a8cc393ea086deb
* Update ovsdbapp from branch 'master'
to 7733f0c5364de3805d7f8d5be429e0a464a7c6b1
- Define "LbAddIpPortMappingCommand" with latin chars
Closes-Bug: #2004186
Change-Id: Ic0e28b1113b6af1c66e6301e1851b620eac19824
* Update ovsdbapp from branch 'master'
to c8e7e9f619ce3b00ca86d42a3b18b81251d3c815
- Accept HA chassis group commands in HAChassisGroupAdd*
Now "HAChassisGroupAddChassisCommand" and
"HAChassisGroupDelChassisCommand" accept "HAChassisGroupAddCommand"
as input parameter.
That allows to add and remove "HA_Chassis" from the "HA_Chassis_Group"
register in the same transaction that has created the HA Chassis
Group.
Related-Bug: #1995078
Change-Id: I443796cc2fcd7eef46f968a8383d068bab6ae670
* Update ovsdbapp from branch 'master'
to 149d7db4a70fd9c87a6b6fe8275d779babd30374
- Update tox.ini for tox4
Change-Id: I7ec80abf6bda33ad3f074309f64491ee4af1c71b
* Update ovsdbapp from branch 'master'
to 5f429b72303abbad7bbd88dfc621166e3faabf90
- Use daemon property instead of setDaemon method
The setDaemon method of the threading.Thread was deprecated
in Python 3.10 (*).
Replace the setDaemon method with the daemon property.
*: https://docs.python.org/3.10/library/threading.html#threading.Thread.setDaemon
Change-Id: Id4b6df45ba4741e410692df7bd11db3f56f00f45
Signed-off-by: Takashi Natsume <takanattie@gmail.com>
* Update ovsdbapp from branch 'master'
to fd6dab160dfc7455019d83170d637f686d52a7f3
- Merge "Don't force_reconnect() on unhandled Idl exception"
- Don't force_reconnect() on unhandled Idl exception
There's no reason to believe that reconnecting to ovsdb-server will
resolve an unhandled exception in python-ovs. In addition, since users
often subclass Idl and add their own notify() methods, there could be
exceptions thrown from that code.
The best we can do is log what is going on and rely on users to fix
the issue. Delaying with sleep() is usually a bad idea since if there
was some kind of ovsdb reconnection, it will delay calls to Idl.run()
which will handle that reconnection over several calls.
Change-Id: Iab2177fb9fa653292a3805689895f98e0833dc4a
* Update ovsdbapp from branch 'master'
to 75d690d9b726129e28ebe64e566e860d77ba0ba0
- Fix logging exception while handling transaction exception
Transaction errors trigger logging exceptions due to the extra
comma that makes the second half of a message be treated as an
argument.
Change-Id: I83ef19f7fed673907a35f54dd123deb7996cce57
* Update ovsdbapp from branch 'master'
to 44756a4e1efdc0c71ca43109d6fce21559c5601d
- Switch to 2023.1 Python3 unit tests and generic template name
This is an automatically generated patch to ensure unit testing
is in place for all the of the tested runtimes for antelope. Also,
updating the template name to generic one.
See also the PTI in governance [1].
[1]: https://governance.openstack.org/tc/reference/project-testing-interface.html
Change-Id: Iec5b7754168062bfc194d67b24acf43b72fa2932
* Update ovsdbapp from branch 'master'
to bd6238591503fa6376a23e8cd302119dfeadea05
- Update master for stable/zed
Add file to the reno documentation build to show release notes for
stable/zed.
Use pbr instruction to increment the minor version number
automatically so that master versions are higher than the versions on
stable/zed.
Sem-Ver: feature
Change-Id: I0d59d513101e54a590ae1f1b3c30ae3cffa9c8e0
* Update ovsdbapp from branch 'master'
to c3bacb3ba37e2824920ac79766205a3b51ab12d5
- Fix TRY_AGAIN handling
I believe removing wait_for_change back in the day was an error.
We can't do the exponential backoff ourselves because that will
also delay reconnecting to the the db, because idl.run() needs to
be called. Also, do_commit() doesn't ensure that idl.run() is
called if status is TRY_AGAIN. wait_for_change() will ensure that
we call idl.run() to reconnect quickly and don't try the txn again
until we have reconnected and the seqno has changed.
Revert "Don't spam retries 100s of times a second"
This reverts commit 6596164f51217cc7fabf302ce14ccc9d9beaff1f.
Revert "Ensure idl.run() called on TRY_AGAIN"
This reverts commit 1810faecc9ad2345f3e2f9185ac64194c5a0d711.
Revert "Don't wait on TRY_AGAIN when calling commit_block()"
This reverts commit 158ae06bce0f56e93677f94c59f81e5e76ee1ccc.
Closes-Bug: #1988457
Change-Id: I237136262862d5117d08eb3b513a0b8658a79f05
* Update ovsdbapp from branch 'master'
to 96cf8d6288587423e65d5149016e07fb51430724
- Merge "nb: add support for lb health checks API"
- nb: add support for lb health checks API
This change adds functions and commands to add, delete, list, get and
update health checks of load balancers. Also added a method to get one
load balancer by name or uuid and methods to modify 'ip_port_mappings'
column in the load balancer.
Closes-Bug: 1964382
Change-Id: I3f8b63c64c7ac9c570dbd400c562fa97840429ca
* Update ovsdbapp from branch 'master'
to b286e3443791c077da7c44e3c6b67292305e63ff
- Merge "Provide base classes for {Get,Set}Options commands"
- Provide base classes for {Get,Set}Options commands
Move common code for all {Get,Set}Options commands to base classes.
Trivial-Fix
Change-Id: I0273d321f41ad525afa4b00a99dc2d64577c9ee5
* Update ovsdbapp from branch 'master'
to e5a849c302c55159efca8adb94dd520cc4463d60
- Merge "nb: add methods to modify the lrp.networks"
- nb: add methods to modify the lrp.networks
This change adds functions and commands to modify the 'lrp.networks'
column.
Closes-Bug: 1963700
Change-Id: I91d8be623dc51d332738728b569bbe4efd65de8d
* Update ovsdbapp from branch 'master'
to d26be1cdcd9695de3f0b164d56640154a22f0948
- Merge "vtep: add support for 'hardware_vtep' schema"
- vtep: add support for 'hardware_vtep' schema
Added support for the "hardware_vtep" schema. The ``HwVtepApiIdlImpl`` class provides interaction with "hw_vtep.db".
Closes-Bug: 1960513
Change-Id: I37138e91f9dd3e42908ac1e7e7c123323177a8e8
* Update ovsdbapp from branch 'master'
to 81bd6feafc7e7140226d8575624249083526389d
- Update python testing as per zed cycle teting runtime
In Zed cycle, we have dropped the python 3.6/3.7[1] testing
and its support. Add release notes and update the python
classifier for the same.
[1] https://governance.openstack.org/tc/reference/runtimes/zed.html
Change-Id: I0acb988427944f4a166fc94c42c9546f184b7e62
* Update ovsdbapp from branch 'master'
to 2e10d78ba356fec5187eac07a51d41e6fcc0a29d
- Handle OVS 2.17 change to Idl.tables
The update_tables() method needs to be updated to handle the new
IdlTable structure. Ultimately, we should move the update_tables
functionality into python_ovs. Until then, this should work with
both old and new versions of OVS.
Closes-Bug: #1972989
Co-authored-by: Rodolfo Alonso <ralonsoh@redhat.com>
Change-Id: I173032f7cc63f79ee72ac7263188253e1cb6ff76
* Update ovsdbapp from branch 'master'
to 8dc5192650d9ab897c4647fbc8d0e92e6ec81858
- Drop lower-constraints.txt and its testing
As discussed in TC PTG[1] and TC resolution[2], we are
dropping the lower-constraints.txt file and its testing.
We will keep lower bounds in the requirements.txt file but
with a note that these are not tested lower bounds and we
try our best to keep them updated.
[1] https://etherpad.opendev.org/p/tc-zed-ptg#L326
[2] https://governance.openstack.org/tc/resolutions/20220414-drop-lower-constraints.html#proposal
Change-Id: Ie57cd00b241d810528d51c5afbef604db841b0ce
* Update ovsdbapp from branch 'master'
to be6622b552b4fe0c8e58a151e47f936587a9e89e
- Revert "Add an active wait in the "Backend.lookup""
This reverts commit bc004045cd30a708eadd64ded1af1b30ef1d1918.
There turned out to be some unresolvable issues with waiting for
events when lookup() is called from within a Command object in
the connection thread. Also the lookup of the notify_handler
was looking on the wrong object, so unless the notify_handler was
specifically passed (and we are not aware of any code that did),
this lookup timeout never actually was used.
Removing the feature, but leaving the arguments to avoid breaking
any code and adding a warning to update code if they are passed.
Change-Id: I42072ecb6a658814c7ff48cbc6f2a37a91d1eba8
* Update ovsdbapp from branch 'master'
to 06207b33e3317b984868aeb67aaba4bb8423e710
- Fix broken behavior after recent OVS update
After the monitor_cond_since/update3 support patch in ovs
(46d44cf3be0), directly setting table.condition is broken. This
isn't something that was every truly supported. Ultimately, it
would be good if we could make this code less dependent on exactly
what happens in Idl.__init__()--maybe adding an update_tables()
method in python-ovs.
To avoid stomping on the state stored in ConditionState, instead
of replacing Idl.tables, this removes deletions and adds new
tables that were passed. Existing tables are left alone.
Closes-Bug: 1965819
Change-Id: Iad0d7472a7adce4a79111f94a2f33fc5b1a5c530