Commit graph

2280 commits

Author SHA1 Message Date
Stephen Finucane
4da4b96296 compute: Add missing 'server create' options
Add some volume-related options, namely '--snapshot', '--swap', and
'--ephemeral'. All are shortcuts to avoid having to use
'--block-device-mapping'.

Change-Id: I450e429ade46a7103740150c90e3ba9f2894e1a5
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
2021-01-21 11:01:15 +00:00
Stephen Finucane
074e045c69 compute: Improve 'server create --block-device-mapping' option parsing
Once again, custom actions to the rescue.

Change-Id: I6b4f80882dbbeb6a2a7e877f63becae7211b7f9a
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
2021-01-21 11:01:15 +00:00
Stephen Finucane
a52beacaa6 compute: Rename 'server migrate (confirm|revert)'
We're confirming or reverting a server migration, not a server migrate.
We've a number of 'server migration *' commands now so it makes sense to
move them under here.

Change-Id: Ib95bb36511dad1aafe75f0c88d10ded382e4fa5c
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
2021-01-21 11:01:15 +00:00
Stephen Finucane
f80fe2d8cf compute: Add 'server migration show' command
This replaces the 'server-migration-show' command provided by
novaclient.

Change-Id: I413310b481cc13b70853eb579417f6e6fad10d98
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
2021-01-21 11:01:15 +00:00
Stephen Finucane
32ae1857d1 Rename FakeServerMigration to FakeMigration
Server migrations are (confusingly) a different thing returned by a
different API.

Change-Id: Ib6b7c8f9cc3d1521a993616f832d41651dc46f73
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
2021-01-21 11:01:15 +00:00
Stephen Finucane
9ed34aac0a compute: Add support for 'server boot --nic ...,tag=<tag>'
This has been around for a long time but was not exposed via OSC. Close
this gap.

Change-Id: I71aabf10f791f68ee7405ffb5e8317cc96cb3b38
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
2021-01-21 11:01:15 +00:00
Stephen Finucane
c7d582379a compute: Improve 'server create --nic' option parsing
Simplify the parsing of this option by making use of a custom action.

Change-Id: I670ff5109522d533ef4e62a79116e49a35c4e8fa
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
2021-01-21 11:01:15 +00:00
Stephen Finucane
7ed4f68c68 compute: Add missing options for 'server event list'
Add pagination parameters, '--limit' and '--offset', and filtering
parameters, '--changes-since' and '--changes-before'.

Change-Id: Ieca8267c3b204ae2db580502cc8fe72c95eddf09
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
2021-01-21 11:00:31 +00:00
Stephen Finucane
5ec4d4c718 compute: Add missing options for 'server group list'
Add pagination parameters, '--limit' and '--offset'. It's unfortunate
that we can't use '--marker' like elsewhere but that requires
server-side support to be truly effective.

Change-Id: I186adc8cdf28e9c540ad22bca6684d9dd892976a
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
2021-01-21 10:58:41 +00:00
Stephen Finucane
1a6df700be compute: Add 'server * --all-projects' option
Add an '--all-projects' option to a number of commands:

- server delete
- server start
- server stop

This is in addition to 'server list', which already supports this
option.

This option allows users to request the corresponding action on one or
more servers using the server names when that server exists in another
project. This is admin-only by default.

As part of this work, we also introduce a 'boolenv' helper function that
allows us to parse the environment variable as a boolean using
'bool_from_string' helper provided by oslo.utils. This could probably be
clever and it has the unfortunate side effect of modifying the help
text in environments where this is configured, but it's good enough for
now.  It also appears to add a new dependency, in the form of
oslo.utils, but that dependency was already required by osc-lib and
probably more.

Change-Id: I4811f8f66dcb14ed99cc1cfb80b00e2d77afe45f
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
2021-01-21 10:54:27 +00:00
Zuul
bfa032cb18 Merge "Support remote-address-group in SG rules" 2021-01-20 17:03:39 +00:00
Zuul
6905e97565 Merge "compute: Improve 'server migration list' options" 2021-01-15 21:34:35 +00:00
Zuul
66e33b6edb Merge "compute: Add '--force' option to 'server delete'" 2021-01-15 21:34:25 +00:00
Zuul
fb564d20a5 Merge "compute: Add missing options for 'hypervisor list'" 2021-01-15 21:34:04 +00:00
Zuul
3864ceea26 Merge "compute: Add 'server volume update' command" 2021-01-15 04:09:58 +00:00
Stephen Finucane
dfa869ed1d compute: Improve 'server migration list' options
Improve both the '--user' and '--project' options to allow names as well
as UUIDs. There's no release note included since this entire command was
added in change I15b4a5aca8d0dee59dd293e7b1c7272cdfbeea20, which hasn't
been included in a release yet.

Change-Id: I7654f3ffc54d38d5cfb03d8d1b2f4dc4fb06fb3d
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
2021-01-12 17:08:54 +00:00
Stephen Finucane
8a164bb09c compute: Add '--force' option to 'server delete'
This is an admin-only operation by default but can be useful.

Change-Id: I25a4da697e27c0fba4d28b504377667eb18f15fe
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
2021-01-12 17:07:32 +00:00
Stephen Finucane
262e525aad compute: Add missing options for 'hypervisor list'
Yet more pagination parameters.

Change-Id: I9f0145c89ddc49c1d907e6e6e294319cf80fc6ff
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
2021-01-12 17:07:23 +00:00
Hang Yang
e01e59caeb Support remote-address-group in SG rules
Add support for using remote-address-group in security group rules.

Change-Id: Ib1972244d484839943bc3cda07519a6c6d4b945a
Implements: blueprint address-groups-in-sg-rules
Depends-On: https://review.opendev.org/755644
2021-01-12 10:55:24 -06:00
Stephen Finucane
ca7f23d0d1 compute: Add 'server volume update' command
We're not going to expose the ability to swap volumes since that's a
things humans should not generally use. From the API docs [1]:

  When updating volumeId, this API is typically meant to only be used
  as part of a larger orchestrated volume migration operation initiated
  in the block storage service via the os-retype or os-migrate_volume
  volume actions. Direct usage of this API to update volumeId is not
  recommended and may result in needing to hard reboot the server to
  update details within the guest such as block storage serial IDs.
  Furthermore, updating volumeId via this API is only implemented by
  certain compute drivers.

We *do* want users to have the ability to change the delete on
termination behavior though, so that's what we expose.

[1] https://docs.openstack.org/api-ref/compute/?expanded=update-a-volume-attachment-detail#update-a-volume-attachment

Change-Id: I50938e1237b4d298521b26a5f9cb90c018dfebaf
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
2021-01-12 16:29:07 +00:00
Zuul
d6646d714b Merge "network: Address nits for I3c313fc9329837dde67815901528a34dca98ebcc" 2021-01-12 13:54:11 +00:00
Stephen Finucane
dd89efd5ac network: Address nits for I3c313fc9329837dde67815901528a34dca98ebcc
Address comments left in the review for $subject.

Change-Id: I69449112027736152c9fb62f5fe427efd6a25107
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
2021-01-12 10:07:58 +00:00
Zuul
d828b04c9f Merge "Support Neutron Address Group CRUD" 2021-01-11 17:38:26 +00:00
Zuul
8993d32188 Merge "Add 'server unshelve --wait' option" 2021-01-11 17:37:39 +00:00
Zuul
05cb650442 Merge "Add 'server shelve --offload', 'server shelve --wait' options" 2021-01-11 17:37:32 +00:00
Stephen Finucane
2b073c2034 Add 'server unshelve --wait' option
This was recently added to the 'server shelve' command. Add it now for
the 'unshelve' command.

Change-Id: I633dd85b60cf70b4f8610f414d82669dd6a53111
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
2021-01-08 18:01:29 +00:00
Stephen Finucane
64c2a1a453 Add 'server shelve --offload', 'server shelve --wait' options
The '--offload' option allows us to explicitly request that the server
be offloaded once shelved or if already shelved.

The '--wait' option allows us to wait for the shelve and/or offload
operations to complete before returning. It is implied when attempting
to offload a server than is not yet shelved.

Change-Id: Id226831e3c09bc95c34b222151b27391a844b073
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
2021-01-08 18:01:25 +00:00
Stephen Finucane
d5026278ed compute: Add 'server volume list' command
This replaces the old 'nova volume-attachments' command.

Change-Id: Icb98766f98bd1f2469bdb6df62b4624711f98422
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
2021-01-08 12:14:43 +00:00
Stephen Finucane
958344733a compute: Add missing options for 'server image create'
Add a '--property' option to record arbitrary key/value metadata to
'meta_data.json' on the metadata server.

Change-Id: I267f3290fce3692cbd1ff6a9af146c2736ee31fe
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
2021-01-08 12:14:43 +00:00
Stephen Finucane
b349057220 tests: Remove unused fake method
The FakeServerMigration.get_server_migrations method was added in
change I15b4a5aca8d0dee59dd293e7b1c7272cdfbeea20 but has never been
used. Remove it.

Change-Id: I6089c5200737b9319a8e96f2a2fc18b7cdd6b2c6
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
2021-01-08 12:14:43 +00:00
Stephen Finucane
fc24142ed4 compute: Add missing options for 'keypair list'
Add pagination parameters, '--limit' and '--marker'. This isn't
compatible with our client-side '--project' parameter so we error out
for that.

Change-Id: I403cf0fb7aabad4a3dfda5adae62d47ecf7faf5c
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
2021-01-08 12:14:43 +00:00
Stephen Finucane
8a0f3fc6a8 compute: Add missing options for 'server set'
Add a new '--no-password' option to unset the password on an existing
server. In addition, add a new '--password' option that replaces the
interactive '--root-password' option. This makes sense given no other
commands uses interactive password options.

Checks that rely on specific API microversions now run before we execute
any action, to avoid situations where an update is only partially
applied.

Change-Id: Ibf8717efdd418a2d95215b4d9ab2acf0d57c4a70
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
2021-01-08 12:14:41 +00:00
Zuul
9a976ada8e Merge "compute: Add missing options for 'server list'" 2021-01-08 02:26:08 +00:00
Stephen Finucane
d0112a801a compute: Add missing options for 'server list'
This accepts a large number of options that we weren't exposing. Add the
following options: '--availability-zone', '--key-name',
'--config-drive' and '--no-config-drive', '--progress', '--vm-state',
'--task-state' and '--power-state'.

In addition, refine the 'openstack server list --status' parameter to
restrict users to the actual choices supported by the server.

Change-Id: Ieeb1f22df7092e66a411b6a36eafb3e16efc2fc2
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
2021-01-07 14:10:54 +00:00
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
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
Hang Yang
f57e10b903 Support Neutron Address Group CRUD
Add support for Neutron address group CRUD operations. Subsequent patches
will be added to use address groups in security group rules.

Change-Id: I3c313fc9329837dde67815901528a34dca98ebcc
Implements: blueprint address-groups-in-sg-rules
Depends-On: https://review.opendev.org/738274
Depends-On: https://review.opendev.org/745594
2020-12-24 11:27:23 -06: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