Commit graph

3488 commits

Author SHA1 Message Date
Stephen Finucane
bbf7de83ff trivial: Use plural for appended parameters
Multiple compute commands take a '--property' parameter or variant
thereof. These should be stored in a 'properties' (plural) dest for
sanity's sake. Correct this.

Change-Id: If393836925fa736404527d9abd212b8ac9931027
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
2021-01-06 12:02:57 +00:00
Yongli He
f200799848 compute: Add 'server show --topology' option
Add support for compute microversion 2.78 by adding a '--topology'
option to 'openstack server show' command that retrieves server NUMA
information.

Change-Id: Ie22979df2ea9082ca64a4d43b571bd4025684825
2021-01-06 12:02:25 +00:00
Stephen Finucane
a5c6470f2d compute: Add 'server group create --rule' option
This closes the remaining gap with the 2.64 compute API microversion.

Change-Id: Ia42b23d813b7af6ddb1a41f4e9bdc8a6160b908c
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
2021-01-06 12:02:25 +00:00
Stephen Finucane
bf834f6d75 compute: Fix 'hypervisor show -f yaml' output
The 'cpu_info' field returned by the 'os-hypervisors' API is an object
and should be formatted as such.  However, this is complicated by the
fact that the object in this field is stringified until microversion
2.28 and is only returned as an actual object on later microversions.
Handle the conversion from the string for older microversions and
display things correctly for all releases.

Change-Id: Ide31466cbb9e89c96d6bd542fe039ab5ed1fac1f
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
2021-01-06 12:02:25 +00:00
Stephen Finucane
e2a9a9607c compute: Fix 'server group * -f yaml' output
Make use of 'FormattableColumn'-derived formatters, which provide better
output than what we were using before, particularly for the YAML output
format.

Change-Id: Id6d25a0a348596d5a0430ff7afbf87b049a76bc8
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
2021-01-06 12:02:25 +00:00
Stephen Finucane
af5e9d16e8 compute: Fix 'usage * -f yaml' output
Make use of 'FormattableColumn'-derived formatters, which provide better
output than what we were using before, particularly for the YAML output
format.

Change-Id: Ic770f27cb1f74222636f05350f97400808adffbf
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
2021-01-06 12:02:25 +00:00
Stephen Finucane
03776d82e5 compute: Fix 'server * -f yaml' output
Make use of 'FormattableColumn'-derived formatters, which provide better
output than what we were using before, particularly for the YAML output
format. For example, compare before for the 'server show' command:

  $ openstack --os-compute-api-version 2.79 server show test-server -f yaml
  ...
  addresses: private=fdff:77e3:9bb4:0:f816:3eff:fe6d:a944, 10.0.0.44
  flavor: disk='1', ephemeral='0', extra_specs.hw_rng:allowed='True', original_name='m1.tiny',
    ram='512', swap='0', vcpus='1'
  ...

To after:

  $ openstack --os-compute-api-version 2.79 server show test-server -f yaml
  ...
  addresses:
    private:
    - fdff:77e3:9bb4:0:f816:3eff:fe6d:a944
    - 10.0.0.44
  flavor:
    disk: 1
    ephemeral: 0
    extra_specs:
      hw_rng:allowed: 'True'
    original_name: m1.tiny
    ram: 512
    swap: 0
    vcpus: 1
  ...

Similarly, compare before for 'server list':

  $ openstack --os-compute-api-version 2.79 server list -f yaml
  - ...
    Networks: private=fdff:77e3:9bb4:0:f816:3eff:fe6d:a944, 10.0.0.44
    Power State: Running
    Properties: ''
    ...

To after:

  $ openstack --os-compute-api-version 2.79 server list -f yaml
  - ...
    Networks:
      private:
      - fdff:77e3:9bb4:0:f816:3eff:fe6d:a944
      - 10.0.0.44
    Power State: 1
    Properties: {}
    ...

We also fix the human-readable output for the 'tags' field.

Before:

  $ openstack --os-compute-api-version 2.79 server list
  ...
  | tags   | ['bar', 'foo']  |

After:

  $ openstack --os-compute-api-version 2.79 server list
  ...
  | tags   | bar, foo  |

Change-Id: I7a8349106e211c57c4577b75326b39b88bd9ac1e
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
2021-01-06 12:02:24 +00:00
Zuul
f2c49142f0 Merge "trivial: Cleanup docs for 'server list'" 2021-01-06 11:41:12 +00:00
Zuul
f6cad0c9d5 Merge "compute: Add missing options for 'server rebuild'" 2021-01-06 11:30:53 +00:00
Zuul
b663e8a080 Merge "Add 'flavor list --min-disk', '--min-ram' options" 2021-01-06 11:16:49 +00: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
Zuul
d10706a8db Merge "Add project field in image list subcommand" 2020-12-22 13:49:26 +00:00
Zuul
0fd090eff3 Merge "Add name and enabled param in ListDomain parser" 2020-12-22 13:30:59 +00:00
Zuul
b3e69a2adb Merge "Add option to filter instances by AZ" 2020-12-22 13:30:55 +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
Stephen Finucane
054562238d trivial: Cleanup docs for 'server list'
Change-Id: I2f2033a8d49ee42eb21696a9cd28e63ad9712fad
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
2020-12-09 18:38:26 +00:00
Stephen Finucane
f9fd3642f8 compute: Add missing options for 'server rebuild'
This accepts a large number of options that we weren't exposing. Add the
following options: '--name', '--preserve-ephemeral', '--user-data',
'--no-user-data', '--trusted-image-cert' and '--no-trusted-image-certs'.
In addition, rename the '--key-unset' parameter to '--no-key-name', to
mimic e.g. '--no-property' on other commands.

Change-Id: I61c46e18bef1f086b62a015ebdc56be91071b826
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
2020-12-09 18:38:26 +00:00
Stephen Finucane
da03bd80e3 Add 'flavor list --min-disk', '--min-ram' options
Allow us to filter on minimum disk and RAM, and close another gap with
novaclient.

Change-Id: Ib3f0bdf419675e1c35c3406fbac8a4c18ac56a33
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
2020-12-09 15:28:12 +00:00
Stephen Finucane
f5b185c357 Make use of comparable 'FormattableColumn' subclasses
This requires fixes found in cliff 3.5.0 [1] and osc-lib 2.3.0 [2]. With
these fixes in place, we can remove the icky, still broken
'assertItemEqual' and 'assertListItemEqual' helpers.

[1] https://review.opendev.org/761421
[2] https://review.opendev.org/761394

Change-Id: Id6c26b37c3c7d5ec6761361abca57f9219b76838
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
2020-12-09 15:17:25 +00:00
Zuul
fe98069c20 Merge "trivial: Cleanup docs for 'server rebuild'" 2020-12-05 21:27:53 +00:00
Stephen Finucane
ceaba4c572 trivial: Cleanup docs for 'server rebuild'
Use consistent help strings and error messages.

Change-Id: I42647a6b7e67ce4b8dd5f826e20802ade691c266
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
2020-12-03 11:59:21 +00:00
Artem Goncharov
f36a34b675 Switch compute aggregate functions to SDK
Continue journey towards having OSC consuming SDK for nova part.

Depends-On: https://review.opendev.org/#/c/762131/
Change-Id: Id16e6c47aa93f02f15f49e1f59f73fecaa3e3b80
2020-12-02 11:24:51 +00:00
Artem Goncharov
0f4f42b652 Switch compute flavors from novaclient/direct to SDK
Let's switch flavors from novaclient or direct API requests onto using
SDK. Microversion agreement comes out of the box.

SDK normalizes property names, while OSC uses server side names. In
order not to break OSC users continue using server-side names.

Depends-On: https://review.opendev.org/#/c/762989/
Change-Id: I62b2ed8488ee4ac9c42051311bcfb455506ddd90
2020-12-02 11:24:42 +00:00
Zuul
ea358057f8 Merge "stop image downloads to memory" 2020-12-02 04:45:15 +00:00
Zuul
d4a0bcf8b3 Merge "Add NODE and HOST parameters in "server create" help text" 2020-12-01 22:46:10 +00:00
Zuul
30828112cf Merge "Remove None valued network quota entries" 2020-12-01 13:51:20 +00:00
Zuul
c7a43773c9 Merge "Add id and enabled param in ListIdentityProvider parser" 2020-12-01 13:50:56 +00:00
yanpuqing
3e8968af3d Add NODE and HOST parameters in "server create" help text
Add optional parameters "NODE" and "HOST" in the help text of the
server create comand for --availability-zone.

Co-Authored-By: tianhui <tianhui@awcloud.com>
Change-Id: I4faea8a3d3aecb21ec535e55c238c71745fc68cb
Task: 24274
Story: 2003313
2020-12-01 11:49:36 +00:00
Dmitriy Rabotyagov
0f02029d91 Add option to filter instances by AZ
Since nova API microversion 2.83 it is possible for users to filter
instances by AZ. However even before that this functionality was available
for admin role.

Change-Id: Ife4c8e81aad2ff1dde50d9f23913d9dd9397b00c
2020-12-01 13:44:23 +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
Rodolfo Alonso Hernandez
8387b114e3 Add "fields" parameter to ListPort query
This new query parameter will allow to send a query to the Neutron
server filtering only by those parameters needed by the list
command: ID, name, MAC address, fixed IPs and status.

When using input parameter "long", security groups IDs, device owner
and tags will be added to the fields filter.

With 4500 ports, those are the execution times for the command
"openstack port list" (average values in a development environment):

                 Neutron API (seconds)  CLI (seconds)
Without filter:  3.05                   10.15
With filter:     2.76                   8.19

Depends-On: https://review.opendev.org/#/c/754113/

Change-Id: I1cccf0bc3533f8085e8dd61bf2fbe78c49b74b31
Closes-Bug: #1897100
2020-11-18 17:42:14 +00:00
Zuul
73d56bc8d4 Merge "Add a few selectable fields to the "openstack server list" output" 2020-11-18 13:28:55 +00:00
Zuul
7d624cc78a Merge "trivial: Document removal of support for agents" 2020-11-18 01:22:02 +00:00
Zuul
bba5725085 Merge "Switch 'openstack keypair' ops to use SDK" 2020-11-17 14:53:12 +00:00
Zuul
2005a1e833 Merge "Allow to resize in-use volumes" 2020-11-17 14:51:42 +00:00
Stephen Finucane
a5101a4139 trivial: Document removal of support for agents
We can't remove these commands for a long time, given OSC's intention to
support multiple releases of OpenStack, but we can at least indicate to
users that this thing might not work anymore.

Change-Id: I9093cc1197a0287984d83e2020fba100d0c958b3
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
2020-11-17 11:44:31 +00:00
Zuul
24edeb24a6 Merge "tests: Remove 'agent' functional tests" 2020-11-16 21:37:18 +00:00
Stephen Finucane
ebaf0eae2c tests: Remove 'agent' functional tests
The 'os-agents' API was recently removed from nova [1]. Remove the
functional tests, since they will always fail going forward but will
continue to run on older stable branches.

Also Squeeze https://review.opendev.org/#/c/762559/ inside, since those
2 are simultaneously blocking gate

[1] https://review.opendev.org/#/c/749309/

Change-Id: I0bf7d4c0ba2a9d4637db0d209d8d52163d772f12
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
2020-11-16 15:54:27 +01:00
Zuul
ce31c417de Merge "Resolve issues with 'server migration list'" 2020-11-12 11:20:21 +00:00
Dmitriy Rabotyagov
4c0bfb03fc Allow to resize in-use volumes
Since Pike (microversion 3.42) [1] Cinder API allows to resize in-use
volumes. So no reason not to implement it in CLI.

[1] https://opendev.org/openstack/cinder/src/branch/master/cinder/api/openstack/rest_api_version_history.rst#user-content-section-39

Change-Id: I22462a56d261e0a100aac3f27af7be47223edec0
2020-11-11 09:18:49 +00:00
Zuul
e2bd1530cf Merge "functional: Remove test for 'quota set --force'" 2020-11-09 18:50:43 +00:00
Zuul
4d3bad9f19 Merge "Add 'openstack server evacuate' command" 2020-11-09 16:56:19 +00:00
Stephen Finucane
1a5dd4af5b Resolve issues with 'server migration list'
The 'os-migrations' API accepts 'instance_uuid' and 'migration_type'
query string parameters, not 'server' and 'type'. For the former, as the
name would suggest, the value should be a server UUID, not a name.

In addition, this is a list command and therefore should subclass the
'Lister' base class.

Change-Id: I736f5575156fc04d7ada7783a1865ab3b438396f
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
2020-11-09 15:05:54 +00:00
Artem Goncharov
512ba114a1 Switch 'openstack keypair' ops to use SDK
Let's continue our journey and start using SDK for the keypair
operations

Depends-On: https://review.opendev.org/#/c/761883/
Change-Id: Id411e70b8e1a79c0e88a0e22be7ff37e5c30fcda
2020-11-09 13:14:53 +01:00
Stephen Finucane
ffd7e93961 functional: Remove test for 'quota set --force'
Change I1d1ac1ac46f49f64794ffc8631e166935537966c introduced the 'quota
set --force' parameter to force set nova quotas. As part of that fix, we
introduced a functional test, 'QuotaTests.test_quota_set_force' that
works by attempting to set the 'limit' of the quota for instances to the
current usage ('is_use') minus one.

This test is flawed. It doesn't create any instances so when it fires by
itself, it will always set the 'limit' to 0. When it fires at the same
time as other tests (remember, we run tests in parallel), notably tests
that rely on booting instances, it can cause other tests to fail with
the following error:

  Quota exceeded for instances: Requested 1, but already used 0 of 0
  instances (HTTP 403)

We could attempt to work around this by creating a new project and using
that project to fiddle with quotas. That's a lot of work though, and the
returns are questionable: the 'quota set' command is an admin-only
command by default and the '--force' parameter should almost never be
used. Simply remove this test.

Change-Id: Ic07ff6f4a7c1c27852c892eb906bb144aae91788
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
Story: #2008327
Task: #41225
2020-11-06 17:40:13 +00:00
jay
311f4130d2 Add a few selectable fields to the "openstack server list" output
Added ``-c project_id | user_id | created_at`` to ``openstack server list``
    command to get these columns as an output.

Change-Id: I18991adf899c7b72c98bb89871bf0715d35943f0
Story: 2007925
2020-11-05 14:01:12 +01:00
Zuul
cb6659d7cd Merge "Compute: Add user id support for keypair" 2020-11-04 00:28:41 +00:00
Zuul
71cdb113fe Merge "Add 'openstack server migration list --type' option" 2020-11-03 12:58:49 +00:00