Commit graph

3576 commits

Author SHA1 Message Date
Douglas Mendizábal
ecaa2805dc Fix "access rule" commands to only use ID
This patch modifies the access rule commands to use only the resource
ID.  The previous logic incorrectly assumed that access rules have a
"name" property, which resulted in unexpected behaviors.

For example, "access rule delete {non-existent-id}" now results in a
"not found" error instead of sometimes deleting an unrelated rule.

Story: 2010775
Task: 48163
Change-Id: Ib5c3b7f86acf1dfe7cc76dfa99fa4c118388bd71
(cherry picked from commit 560f19b894)
2023-07-14 14:00:08 -04:00
Artem Goncharov
8117758c28 Fix pep issue in the network service provider
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
(cherry picked from commit bf758a6385)
2023-07-14 13:59:50 -04:00
Alfredo Moralejo
42d9b6ea57 Replace assertItemsEqual with assertCountEqual
Similar to [1] required after adding some new tests in [2]

[1] https://review.opendev.org/c/openstack/python-openstackclient/+/805790
[2] https://review.opendev.org/c/openstack/python-openstackclient/+/819938

Change-Id: I6f4f867048793f9e1e1a05afa4f2beaf8def5053
2023-01-31 16:58:48 +01:00
Stephen Finucane
e1872e01bf volume: Allow more versions
Copy the API version checks from the 'openstackclient.compute.client'
module. These will only be necessary until we migrate everything to SDK
but it's very helpful until then.

Change-Id: I2d9c68db5bf891ffa25fd5a7fc9e8953e44b73ab
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
(cherry picked from commit 0f28588e48)
2023-01-11 17:45:09 +00:00
Stephen Finucane
92dafb3a19 compute: Note that '--password' is deployment-specific
Password injection requires either hypervisor-support or an agent
running in the guest that will talk to the metadata service. It can be
disabled for a deployment using the '[api] enable_instance_password'
nova config option. Indicate this, albeit briefly.

Change-Id: Ief94ea07fc7ab6a487af972e8759ca6704d8f085
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
(cherry picked from commit 280b14abcd)
2022-12-13 16:15:36 +00:00
whoami-rajat
ad924068f8 compute: Require image when rebuilding a volume-backed server
A volume-backed server will have no image attribute (or rather the image
property will be set to the empty string). As such, if you want to try
rebuild you will need to specify an image [*]. Enforce this.

[*] Before microversion 2.93, this must be the same image. However, we
don't touch on that here. This will be addressed later.

Change-Id: I6842dabd7acb4e3a78f894e55e616625757eb6a4
Story: 2010297
Task: 46290
(cherry picked from commit 1f63034441)
(cherry picked from commit 0118d57c02)
(cherry picked from commit 53d8667b4b)
(cherry picked from commit db417598ed)
2022-09-30 11:33:46 +01:00
Zuul
5c9661c15a Merge "compute: Show flavor in 'server list' with API >= 2.47" into stable/wallaby 2022-07-05 14:07:26 +00:00
Zuul
717383cf86 Merge "compute: Reorder building of columns for 'server list'" into stable/wallaby 2022-07-05 14:07:25 +00:00
Zuul
acc5f202a3 Merge "Fix typo error in listing server's column name" into stable/wallaby 2022-07-05 14:07:18 +00:00
whoami-rajat
9425e6fcb6 Fix: create image from volume command
Currently the command ``openstack image create --volume`` calls cinderclient
to upload the volume to image service (glance) but OSC passes ``visibility``
and ``protected`` fields which are only available in microversion 3.1 or
greater. This generates an error if the user is using volume microversion
< 3.1 and wants to create an image from volume.
This patch fixes that by only passing ``visibility`` and ``protected`` fields
when the volume microversion is 3.1 or greater and fail otherwise i.e. the
following 3 cases:
1) visibility/protected argument + mv >= 3.1 = pass
2) visibility/protected argument + mv < 3.1 = fail
3) not visibility/protected argument + any mv = pass

Changes:
  openstackclient/tests/unit/volume/v3/fakes.py
  
NOTE(croelandt): Imported openstackclient/tests/unit/volume/v3/fakes.py from
the Yoga branch. Used FakeType instead of FakeVolumeType for compatibility with
older class names.

Story: 2010060
Task: 45511
Change-Id: I568a0ea0af8f7f82b16d49a6a1bb0391b99c50dc
(cherry picked from commit 9eea28ba59)
(cherry picked from commit 849e7e93f8)
(cherry picked from commit 665d93ff07)
2022-07-04 11:35:48 +00:00
Cyril Roelandt
b39fe0b463 openstack image create: honor protection/visibility flags
The --protected, --unprotected, --public, --shared, --community,
--private flags were ignored when using --volume.

Change-Id: Id5c05ef7d7bb0a04b9d7a9d821e544e1ff7b3d28
Story: 2008882
(cherry picked from commit 3918622968)
2022-07-01 15:34:13 +02:00
Khomesh Thakre
4b7e777c0c compute: Show flavor in 'server list' with API >= 2.47
Fix the issue where the flavor name was empty in server list output.
This requires somewhat invasive unit test changes to reflect the changed
API response from the server, but this has the upside of meaning we
don't need new tests since what we have validates things.
Also drop the flavor ID column as it is removed from the compute API.

Change-Id: Ica3320242a38901c1180b2b29109c9474366fde0
Signed-off-by: Khomesh Thakre <khomeshthakre24@gmail.com>
Story: 2008257
Task: 41113
(cherry picked from commit 8e362402de)
(cherry picked from commit 0873e7580e)
2021-12-01 01:35:10 +00:00
Stephen Finucane
cb621f22d4 compute: Reorder building of columns for 'server list'
This has no impact on the end result, but it should make fixing issues
introduced by API microversion 2.69 a little easier.

Change-Id: I7d70eac8aa1a6197ed05a49f071e6899ec219c03
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
(cherry picked from commit 4c3de28e83)
(cherry picked from commit f4adbcef7b)
2021-12-01 01:34:56 +00:00
LEE JAE YONG
e1a764823c Fix typo error in listing server's column name
openstack server list -c "Created At" command doesn't work
because the wrong variable was used here.

When we receive resp data, Created At data is saved with
the name "created". But in "server.py", we append columns
as created_at. So it seems to print an empty table.

Story: 2009149
Task: 43112
Change-Id: I06de6903d5cc427a8b0fdcd168fec47192f4365b
(cherry picked from commit 4aad7dd779)
(cherry picked from commit e53d034fc8)
2021-12-01 01:34:36 +00:00
Stephen Finucane
3f4142d5dd compute: Fix filtering servers by tags
The nova API expects the 'tags' and 'not-tags' filters of the 'GET
/servers' (list servers) API to be a CSV string [1]:

  tags (Optional)
    A list of tags to filter the server list by. Servers that match all
    tags in this list will be returned. Boolean expression in this case
    is 't1 AND t2'. Tags in query must be separated by comma.

    New in version 2.26

  not-tags (Optional)
    A list of tags to filter the server list by. Servers that don’t
    match all tags in this list will be returned. Boolean expression in
    this case is 'NOT (t1 AND t2)'. Tags in query must be separated by
    comma.

    New in version 2.26

We were instead providing a Python list, which was simply being URL
encoded. Correct this.

[1] https://docs.openstack.org/api-ref/compute/?expanded=list-servers-detail#list-servers

Change-Id: Ie0251a0dccdf3385089e5bbaedf646a5e928cc48
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
Closes-Bug: #1946816
(cherry picked from commit 53debe7fe1)
(cherry picked from commit cbc64f9469)
2021-10-13 12:51:28 +01:00
Dirk Mueller
53f1efa010 Replace assertItemsEqual with assertCountEqual
assertItemsEqual was removed from Python's unittest.TestCase in
Python 3.3 [1][2]. We have been able to use them since then, because
testtools required unittest2, which still included it. With testtools
removing Python 2.7 support [3][4], we will lose support for
assertItemsEqual, so we should switch to use assertCountEqual.

[1] - https://bugs.python.org/issue17866
[2] - https://hg.python.org/cpython/rev/d9921cb6e3cd
[3] - testing-cabal/testtools#286
[4] - testing-cabal/testtools#277

Conflicts:
      openstackclient/tests/unit/volume/v2/test_volume_snapshot.py
NOTE(jpena): This file is not present in stable/wallaby

Change-Id: I0bbffbec8889b8b3067cfe17d258f5cb16624f38
(cherry picked from commit e82a05864f)
2021-08-24 09:21:45 +00:00
Zuul
86bca18b74 Merge "project cleanup" 2021-03-18 08:39:11 +00:00
Stephen Finucane
2ccf7727a6 compute: Remove 'file://' prefix from '--block-device'
There are a couple of other (networking-related) options which accept
paths, none of which insist on a URI-style path. Let's just drop this
bit of complexity before we release the feature.

Change-Id: Ia7f781d82f3f4695b49b55a39abbb6e582cd879c
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
2021-03-11 15:56:59 +00:00
Zuul
ae1f8f888a Merge "compute: Add support for loading BDMs from files" 2021-03-11 12:51:47 +00:00
Zuul
e6b0473b8b Merge "compute: Add functional tests for --block-device" 2021-03-11 12:44:47 +00:00
Bharat Kunwar
ed731d6cd9 network: Add missing subnet unset --gateway <subnet-id>
Story: 2008695
Task: 42003
Change-Id: I9486a09531b11f27a9ff0d68fd4ad8c68a65cccf
2021-03-05 14:15:20 +00:00
Stephen Finucane
d3bd0146ae compute: Add support for loading BDMs from files
The syntax of the '--block-device' parameter is complex and easily
screwed up. Allow users to load a block device config from a file. For
example:

  $ openstack server create ... --block-device file:///tmp/bdm.json ...

This should alleviate the pain that is BDMv2 somewhat.

No functional tests are provided since we already have tests for the CSV
style of passing parameters and the unit tests show that the net result
is the same.

Change-Id: I3e3299bbdbbb343863b4c14fb4d9196ff3e1698d
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
2021-03-05 13:11:09 +00:00
Stephen Finucane
7c1d6f769c compute: Add functional tests for --block-device
This mostly reuses the existing tests for '--block-device-mapping',
which can hopefully be removed at some point in the future.

This highlights two issues with the implementation of this option.
Firstly, the 'boot_index' parameter is not required so don't mandate it.
Secondly, and more significantly, we were defaulting the destination
type for the 'image' source type to 'local'. Nova only allows you to
attach a single image to local mapping [1], which means this default
would only make sense if you were expecting users to use the
'--block-device' option exclusively and omit the '--image' option. This
is the *less common* case so this is a bad default. Default instead to a
destination type of 'volume' like everything else, and require users
specifying '--block-device' alone to pass 'destination_type=local'
explicitly.

[1] https://github.com/openstack/nova/blob/c8a6f8d2e/nova/block_device.py#L193-L206

Change-Id: I1718be965f57c3bbdb8a14f3cfac967dd4c55b4d
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
2021-03-05 12:44:52 +00:00
Zuul
a507fb50f8 Merge "compute: Remove deprecated 'server migrate --live' option" 2021-03-04 21:29:55 +00:00
Zuul
979b4832dd Merge "compute: Deprecate 'server create --file'" 2021-03-04 21:29:48 +00:00
Zuul
8e94044710 Merge "compute: Stop silently ignore --(no-)disk-overcommit" 2021-03-04 21:29:38 +00:00
Zuul
9aad6b8f9e Merge "compute: Auto-configure shared/block live migration" 2021-03-04 21:29:26 +00:00
Zuul
e260d43d94 Merge "compute: Add 'server create --block-device' option" 2021-03-04 21:28:59 +00:00
Zuul
d94d2f1213 Merge "compute: Remove references to optional extensions" 2021-03-04 21:28:31 +00:00
Zuul
93c9b914a6 Merge "compute: Add missing 'server create' options" 2021-03-04 21:28:13 +00:00
Zuul
433ceff051 Merge "compute: Improve 'server create --block-device-mapping' option parsing" 2021-03-04 21:27:44 +00:00
Zuul
1f6104c760 Merge "compute: Rename 'server migrate (confirm|revert)'" 2021-03-04 16:51:57 +00:00
Zuul
855dc79a87 Merge "compute: Add 'server migration show' command" 2021-03-04 16:51:40 +00:00
Zuul
82770fa6c0 Merge "Rename FakeServerMigration to FakeMigration" 2021-03-04 16:51:12 +00:00
Zuul
e8a50692a0 Merge "compute: Add support for 'server boot --nic ...,tag=<tag>'" 2021-03-04 16:50:58 +00:00
Zuul
af18b514ef Merge "compute: Improve 'server create --nic' option parsing" 2021-03-04 13:21:31 +00:00
Zuul
b9f61f7b30 Merge "compute: Shuffle options for 'server create'" 2021-03-04 13:21:10 +00:00
Zuul
d4f8aa163d Merge "compute: Add missing options for 'server event list'" 2021-03-04 13:20:35 +00:00
Zuul
1c84b44ac2 Merge "Add --name to port list" 2021-03-03 17:03:02 +00:00
Zuul
2732ed3fe0 Merge "compute: Add missing options for 'server group list'" 2021-03-03 17:01:52 +00:00
Zuul
011991bcf3 Merge "compute: Add 'server * --all-projects' option" 2021-03-03 17:01:33 +00:00
Brian Haley
16c72f8642 Add --name to port list
The neutron API supports filtering ports by name, but
the CLI was missing support for it like it does for
other networking resources.

Change-Id: I4ff339e18656013218a26f045b205cb7a02dd2fb
Story: #2008654
2021-02-23 18:58:24 -05:00
Miguel Lavalle
e8509d81ee Add 'address_group' type support to rbac commands
Depends-On: https://review.opendev.org/c/openstack/neutron/+/772460
Change-Id: Icd5e96d180364b979d1e93fcb39f9133a41a06e5
2021-02-10 17:40:39 -06:00
Artem Goncharov
119d2fae25 project cleanup
New implementation of the project cleanup based on the sdk.project_cleanup.
It is implemented as an additional OSC operation and will ideally obsolete the 
`openstack project purge` giving flexibility to extend services support, 
parallelization, filters, etc.

Change-Id: Ie08877f182379f73e5ec5ad4daaf84b3092c829c
2021-02-02 08:14:34 +00:00
Zuul
01a53fa96f Merge "Add device profile to `port`" 2021-01-22 20:42:59 +00:00
Stephen Finucane
70480fa862 compute: Remove deprecated 'server migrate --live' option
It's been long enough. Time to remove this.

Change-Id: I37ef09eca0db9286544a4b0bb33f845311baa9b2
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
2021-01-22 13:00:46 +00:00
Stephen Finucane
6f3969a0c8 compute: Deprecate 'server create --file'
The parameter isn't actually deprecated, since we need to support older
API microversion, however, we now emit an error if someone attempts to
boot a server with the wrong microversion. This would happen server-side
anyway since this parameter was removed entirely in API microversion
2.57.

Change-Id: I73864ccbf5bf181fecf505ca168c1a35a8b0af3a
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
2021-01-22 13:00:46 +00:00
Stephen Finucane
8868c77a20 compute: Stop silently ignore --(no-)disk-overcommit
These options are not supported from Nova API microversion 2.25 and
above. This can be a source of confusion. Start warning, with an eye on
erroring out in the future.

Change-Id: I53f27eb3e3c1a84d0d77a1672c008d0e8bb8536f
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
2021-01-22 13:00:46 +00:00
Stephen Finucane
2bdf34dcc3 compute: Auto-configure shared/block live migration
API microversion 2.25 introduced the 'block_migration=auto' value for
the os-migrateLive server action. This is a sensible default that we
should use, allowing users to avoid stating one of the
'--block-migration' or '--shared-migration' parameters explicitly.

While we're here, we take the opportunity to fix up some formatting in
the function, which is really rather messy.

Change-Id: Ieedc77d6dc3d4a3cd93b29672faa97dd4e8c1185
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
2021-01-22 13:00:46 +00:00
Stephen Finucane
ace4bfb640 compute: Add 'server create --block-device' option
One of the last big gaps with novaclient. As noted in the release note,
the current '--block-device-mapping' format is based on the old BDM v1
format, even though it actually results in BDM v2-style requests to the
server. It's time to replace that.

Change-Id: If4eba38ccfb208ee186b90a0eec95e5fe6cf8415
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
2021-01-22 13:00:39 +00:00