Asking for floating IPs on an undercloud results in a NotFoundException.
Make openstackclient handle it gracefully.
No test is added for this because it would need to be a scenario test -
deploying a cloud without the foalting IP extension loaded. I don't
think this edge case is worth an entire new job just to exercise it.
Change-Id: I73b544853376d98ab0dbb14e32fefc43c1a8a179
Story: 2006863
None of these are actually supported by openstacksdk (intentionally so)
so we add our own manual implementations.
Change-Id: Ifd24f04ae4d1e56e0ce5ba0afe63828403bb7a6f
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
We use the compute client here to look up server IDs when filtering by
'device_id'.
Change-Id: I76515eaa4ce4e7c7d0173d2e0a91d7564ba7041a
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
This change is entirely automated save for the update of some mocks from
'io.open' to '__builtins__.open').
We are keeping this change separate from addition of the actual hook so
that we can ignore the commit later.
Change-Id: I0a9d8736632084473b57b57b693322447d7be519
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
This change implements the logic to call the new API for managing
external gateways.
Relevant Neutron core change:
https://review.opendev.org/c/openstack/neutron/+/873593
Co-Authored-by: Frode Nordahl <frode.nordahl@canonical.com>
Related-Bug: #2002687
Change-Id: Ib45f30f552934a0a5c035c3b7fadfc0d522219ba
The variable already takes multiple values, let's make it obvious
just by reading the code.
Related-Bug: #2002687
Change-Id: I294ee710d989d7a3a54331fca424e84708a2faab
Signed-off-by: Frode Nordahl <frode.nordahl@canonical.com>
This is to prepare for subsequent patches that will add support
for managing multiple gateways.
Related-Bug: #2002687
Change-Id: Ic088dca0b7cd83bd7568d775b4e70285ce72411d
Signed-off-by: Frode Nordahl <frode.nordahl@canonical.com>
Currently the Default setting for CustomSG Rule
is set to True, this means all new SGs inherit
these rules, with no way for user to override
this behavior.
Closes Bug: #2054629
Change-Id: Icef7c91654dbced76a5492437e723c4e2a0f3102
When using table output format, the dns_nameservers field
of a subnet is sorted, but it should not be as the order
is important.
Created an UnsortedListColumn() class in subnet.py so the
output is correct.
Updated the unit test accordingly to verify the order is
correct when an entry is removed.
Change-Id: I60a15a944f83549738305dd025db38ff8e165be7
Closes-bug: #2053201
An openstacksdk 'find_foo' proxy method will return None by default if a
resource is not found. You can change this behavior by setting
'ignore_missing=False'. We were doing this in most, but not all cases:
correct the issue.
In the event of calling 'image delete' with multiple images, it will no
longer fail on the first missing image and will instead attempt to
delete remaining images before failing.
Change-Id: I1e01d3c096dcaab731c28e496a182dd911229227
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
The --use-prefix-delegation argument when creating a
subnet should not take an argument of True/False, it
should simply trigger the code to set subnetpool_id
value to 'prefix_delegation'. Change action to correct
this.
Added unit test to cover missing checks.
Related-bug: #2028159
Change-Id: Ib7ee80100327b8611d4a354c7f4eb0e696c953da
These only apply to newly created default security groups i.e. when you
create a new project. They do not apply to existing default security
groups.
Change-Id: Ie01bf47dd8a0392354d17d984b41c1fad504e659
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
After setting a default dns_domain on a network
openstack net set --dns-domain 'example.com.' <NETWORKID>
the setting could not be reverted back to an empty string using
openstack net set --dns-domain '' <NETWORKID>
and the call also does not emit any error.
The same is true for the description of a network.
Reason was using the parsed argument directly as a condition instead of
comparing against None -- dropping the empty string as valid value.
The name parameter already accepted an empty string.
This change also adds a testcase for dns_domain, description and the
network name parameter, checking if the empty string is forwarded.
Change-Id: Ia7b9738205002b028c19e4f397411c86469cba1a
If you use the former, you get a pretty error message when there's a
failure. If you use the latter, you get an ugly traceback when used with
the '--debug' flag.
Without this change:
$ openstack flavor create ... --property '' foo
...
Traceback (most recent call last):
File "/tmp/venv/lib/python3.11/site-packages/cliff/app.py", line 402, in run_subcommand
parsed_args = cmd_parser.parse_args(sub_argv)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib64/python3.11/argparse.py", line 1862, in parse_args
args, argv = self.parse_known_args(args, namespace)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib64/python3.11/argparse.py", line 1895, in parse_known_args
namespace, args = self._parse_known_args(args, namespace)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib64/python3.11/argparse.py", line 2107, in _parse_known_args
start_index = consume_optional(start_index)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib64/python3.11/argparse.py", line 2047, in consume_optional
take_action(action, args, option_string)
File "/usr/lib64/python3.11/argparse.py", line 1971, in take_action
action(self, namespace, argument_values, option_string)
File "/tmp/venv/lib/python3.11/site-packages/osc_lib/cli/parseractions.py", line 45, in __call__
raise argparse.ArgumentTypeError(msg % str(values))
argparse.ArgumentTypeError: Expected 'key=value' type, but got:
clean_up CreateFlavor: Expected 'key=value' type, but got:
With this change:
$ openstack flavor create ... --property '' foo
...
usage: openstack flavor create [-h] [-f {json,shell,table,value,yaml}] [-c COLUMN]
[--noindent] [--prefix PREFIX] [--max-width <integer>]
[--fit-width] [--print-empty] [--id <id>]
[--ram <size-mb>] [--disk <size-gb>]
[--ephemeral <size-gb>] [--swap <size-mb>]
[--vcpus <vcpus>] [--rxtx-factor <factor>]
[--public | --private] [--property <key=value>]
[--project <project>] [--description <description>]
[--project-domain <project-domain>]
<flavor-name>
openstack flavor create: error: argument --property: Expected 'key=value' type, but got:
clean_up CreateFlavor:
Change-Id: I9e78b35ad9d016d7a33655141ec579397c5344c0
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
Quieten the output of our test runs significantly.
Change-Id: Ie32c919bb987eb0b9bc4c5b2ec54ee20a6841c03
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
Rather than excluding the few fields we don't want, explicitly indicate
the ones we do want. We were already in-effect doing this in our tests,
so this is simply moving the definition from tests to the main code.
Note that this is a problem in the tests for virtually all commands
that will be seen as the SDK continues to evolve and new fields are
added to existing resources. This is a problem that be solved over
time though, rather than in a big bang commit.
Change-Id: Iaa64e97450f5c73cab2e2c3b0c741aec1495b4f1
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
The --flavor-id option is added to the router create command. The
flavor_id attribute has been supported by the Neutron API for router
POST operations since a long time ago [0].
Partial-Bug: #2020823
[0] https://review.opendev.org/c/openstack/neutron-lib/+/494289
Change-Id: If88499533a92c09e67b0827d1d64156682a3bb8e
Introduce the hints port attribute that allows passing in backend
specific hints mainly to allow backend specific performance tuning.
Enable:
openstack port create --hint ALIAS=VALUE
openstack port set --hint ALIAS=VALUE
openstack port unset --hints
Required neutron extension:
port-hints
port-hint-ovs-tx-steering
Valid hint aliases and values:
ovs-tx-steering=hash
ovs-tx-steering=thread
The same hints in JSON format, as expected by the Neutron API:
{"openvswitch": {"other_config": {"tx-steering": "hash"}}}
{"openvswitch": {"other_config": {"tx-steering": "thread"}}}
Change-Id: I4c7142909b1e4fb26fc77ad9ba08ec994cc450b2
Depends-On: https://review.opendev.org/c/openstack/neutron/+/873113
Partial-Bug: #1990842
Related-Change (server side): https://review.opendev.org/c/openstack/neutron/+/873113
Related-Change (spec): https://review.opendev.org/c/openstack/neutron-specs/+/862133
Black used with the '-l 79 -S' flags.
A future change will ignore this commit in git-blame history by adding a
'git-blame-ignore-revs' file.
Change-Id: I8048746dbc2ef0cb582f68934734db4c1153d779
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
pep gods started complaining (correctfully) about spacing in the old
command. Apply `black -l 79` on the file to make it looking nice and
passing checks.
Change-Id: I716f6a1496fc552b32809c7eb744283f3a3cd5a4
"openstack port list --security-group <id>" was using a filter that
didn't exist in `openstacksdk`: "security_groups". Up until version
1.0.1, `openstacksdk` did not support filtering `Port` objects by
security groups. Later versions will support the filtering (via [1]),
but the filter is called the same way the attribute on the `Port` object
is called: `security_group_ids`.
We're not bumping the `openstacksdk` version here, because the feature
we're using [1] is merged too recently and a bump of min requirements
thus unlikely. `openstackclient` continue to work with older versions of
`openstacksdk` - the "--security-group" filter will just do nothing like
before.
[1] https://review.opendev.org/c/openstack/openstacksdk/+/866008
Change-Id: I07088484592e99ce0a12b67d68a3e47ae7c7af81