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>
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
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
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>
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>
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>
Continue journey towards having OSC consuming SDK for nova part.
Depends-On: https://review.opendev.org/#/c/762131/
Change-Id: Id16e6c47aa93f02f15f49e1f59f73fecaa3e3b80
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
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
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
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>
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>
Let's continue our journey and start using SDK for the keypair
operations
Depends-On: https://review.opendev.org/#/c/761883/
Change-Id: Id411e70b8e1a79c0e88a0e22be7ff37e5c30fcda
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
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
This change adds a new 'openstack server evacuate' command to provide
parity with the 'nova evacuate' command. The term "evacuate" is
notoriously poor, in that it implies the instance is moved rather than
recreated, but it is retained since people are familiar with it now.
Change-Id: I1e32ca51036c501862d8e89b3144a9695d98a06f
This patch adds functionality of specific the user id when create,
delete, show and list keypairs.
Change-Id: Ib826f1f4f5a73d1875ba0f02e124b3222c4d05ed
Co-Authored-By: tianhui <tianhui@awcloud.com>
Switch from using novaclient to SDK for openstack console url show operation.
Depends-On: https://review.opendev.org/756286
Change-Id: Ibe247825148788c549c2c1e991aae92338cdf557
It would be lovely to do this server side but doing so requires a new
microversion, a blueprint and a spec. This is less performant but should
do the trick for the odd time users want to do this.
Change-Id: I26e7d38966304dd67be5da8ed0bb24f87191b82f
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
This has been supported by nova and novaclient since the veritable dark
ages. Add it to OSC.
Change-Id: Ifc95e7dd6c00807c80e87e10046ab154d0989014
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>