111 Commits

Author SHA1 Message Date
Zuul
71cdb113fe Merge "Add 'openstack server migration list --type' option" 2020-11-03 12:58:49 +00:00
Zuul
0228790024 Merge "Cleanup of 'server migration list' command" 2020-10-21 19:57:47 +00:00
Zuul
77a45fe685 Merge "Compute: Add tag support for server add fixed ip" 2020-10-15 17:42:50 +00:00
tianhui
2f76bfa3a6 Compute: Add tags support for server
Change-Id: If065602792958ff0145ae9f2e05f5b7a3177905c
Story: 2002006
Task: 19641
2020-10-14 09:53:26 +01:00
Zuul
6216025e9d Merge "Compute: Add tag support for server add volume" 2020-10-14 03:46:06 +00:00
Zuul
f083d42972 Merge "Add 'server migration force complete' command" 2020-10-14 03:46:00 +00:00
Zuul
91027a501f Merge "Add 'server migration abort' command" 2020-10-14 03:45:54 +00:00
Zuul
247ca75d26 Merge "compute: Add --password option for openstack server create" 2020-10-13 23:26:25 +00:00
Stephen Finucane
bf35f04682 Add 'openstack server migration list --type' option
Another gap with novaclient closed.

Change-Id: Id3ca95ceda6f438fa72496ab9ab15ac09bb64fa5
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
2020-10-13 15:14:09 +01:00
Stephen Finucane
5fd399eaba Cleanup of 'server migration list' command
Address some post merge nits.

Change-Id: Ie59521d81fab191194f6c1a114b007fa17f5299f
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
2020-10-13 15:09:55 +01:00
jay
08b0e5855b Add 'server migration force complete' command
This is equivalent to novaclient's 'live-migration-force-complete'
command.

Change-Id: Ic4dc639afa16cdf8c5a46774895e850d92985292
Story: 2007513
Task: 39293
2020-10-13 14:17:28 +01:00
hackertron
1c3cf11331 Add 'server migration abort' command
This is equivalent to nova client's 'live-migration-abort' command.

Change-Id: I0ff520ccfdf2de52c427affad7bef4554c86a06f
Story: 2007489
Task: 39210
2020-10-13 14:17:25 +01:00
Zhaokun Fu
fd9a235de3 compute: Add --password option for openstack server create
Change-Id: Iaf923200efe023655a58ac5acac0b087d2fd5366
Story: #1708570
Task: #13780
2020-10-13 10:37:38 +01:00
Zuul
3cc81dded3 Merge "Remove oslo.utils" 2020-10-13 07:22:37 +00:00
Zuul
44f842b1f8 Merge "Add an error message when server bind floating IP" 2020-10-13 04:59:42 +00:00
Zuul
1bac625d47 Merge "Compute: Add tag support for server add network" 2020-10-13 03:42:52 +00:00
Zuul
ce563f08ba Merge "Compute: Add tag support for server add port" 2020-10-13 01:36:46 +00:00
Monty Taylor
9385113d40 Remove oslo.utils
Oslo things are really server-side oriented and are heavy-weight
for client things. Remove oslo.utils and just use iso8601 and
importlib directly. It's not actually a bad library, but pulling
it and its other deps in just for a couple of wrapper methods
is a bit much here.

oslo.i18n, fwiw, is lightweight and helpful.

Change-Id: I463993170c03a1d98c47ab6a3c19131b7fca1099
2020-10-12 17:29:57 +01:00
yanpuqing
415545ab9f Add an error message when server bind floating IP
If we add a floating IP for the server with no fixed IP, CLI doesn't
report an error and nothing happens. The patch adds an error message
when the server which don't have fixed IP bind floating IP.

Change-Id: I400f2bab08521bb7fa443d87c7f45cc79eb80694
Task: 27941
Story: 2004346
2020-10-12 17:09:19 +01:00
Zuul
ad2ac13c97 Merge "Add server migration list CLI" 2020-10-12 16:01:52 +00:00
tianhui
742c80a825 Compute: Add tag support for server add fixed ip
Change-Id: I62ed4729dead9f91630d1f568c834c9642965558
Story: 2002195
Task: 21679
2020-10-12 15:25:09 +01:00
tianhui
6f1602312b Compute: Add tag support for server add network
Change-Id: I31a66b2d4dac44052a71f43a5a67836247ccac64
Story: 2002195
Task: 21678
2020-10-12 15:19:27 +01:00
tianhui
f3fbb1b648 Compute: Add tag support for server add port
Change-Id: Ice6bf5fb57afeb10862c870b42732dcf166772d1
Story: 2002195
Task: 21676
2020-10-12 11:37:20 +01:00
Zuul
a48c05b90a Merge "Remove usage of six" 2020-10-09 19:37:48 +00:00
tianhui
1c7fe3b6bd Compute: Add tag support for server add volume
Change-Id: Id9f2e09426f6824e9ca672bf7808b5165c650a69
Story: 2002195
Task: 21675
2020-10-09 17:31:14 +01:00
Zuul
960004dcc7 Merge "Add 'openstack server create --use-config-drive'" 2020-10-09 10:43:59 +00:00
songwenping
c2df9215e1 Remove usage of six
With python3.x, classes can use 'metaclass=' instead of
'six.add_metaclass', 'six.iteritems' and 'six.iterkeys' can
be replaced by 'items' and 'keys', 'six.moves.urllib.parse'
can be replaced by 'urllib.parse', 'six.StringIO' and
'six.moves.cStringIO' can be replaced by 'io.StringIO',
'six.text_type' and 'six.string_type' are just 'str'.

Change-Id: I84848c0bf8ab3c36dd821141191e2725e4e3b58b
2020-10-07 02:15:25 +00:00
Zuul
eb5416a257 Merge "Fix --image-property option in 'create server'" 2020-10-01 05:52:39 +00:00
Zuul
e7b2528c4a Merge "Show words indicating booted from volume for server image" 2020-09-30 20:34:53 +00:00
zhangbailin
b77c28d295 Add server migration list CLI
Add ``openstack server migration list`` to fetch server migrations.

Part of blueprint add-user-id-field-to-the-migrations-table

Change-Id: I15b4a5aca8d0dee59dd293e7b1c7272cdfbeea20
2020-09-24 18:45:13 +08:00
jay
bae89b3014 Output correct json for security groups in 'openstack server show'
Fixes incorrect json output for 'openstack server show -f json'.
The security group json output groups all the json as one
for e.g. "security_groups": "name='group1'\nname='group2'"
The correct output should be
"security_groups" : [{"name" : "group1"}, {"name" : "group2"}]
properties and volumes_attached fields also has similar issue.

Story: 2007755

Change-Id: I1b1cac716329e0530400aff782c08000b21d8e1d
2020-09-14 15:22:27 +02:00
Myeongchul Chae
fbd2c00b89 Fix --image-property option in 'create server'
There was a problem that the '-image-property' option, which can be used
to create an instance, did not work as intended.

I found that there were two problems with this option.

First, I cannot select an image as its metadata.

The second is that when there are multiple images available, the desired
image may not be selected depending on the situation.

This patch solves these two problems.

I wrote the test case with these two problems considered together.

Change-Id: Ib2745d7e067056ff4ca8bfaf6cff492d0dacb73a
story: #2007860
2020-09-10 16:12:11 +00:00
melanie witt
4a3c5207c1 Show words indicating booted from volume for server image
For a server booted from a volume, nova API does not store an image_id
and instead returns an empty string. Currently, openstackclient
similarly shows an empty string for Image Name and Image ID for servers
booted from volumes.

To aid CLI users in understanding the meaning of no image_id, we can
display the string "N/A (booted from volume)" in the image field if the
server was booted from a volume.

Change-Id: I9c62cf6fe23b2e934dcbf5ebbf706b2705d2e424
2020-08-27 20:24:48 +00:00
Stephen Finucane
12f1e56ebf Add 'openstack server create --use-config-drive'
Despite what the help text for this options says, the nova API only
accepts boolean values for this value and has done so since at least the
introduction of the 2.1 microversioned API. While it would be nice to
convert '--config-drive' to a boolean flag, we'd need to be able to
retain temporary support for people passing arguments. 'nargs=?' [1]
looks promising but it has an annoying tendency to swallow a positional
argument following it [2]. Since that is not an option, we have to live
with a new config option, '--use-config-drive' and a '--no-config-drive'
counterpart.

[1] https://docs.python.org/3/library/argparse.html#nargs
[2] https://bugs.python.org/issue9338

Change-Id: If9cce0ad4094cc9cef1c9136b80c3b0f35a82c7a
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
Story: #2005468
Task: #30547
2020-07-22 10:59:07 +01:00
Adam Harwell
ae67317109 Correct image lookup during server rebuild
The switch to using glance from the SDK accidentally used get_image
directly during a server rebuild, when it should have used find_image to
match existing functionality.

Bug introduced in: I36f292fb70c98f6e558f58be55d533d979c47ca7

Change-Id: I2005bd40a1bd6719670c7f7854316b4f9801b140
Story: 2007620
Task: 39643
2020-05-04 16:06:02 -07: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
Stephen Finucane
ea27ebb0f9 Stop silently ignoring invalid 'server create --hint' options
The '--hint' option for 'server create' expects a key-value pair like so:

  openstack server create --hint group=245e1dfe-2d0e-4139-80a9-fce124948896 ...

However, the command doesn't complain if this isn't the case, meaning
typos like the below aren't indicated to the user:

  openstack server create --hint 245e1dfe-2d0e-4139-80a9-fce124948896

Due to how we'd implemented this here, this ultimately results in us
POSTing the following as part of the body to 'os-servers':

  {
    ...
    "OS-SCH-HNT:scheduler_hints": {
      "245e1dfe-2d0e-4139-80a9-fce124948896": null
    }
    ...
  }

Which is unfortunately allowed and ignored by nova due to the use of
'additionalProperties' in the schema [1]

Do what we do for loads of other options and explicitly fail on invalid
values. This involves adding a new argparse action since none of those
defined in osc-lib work for us. This is included here to ease
backporting of the fix but will be moved to osc-lib in a future patch.

[1] https://github.com/openstack/nova/blob/19.0.0/nova/api/openstack/compute/schemas/servers.py#L142-L146

Change-Id: I9e96d2978912c8dfeadae4a782c481a17cd7e348
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
Story: #2006628
Task: #36840
Related-Bug: #1845322
2020-02-03 15:25:24 +00:00
Sean McGinnis
69db9fe73c
Raise flake8-import-order version to latest
We had this library capped at a release that is a few years old. Now
that we have dropped py2 testing, we can pick up the latest version.

This uncovered a few things to clean up. Mostly the fact that mock is
now a part of the StdLib unittest since Python 3.3.

Change-Id: I27484dd4c25378413ff16e97a35a1a46062357bc
Signed-off-by: Sean McGinnis <sean.mcginnis@gmail.com>
2020-01-10 14:21:47 -06:00
Matt Riedemann
5b3a827a1f Provide stderr in exception when check_parser fails
For negative tests that are asserting an argparse failure
it would be useful to assert the specific reason for the
failure in the test rather than just getting an exception,
especially to avoid false positives in the tests when what
is being tested and failing isn't the actual expected reason
for the failure.

This wraps the check_parser code that parses the args and
mocks sys.stderr so we can trap that output and put it in the
exception message that gets raised to the test.

As a result, we can tighten up a test that was passing before
for the wrong reason [1].

[1] https://review.opendev.org/#/c/673725/12/openstackclient/tests/unit/compute/v2/test_server.py@605

Change-Id: I0f1dc1215bdfb3eba98ccaf66a0041d220b93812
2019-11-20 13:39:40 +00:00
zhangbailin
874a726f52 Microversion 2.79: Add delete_on_termination to volume-attach API
Added ``--disable-delete-on-termination`` and
``--enable-delete-on-termination`` options to the
``openstack server add volume`` command that enables users to mark
whether to delete the attached volume when the server is destroyed.

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

Part of blueprint support-delete-on-termination-in-server-attach-volume

Change-Id: I6b5cd54b82a1135335a71b9768a1a2c2012f755b
2019-11-19 21:07:20 +00:00
zhangbailin
fcd46acb69 Microversion 2.77: Support Specifying AZ to unshelve
This patch adds a new parameter ``--availability-zone`` to
``openstack server unshelve`` command. This can help users to specify
an ``availability_zone`` to unshelve a shelve offloaded server from
2.77 microversion.

Depends-On: https://review.opendev.org/679295

Implements: blueprint support-specifying-az-when-restore-shelved-server

Change-Id: Ia431e27c2a17fe16466707cc362532860ecf22df
2019-09-03 21:38:44 +00:00
Zuul
a15e4741fa Merge "Add 'openstack server resize (confirm|revert)' commands" 2019-08-20 18:12:20 +00:00
Matt Riedemann
b9d6310556 Add openstack server create --boot-from-volume option
This adds a --boot-from-volume option to the server create
command which is used with the --image or --image-property
option and will create a volume-backed server from the
specified image with the specified size. Similar to the
--volume option, the created root volume will not be deleted
when the server is deleted. The --boot-from-volume option
is not allowed with the --volume option since they both create
a block device mapping with boot_index=0.

Change-Id: I88c590361cb232c1df7b5bb010dcea307080d34c
Story: 2006302
Task: 36017
2019-08-09 16:44:46 +00:00
Stephen Finucane
7561e062eb Add 'openstack server resize (confirm|revert)' commands
These are currently exposed as flags on the 'openstack server resize'
command but they are in fact operation and should be exposed as commands
in their own right.

The old flag-based variants are deprecated for removal in 4.0.

Change-Id: I733796d3bda6c3755a3d3548bbe695abb474a6a0
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
2019-08-09 15:48:15 +00:00
Zuul
c474319909 Merge "Add host and hypervisor_hostname to create servers" 2019-07-23 01:32:32 +00:00
zhu.boxiang
340f25fa14 Add host and hypervisor_hostname to create servers
Adds the --host and --hypervisor-hostname options to
``openstack server create`` CLI.

Depends-On: https://review.opendev.org/670558

Change-Id: If188c3d96fa506dbe62ef256418f2f9bca1520c2
Blueprint: add-host-and-hypervisor-hostname-flag-to-create-server
2019-07-19 15:45:18 +00:00
melanie witt
bfc34e11b3 Fix BFV server list handling with --name-lookup-one-by-one
When the --name-lookup-one-by-one option passed to the 'server list'
command, the image and flavor names will be looked up for each
server being listed instead of fetching all image/flavor names.

The current code assumes all servers have an image attribute, but
servers booted from volumes have no image, so the following error is
raised when listing BFV servers with --name-lookup-one-by-one:

  AttributeError: ('unicode'|'str') object has no attribute 'get'

The error occurs when the code attempts server.image.get('id').

This fixes the --name-lookup-one-by-one code not to assume an image
for a server. The unit tests for 'server list' have also been
robustified to feature one BFV server to enhance our test coverage.

Story: #2006063
Task: #34777

Change-Id: I312c971346c7ded93f6fcaa515098554b8580295
2019-06-28 22:06:39 +00:00
Zuul
17611a72c5 Merge "Microversion 2.73: Support adding the reason behind a server lock" 2019-06-21 20:59:49 +00:00
Surya Seetharaman
187be0ac22 Microversion 2.73: Support adding the reason behind a server lock
This patch adds a new parameter ``--reason`` to ``openstack server lock``
command and ``--locked``, ``unlocked`` filtering parameters to
``openstack server list`` command. This can help users to provide a
reason when locking the server and to filter instances based on their
locked value from 2.73 microversion.

Implements blueprint add-locked-reason
Depends-On: https://review.opendev.org/#/c/661785/

Change-Id: Ib2714f98b24d47e570da8a6c231e765acd2ff595
2019-06-21 11:35:51 -05:00
Martin Chlumsky
1aad94349b Allow "server migrate" (not live) to take "--host" option
Currently, doing a cold migration while specifying a target host is not
possible however nova api supports it since version 2.56.

This patch allows passing "--host" when doing a cold migration.
It runs normally if --os-compute-api-version is 2.56 or greater and
returns an error otherwise.

Change-Id: I960109008096ce8bb4e4c8ca6ffb22c33aacd995
Story: 2003325
Task: 24359
2019-06-21 14:47:07 +00:00