201 Commits

Author SHA1 Message Date
Zuul
7dc1276f40 Merge "Adding `image delete --store and image import info` commands" 2023-08-09 19:01:35 +00:00
Mridula Joshi
b347347986 Adding `image delete --store and image import info` commands
Change-Id: Ia5fc44c6738f8ee3a0781d824c7f7fa458185e0c
2023-08-07 17:13:33 +00:00
Antonia Gaete
52bf194741 Add image metadef resource type command 'list'
This patch will add ``image metadef resource type list`` using
SDK, output matches glance client output.

Change-Id: I29850abdbb06d5a4eaf8a9a60f565b46f4009f85
2023-07-06 17:27:21 +01:00
Stephen Finucane
7ca43885c2 Blacken openstackclient.image
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: I6420ec6fd550903b03083b9b1f8391511913c86f
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
2023-05-10 10:51:30 +01:00
Mridula Joshi
16c78fef15 Adding `image import` command
Change-Id: I7254d30431894879c8bd20e2263d83b12c99d5c8
2023-04-12 09:42:43 +00:00
lsmman
e53f706d0b Add missing documentation for state options for "image set"
The current "image set" with the state option behaves as follows: if you
use --project, it updates the membership status of the given project.

When this command was first added, it had the following description:

  If --project is passed, update the membership status for the given project

However, the description was missed when moving the documentation for
which command to the parser for each command method in commit f055fe67c.
Correct this oversight.

Co-authored-by: JAE YONG LEE <jaeljy135@gmail.com>
Change-Id: I18a29a19ce973971f68a52cbf4020cfa324c7a35
2023-02-22 10:14:21 +00:00
Zuul
f1da522cc3 Merge "image: Add support for additional image import methods" 2023-01-25 18:04:00 +00:00
Zuul
21c3c33087 Merge "image: Fail if we can't find an image" 2022-12-20 13:36:43 +00:00
Zuul
a805f7ebb1 Merge "image: Rename import" 2022-12-20 13:20:11 +00:00
Zuul
db6909bc63 Merge "Add image metadef namespace command" 2022-12-15 17:45:31 +00:00
hoosa
38f972fa63 Add image metadef namespace command
add image metadef namespace create, delete, set, show command

Change-Id: I35b1cb8ff2b1735ae3a1b405d8f2071fe449ea6e
2022-12-07 21:35:39 +09:00
Zuul
29129a7715 Merge "image: Add 'image import' command" 2022-12-05 12:59:52 +00:00
Stephen Finucane
799a073b68 image: Fail if we can't find an image
Whenever we attempt to find a provided image, we generally want to fail
fast if they can't be found. This wasn't happening. Fix it.

Change-Id: Ibea38354a78381cb87d287f03726ecd03ecd246d
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
2022-12-01 10:04:02 +00:00
Stephen Finucane
a538104a94 image: Rename import
This makes the code a little clearer.

Change-Id: Ib552d510ca484571e59363ef15fe5e2cc0a2f4e1
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
2022-12-01 10:02:44 +00:00
Stephen Finucane
6dea276e5a image: Add support for additional image import methods
These are now supported in openstacksdk so we can use them.

Change-Id: Ie3107ba2155f9008e6065171298f85978957a172
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
Depends-on: https://review.opendev.org/c/openstack/openstacksdk/+/864029
2022-11-30 17:15:29 +00:00
Stephen Finucane
85254fbeb4 Revert "Don't look up project by id if given id"
This reverts commit 042be7c7fe89f5a1a190af90d5980205d995941b. This
solution worked but it was confusing. The issue that the author was
seeing was presumably due to users not being able to list projects but in
theory the 'openstackclient.image.common.find_project' function that was
being called here should have already handle this. It transpires however
that there was a bug in this and we weren't correctly handling HTTP 403
errors correctly. This bug has since been fixed in change
I2ea2def607ec5be112e42d53a1e660fef0cdd69c meaning this change is no
longer necessary. Remove it and simplify the code somewhat.

Change-Id: I108efec2c8deda50fcb9cc84f313602bed2ac15c
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
2022-11-30 12:35:17 +00:00
Stephen Finucane
4eea3408dc image: Add 'image import' command
Note that we require some additional functionality in SDK for this to
work properly, but it's a start.

Change-Id: I87f94db6cced67f36f71685e791416f9eed16bd0
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
2022-11-09 16:51:54 +00:00
Stephen Finucane
1fb8d1f48b image: Add 'image stage' command
This is the equivalent of the 'image-stage' glanceclient command.

Change-Id: I10b01ef145740a2f7ffe5a8c7ce0296df0ece0bd
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
2022-11-09 16:51:54 +00:00
Stephen Finucane
3d9a9df935 image: Simplify handling of data provided via stdin
This was unnecessarily complex.

Change-Id: I8289d5ce7356d8bc89425590a7f71bca91a6d396
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
2022-11-09 16:51:54 +00:00
Stephen Finucane
bafece762a image: Ignore '--progress' if providing image data from stdin
You can provide data via stdin when creating an image. Using this with
'--progress' makes no sense and causes an error currently. Fix this.

Change-Id: I3c2d658b72a7c62931b779b0d19bb97f60a0c655
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
2022-11-09 16:51:54 +00:00
Areg Grigoryan
a726d84f4b Added "openstack image metadefs namespace list" command
Change-Id: Ibc064566478818bd70e7e6550095d24a05e1bb0e
Depends-On: https://review.opendev.org/c/openstack/openstacksdk/+/854612
2022-10-26 12:26:10 +03:00
Stephen Finucane
c9d445fc4b image: Add 'image task list' command
This replaces the 'glance task-list' command.

  $ openstack image task list

We also indicate that the 'image task create' command will never be
implemented. This is an admin-only API that isn't really intended to be
used by humans thus it does not need an OSC command implementation.

Change-Id: Id8a943a5443782fc70c0fbf3639f5aa17b9d30af
2022-09-21 10:43:35 +01:00
lsmman
d163a20904 image: Add 'image task show' commands
This replaces and the 'glance task-show' command. For example:

  $ image task show <TASK_ID>

Change-Id: I74cb23e436c373fe238804b903bbeb28f643d5af
2022-09-21 10:34:15 +01:00
Stephen Finucane
14b93fec76 image: Split image creation depending on service
The 'image create' operation is actually one of two operations: it can
be either an image service (glance) operation if the '--volume' argument
is *not* passed or a block storage (cinder) operation if it is. Make
this clearer and add a log warning users about options that are
supported by the former but not the latter.

Change-Id: Id153c951a7d18403568bf67e13d5e0a4827428d4
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
2022-06-30 11:54:45 +01:00
Stephen Finucane
4776e0a5ae image: Make better use of argparse
Simplify some logic by using a common 'dest' for mutually exclusive
options.

Change-Id: Ie5f3600672953f40be52de51e84717c8912ddaf8
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
2022-06-30 11:51:33 +01:00
Stephen Finucane
2290b38ab3 image: Trivial style changes
Change-Id: I35b7b8a80609916eb47357af4398789788d66382
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
2022-06-30 11:15:33 +01:00
whoami-rajat
9eea28ba59 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

Story: 2010060
Task: 45511
Change-Id: I568a0ea0af8f7f82b16d49a6a1bb0391b99c50dc
2022-06-30 11:15:33 +01:00
Cyril Roelandt
34d1e0c7eb Allow users to list all images
Add a "--all" option to "openstack image list", which allows the user to
list all of the images.

Story: 2010071
Change-Id: I56a2e4846d0380d07803305fb830d1a43dfd71b3
2022-06-07 20:22:34 +02:00
Dmitriy Rabotyagov
5cc6fc2b88 Allow to filter multiple tags for image list
Currently in case of passing `--tag` several times, only last one will
be picked up for the filtering. In the meanwhile Glance allow option to
be repeated multiple times to filter based on the multiple tags.

Depends-On: https://review.opendev.org/c/openstack/openstacksdk/+/789827
Change-Id: I7379d0b0014f0e3d13b02ee5ec6b642a7a5aa7d1
2022-05-16 09:16:52 +01:00
Pavlo Shchelokovskyy
afc5f997c8 Stop using private _is_uuid_like method
currently this double-private method of a dependency library
is used in several places (openstack.cloud._utils._is_uuid_like)

openstacksdk deliberatly chose not to depend on oslo.utils to keep
dependenies to the minimum, so it just copied several methods from it,
including the is_uuid_like.

python-openstackclient however already depends on oslo.utils, so
using the public method from oslo.utils should be preferred
and more stable.

Change-Id: I578ffa36ffb00c9d47ee12a149313201973edd32
2022-04-20 17:42:02 +03:00
Stephen Finucane
61fac5b79e image: Sanity check the 'SetImage' command
This was a very difficult command to grok, due to the layering on of
additional features over the years. Make this a little easier to follow
by grouping related logic and making use of argparse features.

Change-Id: I4e1a0aed09ea5d6a8c26ec3e888c9c7b6cefc25a
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
2021-11-17 11:42:07 +00:00
Stephen Finucane
30612bf622 Remove 'get_osc_show_columns_for_sdk_resource' duplicates
There were a number of 'get_osc_show_columns_for_sdk_resource' defined
in-tree. However, osc-lib has provided this method for some time (since
2.2.0, June 2020 [1] - our minimum version is currently 2.3.0) so
there's no need to provide our own copies. Remove them.

[1] https://github.com/openstack/osc-lib/commit/29a0c5a5

Change-Id: I25695f4f9a379dd691b7eaa1e3247164668ae77e
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
2021-10-21 17:14:45 +01:00
Cyril Roelandt
3918622968 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
2021-05-05 01:26:51 +02:00
Valery Tschopp
383289edd8 Implements hide image
openstack image set [--hidden|--unhidden] IMAGE
openstack image list --hidden

Task: 41734
Story: 2008581
Change-Id: Ie84f10c0f7aa2e7b7f78bfadc70132a10673866e
2021-03-25 08:57:31 +01:00
Zuul
23afc0af92 Merge "image: Unset properties rather than setting to None" 2021-01-06 11:16:25 +00:00
youngho choi
6f616a29b3 Add support '--progress' option for 'image create'
openstack-client doesn’t support the upload progress bar.

This patch shows progressbar when create image
if you added '--progress' option like a python-glanceclient.

like this.
[=============================>] 100%
+------------------+---------------------------+
| Field            | Value                     |
+------------------+---------------------------+
| container_format | bare                      |
| created_at       | 2020-09-06T20:44:40Z      |
...

How to use
Add the'--progress' option on the 'openstack image create' command.

Code was written by referring to 'python-glanceclient' project
on stable/ussuri branch

Change-Id: Ic3035b49da10b6555066eee607a14a5b73797c00
task: 40003
story: 2007777
2021-01-04 17:25:34 +00:00
Stephen Finucane
29a7c9afce image: Unset properties rather than setting to None
Currently, we attempt to unset an image property by setting it to None.
This doesn't work for known properties and is rightly rejected by the
Glance API with the following error:

  BadRequestException: 400: Client Error for url:
  http://172.20.4.87/image/v2/images/368c5751-2b0b-4a38-a255-fd146fe52d31,
  Bad Request

The solution is to actually unset the field by deleting it.

Change-Id: Ie156bedbe0f9244f82c81401679706f484caf9aa
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
Story: #2008463
Task: #41493
2020-12-22 17:11:32 +00:00
okozachenko
3c80b1b3b2 Add project field in image list subcommand
The motivation is to filter the image by owner

Change-Id: I1f08da175a06e62a844f76b0ec18cb3332efef86
2020-12-15 00:45:30 +02:00
Simon Merrick
5bdcd590ec stop image downloads to memory
+ Fixes issue with large images hogging memory
 + stream image downloads
 + output to stdout if file not specified

Change-Id: Ia01ff9b21a2dac5d0ccf2bd58a8640e88c5cbb36
Story: 2007672
Task: 39776
2020-11-25 21:25:22 +13:00
Sam Morrison
17678c9bd6 Restore behavior of image create with same name.
With 60e7c51df4cf061ebbb435a959ad63c7d3a296bf the behaviour of
`openstack image create` changed so that you can't create an image
with the same name. This patch restores the previous functionality.

Story: 2008229
Task: 41069

Change-Id: Ia0f4920371a918e94d1ccf9fcfcbf90ff885a455
2020-10-06 14:05:11 +11:00
Zuul
8aed5feab8 Merge "Fix uploading an signed image does not work if private signing key is encrypted" 2020-07-08 17:30:38 +00:00
Alexander Gräb
c06d825635 Fix uploading an signed image does not work if private signing key is encrypted
Change-Id: Ia7c84aa7b840bf92aeb7db7246d14119eb727b03
Story: 2007890
Task: 40269
2020-07-07 13:26:51 +02:00
Monty Taylor
c04ec16cf7 Expose flag for forcing use of import for images
openstacksdk added support for using image import as a fallback
which is transparently supported here, but also provides an
override flag to allow a user to force use of import. Expose that
here.

Depends-On: https://review.opendev.org/737608
Change-Id: Ied938a8f63f305305a20ace42e9f4c84b0a5c00e
2020-06-30 07:02:23 -05:00
Dmitriy Rabotyagov
042be7c7fe Don't look up project by id if given id
There is a much deeper and systemic issue going on here, but let's
start with fixing the immediate issue which is that adding a project
to an image fails trying to look up project information even if the
user passes the project id by id.

_is_uuid_like from sdk isn't perfect, but it'll be good enough
for this.

Change-Id: I541416d737b961c56aa2f584c172528632fd5537
2020-03-24 13:13:12 +00:00
Artem Goncharov
768a64aac5 Complete switch from glanceclient to SDK for image service
In https://review.opendev.org/#/c/650374/ a work has been started to
switch image service support from glanceclient with all it's
dependencies to the SDK version. With this change version 1 (anyway
deprecated since ages) is also being switched to SDK.

Change-Id: Ic391500af02a73d81d64a9e9113cca85c9e24390
2020-03-24 13:13:06 +00:00
Artem Goncharov
60e7c51df4 Switch image to use SDK
This is a work to switch OSC from using glanceclient to OpenStackSDK.

With this change only v2 is using OpenStackSDK. V1 is still using
glanceclient and will be switched in a separate change.

Remove the direct depend on keystoneauth- let that flow through
openstacksdk.

Depends-on: https://review.opendev.org/#/c/698972
Change-Id: I36f292fb70c98f6e558f58be55d533d979c47ca7
2020-03-23 14:38:32 -05:00
lihaijing
d15bbada73 Replace six.iteritems() with .items()
1. As mentioned in [1], we should avoid using six.iteritems to achieve
   iterators. We can use dict.items instead, as it will return iterators
   in PY3 as well. And dict.items/keys will more readable.

2. In py2, the performance about list should be negligible,
   see the link [2].

[1] https://wiki.openstack.org/wiki/Python3
[2] http://lists.openstack.org/pipermail/openstack-dev/2015-June/066391.html

Co-Authored-By: Akihiro Motoki <amotoki@gmail.com>
Change-Id: I4b9edb326444264c0f6c4ad281acaac356a07e85
Implements: blueprint replace-iteritems-with-items
2020-01-09 18:41:29 +09:00
Akihiro Motoki
8d63e3f0c3 Use cliff formattable columns in image commands
Related functional tests are converted into JSON format.
Otherwise, it is not easy to check results.

Partial-Bug: #1687955
Partially implement blueprint osc-formattable-columns

Change-Id: Ib82e15738544975fede0c54cc5eaf239f4c67277
2019-06-22 13:36:46 -05:00
Dean Troyer
67dadda746 Remove deprecated image commands
* Remove ``image create|set`` option ``--owner``

Change-Id: I1fabab98c8660eba6d0dd75e74544c6c9d432b9e
Signed-off-by: Dean Troyer <dtroyer@gmail.com>
2019-05-19 17:06:19 -05:00
Dean Troyer
1b2595a959 Remove code migrated to osc-lib long ago
* Remove openstackclient.api.utils and use osc_lib.api.utils
* Remove openstackclient.common.clientmanager.ClientManager.auth_ref
* Remove openstackclient.common.commandmanager

Change-Id: I67e1dbc53cc0b37967c0011bcb2fc09bdef62d94
Signed-off-by: Dean Troyer <dtroyer@gmail.com>
2019-05-16 19:19:58 -05:00