Fix `openstack quota show --usage` to correctly display resource usage
and reservations by applying proper name normalization for corresponding
sections of data.
Previously, name normalization was applied only for "limits" which is
the root section, leaving 'usage' and 'reservation' sections untouched.
Change-Id: Id14fe894b30a74b9b8d78b00c3d4ff151f8b4210
Closes-bug: #2137636
Signed-off-by: Andriy Kurilin <andr.kurilin@gmail.com>
When using 'openstack image set --project <project> --accept <image>',
the command incorrectly changed the image owner. The --project parameter
when used with membership flags should only identify which member's
status to update, not change ownership.
Closes-Bug: #2136795
Change-Id: I1044b51f38000fb5339740bc40c7f8645c794402
Signed-off-by: Abhishek Kekane <akekane@redhat.com>
When a user is created without a password then no parameter called
'password' should be submitted to the keystone API. This removes the
incorrect 'password' with null being supplied.
Closes-Bug: 2136148
Change-Id: If1c2eb5db360764a5f7660ce4e5353da85b6d3da
Signed-off-by: Doug Goldstein <cardoe@cardoe.com>
In change I53d9058273748ecd4d4eecec5f7291d5f38ce5ab we added custom
Command classes for typing purposes. However, the Tap-as-a-Service code
merged around the same time and was missed. Correct this.
Change-Id: I3a9fe20b5b8eb54708644527538f27396f29b476
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
Python 3.8 and 3.9 are no longer supported.
Refer to pyproject.toml for the current supported versions.
Change-Id: Ie7f917c26299509050294037cc27e1fd9c20e78b
Signed-off-by: Koya Watanabe <koywatan@lycorp.co.jp>
This will ensure we do not forget to ignore a module when migrating
plugins in-tree.
Change-Id: Id4dd657746f7c5f8ebf5ef55964593123303b996
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
Depends-on: https://review.opendev.org/c/openstack/openstackclient/+/970618
Even though the comment here attributed this to stevedore, it was in
fact the use of pkg_resources that changed things.
Change-Id: I35377dd7d773024aa6423b72b1412e11b1b6f2e4
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
Change Ibe1cd6461d2cb78826467078aa17272f171746aa removed support for the
v1 volume API. We should have removed this check at the same time.
We also remove some god-awful monkey patching that references v1
cinderclient but in practice modified all clients.
Change-Id: I3727fd9238df966b3bc59812c5efcf3398da5c72
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
We make a lot of use of typing.Any just to get this over the line. We
can come back to this later.
Change-Id: I03c18b0b44f210b2ad3e4012344d521fb85cae97
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
These are effectively identical to the osc-lib variants except they
include the attributes that the OSC shell implementation will set on
this during shell init. This helps from a typing perspective.
Change-Id: I53d9058273748ecd4d4eecec5f7291d5f38ce5ab
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
No has used Initialize functions in years, while the _auth_required
attribute has long since been handled by the base class in osc-lib.
Change-Id: I3af9a6d8c339b2170a13346b009392d51e044443
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
Instead of building fake test objects in the local fakes.py file,
use existing generate_fake_resource(s) factory methods to automatically
populate class attributes. Doing this ensures that fake objects are always
build with actual attributes of the class.
Change-Id: If424b87c79e7dab102cbd8a7938df85411c9465d
Signed-off-by: Miro Tomaska <mtomaska@redhat.com>
Take advantage of functionality recently introduced in cliff to allow us
to prefer commands that are in-tree over those provided via plugin
packages. This will allow us to move the extensions themselves in-tree.
Change-Id: I5dd9bc9743bea779ea1b4a71264c9a77c80033b3
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
... to enforce maximum line length, to keep consistent code format.
Note that E501 check is disabled in test code now, until we decide how
to update ~50 lines violating the limit due to too long names.
Change-Id: I122c8b9035d6381dafb34438517c26b01e5201f5
Signed-off-by: Takashi Kajinami <kajinamit@oss.nttdata.com>
Proposal to move all stadium projects from neutronclient
to openstackclient repo. Tap-as-a-service is the first example.
The tapas osc client code was recently moved to neutronclient see
https://review.opendev.org/c/openstack/tap-as-a-service/+/960849
but proposal is to make openstackclient its final destination.
This change also includes automatic lint fixes required in
this repo.
Change-Id: Ied47f40c6947600d40bf675ec06f0bf88fd15f1f
Signed-off-by: Miro Tomaska <mtomaska@redhat.com>
We cannot remove them fully, but we can remove a lot of them. Further
cleanup is needed here to remove the references but that will be done
once a version of osc_lib with fixes is included.
Change-Id: Ifd200bd3d3e5c02c239a8ad0e6cee6d823e26544
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
Change registered limit argument to plural and remove `id` suffix for
`registered limit delete` command. Also, note that service can be
specified by name or ID in help description.
Change-Id: I16950a5ac1a197761592304dcb71dcb09d608d78
Signed-off-by: 0weng <oweng@osuosl.org>
Just change all text to be as consistent as possible.
TrivialFix
Change-Id: I959cda9b0688f0fcec0f55ce4c8cadf209d3537f
Signed-off-by: Brian Haley <haleyb.dev@gmail.com>
This comes up in reviews frequently. Let's automate it.
Change-Id: Ia7ebd7cf29fe4550b22921e898bebaaa5f7bb4f6
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
We have a few instances of this. Settle on one.
Change-Id: Id115fea1c59ad75ec8e00d665e587020f7177a55
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
We were incorrectly passing domain_id as a positional argument, causing
it to get picked up as the ignore_missing argument instead. Correct
this, fixing another bug where the look of projects or domains could be
forbidden by policy, in the process. The latter is unlikely to happen,
given endpoint lookup is typically an admin-only operation, but it's
better to be safe.
Change-Id: Idd3300040967d781b7743accd62298cb24c62872
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
UP is the exact name of the rule, instead of U. Use the exact name to
avoid potential problems caused by any UX rules which can be added
in the future.
Change-Id: I5fa59181fcd3e28bf3c87ce2a5e610561b2ee8a8
Signed-off-by: Takashi Kajinami <kajinamit@oss.nttdata.com>
These are already found in osc-lib itself.
Change-Id: I51114a5a79d6cd6ea46f60284066132b2e54a1a5
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
This must have crept in some time after [1] merged.
[1] Ic203964c7dede7dd80ae2d93b8fa1b7e6634a758
Change-Id: Ic0603db8b1a59b7704c51b0e0ffceb7db2e781d3
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
The 'role_assignments_filter' identity proxy method requires either a
user or group, which defeats the entire purpose of the command when used
with this option. Use 'role_assignments' instead.
Change-Id: I8fb705c55fb4e81fa82d4a7dbe4c5bf7e1edd98a
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
Closes-bug: #1616104
Currently, running ``application credential show`` on a
non-existent appcred will exit normally and display a
formatted application credential with no data, despite
the Keystone API returning a 404.
Ensure that querying a non-existent application
credential raises an exception message and an exit-code
1 to the user.
Closes-Bug: #2126565
Change-Id: I597d2d4064f1020c5ac40862ecc556f3c94b53eb
Signed-off-by: Matt Anson <matta@stackhpc.com>
Per this Debian bug [1], 'openstack quota show --default' fails when
cinder is NOT installed. This is also true of other services.
[1] https://bugs.debian.org/1109288
Change-Id: I361da44b9f1d09ba3a454632d41e2110a3815395
Signed-off-by: Svein-Erik Skjelbred <svein-erik@skjelbred.com>
Signed-off-by: Thomas Goirand <zigo@debian.org>
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
"openstack project delete" command doesn't try to figure out if
other services are using specified project somehow before trying
to delete it. This patch extends command description to ensure
that this is clearly communicated to users.
Related-bug: #2118900
Change-Id: I3ae0b2a8f04d4f791cab46ccd89f400549d24ecd
Signed-off-by: Alexey Stupnikov <aleksey.stupnikov@gmail.com>
Add file to the reno documentation build to show release notes for
stable/2025.2.
Use pbr instruction to increment the minor version number
automatically so that master versions are higher than the versions on
stable/2025.2.
Sem-Ver: feature
Change-Id: I6aec2d1f91ed7fc2dba466574b4efb92b4bd7c88
Signed-off-by: OpenStack Release Bot <infra-root@openstack.org>
Generated-By: openstack/project-config:roles/copy-release-tools-scripts/files/release-tools/add_release_note_page.sh
This change fixes missing conditional logic for microversion
2.100 which adds support for showing `scheduler_hints` field
to `openstack server list --long` output.
Change-Id: I2820e02a91deb73850f37dc737dbec79dea99e8d
Signed-off-by: Rajesh Tailor <ratailor@redhat.com>
Combine multiple test cases into a single test case, in order to
speed up execution.
Change-Id: Idcfd0c8c5b7418046601d222248c0cd16886e079
Signed-off-by: minkyukim <mj110602@gmail.com>
This change fixes missing conditional logic for
microversion 2.96 which adds `pinned_availability_zone`
field to `openstack server list` output.
Change-Id: I1e398bb3379fa6443b0a44db76baaf6241a945e7
Signed-off-by: Rajesh Tailor <ratailor@redhat.com>
Use sdk_fakes inside test_flavor. The only left fake is for
flavor_access, for which there is no resource in SDK.
Change-Id: I8fcfb734eb45308b80aa1478c2935c9881fee928
Signed-off-by: Artem Goncharov <artem.goncharov@gmail.com>
This was inadvertently broken during the switch from novaclient to SDK.
Fix it for now but also deprecate it since it is an unnecessary alias.
Change-Id: Iaf136d82e00defc86e57ae4ea7e848246f2ade2c
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
Closes-bug: #2120833
This patch modifies the command to delete all metadef properties
inside a namespace. This operation can be called by `image metadef
property delete`
Change-Id: Iff9bda0dddfa157be0438a66d1d05da7b0b437c3
Signed-off-by: Mridula Joshi <mrjoshi@redhat.com>
Add support for the 'os_hash_algo' and 'os_hash_value' image attributes
added with Image API 2.7.
Change-Id: Id8fe6f3fecf77f537587e9088b207ef2077a9def
Signed-off-by: Artem Goncharov <artem.goncharov@gmail.com>
Add '--chunk-size' option to 'image save' command to control the size of
bytes to read at one time.
Change-Id: I0a02323384433010b8c6804a4337040acb13da8f
Signed-off-by: Hang Yang <hangyang@verizonmedia.com>
This is a meta command that can be easily achieved via some shell
scripting. We don't need it in OSC.
Change-Id: Ia3fc8d0458cb0c0dc4695347ef953028112a9c49
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
Replace assignments of `Mock` objects to methods that are already
mocked in the class functions within test_server.py
Change-Id: I446632301c1b9f94545a0b8314e54e761d5d296f
Signed-off-by: dna <la18byeol@gmail.com>
Story: 2011459
Task: 52211
This patch adds operation which delete all metadef object inside a
namespace.
This can be implemented by `image metadef object delete`
Change-Id: Ib196e295aad1921d8bc0c451522e0ad530389134
Depends-on: https://review.opendev.org/c/openstack/openstacksdk/+/901671
Signed-off-by: Cyril Roelandt <cyril@redhat.com>
Some Image attributes defined in openstacksdk are named differently
from actual properties managed by Glance. Because openstackclient
checked property names to be unset against Image object properties,
it was impossible to unset such properties.
This patch introduces a IMAGE_ATTRIBUTES_CUSTOM_NAMES dictionary
mapping real property names with custom attribute names.
Closes-bug: #2115732
Change-Id: I7296fc293dff9208464c9a07f58ce3e9ffabd3e9
Signed-off-by: Alexey Stupnikov <aleksey.stupnikov@gmail.com>
Include '--project' and '--project-domain' filtering options to the
'security group rule list'.
Closes-Bug: #1648317
Change-Id: I19e423906846073cfa1e45b4a295b3a8f5d11970
Signed-off-by: Alexey Stupnikov <aleksey.stupnikov@gmail.com>
We need a shim for consistency group support, which we may eventually
port to SDK but have not yet. Otherwise, this is rather straightforward.
Change-Id: Ic880b7a64cde2148c266d549c4768c669ba3f501
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
Depends-on: https://review.opendev.org/c/openstack/openstacksdk/+/943800
The command line operation could never work due to the incorrect call of
the openstacksdk API. This is updated to make it work and report errors
back to the user.
Closes-Bug: #2116969
Change-Id: I87cc410853c03b00dd1549d67cb1b9a8145bcfaa
Signed-off-by: Doug Goldstein <cardoe@cardoe.com>
When listing volumes, the API provides metadata as a query parameter, but this feature is not implemented in the client code. So add parameter.
story: 2011487
task: 52446
Change-Id: I4bf66d4e073c86296fa96ee29c2b33d771e18293
Signed-off-by: ohjiwoo <jiwooo.oh@samsung.com>
The "openstack server create" with "--wait" args was priting an extra empty line character before the server ID.
This commit removes the extra empty line.
story: 2010947
task: 48984
Change-Id: Ib5ba1c9f23e7655ddfae0e5b644ed167ecd6485e
although python-openstackclient run command(image import) with invalid uri,
but the request succeeds. Fixed it to throw an exception
when requesting with an invalid URI.
unit test added. the test cover --uri 'invalid value'
Task: 52251
Story: 2011468
Closes-Bug: 2111777
Change-Id: I62cd8cdf054b6a5e07d664a543b0923ce5f20f83
Make better use of argparse and eliminate the need for a helper in the
process.
Change-Id: Ibdc9b4bfbb4d532ddb05bce9b49bcf0580cce76d
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
There is no "show" function in the "group" class of python-cinderclient. Instead, there is a "get" function, so I fixed it.
0125495f92/cinderclient/v3/groups.py (L134)
Closes-Bug: #2111539
Change-Id: If61d8cf115c9ff04d172d7344565e693774e7a21
When running `openstack server evacuate --wait`, the command would hang
indefinitely if the instance was originally in SHUTOFF state, because
only “ACTIVE” was treated as a successful completion. We now capture
the server’s status before evacuation and dynamically include
“SHUTOFF” in the `success_status` list if the instance was already
shut off. This ensures that a shutoff instance is accepted as a valid
completion without requiring manual intervention.
Unit tests have been added and updated to cover both:
- pre-evacuation ACTIVE → success_status=['active']
- pre-evacuation SHUTOFF → success_status=['active','shutoff']
Closes-Bug: #2103426
Change-Id: I86ad1cd173a144b16fde1dbac87819fab2d7a50a
This patch fixes a bug where the 'options' field was missing from
the output of the 'openstack user show' command since v7.0.0.
The issue was caused by the 'options' field not being included in
the column list in the _format_user function. This field is important
as it contains various user settings such as multi-factor authentication
configurations and password policy exemptions.
This patch:
1. Adds 'options' field to the column list in _format_user function
2. Updates all affected unit tests to include this field
3. Uses getattr() to safely handle cases where the options field may be absent
Without this fix, users cannot see important options like multi-factor
authentication settings through the CLI, which could lead to security
configuration issues being overlooked.
Closes-Bug: #2084946
Change-Id: I4319268ad4310e6164eb8e65664d73f9b32cdd78
Replace assignment of `Mock` objects to methods that are already mocked
in tests/unit/v1/test_image.py, tests/unit/v2/test_image.py
story: 2011459
task: 52210
Change-Id: I0a4644c27066c26cf0ee0f3613c174f141fe94ed
cliff is now smarter (I9155763eee15e19eab23b48989dfcc19ea2c5d34), so we
can effectively revert change I6b4f1b793dc383856bfdf9a01514381be3cd2bf1.
We bump the dependencies to ensure this.
Change-Id: I2af19043fd66b5be0826a774baeabeac7110a4aa
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
This is allowed by the neutron API. Allow it in OSC.
Change-Id: I7642ecd686d11c5af9e11cc80896243e853e33f3
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
Add a Project ID column to the --all-projects tag of server list cmd
Differentiate from the basic command, add a column for Project ID
to facilitate easier identification.
Add test code for the Project ID column of --all-projects tag.
Change-Id: I12af2c91f934e7cd268d21cf76dda78646ed2ff4
When creating a user with the --password-prompt option, a warning is
incorrectly displayed stating that no password was supplied, even though
a password was entered. This occurs because the code checks parsed_args.password
instead of the password variable that actually stores the prompted password.
This patch fixes the issue by checking the 'password' variable
instead of 'parsed_args.password' in the warning condition. A test
case has been added to verify that no warning is displayed when
using --password-prompt and entering a password.
Closes-Bug: #2091836
Change-Id: Ib3ddc7e400ee7988f605c00db534bccc3617d982
This patch adds support for Nova microversion 2.99 which exposes the new
spice-direct console type and the pre-existing /os-console-auth-token/ API.
+----------+----------------------------------------------------------+
| Field | Value |
+----------+----------------------------------------------------------+
| protocol | spice |
| type | spice-direct |
| url | http://127.0.0.1:13002/nova?token=f78009fb-41ad-... |
+----------+----------------------------------------------------------+
+----------------------+--------------------------------------+
| Field | Value |
+----------------------+--------------------------------------+
| host | 127.0.0.1 |
| instance_uuid | f2477018-aa93-... |
| internal_access_path | None |
| port | 5900 |
| tls_port | 5901 |
+----------------------+--------------------------------------+
Change-Id: I2d33646d6ac9b25076d69be76dcef8f5c465cd1b
Depends-On: https://review.opendev.org/c/openstack/openstacksdk/+/940479
Restructure things to be a little more helpful. Also add a reference to
the Dockerfile we provide and remove an errant header that should have
been removed in change Ife108e6ae191641b56e872e4616a3f4ec78281e8.
Change-Id: I5f562a99ccee7db485b5d40ef4ea6f2e2e362c13
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
This was still being used in places where we have our own API bindings
because SDK does not support the API. Those bindings should be returning
dicts, not FakeResource objects. Correct this, and in doing so fix the
bug this highlights in our cell-down output.
Change-Id: I6647d94fcf5ada8186edbf64c03abd3d8ae7ca56
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
None of these fakes are used anymore. Remove them.
Change-Id: I06721aa77f93b76b189901bbdc13a9825fe2fc3d
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
This allows us to remove get_servers, create_servers, and
create_one_servers.
Change-Id: I31a86b6333fdc3da1b54407f077873511260a5df
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
This change updates the server set state command to require confirmation
before it is applied. The same pattern as project clean is used and a
new --auto-approve flag is added to allow skipping the prompt.
Operators often use reset state in cases that are incorrect
this change updates the warning to be more explicit
about when and when not to use it.
Change-Id: Iab14739cf6043ad45ad49edff0580e81d75af2fd
The --project option of 'openstack keypair list' is supposed to filter
keypairs by a project but has not been working and instead returns
keypairs from all projects.
The reason appears to be because it uses a request for a user list
filtered by project but tenant_id/project_id is not a valid filter for
GET /users.
This fixes the issue by requesting role assignments for the specified
project and then requesting keypairs for users with a role in the
project.
This change depends on a recent openstacksdk bug fix change
Ic552dee83d56278d2b866de0cb365a0c394fe26a which fixed the user_id query
parameter for the compute /os-keypairs APIs. The bug fix was released in
openstacksdk 4.4.0.
Closes-Bug: #2096947
Change-Id: Ibb5757766e3040e58d64388b95678fab9b2b6f23
This doesn't make sense: SDK (and the server) will handle this for us.
Change-Id: I31b84e09eca0dc2bc5316d6727620346ae519512
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
Closes-bug: #2106760
The 'show-instance-action-finish-time' blueprint [1] adds support for
showing 'finish_time' for InstanceAction object.
This change adds 'finish_time' as hidden column, so it doesn't fail
tests.
We need to remove this from hidden_column list, once all the changes
related to blueprint are merged and show the field only if microversion
is >= 2.101
This is a workaround for failing tests on patch [2], as per suggestion
from Stephen.
[1] https://blueprints.launchpad.net/openstack/?searchtext=show-instance-action-finish-time
[2] https://review.opendev.org/c/openstack/openstacksdk/+/930562
Implements: blueprint show-instance-action-finish-time
Change-Id: Ib9294a603daed0fdb936be128dfba254b9108799
Adds support for a new compute microversion that returns the
associated scheduler_hints in ``GET /servers/{server_id}``,
``GET /servers/detail``, ``PUT /servers/{server_id}`` and
``POST /server/{server_id}/action`` (rebuild) responses.
Change-Id: Ia5a4e0047b5123f2fb063cfc9ab1f58b2844308f
Included resources:
qos_policy
qos_rule
qos_rule_type
Note: Parameters in unittests was modified
for compatibility with sdk
Change-Id: Iaa902d64ff1b29a07c28ed2100d437da506be475
This is no longer assigned to novaclient, meaning we can use it for SDK.
Change-Id: I43d9ede39d36cc29301f94fa462b9b9d9441807c
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
We also update tests to use proper SDK fakes so we actually test this.
Change-Id: Ib98348cab613b7139f0faa0b5df90ff44353974f
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
To ease migration of various commands from OSC to SDK.
Change-Id: I4645237e8808239e4d605f7f45138449c9439949
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
One has been introduced since Ie5907de8d60f2f39e98f6a88227cebb2e2ff565c
merged.
Change-Id: I37f7bf58a2cbecb69b370e832e56daa310cea3b6
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
The Cinder v1 API was removed in Queens [1]. Its replacement, the v2
API, has existed since Grizzly [2]. More importantly, the v1 commands
are implemented using python-cinderclient but support for the v1 API was
removed from python-cinderclient in Train [3], meaning none of these
have worked since then. Clearly if no one has noticed or cared in the 6
years or so since that happened, it's safe to say we can delete these
commands.
[1] 3e91de956e
[2] 75ca60f619
[3] 2189e5702b
Change-Id: Ibe1cd6461d2cb78826467078aa17272f171746aa
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
There is only one and it was never implemented. Remove the directory.
Change-Id: Ibfffe7936556a626b407deca0e8de17b45db5313
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
The values of these dictionaries are not used when SDK is in use,
which should soon account for all use cases. Eventually we should
probably look for plugins to return a proper class or typeddict but
that's a job for another day.
This began as a fix for in openstackclient/object/client.py which
referenced a non-existent class and quickly snowballed.
Change-Id: I7b807ec3a97124b35828ffdecbb36f6fde11e7b5
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
In [1], it was added the ability to print in the "port list" command
any field not defined in the hardcoded column set for this command.
But in [2], it was added a filter list in the API call in order to
reduce the CLI execution time. The unintentional drawback of this
optimization was that is no longer possible to print any field outside
the "port list" column set.
Because the optimization if preferred and it is always possible to use
"port show" to see all the port fields, the code added in [1] is
removed.
[1]https://review.opendev.org/c/openstack/python-openstackclient/+/522901
[2]https://review.opendev.org/c/openstack/python-openstackclient/+/754117
Closes-Bug: #2098980
Related-Bug: #1707848
Related-Bug: #1897100
Change-Id: Ia944b8e108c454219d642cfa595ffafdf060a57f
Quotas details returned from the Neutron service are in different format
then quota details returned from Nova and Cinder services. This patch
fixes helper function to convert data from Neutron to the same
format as data from Nova and Cinder is given.
Closes-Bug: #2102513
Change-Id: I18649f6c2ee179b64b7e605f4ea07d4b0c7a1635
The fix ensures that if a user wants to set a default project,
they must also provide the project domain. If it's missing,
an explicit error message is shown, making it clear that the
project domain is required.
Also adding some unit tests by modifying respective calls.
Change-Id: Ia6e921a53da55ab1bce85a42c8160872a9d47d64
Closes-Bug: #2102146
We may need to remove this soon enough, given the new Docker rate limits
that we keep bumping into.
Change-Id: Id4a9d8df770d107986b20e4a98835ee4e0b6117d
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
Add file to the reno documentation build to show release notes for
stable/2025.1.
Use pbr instruction to increment the minor version number
automatically so that master versions are higher than the versions on
stable/2025.1.
Sem-Ver: feature
Change-Id: I2789e8605f5e9bae63382ca9e822bbc3e2241f36
the flag should store False to 'allow_failure', not True.
Also, make the --allow-failure and --disallow-failure flags
mutually exclusive.
Change-Id: I03699e14d4d69d9f08caab647293732fc211dbad
This change fixes missing space in help messages to make those
consistent and pretty rendering when calling help.
Change-Id: I947374821a4dbb5e68651c0e72fc5fd2f938e6a1
openstacksdk's Credential expects user_id and project_id, not user and
project. Previously, we would send payloads like
{'type': 'ec2', 'blob': '{"access": "s3-user1", "secret": "s3-secret1"}'}
which Keystone would reject with
'user_id' is a required property
Change-Id: I0544bef7df9247395f0726ea075112d6ac992252
In [1], the "port list --long" command received a new column, showing
the trunk subports related to a parent port. The problem of this patch
is that the ``_formatters`` definition, that is shared with the "port
show" command too, is changed. The "trunk_details" information presented
in both commands differ:
* In the "port list" command, only the subports are presented, in order
to print a list of dictionaries without showing the ``trunk_id``.
* In the "port show" command, it is presented all the trunk information,
including the ``trunk_id``.
This patch includes functional tests to validate the fix.
[1]https://review.opendev.org/c/openstack/python-openstackclient/+/926611
Closes-Bug: #2098950
Change-Id: Ib1107fb3dbb025b39a7c55f90f5fe51ae433a72f
The '--flavor' option appears in the usage and arglist but is not
actually parsed. The '--flavor-id' option is what is silently parsed.
Since the goal is to allow the name or the id, this adds the '--flavor'
option to being parsed.
Closes-Bug: 2091731
Change-Id: Id83facd3825f472e7d864427699bd072d1c08779
Signed-off-by: Doug Goldstein <cardoe@cardoe.com>
We need such temporary workaround until [1] in SDK will be merged, as
without that change here py{39,312}-tips jobs are failing on that SDK
patch.
[1] https://review.opendev.org/c/openstack/openstacksdk/+/939703
Related-bug: #1915151
Change-Id: Id39a6482de54fe78e26fa33c9252253886cf1f3d
Neutron API is accepting 'security_groups' field in
order to return the list of security_groups attached
to a port, but openstackclient is parsing the output
over a Openstack Port object that has security_group_ids
to map. This patch sends to the Neutron API the expected
field value and replace the output key to allow the
mapping just in case '--long' argument is passed.
Closes-Bug: #2095414
Change-Id: I188edc3c620ce29d7b16497ca24fd7d972a06618
creating the image is a 2step process, first an 'empty' image is created
and then the data is uploaded.
Currently the output of the 'image create' command is that 'empty'
image, in `queued` status etc.
A more user friendly approach would be to make a second refresh call
to show the user image as it is after data was uploaded.
Change-Id: I2f78b113dcc3c941f8cf8dd9b63262971a780a39
Currently the volume backup restore command returns with error
even though the restore is initiated.
This patch corrects the response received from SDK and processes
it in a human readable form.
Change-Id: I7f020631fbb39ceef8740775fd82686d90a6c703
Closes-Bug: #2063335
Depends-On: https://review.opendev.org/c/openstack/openstacksdk/+/931755
For some reason we were setting a property mock on the FakeClientManager
class. In multiple places, no less. This has a nasty habit of causing
side-effects in other tests, depending on the order that tests run in.
Resolve this simply setting the attribute as we'd expect.
Change-Id: I8bf9055e3f5b885dd5a7a6d751b774934da4a7d7
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
There is a flaw (IMO) in the design of Nova's os-quota-sets API: despite
project IDs forming the identifier for an individual resource, we get a
HTTP 400 (Bad Request) error if you pass an ID that does not exist,
rather than the HTTP 404 (Not Found) we would expect.
Correct this, noting why we're doing what we're doing for readers from
the future (hi!). Note that HTTP 400 is unfortunately quite broad and
means we'll also catch things like invalid requests but the exception
may have been translated so we can't rely on a string match.
Change-Id: I720502930d50be8ead5f2033d9dbcab5d99a37a9
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
Closes-bug: #2091086
By passing a dict instead of a single value, we force SDK to populate
the correct attribute on the object.
Change-Id: I9f4c5964dc0546215474c92db567966ffad68a1a
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
Related-bug: #2089821
Currently we have 2 issues with extending volumes checks:
1. We don't specify explicitly that MV 3.42 needs to be passed for
in-use volumes
2. Any state of volume (error, attaching, detaching etc) can pass
this check by specifying MV 3.42
The fundamentally correct approach to these checks should be:
1. Only allow 'available' and 'in-use' volumes to be extended
2. Check MV 3.42 or greater is specified in case of 'in-use' volumes
otherwise fail
This approach is implemented in the patch.
Change-Id: I45ab9af953f7d060379f48ca429eaea7cfe857cc
To allow users to create servers with no security groups associated with
the ports.
Change-Id: I91b1d9dd5c3fbba838640841d98341cd8ccb1b16
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
devstack no longer installs ceilometer services unlesss ceilometer
devstack plugin is enabled, so we can safely remove the options to
disable ceilometer services.
This allows us to remove references to removed services such as
ceilometer-api .
Change-Id: I4201878d0deba4490cf2a08bbabec8fe64474385
The datetime.utcnow() is deprecated in Python 3.12.
Replace datetime.utcnow() with
datetime.now(datetime.timezone.utc).replace(tzinfo=None).
Change-Id: Ic20174a9c6cacac05471fa57b105c1f784a73057
Signed-off-by: Takashi Natsume <takanattie@gmail.com>
oslotest is not used anywhere, while requests is already a runtime dep.
Change-Id: I852b7d8664cddf22b1314b057c42930580a1f9f4
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
We only need to care about the unversioned tips jobs since [1] will take
care of the others.
[1] https://review.opendev.org/c/openstack/openstack-zuul-jobs/+/933197
Change-Id: I3d569dc496a995eee58fdbcf4a42a187143d1b24
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
The sooner we have type hints in SDK, the better /o\
Change-Id: Iaf9596aea02f683c280ae68504a14d43dbd6134a
Closes-bug: #2077634
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
Fix the wrong value assignment which made the --user-domain option
ignored. Unit tests are updated to verify usage of domain options to
avoid further regressions.
Also drop the redundant look up of domain id to avoid unnecessary API
call.
Closes-Bug: #2085604
Change-Id: I5112b8e831fb26eb6544615277f0d3fe4f15dc5a
Removing project from network_flavor_profile as neutron api
does not uses project.
Closes-Bug: 2046496
Change-Id: I77b0544cf8629fb0a5b9914361a007d28b2b5662
This is a fun one driven by two separate changes. We recently started
checking whether the volume service was available before setting quotas
in order to allow us to use quota set for other services [1]. This
merged a number of weeks ago and was included in 7.1.0. More recently,
we modified DevStack to stop publishing a service catalog entry with a
service type of 'volumev3', preferring instead to use the correct
'block-storage' service type. Taken separately, neither of these changes
would have caused issues. Together, they mean our lookups for the volume
service now fail and we can't set volume quotas.
Fix things by checking for the block-storage service type also. A future
change will raise a warning (later an error) if the volume service is
not found and you're attempting to set a quota since this is clearly a
mistake.
Change-Id: Ibbeef52225e18757cd28d0fbfb14c1ca06975b60
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
Closes-bug: #2084580
When we show a volume backup by name, it calls the get_backup
method in SDK which is only used for getting a backup by ID.
This patch modifies the approach to call find_backup method
which first tries the find by ID and then find by name logic
eventually returning the backup details.
Story: 2011234
Task: 51127
Change-Id: I926d8de9810fcf2e5335bbe35aaab15e1e36a5cb
The --user-domain option and the --project-domain option may take id or
name. In case name is given it should be translated to id.
Closes-Bug: 2083390
Change-Id: Idf3f113a74452daabc80660574030cb9b24b1a15
Currently, it is passing None value which is not accepted by keystone
parameters validation:
BadRequestException: 400: Client Error for url: ... Invalid input for field 'enabled': None is not of type 'boolean'
Failed validating 'type' in schema['properties']['enabled']:
{'enum': [True, False, None], 'type': 'boolean'}
On instance['enabled']:
None
Closes-Bug: #2083021
Change-Id: Ia8772560deb54e71672102157659d4eb22e6ad59
In change I06f3848812bce60c65909f1311f36b70eba427d4, we migrated the
'user *' commands from keystoneclient to SDK. One side effect of this is
that we are no longer able to rely on keystoneclient's 'filter_none'
helper method that filters out parameters that are set to None. As such,
we now need to do this ourselves. Eventually, it would be nice if SDK
provided such functionality itself.
The same change also introduced a bug where the '--domain' argument was
being used to lookup a project rather than the '--project-domain'
argument. This is also corrected.
Change-Id: I1204ca611a74d134c879467d6c2b73f16e043213
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
Closes-bug: #2080600
Asking for floating IPs on an undercloud results in a NotFoundException.
Make openstackclient handle it gracefully.
No test is added for this because it would need to be a scenario test -
deploying a cloud without the foalting IP extension loaded. I don't
think this edge case is worth an entire new job just to exercise it.
Change-Id: I73b544853376d98ab0dbb14e32fefc43c1a8a179
Story: 2006863
The name of the errors change and we need to move things around a
little, but it's otherwise a straight swap.
Change-Id: I0a19765ebeaa14c0534faa1542165b76ed2bf4e2
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
With `openstacksdk` 3.2.0 the `host` attribute of an Instance got added
to the `Server` class [0]. With that change, listing servers with the `host`
attribute leads to a query-filter for `compute_host` as expected, but
`openstacksdk` will also filter for the `host` attribute locally after
the results are returned. Since `compute_host` being
`OS-EXT-SRV-ATTR:host` is not the same as `host, this means no results
are returned.
Since we want to keep the old behaviour of filtering by `compute_host`
i.e. the service host name, we need to switch to filter for
`compute_host`. This is already supported in older versions of
`openstacksdk`.
[0] 0f311ff3e2
Change-Id: I0cd32c5b7d6d4d21194f3efdcfb9b205dea6a91e
Closes-bug: #2074200
Add file to the reno documentation build to show release notes for
stable/2024.2.
Use pbr instruction to increment the minor version number
automatically so that master versions are higher than the versions on
stable/2024.2.
Sem-Ver: feature
Change-Id: I5b2c70118df024dfc9236c7e1fa39554ffccf5e0
Well, mostly. We still keep our own flake8 hooks and the hacking hooks
enabled. Everything else can be handled by ruff.
Doing this enables a couple of hacking checks that were previously
unaddressed. It also highlights a few cases that flake8 missed. Both are
addressed.
Change-Id: If81c7055e9ef692425da2789bae18a96d04b104f
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
We also drop the default language setting: everything is Python 3
nowadays.
Change-Id: I9dc9573a86c93416d1bbbc782dac76ecdda6effd
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
We changed these in change I37d07a6c5cdc98680b8d65d596521cad2b049500 but
the '-c/--column' option provided by cliff currently requires an
explicit match on column names. Change them back for now. We can revert
this when cliff is a little bit smarter.
Change-Id: I9180922e9da5c22ae3d8878946d1bf1ec4b8c6e1
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
Closes-bug: #2076212
We changed these in change Iba3fee2672d32266623c6f367beaabe84bd3d24e but
the '-c/--column' option provided by cliff currently requires an
explicit match on column names. Change them back for now. We can revert
this when cliff is a little bit cleverer.
Change-Id: I6b4f1b793dc383856bfdf9a01514381be3cd2bf1
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
Related-bug: #2076212
In the event that a user provides a hypervisor name rather than an ID to
the 'hypervisor show' command, passing 'details=True' (the default) to
'find_hypervisor' will ensure we get the detailed response we need.
However, this comes at the cost of retrieving reams of additional
irrelevant data for all the other hypervisors. Rather than doing this,
use a summary view and then a second call to fetch only the hypervisor
we care about.
Change-Id: I92b53802e41a962c6f916c3a111dc2de7c12d0fc
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
Closes-bug: #2072965
In SDK change I3bc3150877c6c00aa9ec4355104308d7755aa1d4, we modified the
'rebuild_server' proxy method to use a sentinel 'unset' value so that we
could distinguish between fields that were not being changed and those
that were being changed to 'null'. However, we are currently passing the
'admin_password' field to the 'rebuild_server' SDK proxy command
regardless of whether it is set or not. Resolve this conflict.
Change-Id: If7b7585aadd43cdc6d2a9358f14223e43dc21a73
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
Closes-bug: #2076232
Unlike cinderclient, SDK attempts to connect to a service as soon as you
create a client. A keystoneauth1.exceptions.catalog.EndpointNotFound
exception can be raised if this service does not exist in the service
catalog. Avoid this for the quota and limits commands by first checking
if the service is enabled.
In the process, we rework the 'is_volume_endpoint_enabled' helper we are
using to check for the existence of the service to *not* require a
volume client, since this was causing a chicken and egg issue for us
(and was also pretty much unnecessary).
Change-Id: I56e68f00ea221d689eb7f668e9e5ffa7d1a20184
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
Closes-bug: #2076229
When running project cleanup and using the --skip-resource flag, this
flag is only used during the --dry-run stage. This change ensures it is
also used when deleting the resources which fixes the bug mentioned below.
Closes-Bug: #2074109
Change-Id: I8e50fd14dcde069b932cc8ec4bb4fc809f7d2eb7
I have seen a few cases where import errors (distutils - I am looking at you)
result in an extension not being available, but there is no indication why this
is the case. We do configure logging, but this happens too late (as part
of the 'cliff.app.App.run' call to execute a command, which calls
osc-lib's 'configure_logging' but which happens long after we've tried
to import our plugins) to be of any use. Instead, make use of a callback
to make it more obvious.
Change-Id: Id68b06161e445b79fe43f463e06cda3c4771ef02
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
This goes EOL in October. We don't want to be supporting it past then.
Drop it now.
Change-Id: I6166678a35092760718d4fcd0357e7195bbe8be0
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
We are testing this in CI and can support it going forward now. The
osc-tox-py310-tips job is removed in a favour of a new
osc-tox-py312-tips job.
Change-Id: I87a726cb65223cba9975d0505c13fe42dcd7fa14
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
This isn't necessary and makes migration of the compute client a little
more difficult.
Change-Id: Ib07e60171c43838935ea30f4916bf68d54cdc944
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
There are a few remnants left here but this is trivial to clean up now.
Change-Id: I517d906796338e64a31afa08b9ee6909b08e0115
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
We also ensure we call neutron rather than the deprecated nova proxy API
in the event that neutron is available.
Change-Id: I8315ea164fd3fa6c1d759f16677bfd6c24c4ef63
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
This is done for both the compute and block storage services. The
network service was already using SDK.
Change-Id: Id7a6943b8b4d7d1330e7d7f13705f027d1b67189
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
Depends-on: https://review.opendev.org/c/openstack/openstacksdk/+/923864
This is really three separate commands rolled into one. Split the logic
up more to simplify it somewhat.
Change-Id: Ief3c3c413f791dda076f90e5ec76a033d3a9e12b
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
The existing default behavior has been deprecated for over a 18 months
(change I25828a3d68e2e900f498e17a0d01fb70be77548e). It's time for a new
default.
Change-Id: Iaf4fa931dcbf16c22933f63629c6a4d443ac5310
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
This should have been added as a counterpart to the 'quota show
--default' option way back when we added that. Better late than never!
Change-Id: I0e3719e585353664fea6f23ec658a330086db3df
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
These are all deprecated for over 18 months (change
I0dd38e5cb252a01d5817ed168be040b21b35e348). It's time to remove them and
simplify this code.
Change-Id: I9ee3bfebbad21eec3eb1b475a813bcbc450edea4
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
Change-Id: Ibdd329a6db8bd176af065d7f5190f0901d3c3f8d
This was incorrectly grouped as a general compute quota, when in fact
it's a nova-network quota. Move it.
Change-Id: If93c95bc181ab766137b61943a09821810345300
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
These should have been cleaned up as we went but weren't. Fix things
now.
Change-Id: I80b29c0fd6e4f557c2efc45474279306f50c4fd7
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
None of these are actually supported by openstacksdk (intentionally so)
so we add our own manual implementations.
Change-Id: Ifd24f04ae4d1e56e0ce5ba0afe63828403bb7a6f
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
The final step. Future changes will clean up the remnants of the
novaclient usage. This is a rather large patch, owing to the number of
things that novaclient was handling for us which SDK does not, but the
combination of unit and functional tests mean we should be handling
all of these differences.
Change-Id: I623e8c772235438a3d1590e1bbd832748d6e62ea
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
Currently this check is handled by novaclient. In the future, we won't
have that so we need to do it ourselves. Do so now, fixing a typo along
the way and adding tests to prevent regressions.
Change-Id: Iaa9c087d846390b6a4f95ed3fa121dd8dc640903
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
Migrate the following commands:
- 'server delete'
- 'server rescue'
- 'server unrescue'
- 'server resize'
- 'server resize confirm'
- 'server resize revert'
- 'server migrate confirm'
- 'server migrate revert'
- 'server remove fixed ip' ('server add fixed ip' was already migrated)
- 'server ssh'
That leaves a few commands to migrate, all of which are called out with
TODOs.
Change-Id: Idb769a93609da522c458e719bc69a63ff2ab107b
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
We can use a detailed list instead when looking up by name. We also
improve tests somewhat.
Change-Id: I18b38e7fbcac813190b304c4d67d8ea03d8c1a80
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
This affects the 'server create', 'server show', 'server rebuild' and
'server set' commands. We also fix a few mistakes around the fields
shown.
Change-Id: I9946e12146efff39f9ba1591c90a4a9bccd46919
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
We need to work around SDK's (intentional) lack of support for Nova's
deprecated '/os-security-groups' API but it's nothing too crazy.
Change-Id: I03ca1a73f98aa77b288148607baff336dae69fb1
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
This patch migrates the volume attachment create, get, list,
delete, update and complete commands to SDK.
Change-Id: Ib237d25cc1c3fc72946b9d088ff3447433162130
This beats the horrible mess of mocks we have created for ourselves.
Change-Id: I8af3ce0a0b10f52e2124ec86f306327ff3474982
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
This was the sole outstanding command to be migrated to SDK. We also
clean up the old in-tree wrappers we have in the process and add missing
error checks for the 'host list' and 'host show' commands.
Change-Id: I5635469b63ab3370fb5118e4f8a1758002381aa5
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
These are not supported by SDK natively (intentionally so) so we use raw
HTTP requests to manage this migration.
Change-Id: I72fa0d6f87899537a24090995b1ba884bc5f9d4d
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
We use the compute client here to look up server IDs when filtering by
'device_id'.
Change-Id: I76515eaa4ce4e7c7d0173d2e0a91d7564ba7041a
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
This is a little more realistic. We fix a minor bug along the way and
start ignoring some newly added create-only fields.
Change-Id: I93eae610e16e2a3a859f684b889546ace3afa683
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
The incremental volume backup stopped working after we moved from
cinderclient to SDK[1]. This happened because SDK accepts the
``is_incremental`` parameter[2] rather than the ``incremental`` parameter
which is actually passed in the API request and was previously a valid
parameter for cinderclient.
This patch fixes the issue by passing the ``is_incremental`` field instead
of ``incremental`` from the OSC side which adds the ``incremental`` parameter
in the API request.
Request body after the fix:
'{"backup": {"name": null, "description": null, "volume_id": "<vol-id>",
"force": false, "container": null, "incremental": true}}'
[1] https://review.opendev.org/c/openstack/python-openstackclient/+/889748
[2] 10e5e20fc0/openstack/block_storage/v2/backup.py (L126-L134)
Closes-Bug: #2070080
Change-Id: I89bd3d2751267ec39f4dbd664b7873ab87a9ac6c
Additional paragraphs in a rST list should be indented by the same
number of characters as the first paragraph otherwise it renders as a
block quote. Correct this for the backwards incompatible changes guide.
Change-Id: I918c2a24aead4cc5a317201df9b12ce740612e5a
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
We don't need to transform one HTTP Forbidden-related error to another:
just use the original one. This also fixes an issue where we would end
up with an undefined variable (server_id) if a non-HTTP 403 exception
was raised, since that would be blindly ignored.
Change-Id: Icdd1764b6f2df4a635e3264ed8f93a115cc52ef2
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
Closes-Bug: #2062010
This patch adds the ``Cluster`` and ``Backend State`` columns to
the ``openstack volume service list`` command. Note that you need
to provide the appropriate microversion to show these columns.
Cluster: openstack --os-volume-api-version 3.7 volume service list
Backend State: openstack --os-volume-api-version 3.49 volume service list
Change-Id: Ie7727d0001307b5d5a40d7ea0348bdb9626f9e03
A previous change fixed a bug with the custom SG rule
flag, but did not add any tests to verify all the
combinations of default and custom SG flags. Let's
add them now.
Change-Id: Id74552346cfa975e3dd5eb45b8f621b365e88463
Related-bug: #2054629
This patch adds support for unmanaging a snapshot with
``openstack volume snapshot delete --remote`` command.
Change-Id: I3caf3471a007fcb988835d495727bbc5c66f42f8
This patch adds support for unmanaging a volume with the
``openstack volume delete --remote`` command.
Change-Id: Id71681e817f6e56b4ef553079f0bcfac8252d3cf
The simplejson library is not included by the requirements but it was
directly imported. Drop the direct inclusion and use the alias in
the requests library to avoid ImportError caused by missing simplejson
in the environment.
Also fix the missing requests library in requirements.
Change-Id: I8713f45c5f2717cc53ba043aaeb479e72f641f78
The ``volume backup list`` command does not show the
created_at column for backups which doesn't really
help the end-user since a critical part of a backup
is knowing when it was taken, and fast if there is
a rush doing recovery by restoring a volume from a
backup.
Change-Id: I8d8a7f36c468c9faa2c2c47bfa9ba9e1ca5b9858
This patch adds support for the cinder manage command to
bring a volume under OpenStack management.
Change-Id: I12b63bfc4f0c9bc29cf9d4efd9a5cd038ec00af3
This patch acts as a base framework to add the parameters needed
for manage volume support.
This includes 2 changes:
1. Move get_parser and take_action code to common methods which
can be utilized by both v2 and v3
2. Make _check_size_arg as a static method and move it inside
CreateVolume class since it's not used by other classes.
[2] was initially thought to be a follow up change but since we
are implementing changes into the _check_size_arg method for v3,
it makes sense to just include it in CreateVolume class to avoid
adding a new additional method. Similar changes are done for v2
as well.
Change-Id: I9315e457ebd6c5ba4cc67452f92c9dc8c139ee3c
We were seeing the following test failures on Python 3.12:
openstackclient.tests.unit.common.test_module.TestModuleList.test_module_list_all
openstackclient.tests.unit.common.test_module.TestModuleList.test_module_list_no_options
Both failures were caused by missing attributes of 'sys', e.g.
AttributeError: module 'sys' has no attribute 'builtin_module_names'
Fix this by exposing the real 'sys' module as part of our mock of
'sys.modules'.
Change-Id: I17391a46f08896f49dccaf75ad685dab1375a03d
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
Another day, another useful hook. We also ignore the preceding patch
that actually did the work, renaming the incorrect named file in the
process.
Change-Id: I412827761fbdeb36702ebaf5c1b727c62e629299
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
We've seen an ordering issue pop up occasionally in the CI. Resolve it.
Change-Id: I4dd10268b673c260ac0894fac92cd8bea9e626f4
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
This change is entirely automated save for the update of some mocks from
'io.open' to '__builtins__.open').
We are keeping this change separate from addition of the actual hook so
that we can ignore the commit later.
Change-Id: I0a9d8736632084473b57b57b693322447d7be519
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
Most of these skips were unnecessary. The few that did generate warnings
could be skipped.
We also set 'skip_install' since there's no reason to build the package
for linting purposes.
Change-Id: I9644e5c19720b9c41c60e0a5882b7cd7f6a71f7b
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
Let's us test with specific Python versions. We also merge the
'functional-tips' target in.
Change-Id: I08e1b3e2f4be57aec0c1cd01274d86dfec769666
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
We have seen users interpret the current output ('Complete') of
'server migrate --wait' as if it meant success as well and be surprised
when later they learned that the migration was complete and failed.
This change adds a pointer to the that output, how to actually check the
success/failure of a migration, hoping to eliminate this user confusion.
Change-Id: I09030705a39405366d6202a5ac743cc4d1ddd63c
The '--retype-policy' option is used in the 'volume set' command to
specify the migration policy during the retype operation. The
'--retype-policy' option does not convey the correct meaning of its
usage. The migration policy determines whether we are going to perform
the migration in the retype operation or not and is not related to the
actual retype which just changes the volume type of the volume.
Change-Id: I2ea8fd3f5277bb3422ccae915d05e8ad44ff1912
This ensures we are speccing the identity proxy API, as we did
previously for other services.
Change-Id: I4d090bab001f9b7e1d83ca8fee9e7e1117844cd8
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
Add file to the reno documentation build to show release notes for
stable/2024.1.
Use pbr instruction to increment the minor version number
automatically so that master versions are higher than the versions on
stable/2024.1.
Sem-Ver: feature
Change-Id: I13bb45d30d3dff73ca48ad8a2ed8bdc982b62d86
When using the "openstack image cache clear" command, the "clear_cache"
method from the OpenStack SDK is used. It expects its only argument to
be one of "both", "cache" or "queue". However, when passing neither
"--cache" nor "--queue", it is currently passed None as a value. Fix
this by specifying "both" as the default value to be passed.
Change-Id: I17c6e3d435a84b4ba453845086ff3fe272b54f58
This change implements the logic to call the new API for managing
external gateways.
Relevant Neutron core change:
https://review.opendev.org/c/openstack/neutron/+/873593
Co-Authored-by: Frode Nordahl <frode.nordahl@canonical.com>
Related-Bug: #2002687
Change-Id: Ib45f30f552934a0a5c035c3b7fadfc0d522219ba
The variable already takes multiple values, let's make it obvious
just by reading the code.
Related-Bug: #2002687
Change-Id: I294ee710d989d7a3a54331fca424e84708a2faab
Signed-off-by: Frode Nordahl <frode.nordahl@canonical.com>
This is to prepare for subsequent patches that will add support
for managing multiple gateways.
Related-Bug: #2002687
Change-Id: Ic088dca0b7cd83bd7568d775b4e70285ce72411d
Signed-off-by: Frode Nordahl <frode.nordahl@canonical.com>
Currently the Default setting for CustomSG Rule
is set to True, this means all new SGs inherit
these rules, with no way for user to override
this behavior.
Closes Bug: #2054629
Change-Id: Icef7c91654dbced76a5492437e723c4e2a0f3102
This patch adds a command "image metadef object property show" which
describe a specific metadata definitions property inside an object.
Change-Id: I738e2e3c27c9819290d5a2a8781878b81f03b5f9
When using table output format, the dns_nameservers field
of a subnet is sorted, but it should not be as the order
is important.
Created an UnsortedListColumn() class in subnet.py so the
output is correct.
Updated the unit test accordingly to verify the order is
correct when an entry is removed.
Change-Id: I60a15a944f83549738305dd025db38ff8e165be7
Closes-bug: #2053201
This patch adds a command "image metadef object update" which
update metadata definitions object inside a namespace.
Change-Id: I2dd8f54f9224abda5adc7a1b6a1c270c49d473a7
An openstacksdk 'find_foo' proxy method will return None by default if a
resource is not found. You can change this behavior by setting
'ignore_missing=False'. We were doing this in most, but not all cases:
correct the issue.
In the event of calling 'image delete' with multiple images, it will no
longer fail on the first missing image and will instead attempt to
delete remaining images before failing.
Change-Id: I1e01d3c096dcaab731c28e496a182dd911229227
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
Mostly stylistic, with the exception that we now allow deleting multiple
metadef properties in a given namespace.
Change-Id: Ib0c243f0d647ce74c0165ee666beed6eb5d5c5a7
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
We also migrate to the native hacking pre-commit hook.
Change-Id: Idb5a825c20cb7f189997a4d6c3a9a88218fdb335
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
This reverts commit 860d636047.
Reason for revert:
The issue with aodhclient and latest pyparsing was fixed by [1].
[1] 3a36ed1774ba0bbb3ad6a3716c6c014246bc9613
Change-Id: I461edafc5be7b3afbde485f1620bff71e178b078
The TripleO project has been deprecated and its master is no longer
maintained. The complete project retirement is now on-going.
Change-Id: If7b390fc2230c16ef138ceb4a7bc5d97dcf790e6
Rather than excluding the few fields we don't want, explicitly indicate
the ones we do want.
Note that this is a problem in the tests for virtually all commands
that will be seen as the SDK continues to evolve and new fields are
added to existing resources.
Change-Id: Ia8d487e1e7804fa177fce46497c0202aed8acb08
As per the current release tested runtime, we test
python version from 3.8 to 3.11 so updating the
same in python classifier in setup.cfg
Change-Id: Ic137b2eecee65d43afeca2c936e195a8652237af
The --use-prefix-delegation argument when creating a
subnet should not take an argument of True/False, it
should simply trigger the code to set subnetpool_id
value to 'prefix_delegation'. Change action to correct
this.
Added unit test to cover missing checks.
Related-bug: #2028159
Change-Id: Ib7ee80100327b8611d4a354c7f4eb0e696c953da
This patch adds a command ``image member get`` which displays
a particular member associated to the image.
Change-Id: I48d3151f8e204e1eb5cfff67ce1e333d1cfb9322
These only apply to newly created default security groups i.e. when you
create a new project. They do not apply to existing default security
groups.
Change-Id: Ie01bf47dd8a0392354d17d984b41c1fad504e659
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
The snapshot commands use the "volume " prefix which was missing
from the doc. This patch adds it.
Change-Id: I2acf28eff78fb8419a4c4f00395355a6ca44a576
there are two problems currently:
- SDK's `availability_zones()` returns a generator that raises errors
only when actually accessing its items
- the error raised is the sdk exception, not nova one, and thus is not
being handled correctly
As a result, currently nova AZs can not be listed by non-admins.
Story: 2010989
Task: 49220
Change-Id: Ia299faea85857d3fc3a9b539800f3483f84ccbc0
Currently 'openstack volume list' calls nova to resolve server UUIDs
to server names. This is not required if:
1. no volume is attached to an instance
2. no volume exists in deployment
This patch fixes this by checking volume statuses and, if any volume has
status 'in-use', we will call nova to resolve server names.
Note that we don't check for 'reserved', 'attaching', 'detaching'
states since those are transition states and doesn't guarantee that
the volume is actually attached to the instance.
Change-Id: Ic4d89db69244d3fba44d4b69c79b3e7632ee3d53
After setting a default dns_domain on a network
openstack net set --dns-domain 'example.com.' <NETWORKID>
the setting could not be reverted back to an empty string using
openstack net set --dns-domain '' <NETWORKID>
and the call also does not emit any error.
The same is true for the description of a network.
Reason was using the parsed argument directly as a condition instead of
comparing against None -- dropping the empty string as valid value.
The name parameter already accepted an empty string.
This change also adds a testcase for dns_domain, description and the
network name parameter, checking if the empty string is forwarded.
Change-Id: Ia7b9738205002b028c19e4f397411c86469cba1a
Some tests still assume extensions are enabled; those tests are now skipped if the extension is not enabled. Change I25b8811fe09f2a4a9fc20ca5459f5a404b88a337 addressed some but not all of these.
Change-Id: If36550650f143a7efe4190e60961c51a8cd20fb3
If there are no agents with type=dhcp, the neutron-dhcp-agent service is
likely not enabled on the deployment.
Change-Id: I1253f35e71cf996c559f2a2d8d1d8cde6b41a519
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
Our functional tests are inherently dependent on 'clouds.yaml' files.
The presence of 'OS_*' environment variables can cause weird test
failures. Simply don't pass them through to our test environment.
Change-Id: I7d24cdff5f1f5798118816b12d7398b87a5f5ed4
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
If you use the former, you get a pretty error message when there's a
failure. If you use the latter, you get an ugly traceback when used with
the '--debug' flag.
Without this change:
$ openstack flavor create ... --property '' foo
...
Traceback (most recent call last):
File "/tmp/venv/lib/python3.11/site-packages/cliff/app.py", line 402, in run_subcommand
parsed_args = cmd_parser.parse_args(sub_argv)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib64/python3.11/argparse.py", line 1862, in parse_args
args, argv = self.parse_known_args(args, namespace)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib64/python3.11/argparse.py", line 1895, in parse_known_args
namespace, args = self._parse_known_args(args, namespace)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib64/python3.11/argparse.py", line 2107, in _parse_known_args
start_index = consume_optional(start_index)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib64/python3.11/argparse.py", line 2047, in consume_optional
take_action(action, args, option_string)
File "/usr/lib64/python3.11/argparse.py", line 1971, in take_action
action(self, namespace, argument_values, option_string)
File "/tmp/venv/lib/python3.11/site-packages/osc_lib/cli/parseractions.py", line 45, in __call__
raise argparse.ArgumentTypeError(msg % str(values))
argparse.ArgumentTypeError: Expected 'key=value' type, but got:
clean_up CreateFlavor: Expected 'key=value' type, but got:
With this change:
$ openstack flavor create ... --property '' foo
...
usage: openstack flavor create [-h] [-f {json,shell,table,value,yaml}] [-c COLUMN]
[--noindent] [--prefix PREFIX] [--max-width <integer>]
[--fit-width] [--print-empty] [--id <id>]
[--ram <size-mb>] [--disk <size-gb>]
[--ephemeral <size-gb>] [--swap <size-mb>]
[--vcpus <vcpus>] [--rxtx-factor <factor>]
[--public | --private] [--property <key=value>]
[--project <project>] [--description <description>]
[--project-domain <project-domain>]
<flavor-name>
openstack flavor create: error: argument --property: Expected 'key=value' type, but got:
clean_up CreateFlavor:
Change-Id: I9e78b35ad9d016d7a33655141ec579397c5344c0
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
This is testing things now found in osc-lib. Remove it.
Change-Id: Iccbd540fa340c77a957486d16d352d3fe4c3ddb2
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
We were reusing a variable from a previous loop, which meant this would
never work with multiple servers. Correct the mistake.
Change-Id: I52246e183fb2cf0d855d92058dd305b48783589d
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
Nothing is setting 'merge_stderr'. It looks like a carry-over from the
legacy clients.
Change-Id: I32b65830e11b27ba83dfba002bf996af561b0768
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
Quieten the output of our test runs significantly.
Change-Id: Ie32c919bb987eb0b9bc4c5b2ec54ee20a6841c03
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
This is mostly a case of skipping tests where the extension is missing,
but some tests are updated to remove a reliance on optional tests.
Change-Id: I25b8811fe09f2a4a9fc20ca5459f5a404b88a337
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
The check for extensions was not using a machine readable format for
output. This meant an API check could match on a substring, e.g. a check
for 'qos' would match on 'qos-specs'. Address this issue by switching
our command invocation to use JSON output and migrating the check
function from the general base class to the networking base class.
Change-Id: Idc6dc54503031ddf3e148f50ed53ad8898f7a7e3
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
No point duplicating this across functional tests.
Change-Id: I9502be8b4e718885c6f854c7f5b19f6cacf51055
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
The default image visibility was changed to 'shared' in API v2.5. Fix
the help information of image visibility, centralizing options in the
process.
Change-Id: Ib3017fc4f618c1e14e3b26b616ff9374d0e24eaa
Co-authored-by: Stephen Finucane <stephenfin@redhat.com>
Add some pagination helpers to configure pagination parameters for
various commands. Two pagination schemes are supported, based on what we
currently support across OSC commands: marker-based pagination and
offset-based pagination.
Change-Id: I551bb4c3ff0568c6df5244a1d0f0669497bee58f
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
Add an alias for requesting a server group. This is more syntactic
sugar, though it comes with the added bonus of letting users request a
server group by name instead of just ID.
Change-Id: I3d9a7ce04a02fdf374b7a8082618eccdea8c3217
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
OpenDev is trying to get consumers of these images to update to newer
iterations so that old images can be dropped from the build list. OSC
is successfully running voting python3.11 unittest jobs at this point.
This should make it safe to update the Docker container image for OSC
to python3.11 without risk of regressions.
Making this update should bring some (small) performance updates as
py311 is generally quicker than py310. As mentioned before it will also
allow OpenDev to reduce the set of images that are being built.
Change-Id: I01e3c9e27f92205979ea6562b23f0f7f3b431728
This was missed in [0]. Also update the mailing list link after it moved
to mailman3.
[0] Iaf93c892d211fd7465395d8830f56c2977a88f8b
Change-Id: I91168713a854be0c4348bab3fa34f4b1a924f451
When creating a volume, the scheduler hints can be supplied as strings.
The "same_host" and "different_host" hints can also be supplied as a
list if affinity/anti-affinity to multiple volumes is requested [0]
The previously-used `KeyValueAction` only supplies strings as values - the
last one if multiple --hint contain the same key. An alternative already
used in `CreateServer` would be `KeyValueAppendAction`, but only a subset of
the scheduler hints accept lists, so we cannot use that in general.
Therefore, we create `KeyValueHintAction`. It contains both a
`KeyValueAction` and a `KeyValueAppendAction` object and calls the
appropriate action based on the beginning of the given values as defined
in `APPEND_KEYS`.
[0] d96b705774/cinder/api/schemas/scheduler_hints.py (L31-L65)
Change-Id: Ida7f4662dc9fea24510758541fd4f2622b73bf31
Another quality of life improvements. The key for this one is weird and
the whole thing is a little more involved, hence why it's kept separate.
Change-Id: I75aa85f27905104dc84fffe823c01b4c90a6a822
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
Add aliases for the enabling multiattach, caching and replication via
extra spec properties. These are useful since the syntax for setting
each of them is a bit weird and frankly not very discoverable.
Change-Id: I08b51224c66a34a9dcfcffc95847e61d9aac0e7e
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
Starting in volume API microversion 3.52, it is possible to filter
volume types by extra specs (a.k.a. properties). Even non-admins can do
this for so-called "user visible" extra specs. Make it possible to do
this.
While we're here, the test file is renamed to match the name of the
module under test.
Change-Id: Ia9acc06c0c615bf24e12b63146ea97ac2505f596
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
This patch migrates following volume backend commands to SDK:
volume backend capability show
volume backend pool list
Change-Id: Idded38a5f87d51574426c4ac10c806af52984b7c
This ensures we are speccing the compute proxy API.
Change-Id: I7adbf2666d71f222fbd9c1479216f72cb9893348
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
This removes the need for a number of base test case subclasses. We use
'compute_client' rather than 'client' to avoid conflicts with clients
for other services.
Change-Id: I430214cd79eca481bd8d8c53bf97eaede6766eb4
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
This ensures we are speccing the image proxy API, as we did previously
for the network tests in Ic203964c7dede7dd80ae2d93b8fa1b7e6634a758.
Change-Id: I132ccd1170cc903f6edc505926b071170aeaa08c
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
This removes the need for a number of base test case subclasses. We use
'volume_client' rather than 'client' to avoid conflicts with clients for
other services.
Change-Id: I28d78f32142bb3a3fde0ba1780c504adc31cc77c
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
Using negative lookahead is deprecated, let the jobs be run simply only
on the master branch for now.
Change-Id: Ia53fffb0a3f61cbf85edd96fbeeb5138a88d4d0a
It's of interest which backups are incremental or full. Returning this
information as a column to the list of backups.
Change-Id: I766330228634d5db678df11c23877077a3635372
Add file to the reno documentation build to show release notes for
stable/2023.2.
Use pbr instruction to increment the minor version number
automatically so that master versions are higher than the versions on
stable/2023.2.
Sem-Ver: feature
Change-Id: I608edcb863038522677beb8bd2e1eb98c1eec363
Rather than excluding the few fields we don't want, explicitly indicate
the ones we do want. We were already in-effect doing this in our tests,
so this is simply moving the definition from tests to the main code.
Note that this is a problem in the tests for virtually all commands
that will be seen as the SDK continues to evolve and new fields are
added to existing resources. This is a problem that be solved over
time though, rather than in a big bang commit.
Change-Id: Iaa64e97450f5c73cab2e2c3b0c741aec1495b4f1
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
While a relatively small library, this is one import that we really
don't need. Remove it.
Change-Id: I726f3c3548cbd896588ef0613222e36c529f5bcc
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
We use flags, not options with boolean-like values, for boolean
parameters. The affected commands were only introduced recently so this
should have minimal fallout.
Change-Id: I700733e750bff539806af167c9d47cec769c3343
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
On the index page we stopped updating versions table since train. Add
missing entries.
Also small rephrasement in the into on backwards compatibility not to
stick with an ancient release name.
Set oldest release on unreleased page correspondingly.
Change-Id: I4a442708a5b47f573cd2333545531499b9eae0f1
for some reason (clearly another change somewhere in the Sphinx)
extlinks extension used in the releasenotes is failing when extlink
caption is not having substitues same as in the link itself.
> title = caption % part
> ~~~~~~~~^~~~~~
> TypeError: not all arguments converted during string formatting
Now the extension supports setting link capturion to None which works as
we need.
Change-Id: Ie1a61e9b3ee5d727d59525efe34aea696538e2b3
This ensures we are speccing the image proxy API, as we did previously
for the network tests in Ic203964c7dede7dd80ae2d93b8fa1b7e6634a758.
Change-Id: I09539cbf35444272fb3aaabfecd5d731d1ecc4a8
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
This removes the need for a number of base test case subclasses. We use
'image_client' rather than 'client' to avoid conflicts with clients for
other services.
Note that this highlights a minor bug with the 'volume create' command
when using the v1 block storage API and creating a volume from an image.
This is corrected, though it can be assumed that no one is actually
using this code path to say it hasn't been reported in the few years
since the bug was introduced in Ussuri.
Change-Id: I571be27f68bb7669dcb883f3b4799731b4a35479
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
These no longer makes any sense since all image calls use the SDK proxy
API now.
Change-Id: I48e1d90f9c0dfa904fe37caa0de60d20945f1118
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
This ensures we are speccing the network proxy API. Future changes will
do the same for the image proxy API and eventually the compute proxy API
(once everything has been converted).
Change-Id: Ic203964c7dede7dd80ae2d93b8fa1b7e6634a758
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
This removes the need for a number of base test case subclasses. We use
'network_client' rather than 'network' for consistency with other
services.
Change-Id: I61f7c43341acf19ae16d06db34e18970297fbb93
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
This no longer makes any sense since all network calls uses the SDK
proxy API now.
Change-Id: I0d57d7561b697270b24acd7b8ff62db73a83f49a
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
This was still using glanceclient-style calls despite us having switched
all image command to SDK way back in 5.2.0 (Ussuri). It therefore hasn't
worked since then, so we remove without deprecation.
Change-Id: Ibea79ea10bb272cba194debfe4bcbaeebf3875b7
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
Migrate the block storage aspects of this command to SDK. This means the
'extension list' command, like the 'availability zone list' command
previously, is now using SDK entirely.
While we're here, we also make some fixes to the unit tests for the
network and compute aspects of the command. While we migrated the
network and compute extension commands from neutronclient and novaclient
respectively some time back, we never fully updated the tests. Do this
now.
Change-Id: I631a6a09dfd9d614b1dd7b322dcee8490a52cc43
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
Depends-On: https://review.opendev.org/c/openstack/openstacksdk/+/885132
This is a bit of an odd one. Because this is a "common" command, there
are three clients in play here: a compute client, a block storage
client, and a networking client. The networking aspects of this command
are already using SDK though the tests were mistakenly using a fake
version of the legacy neutron client (albeit one with the correct SDK
properties). We were still using legacy clients for the other two.
Correct the networking tests and migrate the compute and block storage
aspects of the command.
Change-Id: I292e1a712bca97e1270e8a97606e02a8a44c2954
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
This patch modifes the "server create --boot-from-volume" command
without image option print "'NoneType' object has no attribute 'id'"
story: 2010892
task: 48669
Change-Id: I566f81c285d4ebc1e23ea0762d67492fb6b3bcbe
tox 4 is significantly faster when it comes to creating virtualenvs and
is far better and detecting e.g. changes to requirements. tox 4.3.0
includes many of the fixes for bugs introduced by tox 4.0 and is a good
default candidate.
Change-Id: I0bb7f75ed3e03965ecd4d260c1299b46dcbf4b1b
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
The --flavor-id option is added to the router create command. The
flavor_id attribute has been supported by the Neutron API for router
POST operations since a long time ago [0].
Partial-Bug: #2020823
[0] https://review.opendev.org/c/openstack/neutron-lib/+/494289
Change-Id: If88499533a92c09e67b0827d1d64156682a3bb8e
This patch migrates the following backup commands to SDK:
* Create Backup
* Show Backup
* List Backup
* Restore Backup
* Delete Backup
Change-Id: Icfadd65b92f4cd343bc327d33e29767bc9b969f9
The existing 3.9 is based on debian buster and isn't getting security
updates ... or any updates really. This change updates to a base
container that will get updates for a while.
I picked 3.10 rather than 3.11 as 3.10 is part of the bobcat[1]
[1] https://governance.openstack.org/tc/reference/runtimes/2023.2.html
Change-Id: I606389a81ab189b1abf2c700acf5c5543a09165a
Took me a bit to figure out how to do token auth today. Document it.
Change-Id: I3edce59efd5ca5a6e31eef8c7cf3cf255234c82e
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
This document is growing a bit too big now.
Change-Id: Iadf7f28d2307d1598e378bd49a09e75e1235d779
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
This patch will add ``image metadef resource type list`` using
SDK, output matches glance client output.
Change-Id: I29850abdbb06d5a4eaf8a9a60f565b46f4009f85
These mess with quotas on the main project, which can have knock-on
effects for other tests. Use a new project.
Change-Id: I687ec3a0985eab4d01c918dae73d2fbdc7ac25fa
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
The help text for this arg says 'repeat option to delete multiple tags'.
Fix to reflect what docs says.
Also add missing test for this argument.
Change-Id: Ib1069ce7a441c1ff10d2dca05095eb6bf53e7fb6
This patch modifies the access rule commands to use only the resource
ID. The previous logic incorrectly assumed that access rules have a
"name" property, which resulted in unexpected behaviors.
For example, "access rule delete {non-existent-id}" now results in a
"not found" error instead of sometimes deleting an unrelated rule.
Story: 2010775
Task: 48163
Change-Id: Ib5c3b7f86acf1dfe7cc76dfa99fa4c118388bd71
This is more trouble than it's worth now. Black takes care of this for
us. I wish I'd decided this before the blackify series :(
Change-Id: Ifee786c96b6f0bcd96008fed2b3ed3257d02c07c
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
Introduce the hints port attribute that allows passing in backend
specific hints mainly to allow backend specific performance tuning.
Enable:
openstack port create --hint ALIAS=VALUE
openstack port set --hint ALIAS=VALUE
openstack port unset --hints
Required neutron extension:
port-hints
port-hint-ovs-tx-steering
Valid hint aliases and values:
ovs-tx-steering=hash
ovs-tx-steering=thread
The same hints in JSON format, as expected by the Neutron API:
{"openvswitch": {"other_config": {"tx-steering": "hash"}}}
{"openvswitch": {"other_config": {"tx-steering": "thread"}}}
Change-Id: I4c7142909b1e4fb26fc77ad9ba08ec994cc450b2
Depends-On: https://review.opendev.org/c/openstack/neutron/+/873113
Partial-Bug: #1990842
Related-Change (server side): https://review.opendev.org/c/openstack/neutron/+/873113
Related-Change (spec): https://review.opendev.org/c/openstack/neutron-specs/+/862133
These are already set in the 'TestServer' super class.
Change-Id: I90cfd9ff004c59cadc3e760eb120a460687701fe
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
Dropping the use of 'AddFixedIp' server action entirely in favour of
creating an interface with a fixed IP using the 'os-interface' API. The
reason for doing this is because this mechanism allows us to request an
explicit fixed IP.
Adds back support for using the --fixed-ip-address argument for users
who use older nova-api versions.
Change-Id: Ieac4b0fbcb38fe7207eaaa6a79e0c6770ee11d80
In change Ic253184ee5f911ec2052419d328260dc4664b273, we switched to
using the SDK for the 'server show' command. There were a couple of
issues with this change, which we address here:
- openstacksdk uses different names for fields than the nova API. We
opted to output both the original names and the openstacksdk aliases
in the output. With testing, however, it's become obvious that the
resulting output is very long and rather unfriendly from a UX
perspective. We opt to only show fields with their original names.
- A number of fields included in the output are only valid in requests
and will never be present in responses. These are removed.
- A number of fields are not present in later API microversions or are
only present under certain conditions. These are removed from output
when not included in responses.
- The image and flavor fields both had errant logic that resulted in
unnecessary or incorrect information being show. This logic is
corrected.
With these changes, the output now resembles the output seen before the
migration to openstacksdk. In the future we may wish to build on this
further and switch from a blacklist model (removing the fields we do not
wish to show from output) to a whitelist model (specifically stating
which fields to show) but that's a change for another day.
Change-Id: I7e3eaa0149bff202c8fd4538356cbc75b4f7e708
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
There are a few outstanding commands. Migrate them in one fell swoop. We
do lose a small bit of information about commands that are only
supported in block storage API version 2.0 or later, but who cares about
block storage API version 1.0 these days?
On a related note, we also use the 'openstack.volume.v3' entrypoint
rather than the v2 one since that's more relevant nowadays and the code
is pretty much identical.
Change-Id: Ide9d65596847d3f855981ff4ec57eeaeea6667a7
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
Supporting "--no-property" option will apply user a convenient way to
clean all properties of volume qos in a short command. The patch adds
"--no-property" option in "volume qos set" command and update related
test cases and docs.
Change-Id: I1fb5b4f0a923bbf557a3af3f63809bde9e84ffd4
We also rename the test file and fixup some of the tests.
Change-Id: I3731255648dc91c023a1390c3b37e68b6608f850
Co-authored-by: Stephen Finucane <stephenfin@redhat.com>
Story: 2008478
Task: 41518
A mistake was introduced during the conversion from novaclient to SDK in
change I5ebfa6b2468d5f20b99ea0eab1aea9377be09b8c. Fix the issue and add
functional tests to prevent it being reintroduced.
Change-Id: I6b314eab31bcf452e88b8b6a239ac2e296497cb9
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
Story: 2010750
Task: 48004
currently the command is waiting only for ACTIVE server status,
but if the server was SHUTOFF before, it will be SHUTOFF after
rebuild as well, so the command is stuck in waiting forever.
Additionally, we now also pre-validate the server status on client side,
and raise an error if the server to be rebuilt is not in ACTIVE, ERROR
or SHUTOFF state.
Change-Id: If90a4bbba9a7ecd972f8b594c52fee4f75a0ae5e
Co-Authored-By: Oleksiy Molchanov <omolchanov@mirantis.com>
Story: 2010751
Task: 48005
We had not migrated a number of tests to use SDK objects instead of fake
novaclient-like objects when migrating the commands themselves. Address
this now.
Change-Id: Ib0da07fd9d793968b111986bd36a6d4311469d4e
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
This will make future changes slightly less complex.
Change-Id: Ia69fd9d05796cce5ed48a8d12902cb54caec9779
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
Since our pep8 tox env now runs pre-commit, we can ensure that black
styling will be maintained.
Change-Id: Ifad1d67a83c4979b4f4de71de0124613d1133560
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
Add a .git-blame-ignore-revs file to ignore the black changes. File was
generated with the following command:
git log --pretty=format:"%H # %s" --no-merges --grep='Blacken'
Change-Id: I4c5c06a8d194cce4d490dc2b01040c68853451c2
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
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: I356643d06b2cd408ccaedfe02b858aea55388949
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
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: I1df5bc4c35f02147fe5ac5b4073f0e01e7d51c2f
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
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: Ifcb3c798666d74d596b8ecb3d6d507f782de7ba5
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
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>
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: I6658e76d7d1f93149f24fcab28d593195b37779f
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
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: I2eeade1ce6653be8e9179ecc40105182c5ff5f16
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
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: I8048746dbc2ef0cb582f68934734db4c1153d779
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
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: Ic318617c67ab7ce6527f9016b759a1d4b0b80802
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
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: I9af45c062d179ab3dc2a5e969e1c467932753a2b
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
We want to bump the versions of hacking, but doing so requires changes
in two places: '.pre-commit-config.yaml' and 'tox.ini'. This is silly:
we can simply use tox to handle pre-commit and leave all other
dependencies to pre-commit. Do this, migrating bandit to pre-commit and
bumping the other dependencies in the process.
We remove the 'fast8' target and tool, since pre-commit is plenty fast
here.
Change-Id: Ifdc582ecc3b4479ea9ed9abcb16577c6e8b2f5c1
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
We'd like to use pre-commit as our 'pep8' target. Before we do that, we
need to address some issues that have crept in over the time since
pre-commit was first added.
Change-Id: I3bb383a00a44007eaa241e037e38aea16bd517b2
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
Starting with the 2.92 microversion, nova will no longer generate SSH
keys. Avoid breaking users by generating keypairs ourselves using the
cryptography library, which was already an indirect dependency through
openstacksdk.
Change-Id: I3ad2732f70854ab72da0947f00847351dda23944
Implements: blueprint keypair-generation-removal
This one is tricky since the ServerAction resources includes a nested
ServerActionEvent resource which requires a custom formatter in order
for things to render as expected.
Change-Id: I3d24851303222af9efcee8d7e1565278b1018efd
Co-authored-by: Stephen Finucane <stephenfin@redhat.com>
pep gods started complaining (correctfully) about spacing in the old
command. Apply `black -l 79` on the file to make it looking nice and
passing checks.
Change-Id: I716f6a1496fc552b32809c7eb744283f3a3cd5a4
OSC has historically relied on project-specific clients like novaclient
for library bindings. These did not support auto-negotiation of
versions. Instead, users were advised to set the requested microversion
to e.g. '2.latest' to opt into the latest API version supported by the
client.
We're slowly migrating everything to SDK which *does* support
auto-negotiation (well, of sorts). This makes versions like '2.latest'
unecessary and SDK correctly warns the user about this.
You have a configured API_VERSION with 'latest' in it. In the context
of openstacksdk this doesn't make any sense.
Unfortunately, we have not yet migrated all commands to SDK, meaning we
have a mix of SDK and legacy client-based commands. So long as there are
any command using the legacy client, we can't insist on users removing
this configuration. This makes the warning both annoying and something
the user can't do anything about. We also don't want to remove the
warning from SDK so instead we opt to filter it out, along with all
other warnings from openstacksdk (which similarly a user can't do
anything about).
Change-Id: If8a7cf9bc876f84864d66f5aed5f2f61c5d0696a
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
Previously, using the "--matching" option shows empty results.
Previously, the "--matching" option called the "find_hypervisor method",
so we used to call the "hypervisor method"
like any other "--limit, --marker" options.
Depending on the nova api version, the api that is basically
called is as follows
2.53 >= : /os-hypervisors/detail?hypervisor_hostname_pattern=$HOSTNAME
2.53 < : /os-hypervisors/{pattern}/search
Hypervisor Type and Host IP are not returned
when using microversion 2.52 or lower
Co-authored-by: Jipyo Hong <hongsbien@naver.com>
Co-authored-by: Jieon Lee <dlwldjs7544@naver.com>
Co-authored-by: YoonSoo LIM <msdbtjd123@naver.com>
story: 2010670
task: 47726
Change-Id: I7b47acf48def7d4c5f4b74e4dba1c23d8ac7abf2
"openstack port list --security-group <id>" was using a filter that
didn't exist in `openstacksdk`: "security_groups". Up until version
1.0.1, `openstacksdk` did not support filtering `Port` objects by
security groups. Later versions will support the filtering (via [1]),
but the filter is called the same way the attribute on the `Port` object
is called: `security_group_ids`.
We're not bumping the `openstacksdk` version here, because the feature
we're using [1] is merged too recently and a bump of min requirements
thus unlikely. `openstackclient` continue to work with older versions of
`openstacksdk` - the "--security-group" filter will just do nothing like
before.
[1] https://review.opendev.org/c/openstack/openstacksdk/+/866008
Change-Id: I07088484592e99ce0a12b67d68a3e47ae7c7af81
Add file to the reno documentation build to show release notes for
stable/2023.1.
Use pbr instruction to increment the minor version number
automatically so that master versions are higher than the versions on
stable/2023.1.
Sem-Ver: feature
Change-Id: I248bcb0342afb8276ba9605963287f620b62b6c5
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
Since we removed the osc-functional-devstack-n-net job in change
I76efeccec04937c3a68108e2654872e00fadcec4, there's no need to maintain
separate osc-functional-devstack-base and osc-functional-devstack jobs.
Merge them.
Change-Id: Id3dcd3c4f9f47a4020faf0787f44bd5509a2b5a2
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
This patch add a check to be sure that the volume created is in a
available state before trying to set bootable or readonly flag.
Story: 2002158
Change-Id: I8db71fd8cf5bd14eb67880f76d2e9135edeb3ed2
There are a number of commands we're never going to implement:
host-evacuate
host-evacuate-live
host-servers-migrate
As noted in Dan Smith's blog [1], these are wrapper commands or meta
operations that call a particular action - namely 'evacuate',
'live-migration', and 'migrate' in old novaclient parlance - for
each server on a particular host.
These commands have historically been confusing. The underlying
server commands have been implemented as 'server evacuate', 'server
migrate --live', and 'server migrate', respectively. If a user wants
to call these for each server on the host, they can do so with a
little bit of shell scripting (hint: you want 'server list --host')
or use something more suitable for this kind of task such as Puppet
or Ansible.
host-meta
As above, this is equivalent to calling 'meta' for all servers on
the host. Combine 'server set --property' with 'server list --host'
instead (or use Ansible).
instance-usage-audit-log
This corresponds to the '/os-instance_usage_audit_log' API which is
intended for use by OpenStack Telemetry. There's no user-facing
application of this.
The remaining entries are updated to include their implementations. We
simply missed updating the mapping doc when implementing them.
With this, the OSC implementation of the nova API is *documented* as
being complete, as opposed to merely actually being complete 😉
[1] https://www.danplanet.com/blog/2016/03/03/evacuate-in-nova-one-command-to-confuse-us-all/
Change-Id: If08d501dd66c561956266d3b3f21dfd3559d8394
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
There are now many ways to create a new volume group, thus the
positional arguments don't make sense. Deprecate them.
Change-Id: Id0b212426861719db1812b7d07b82613cf591de4
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
This patch adds ``--source-group`` and ``--group-snapshot`` options
to the ``volume group create`` command to allow creating group from
a source group or a group snapshot.
Change-Id: I87482a5dd43c519dfdcf981635aa879914a70a5c
This patch adds the ``block storage volume manageable list`` and
``block storage snapshot manageable list`` commands that
allow operators to list the volumes and snapshots on a
particular host or cluster for management under OpenStack.
Change-Id: I328dada5a0dc4e9e44c0d51db5cf3f224e27f88f
This patch adds the ``block storage cleanup`` command that
allow operators to cleanup resources (volumes and snapshots) with
failed operations by requesting services in other hosts in the
same cluster to cleanup resources of a failed service.
Change-Id: I1375223f525021db5201fa0a9f9a647d17dd01f7
This patch adds the ``block storage log level list`` and
``block storage log level set`` commands that allow
operators to list the current log levels of cinder services
and also enables them to set a particular log level.
Change-Id: I16cd8084fb505a9e68a35a936ef3b8b1f3cdc712
Sometimes it is useful to be able to use the project cleanup function in
scripts and having to add "echo y | openstack" isn't really nice.
Signed-off-by: Dr. Jens Harbott <harbott@osism.tech>
Change-Id: I3ded9982769b4568b6dcfc49bc31ba67a6227839
The '--consistency-group-source' and '--consistency-group-snapshot' opts
are unnecessarily verbose. Shorten them to '--source' and '--snapshot',
respectively, maintaining aliases to avoid breaking users.
Change-Id: I2b6656a8a09d953eb4406f1d4fd1e804743a8963
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
Network trunk commands originally were added to python-neutronclient,
although we can long consider these operations core Networking operations.
This patch is not a blind copy but also changes the original code to use
openstacksdk python bindings instead of the binding code in
python-neutronclient as that is already deprecated.
Change-Id: Ic4bc35c296a95d5dae92e9fc1cab3a3fa8f103cd
Related-Bug: #1999774
This patch adds the ``volume summary`` command which shows the total
size, total count and metadata of all volumes.
This command is available from microversion 3.12 and the metadata
info is available from microversion 3.36.
Change-Id: I6472337e8b1dc91aad5fbe416673a5d5a5d5fa88
We missed this when migrating the 'server migration list' command
across.
Change-Id: Ide05a0289020764829f1dbc416be5336fdf37d84
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
Coverage report should not include statiststics on test modules
which is not only unnecessary, but also pollutes the coverage
statistics and pollutes the final report.
Requesting the path to tests to be omitted in .coveragerc resolves the issue.
Signed-off-by: Jiri Podivin <jpodivin@redhat.com>
Change-Id: Ifedaa1c8bfab23d92958e58c69c03e778454a408
There is no default for ask_user_yesno() since an empty answer instead
just repeats the question. Drop the unnecessary parameter.
Change-Id: I207bccbcbd31f831765e74a20c503b695790c0f5
This one is a little more complicated because we support waiting.
Change-Id: I5bd65b44c23bfee1e0144dbd060563ecc3cfb942
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
This was used by 'run_method_with_servers', not the SDK-equivalent.
Change-Id: Ia3333a95e406f430beb4f2cfb887e81ab7b72cfe
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
We use 'set', not 'update', in command names. An alias is provided.
Change-Id: I7864599e06df055999b975aabf101611cd482753
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
Switch the server volume list command from novaclient to SDK.
Modified functional test for server add/remove volume.
Change-Id: I5b4ab7d0275aec2e02451c5371319ac350af6a5f
Using options --long and -c and specifying same columns added
by --long option, it passes duplicated column names to prettytable and
report the following error:
Field names must be unique!
This patch removes duplicated columns.
Change-Id: I9c0bd09c50dac568ca1980a6b53a6c544b85c2aa
This functional test case for hypervisor list and show makes sure it
works with the openstackclient sdk.
Change-Id: Ibaeaf68d6056fcf904b546f30287c65173b5a368
A recent change to cliff [1] means we're now stripping periods when
generating the summary line of command help strings. Account for this.
[1] https://review.opendev.org/c/openstack/cliff/+/867274
Change-Id: I45b39b9fe38914497505f157e91d84cd2f84f547
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
Each command should have a summary line followed by a longer
description, if needed. Some commands were not following this. Fix them.
Change-Id: If1ce7654037d192626460f34c069ea0979919b9b
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
The fixed_ip_address parameter needs to be passed in a hash with key
"ip_address" in order to be processed by the server, the previous arg
was simply being ignored.
Added a functional test for better coverage.
Closes-Bug: 1998927
Change-Id: I6956d2642d8e80fc10c3739f0a571aa7ba276b1a
Use the SDK for the server show command. This change modifies a helper
function that is used by server show as well as other commands that
print information about an individual server. The helper still uses
novaclient APIs when additional OpenStack requests are needed since some
of its callers are still using the nova client.
Depends-On: https://review.opendev.org/c/openstack/openstacksdk/+/864340
Change-Id: Ic253184ee5f911ec2052419d328260dc4664b273
Added two new filter flags to ``openstack network qos rule type list``:
- "--all-supported", to return any QoS rule type supported by at least
one loaded driver.
- "--all-rules", to return all QoS rule types supported by the current
version of Neutron server, regardless of the loaded drivers.
Depends-On: https://review.opendev.org/c/openstack/openstacksdk/+/827671
Depends-On: https://review.opendev.org/c/openstack/neutron/+/827683
Related-Bug: #1959749
Change-Id: Ie0622e79ecf7dadd6560fea142352f5a2ed66b74
Added the missing commands from glanceclient, updated the OSC
equivalent and removed the deprecated commands.
Change-Id: I3cee7882f6712e80c6f6e568337c1f96439aa1a5
When creating a server with an attached volume, you can specify a block
device with a 'boot_index' of '0' and this will become the bootable
device. OSC allows users to do this by using either the '--volume'
option or a combination of the '--image' and '--boot-from-volume'
options, but we should also allow them to do it the "hard way" via the
'--block-device' option. For example:
openstack server create \
--block-device uuid=0a89ecd8-1fe2-45f0-94da-7789067911c9,boot_index=0 \
--block-device uuid=589266ef-fd88-46e9-b7b2-94503ce8f88f,boot_index=1 \
... \
my-server
Make this possible.
Change-Id: Ia48449fecbc590346630807b1c7da40102d53b33
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
Story: 2010376
Task: 46617
The 'server create' command should support multiple '--block-device'
parameters. Prove it.
Change-Id: I1bd83287efdbbe11774053b694bae99b6a4ebdf5
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
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>
This reverts commit 042be7c7fe. 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>
Update server migration list to use the OpenStack SDK instead of
directly using the nova interface.
Change-Id: I40dc95ee47e7c33ebf596f8ad437228b4bb0ab33
Off the back of a recent post to openstack-discuss [1], list the common
actions used in OSC along with some conditions around their expected
use and implementation.
[1] https://lists.openstack.org/pipermail/openstack-discuss/2022-November/031284.html
Change-Id: Id6610d678e7b3b12afdd89a674fbbe7090f64444
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
Update server list to use the compute component of the OpenStack SDK
instead of directly using the nova interface. This change depends on SDK
version 0.102.0 for automatic client-side query filters.
Change-Id: Ib9985812bfd98320b75f3a82bb594a0daa6e4d93
This patch adds a test to create a new volume from source.
We also include code changes to pass the right size i.e. either
size passed by the user via --size argument or the source volume
size. This case is already handled at the API layer[1] but it
helps being consistent with passing the right size value as in case
of creating a volume from snapshot or backup.
[1] 7c1a5ce7b1/cinder/api/v3/volumes.py (L381-L382)
Change-Id: Idc71636dad6bb678fe24f19b0836d2e9bd92d7d2
Support for creating a volume from backup was added in
microversio 3.47. This patch adds a --backup option
to the volume create command to add that support.
Change-Id: Ib26d2d335475d9aacbf77c0fd7b7cda2ba743943
The command "volume attachment create" has a typo in the docstring.
The docstring says to use "server add volume", but the command is
actually "server volume add". This
change fixes the typo in the docstring.
Task: 46781
Story: 2010401
Change-Id: Ie19a24ead100dd9177669653a7a9997772ef4538
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>
This is the equivalent of the 'image-stage' glanceclient command.
Change-Id: I10b01ef145740a2f7ffe5a8c7ce0296df0ece0bd
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
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>
This change adds and ability to filter out the baremetal nodes in
'network agent list' command.
Related-Story: 2008590
Related-Task: 41746
Related-Bug: #1658964
Change-Id: I01ffbd82662abbc1c2f56eb8f1e700f392bc063c
Signed-off-by: Maksim Malchuk <maksim.malchuk@gmail.com>
We do this everywhere. Add a simple knob to simplify the pattern. Only
one use is migrated initially. The rest will be done separately.
Change-Id: Ic3b8958bd4fb1459a8ac3adaff216c2a26628491
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
The 'auto' and 'none' network allocation policies are only supported on
compute API microversion 2.37 or later. Enforce this in the code.
Change-Id: I90f8fb1e61ead4bd406ea76bbeb731b913805b13
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
Story: 2010385
Task: 46657
This should lookup a network called 'none' or 'auto', not do the
equivalent on '--nic none' or '--nic auto'. Correct this.
Change-Id: I3c5acc49bfe8162d8fb6110603da56d56090b78f
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
Story: 2010385
Task: 46658
nova-network has been removed from nova for a very long time now and
we've no way to test it in CI save for installing old versions of
OpenStack. We don't care about this enough to do that, so just remove
the thing.
In the vein of things that have been removed, we also remove
configuration that was supposed to enable cinder's v1 API but doesn't
since the related knob was removed over 5 years ago [1].
[1] 3e91de956e
Change-Id: I76efeccec04937c3a68108e2654872e00fadcec4
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
The ability to rescue a volume-backed server was added in compute
microversion 2.87 [1].
This adds a note to the command help to improve user experience.
[1] https://docs.openstack.org/nova/latest/user/rescue.html
Change-Id: I5f40c3ca28e13bd1f979bc5f8c337302a3b9a5be
These are aliases for '--nic none' and '--nic auto', respectively.
Change-Id: I7b4f7e5c3769a813bd8b2b9cd6090c6fe501e13d
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
The `server dump create` command instructs Nova to trigger a crash
dump in the guest OS. Assuming the guest supports this, the resulting
dump file will be located in the guest, in a location dependent on the
guest OS. Explain all that in the helptext.
Story: 2010384
Change-Id: If940ed5cce6c5ab4193ab1494738149370da9aad
Update usage list and usage show to use the compute component of the
OpenStack SDK instead of directly using the nova interface.
Change-Id: I1c4d2247c9c1a577ed9efad7e8332e7c9b974ad5
In change Idc1b99492d609eb699d0a6bef6cd760458a774f6, we added a
'--check-limit' option to enable "no force" behavior for network quotas.
This was already the default for compute quotas. Provide a path for
harmonizing the behavior of the two options by instead using a
'--no-force' option which will become the eventual default for the
network quotas also.
Change-Id: I25828a3d68e2e900f498e17a0d01fb70be77548e
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
We were passing a project object rather than just the ID. Also correct a
typo in the call to delete network quotas.
Change-Id: I2292db7932ec01026f0e54014e3d02218792617a
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
I guess this was defined to avoid a circular import. There are easier
ways to do this.
Change-Id: Iab215a53691298413ea9d10def792008ab9edbce
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
These are important and they're easier to identify at the top of the
file than nested deep inside.
Change-Id: I1569c855fadfe4cdacf83ee07d08922bf3edefbc
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
This doesn't do anything special in nova and cinder and is not supported
in neutron. For the 'quota show' command, people should use the
'--default' argument instead.
Change-Id: I0dd38e5cb252a01d5817ed168be040b21b35e348
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
Add '--compute', '--network' and '--volume' options to the 'quota show'
command, along with a default '--all' option, allowing us to restrict
quotas shown to an individual service.
Change-Id: I122b765df01887b8d916ee6567ffb7768fcb4392
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
Provide an more sane way to get usage information for a particular
project's quotas. This requires using the 'Lister' command type since
the 'ShowOne' command type only allows for simple key-value pair output.
We also add a note indicating that the '<project>' argument is optional.
Change-Id: Ic7342cf08f024cc690049414c5eef5b9a7594677
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
This is prep work for some changes we're introducing in a later change.
Change-Id: I27a59bc1d57e6815fb166fb99ea2af88f08b68a9
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
I don't think it has ever worked in fact..
The server.evacuate() in novaclient returns not a Server() instance,
but a TupleWithMeta() object, that has no .to_dict() method [0]
used in _prep_server_detail() function.
[0] https://review.opendev.org/c/openstack/python-novaclient/+/276639
Change-Id: I22f9ac072eb1b0bfd1263a256e9bea4500c03290
Story: 2010204
Task: 45928
currently this command tries to fetch extra_specs for any flavor
that does not have them (which is quite usual), regardless if the
command was even asked to display them (--long) at all.
This significantly slows down this command as it makes a lot of
unnecessary REST calls, one per each flavor to fetch extra_specs for.
With this patch, client only attempts to fetch flavor extra_specs if
the user actually called the client with --long.
Change-Id: Ia36414d891a41b641d7a9a04f0a1e7d43cfee351
Story: 2010343
Task: 46484
We were stating that this was not supported. That is not true. Correct
the oversight.
Change-Id: Ib9d9db641a18e142be0a1eccff783e7cccdf2db5
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
We had previously indicated that people use 'quota set' for unsetting a
project's quotas, however, there was nothing that actually allowed us to
do this. Correct that oversight.
Change-Id: I04057e766b8ccf94bf219972249b68dc2bb796d4
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
I had incorrectly marked the 'api-version' command as WONTFIX. Turns out
we already support this, albeit via keystone as opposed to a
cinder-specific API.
Change-Id: I804ef1ca5a0f4df844d8c2229688c4edbac45aa9
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
This is an automatically generated patch to ensure unit testing
is in place for all the of the tested runtimes for antelope. Also,
updating the template name to generic one.
See also the PTI in governance [1].
[1]: https://governance.openstack.org/tc/reference/project-testing-interface.html
Change-Id: Ie3677749177a32507007833717b9bc484ce2c493
Add file to the reno documentation build to show release notes for
stable/zed.
Use pbr instruction to increment the minor version number
automatically so that master versions are higher than the versions on
stable/zed.
Sem-Ver: feature
Change-Id: Ie570af5ce752d91190ebf6aa3c5ff2329afa36d3
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
The assertItemsEqual were replaced with assertCountEqual in
I0bbffbec8889b8b3067cfe17d258f5cb16624f38.
However the following changes add assertItemsEqual after that.
* I1095100efb27b8559412469f0a9d07fc0a3db9d5
* Ic230c2c5cda8255d8f2c422880aeac81670b2df3
* Ica3320242a38901c1180b2b29109c9474366fde0
So Replace assertItemsEqual with assertCountEqual again.
Change-Id: I11ff1748225e434f64dbaf7b88dc80ba28a5e2a0
Signed-off-by: Takashi Natsume <takanattie@gmail.com>
Add '--reimage-boot-volume' and '--no-reimage-boot-volume parameters'
to the rebuild command to allow rebuilding of volume backed instances.
Change-Id: I4a6e30b2cf12f32202a2d9ef1ced347e1dd139f3
A volume-backed server will have no image attribute (or rather the image
property will be set to the empty string). As such, if you want to try
rebuild you will need to specify an image [*]. Enforce this.
[*] Before microversion 2.93, this must be the same image. However, we
don't touch on that here. This will be addressed later.
Change-Id: I6842dabd7acb4e3a78f894e55e616625757eb6a4
Story: 2010297
Task: 46290
Implements a new parser argument "--target-project" to
list RBAC policies for a specific tenant project only.
This uses the already existing server-side query
parameter "target_tenant".
Story: 2009937
Task: 44824
Depends-On: https://review.opendev.org/c/openstack/openstacksdk/+/834442
Change-Id: I83ff07041a022e8795e3c5550c6a7aabb0c0d8c8
Signed-off-by: Jan Hartkopf <jhartkopf@inovex.de>
This isn't true with the new dependency resolver introduced in pip 20.3.
Change-Id: Ie28fe625663c960fbffa12efb1503b8c9f8c0581
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
The recently added support for nova API microversions 2.91 and 2.92
necessitate a newer version of python-novaclient. Make it so.
Change-Id: I40a77334e4aee2e196062c38a0bb70f8f3079b44
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
This patch adds a new parameter ``--host`` to
``openstack server unshelve`` command. This can help administrators to specify
an ``host`` to unshelve a shelve offloaded server.
And add new parameter ``--no-availability-zone`` to unpin a server availability
These parameters are available in the 2.91 microversion.
Depends-On: https://review.opendev.org/c/openstack/python-novaclient/+/831651
Implements: blueprint unshelve-to-host
Change-Id: I7986adc7563f63bcd4b3caf5eb7bc4329b4e1eca
Since 4.0, '--os-url' global option is no longer supported.
And this option had been replaced to '--os-endpoint'
- Refer Change-Id: I1b9fbb96e447889a41b705324725a2ffc8ecfd9f
- Refer Docs: doc/source/cli/backwards-incompatible.rs
I fixed in documents as below
- OPTIONS: '--os-url' to '--os-endpoint'
- ENVIRONMENT VARIABLES: 'OS_URL' to 'OS_ENDPOINT'
- and relevant sentence
Change-Id: Ibb0cddf34375df941678ee07a005d81399ec7195
The 'config show' command will show information about your current
configuration. When using a 'cloud.yaml' file and the 'OS_CLOUD'
environment variable, the output of this will look like so:
$ openstack config show
+---------------------------------------------+----------------------------------+
| Field | Value |
+---------------------------------------------+----------------------------------+
| additional_user_agent | [('osc-lib', '2.6.0')] |
| api_timeout | None |
| auth.auth_url | https://example.com:13000 |
| auth.password | <redacted> |
| auth.project_domain_id | default |
| auth.project_id | c73b7097d07c46f78eb4b4dcfbac5ca8 |
| auth.project_name | test-project |
| auth.user_domain_name | example.com |
| auth.username | john-doe |
...
All of the 'auth.'-prefixed values are extracted from the corresponding
entry in the 'clouds.yaml' file. You'll note that the 'auth.password'
value is not shown. Instead, it is masked and replaced with
'<redacted>'.
However, a 'clouds.yaml' file is not the only way to configure these
tools. You can also use old school environment variables. By using an
openrc file from Horizon (or the clouds2env tool [1]), we will set
various 'OS_'-prefixed environment variables. When you use the 'config
show' command with these environment variables set, we will see all of
these values appear in the output *without* an 'auth.' prefix. Scanning
down we will see the password value is not redacted.
$ openstack config show
+---------------------------------------------+----------------------------------+
| Field | Value |
+---------------------------------------------+----------------------------------+
| additional_user_agent | [('osc-lib', '2.6.0')] |
| api_timeout | None |
...
| password | secret-password |
...
This will also happen if using tokens. This is obviously incorrect.
These should be masked also. Make it so. This involves enhancing our
fake config generation code to generate config that looks like it came
from environment variables.
Change-Id: I560b928e5e6bcdcd89c409e0678dfc0d0b056c0e
Story: 2008816
Task: 42260
Update missing command in Mapping Guide.
List of updated command
[Nova CLI / OSC]
instance-action-list / server event list
Change-Id: I1436a6c1bdd881890e015cf0f1829c38378b36fa
The 'neutron tag-replace' command is equivalent to the 'openstack
network set --no-tag --tag <tag> [--tag <tag> ...]' command. '--no-tag'
will unset all tags while '--tag <tag>' will set a new tag and can be
specified multiple times.
The 'nova hypervisor-uptime' command is equivalent to the 'openstack
hypervisor show' command. Before compute microversion 2.88, the nova
command was using a different API that returned an almost identical
output to 'nova hypervisor-show' except it included an 'uptime' field.
Since 2.88, this field is returned in the standard call. OSC abstracts
this detail away so the 'uptime' field is always present, removing the
need for a separate command.
The 'nova migration-list' command is implemented as 'openstack server
migration list' (simply omit the '--server' filter).
The 'nova volume-update' command is implemented as 'openstack server
volume update'.
The 'nova volume-attachments' command is actually available as
'openstack server volume list', though you can also use 'server show'.
The 'nova aggregate-cache-images' corresponds to an internal API that
only glance should be using. It doesn't need to be exposed via
openstackclient.
Change-Id: Icdbc42762230954f6f7f2064b6228416af41d45a
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
Python 3.6 and Python 3.7 support has been dropped since Zed [1]. This
necessitates changes our jobs to build and publish docker images since
those currently use Python 3.6. We now use Python 3.9.
[1] https://governance.openstack.org/tc/reference/runtimes/zed.html
Change-Id: I228b7ff6691a025f1ba9b7d9449f294868942151
Co-authored-by: Stephen Finucane <stephenfin@redhat.com>
We're using tags in '.zuul.yaml', which requires use of the unsafe
parser [1].
[1] https://stackoverflow.com/a/45967047
Change-Id: Ib97480f6fcaba7406ffe284e1935744346684b8b
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
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>
Simplify some logic by using a common 'dest' for mutually exclusive
options.
Change-Id: Ie5f3600672953f40be52de51e84717c8912ddaf8
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
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
This test was added in [0] and it causes a lot of failures, since
setting the network quota to 1 will result in quota errors for any other
test that is trying to create a network in parallel. We can only run
this test in a serial tempest task that would need to be created for
such a scenario.
Related-Story: 2010110
Change-Id: I6015c181ecabff26bdb1b0c11b0e33ad39e6f083
Patch [0] dropped mapping the tenant_id attribute to project_id.
However, the Neutron API still returns the tenant_id attribute in
addition to the project_id and so we still need to discard it from
the output.
[0] I5f62f2a76592eaaaed6703624e959df41a6ecc8f
Signed-off-by: Dr. Jens Harbott <harbott@osism.tech>
Change-Id: Iba1e003bf587802f28928cb44d160b3b3fb1f840
Add a "--all" option to "openstack image list", which allows the user to
list all of the images.
Story: 2010071
Change-Id: I56a2e4846d0380d07803305fb830d1a43dfd71b3
python-novaclient 18.0.0 removed support for Python 3.6 and 3.7 and
can't be installed in Python 3.6.
This change migrates the osc-tox-py3N-tips from Python 3.6 to Python
3.8 as Python 3.8 is the minimum version currently supported.
This also adds Python 3.9 to supported runtime list because it has been
tested since stable/yoga.
NOTE:
The osc-tox-py36-tips job is used by cliff, so the subsequent patch
for the cliff repo should be merged timely.
Change-Id: Id7a8f3ca5b704102aa18eb6bf98ae9ada005d013
Currently, the 'Host Status' field is shown only for 'server show' but
not for 'server list'. The host_status can be helpful for users who are
having issues with servers that show a status of ACTIVE, as it can show
a hint about the compute host status when nova policy is configured to
allow it.
Story: 2009689
Task: 44003
Change-Id: I6209cf52044218b7b32ab2fa5712574f12ba2f5f
When adding these, we missed that the underlying cinder library call
actually returns a dictionary and not a Resource-based object. This
requires slightly different handling. Fix this.
Change-Id: Ie065fe4198ae1238830cb619220e856390d4cb6e
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
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
These are based on the 'cinder list-filters' command, which accepts an
optional '--resource {resource}' option to limit the listed filters to a
single resource type.
block storage resource filter list
block storage resource filter show
We used the 'block storage resource filter' terminology rather than
simply 'resource filter' to highlight the fact that this is specific to
the block storage service.
Note that while this feature is a bit weird, good documentation can be
found at [1].
[1] https://docs.openstack.org/cinder/latest/admin/generalized_filters.html
Change-Id: I21e7c0ea427aef1f6665394d4b8e9a1f30d6dbb1
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
These mirror the 'cinder cluster-*' commands, with arguments copied
across essentially verbatim. The only significant departure is the
replacement of "tenant" terminology with "project".
block storage cluster list
block storage cluster set
block storage cluster show
We used the 'block storage' terminology rather than simply 'volume' to
allow us to start distinguishing between the volume service and a volume
resource.
Change-Id: I9105a9e4a139af4929e3b1f3a6de6c9a53e0b598
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
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
In order to improve the convenient of use,
columns corresponding to the "--long" option has been added
so that it can be used in the filter.
Currently filterable columns include the following:
'ID', 'Name', 'Status', 'Networks', 'Image', 'Flavor'.
Story: 2009150
Task: 43113
Change-Id: I6760ca5da0e3707d1d746ae5eeec7d9162020d15
The Glance API allows us to filter by multiple IDs using the 'in:'
operator. Take advantage of this to speed up listing of server in larger
deployments where image counts in the hundreds (or even thousands) are
not uncommon.
Unfortunately the Nova API does not support something similar for
listing flavors. Boo.
Change-Id: I7d3222d0b0b8bf72b4ff3e429bc49e621b569979
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
Depends-On: https://review.opendev.org/c/openstack/openstacksdk/+/837613
The keystone API supports filtering trusts by trustor and/or
trustee.
Also adds a shortcut parameter to get trusts with current
user as trustee or trustor.
Signed-off-by: Nicolas Belouin <nicolas.belouin@gandi.net>
Change-Id: I00ed2b68cf8ada214a59f640f4f0a5c9dbc37063
This flag allows to set a new Neutron quota resource limit without
checking first the current resource usage. The new limit will be
set anyway. This flag was used only by the compute engine.
Related-Bug: #1953170
Change-Id: I7084f8208b804236ac99e6842db7a45854ce54d7
Make the positional argument "volume" optional and add a "--force"
option (volume v2 only) to the "volume backup restore" command.
Closes-Bug: #1597189
Change-Id: If944e10158bd18e8331be63e96187a23e23095d7
The 'openstackclient.compute.v2.server' module is getting rather large.
The server migration commands don't need to be in there. Move them.
Change-Id: I8b2600cfd9f8e37d3093c52c7222d85e84e7fc89
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
The nova API doesn't allow you to retrieve migration records by UUID,
only ID. This is confusing. Work around it by listing records and
filtering this list.
Change-Id: I932c9c70420e85056509513e005bb78168e70611
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
When trying to list backups of a deleted volume with --volume,
openstackclient fails because the volume does not exist.
However, for listing a volume's backups, the volume itself
does not need to be present.
Fix this issue by allowing the volume of the requested backups
to not exist.
Story: 2009901
Task: 44716
Change-Id: Iea1a567151f427fa0e1ccff3af5cbeab620defcd
Signed-off-by: Jan Hartkopf <jhartkopf@inovex.de>
Add file to the reno documentation build to show release notes for
stable/yoga.
Use pbr instruction to increment the minor version number
automatically so that master versions are higher than the versions on
stable/yoga.
Sem-Ver: feature
Change-Id: Ie1126dddd3666d3dc108190133df5e3b085a8404
It is now possible to set extra DHCP option for an existing port using
"port set" command. It works in the same way like during port creation.
Story: 2009095
Task: 42927
Change-Id: I3577d4e3a303137b708ae8687c44b486aa82e296
There may be deployments that only have a volume service but no compute
service, possibly as an intermediate step during the initial setup.
Don't fail the "volume list" command when no compute client can be
initiated.
Signed-off-by: Dr. Jens Harbott <harbott@osism.tech>
Change-Id: Idef77bdc8753a456a4c431b0385318dff6581a65
As of compute microversion >= 2.21, support for list and show of server
events for deleted servers was added. This however wasn't working using
the openstackclient because the compute GET /servers/{server_id} will
not return a deleted server, so osc_lib.utils.find_resource() fails to
find the server and the command bails early.
This adds a check for a uuid-like <server> arg and uses it directly if
the <server> cannot be found via find_resource().
A note is also added to the command help to indicate that list and show
for deleted servers will only work if a server ID is passed (name will
not work).
Story: 2009841
Task: 44443
Change-Id: Icd33b3b9a3a1855d7893dd111bbb2aca059f45fd
Only 'server migration list' was being documented.
Change-Id: I038ff2bcf7bb852d619004bb00306d2d388135a7
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
The 'remote-managed' vnic type will be used to support off-path
SmartNIC port binding with OVN, and it is expected that the user
will create ports with this vnic type as part of the workflow.
As such the client must allow users to interact with this
vnic type and this patch addresses that.
Partial-Bug: #1932154
Depends-On: I496db96ea40da3bee5b81bcee1edc79e1f46b541
Change-Id: I566c3da594d757dd62edcf7f9ea3077db8d6b11a
With Sphinx==4.4.0 some "helpful" warnings were introduced when an
external link could be replaced by a macro, like for :lpbug:. Sadly we
have a very high number of existing release notes that trigger these
warnings and no good way to fix them retrospectively, because would mess
up their mapping to releases. So we change the logging for the
sphinx.ext.extlinks to ignore these warnings for now.
Signed-off-by: Dr. Jens Harbott <harbott@osism.tech>
Change-Id: I709de5e454434b8790a68d9e67ca1432387b21ab
In the new SDK we are going to add additional parameter to the flavor
which make no use for OSC. Exclude it explicitly since it also cause
failing tests.
Change-Id: Ie35e60498cf18f05c878611df6f88607a04b1870
Sometimes it can happen that when extending a volume it is shown as
status "extending" with the original size for a while. Wait for the
volume to enter state "available" again before checking the result.
Signed-off-by: Dr. Jens Harbott <harbott@osism.tech>
Change-Id: Ib70cfa1c241ce94426214c7a05c550213f427caa
Network objects returned from the SDK include a location column which
has a reference to the cloud to which the object belongs. Add this
column to our fake objects used for testing, so that we can make sure we
don't include them in CLI output where they are useless.
Change-Id: Ib09027af78e7bf2458cdc76ea9027faa3dbbfcf9
Signed-off-by: Dr. Jens Harbott <harbott@osism.tech>
Why limit a user to preset ssh arguments? Capture them all and send
them along to ssh to deal with. This allows users to use the full range of
ssh arguments, including specifying a command to run on the
instance. For example:
openstack server ssh -4 upg -- -l cirros -i ~/id_rsa_upg "date; uptime"
SSH arguments that openstackclient currently mirrors are deprecated
except for -4 and -6, as they are useful for retrieving the correct
instance IP.
Change-Id: Ia50786d5eee52688e180550fe16aeb8af610154b
Co-authored-by: Stephen Finucane <stephen@that.guru>
argparse allows you to specify multiple options for a given argument
when declaring the argument. For some reason, we weren't doing this for
the 'server ssh' command. There's no apparent reason for doing things
this way and it's been that way since the beginning (2013) so let's not
do that.
We also add unit tests since they were missing and should exist.
Change-Id: I67a9e6516d7057266210cd4083e9ddeb1cfaa5de
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
The compute API provides this information to us. We might as well use
it.
Change-Id: I5608fa80745975ce49712718452cfe296c0f64d2
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
We're seeing failures in a recently added tests,
'ServerTests.test_server_add_remove_volume' from
'openstackclient/tests/functional/compute/v2/test_server.py'. These
failures are likely the result of slow CI nodes, but we don't have
enough information in the CI logs to debug them. Starting logging the
various commands executed in tests so that we can see these logs if and
when tests fail.
Change-Id: I4584dc5e6343fe8c8544431a527d8c3c7e7b3c5b
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
These options are not only valid when modifying a router, but also when
one is created initially.
Signed-off-by: Dr. Jens Harbott <harbott@osism.tech>
Change-Id: I3e12901f37cbd1639ac9dc9cc49b04114b80474c
The nova API we're using to delete a server volume attachment needs to
be handed a volume, not a volume attachment.
Also make sure that we create an error if the volume isn't actually
attached to the server.
Signed-off-by: Dr. Jens Harbott <harbott@osism.tech>
Co-authored-by: Stephen Finucane <sfinucan@redhat.com>
Change-Id: I12abd3787ea47acb4da282d00fdc1989405a0564
Fix the issue where the flavor name was empty in server list output.
This requires somewhat invasive unit test changes to reflect the changed
API response from the server, but this has the upside of meaning we
don't need new tests since what we have validates things.
Also drop the flavor ID column as it is removed from the compute API.
Change-Id: Ica3320242a38901c1180b2b29109c9474366fde0
Signed-off-by: Khomesh Thakre <khomeshthakre24@gmail.com>
Story: 2008257
Task: 41113
This has no impact on the end result, but it should make fixing issues
introduced by API microversion 2.69 a little easier.
Change-Id: I7d70eac8aa1a6197ed05a49f071e6899ec219c03
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
Switch the server suspend and server resume commands from novaclient to
SDK. Use the SDK versions of test fakes to support fake Server
resources.
Change-Id: Idd0b4f13fab0f238e42844a7d759538bbda24f68
Switch the server pause and server unpause commands from novaclient to
SDK. Use the SDK versions of test fakes to support fake Server
resources.
Change-Id: Id626f06f3d7edd44b306b7fc7b9b00d04af09621
It is supported by Neutron and needs to be done like that when e.g.
admin wants to unbound port from the host.
Task: #44043
Story: #2009705
Change-Id: I08f1bb40f4dc72cfa7c62feeb5f513455de0ca45
Building plugin documentation is failing for aodhclient when running
with latest pyparsing. Drop the plugin from docs for now until the issue
can be fixed.
Needed-By: https://review.opendev.org/c/openstack/requirements/+/818614/
Signed-off-by: Dr. Jens Harbott <harbott@osism.tech>
Change-Id: I1cc1efd9ff2004dd711ed9da0b1d9e8be31175f4
File tests.unit.volume.v2.fakes is modified to provide sdk volume fakes.
File tests.unit.compute.v2.fakes is modified to provide sdk volume
attachment fakes. For test, setup_sdk_volumes_mock() method is created
so that volumes are created in similar way as servers are created.
Change-Id: I290ba83b6ba27a1377ab73fd0ae06ecced25efd1
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>
These clients are intended to fake out the old glanceclient client which
we no longer use. They were only "working" because we weren't actually
using any of the glancelclient-based stuff and were instead overriding
everything within the tests. Move these overrides back to the main
fake client and remove the crud.
Change-Id: I92ee74a1df72a6dd23f9d2dc04342aab0cbd3210
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
We're no longer creating fake versions of glanceclient's 'Resource'
object but rather openstacksdk objects. As such, there's no point
nesting things under a fake resource class.
Change-Id: I39cd5302622f4542db9eebcccfad0cb90d077441
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
These haven't been used since we switched the image commands from
glanceclient to openstacksdk. There's more cleanup to be done here but
that can be done later.
Change-Id: I3de1f24323886b122b3a30660fb3de18eb7014e9
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
Switch the server image create command from novaclient to SDK. Use the
SDK versions of test fakes to support fake Server resources. Also,
fetch updated image *after* waiting. If a user requests that we wait
(--wait) for a server image to become active before returning, then we
should probably return the final image. If we don't then the image can
appear to be in a non-active state when it fact it's active. Correct
this by fetching the image after the wait call.
Change-Id: I83a403c035add9ab041ed6d59b5b29e42267f143
The old novaclient.v2.server.Server.interface_attach() method is
replaced with proxy.create_server_interface().
In swargs, 'net_id' and 'port_id' are mutual-exclusive, if one of
them is given with value, the other one cannot be None, as the
API would responde with 400 (None is not string).
In unit test, temporary method 'setup_sdk_servers_mock' is added,
because other tests are still using the old 'setup_servers_mock'.
Functional tests are added. Releasenote is generated.
Change-Id: I9899f0509febc5143560a1859ae6344d0a6d1427
The API behind the 'server add volume' command returns details of the
created volume attachment, however, we were dropping these results
rather than displaying them to the user. Correct this.
Change-Id: I3f7e121220d29422ccf4e6940de2f28bb8496c83
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
We should be inheriting from 'ShowOne'. Failure to do so results in a
tuple being dumped to the screen. Not what we intended.
While we're here, we update the docstring of this command to clarify the
command's intent. Nova does not provide an API to retrieve an individual
migration record for a cold migration or completed live migration. As
such, the 'server migration show' command only works for in-progress
live-migrations.
Change-Id: I2e2fe3da7d642b9e8e3d930603dcde178cd68cde
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
Story: 2009658
Task: 43837
Due to a small logic error, we were emitting a warning about a
deprecated option when the user tried to live migrate an instance using
microversion 2.25 even though the user hadn't actually set that option.
Correct this.
Change-Id: Ib61e817bd4ced9b5533e7c7f9d8f0b45fe81c211
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
Story: 2009657
Task: 43836
Switch this command from novaclient to SDK. As this is the first command
related to server that we are migrating, we need to extend our test
fakes to support fake Server resources. The extended fakes will replace
the old ones once all commands related to server are switched.
Change-Id: If476fb1614a64320ed071bbda35e941bf3290a2e
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>
The nova API expects the 'tags' and 'not-tags' filters of the 'GET
/servers' (list servers) API to be a CSV string [1]:
tags (Optional)
A list of tags to filter the server list by. Servers that match all
tags in this list will be returned. Boolean expression in this case
is 't1 AND t2'. Tags in query must be separated by comma.
New in version 2.26
not-tags (Optional)
A list of tags to filter the server list by. Servers that don’t
match all tags in this list will be returned. Boolean expression in
this case is 'NOT (t1 AND t2)'. Tags in query must be separated by
comma.
New in version 2.26
We were instead providing a Python list, which was simply being URL
encoded. Correct this.
[1] https://docs.openstack.org/api-ref/compute/?expanded=list-servers-detail#list-servers
Change-Id: Ie0251a0dccdf3385089e5bbaedf646a5e928cc48
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
Closes-Bug: #1946816
There are several update in CLI decoder document.
- Change flavor set/unset to flavor set/unset --property
- Update the mapping with flavor-update, interface-attach, and interface-detach
Change-Id: I1db50188b3643d3fe28689dc73b3f63806defd29
In this patch, Update missing command in Mapping Guide.
List of updated commands
(Nova CLI / OSC)
- server-migration-list / server migration list
- server-migration-show / server migration show
- live-migration-abort / server migration abort
- live-migration-force-complete / server migration force complete
- migration-list / server migration list
- evacuate / server evacuate
- flavor-access-add / flavor set --project
- flavor-access-list / flavor show
- flavor-access-remove / flavor unset
- server-tag-add / server set --tag
- server-tag-delete / server unset --tag
- server-tag-delete-all / server unset --tag
- server-tag-list / server list --tag
- server-tag-set / server set --tag
- quota-class-show / quota show --class
Change-Id: Id1b4980fbc0f6e8e58bfae6f393f9336c6a7e3b1
Delete duplicate return code.
While adding return of a new Member type, the existing return code part is not deleted.
Note the code in fakes.py in the below commit where these codes were added.
- Project: python-openstackclient
- The commit: 60e7c51df4
Change-Id: Iae44770a784732991962cd38472095f76ab2543f
this already exists for server rebuild, but was missing for server
create.
This option is supported from Compute API version >= 2.63, and is only
available for servers booted directly from images (not from volumes,
not from snapshots, and not from images first converted to volumes).
Additionally, this patch removes mentions of
OS_TRUSTED_IMAGE_CERTIFICATE_IDS env var from similar option help string
in server rebuild command as it is not actually implemented yet.
Change-Id: I4e9faea05c499bd91034d1d284c44fdcc8e18db5
before change:
$ tox -e functional -- --regex functional.tests.compute.v2.test_server
after change:
$ tox -e functional -- --regex tests.functional.compute.v2.test_server
the test unit path document should be change the above line.
(fixed wrong letter)
Change-Id: I49674fb0d56ee65c1f6328b9d960b16876173e2d
Add file to the reno documentation build to show release notes for
stable/xena.
Use pbr instruction to increment the minor version number
automatically so that master versions are higher than the versions on
stable/xena.
Sem-Ver: feature
Change-Id: Iedf2c908bf5a9d87effa02717eb604ee8d15ef3b
This microversion drops the duplicate ``id`` field while adding
``attachment_id`` and ``bdm_uuid`` to the output of the
os-volume_attachments API reflected within osc by the ``openstack server
volume list $server``command.
Depends-On: https://review.opendev.org/c/openstack/nova/+/804275
Change-Id: I8a7002d8d65d7795e106b768df868198ab8b8143
Allow configuring hostname when creating a new server or updating or
rebuilding an existing server.
Change-Id: Ibe603eab78bbbec43605f56de62a20493b6aa93d
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
Depends-On: https://review.opendev.org/c/openstack/python-novaclient/+/806917
openstack server list -c "Created At" command doesn't work
because the wrong variable was used here.
When we receive resp data, Created At data is saved with
the name "created". But in "server.py", we append columns
as created_at. So it seems to print an empty table.
Story: 2009149
Task: 43112
Change-Id: I06de6903d5cc427a8b0fdcd168fec47192f4365b
Currently, the unified client does not have the ability to show the
"Forced Down" field of a GET /os-services response in microversion 2.11
even though the legacy client can.
This adds a "Forced Down" column to the 'openstack compute service list
--long' command output when microversion 2.11 is used.
Story: 2009115
Task: 43011
Change-Id: I10bc2fedbf0e867a990227962b2b6e60f5681f69
The compute APIs are unfortunately inconsistent with regard to the
response parameters for migrations.
* GET /servers/{server_id}/migrations returns server_uuid
* GET /os-migrations returns instance_uuid
Because the 'Server UUID' column is being specified for parsing the
response from GET /os-migrations, it is always showing as an empty
string to users.
There are a few other mismatches between the column names and the REST
API response fields [1]:
* 'Old Flavor' vs 'old_instance_type_id'
* 'New Flavor' vs 'new_instance_type_id'
* 'Type' vs 'migration_type'
This adds a new list containing the REST API response field names to
pass to utils.get_item_properties so that the responses are correctly
parsed and the client output contains the response data instead of
empty strings.
Story: 2009078
Task: 42890
[1] https://docs.openstack.org/api-ref/compute/?expanded=list-migrations-detail#list-migrations
Change-Id: I8aab60619e0225047f6a1c31e44917ca8fcc799e
Currently only the test_server_migration_list adds the 'Id' and 'Type'
columns to the expected output, so if the
test_server_migration_list_no_options test is run by itself, it fails
as the actual response contains 'Id' and 'Type' but the reference does
not. This example run fails:
tox -epy38 test_server_migration_list_no_options
The reason the tests pass in the gate is because
test_server_migration_list (which adds the 'Id' and 'Type' columns to
self.MIGRATION_COLUMNS) appears to always run before
test_server_migration_list_no_options, so the latter test gets the
benefit of the former test's column additions.
This changes the test class to just include the 'Id' and 'Type' columns
all the time as they are always returned in microversion 2.23 anyway.
Story: 2009079
Task: 42891
Change-Id: I2c97e9f64790b5e978e4d04230d45b8e343b53d4
Cinder recently removed their v2 API [1] which is causing the functional
tests to fail. Improve our 'is_service_enabled' test helper to use the
'versions show' command, which queries the service catalog and can give
us information about the service version as well as answer the more
general "is this service available" question. We also resolve a
long-standing TODO in the process.
[1] https://review.opendev.org/c/openstack/cinder/+/792299
Change-Id: I381069357aa008344e15327adf3a863c0c2e1f04
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
This closes a gap with cinderclient's 'transfer-create' command.
Change-Id: I7386a7be15c0e3ee87abbcfc2275ba8524c10ff8
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
Story: 2009054
Task: 42831
There is no 'volume group unset' command nor any need for one right now.
This was mistakenly added in I3b2c0cb92b8a53cc1c0cefa3313b80f59c9e5835.
Change-Id: I9386d1350099b10659c6b0e632e4d83cae5b2bfd
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
The tox option to skip source distribution building is skipsdist,
but this seems to be often misspelled skipdist instead, which gets
silently ignored and so does not take effect. Correct it
everywhere, in hopes that new projects will finally stop copying
this mistake around.
See https://tox.readthedocs.io/en/latest/config.html#conf-skipsdist
and https://github.com/tox-dev/tox/issues/1388 for details.
Change-Id: I05c1cc0c2fbf77021cc1e05bc96bee03528c69f0
Manually changing the server state is a potentially dangerous operation
that should only be done under limited circumstances. It's also an
admin-only operation by default. Highlight both points.
Change-Id: Ifd8aec94937764202131ba8caf6b507caa76d7e9
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
Story: 2008549
Task: 41672
Password injection requires either hypervisor-support or an agent
running in the guest that will talk to the metadata service. It can be
disabled for a deployment using the '[api] enable_instance_password'
nova config option. Indicate this, albeit briefly.
Change-Id: Ief94ea07fc7ab6a487af972e8759ca6704d8f085
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
Add an additional '--no-property' option to the 'volume backup set'
command, along with a brand spanking new 'volume backup unset' command.
Change-Id: Id7ca925e0ada03e259f0ecaf3e02af11c900641e
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
These mirror the 'cinder group-snapshot-*' commands, with arguments
copied across essentially verbatim. The only significant departure is
the replacement of "tenant" terminology with "project".
volume group snapshot create
volume group snapshot delete
volume group snapshot list
volume group snapshot show
Change-Id: Ia5084749b7c1a5a936fd6d6e8d89b9b80969f68c
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
We use singular form for delete command argument in all places.
This commit replaces conntrack-helper-ids with a singular form.
The only visible change is a fix for the help message below.
openstack network l3 conntrack helper delete
<router>
<conntrack-helper-ids>
[<conntrack-helper-ids> ...]
Change-Id: I50bbd9f6199071bb86cbb2f37c45ebda1de58433
Neutron has got CRUD API for L3 conntrack helper since some time.
This patch adds support for it in the OSC.
OpenStack SDK supports that since [1]
This patch also bumps minimum OpenStack SDK version to
the 0.56.0 as that version introduced support for the
Neutron's L3 conntrack helper.
[1] https://review.opendev.org/c/openstack/openstacksdk/+/782870
Change-Id: I55604182ae50b6ad70c8bc1f7efad8859f191269
These mirror the 'cinder group-type-*' commands, with arguments copied
across essentially verbatim. The only significant departure is the
merging of some commands, such as 'group-type-default' and
'group-type-list' into 'group type list', and 'group-type-update' and
'group-type-key' into 'group type set/unset'.
volume group type create
volume group type delete
volume group type list
volume group type show
volume group type set
volume group type unset
Change-Id: Iee6ee2f1f276e6ef6f75a74f8f2980f14c0d5e2f
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
These mirror the 'cinder group-*' commands, with arguments copied across
essentially verbatim. The only significant departures are the
replacement of "tenant" terminology with "project" and the merging of
the various volume group replication action commands into the parent
volume group (e.g. 'openstack volume group set --enable-replication'
instead of 'cinder group enable-replication')
volume group create
volume group delete
volume group list
volume group show
volume group set
volume group failover
Change-Id: I3b2c0cb92b8a53cc1c0cefa3313b80f59c9e5835
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
There are more types than just volume types.
Change-Id: I6af66f966a221437ff79fabcb0b81fd38586fe67
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
Add a couple of missing options to each command:
volume backup create
--no-incremental
--property
--availability-zone
volume backup set
--property
Most of these are version dependent so we add the relevant version
checks as part of this work. While we're here, we also make the
formatting a little easier on the eye in places.
Change-Id: I328d5c981cb32b2ee9a4b1bd43aa36b22347ff63
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
This patch implements the necessary commands to utilize the Messages API
introduced in Cinder API version 3.3. Version 3.5 built upon this by
implementing pagination support for these commands which is present in
this patch as well.
volume message get
volume message list
volume message delete
Change-Id: I64aa0b4a8d4468baa8c63e5e30ee31de68df999d
These mirror the 'cinder attachment-*' commands, with arguments copied
across essentially verbatim. The only significant departure is the
replacement of "tenant" terminology with "project".
volume attachment create
volume attachment delete
volume attachment list
volume attachment complete
volume attachment set
volume attachment show
Full support for filtering is deferred for now since that's a more
complicated change that requires additional commands be added first.
TODOs are included to this effect.
Change-Id: If47c2b56fe65ee2cee07c000d6ae3688d5ef3b42
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
Copy the API version checks from the 'openstackclient.compute.client'
module. These will only be necessary until we migrate everything to SDK
but it's very helpful until then.
Change-Id: I2d9c68db5bf891ffa25fd5a7fc9e8953e44b73ab
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
Done manually by looking at the help text for the 'neutron' client
(version 7.1.1) and identifying gaps.
Change-Id: Ib029b2c236f79a0ca6f64834f069db2be4332ea8
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
Done manually by looking at the help text for the 'glance' client
(version 3.1.1) and identifying gaps.
Change-Id: Ic46bbdef7182e5f707cd5083868886ce60c7eb47
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
Done manually by looking at the help text for the 'nova' client
(version 17.0.0) and identifying gaps.
Change-Id: I23a4947a13d5e576c5aa66902686df60379ffda0
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
Done manually by looking at the help text for the 'cinder' client
(version 7.0.0) and identifying gaps.
Change-Id: Ib16c7e9dfa47a93d8b077f0e3e5bbd5bf8984ec3
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
This makes it easier to get the total list of aggregates and the hosts
belonging to each of them (specially for scripting purposes).
Change-Id: I94833c15075ae655bc11e7c0fc47c0abad5846fc
Signed-off-by: David Caro <me@dcaro.es>
Setuptools v54.1.0 introduces a warning that the use of dash-separated
options in 'setup.cfg' will not be supported in a future version [1].
Get ahead of the issue by replacing the dashes with underscores. Without
this, we see 'UserWarning' messages like the following on new enough
versions of setuptools:
UserWarning: Usage of dash-separated 'description-file' will not be
supported in future versions. Please use the underscore name
'description_file' instead
[1] https://github.com/pypa/setuptools/commit/a2e9ae4cb
Change-Id: I7e43e43bc5a24f49aa7b225502e5d0176fef3783
Devstack recently switched default Neutron's backend from ML2/OVS to
ML2/OVN. As OVN backend has some parity gaps and differences in some
APIs, functional tests job was failing with ML2/OVN as some tests
weren't properly skipped in case of missing some Neutron API extensions.
This patch fixes that by doing some small changes in the functional
tests:
- skip DHCP/L3 agent tests when dhcp/l3 agent scheduler extensions
aren't available,
- skip updating neutron agent as OVN agents don't allows that,
- skip service providers tests when there is no Neutron L3 agent
available,
- skip setting router as distributed as OVN backend don't supports that
router's attribute at all.
Depends-On: https://review.opendev.org/c/openstack/neutron/+/793141
Change-Id: I29a8db202086b0b49fed865409fa8ca244b98439
To deprecate and drop support for neutronclient CLI and use only
OSC we need feature parity between OSC and neutronclient.
Last missing piece here is possibility to send in POST/PUT requests
unknown parameters to the Neutron server.
This patch adds such possibility to the OSC.
Change-Id: Iba09297c2be9fb9fa0be1b3dc65755277b79230e
Update the help strings for these two arguments to indicate their
deprecated nature. This was previously flagged via a deprecation warning
but users would only see that if they were to run the command.
Change-Id: I31a5e27ac8bd2625a6073b54a51bf3e8d6126c8c
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
Neutron team recently switched default backend used in Neutron
by Devstack to OVN. With that backend some tests, like e.g. related
to DHCP or L3 agents aren't working fine. So to have still the same
test coverage as we had before, let's explicitly set ML2/OVS as a
Neutron's backend in those CI jobs.
Change-Id: Idf6466a59c6cf96be2f1d53e696f0564584fa233
The egg for the keystoneauth project is actually called keystonauth1.
Seems newer pip actually complains about the difference and fails.
Change-Id: I1602832d33cd467745a03b36c9b1545cd069ba1d
The --protected, --unprotected, --public, --shared, --community,
--private flags were ignored when using --volume.
Change-Id: Id5c05ef7d7bb0a04b9d7a9d821e544e1ff7b3d28
Story: 2008882
assertItemsEqual was removed from Python's unittest.TestCase in
Python 3.3 [1][2]. We have been able to use them since then, because
testtools required unittest2, which still included it. With testtools
removing Python 2.7 support [3][4], we will lose support for
assertItemsEqual, so we should switch to use assertCountEqual.
[1] - https://bugs.python.org/issue17866
[2] - https://hg.python.org/cpython/rev/d9921cb6e3cd
[3] - testing-cabal/testtools#286
[4] - testing-cabal/testtools#277
Change-Id: I0bbffbec8889b8b3067cfe17d258f5cb16624f38
This is no longer an issue in our new Python 3-only world.
Change-Id: I25c31a0b7f76a253499d9713ba48fd7ba7168450
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
Add file to the reno documentation build to show release notes for
stable/wallaby.
Use pbr instruction to increment the minor version number
automatically so that master versions are higher than the versions on
stable/wallaby.
Sem-Ver: feature
Change-Id: I848e21bf2d2ea1a1a132525070e5f20d7ff8478d
When the openstacksdk is patched to properly support defining prefix
lengths when creating subnets, the resulting subnet show output
reveals a prefix_length column with a value of 'none'. This patch
hides the prefix_length column.
Change-Id: I59dfb0b1585ed624f9d82b3557df2ff5ff9d1b3e
Partial-Bug: 1754062
Depends-On: https://review.openstack.org/#/c/550558/
When we create a network qos rule we need specify the type so that we
can call the corresponding API. It's not possible to use the command
without the type so mark it as required. This was already being done
but inline.
Change-Id: I559f884bac198d2c69e800620aef66b200473418
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
This is essentially a partial revert of change
I94aa7a9824e44f9585ffb45e5e7637b9588539b4, which removed some deprecated
commands like 'openstack snapshot *' in favour of 'openstack volume
snapshot *'. Unfortunately the latter appeared to have no test coverage
and were relying on tests for the former to validate behavior. Re-add
the tests removed back then.
Change-Id: Ib2cd975221034c8997d272d43cfb18acefc319fe
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
The neutron API supports filtering subnets by subnet
pool id, but the CLI was missing support for it.
Change-Id: Ic230c2c5cda8255d8f2c422880aeac81670b2df3
This is helpful to automate code style checks at runtime. We include
documentation on how to run this as well as a general overview of style
guidelines in OSC.
Change-Id: I2dc5a0f760ce53269ae25677560b2611cc6bfd91
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
There are a couple of other (networking-related) options which accept
paths, none of which insist on a URI-style path. Let's just drop this
bit of complexity before we release the feature.
Change-Id: Ia7f781d82f3f4695b49b55a39abbb6e582cd879c
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
The syntax of the '--block-device' parameter is complex and easily
screwed up. Allow users to load a block device config from a file. For
example:
$ openstack server create ... --block-device file:///tmp/bdm.json ...
This should alleviate the pain that is BDMv2 somewhat.
No functional tests are provided since we already have tests for the CSV
style of passing parameters and the unit tests show that the net result
is the same.
Change-Id: I3e3299bbdbbb343863b4c14fb4d9196ff3e1698d
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
This mostly reuses the existing tests for '--block-device-mapping',
which can hopefully be removed at some point in the future.
This highlights two issues with the implementation of this option.
Firstly, the 'boot_index' parameter is not required so don't mandate it.
Secondly, and more significantly, we were defaulting the destination
type for the 'image' source type to 'local'. Nova only allows you to
attach a single image to local mapping [1], which means this default
would only make sense if you were expecting users to use the
'--block-device' option exclusively and omit the '--image' option. This
is the *less common* case so this is a bad default. Default instead to a
destination type of 'volume' like everything else, and require users
specifying '--block-device' alone to pass 'destination_type=local'
explicitly.
[1] https://github.com/openstack/nova/blob/c8a6f8d2e/nova/block_device.py#L193-L206
Change-Id: I1718be965f57c3bbdb8a14f3cfac967dd4c55b4d
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
The neutron API supports filtering ports by name, but
the CLI was missing support for it like it does for
other networking resources.
Change-Id: I4ff339e18656013218a26f045b205cb7a02dd2fb
Story: #2008654
New implementation of the project cleanup based on the sdk.project_cleanup.
It is implemented as an additional OSC operation and will ideally obsolete the
`openstack project purge` giving flexibility to extend services support,
parallelization, filters, etc.
Change-Id: Ie08877f182379f73e5ec5ad4daaf84b3092c829c
The parameter isn't actually deprecated, since we need to support older
API microversion, however, we now emit an error if someone attempts to
boot a server with the wrong microversion. This would happen server-side
anyway since this parameter was removed entirely in API microversion
2.57.
Change-Id: I73864ccbf5bf181fecf505ca168c1a35a8b0af3a
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
These options are not supported from Nova API microversion 2.25 and
above. This can be a source of confusion. Start warning, with an eye on
erroring out in the future.
Change-Id: I53f27eb3e3c1a84d0d77a1672c008d0e8bb8536f
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
API microversion 2.25 introduced the 'block_migration=auto' value for
the os-migrateLive server action. This is a sensible default that we
should use, allowing users to avoid stating one of the
'--block-migration' or '--shared-migration' parameters explicitly.
While we're here, we take the opportunity to fix up some formatting in
the function, which is really rather messy.
Change-Id: Ieedc77d6dc3d4a3cd93b29672faa97dd4e8c1185
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
One of the last big gaps with novaclient. As noted in the release note,
the current '--block-device-mapping' format is based on the old BDM v1
format, even though it actually results in BDM v2-style requests to the
server. It's time to replace that.
Change-Id: If4eba38ccfb208ee186b90a0eec95e5fe6cf8415
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
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>
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>
This replaces the 'server-migration-show' command provided by
novaclient.
Change-Id: I413310b481cc13b70853eb579417f6e6fad10d98
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
Server migrations are (confusingly) a different thing returned by a
different API.
Change-Id: Ib6b7c8f9cc3d1521a993616f832d41651dc46f73
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
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>
Simplify the parsing of this option by making use of a custom action.
Change-Id: I670ff5109522d533ef4e62a79116e49a35c4e8fa
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
argparse doesn't sort options by name, meaning we can use the
opportunity to group closely related options together. Do that.
Change-Id: I6714c8db1a549bd4206d2282d2876a406af65aa2
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
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>
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>
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>
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>
This is an admin-only operation by default but can be useful.
Change-Id: I25a4da697e27c0fba4d28b504377667eb18f15fe
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
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
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>
Address comments left in the review for $subject.
Change-Id: I69449112027736152c9fb62f5fe427efd6a25107
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
Change Ic3c555226a220efd9b0f27edffccf6c4c95c2747 introduced some
validation for the 'openstack server group create --policy' command.
Call this out in the release notes.
Change-Id: I7e00851a03470364db00f0f114fc724b0f686b72
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
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>
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>
This replaces the old 'nova volume-attachments' command.
Change-Id: Icb98766f98bd1f2469bdb6df62b4624711f98422
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
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>
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>
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>
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>
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>
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>
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
This closes the remaining gap with the 2.64 compute API microversion.
Change-Id: Ia42b23d813b7af6ddb1a41f4e9bdc8a6160b908c
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
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>
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>
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>
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
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
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>
This had gotten pretty out-of-date and included a whole load of OSC
plugins which I don't think we need to track from here. This updated
version is simply generated via 'pip freeze' using pip >= 20.3, which
includes the new dependency resolver.
Change-Id: I4fb0b69dbd538f313c6fef97126c22078904c69f
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
pip 20.3 finally includes a proper dependency resolver. Its use is
causing the following error messages on the lower-constraints job:
ERROR: Cannot install ... because these package versions have
conflicting dependencies.
The conflict is caused by:
bandit 1.1.0 depends on PyYAML>=3.1.0
cliff 3.4.0 depends on PyYAML>=3.12
openstacksdk 0.52.0 depends on PyYAML>=3.13
Bump our lower constraint for PyYAML to resolve this issue. With that
resolved, we see a new issue:
ERROR: Could not find a version that satisfies the requirement
cryptography>=2.7 (from openstacksdk)
ERROR: No matching distribution found for cryptography>=2.7
This is less self-explanatory but looking at the lower-constraints for
openstacksdk 0.52.0 shows a dependency on cryptography 2.7 [1], meaning
we need to bump this also.
Next up, flake8-import-order seems to cause the dependency resolver to
go nuts, eventually ending with the following error message in a Python
3.6 environment:
Using cached enum34-1.1.2.zip (49 kB)
ERROR: Command errored out with exit status 1:
command: ...
cwd: ...
Complete output (9 lines):
Traceback (most recent call last):
File "<string>", line 1, in <module>
File ".../lib/python3.6/site-packages/setuptools/__init__.py", line 7, in <module>
import setuptools.distutils_patch # noqa: F401
File ".../lib/python3.6/site-packages/setuptools/distutils_patch.py", line 9, in <module>
import re
File "/usr/lib64/python3.6/re.py", line 142, in <module>
class RegexFlag(enum.IntFlag):
AttributeError: module 'enum' has no attribute 'IntFlag'
----------------------------------------
A quick Google suggests this is because the enum34 package is not
complete [2]. We shouldn't even be using it since our base virtualenv
should at least use Python 3.6, but I guess some dependency doesn't
properly restrict the dependency to <= Python 3.4. This is moved from
'test-requirements.txt' to 'tox.ini' since we don't need to use our
constraints machinery for linters.
Finally, the versions of bandit and hacking that pip is bringing in both
requires in a newer version of babel, which in turn requires a new
version of pytz.
Collecting hacking>=2.0.0
...
ERROR: Cannot install oslo.i18n because these package versions have
conflicting dependencies.
The conflict is caused by:
babel 2.9.0 depends on pytz>=2015.7
babel 2.8.1 depends on pytz>=2015.7
babel 2.8.0 depends on pytz>=2015.7
babel 2.7.0 depends on pytz>=2015.7
Seeing as we shouldn't be tracking bandit in
lower-constraints, I'm not sure why we're want to bump these
dependencies for just that. As above, we move these dependencies out of
'test-requirements' and into 'tox.ini' since we can do that for linters.
[1] https://opendev.org/openstack/openstacksdk/src/tag/0.52.0/requirements.txt#L19
[2] https://github.com/iterative/dvc/issues/1995#issuecomment-491889669
Change-Id: I8ec738fbcabc8d8553db79a876e5592576cd18fa
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
SDK starts caching token in keyring (when available and configured). A
small change is required in OSC not to reject this state.
Overall this helps avoiding reauthentication upon next openstack call.
If token is not valid anymore automatically reauthentication is done.
Depends-On: https://review.opendev.org/c/openstack/openstacksdk/+/735352
Depends-On: https://review.opendev.org/c/openstack/osc-lib/+/765650
Change-Id: I47261a32bd3b106a589974d3de5bf2a6ebd57263
Use consistent help strings and error messages.
Change-Id: I42647a6b7e67ce4b8dd5f826e20802ade691c266
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
The documentation presents the parameters necessary
to authenticate via federation (using password) and do
a brief description of each parameter used in the process.
Change-Id: Iae3b6d0b56ebd2bbbb94f9f3637b5086e75559a7
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
The autoprogram-cliff directive has a habit of producing text like
This command is provided by the $me plugin.
which doesn't make any sense.
Cliff recently added a config option whereby consumers can let it know
who $me is so it can suppress that message where appropriate (while
still producing it for $plugin, as intended).
Depends-On: https://review.opendev.org/692464
Change-Id: I0d580fb1d34dd56740eb6d976caa795e0e951047
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
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
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>
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
As noted, we're simply testing the default behavior of Python 3 in this
test. Remove it, now that this is the only version(s) of Python 3 we
have to worry about.
Change-Id: I5f07343df8334457d907086033d5685f59c0bf0e
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
We don't support it anymore. This is just noise now.
Change-Id: I3640e7d8e520db69f83f95e9c7759279f7c15008
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
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>
This rather complex function has had stuff tacked on over the years.
Help make working with it a bit easier through liberal application of
whitespace and some nicer indentation. Some option help text is improved
based on changes to modern nova.
Change-Id: I8154dd395dd904c3bcd180a7d0f9037b7e0be64f
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
We also need to change the lower-constraint requirements to make them
py3.8 compatible. See https://bugs.launchpad.net/nova/+bug/1886298
MarkupSafe==1.1.1
paramiko==2.7.1
Change-Id: I04a0fcd98327b9f41e24e19bcab97c813760f414
Switch from using novaclient to SDK for openstack console url show operation.
Depends-On: https://review.opendev.org/756286
Change-Id: Ibe247825148788c549c2c1e991aae92338cdf557
Newer versions of cliff and stevedore use importlib rather than
setuptools to work with entry points. Replace any references to
"setuptools' entry points mechanism" with "Python's entry points
mechanism".
Change-Id: Iae36155685ee37ab5e38a0c173110a5ece33d05d
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
Python modules related to coding style checks (listed in blacklist.txt in
openstack/requirements repo) are dropped from lower-constraints.txt
they are not needed during installation.
Change-Id: Id735af397e8d41ad3ff583386844d4131fc9e12c
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>
We were documenting that some of these policies were only supported with
specific microversions, however, we weren't actually enforcing that,
leading to a poor user experience. Correct this.
Change-Id: Ic3c555226a220efd9b0f27edffccf6c4c95c2747
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
This is equivalent to novaclient's 'live-migration-force-complete'
command.
Change-Id: Ic4dc639afa16cdf8c5a46774895e850d92985292
Story: 2007513
Task: 39293
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
Neither Tempest itself nor any of the service projects use OSC. As such,
there's no reason to run Tempest jobs here. It's simply a waste of
resources.
Change-Id: I74b0b196fe59e5e1462e3dadc659cf6680a53f80
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
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
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
Change the incorrect port attribute name "uplink_status_propagation"
to "propagate_uplink_status".
Change-Id: Icd7c49af8d988a6e3a52a58c784bd701b2d36faf
Closes-Bug: #1891873
With 60e7c51df4 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
Add file to the reno documentation build to show release notes for
stable/victoria.
Use pbr instruction to increment the minor version number
automatically so that master versions are higher than the versions on
stable/victoria.
Change-Id: I6c1a9cdff90f7073082fc057f0f11b184de5dc32
Sem-Ver: feature
Add ``openstack server migration list`` to fetch server migrations.
Part of blueprint add-user-id-field-to-the-migrations-table
Change-Id: I15b4a5aca8d0dee59dd293e7b1c7272cdfbeea20
The docs requirements migrated to doc/requirements.txt
we need not install things from requirements.txt.
Change-Id: I35a367505b2b423c345b05519e4134113cb66648
Since the openstack SDK still has the neutron-lbaas entries in the network quota,
but those are already deprecated [1], the 'opentack quota show' command shows those
as None value.
This fix removes those empty deprecated values from the output.
[1] https://review.opendev.org/#/c/658494/
Change-Id: I8dbdba2a029ea8e6a268ddf29627e1466a7e3a8a
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
The docs and releasenotes requirements migrated to doc/requirements.txt
we need not install things from requirements.txt.
Change-Id: I4403cee833448beb69afaec503519d5a951f7e34
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
This change adds support for tagging ports on creation
Co-Authored-By: Slawek Kaplonski <skaplons@redhat.com>
Change-Id: I3148a568664588eb2f529138f984859570c0fca1
Related-Bug: #1815933
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
Keystone let's users remove role assignments that reference non-existent
users and groups. This is nice when keystone backs to an identity store
like LDAP and users or groups are removed.
Previously, openstackclient would validate the user and group existed in
keystone before sending the request to delete the role assignment. This
commit updates the code to bypass that validation so that users can use
IDs to forcibly cleanup role assignments.
Change-Id: I102b41677736bbe37a82abaa3c5b3e1faf2475d5
Story: 2006635
Task: 36848
Added port NUMA affinity policy parameter to "port create",
"port set" and "port unset" commands.
Change-Id: I48cacab275856af2911829f9b7176bb87fd039b3
Related-Bug: #1886798
when doing openstack identity provider list --name xyz_id,
and openstack identity provider list --enabled CLI raising
error unrecognized arguments, whereas in api-ref document [1],
user can pass name and enabled as optional query param. This
addresses the above issue, by adding param --id and --enabled in
parser of ListIdentityProvider.
[1] https://docs.openstack.org/api-ref/identity/v3-ext/?expanded=list-identity-providers-detail#list-identity-providers
Change-Id: I59ce3a5f54700ba5a735f0b3b4b3b73b3a8658fa
The file test_examples.py has never worked since its written and and cli in
the example directory are covered by other functional tests for container,
flavor and object lists and they have better asserts. So, deleting the file
Change-Id: Ib9af40da96e66354fe878e79a80048a58f8dd6fe
The patch https://review.opendev.org/#/c/673389/ introduced a regression
by changing the osc-lib interface.
Two conflicting attempts to fix the regression were launched:
1) Reverting the patch.
2) The patch https://review.opendev.org/683119 changes the exception
from the generic CommandError back to a specific Forbidden exception.
The patch https://review.opendev.org/683118 catches this exception
and passes on, i.e. re-implements the same behavior as before.
The first idea was implemented, the initial patch reverted. The second
idea was partially implemented. The change in python-openstackclient
(683118) was merged. The change in osc-lib was approved but failed to
merge because the initial change had been reverted.
Now we have again a situation where the exception produced in osc-lib
does not match the exception expected by the caller.
It is unclear if the osc-lib interface will ever get a rebased version
of https://review.opendev.org/683119 merged, so the safest way to
address the issue is to also catch the exception that used to be
thrown before the inital change and is again thrown after the inital
change has been reverted.
Change-Id: I2ea2def607ec5be112e42d53a1e660fef0cdd69c
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
when doing openstack domain list --name xyz_id,
and openstack domain list --enabled CLI raising
error unrecognized arguments, whereas in api-ref
document [1], user can pass name and enabled as
optional query param. This addresses the above
issue, by adding param --name and --enabled in
parser of ListDomain.
[1]https://docs.openstack.org/api-ref/identity/v3/?expanded=list-domains-detail#list-domains
Change-Id: I3cdb511d3c7059ddfb802ca025188d8976c9302c
I was writing some additional functionality and noticed these tests were
missing. This commit adds tests for adding and removing system role
assignments for users and groups.
Change-Id: I30fdc6ec55e1eb1cfa55f4cbf92c3f001d89865f
stevedore will cache the entrypoint scan when needed. Since we
just installed the things here, do an openstack --help to cause
the entrypoints to get scanned at build time and for the cache
file to be written into the container image.
Change-Id: I73502be6d68c4a38561c9524b4def3c6a6f61ac6
Importing pkg_resources scans every installed distribution to find
all of the entry points. Stevedore is adding a new caching layer using
importlib.metadata, which will not. Switching to the stevedore should
eventually speed up load times, especially for command line apps. This
change makes the switch now to ensure API compatibility.
We were already using stevedore for tests, so this moves the dependency
from test-requirements.txt to requirements.txt and raises the minimum
version to something more recent.
Change-Id: I3e3632783bc745979b6db73e610df8a77ffaceb0
Signed-off-by: Doug Hellmann <doug@doughellmann.com>
They work just fine in Volume API v3 but they were limited in OSC
to v2.
Change-Id: I510383f8e0cbf05ec24caa1cad330f12f82a913d
Story: 2007896
Task: 40279
devstack removing the glance v1 api enable
option[1] because there is no v1 entry point in glance
now[2].
Let's remove ths GLANCE_V1_ENABLED variable setting from
zuul job too to avoid any confusion of glance v1 is still
available.
[1] https://review.opendev.org/#/c/698808/
[2] https://review.opendev.org/#/c/532503/
Change-Id: I6d3a38eee0c75bbc795bad732fe547181d15c677
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
These translation sections are not needed anymore, Babel can
generate translation files without them.
Change-Id: Ic5d57186766257e9d37b3588e71f973cddad9be4
When the sdk gives us a resource that contains Munch columns, drop them
from the output as they are for programmatic usage only and have no use
in a CLI context.
Change-Id: Idd7306cd763b5a017a66e410e70e1adb02663c2a
Modified take_action() method for SetFlavor to use
flavor id instead of flavor name when setting description
Closes-Bug: #1844708
Story: #2007781
Task: #40019
Change-Id: If6798c89fef4c9feb4ebb460722b891f5655037d
$namespace = openstack.image.v{1|2}
The subcommand documents for $namespace were hardcoded and thus prone to
drift over time. This commit removes the hardcoded content and uses the
autoprogram-cliff directive to generate them automatically from the
subcommand configuration classes.
Some reorganization happened here. The `image` subcommand name is shared
by image v1 and v2. Previously the hardcoded document had them combined
and interleaved. Attempting to preserve this with autoprogram-cliff
would have required significant additional infrastructure. However,
since most readers care completely about one and not at all about the
other, we instead split the v1 and v2 versions of these commands into
separate pages. In case links to the old pages exist in the wild, they
are preserved, but moved (with redirects) to a hidden directory, and
populated simply with links to the new version-specific generated
documents.
Change-Id: I24dc6dc10671c7f1267c27002542f61f8a3c18ae
$namespace = openstack.identity.v{2|3}
The subcommand documents for $namespace were hardcoded and thus prone to
drift over time. This commit removes the hardcoded content and uses the
autoprogram-cliff directive to generate them automatically from the
subcommand configuration classes.
Special things:
- Some reorganization happened here. Certain subcommand names, such as
`endpoint` and `project`, are shared by identify v2 and v3. Previously
the hardcoded documents had them combined and interleaved. Attempting
to preserve this with autoprogram-cliff would have required
significant additional infrastructure. However, since most readers
care completely about one and not at all about the other, we instead
split the v2 and v3 versions of these commands into separate pages. In
case links to the old pages exist in the wild, they are preserved, but
moved (with redirects) to a hidden directory, and populated simply
with links to the new version-specific generated documents.
- The `federation domain` and `federation project` subcommands were
previously absent from the docs. They are added. These are such small
commands and they seem related, so they're put into a single document.
- Some pages were already being generated but were listing operations
individually instead of using wildcards (possibly because they were
created before wildcarding was supported by cliff). These are changed
to use wildcarding. (We want to do this wherever possible as it is
more future-proof in the event that more operations are added to a
subcommand later.)
- The `service provider` document was incorrectly titled `identity
provider`. Fixed.
Change-Id: I2030f9fe370038c5908b6eb6bed9692a73fe5067
We've depended on openstacksdk for config for ages now, clean up
after ourselves and stop installing it in tests.
Change-Id: I66b3ec2a36bc462d2f1ac151e95ccbdc946076b8
We should also use cliff from git in the tips jobs so that we can
see whether changes there break things.
Change-Id: Ie3375eb7bafafef7fa8209aa6500d1254e29954e
This commit includes documentation about OSC
implementation for Manila.
bp openstack-client-support
Change-Id: Ic91a81e16e506103c08ef42ed0f8634a2b70e1dd
Congress and python-congressclient have been retired and also
removed from global requirements, thus requirements-check job fails.
Remove congress from this repo.
Change-Id: Ibf68fee49e69264a1c46b2f456901d2620befe3c
assertItemsEqual was removed from Python's unittest.TestCase in
Python 3.3 [1][2]. We have been able to use them since then, because
testtools required unittest2, which still included it. With testtools
removing Python 2.7 support [3][4], we will lose support for
assertItemsEqual, so we should switch to use assertCountEqual.
[1] - https://bugs.python.org/issue17866
[2] - https://hg.python.org/cpython/rev/d9921cb6e3cd
[3] - testing-cabal/testtools#286
[4] - testing-cabal/testtools#277
Change-Id: I1ad0da8deda3a8cbec384b5a9c88860a526eb48c
When we use "--property" parameter, client get lists these the
value is string type, but the type of the value 'is_domain'
should be boolean, so we should judge it and parse it.
The patch parse string to boolean for value 'is_domain'.
Co-Authored-By: Lance Bragstad <lbragstad@gmail.com>
Change-Id: I37c9eb854524bde3a1530bfe2e3a03810fb1a676
Task: 30039
Story: 2005246
Switch to openstackdocstheme 2.2.1 and reno 3.1.0 versions. Using
these versions will allow especially:
* Linking from HTML to PDF document
* Allow parallel building of documents
* Fix some rendering problems
Update Sphinx version as well.
openstackdocstheme renames some variables, so follow the renames
before the next release removes them. A couple of variables are also
not needed anymore, remove them.
Set openstackdocs_auto_name to use 'project' as name.
Change pygments_style to 'native' since old theme version always used
'native' and the theme now respects the setting and using 'sphinx' can
lead to some strange rendering.
Depends-On: https://review.opendev.org/729744
Change-Id: Id3989cabdbf2204821531b00149aa0f1cb8a4955
The caller in openstackclient/object/v1/object.py passed a keyword
argument full_listing, but the eventual callee container_list()
expected all_data. So, --all did not work at all.
The issue passed undetected because --all did not have a test,
so we added a unit test.
In addition, exisiting tests were using a test set that did
not look like the real container listing, so we changed
LIST_CONTAINER_RESP to be realistic.
Change-Id: Id0604bcab25892e43c26cd6656b2b2eef5daa69b
The method "object_list" does not have an argument "object",
so we were using a built-in class "object" by mistake.
Change-Id: I74687659223d31d3c3c119eee5874edff30634fd
No idea how this happened, but reviews started failing the
pep8 gate job. The failures are legitimate, see the commit.
I guess the pep8 tests became smarter and found these issues.
Change-Id: Id9a0dad644134dafd68eed37fe8f41c583d7a619
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
Add file to the reno documentation build to show release notes for
stable/ussuri.
Use pbr instruction to increment the minor version number
automatically so that master versions are higher than the versions on
stable/ussuri.
Change-Id: Ia0c7a6f2d84a7ed08514a64a73a5de577fcfb1d0
Sem-Ver: feature
It's not a runtime dependency (and even oslo.i18n has dropped it).
The translation infrastructure installs Babel explicitly. See
this mailing list thread for a full reasoning:
http://lists.openstack.org/pipermail/openstack-discuss/2020-April/014227.html
Keeping Babel in lower-constraints since other projects still pull it.
Change-Id: Ib24d2941ac0f780f9092e48b17c343f8eb1d7151
The compute service allows us to to force set a quota, setting a
quota value that is less than the amount of the resource currently
consumed. Expose this feature by way of a '--force' boolean
parameter.
Change-Id: I1d1ac1ac46f49f64794ffc8631e166935537966c
This patch adds the --immutable and --no-immutable option to the
role, project and domain CLI.
Related-Patch: https://review.opendev.org/#/c/712182/
Change-Id: I9c3bdd741f28bf558267fb217818d947597ce13e
The original patch assumes that both --external and --is-default are set
in the same request and broke case when --is-default is set as an
network update. The validation logic have to be moved on API side to
avoid extra API calls from openstackclient.
This reverts commit 962efd949f.
Related-Bug: #1745658
Change-Id: Idf08abb0e08a6880f89c3e9df9dd2ac82f36c432
Now that we no longer support py27, we can use the standard library
unittest.mock module instead of the third party mock lib.
Change-Id: Ibd39328c27b68190e2edbf1f52fcea52db3ae791
Signed-off-by: Sean McGinnis <sean.mcginnis@gmail.com>
Add the `description` field to Floating IP Port Forwardings
Depends-On: https://review.opendev.org/#/c/705038/
Change-Id: I6477368e32570c96cacddba4f86455262e533277
Implements: blueprint portforwarding-description
Closes-Bug: #1850818
Add support for stateful attribute of security groups,
using --stateful and --no-stateful flag on security group.
This allows a user to create security groups with stateful
false.
Change-Id: Ifd20b5fc47fd0ea0bb5aeda84820dcc0fb1e8847
Blueprint: stateless-security-groups
Depends-On: https://review.opendev.org/711513/
OpenStack is dropping the py2.7 support in ussuri cycle.
Make a few cleanups:
- Remove python 2.7 stanza from setup.py
- Add python-requires to setup.cfg so that pypi and pip know
about support Python version
- Remove ancient sections from setup.cfg
- Remove version_info setting from conf.py, openstackdocstheme does this
automatically nowadays.
Change-Id: I5b9c159752c932f874015f20822862c70562c2bd
Add commands to osc to call the two new API methods introduced by
new Neutron extension: extraroute-atomic.
Bump our openstacksdk requirement to >=0.38.0 which contains
the corresponding sdk change.
The lower-constraints of dogpile.cache and keystoneauth1 are bumped
because of requirements bumps in openstacksdk.
The lower-constraint of decorator is bumped because of problem already
fixed by amotoki here: https://review.opendev.org/701706
Change-Id: Ia9b9c216f1d1161ebedac31594a2c464d77f4ae2
Depends-On: https://review.opendev.org/674324
Partial-Bug: #1826396 (rfe)
Related-Change: https://review.opendev.org/655680 (spec)
python-base has versions available now, defaulting to 3.7. Update
our config to 3.7 to be explicit about what we're using. This will
let us update the version as we feel like.
Change-Id: I40ffde91808a8bb95479697b9127dba16de8a8cd
The python-builder base image was updated to no longer install
recommends. This is inline with the other Infra images and keeps
image sizes smaller. gcc recommended libc6-dev - but it turns out
we need that for limits.h for one of our depends. Add it to fix
our image builds.
Change-Id: I97950d71bc455c269490812c6597fbe432641733
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
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
I'm guessing we should do this for everyone, but we have volume on
the brain right now. Rackspace is in the weird situation where
they do support v2 but only have v1 in the catalog (wut) So we
need to override the block-storage enpdoint by config. To do that,
we need to actually honor the config setting over here in OSC.
NOTE: We need to systemically overhaul how we're injesting config
over here - because there's too much variation. But we can leave
that for another day.
Story: 2007459
Task: 39137
Change-Id: Ifddf1ddd5abaa768ab18049c09d18bc269f3a4f5
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
This function should return an ordered set of ranges based on an
unordered list of numbers (int or str).
Change-Id: I918c8befc51236cc33d96a5c88fb6eafdd143e9c
Story: 2007341
Task: 38878
setuptools 46.0.0's drop of the Features feature broke
python-openstackclient's lower-constraints job on master
via the MarkupSafe package. Bump the lower constraint of
MarkupSafe to fix lower-constraints on master.
Change-Id: Ib0a6f94a6611b221efbf76f6f25b55c43782546f
We're failing on promote but not upload. That's weird. Make sure
the secret is appropriately encoded, and copy what zuul is doing.
Also make promote a zero-node job.
Change-Id: Ifcb5b4fe2486087a5ca1ff9609f7bf09ef026974
python-openstackclient currently has a non-zero number of dependencies,
so for admins who would like to run it on laptops or similar it can
get tricky. In opendev, for instance, admins have it installed into
a venv on a jump host, but it's really wonky to keep up with.
Use the opendev/python-builder opendev/python-base pair to make a
minimal image that contains an install of python-openstackclient
and publish it to the osclient org on dockerhub. There is an overall
policy against having binary artifacts such as this appear to be
official deliverables of the OpenStack project, which this is not.
It's also only publishing images based on master, so no warranties
should be implied. But if this makes life easier for a user somewhere,
cool.
Change-Id: I9a8bfc27c127e92b6856cb6a3e45b32c818db16c
In the os quota list command, project parameter is completely ignored
ending up in a request to all projects and then all quotas. This patch
enables back the parameter and does a single call to quotas if specified.
Change-Id: Ie17c256e2bdc307dcd94ad5be7abdbffa776d369
Story: 2007422
Task: 39043
This new query parameter will allow to send a query sending the
"fields" parameter. This "fields" parameter contains the needed
API fields, translated into OVO fields in Neutron server, that
require to be retrieved from the DB.
As commented in the related bug, the OSC "list" command only
prints five parameters, none of them the security group rules. In
systems with a reasonable amount of security groups, skipping the
unnecessary rule load can save a lot of time.
Depends-On: https://review.opendev.org/#/c/710820/
Change-Id: I16f48e292997d029d68f66365db949b9f4b5a0c8
Closes-Bug: #1865223
The ``--default`` option should be only used for external network.
Default internal network is not currently supported so we disallow
it for now.
Change-Id: Ia9d39b40e1e041d7bda0f6a27d058e382b572e1a
Closes-Bug: #1745658
We're missing one of these, which means starting from a bare node
it's not completely possible to install openstackclient based only
on bindep and pip. Add one that allows building and installing.
Change-Id: I7b297bb1485773df3d5d1cc3ba78b0b9af4b2d00
+ Add CLI option to specify swift storage policy
+ Add CLI flag to specify container uses public read ACLS
+ Show storage policy in container show data
Change-Id: I08ffa0d98bd39d467aa415771675f59bd77768ff
Added "qos_network_policy_id" to "port show" command. Because this is
just a read-only parameter and is read from the SDK port definition,
this patch only modifies the corresponding tests.
This patch is adding this new parameter to the test bench.
Change-Id: Ice7423e0e0b98a39cc36622b70eae5a8493a037c
Closes-Bug: #1851362
We stopped testing python2, but there are more things to be cleanup.
- Remove python2 entries from setup.cfg
- Add releasenotes
- remove universal wheel since this is only python 3 now
Change-Id: Ie2bbb4d34b8411939ad5cfd750fc76c933779542
Does what it says on the tin. This action was added to osc-lib in change
If73cab759fa09bddf1ff519923c5972c3b2052b1.
Change-Id: I51efaa096bb26e297d99634c5d9cca34c0919074
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
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
Since the OpenStackClient team doesn't meet anymore, I removed
the mention of meetings and added mention of the IRC channel in the
communication section of the docs..
Change-Id: Iefa95878f95bf84bd9fc22ea4c914effc30dffa7
This commit introduces the --access-rules option for 'application
credential create' as well as new 'access rule' commands for listing,
showing, and deleting access rules.
bp whitelist-extension-for-app-creds
Change-Id: I04834b2874ec2a70da456a380b5bef03a392effa
This patch updates the network modules to use the new
osc_lib.utils.tags module and removes the in tree _tag.py version.
A previous patch[1] moves the _tag.py code to osc-lib to allow other
projects to leverage the code.
[1] https://review.opendev.org/662859
Change-Id: Id0c34029e327de50c5fd2732bae5fbf45bbd16ee
Follow-up to https://review.opendev.org/#/c/679834/ which
added the options and lacked both a release note and
minimal option-handling unit tests.
Change-Id: Ibb2820add9b2fedaf5a8b1a77babf043f6641724
Signed-off-by: Dean Troyer <dtroyer@gmail.com>
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>
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
In case quota for the resource is set to zero "openstack quota show"
command will not map the resource name according to one of the
following dicts:
- COMPUTE_QUOTAS
- NOVA_NETWORK_QUOTAS
- VOLUME_QUOTAS
- NETWORK_QUOTAS
For example:
$ openstack quota set --secgroups 10 admin
$ openstack quota show admin -f json|egrep "(secgroups|security_groups)"
"secgroups": 10,
$ openstack quota set --secgroups 0 admin
$ openstack quota show admin -f json|egrep "(secgroups|security_groups)"
"security_groups": 0,
Change-Id: I94ed9e6b41b1cc692297c01e6c7582998dcacfda
This patch removes using the "name" option for a marker when
--deleted is also used. The find_resource() function
that is being called does not correctly handle using the marker
as the "name" in the search when also using deleted=True.
One simple way to fix this is force the marker to only be an ID
when --deleted is used. This is how the nova client works.
Using the --deleted option is available to users with the admin
role by default. If you're an admin listing --deleted servers
with a marker by name, find_resource() is going to fail to find
it since it doesn't apply the --deleted filter to find_resource().
The find_resource() function is trying to find the marker server
by name if it's not found by id, and to find it by name it's
listing servers with the given marker as the name, but not
applying the --deleted filter so it doesn't get back any results.
In the story it was suggested modifying find_resource to include
the deleted query param when it's specified on the command line but
that didn't work because it still results in something like this:
http://192.168.1.123/compute/v2.1/servers?deleted=True&name=4cecd49f-bc25-4a7e-826e-4aea6f9267d9
It seems like there are bugs in find_resource().
Restricting the marker to be the server ID when listing deleted servers
is probably OK since if you're using --deleted you're an admin and you could
be listing across all projects and if you're filtering by a server across all
projects anyway (not that you have to, I'm just saying if you are), or even
showing a server in another project, you have to do it by id rather than name
because find_resource() won't find the server in another project by name, only ID.
story: 2006761
Task: 37258
Change-Id: Ib878982b1d469212ca3483dcfaf407a8e1d2b417
The correct state name for a failing volume snapshot deletion is
'error_deleting' instead of 'error-deleting'. [1]
[1] 89d6a5042f/cinder/objects/fields.py (L126)
Task: #37844
Story: #2007037
Change-Id: Ia99900ece4f1cd29769b22ddaa3965789d719556
Remove python 2 from envlist parameter. Check the link:
https://etherpad.openstack.org/p/drop-python2-support
The plan is drop the python 2 support from OpenStack in Ussuri release.
Remove the zuul jobs.
Note that the (non-voting) openstackclient-check-plugins job is still
running under py2 at this time. That will need to be fixed in the
python/openstackclient repository where the job is defined.
Change-Id: I3148db053b9ef0fcf7dc88e5cc075d974c93d819
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
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
Until now-ish Volume v3 has been a pass-through to v2. In order
to prepare to make the Volume v3 commands stand-alone copy the
v2 functional tests to v3.
This is the first of a series of reviews to completely separate
Volume v2 and v3 commands. Once these are split we can begin to
implement v3 microversion support and/or start using the
OpenStack SDK as the REST library.
Change-Id: Iefd78d8ef6bb851d7360596337a88ee8f8476767
Signed-off-by: Dean Troyer <dtroyer@gmail.com>
While investigating the referenced story/bug I noticed that
wait_for_status in
openstackclient.tests.functional.compute.v2.test_aggregate.AggregateTests
was doing a lot more than it should ever need to (it probably got copied
in from somewhere). The two places calling it only need to a) check the
output of `openstack aggregate show`, and b) try once -- since they just
got done creating the aggregate synchronously, there should never be a
need to delay/retry. So this commit removes the helper method and just
inlines the check.
At the same time, the addCleanup(aggregate delete) directives are moved
above their respective creates. This is a defensive best practice which
makes sure cleanup happens even if something fails very soon after the
actual back-end create (as was in fact the case with the referenced
bug/story).
It is unknown whether this will impact the referenced bug.
Change-Id: I0d7432f13642fbccd5ca79da9c76adfcbabb5fa9
Story: 2006811
Related-Bug: #1851391
Use some regexes to reduce the number of lines in .htaccess and
hopefully make it slightly clearer which groupings of files redirect to
which new locations.
Also collapse one redundant double-redirect.
Change-Id: I65c4960856985d71076291f175df17f27a5ab8cc
Adds a dependency on and invocation of the `whereto` command to validate
redirects in the .htaccess file during doc builds.
Change-Id: Ib6cc2953f0fd774de3c3a0c8a2bd6cff49667c14
$namespace = openstack.compute.v2
The subcommand documents for $namespace were hardcoded and thus prone to
drift over time. This commit removes the hardcoded content and uses the
autoprogram-cliff directive to generate them automatically from the
subcommand configuration classes.
Many of these were already being generated. Some were missing a few
sub-subcommands, so those are added.
Change-Id: I1aa4b2655bafd2f6a5d83b658742f65d180eb128
$namespace = openstack.cli
The subcommand documents for $namespace were hardcoded and thus prone to
drift over time. This commit removes the hardcoded content and uses the
autoprogram-cliff directive to generate them automatically from the
subcommand configuration classes.
Change-Id: I1f7e9d0e5748f887dbc35200c3c8b4407da43e0b
$namespace = openstack.common
The subcommand documents for $namespace were hardcoded and thus prone to
drift over time. This commit removes the hardcoded content and uses the
autoprogram-cliff directive to generate them automatically from the
subcommand configuration classes.
This incorporates a correction to `openstack versions show`: The command
`openstack versions show --help` showed a copy/paste error, using
<region-name> for the metavar for both --service and --status. Fix.
Change-Id: I7658fed40d71f4c20ee27908ade433534657cfe5
Co-Authored-By: Pierre Prinetti <pierreprinetti@redhat.com>
Co-Authored-By: Matt Riedemann <mriedem.os@gmail.com>
The help page for network auto allocated topology had a link to a
newton-era networking guide document that has been superseded and is
now maintained in the neutron repository.
This commit adds 'neutron' to the openstackdocstheme configuration so
that the :neutron-doc: role works, and updates the link to point to the
modern version therein.
Change-Id: I5bcb40e265b22f15ff2f5ca4936160e231bb4075
$namespace = openstack.network.v2
The subcommand documents for $namespace were hardcoded and thus prone to
drift over time. This commit removes the hardcoded content and uses the
autoprogram-cliff directive to generate them automatically from the
subcommand configuration classes.
This one turned out to be quite involved, because we support both
neutron and nova-network. When running in a real cloud, the command
classes detect whether the neutron service is present, assume
nova-network if that service is not found, and only add parser options
relevant to the detected service. But the docs need to present both sets
of options. This was easy enough when they were hardcoded, but required
a bit of additional infrastructure for generated docs.
Change-Id: I426261eb1d86bcc68656aabd61f10b7f082da402
The command `openstack versions show --help` shows a copy-paste nit.
Change-Id: I9e4e86429ffd630c566bbdf2929e7995c9b0dbe1
Signed-off-by: Pierre Prinetti <pierreprinetti@redhat.com>
osc-lib's OpenStackShell.prepare_to_run_command has been a superset of
python-openstackclient's since at least osc-lib 1.4.0. We require 1.14.0
now, so the redundant override can be removed.
Change-Id: I5658e3df5af1100e139623505d0375588edae63c
python-novaclient 16.0.0 removed the deprecated
list_extensions module [1] so this changes the
extensions command to use openstacksdk to get the
compute API extensions.
The functional test ExtensionTests.test_extension_list_compute
ensures this works.
[1] https://review.opendev.org/686516/
Change-Id: I9894bc395c0474aaa6494ac4534862efe4ea7984
Story: #2006769
Task: #37284
Fix various things so the functional tests will work under python3:
- A hashlib.md5() can only be update()d with an encoded string in py3.
- There's no dict.iteritems(), change to dict.items() (which is already
an iterator).
- Open temp files with 'w+' mode rather than the default 'w+b' (as an
alternative to encoding all the write and expected-read payloads as
bytes).
- (This is a weird one) Explicitly raise SkipTest from unittest (rather
than unittest2, which is where cls.skipException landed). Not sure why
this is busted, but this moves the ball.
Change-Id: Ic9b2b47848a600e87a3674289ae7ae8c3e091fee
Sphinx errors have been fixed in the plugin projects for octavia, rsd,
trove, watcher, and zun, so we can now use autoprogram-cliff to generate
the docs for those.
Change-Id: Ia7790c5e86957afd0aec8f9a04ffc7aa968b4eeb
Story: #1735016
Task: #37241
A few docs still referred to launchpad, which osc hasn't used in a
couple of years. Cut over to storyboard.
Change-Id: Ic9abf0fe1e52c255976bd7a019e999a8e610455e
We would like to use autoprogram-cliff to generate full docs inline for
each plugin. But for the following projects, that breaks the build:
- octavia
- rsd
- trove
- watcher
- zun
For those projects, we're using list-plugins instead, because that
builds, and it's better than nothing; but it only provides summaries of
the commands.
So with this commit, we add a link to the plugin documentation from the
actual plugin project where such documentation exists, which currently
is just:
- octavia
- watcher
- zun
(For rsd, I couldn't find openstack-published docs at all; for trove,
published docs exist, but the osc plugin isn't documented.)
Change-Id: I7c826ecef4319bead239e11b5f975302b2f24d1b
Story: #1735016
Task: #37244
This was being omitted because whenever the plugin page was produced,
python-watcherclient wasn't in global-requirements. It is now, so
include a page for it in the plugin docs.
NOTE: We would like to use autoprogram-cliff to make the documentation
complete, but that breaks the build. For now, this is better than
nothing.
Change-Id: I49822242b9a0c031a053d6c2fd9f644a585f4ba5
Plugin documentation previously used ``.. list-plugins::`` for each
plugin command, which just produced the summary line. This might be
useful if there were also a link to the complete (per-project) docs for
the commands; but since we have the content available, we might as well
produce the complete plugin docs inline. That's going to be most useful
to a reader anyway.
So this commit switches from ``list-plugins`` to ``autoprogram-cliff``
-- except for the following, whose docs break the build when this is
done:
- octavia
- rsd
- trove
- zun
These fixups are tracked under task #37241 under this same story.
Change-Id: I2f17e203fe3da92a709884c9052c8e39ff87f4c8
Story: #1735016
Task: #37240
Once [1] fixed plugin doc generation, the (single) page it produced was
unusably huge. This commit splits it into one page per project.
Note that there are four plugin projects that didn't have sections
included:
- cue
- murano
- tripleo
- watcher
These were noted in hidden rst which is preserved in the (new) index
page.
[1] Id9be39971110fd2eb4519a0582c9bf2514cdcacd
Change-Id: I0214ddb00a5a292a46d7cfb539d6dcc540fdae79
Story: #1735016
Task: #37239
Plugin projects were listed in test-requirements.txt ostensibly to pull
them in for autodoc building. However, test-requirements.txt wasn't
being used for that purpose -- doc/requirements.txt was, so [1] added
them there. So this commit removes them from test-requirements.txt where
they're unused.
[1] Id9be39971110fd2eb4519a0582c9bf2514cdcacd
Change-Id: Ia89888ee05e17da636ee46894232624e0178d6bc
Add the osc-placement project (osc plugin for the placement service) to
the list of known plugins.
Change-Id: I77b614b38ecf872d0d93473b834994913930b76f
Documentation for plugins wasn't being generated because the plugin
projects weren't being installed in the docs environment. Add them to
doc/requirements.txt to make this work.
Change-Id: Id9be39971110fd2eb4519a0582c9bf2514cdcacd
Story: #1735016
Task: #13825
Add file to the reno documentation build to show release notes for
stable/train.
Use pbr instruction to increment the minor version number
automatically so that master versions are higher than the versions on
stable/train.
Change-Id: I2cab236b14bc5eac173d815a634c8d8eb2afee04
Sem-Ver: feature
The patch https://review.opendev.org/#/c/673389/
introduced a regression by changing the osc-lib
interface.
The patch
https://review.opendev.org/683119
changes the exception from the generic CommandError
back to a specific Forbidden exception.
This patch catches this exception and passes on, i.e.
re-implements the same behavior as before.
Story: 2006547
Change-Id: I17b1ec7abaa5b0828ccbcad40bd928565c5c59fb
Signed-off-by: Andreas Florath <Andreas.Florath@telekom.de>
AggregateTests.wait_for_status() was a classmethod, those often
are sources of conflict in parallel testing...
Change-Id: I6211fd9c36926ca97de51a11923933d4d9d2dfda
Signed-off-by: Dean Troyer <dtroyer@gmail.com>
While cold migration and resize are essentially the same operation under
the hood, meaning one could use the 'openstack server resize confirm'
and 'openstack server resize revert' commands instead, there is no
reason the operator needs to know this. Add these flags as syntactic
sugar to help simplify operators lives.
The help texts for both the 'openstack server resize' and 'openstack
server migrate' commands are updated to clarify the relationship between
the two operations.
Change-Id: I0cb6304c794bffaec785add9f7b8cf53ab28cacd
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
This switches the default Cinder API version to v3 to prepare for v2
going away.
Change-Id: Icca1512b715409e3001c0fd2d1ea663d5e71ec02
Signed-off-by: Sean McGinnis <sean.mcginnis@gmail.com>
* Remove unnecessary code in OpenStackShell.initialize_app() - only
the bits it instantiate our subclass of ClientManager remain
* Remove OSC_Config - with https://review.opendev.org/#/c/678095/
the last remaining required bit moves to osc-lib
Thos requires osc-lib 1.14.0
Change-Id: Ia4b3c737de9dc34949e74632441621014ef9eea9
Signed-off-by: Dean Troyer <dtroyer@gmail.com>
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
This patch introduces a new option --parent into project list,
to specify a parent project to filter projects which has
the given project as their parent.
Depends-on: https://review.opendev.org/#/c/677101
Change-Id: I6725262cf040e0ec6ceca9cf0462ce59224049c6
Multiple subnets with the same name are occasionally created when
running tests in parallel.
Change-Id: Ifb85e39ee53b529e2b97abf782c7fba93d48e9e2
Signed-off-by: Dean Troyer <dtroyer@gmail.com>
This is required for osc4 and the movement of functions out of OSC.
Change-Id: I690954b6dccb11dd1a4f512b6777d645de5191f9
Signed-off-by: Dean Troyer <dtroyer@gmail.com>
These return a Munch from the SDK, which can be handled exactly
like a dict so do that.
Note that the location column has a nested project dict in the
return value, this is addressed separately in osc_lib.format_columns
in https://review.opendev.org/#/c/679474/.
Change-Id: I99a6d192749a4ac76777f72be8118261c0521cb0
Signed-off-by: Dean Troyer <dtroyer@gmail.com>
Add following commands:
floating ip port forwarding create
floating ip port forwarding delete
floating ip port forwarding list
floating ip port forwarding set
floating ip port forwarding show
Closes-Bug: #1811352
Change-Id: I6a5642e8acce28fc830410d4fa3180597b862761
Pick up newer versions of this library. Thankfully no serious changes
are needed.
Change-Id: I69e523844529fc1c8aa0c1ce764182dbe29cfeb6
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
The token_endpoint was a compatibility auth type to maintain support
for the --url global option that dated back to the beginning of
OpenStack CLI auth. The common keystoneauth library implements
'admin_token' which provides the same functionality using
--endpoint rather than --url.
Change-Id: I1b9fbb96e447889a41b705324725a2ffc8ecfd9f
Signed-off-by: Dean Troyer <dtroyer@gmail.com>
Rename metadata to property in all aggregate commands
Beef up functional tests to reduce street racing
Change-Id: I4598da73b85a954f3e6a3981db21891b45d9548c
Signed-off-by: Dean Troyer <dtroyer@gmail.com>
Add these tests before hacking on the global args and removing
the compatibility stuff so we can clearly see what actually changes.
Change-Id: Ic86c89da1475b4914ff7cb2396199cd219a12097
Signed-off-by: Dean Troyer <dtroyer@gmail.com>
Change the functional test TestCase.openstack() method to add a
way to not include the --os-auth-type option in order to test the
default auth-type logic.
Change-Id: I0f1ca2f7517a41278afaad5aaf4e98accb16bea2
Signed-off-by: Dean Troyer <dtroyer@gmail.com>
With compute API microversion 2.53, nova-compute services
can only be deleted with the ID as a UUID to uniquely identify
the service in a multi-cell deployment. This documents that for
the "compute service delete <service>" argument. The description
of the "compute service list" command is also updated to mention
that the ID can be retrieved as a UUID using 2.53 or greater.
Change-Id: If7d4a27c0aaef588bcd77dd9edddec1e535fbf31
Story: 2005349
Task: 30302
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
The <id> portion of a --block-device-mapping value can be
the resource name or id since the code uses the appropriate
type-specific find_resource utility to lookup the resource
based on the value given.
This change simply fixes the description of <id> to mention
it's name or id rather than just "UUID". My guess is the
description was originally copied from novaclient where id
must be an id since name resolution does not happen in novaclient.
Change-Id: I567f6f6efb3a3b6d387133d21aa81354b2d753bc
The --block-device-mapping option on the server create
command currently only supports booting from volume and
volume snapshot. A common boot-from-volume scenario is
providing an image and letting nova orchestrate the
creation of the image-backed volume and attaching it to
the server.
This adds support for type=image in the --block-device-mapping
option. The volume size is required in this case. Note that
the CLI currently says if type=snapshot that size is also required
but that's technically not true. When booting from a volume
snapshot, the compute API will use the size of the volume snapshot
to create the volume if an explicit size is not provided. For the
purposes of this patch, we need the size anyway for the image
being the block device mapping source type.
Change-Id: I57b3c261d8309f7b9f62a3e91612bce592a887a3
Story: 2006302
Task: 36016
With compute API microversion 2.53 there is a single
PUT /os-services/{service_id} API which takes the service
id as a UUID. Since the openstack compute service set
command only takes --host and --service (binary) to identify
the service, this change checks if 2.53 or greater is being
used and if so, looks up the service by host and binary and
calls the appropriate methods in novaclient.
If the command cannot uniquely identify a compute service
with the given host and binary, an error is raised. A future
change could add an --id option to be used with 2.53+ to
pass the service id (as UUID) directly to avoid the host/binary
filtering.
Change-Id: I868e0868e8eb17e7e34eef3d2d58dceedd29c2b0
Story: 2005349
Task: 30302
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>
The configuration show should not require auth to just display the
OSC config object. Changes to make it not require auth have
knock-on effects of needing to change a bunch of tests that use it
assuming it _does_ require auth so change those to use 'extension list'
instead.
This sets up further testing of the command line options for changes
in behaviour when we switch to straight SDK usage for configuration.
Change-Id: I6c52485341214ba401064c0f2d1e2b95fdc225c0
Signed-off-by: Dean Troyer <dtroyer@gmail.com>
https://review.opendev.org/#/c/612751/ renamed volume.v2.backup
to volume.v2.volume_backup. volume.v3 backup commands refer
volume.v2.backup but they were not updated.
This causes "volume backup xxx" commands
when OS_VOLUME_API_VERSION=3 is specified.
Change-Id: Ib897dd483a7963763016ee3f1e8e1c3cc81d0bb0
Story:o 2006284
Task: 35990
neutron create-port API has extra_dhcp_opts parameter, this parameter
can set port with special extra dhcp options.
Change-Id: I199f17e95c509a33f809ac85c65f685a37acd198
This simply updates the docs for the compute service set --up
and --down options to mention that --os-compute-api-version 2.11
or greater is required to use those options.
Change-Id: I52891fe36c84d0df3e868ab4f3c8e2357e9ba529
The api documentation is now published on docs.openstack.org instead
of developer.openstack.org. Update all links that are changed to the
new location.
Note that redirects will be set up as well but let's point now to the
new location.
For details, see:
http://lists.openstack.org/pipermail/openstack-discuss/2019-July/007828.html
Change-Id: I1572a21632740b4d9a233a6a31c49e3bac5394ef
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
When adding a security group rule, if no IP address is given
we will use '0.0.0.0/0', but if the ethertype is IPv6 we will
leave it as None. Change this to be '::/0' to match what we
do for IPv4 - use the "any" address. The neutron server
treats them both the same when checking for duplicates.
Because there are most likely entries in the DB using None
for the IP, print them as '0.0.0.0/0' or '::/0' so it is more
obvious what address they are actually referring to.
Also change to display the Ethertype column by default
instead of with --long, since easily knowing IPv4 or IPv6
is useful.
Change-Id: Ic396fc23caa66b6b0034c5d30b27c6ed499de5a6
Closes-bug: #1735575
The compute service commands emit a "Binary" in the output but
the --service filter option isn't as clear that it's the binary
(for set it is but not list) nor do the docs give an example
of a binary (typically nova-compute but could be others like
nova-conductor, nova-scheduler, etc). This simply mentions that
the --service option is the binary for "compute service list"
and gives an example value for the option in both list and set
help.
Change-Id: If87fc37352c3a251cc89041723adbe04dedf4f8a
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
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
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
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
The compute API 2.20 microversion allows attaching and detaching
a volume to/from a server with status SHELVED or SHELVED_OFFLOADED.
For OSC this just means the user has to specify the appropriate
minimum microversion to make that work, so this change mentions
that in the "server add volume" and "server remove volume" command
description.
Related to nova blueprint volume-ops-when-shelved
Change-Id: I4824175e5d9e124e3bd9e9a8fd5a89277efc6cff
The 2.21 compute API microversion allows listing instance
action events and getting action event details for a deleted
server (which can be useful for auditing until the deleted
server is purged). As far as OSC is concerned it's just a
matter of specifying --os-compute-api-version 2.21 or higher
when listing events or showing event details, so this change
mentions 2.21 in the description of those commands.
Related to nova blueprint os-instance-actions-read-deleted-instances
Change-Id: If276c794f448b6fa5b0845499f3507a159acab85
Per the discussion at the Train Forum [1] this deprecates
the problematic --live option on the server migrate command
which, depending on the compute API version used, forcefully
bypasses the scheduler and also does not allow you to live
migrate a server and let the scheduler pick a host.
The --live option is replaced here with two new options:
* --live-migration: this simply tells the command you want to
perform a live rather than cold migration; if specified with
--live the --live-migration option takes priority.
* --host: when specified, this will request a target host for
the live migration and will be validated by the scheduler;
if not specified, the scheduler will pick a host. This option
is mutually exclusive with --live.
We can build on the --host option by supporting cold migrations
with a specified host when using compute API version 2.56 or
greater but that will come in a separate change.
If the --live option is ever used we log a warning.
Note there are several related changes for this issue:
- https://review.openstack.org/#/c/628334/
- https://review.openstack.org/#/c/626949/
- https://review.openstack.org/#/c/627801/
- https://review.openstack.org/#/c/589012/
- https://review.openstack.org/#/c/460059/
This change allows us to deprecate the --live option and provide
a replacement which is backward compatible without having to use
something potentially error-prone like nargs='?'.
Closes-Bug: #1411190
[1] https://etherpad.openstack.org/p/DEN-osc-compute-api-gaps
Change-Id: I95d3d588e4abeb6848bdccf6915f7b5da40b5d4f
The following were deprecated over two years ago and can now be removed:
* Remove ``backup`` commands in favor of ``volume backup``
* Remove ``snapshot`` commands in favor of ``volume snapshot``
* Remove ``volume create`` options ``--project``, ``--user`` and ``--multi-attach``
* Use of an auth-key positional argument in volume transfers
* ``volume transfer request`` no longer accepts 'auth_key' as a positional arg,
``--auth-key`` is now required
Internal (non-user-visible)
* Rename backup.py to volume_backup.py for Volume v1 and v2, update tests
These are backwards incompatible changes and will require a major
version bump after they are merged.
Change-Id: I94aa7a9824e44f9585ffb45e5e7637b9588539b4
Signed-off-by: Sean McGinnis <sean.mcginnis@gmail.com>
Signed-off-by: Dean Troyer <dtroyer@gmail.com>
The following were deprecated for several releases and can now be
removed:
* Remove ``port create|set`` options ``--device-id`` and ``--port-id``
* Remove ``router set`` option ``--clear-routes``
* Remove ``security group rule create`` options ``--src-group`` and ``--src-ip``
These are backwards incompatible changes and will require a major
version bump after they are merged.
Change-Id: Ieae74c14f6b3e263721a3146cf76f94a9ab792f6
Signed-off-by: Sean McGinnis <sean.mcginnis@gmail.com>
Signed-off-by: Dean Troyer <dtroyer@gmail.com>
The following were deprecated over two years ago and can now be
removed/changed:
* Remove ``service create`` option ``--type``
* Remove ``role list`` options ``--project`` and ``--user``
* Remove ``user role list`` command
These are backwards incompatible changes and will require a major
version bump after they are merged.
Change-Id: I29e2fc9516dffbfd83eef0bc91e834dde99b4105
Signed-off-by: Sean McGinnis <sean.mcginnis@gmail.com>
Signed-off-by: Dean Troyer <dtroyer@gmail.com>
The following were deprecated over two years ago and can now be removed:
* ``ip fixed add|remove`` in favor of ``server add|remove fixed ip``
* ``ip floating add|remove`` in favor of ``server add|remove floating ip``
These are backwards incompatible changes and will require a major
version bump after they are merged.
Change-Id: I10c4d32a3c0b55ad41a02afd3b14249bafcb55a9
Signed-off-by: Sean McGinnis <sean.mcginnis@gmail.com>
Signed-off-by: Dean Troyer <dtroyer@gmail.com>
These tests are showing signs of problems running in parallel
so serialse the create/delete/list/set/unset tests. They all
used two aggregates each anyway...
Change-Id: Iba4b52c179e6914eaeefea1da0f7eaefcdcf1f87
Signed-off-by: Dean Troyer <dtroyer@gmail.com>
This patch adds functionality to configure server's description with:
1 server create
2 server set
3 server unset
4 server rebuild
Change-Id: Ic06d97b29e51828b29d7ac5172645c288e4ada9e
Story: 2002005
Task: 19640
This seems to still be racy, lengthen the timeout to wait for
agregate creation.
Change-Id: I3601c5baee03745ae21714b9dff0e278ad016877
Signed-off-by: Dean Troyer <dtroyer@gmail.com>
There are many references to review.openstack.org, and while the
redirect should work, we can also go ahead and fix them.
Change-Id: I82e3797dd4c05e4944f40c950b4fafe9a5334cbf
test_shell.CLOUD_2 is using an absolute path for a temp
file, so leaves /tmp/test_log_file around after the unit
tests are run. Use a fixture instead so it's cleaned
automatically, which also removes the possibility of two
tests using the same file and interfering with each other.
Change-Id: If722b860be4010b91635c6d46f634da980e17152
Use cliff formattable columns not to convert complex fields
into a string when a machine readable format like JSON or YAML
is requested.
Partial-Bug: #1687955
Partially implement blueprint osc-formattable-columns
Change-Id: I9878f327e39f56852cc0fb6e4eee9105b7141da9
There is a typo in the endpoint group deletion, due to this you
can't remove endpoint groups once assigned. I am adding also the
unit tests to avoid this kind of issues in the future
Task: 30640
Story: 2005521
Change-Id: Ie938f2c9894bb39b4c0ed1f7aa3a6a751a303058
The default protocol used to create a security rule was changed to
``tcp``, which was a regression from the neutron client. Change it
back to ``any``, which skips sending the protocol to the API
server entirely when using the Neutron v2 API.
Users that had been creating rules without specifying a protocol
and expecting ``tcp`` need to change to use ``--protocol tcp``
explicitly.
Change-Id: Iedaa027240e00dced551513d8fa828564386b79f
Closes-bug: #1716789
There is no indication to the user in the command
help that they have to use 2.17 or greater [1] to run
the "openstack server dump create" command. This
mentions that requirement in the help of the command.
[1] https://developer.openstack.org/api-ref/compute/#trigger-crash-dump-in-server
Change-Id: I02c06e10a26eb38ddecb70f970cfcbfad962201c
This fixes the docs bug link generation for the normal docs
and release notes docs.
The requirement on openstackdocstheme is bumped to 1.23.2 to
pick up fix I2ed164b9b0badade702c50543ac1a5eea4d1867b.
Change-Id: I89711a391ee0fb7e40c1fbf83f950e2b582358d9
Story: #2005467
Task: #30546
We seem to be having occasional overlaps in the ranges, as they were
identical in all tests, change each test to not overlap the others
so running in parallel is not racy.
Change-Id: I7ea467a3aa2e4a4b4a334c10ea6ba21409c46af0
Signed-off-by: Dean Troyer <dtroyer@gmail.com>
Currently, this only allows 'IPv4' or 'IPv6', but one can imagine a user
frequently typing e.g. 'ipv6' and getting frustrated. Allow any case,
while still keeping correct case for the choices and the value sent to
Neutron.
Change-Id: I70ce1f43d32aad01b174437d03c984a5b608b161
Add file to the reno documentation build to show release notes for
stable/stein.
Use pbr instruction to increment the minor version number
automatically so that master versions are higher than the versions on
stable/stein.
Change-Id: I3edfae7c1c5f8268186455efc7add28dc38810fb
Sem-Ver: feature
When neither of "--shared" and "--private" is input, we should not allow
to specify "--project". Defaulting the created network segment range to
shared is expected. Therefore, "project_id" attr should only be
populated on a private range creation.
Change-Id: Iab345e1651dd8b7904ff64a20633f194d719bb84
Story: 2005206
Task: 29980
If a required service is not enabled then we skip the test.
The discovery is done by tests/functional/base.py:is_service_enabled
but this method is broken, credentials are not passed to the
'openstack service show' command so every call will fail and every test
that relies on it will be skipped. This commit fixed that method and
the issues that popped up when re-enabling tests.
Network segment range:
- issue where we assumed network-segment-range extension is always
present
- issue where we compare integers and string representations of numbers
Subnet:
- issue where we try to deepcopy an uncopyable object in UnsetSubnet
Change-Id: Id3cc907c1ed2a25b49cf6f4a7233e0401a02383a
Story: 2005169
Task: 29908
"project_id" attribute should not be set to None on shared network
segment range creation since it is not a valid string type which is
required for the API.
Change-Id: Ia2bab12e39b4bb7e05ff2acfffb851252c100651
Story: 2005205
Task: 29975
There is a bug in the compute API until microversion 2.50
where the server-groups and server-group-members class
quota fields aren't returned. This just mentions that
microversion in the command help text.
Change-Id: I029a614a922d642c578618c478c4d0a29a394fc2
Task: 21490
Story: 2002194
Add network segment range command object in support of network segment
range management.
This patch set includes documentation, unit tests and functional tests
(currently skipped unit network segment range enabled in Neutron by
default) for the following new commands:
- "os network segment range create"
- "os network segment range delete"
- "os network segment range list"
- "os network segment range set"
- "os network segment range show"
Co-authored-by: Allain Legacy <Allain.legacy@windriver.com>
[depends on removed by dtroyer as those are all +W and
trying to pass the gate, OSC has it's freeze dealine looming]
Depends: https://review.openstack.org/624708
Depends: https://review.openstack.org/624709
Depends: https://review.openstack.org/638386
Partially-implements: blueprint network-segment-range-management
Change-Id: I335692f2db5be07c1c164f09b13f1abb80b7ba33
This patch explicitly points out the change needed while
forming the detailed lists for servers. In those cases
where the server response for ``openstack server list``
has the flavor and image keys missing for the instances
in the down cell, the servers will be skipped from being
processed.
Depends-On: https://review.openstack.org/591657/
Related to blueprint handling-down-cell
Change-Id: Ibcfe9febdc45db1cb86c6e88f65976feceb01c02
since nova api 2.40 the os-simple-tenant-usage API supports pagination
and will by default return a number of entities configured internally in
Nova.
This means that when there are many enough projects,
the single call to usage.list() will not return usages for all projects.
This patch effectively copy-pastes the logic to paginate over usage list
results from novaclient/v2/shell.py code.
Change-Id: I1b639fe386b7b7db3223f6965495094b9d51533a
Story: #2005099
Task: #29713
As to reflect cinder reset-state --attach-status functionality,
this patch adds --attached / --detached parameter to OSC's volume set
command.
Change-Id: Ic8ee928c9ab0e579512cfb7608f63bfcc2993c7b
Closes-Bug: #1745699
VolumeBackupsRetore object has '_info' attribute
which contains the output data of the restore
command which should be returned instead of the
'VolumeBackupsRestore' object.
Change-Id: I64b75649c1ac9c24e05a197f7280975564b4d386
Story: 2004740
Task: 28811
Since swift isn't compatible with py3 currently and disabled for
this gate job, c-backup service will always fail configuring.
The backup related tests can be handled by other jobs having swift
enabled.
The c-backup service can be enabled along with swift services once
swift is compatible with py3.
This patch disables the the c-backup service for osc-functional-devstack-tips
gate job.
Change-Id: Ifd3a4e1a15f1365107a2a1367513e2ef79bd13cc
In order to see image sharing membership it is required to additionally
pass member_status filter to API. Otherwise only those with status 'all'
will be returned. Thus adding possibility to see images shared with
project to be approved or rejected.
Change-Id: Ifd6e13e5a4ef09fbc29e76d464c93fbdbb178ae4
With passing "--detail" argument to "openstack quota list", details
about current usage should be returned.
It is currently supported by Nova and Neutron so details of
resources from those projects can be returned.
Change-Id: I48fda15b34283bb7c66ea18ed28262f48b9229fe
Related-Bug: #1716043
Only with the admin role you can use the project name with
'image add project'. With the normal member role you have to use the
project id instead. If you try to use the name, you don't receive an
error, but it won't work.
Change-Id: I61d402b39558320502dc08905b8c3a146e5e740a
Task: 29543
Story: 2002535
Only with the admin role you can use the project name with
'image add project'. With the normal member role you have to
use the project id instead. If you try to use the name, you
don't receive an error, but it won't work.
Change-Id: I2d11c07a256917d12c46a7c302c5a5e8752a1df0
Task: 29543
Story: 2002535
Most network commands use str() on name argument, which fails on python
2 with Unicode characters. This comes from parsed arguments so does not
actually need this call.
Sample command failing with current code:
openstack network create test_unicode™
Change-Id: Ie10b67864c912ee5c33e90b10c3d9705ee8307e7
Story: 2004356
Task: 27955
While running `tox` command in binoic env, we see the following
message,
ERROR: InterpreterNotFound: python3.5
It is because the default py3 version for binoic is py36.
This patch adds the env in OSC also maintaining consistency
with setup.cfg
Change-Id: I8e5cf72901cba34ad44f2b356609f85b3b0c431f
test_snapshot_delete within test_snapshot.py found in both volume v1 and
v2 of python-openstackclient.
Story: 2004977
Change-Id: Iae29ba7992dcf8596f4fb4333d8bcf1889ecd7e6
Using addCleanup() for removing the pending volume transfer request
has no way to wait for the volume status to become available before
cleaning up the volume and gets racy when the tests are run with
slow performance in the volume backend. So we pause at the end of
the test after either accepting the transfer request or explicitly
deleting it so the cleanup can delete the volume.
Change-Id: I04862069cab28bc76eeafd60ba32be646f478d86
Signed-off-by: Dean Troyer <dtroyer@gmail.com>
Client site fix of --limit option.
This bugfix makes client "image list" command working again with
"--limit" option. This option was ignored and even if user specified it,
still list of all available images was returned.
Story: 2004314
Change-Id: I30a78d65a644c9b7d23706a6637ce77bca2c2386
Depends-On: https://review.openstack.org/#/c/634776/
Add a parameter ``--floating-ip-address`` to ``floating ip list``
because it's supported by the API and also more efficient than the
current ``floating ip show``. This also works as a work-around for
pagination issues ``floating ip show`` might run into with an IP
parameter.
Change-Id: I113e3fa2495e1e86bb553c55c44f71a3f9f49d23
In order to support switching auth contexts, such as for registered_limits
which take a system scoped token, switch the functional tests to using
the --os-cloud command line parameter. However, honor the OS_CLOUD env var
as a way that someone can select a different cloud, including 'envvars',
to use.
Use devstack-system-admin cloud for limit tests
Keystone requires these to have system scope now.
Change-Id: Ia81eebd3e00ae986cf3ba7e3d98f3e8a1647b622
The osc-functional-devstack job is to be run against devstack changes in
order to verify that the devstack-tox-functional job, which our job is
based upon, doesn't introduce a regression[0]. In order to prevent this
from failing, include our own repo as required-project.
[0] https://review.openstack.org/526115
Change-Id: I782cd51dda1477c2e3a067cd902a3d3f29490083
Remove the use of class setup/teardown from volume transfer functional tests
as that just doesn't work too well here. Also wait for volume status before
attempting transfer request operations, some test nodes take a while to
create the volumes.
Change-Id: Ib9378ab5c973deb2aa86c9b9ed31408f3a05115a
Signed-off-by: Dean Troyer <dtroyer@gmail.com>
We extracted some of our functional base job to the devstack repo.
Consume it.
Change-Id: I11e6f9dab935e4b2cd16228f031f7e0adb3a6c89
Depends-On: I84de60181cb88574e341ff83cd4857cce241f2dd
In some cases, If the result of expr is a boolen value, we shoud
use assertTrue/assertFalse to instead. Because it is clear and simple.
Change-Id: I53b345fc3915a7b0e737e9dd4d58fe09c746d61c
This adds commands to import and export volume backup records so they
can be imported and restored on other Cinder instances or to the
original instance if the service or database has been lost and had to be
rebuilt.
I know this is a commonly used process by some users, so it would be
good to have this functionality in osc so they do not have to switch
clients.
More details about the export and import process can be found here:
https://docs.openstack.org/cinder/latest/admin/blockstorage-volume-backups-export-import.html
Change-Id: Ic95f87b36a416a2b50cb2193fd5759ab59336975
Signed-off-by: Sean McGinnis <sean.mcginnis@gmail.com>
Regsitered limit set CLI takes --service, --region and
--resource-name as param which can be updated along with
--default limit for existing registered limit.
Default limit can be updated with same value and CLI
return the success. But --service, --region and --resource-
name cannot be same as existing one. CLI return 409
for this case. Which is valid behaviour because more than
one limit with same service and same resource cannot exist.
But help message of --service, --region and --resource-name
are not much clear to tell that they cannot be passed with
same value.
This patch clarifies the help message for resigtered limit set CLI.
Reference Scenario:
* openstack registered limit set --default-limit 91 64c2e97fbe904b888544ffdcab21989b
limit updated sucessfully
Updating limit with exsiting service and resource-name:
* openstack registered limit set --default-limit 92 --resource-name snapshot 64c2e97fbe904b888544ffdcab21989b
Conflict occurred attempting to store registered_limit - Duplicate entry. (HTTP 409)
*openstack registered limit set --default-limit 93 --service compute 64c2e97fbe904b888544ffdcab21989b
Conflict occurred attempting to store registered_limit - Duplicate entry. (HTTP 409)
*openstack registered limit set --default-limit 91 --resource-name snapshot --service glance 64c2e97fbe904b888544ffdcab21989b
Conflict occurred attempting to store registered_limit - Duplicate entry. (HTTP 409)
Change-Id: I9e78a6250567cd981adde96946818bb016760a49
When user passes --region None, the find_resource
of osc_lib calls get() of region. The get API of
region ignores the name param returning all the
regions in result. As the find_resource checks
many cases against the result returned by get API.
The output comes greater than 1, thus returning
"More than one region ID exist" which is incorrect.
However in case of region which cannot be filtered
by name we do not require to check these many cases.
The solution is to directly call the get method of
APIs and returning No resource name exist with the
xyz" on passing invaid parameter. And returning all
in case of None.
Thus created a new function get_resource which can
be used in future too by these types of API's.
Change-Id: Ib3f881d34a82af97199ce51bfbefc6f3f08599f1
Closes-bug: #1799153
when doing openstack limit list --project xyz_id,
CLI raising error unrecognized arguments, whereas
in api-ref document [1], user can pass project_id
as query param.This addresses the above issue, by
adding param --project in parser of LimitList.
[1] https://developer.openstack.org/api-ref/identity/v3/index.html
Change-Id: If4644cc99a3803f61f4a688b828aeb73977fc0dd
Closes-Bug: #1798744
AddFloatingIP refers to an old nova proxy API to neutron that was
deprecated in nova. The neutron API for floating IP associate requires
a port to be specified. Currently, the code is selecting the first port
if the server has multiple ports. But, an attempt to associate the
first port with a floating IP can fail if the first port is not on a
network that is attached to an external gateway.
In order to make the command work better for users who have a server
with multiple ports, we can:
1. Select the port corresponding to the fixed_ip_address, if one was
specified
2. Try to associate the floating IP with each port until one of the
attempts succeeds, else re-raise the last exception.
(404 ExternalGatewayForFloatingIPNotFound from neutron)
This also fixes incorrect FakeFloatingIP attributes that were being set
in the TestServerAddFloatingIPNetwork unit tests, which were causing
the tests to use None as parsed args for ip-address and
--fixed-ip-address and thus bypassing code in the
'if parsed_args.fixed_ip_address:' block.
Task: 27800
Story: 2004263
Change-Id: I11fbcebf6b00f12a030b000c84dcf1d6b5e86250
usually in a big cloud there are many images and flavors,
while each given project might use only some of those.
This patch introduces '--name-lookup-one-by-one' argument to
server list command (mutually exclusive with '--no-name-lookup')
When provided (or either '--image' or '--flavor' is specified) to the
`server list` command, name resolving for
corresponding entity is now using targeted GET commands instead of
full entities list.
In some situations this can significantly speedup the execution of the
`server list` command by reducing the number of API requests performed.
Change-Id: I59cbf3f75c55e5d3747654edcc9be86ad954cf40
Story: #2002039
Task: #19682
There is an optional flag that can be passed in to a
volume migration to tell Cinder to 'lock' a volume so
no other process can abort the migration. This is
reflected correctly with the --lock-volume argument
flag to `openstack volume migrate`, but there is
another --unlock-volume flag that is shown in the help
text for this command that does not do anything and is
not used anywhere.
Since there is no action to "unlock" a volume, this
just causes confusion - including for Cinder developers
that know this API. To avoid confusion, this invalid
flag should just be removed from the command.
Change-Id: I5f111ed58803a1bf5d34e828341d735099247108
The floatingip-disassociate mapping had 'port' instead of
'--port', also fixed a few places where 'unset' was missing
from some of the mappings.
Trivialfix
Change-Id: I3b01db28dda674e9988176d496154fbd26e4449f
The table indicating the openstackclient release at the time of the
overall OpenStack release had not been updated since Pike. This adds
release versions for Queens and Rocky.
Change-Id: Icd9a72c2460fae3d1b714b6da473564e6c709ef6
Signed-off-by: Sean McGinnis <sean.mcginnis@gmail.com>
The first version of the versions show command does client-side
service-type filtering, which while functional, causes many more API
calls than needed. Now that keystoneauth supports the filtering at the
source, use it.
Change-Id: I57c49e67f9cb285a5f5bc19ec53a42d10de9f0da
The openstack complete command requires bash-completion package
Without the relevant package the bash completion doesn't work.
Change-Id: I47c77f3e7efe112417d2b96936fcd0cafeb9442e
Closes-Bug: #1798493
This fixes some minor issues in release notes and the command list for
the new volume backend commands.
Also sorts the fakes used for volume unit tests to allow for multiple
command update patches to hopefully reduce the odds of merge conflicts.
Change-Id: Ic6e40f4c639368338cf085c68c17038f81da5361
Signed-off-by: Sean McGinnis <sean.mcginnis@gmail.com>
The Cinder v1 API was deprecated several years ago and may be removed
from python-cinderclient in the near future. To handle the case where v1
is no longer present, this updates cinderclient initialization to work
without it and give an appropriate error if v1 is requested with a
version where it is no longer available.
Change-Id: I277d7b48b8ad4cce383ec3722f8117938378f615
Signed-off-by: Sean McGinnis <sean.mcginnis@gmail.com>
Adds an equivalent for "cinder get-pools" with "volume backend pool list"
and "cinder get-pools --detail" with "volume backend pool list --long".
Story: 1655624
Task: 136949
Signed-off-by: Sean McGinnis <sean.mcginnis@gmail.com>
Change-Id: I826c9946ffe11340d44ad57914f72fc2a72b6938
Adds and equivalend for "cinder get-capabilities" command to show the
capabilities supported by a Cinder backend.
Story: 1655624
Task: 26947
Change-Id: I38686a26cd503e45ce0102705a6632994ef10274
Signed-off-by: Sean McGinnis <sean.mcginnis@gmail.com>
The --project and --project-domain flags are currently mutually
exclusive for listing endpoints, however the --project-domain argument
is supposed to help with filtering projects with colliding names. They
should be allowed together.
Story: 2004018
Task: 27007
Change-Id: I7340e01f509e3515f07cb46f175fb603f1ce8b67
Add '--property' option to the 'server rebuild' command, to provide
the ability to specify properties of the rebuilt instance.
This is equivalent to the '--meta' option of the compute's
'nova rebuild' command.
Change-Id: I25ea6622e970416090109316e1e28fab8b0b3f07
Story: #2003979
Task: #26922
Fix some missing and not necessary trailing spaces in
the network v2 API files. Also fixed one block indent
that was different from all its friends.
Trivialfix
Change-Id: Ic6491203c2fb9085543d69f0bb5f38e5a96039da
We want to default to running all tox environments under python 3, so
set the basepython value in each environment.
We do not want to specify a minor version number, because we do not
want to have to update the file every time we upgrade python.
We do not want to set the override once in testenv, because that
breaks the more specific versions used in default environments like
py35 and py36.
Change-Id: I051f1c18b719a27372b626d483e47327085dd3b7
Signed-off-by: Doug Hellmann <doug@doughellmann.com>
Default pre-project quota is the number of IP addresses that can be
allocated from the subnet pool. For example, with a quota of 128,
I might get a 64 addresses subnet1, and 16 addresses subnet2,
and still have room to allocate 48 more addresses in the future.
Change-Id: Ia0ba827790b190647aed990e47347560fc9e9f0c
Now user can add the description when user create's the role using OSC
``openstack role create`` command. User can add the description by adding
`--description <Description>` to OSC ``openstack role create`` command.
Co-Authored-By: Deepak Mourya<deepakmoriya7@gmail.com>
Change-Id: I858e004c3b29c687b6a39c8a1ed5fb029eb19c67
Depends-on: I230af9cc833af13064636b5d9a7ce6334c3f6e9a
Closes-Bug: #1669080
Project purge would delete the servers and volumes for the project the
user is currently authenticated for, regardless of the --project flag.
Note: This change means that no server at all will be deleted if the
logged in user doesn't have the get_all_tenants permission set in the
Nova policy (default: admin_api). This doesn't appear to be an issue
with Cinder as the default rule appears to be admin_or_owner.
Change-Id: If1c54e24e1482438b81c3c32fd5fc9fdd7a7be04
Story: 1747988
Task: 13854
This extension adds image signing functionality to the "image create" command.
Therefore, new CLI options --sign-key-path and --sign-cert-id have been added.
This patch uses openstacksdk as the signing backend library instead of cursive.
Therefore, requirements and lower_constraints have been updated to use the
openstacksdk version 0.17 or higher.
Depends-On: Idc15b9a12d408bd4b2e096da8402c374be56f9fa
Change-Id: Ia20bc02a49c3fbeb9222e485e3396395f4ab817a
Story: 2002128
Co-Authored-By: Markus Hentsch <markus.hentsch@secustack.com>
Use openstack-tox-cover template, this runs the cover job
in the check queue only.
Use openstack-lower-constraints-jobs template
Remove jobs that are part of the templates.
Change-Id: Id210b2f15dcba9dcf9ad75e0436995e7d5c1b62b
We do not support removing a prefix from a subnet pool, only updating
with a larger prefix (which is handled by the set command)
This reverts commit 063c722a11.
Change-Id: I11224fbdb94dc1caef42a8a64cbcebaf1dc542fe
Story: #1670230
Task: #13697
This is a mechanically generated patch to add a functional test job
running under Python 3 as part of the python3-first goal.
See the python3-first goal document for details:
https://governance.openstack.org/tc/goals/stein/python3-first.html
Change-Id: I1d186a6759bd3e633661c75e62545d0d56700244
Story: #2002586
Task: #24320
This is a mechanically generated patch to switch the documentation
jobs to use the new PTI versions of the jobs as part of the
python3-first goal.
See the python3-first goal document for details:
https://governance.openstack.org/tc/goals/stein/python3-first.html
Change-Id: If0416171105673b6ed031398e41d46257fe113eb
Story: #2002586
Task: #24320
This is a mechanically generated patch to complete step 1 of moving
the zuul job settings out of project-config and into each project
repository.
Because there will be a separate patch on each branch, the branch
specifiers for branch-specific jobs have been removed.
Because this patch is generated by a script, there may be some
cosmetic changes to the layout of the YAML file(s) as the contents are
normalized.
See the python3-first goal document for details:
https://governance.openstack.org/tc/goals/stein/python3-first.html
Change-Id: I43acfa46c1df8912ae641529f3cc975c8e752480
Story: #2002586
Task: #24320
Cinder's volume create API does not support overriding the project_id and
user_id, and it silently igores those API inputs. Cinder always uses the
project and user info in the keystone identity associated with the API
request.
If a user specifies the --project or --user option, the volume create is
aborted and a CommandError exception is raised. This prevents a volume
from being created, but without the desired project/user values.
A user wishing to specify alternate values can still do so using identity
overrides (e.g. --os-username, --os-project-id).
Story: 2002583
Task: 22192
Change-Id: Ia9f910ea1b0e61797e8c8c463fa28e7390f15bf9
For QoS rule type bandwidth-limit the max-burst-kbps value for ovs and
linuxbridge is suggested to be 80% of the maxkbps value, let's give a
detailed help message for the CLI user.
For details see https://docs.openstack.org/neutron/queens/admin/
config-qos.html#user-workflow
Change-Id: Ia6e38ec7052b7af64880c2f4c5e242d7cb980df5
Closes-Bug: #1777866
This patch aims at fixing the broken gate jobs because of
cinder and glance patches [1], [2], [3] and [4].
* Remove parameter `--source-replicated` to drop volume
replication v1 support
* Address some timing issues with volume transfer requests
* Only run Image v1 tests when the test cloud has v1 available
* Get tolerant of unexpected additional attributes being
returned in Image data
[1].https://review.openstack.org/#/c/586293/
[2].https://review.openstack.org/#/c/532503/
[3].https://review.openstack.org/#/c/533564/
[4].https://review.openstack.org/#/c/578755/
Co-Authored-By: Dean Troyer <dtroyer@gmail.com>
Co-Authored-By: Monty Taylor <mordred@inaugust.com>
Depends-on: https://review.openstack.org/588664
Change-Id: I2a785750e92155185d3344e6116c7f5c6fdd3cbe
Signed-off-by: Fan Zhang <zh.f@outlook.com>
Add the DNS domain and name options to the ``floating ip create``
command. Also add these two columns to the output of the
``floating ip list --long`` command.
Change-Id: Id4cb18b51b252f19b87b24ec5d77183771189d17
Story: 1547736
Task: 13114
"--community" was added to "image create" and "image set" previously,
but was missed in "image list".
Change-Id: I959fdd7f67ae62c8326659ce52389228152ec019
Story: 2001925
Task: 14453
In API microversion 2.25 Nova removed the disk_over_commit parameter
to the live migration server action. This patch makes sure that we
don't include it in our request if we're running with 2.25 or higher.
Story: #2002963
Task: #22966
Change-Id: I1bbdd33be96d82422a05982508e370237c3560f3
Need to bump osc-lib to 1.10.0
Closes-Bug: #1736696
Depends-On: I2aab5cc1f550848bda2b90ef7ef9a60f07b88996
Change-Id: I7420204f28d36529354e5671bd88587d9b15bb06
Knowing what services and what versions of those services exist on a
cloud isn't always a spectacular experience. Add a command that will use
get_all_version_data from keystoneauth to produce a report of the
available services and the version info for each service.
Depends-On: https://review.openstack.org/584944
Change-Id: I84751c175d0c5f6d857a5473d2db6d5f1b41f946
This commit adds support for users to manage registered limits via
the command line.
bp unified-limits
Depends-On: https://review.openstack.org/#/c/574391/
Change-Id: Id8377363f7a3248b45aeeba21d2acc02684a0305
When creating a volume from a snapshot, the size parameter is required
and type is checked. Since we have to pass something and it needs to be
a valid data type (None is not acceptable) grab the size from the
snapshot object and pass it.
Change-Id: Ie23e3d23828919234e40336b5c65b22e140d337c
`host_set()` expects `status` and `maintenance_mode` as keyword
arguments, but in `SetHost.take_action()`, it is called without
expanding the keyword arguments.
So it's called as
```
host_set(host, {'status': 'enable'})
```
instead of
```
host_set(host, status='enable')
```
Change-Id: If0b37ac60091161a892bfc694fce31a988f66005
Task: 23023
During the change https://review.openstack.org/#/c/573216/
neutron-vpnaas lower-constraints.txt looks out-of-date.
This commit fixes lower-constraints.txt.
Change-Id: Id9cfb463a98bdcc3c45505d8701c515549ecaa55
save (potentially many) HTTP calls to Glance API for image list
and a call to Nova API for flavor list when the server list
actually returned no servers.
Change-Id: I93a56138c50b82fb4dce67a2f788107f71c5f423
Story: #2002039
Task: #19681
test_server_attach_detach_floating_ip() has a test for server
add/remove floating IP that seems to be racy, add a retry loop
to let neutron and nova do their thing before calling it bad.
Change-Id: I999a0d7dae1706d746053bafb7ab4e3b791d0042
The CLI usage docs should mention the microversion
restriction for creating a flavor with a description
and setting a description on a flavor. Also, the release
note talks about setting the server description on the
flavor commands (wrong resource).
Change-Id: I93af3da9a0be62395a1c719fd1dcbfd2b669580d
Story: 2002196
Task: 22607
The url for the python-openstackclient bugs is deprecated and
needs to change it to a correct one.
Change-Id: I3762faf27fdb647dbff2e47b19d238108ef1975f
In order to use app.api_version['<some_service>'] we need to have the
api_version on FakeApp otherwise the test will fail.
Patch that will benefit from this:
https://review.openstack.org/#/c/572536/
Change-Id: Ibb3c548daf2a62b6c4aefb5e257372dd5c56521e
The code was calling an unexisting function which never existed.
The module refers now to the correct `InferenceRuleManager`. It
also allows the compatibility with the future python-keystoneclient
in which the compatibility method will be removed from the
RoleManager.
Change-Id: I08f785dc9e840da2e16915683eecfe49189c44b3
Convert functional VolumeTypeTests to not use class methods for setup.
Depends-On: https://review.openstack.org/577147
Change-Id: I855583ad1a50bf5f5046acdb85e977ab9e3c45d2
Setting octavia quotas should use "openstack loadbalancer quota set", not
"openstack quota set". The vip parameter had be removed from octavia.
The patch removes '--vips', '--health-monitors', '--l7policies' parameter
in "openstack quota set" command.
Change-Id: Id0046195aa93bae62264d9de7d123cf63bd0fb7e
Task: 19657
Story: 2002016
The force down action is added in Microversion 2.11, we should limit
the command only can be executed when the microversion is above 2.10.
Change-Id: I0a87e02e71ff025d30181fc17ebcd003a590f110
When updating subnet with "no-host-route" option, set host_routes to an empty list as neutron_lib.api.validators expected.
Change-Id: I6fe039793d813758429c7a104fd40172b4f8122b
Closes-Bug: #1747101
When setting floating ip other properties, port argument is
force to use.
The patch modifies the command, when setting floating ip other
properties, like tags, no need port argument.
Change-Id: I908712c8913f32d3dd5fdfefe7347277d72f66de
Story: 1751431
Task: 13865
If you use python3, items() returns iterator which is not allowed to
remove item during iteration. Fix to iterate by copied list.
Change-Id: I64c037d04e2b127d8f19f56cab65122af89a7200
Closes-Bug: 1740232
With the 2.51 compute API microversion, non-admin users can also
see event details for a given request. This change mentions that
in the help text for "openstack server event show".
While in here, change the _info private attribute access to the
to_dict() usage.
Change-Id: I5fd487b17c4b85bd7e619112ad262ffdd3a940c8
Task: 21199
Story: 2002193
Compute API version 2.47 embeds the server's internal
flavor in the response. The original flavor id is not
preserved since it could have changed if the flavor
was deleted and re-created after the server was created,
which was the dreaded Horizon "Edit Flavor" issue.
So the flavor dict in the server response is a dict of
information about the flavor representing the server
"right now" excluding the id. The original flavor name
is shown though along with the ram/disk/vcpu etc
information.
The server list command has a similar issue which
will be fixed in a follow up change.
Change-Id: I1a92999758006d02567c542b6be8902a049899cc
Task: 13864
Story: 1751104
When showing a server or doing a rebuild, we already have
the latest version of the server so _prep_server_detail
getting the server again is an unnecessary performance hit.
ShowServer is pretty obvious here. For RebuildServer, the
compute API actually refreshes the server before returning
it in the response, so the client already gets the latest
when the rebuild call returns.
The only other usage of _prep_server_detail that does require
a refresh is CreateServer since the POST /servers response is
a minimal version of the server object.
This adds a new refresh kwarg, backward compatible by default,
to _prep_server_detail but changes ShowServer and RebuildServer
to no longer refresh.
Change-Id: Ib1c9c424ed1cafc2dfd8be90af8de8a774bdfbf0
There is a to_dict() method on the Server object from
python-novaclient which makes a deepcopy of the internal
Server._info - use this instead of accessing the _info
attribute directly.
Also, while in here, fixed a typo in _prep_server_detail.
Change-Id: I679b4489c815f8a54368ef6b23b9f77e75b4d0bc
The --ip6 filter when listing servers as a non-admin user
only applies when also using --os-compute-api-microversion
2.5 or greater. This change simply adds a note about that in
the --ip6 option help text.
We could probably get more sophisticated by trying to determine
if the user has the admin role or not and if not, and using --ip6
without microversion >= 2.5, we could error out, but that seems
excessive at this point.
Change-Id: I665c64e0bdac04c695fa119a479df43f70b0fa62
Story: #2002184
Task: #20057
With the recent addition of system scope support in osc, we should
add system docs to the role documentation.
bp system-scope
Change-Id: Id77511c52ff0c36ea845e0f0fbbe3ec14818ee58
To enable the possibility to migrate a non-routed network to a
routed network allow updating the segment_id of a subnet.
Change-Id: I3ebae2ff28d5d4e5373ebd1f52194f8c52071b88
Partial-Bug: bug/1692490
Depends-On: I1aee29dfb59e9769ec0f1cb1f5d2933bc5dc0dc5
This commit adds the necessary bits to expose system role
assignments to openstackclient via python-keystoneclient.
bp system-scope
Depends-On: Iecbcbf020a15f2bec777334c648d4477f89f3b2c
Change-Id: I261e84700b51e8715eaebdc3f8f8bc46b68542c2
This was originally generated before the compliance test was installed,
so it is now failing for every unrelated change to requirements.
Replace lower-constraints.txt with the output of running
openstack/requirements/tools/fix-lower-constraints.py .
Change-Id: I492e663622db75994bdababfa6dc81589e3fb53b
Attribute max_burst_kbps of QoS bandwidth limit rule in Neutron's
is optional in API so it should be also optional on client's side.
Change-Id: Ie085b73fa885ff12f9ac080666cf3ca6a09b632a
Related-Bug:#1770622
Task: 19658
Story: 2002017
In case when is_ha or is_distributed attribute of Neutron's router is
set to None, it means that it wasn't returned from server and should
not be displayed.
Otherwise it might be confusing for user is making
openstack router show <router_name>
call as an admin will return e.g. is_ha=True but same call done as
regular user will return False or None.
It might happen like that because returning of those attributes is
forbidden for regular users in Neutron's policy.json
Depends-On: https://review.openstack.org/567606/
Change-Id: I626b5193d9ecb308baad7b27939f9673c32b4182
Closes-Bug: #1689510
Task: 19789
Story: 2002110
The default cinder version in devstack changed to v3 in
https://review.openstack.org/#/c/566747/which breaks this
test. Change the test to test what's going to happen.
Change-Id: Iff4d8b47812a86d21bf5dbdddbd642b9d63ff8fe
Migrate uses the same mechanism in the backend than Resize and so the
steps and step names are similar. Currently when using the --wait
option with 'migrate', we wait forever because the status won't get to
active until the user performs an action. This makes it return on
verify_resize status just like 'resize' does, so that the user can
perform the next manual step.
Change-Id: Ie1aeac52506bc8801f88fd6a6eb4f6094cf20050
Story: 2001994
Task: 19621
Add "dns-domain" parameter to Network class. Also check
backend extensions and send an error message in case of
an argument (like dns-domain) is sent and the extension is
missing (dns-integration in this case).
Change-Id: I7303658c27d9b9f2d8381ccea0b29e96909cab54
Closes-Bug: 1633214
Partial-Bug: 1547736
After Neutron patch I3c93818002c2d7753454547231ba08544b6fa1c0 merged,
the default value of segment description is an empty string.
This patch will determine whether the Neuron shim extension
standard-attr-segment supported.
Change-Id: I68a3c018f03e5bb53bd637844ac9d7742a765db0
pycodestyle 2.40 and later enforce these rules that were not previously
enforced. Rather than just skipping them, this cleans up the trivial
instances of these violations.
This does also include some other updates that were not triggering errors
in an attempt to keep some of the style consistent.
Change-Id: Id7c0a6b8f1f835e69d844b000e3ed751852ada63
Closes-bug: #1762803
Help folks that need to migrate their use of the neutron CLI for
neutron-dynamic-routing commands.
Change-Id: I324608d7bbce8c55aaab122bfd8bff0ee1ccf9e3
Running "openstack port list --server <id>" is a good replacement for
"nova interface-list <id>", add it to the decoder.
Change-Id: I656e190f4da59d9c57e9ab97d068a8a0dbd77774
We had already implemented floating ip(pool) commands more
than two cycles, we can remove those deprecated commands.
Change-Id: Ib98a7403a63bb0c48c03de4c79795737de2aa84c
This patch implements an endpoint lookup when showing limits. This
addresses the issue when showing limits without both Nova and Cinder
and will display limits if one is missing.
Change-Id: I2214b281e0206f8fe117aae52de2bf4c4e2c6525
Closes-bug: #1707960
add --image-property option, just like --image-with of novaclient did.
Change-Id: Ic1a8976559255529a8785b1b301a0307812433cb
Signed-off-by: Chen Hanxiao <chenhx@certusnet.com.cn>
Create a tox environment for running the unit tests against the lower
bounds of the dependencies.
Create a lower-constraints.txt to be used to enforce the lower bounds
in those tests.
Add openstack-tox-lower-constraints job to the zuul configuration.
See http://lists.openstack.org/pipermail/openstack-dev/2018-March/128352.html
for more details.
Change-Id: I4a4ca9726fab1d0cf9a33311201b7f65951a0942
Depends-On: https://review.openstack.org/555034
Signed-off-by: Doug Hellmann <doug@doughellmann.com>
The OpenStack client presently has support to add or remove members
from an image, but no way to list image members. This patch addreses
this issue.
Change-Id: Ie85c5de23c6beb21fd6b4c04c83ddf2a116606ef
Update the code so that "openstack server list --all"
also displays the names of private flavors.
Change-Id: I4804fcd905eaf67b1ad9b461084eaf0caa820d2f
Closes-Bug: #1742453
Compute API version >= 2.37 requires a 'networks' value in
the server create request. The novaclient CLI defaults this
to 'auto' if not specified, but the novaclient ServerManager.create
python API binding code does not, as it wants clients to be explicit.
For the purposes of the OSC CLI, we should follow suit and if the
user is requesting OS_COMPUTE_API_VERSION>=2.37 without specific
nics, we should just default to 'auto'.
Change-Id: Ib760c55e31209223338a4086ff1f4fee88dc6959
Closes-Bug: #1750395
This is a followup to https://review.openstack.org/#/c/541609/ that
changes most outstanding direct uses of sys.stdout to use the encoded
stdout set up by cliff.
Change-Id: I07cfc418385fc787d3b7d3c32d39676cf81bb91f
There is a --restricted flag to counter the --unrestricted flag. It was
documented, but the usage example had missed it. Add it for
completeness.
Change-Id: Ib4cdcacdd16bfb59e9d18714106ecda99e418812
Because of encoding issue, the "openstack console show log" is prone to
a stack dump, as explained in the bug report.
Use the stdout handle that has already been set up by cliff's App class
with a sane default encoding.
Change-Id: I4d8b0df7f16ee0463e638bb11276220e5b92023b
Closes-Bug: 1747862
Support Neutron network mtu configuration with a new argument, --mtu
that allows CLI users to set MTU for Neutron networks.
Change-Id: I93d23581c7e8c84eaf9bb3b293360036f60f456b
It's time to move on with life.
(dtroyer) This requires sdk >= 0.10.0 (0.9.19 is in
global-requirements.txt) and osc-lib >= 1.8.0 (1.8.0 is already in g-r).
Once we have sdk bumped make_client() becomes just a pass-through for
the plugin interface and existing code compatibility.
Change-Id: Ie3d7c442da4257b11140c109e9df69b629336f42
a)
/os-floating-ips was removed in Compute API 2.36 and from novaclient's
Python API in 10.0
Add to api.computev2:
floating_ip_add()
floating_ip_remove()
Convert add floating IP command to nova-net/neutron split:
"server add floating ip"
"server remove floating ip"
b)
/os-hosts was removed in Compute API 2.43 and from novaclient's
Python API in 10.0.
Add to api.computev2:
host_list()
host_set()
host_show()
Convert host commands to use intenal api:
"host list"
"host set"
"host show"
c)
The introduction of the Network-style commands into the server group
broke cliff's autoprogram directive as it executes the get_parser() methods
without fully initializing the Command object.
NOTE: This is really three reviews squashed to get through the gate in one pass.
Depends-on: Id6de87211d6c4ea8fd14aa9203d8d5b17e9e2f04
Change-Id: I5116086f9a9e4b2b31a744bf8f4558c79f0bfe59
When test_server_commands_main_help() fails it dumps a ton of
unformatted text on an exception message. This commit attempts to clean
it up to make it easier to read.
Change-Id: I793e6337728a22302a5a87938dbec60d7f2320d8
The volume encryption provider no longer uses class names.
Instead, 'luks' and 'plain' are used. This patch updates
the help text for the volume encryption provider to use
the new encryption provider format constants.
Change-Id: I2911098505a99658e04ac4008e5f3e857db81f95
Implements the commands for endpoint group filter management.
Includes the CRUD management of the endpoint groups and the
association management between them and the projects that are
using this method.
Implements: blueprint keystone-endpoint-filter
Change-Id: I4265f7f8598d028191e90d76781b7b6ece6fef64
This patchset implements support for "--dns-domain" argument to the
following commands: "openstack port create" / "openstack port set".
Change-Id: I4bb001054b00a969b74db3bb310e567033bf589b
Depends-On: https://review.openstack.org/#/c/500660/
Closes-Bug: #1714878
Partial-Bug: #1704769
This change adds tags functionality for projects in keystone. A user
can add a single tag with "--tag", chain "--tag" to add multiple
tags, or clear tags with "--no-tag".
Change-Id: I31cfef3e76dcefe299dacb00c11bb1a10a252628
Partially-Implements: bp project-tags
The base job has tox_install_siblings: false - which we want. But
that means we need tox_install_siblings: true on the tips job.
While we're at it - add fetch-tox-output so that we have tox log files
in the fetched build output for easier verification of what wound up
installed.
Don't look for ResourceNotFound string in test
The string ResourceNotFound is not in the error string anymore. Look for
the text that is.
Depends-On: https://review.openstack.org/541033
Change-Id: Id6de1485bcafb41f238f3e74277094ce64a6acf4
Zuul no longer requires the project-name for in-repo configuration.
Omitting it makes forking or renaming projects easier.
Change-Id: I92ea13e64dcdc24a8dd1fd6d17df9f771b2fc1e0
Add support for creating, retrieving, and deleting application
credentials. Application credentials do not support updates.
In order to provide a positive user experience for the `--role` option,
this patch also includes an improvement to the
`identity.common._get_token_resource()` function that allows it to
introspect the roles list within a token. This way there is no need to
make a request to keystone to retrieve a role object, which would fail
most of the time anyway due to keystone's default policy prohibiting
unprivileged users from retrieving roles.
bp application-credentials
Change-Id: I29e03b72acd931305cbdac5a9ff666854d05c6d7
The find_ip from openstacksdk started being usable by OSC back in 0.9.15
but the local method never got replaced.
Change-Id: I18a334280e5f384f8bb96198cdad79c612a02290
Change I7e8c47dead1e019e8705db3ff7559dd39b1d90d9 broke
the ability to create a new release note from the venv
tox target because the reno requirement was moved from
test-requirements.txt. This fixes it.
Change-Id: Ifac83121388728fa445e0ed4433c9d981c057737
We store the created conn on the instance, but we never pull it back off
if there is already one present.
Change-Id: I2d890dd206d4ddf67fa42d798e6fd2c652799785
network.client.make_client() has always put a copy of it's SDK Connection
directly into ClientManager, the new-style Connection create will move
into osc-lib ClientManager, do it here too until then.
Change-Id: I1edfd19c9e73320768fb9640931fafe857c980b4
a piece of code in image client has some business logic behind
assert, which can be lost when running python in optimized mode (-O).
Change-Id: I2179970df495e1215d691915c51cebe5cb4541a7
The zuul job figures out whether to run "setup.py build_sphinx" or
"build-sphinx" based on whether the project is relying on pbr's
ability to auto-generate API reference docs. Because we are relying on
that, we want local builds to use "setup.py build_sphinx".
This reverts commit 42e0037cd0.
Change-Id: Ia01188110fa9c3ccaf3d794fa3a511a6780e683e
We have consolidated the fetch output roles into one
fetch-subunit-output, replace useage of old roles with new one.
Depends-On: I0cdfc66ee8b046affeb0b071fef38c21cb7a4948
Change-Id: Iae2892d9b4cd870a11579434edc9ee66bd16798c
Now we can associate a qos policy to the floating IP, and
dissociate it. The commands are:
$ openstack floating ip create --qos-policy ...
$ openstack floating ip set --qos-policy ...
$ openstack floating ip set --no-qos-policy ...
$ openstack floating ip unset --qos-policy
These commands are based on the neutron change:
I4efe9e49d268dffeb3df4de4ea1780152218633b
Partially-Implements blueprint: floating-ip-rate-limit
Change-Id: I932b32f78cc5a2b53926feaec1a0b392cf7e8b57
Now if Glance v2 cannot find image data it returns an empty
response with 204 status code, instead of raising an error.
Glance client handles this situation and wraps the response
with a RequestIdProxy object, whose 'wrapped' attribute is
None.
But when openstack client tries to parse this object using
glanceclient's save_image util function, it fails with
"NoneType object is not iterable" message, for the
object doesn't contain any data.
This patch adds additional check to prevent such behaviour
and raises SystemExit exception if no data was returned from
the server.
Glance v1 is not affected, because it raises an error if can't
find an image data.
Change-Id: I016a60462ba586f9fa7585c2cfafffd7be38de7b
Closes-Bug: #1741223
Right now, if a neutron port is owned by a container powered by
Kuryr, there is no way to list and filter those ports because
OSC assumed a neutron port is owned by either a server or router.
This patch adds support for that by introducing an option '--device-id'
to the 'port list' command.
Change-Id: Ib1fd27e8d843a99fb02ccabd8a12a24ac27cec9c
--swap will add a additional storage device,
which not affect the original swap partition/device.
This patch will clarify this misleading description.
Change-Id: Ic079c069985d39cc969b97876901007a81883f57
Signed-off-by: Chen Hanxiao <chenhx@certusnet.com.cn>
This commit makes to use stestr instead of ostestr
directly. ostestr>1.0.0 has started to use stestr instead of
testrepository. So there is no reason to use ostestr anymore.
Change-Id: I6327d50c9f6dd19f1de24b9b51532104fb3e916e
Our functional tests depend on OS_CLOUD (or other OS_* envvars)
to retrieve authentication information.
Functional test failure is caused by the lack of OS_CLOUD envvar.
This commit updates the job playbook to pass OS_CLOUD.
Change-Id: I903ce599082cc923f02e26a2058bbfa7eb9bb2d6
Per API reference, only 'changes-since' is accepted and the variant
with underscore is ignored, making the CLI functionality broken.
[dtroyer] added release note and fixed unit tests.
Change-Id: I0c596531a8af03da17d5ce39d75b12e941403aa5
Closes-Bug: 1732216
Do a dummy import to determine which SDK is installed (Pre/post merge).
This solves the DevStack error "Cloud defaults was not found" in -tips jobs.
Depends-On: Ia111f127fbdceac2afe20fd9d1fe032145cdd72c
Change-Id: I60c2d418dd5a393eee2cc2a5c2fdebfffdabf2d3
'pip install -U' ugrades specified packages, this is not necessary
since we use constraints, remove the parameter '-U' from the line.
With tools/tox_install.sh - which a previous change of mine removed -
the -U was not harmful, but with the current set up, it might cause
upgrades, so remove it.
Change-Id: I9f818d4b78e7540498a1501be14cd63ac3e891b3
In network/v2/_tag.py lines 105 and 110: obj.tags can be None, in
which case set(obj.tags) throws a NoneType exception.
Change-Id: I1e965ec947844cbf84676fab27a2261fc0c0ea49
Closes-Bug: #1735836
We do not need tox_install.sh, pip can handle constraints itself
and install the project correctly. Thus update tox.ini and remove
the now obsolete tools/tox_install.sh file.
This follows https://review.openstack.org/#/c/508061 to remove
tools/tox_install.sh.
Change-Id: Ie7c06ead39c8597ec9326f223625d1fa0d5208d1
Make py27 and py35 versions of the tips job, and a project-template to
hold them so it's easy for other projects to use both (or more, we ever
add them) The base tox job knows how to install siblings based on
required-projects, which makes it easy to piggyback on them.
Remove the irrelevant-files sections, as these are specified in the
base openstack-tox jobs.
Using the unit-tips or functional-tips tox env is no longer neccessary.
For the gate it's actually important to not do the sibling processing by
hand in tox as the base tox job version of the logic does all the
right things to deal with constraints and whatnot. Leave them for local
developer convenience.
Leave the osc-tox-unit-tips job for now, since there are some other
repos using it. Once we switch them to the template, we can remove the
job.
Change-Id: I599b18218c10cb08e508cca3b3bbc9c88b8f809c
Both of these can severely break openstackclient. Add them to the
required-projects list of the tips jobs. We should then add at least
osc-tox-unit-tips but maybe also osc-functional-devstack-tips to both
cliff and keystoneauth so that it's symmetrical.
Change-Id: Ie0f3e9d7e221c9cdd3c5d726148f456246186ff4
We want to run osc-tox-unit-tips on changes to os-client-config and
python-openstacksdk - but the tox role defaults to using
zuul.project.src_dir as the working directory. We want it to always be
the openstackclient source dir.
Change-Id: Ic7a49b79fb9141d9d0b8da40e10c85b107564edc
At now, OSC command implementation extracts resource attributes based on
a predefined column list, so if a user specifies an unknown attribute
not defined in the column lists, such attribute will be ignored.
In case of 'port list', the neutron port defines many attributes and
it is not a good idea to show all attributes even in the long mode
from the perspective of user experience.
This commit consumes osc_lib.utils.calculate_headers_and_attrs()
function to show undefined port attributes if requested in -c option.
Closes-Bug: #1707848
Depends-On: I6c6bc3c6e3c769c96869fd76b9d9c1661280850e
Change-Id: I130a6aed41d80603698b6cab0c9a1d1dc59df743
Implements the commands that allow to link and endpoint to
a project for endpoint filter management.
Implements: blueprint keystone-endpoint-filter
Change-Id: Iecf61495664fb8413d35ef69f07ea929d190d002
The hard-coded choices for the server group policy make it impossible
to create a server group with the soft-affinity or
soft-anti-affinity policy rules which were added in compute API
microversion 2.15. This removes the hard-coded choices so that the
policy is restricted on the server side rather than the client side.
Change-Id: Ib3dc39422ac1015872d56ae2fdeddf0f29613494
Closes-Bug: #1732938
Now, keystone has supported serverl auth method, like 'totp'.
Before we use this method, we should create the credential first.
And we need create it with type 'totp'. But now we cannot create
credential with this method.
Also, I think the type should not have constrains. We can create
any type in keystone project. So, we should do these actions too.
The type would be more which We cannot control.
Change-Id: Ie0482da3133fb515e4bb8e45f8c54f509589cc5e
Closes-bug: #1731848
Release notes are version independent, so remove version/release
values. We've found that projects now require the service package
to be installed in order to build release notes, and this is entirely
due to the current convention of pulling in the version information.
Release notes should not need installation in order to build, so this
unnecessary version setting needs to be removed.
This is needed for new release notes publishing, see
I56909152975f731a9d2c21b2825b972195e48ee8 and the discussion starting
at
http://lists.openstack.org/pipermail/openstack-dev/2017-November/124480.html
.
Change-Id: Ia0c8d7dc346182fde095eebb82eeeb70fc1b9770
We used that module in a test functional for module list, it is being absorbed
into python-openstacksdk and having it listed in this test breaks -tips jobs.
Change-Id: I98fdf5a5d1b3c6e30cb4c5f5fec3dd8e43e53145
SDK is removing Profile, but currently has compat code to support this
invocation in OSC. While the intent is to protect people from upgrade
breakage, it's python, and packaging things have a tendency to get
strange. By putting in a little belt and suspenders if block here, we
can hopefully protect folks who upgrade sdk for some reason without
upgrading python-openstackclient.
Change-Id: Id678e97a2b99dbbfc772acc8c6ba283db551723d
Add a list of interfaces info in the output of
'openstack router show'.
The information of router interface are:
IP address, subnet ID and port ID.
Co-Authored-By: Dongcan Ye <hellochosen@gmail.com>
Change-Id: I1252986122122defffe795292b83dc4e84481c7e
Closes-Bug: #1675489
This patch improves the error message by retrieving the more details
from the exception instance. Otherwise, the real error message won't
be displayed (unless using --debug in the command).
Change-Id: I8ba694bda86f7cc8362e301b2044d9b610dde49c
This command will detach a server from a network. All server's
neutron ports that belongs to the specified networks will be removed.
Change-Id: I83a064ed62ab00c6f1016900b9cf30f1c15b8382
The take_action() function was calling get_agent() with the wrong
attribute, causing agent deletion to fail. It turns out calling
get_agent() isn't necessary; this removes the call entirely and moves
the 'ignore_missing' argument to the delete_agent() function.
Change-Id: Iaa3754a3be0765112f396495fa5fb2e32e6eae4e
Closes-Bug: #1711301
Neutron API now supports getting details of supported
QoS rule type.
This patch adds support for this feature to OpenStack client.
Change-Id: I74d16563ce2236a7c899f5994f1dab43ace02138
Depends-On: I448b5d4f8e4ef42eafe50d9d6c63d0be666f98fc
Related-Bug: #1686035
Add a boolean option "target-all-projects",
which allows creating rbac policy for all projects.
Change-Id: Ie3af83a1bba7dd66e83b0595bb276bf8fd105831
Closes-Bug: #1728525
Closes-Bug: #1704834
Zuul now supports including the file extension on the playbook path
and omitting the extension is now deprecrated. Update references
to include the extension.
Change-Id: Ia1747b6c97140b7e12972c7f7b14cb0620ead084
Intel RSD is new architecture that disaggregates compute, storage,
and network resources, and provide the ability to dynamically compose
resources based on workload-specific demands [1]. The python-rsdclient
project provide specific RSD plugin to allow user to invoke RSD API
through OpenStackClient. So Added it into existing plugin list.
[1] https://www.intel.com/content/www/us/en/architecture-and-technology/rack-scale-design-overview.html
Change-Id: Ic49efddfb003c89ece6d782905b27fb46402b3ab
* Add unit-tips job to run unit tests with the same project master branches
as the functional-tips job (mostly useful for the unit.integ tests)
* Add irrelevant-files to the osc-functional-devstack-base job
* Comment out the functional-n-net job as it is horribly broken for now
until the replacement package-installed OpenStack is ready
Change-Id: I5acdcb0a2f0f0dfe488740ae0add36366cc0ee21
Currently, if users want to add another NIC to a running instance,
they need to (i) create a neutron port and (ii) add the port to the
server via teh AddPort command. It would be more convenient to have
a single command to achieve the equivalent.
Novaclient already support adding network to an instance via the
interface-attach command. This patch introduces a similar capability
in OSC.
Change-Id: Ia3e39c57ae7ecb96aae1b66adc52c289daccb6ec
The functional tests assume that an openrc file has been sourced. Make a
simple wrapper that will do that.
Change-Id: I42584aaebcbca99a8c922f6ff90c8bbce57bbfbb
The current openstackclient implementation cannot accept 0
for --min-disk and --min-ram with the "openstack image set" command.
If theses options get set to 0, the option parser in openstackclient
wrongly interprets 0 as no option value. The 0 is valid for these
options if administrators want to make it the default(no minimum
requirements).
This patch fix the parser so that it avoids only 'None'.
Change-Id: Ie8ee37484c02c26f54adc56263fcd167c0ce7eb3
Closes-bug: #1719499
We're getting about 1-in-6 failures on qos policy delete now, with the message
that the policy is in use by a network. It shouldn't be, this is possibly
due to the small window where the policy is set as the default. Let's
remove that and shore up the test using --share instead.
Change-Id: I8d669bd3c5c88dadd2927aee89e5ef72cf4001c4
In order to create a rule for any protocol, the client
must not specify the protocol in the API call. This
is currently impossible because protocol defaults to TCP.
In order not to change the default behavior, a "new" protocol
name is added: "any", which makes this CLI skip sending the
protocol field altogether.
Change-Id: I58853d3745f3631007e5e9780c0c5c2526b730a3
Closes-Bug: 1712242
On loading external plugin, OSC should be robust on importing the
plugin module so that commands from other modules can continue to
execute.
Closes-Bug: #1722008
Change-Id: Ibe716681c7f78fabee31b7ef281af2588d68ab30
Introduce an option '--no-fixed-ip' on port create command.
If this option is specified and '--fixed-ip' is unspecified,
OSC will send a request to neutron with 'fixed_ips' as an empty
list, which will create an unaddress neutron port.
Note: The use cases of unaddress port was outlined in:
https://specs.openstack.org/openstack/neutron-specs/specs/liberty/unaddressed-port.html
(dtroyer: add Depends-On for Zuul v3 test)
Depends-On: I39e8e49243ab0bda631600715c971c55a34e2fd9
Change-Id: Ibe38598acbbcd0d353c952fc2a6fa67780762151
Closes-Bug: #1717829
Currently ListEndpoint.take_action method unconditionally iterates
over all endpoints and issue GET /v3/services/<ep.service_id>
request for each endpoint. In case of HTTPS keystone endpoint this
can take significant amout of time, and it only getting worse in
case of multiple regions.
This commit change this logic to making just two GET requests: first
it gets endpoint list, then it gets service list, searching service
in the list instead of issuing GET /v3/services/<id> request.
Change-Id: I22b61c0b45b0205a2f5a4608c2473cb7814fe3cf
Closes-Bug: 1719413
When icmp-type or icmp-code are set to 0, the current implementation
ignores the value, this fix will allow the value to be copied and
displayed
Change-Id: I96133a57883d22e98fcbb9fe0328d9e050472469
Signed-off-by: gvrangan <venkatrangang@hcl.com>
This patch adds the "appcontainer" commands to the docs and sets
up the document generation for the python-zunclient plugin
Change-Id: I58bd208e98bd059d9df03ee71dcb83779044f83a
So yeah, this is not kosher for functional tests, but we're testing the
client interaction, not the raciness of Nova or Neutron. Failure to delete
is not our problem.
Change-Id: I21043f1de0fbacee1aec63110fb12a7cff42e0a0
With the release of os-testr 1.0.0 stestr is used internally and because
of that the repository dir and commands to get subunit are different.
This commit updates the post-test hook to get the subunit stream if
ostestr>=1.0.0 is used.
Change-Id: I2cce7f4780ce418398b17a5848def9072372841e
keystoneclient.session has been long deprecated in favor of
keystoneauth1.session. This change corrects the import in the
tests to use the correct library's session.
Change-Id: Ic24ebde59e4b9eb70d6f14c1e0536f8d24f0de73
The use_default_subnet_pool column is never returned by the API, it is
only being used in the request to create a subnet. So make sure that we
do not show it when displaying a subnet.
Change-Id: Ie021149cceb8f89b779ad0f3c13ac60420509671
Related-Bug: 1668223
Shell.py contains lines to import osprofiler. This is useless
because osprofiler options support code was moved to osc-lib.
Removed it.
Change-Id: Ibec17700c87df908640848c3787d190ca66a7bcf
Closes-Bug: #1707103
To ensure project imports are placed after third party import,
we need to specify application-import-names.
Previously flake8-import-check checked only standard imports or not.
Change-Id: Iad7afa456cec7cf5b44955f1ea03c593a4c0e426
Allow the user to create an inference rule between
two roles. The first, called the prior role
is the role explicitly assigned to an individual.
The second, called the implied role, is one that
the user gets implicitly. For example:
Role B implies Role A.
User X is assigned Role B.
Therefore User X also assigned Role A.
The management and maintenance of the rules is
performed in the Keystone server.
Change-Id: If547c2f16e812bc7fffd742ec37e6a26011f3185
Fixed karborclient has been released. The problem only exists
in karborclient 0.4.0 and the current version is 0.6.0.
This reverts commit 99a502b203.
Change-Id: Ie28fa1e0502792c87e68ab1c009b3349c739892b
In reviews we usually check import grouping but it is boring.
By using flake8-import-order plugin, we can avoid this.
It enforces loose checking so it sounds good to use it.
This flake8 plugin is already used in tempest.
Note that flake8-import-order version is pinned to avoid unexpected
breakage of pep8 job.
Setup for unit tests of hacking rules is tweaked to disable
flake8-import-order checks. This extension assumes an actual file exists
and causes hacking rule unit tests.
Change-Id: I12b596820727aeeb379bee16c2bc993dee9eb637
This commit now allows user to specify 'prefix_delegation'
as a Subnetpool during Subnet creation by using the new
--use-prefix-delegation option so that the IPv6
prefixes can be delegated to routers set up by the
cloud admins.
Change-Id: I67e5d81c4155db2e3c5c41ee1df77f2d77a17689
Closes-Bug: #1513894
Previously fucntional tests for network segment feature are skipped
as neutron 'segment' API extension was disabled in the gate.
We now enable neutron 'segment' API extension, so we can safely drop
the check for the segment extension from the test code.
Also setup code in test_network_segment is moved from setUpClass to
setUp. There is no good reason to do them in setUpClass and
having them in setUp simplifies the test code.
no user once this commit is applied.
Change-Id: I183310b94d9b6d7f4311a3859b59dc22d36440db
Specifically, in the py3 jobs Swift is not (yet) properly starting as
a py2 service, so we disabled swift in those OSC jobs and need to
skip the object-store functional tests in that case.
Change-Id: I073551c41b7636f04b3ee97dc6fe69630e207b67
In keystone version 3.5, "type" optional attribute has been added
to list credentials. This patch add "user_id" and "type" optional
parameter in openstack client.
Change-Id: Ia09ee7c39204fdff2dfd7b9b606d888d007caac5
This is a follow-up patch on https://review.openstack.org/#/c/461195/
There is a suggestion to keep test code more straight-forward
and avoid using mix-in to reduce the code complexity.
This commit moves all logic implemented in _test_tag.py
into individual network tests.
Change-Id: I0a9f8c6cd758db9035b0fd60ce4b9bfc791b6cbd
"openstack quota show" shows wrong value in field project
and project_id. project UUID is shown in field project.
and project is coming as None.
Corrected it.
Change-Id: I237e49858feab14ec5e5bc6d8cb79c9f6f5ea9c0
Closes-Bug: #1679906
Neutron tag mechanism now supports network, subnet, port,
subnetpool and router. Tag support for more resources is planned.
This commit introduces a common mixin class to implement
tag operation and individual resource consumes it.
To support tag remove, network unset command is added.
Implements blueprint neutron-client-tag
Change-Id: Iad59d052f46896d27d73c22d6d4bb3df889f2352
Identity providers are now associated with domains. This change
allows a user to specify a domain by ID or by name when creating
an identity provider. [0]
This also adds the column for Domain ID in listing.
Updating a domain for an identity provider is not supported, so
that isn't changed.
[0]. Id18b8b2fe853b97631bc990df8188ed64a6e1275
Closes-Bug: 1698390
Change-Id: Icc408e2fe88f257d5863bd3df716a777d52befcc
'cliff', the command line library used by 'osc_lib' (and, thus,
'python-openstackclient') recently gained a Sphinx extension to
automatically document cliff commands. This allows us to use the
documentation we already have in code instead of duplicating it in the
documentation.
Introduce the use of this, starting with the 'server' commands. This
requires extending the descriptions for two commands to ensure no
information is lost.
Change-Id: If701af8d5a3f78f4b173ceb476dd0c163be4b6ca
Use fixtures to restore the API version changes of os.environ
in each functional tests, aims to avoid the following test cases
failing in unexpected context.
And make sure setUpClass/tearDownClass call super class's
corresponding methods first.
Change-Id: Ie248fe9d3a9e25f1b076c9f2c363200f29a83817
Closes-Bug: #1696080
Move all of the dynamic resource naming in Network functional tests into
setUpClass() methods (if they exist) rather than assigning those names
at load-time.
Change-Id: Ic550ff7d40c2b3ca5128cacccbe331790d6ae340
Even though a fix for bug 1705258 has been merged in
python-karborclient, it will take some time to release it and
update the upper-constraints.txt, so I think it is better to
exclude karborclient from the plugin commands doc temporarily.
Change-Id: I092b37b30df785159495c2d681162e144cfe4083
Related-Bug: #1705258
* This patch adds support for the virtio-forwarder VNIC type.
* The virtio-forwarder VNIC type has been added as another option for
setting the --vnic-type property on the "port set" and
"port create" commands. This requests a low-latency virtio port inside
the instance, likely backed by hardware acceleration. Currently the
Agilio OVS external plugin provides support for this, with support from
other vendors following soon.
* Corresponding neutron-lib change:
https://review.openstack.org/#/c/483530/
* Nova spec for Agilio OVS enablement:
https://specs.openstack.org/openstack/nova-specs/specs/pike/approved/netronome-smartnic-enablement.html
Change-Id: Idbc8071afe95f8594b40e2f93e5411e7185f946f
Signed-off-by: Jan Gutter <jan.gutter@netronome.com>
The 'domain' filter not work well in commands 'project show',
'user show' and 'user set'.
Depends-On: I490900d6249f01654d4cba43bddd3e7af7928a84
Closes-Bug: #1704097
Change-Id: Ib4f47cbaba27eb56c4a41d187fee74a995e62dc7
When --long is not present change the 'Image Name' column to
'Image' and add the 'Flavor' column. These columns will contain
Names unless --no-name-lookup is specified when they will contain IDs.
Change-Id: I92cfb22136aee32616894e60e9227b4da185da99
nova api support parameters like 'name', 'server', 'status',
etc in image-list(). So openstackclient should support this too.
DocImpact
Closes-Bug: #1698742
Change-Id: Ice66b409f989e6785aa3b2d42f2fdbf6e23fa0aa
[breakage related to os-client-config 1.28.0]
os-client-config 1.28.0 add a check if filebased and envvars are
both used. This check causes OSC unit test failure.
OSC now instantiates OpenStackConfig twice as a workaround.
The unit test mocks _load_config_file() and it returns a config dict,
but os-client-config OpenStackConfig.__init__ updates the dict returned.
As a result, when OpenStackConfig is instantiated second time,
the mock of _load_config_file returns a modified version of the config
dict. This hits the new check in os-client-config 1.28.0.
This commit changes the mock to use side_effect rather than return_value
to ensure the original dict is used.
[breakage related to osc-lib 1.7.0]
The change in osc-lib 1.7.0 added "if" logic to avoid calling get() twice.
In tests.unit.volume.test_find_resource, kwargs is empty dict in find_resource(),
so the second call to get() is NOT called now.
Removing the second elements of side_effect addresses the unit failure.
Co-Authored-By: Rui Chen <chenrui.momo@gmail.com>
Change-Id: Ib9d14661b2755bbd6619e15c0d9023fbc9d27d70
Closes-Bug: #1703782
Closes-Bug: #1703783
Remove translation of Image ID and Flavor ID to Image and Flavor names
In large environments amount of images can be very large (thousands)
Which requires ~hundreds of requests to Glance to get all images
(by default client request only 20 images)
As a result listing even few servers is going to take minutes
This patch allows to avoid these queries by not doing translation,
which allows one to get information about servers in seconds.
Change-Id: I4ae00e6324a41c4c79bf5b620179dae99aea5431
In the release notes build, openstackdocstheme is specified
in the sphinx extension list, but it is actually not used.
This commit configures openstackdocstheme as suggested in
the openstackdocstheme document.
Also specifies display_toc False in html_theme_options.
This prevents openstackdocstheme to add the local TOC automatically.
OSC has several releases during a single development cycle and
it leads to a long TOC at the top of individual pages.
It loses the readability and we can see version numbers in the
left sidebar, so we can safely disable the local TOC in
the release notes.
[1] https://docs.openstack.org/openstackdocstheme/latest/
Change-Id: Iae08d309f7589bb13a1766f6fded70673ba24047
Add a set of exclusive parameters to the Network QoS policy:
--default: makes this policy the default policy for
the project to which the qos policy belongs.
--no-default: unset the property.
Closes-Bug: #1639220
Depends-On: If5ff2b00fa828f93aa089e275ddbd1ff542b79d4
Depends-On: Ibe7b7881cb190bfd5582f35b6de51a8bc21135de
Change-Id: I0269b837dc29bbd8ee2089d847cadb72d800fa30
https://review.openstack.org/473964 moved the man page rst from
the doc/source/man directory into doc/source/cli/man, so we need to
adjust the path in conf.py to avoid issues when running:
python setup.py build_sphinx -b man
Change-Id: I1ab09bf298beef756b233c7e17bf052f7af4de51
This feature will allow image owners to share images across multiple
tenants/projects without explicitly creating members individually
through the glance API V2. “Community images” will not appear iu
user's default image listings
Change-Id: Ic02bf44cca5d6d793d68a8737d3cfe3f44407d88
Closes-Bug: #1626837
This patch adds the "loadbalancer" commands to the docs and sets
up the document generation for the python-octaviaclient plugin.
Depends-On: Ib123383c5f6904b4b00831e8cc7aaa180bd4a506
Change-Id: I48939cc3653cd379a328e0a0973d075019d22b00
Now we don't have a similar command to 'nova host-meta' in osc,
the 'host set/unset' in osc is used to manage host properties.
Need to remove the inaccurate mapping in nova.csv.
Change-Id: I291174a29c8e3419b62d47264dedf176262a816c
Closes-Bug: #1690902
Identity auth v3 is the default in devstack. The keystone team
advertises all deployments to migrate over to v3.
If we get our examples to use v3, that would be a great help.
Change-Id: I8bd4cbf16cd42fa1654776f19bf113e3c94e25cf
Move existing content around based on the doc-migration specification.
Replace :doc: markup with :ref: to have sphinx keep track of where the
files move and generate valid hyperlinks.
Add a few toctrees and index pages for the new directories.
Depends-On: Ia750cb049c0f53a234ea70ce1f2bbbb7a2aa9454
Change-Id: I253ee8f89d3ec40e39310c18bb87ed1d3d5de330
Signed-off-by: Doug Hellmann <doug@doughellmann.com>
Some of the available checks are disabled by default, like:
[H203] Use assertIs(Not)None to check for None
Change-Id: I59dafb62cedc5217b6e5eb6efb997a9ee3c29bbb
Now OSC command to create server will check all the keys in --nic
and throws an exception if the key is invalid key.
Change-Id: I5482da0ae63d6d4298aa614e4d09bb0547da9ec3
Closes-Bug: #1681411
This changes create a trust to use ids instead of names because of
the possibility of roles sharing a name. Even if the user
uniquely identified a role by inputting the id, the request sent
to the identity service would used the name, therefore the command
would fail in the case that two roles share a name.
This does not change how trusts are displayed during trust list or
trust show, a name will still be shown instead of an id.
Depends-On: I38e0ac35946ee6e53128babac3ea759a380572e0
Change-Id: I5bdf89f1e288954a7f5c2704231f270bc7d196f5
Closes-Bug: 1696111
This patch enables the direction ('ingress'/'egress') field
on the QoS bandwidth limit rule object and CRUD commands.
Closes-Bug: #1614121
Depends-On: Ia13568879c2b6f80fb190ccafe7e19ca05b0c6a8
Depends-On: I90c412a5c8757b3ffe8abfc1165a70bdb8744702
Change-Id: Ic6981474f22efbf294ac11c2e0304b04494a1bbe
Now tag information of the network is displayed when the user
tries to see the network details using the command
openstack network show <net-id>
Change-Id: I587d2bca37b8dbef4400db3d8ace3c81d87e2db3
Closes-Bug: #1695783
The patch[1] about OSC plugin has been submitted to
karbor project. And the plan list commend has been
implemented.
With more dataprotection commands being supported,
another patch adding more commands to the docs will be
proposed later.
[1] https://review.openstack.org/#/c/473508/
Depends-On: I4dfac08fd2b04f9ac254d3aa8fdadc3a1691de0a
Change-Id: I2266525650f5c2e241373493dcd09474478c2ba6
Add --default-quota option to subnet pool create and set commands.
Setting default-quota back to None may break the current Neutron
behavior, therefore support for Unset command is not provided in
this patch.
Neutron API:
a0e0e8b668/neutron/api/v2/attributes.py (L239)
Closes-Bug: #1667294
Change-Id: Ia4e7c23a49e91a090133c729353cdb8e62bc5674
The mapping guide showed that the openstack command for tokek-get
issue token. It should have been token issue.
Change-Id: I233d45ab0f4229caa9a725c931f11b3374270822
Closes-Bug: 1696246
Deleting snapshot may take time. The current volume API does not allow
to delete volumes with snapshots, so if deleting snapshot may take time,
a delete request for a parent volume will fail.
This sometimes causes functional test failures in slow environments.
wait_for_status() checks whether volume status is in error statuses
but previously the expected error status was wrong. Cinder API uses
lower case as volume status, so it did not work expectedly.
Change-Id: I095894ba39f23bf81d71351818d24dbb5ca459fb
Current "volume list --name" command use "display_name" as search_opts
to send to cinder API, and show the result table with "Display Name"
column title in osc, cinder list API support "name" as search opts too,
and there is "name" attribute in volume response body, so we can replace
all "Display Name" by "Name" in order to keep "volume list" command
consistent with other commands, like: server list, network list and so
on, only use "Name" attribute for all objects.
Support a mapping for volume list -c "Display Name" (Volume v1 and v2)
and volume create/show -c "display_name" (Volume v1) for minimal
backward compatibility until R release.
Change-Id: I120be0118e7bb30093b4237c5eeb69a9eedef077
Closes-Bug: #1657956
Depends-On: I1fb62219b092346ea380099811cbd082cae5bafe
If project matches the project from access token,
we do not have to send an API request to /projects?name=...,
because the project ID is already known.
This API request may require additional permissions, so
we want to avoid it, if possible.
Change-Id: Ice1af8686bceea6b67229dcab7cf82eef821163e
Closes-Bug: #1658189
Both resource ID and name are supported to identify an object
in openstackclient to make user easy to input, for security group,
nova only support security group name in API when launch a new server,
this patch convert ID to name, then pass name to nova API, and check
the security group exist before creating server.
Change-Id: I1ed4a967fb9de3f91c8945a1ef63f6c7b6b2dfb2
Closes-Bug: #1687814
1.keep the column display order consist in extension list with
and without "--long" option.
2.rework for network extentsion list, openstacksdk return object,
so the logic should be same with other service.
3.add some unit test cases, like: extension list --network --long,
extension list --network --compute, to cover regular use cases.
4.raise exact exception when network extension don't exist, avoid
internal TypeError in "extension show" commands.
Change-Id: I2e23ced80d8da8aa1106b22472db850367b351ce
Closes-Bug: #1689233
volume_type and transfer_request func tests have not been
converted into JSON func tests. This commit converts them
into JSON format.
Change-Id: I56820c4e15bda95e911e57657c1ff5437daf83ae
The patch fix the following issues:
1. ValueError is raised if input don't contain "=". Sometimes the whole
"server create" command is very complex, it's difficult to find out root
reason directly.
2. Don't support to add block device from snapshot, like:
--block-device-mapping
vdb=0c8ae9d8-cadc-4a23-8337-4254614d277e:snapshot:1, it's supported by
novaclient, but not in osc.
3. If input "vdb=", not add any mapping information, the server will be
launched successfully, not raise error message to let use add
volume/snapshot id, just ignore "--block-device-mapping" option.
4. The help message of "block-device-mapping" option is so simple, need
to add some details about how to add <type>, <delete_on_terminate>
contains.
Change-Id: Ib7f7a654c3dc2a8272545f168b4c4ced230ce39e
Depends-On: Ib37913891bbf7a31b570404c4668c490d5ac859b
Closes-Bug: #1667266
Additional exceptions can be thrown here, ignore additional project
lookup exceptions, but still not all. Server failures are still
interesting, for example.
Change-Id: I9a750ae8e8efa29a36bbd1e34b50b6ace0658260
Regualr expresstions were an interesting diversion, get rid of them
from the functional tests. It did lead to better structure...
Change-Id: I1ff32ad7715ebd88401925ce3f6c412a66e82566
This patch ensures that compute client is initialized only when needed
(--server arg is passed) to openstack port list command. Otherwise it
leads to failures on installations without Nova.
Change-Id: I102683461daa2f7d05dd9d7a3ec72de551c65ca9
Closes-Bug: #1688194
As of Ocata release Nova forces nova-network to run in a cells v1
configuration. Floating IP and network functions currently do not
work in the gate jobs so we have to skip this. It is known to work
tested against a Mitaka nova-net DevStack without cells.
Change-Id: I74f67ac8eb12c7a649ddcbd7979cf745fb35cc0c
The quota list tests have a race in them where occasionally a project is
deleted in another test between the time that quota list gets a list of all
projects and it gets the quota for the projects from the service; the get
quota call fails on the non-existant project.
The quota list functional tests have been substantially re-written to
properly test the exception handling.
Change-Id: I71e6bbb5d46fcea4718a5a870f9a66a2c20fff0f
Nova-net requires a cells v1 configuration to run as of Ocata, but
aggregates and cells v1 are not golfing buddies, so don't let them
meet on the back nine.
Skip the aggregate add/remove host commands in the cells v1 config,
leave the others because they should work, just not be very useful.
And format things consistently.
Change-Id: I131d9f883cb7aca53ad82fb7d5fc6ee1c1e7d923
DevStack master (as of 01May2017) no longer sets up an Identity v2
admin endpoint, so we need to skip those tests going forward and cover
them via a specific leagacy job. This does the detect-and-skip.
Change-Id: Ib9ab32b6bc84ec7d13508094ad6f83995d8d7bc1
This has been sporadically failing in functional tests due to the way
the volume qos spec list command calls get_associations() for each spec.
When tests run in parallel occasionally a spec from another test is present
in the list returned and is deleted before the get_associations() call is
made, causing a NotFound exception. We should just keep going when this
occurs.
* make v1 match v2
* add tests to ensure the exception is being caught and handled
Closes-Bug: #1687083
Change-Id: If2d17c1deb53d293fc2c7f0c527a4e4ef6f69976
* network segment
* network service
* port
* router
* security group
* security group rule
* subnet
* subnet pool
* extension
The extension tests were duplicated to have both compute and network
extensions tests so the nova-net case will still exercise the extension
commands.
Also clean up formatting from previous reviews to make the Network functional
tests look and act consistently.
Change-Id: I286c40572faa31ddcef595cec740da933b2defc1
* address scope
* network agent
* network flavor
* network flavor profile
* network meter
* network meter rule
Also create a new common network functional test class
NetworkTests to house the setting of haz_network in a single place.
The individual test skipping stays in the final classes to re-enforce
the idea that some tests work with both Nova-net and Neutron.
Change-Id: Ie3910231c6fc9e2031438c599afa904f43c874a7
In cleaning up functional tests for nova-net, I discovered some
problems in network create:
* --subnet option is required in network create command
* Switch API to use /os-networks rather than /os-tenant-networks as this
is what we were actually using via novaclient
* Fix functional tests for nova-net
* Normalize some private function names in network/v2/network.py
Change-Id: I426b864406756d58d140575a3a45ee9aee67ce84
We need to skip some functional tests when testing against a nova-net cloud
so add the bits to detect that.
Also JSON-ify the quota functional tests and add the skips for nova-net.
Change-Id: Ibfeeb3f967f34c98e80271a8214cf95dc50407f1
In volume snapshot command, <volume> is the same
as <snapshot-name> when --volume is not specified,
but <volume> cannot be None, so when <snapshot-name>
is not specified (<snapshot-name> is None), a NoneType
error appears.
So make <snapshot-name> no longer optional, it should
be always present.
Change-Id: I3d9f10753a8ef601e70816421c160598e2cc811f
Closes-bug: #1659894
The commands that do not require authentication sometimes still need
to call ClientManager.is_network_endpoint_enabled() to see if Neutron
is available. Optimize the paths a bit to skip auth when it is not
necessary; the upshot is Neutron will be assumed in these cases now.
This gets a LOT cleaner when it appears is a future osc-lib.
Change-Id: Ifaddc57dfa192bde04d0482e2cdcce111313a22a
The lastest ipdb depends on ipython 6.0, but ipython 6.0
only can be installed in python 3.3 and above, see
http://paste.openstack.org/show/607632/ . If we try to
run "tox -e debug" in python2.7, the install error is raised
and block the function. Remove the ipdb installation, it's
not necessary, we can use pdb to replace.
Change-Id: Ib47bb5925b7a5b1d3a319b58fa219c1b57dccb93
Use only one line for mocking network resources like ports
and networks in test_server.py.
Change-Id: I451a504c3afdd365e64d66079516ec6308c206db
Depends-On: I624b1bc557a195bdf8a7c5a32dc0e72a6fa8b075
An error in network func test broke our CI,
looks like the "is_default" should be "False"
by default for now.
Change-Id: I021eb8abd9bdf55c7c06031152c107312f104b34
An upcoming release of pbr will require explicitly stating which
builders are requested, rather than defaulting to html and man. Head off
any potential impact this may cause by explicitly setting this
configuration now.
Change-Id: I243ca33f5459009f9a9670ec5e0ad67b04760f35
api.compute.APIv2 floating ip pool function.
novaclient 8.0 is now released without support for the previously
deprecated nova-net functions, so include a new low-level REST
implementation of the removed APIs.
Also includes a handful of cleanups that the previous security group and
floating IP reviews missed.
Change-Id: I20116ec4fc1113857d8d917bfb30fa3170d05b9f
api.compute.APIv2 network functions.
novaclient 8.0 is now released without support for the previously
deprecated nova-net functions, so include a new low-level REST
implementation of the removed APIs.
Change-Id: If230f128e91cda44461fe93c976cac2aecec2252
Split up the network unit tests between compute and network APIs
into separate files in preparation for reworking the compute (nova-net)
implementations to deal with the removal of deprecated nova-net
support in novaclient 8.0.0.
No code changes are intended here, just splitting two files into four.
Change-Id: I2d001118af436f95025d2851341f8ca802e78830
api.compute.APIv2 floating ip functions.
novaclient 8.0 is now released without support for the previously
deprecated nova-net functions, so include a new low-level REST
implementation of the removed APIs.
Change-Id: Ic461b8d15e072e0534dcd73fff6857581d83c89b
api.compute.APIv2 security group rule functions.
novaclient 8.0 is now released without support for the previously
deprecated nova-net functions, so include a new low-level REST
implementation of the removed APIs.
Change-Id: Ieabd61113bc6d3562738686f52bb06aa84fca765
api.compute.APIv2 starts with security group functions.
novaclient 8.0 is now released without support for the previously
deprecated nova-net functions, so include a new low-level REST
implementation of the removed APIs.
Change-Id: Id007535f0598226a8202716232313e37fe6247f9
The patch https://review.openstack.org/#/c/198506/ rename option
--os-endpoint-type to --os-interface a year ago, but lots of users
switch to osc from these project specified clients, like: novaclient
and neutronclient, they used OS_ENDPOINT_TYPE and --os-endpoint-type
for long time, we should add the notes into openstackclient manpage,
let them know the gap exists, and how to make it works.
Change-Id: Ic84a60744aa4e519994a18104deae0c2b5b8b0ed
Closes-Bug: #1678144
Split up the floating IP unit tests between compute and network APIs
into separate files in preparation for reworking the compute (nova-net)
implementations to deal with the removal of deprecated nova-net
support in novaclient 8.0.0.
No code changes are intended here, just splitting two files into four.
Change-Id: Id62148bb21e913116f9f2084c5761cfa24e8d34c
When do the action "tox -e pep8", result is "ValueError: No closing
quotation". Which is caused by the tox.ini. The min tox version is
1.6. In my environment, tox version is 2.2.1. If the tox version is
more than 2.3, the error will not happen.
Depends-on: Iee7b043ac7d381dadf89d26098f69e935ed81d6b
Change-Id: Id10ddf6244e7e25e6f66c97773d426b0b4789479
--nic option is quite unhandy. It is better to have
two seperate options --network and --port to add a
network to a new server.
Change-Id: I523abdc83ca2dd4c5dd3871f8f109c2bf57c2e02
Closes-Bug: #1612898
Split up the security group tests between compute and network APIs
into separate files in preparation for reworking the compute (nova-net)
implementations to deal with the upcoming removal of deprecated nova-net
support in novaclient 8.0.0.
No code changes are intended here, just splitting two files into four.
Change-Id: I3fbdde45f593a30de545ddd11e319a4d6f900b18
When router_distributed=True is set in neutron.conf,
user can't override this and create a centralized router
through openstack client. Openstack client allows modifying
routers from distributed to centralized after creation but
not supporting centralized flag during creation. We allow
centralized and distributed flags during router creation
with this change.
Closes-bug: #1664255
Change-Id: I75f72ca695338ad8c381cfa89fbb9d8e61ee7bc5
Implements Neutron feature of floating ip associate/disassociate
into OpenStack Client.
Previously, network.find_ip() function only supported to
search floating ip by UUID. Hence, _find_floating_ip()
function is used in floating_ip.py, to search fip both by UUID
and ip_address. [1] adds the ability to find fip object using both UUID
and ip_address. This functionality however, won't be available until
the SDK is released. Hence, we continue to use _find_floating_ip()
method, which was cleaned up by [2] to remove the use of ip_cache.
Once, the SDK is released, we will remove all the usage of
_find_floating_ip() method and instead only use network.find_ip().
[1] https://review.openstack.org/#/c/449879/2
[2] https://review.openstack.org/#/c/447938/
Change-Id: I6c5222287c46ca42365917d2deae70bdb626347
Co-Authored-By: Reedip<reedip.banerjee@nectechnologies.in>
Co-Authored-By: RuiChen<chenrui.momo@gmail.com>
Closes-Bug: #1560297
This patch adds "qos-policy" option to "port create" command,
and "qos-policy", "no-qos-policy" options to "port set" command
and "qos-policy" option to "port unset".
Change-Id: I78072e1ff0dd30a2e23a0fb833ce6ab5cf246016
Co-Authored-By: Nguyen Phuong An <AnNP@vn.fujitsu.com>
Co-Authored-By: Rodolfo Alonso Hernandez <rodolfo.alonso.hernandez@intel.com>
Partial-Bug: #1612136
Partially-Implements: blueprint network-commands-options
Currently we have an ip_cache returned from _find_floating_ip() which
is generally ignored as it is not always required.
This patch removes the need of ip_cache in _find_floating_ip().
Co-Authored-By: Sindhu Devale<sindhu.devale@intel.com>
Change-Id: I8b92271185f82f275fa73adad03e9dad70be70e4
This change enables to specify which fixed-ip will be added to a vm using:
openstack server add fixed ip <vm> <network> --fixed-ip-address <ip>
This change uses interface_attach instead of add_fixed_ip[1] which is
less flexible and uses a deprecated API.
[1] https://review.openstack.org/384261
Closes-Bug: #1678140
Change-Id: I7fe4621439ef0d8dca080551ffaeb614c5a91174
This patch fixes the neutron CLI mapping for neutron flavor-associate
and flavor-disassociate since [1] got merged.
[1] - https://review.openstack.org/#/c/403907/
Change-Id: Ifd09a8b091ae89c33a06590aba935df5e22e215b
Cleanup help strings and docs for clarity and to keep things consistent:
* --limit metavar should be <num-resource> to indicate what is being counted
* --marker metavar should be <resource> or <resource-id> to indicate the
type of value being specified
* <*-ip-address> metavars should be just <ip-address> as there is no difference
in format between fixed and floating IPs
* Move all occurances of '(name or ID)' to end of help text
Change-Id: I2c31746ed6ded3845244e03e57d809f8bc0e6b9d
This change enables to add/remove a specific port to/from a server using
the new commands:
openstack server add port <vm> <port>
openstack server remove port <vm> <port>
Closes-Bug: #1678137
Change-Id: I6ee57df089235ccc1fb9d38316bd484956b1134d
This patch introduces network flavor associate and disassociate to
OSC. The following neutron equivalent commands are implemented in OSC:
- neutron flavor-associate
- neutron flavor-disassociate
Change-Id: Icba4dbf7300a36353142586359059cd6784049dc
A special scenairo is that users want to check the commands
help message, but don't set authentication info at all. Add
a related functional test case to cover it.
Change-Id: I7b09701df24d6f6dfcf369f89212f72e753be6e4
The Nova API responds with an validation error when a bdm is submitted
containing an empty volume_size. So instead omit that attribute when it
is empty.
Change-Id: Iba905fca8c440a03e828c20922f3b813bba3fa3a
Closes-Bug: 1677236
Some deployments create by default HA routers, this change enables to
force the creation of a legacy router using:
openstack router create --no-ha ...
Closes-Bug: #1675514
Change-Id: I78f7dc3640a2acfdaf085e0e387b30373e8415f1
- Fix option-describe typos
- Correct option and envvar markup, for commands that are using the
reference form instead of the definition form or are marking up
option arguments as options
- Avoid duplicate commands
- Fix some invalid docstrings
- Fix some invalid indentation
- Disable the murano plugin, which has invalid docs
- Correct issues with- and track the network-topology spec
- Include API modules in docs
Change-Id: I3d5ed5e872540fe13f3e4bd5e9335829dc9a5226
This is unnecessary as pbr has since been fixed. It was causing a broken
build as it didn't respect the '[pbr] autodoc_tree_excludes' setting in
setup.cfg.
The 'openstackclient/volume/v3' directory is an empty module containing
only an '__init__' file). Empty modules = unhappy autodoc, thus, this
module is ignored.
Change-Id: Ie355b14c14b7badccb5c25f7c17edbc5e4b3804f
Don't do it.
os-client-config's plugin loading has been causing this pain for a long
time, removing the KSC hack-around in o-c-c unmasked this again. So when
auth is not reuired, just don't let o-c-c do any plugin loading at all.
Ever.
Of course, this shouldn't be in OSC either, but we have to do this until
the equivalent fix lands in osc-lib, is released and makes it into the
global requirements minimum version.
Depends-on: Ie68c82f7b073012685f0513b615ab1bf00bc0c3a
Change-Id: Ifdf65f3bb90fb923947a2cbe80a881d71a3fee56
* Fix volume transfer request accept to actually not crash when
trying to call Volume API.
* Fix volume transfer request accept syntax to have only one
positional argument, which is the ID of the resource in the command
* Change the output column order in volume transfer request list to
have ID followed by Name then the remaining columns.
Closes-bug: 1633582
Change-Id: I5cc005f039d171cc70859f60e7fe649b09ead229
Implement Neutron feature of Extension Show into
OpenStack Client.
Change-Id: Ifecb794838cb3bf8c2466d178345349db3cd4003
Implements: blueprint extension-show
Log messages are no longer being translated. This removes all use of
the _LE, _LI, and _LW translation markers to simplify logging and to
avoid confusion with new contributions.
Change-Id: I504de69b2e64250740ebcab432042a16f966fdbe
Closes-Bug: #1674584
[1] had some trivial changes in the main code, which
are being put forward in this patch, to consider future scenarios.
[1]: I77a933f4b3ce875c63cef5b6a32aee78fd844b03
TrivialFix
Change-Id: I8e8fbb194cd319e5605f09c94ae09e952d0961b1
Similar delete commands in OSC, we can also support add/remove
multi users for one specified group, this review implement it.
Change-Id: I8ccf99d4ee83a18778fa3ff5c0a42bc7c6ff21fb
Implements: bp support-multi-add-remove
Use a common pattern to handle option pairs --XYZ and --no-XYZ for managing
lists of attributes. This pattern looks at the presence of the option
in parsed_args first and branches as necessary.
Some specific steps are included for the SDK Network resources to reliably
set the 'dirty' flag for changed attributes via one or both of the following:
* iterate over lists of original resource attributes to force the creation
of a new list object
* use [].extend() rather than += to add to the existing list (substitute
{}.update() for dicts)
Change-Id: I0c3f9a52ffe1ae2b5b230cb13d6376dd9131aaf9
This change enables to specify which vm fixed-ip will be associated to a
floating ip using:
openstack server add floating ip <vm> <fip> --fixed-ip-address <ip>
Closes-Bug: #1624524
Change-Id: I2ddb68c5873bfed7293b0e661d1adbe111681136
The ChangeLog is built using commit message summary lines. Unfortunately
some of these contain invalid rST markup. There's no way to
retroactively fix this, so simply stop including the doc.
Change-Id: I6600c1baf142fe4c776f1ae170faa3f6a87b330c
Implement Neutron feature of Network Flavor Profile
into OpenstackClient
This patch implements the following commands:
network flavor profile create
network flavor profile delete
network flavor profile list
network flavor profile show
network flavor profile set
SDK Version needed: 0.9.9
Change-Id: Ie6fe5e53122cfb2eda8d326851d54562739a8386
Partially-Implements: blueprint neutron-client-flavors
openstackclient does not allow the update of a port's MAC address.
However this is possible in neutron API (though by default policy
it is an admin-only operation). Allow it in openstackclient too.
Change-Id: Ibd9e0a6fbd1d0d461b8a8daee24dbb7c3f929df6
Closes-Bug: #1670707
Due to a default Keystone policy until Newtown,
and the use of resource_find, non-admins are unable
to list their own projects.
This patch bypasses this problem while also introducing better
UX for non-admins wishing to get their project list.
'openstack project list' retains the default of 'list all projects'
but on a forbidden error will default instead to 'list my projects'.
This way for non-admins 'list my projects' feels like the default
without breaking the expected admin default.
Adding the '--my-projects' option allows admins to easily list their
own projects or allows non-admins to be explicit and bypass the
forbidden error fallback.
Change-Id: I1021276f69fbbf28e13e17c4e567d932fce7ed8b
Closes-Bug: #1627555
When checking whether a given user is in a given group, keystone will
return a 404 Not Found if all went well but the user was not in the
group. It may also return a 403 if the user and the group are in
different backends, which would also mean that the user was not in the
group[1]. Any other 400 response is a client error and any 500 response
is a server error to which the user should be alerted.
Without this patch, openstackclient treats any exception as a valid "not
found" and may end up hiding server errors. This patch reduces the
caught exceptions to 403 and 404 responses and treats everything else as
an error.
[1] https://developer.openstack.org/api-ref/identity/v3/?expanded=check-whether-user-belongs-to-group-detail#check-whether-user-belongs-to-group
Closes-bug: #1672634
Change-Id: Id3f3b2409b7cee480ee3c19b6d6c3070599ffe8f
Implement Neutron feature of Quota List into
OpenStack Client.
Change-Id: Idf941acf8d00b136776b7381b877c56d82622f57
Partially-Implements: blueprint neutron-client-quota
network-flavor.rst
* The opening quote of :ref: should be a backquote
* Closing paranthesis was missing after the reference
network-service-provider.rst
* A blank line is required after a label definition
Change-Id: Ie5c2bedbb6e5b4337b69a7d1ea75c47366e3d627
Move common bits into a compute.v2.common.ComputeTestCase class
so they are available as needed without calling into other test
classes.
Change-Id: I1afcc04ba705b0bbb85628117e7ca91080cf1895
The "Project" column of the output of
"security group list" command is blank
since the new attribute name is "project_id"
not "tenant_id" in network resource, so change
it to display project IDs properly
Change-Id: Ie2a071afac3b5a8aaa2c6f1c50d44ae06905d916
Closes-bug: #1659967
Some functional tests try to parse the CLI table output
format, that cause much work on parse string by using
regular expression. Using json format in functional tests
is better and easier way, this patch reworks for meter and
meter rule related tests.
Change-Id: I1f2a95c873a4ed23dd1afa4040900a1c7704d0bf
This reverts commit 8e277c64fb.
After [1] merged in osc-lib, we can Avoid 'NoneType' error
when format conversion now, So [2] in no longer needed,
we can clean it up.
Hold this until [1] released and included in the requirement
in OSC.
[1] https://review.openstack.org/#/c/434768/
[2] https://review.openstack.org/#/c/420420/
Depend-On: I649b4fc65ef7c19b8193b07f3bd59f00e6095f9f
Change-Id: I2783713102d5e6164d9617f130c2f595bd6d939e
The attribute formerly wasn't working because it is lacking support in
the SDK. The patch to add it[1] introduced a modified spelling, so we
should be matching this here.
Also make sure that the attribute is not shown when displaying subnet
objects, as it is meant to be invisible[2].
[1] I72c0be77d96f3891748cdd69c382211dc20dbf5e
[2] http://git.openstack.org/cgit/openstack/neutron/tree/neutron/extensions/default_subnetpools.py#n23
Change-Id: Ic125b818a6082d76a1114fe89e0b1fcf4c7356b0
Partial-Bug: 1668223
Add sort support to project list by sorting items in the client side.
By default list will be sorted by name.
Change-Id: I00011406846b4003aff075eeeb88ac18fa5e2820
Closes-Bug: #1596818
Currently only py27 and py35 (not py34) is tested in the gate, so
py34 should no longer be part of the tox environment or part of the
PyPi classifier.
Change-Id: I155fc0e3ac06b495718d9fa3058edded738cb011
'network meter' commands are not placed alphabetically
in the command list. It was due to the incorrect filename.
Trivial Fix
Change-Id: I7a76d3133915883cf41be8c7430def284d292d6e
OSC server event is similar to nova's instance action commands.
Server event is the event record that had been done on a server,
include: event type(create, delete, reboot and so on),
event result(success, error), start time, finish time and so on.
These are important information for server maintains.
Change-Id: I8111091f46a0d2755728d8f9d43cc0dfe8842d13
Closes-Bug: #1642030
For now, gnocchiclient has been added in the global-requirements, we
should add gnocchiclient in test-requirements.txt and normalize the docs
entry.
Change-Id: Ide5d8262e7f7c5b1ca304fa72893ccfbf16d8ec1
Aim to specify the private key file to save when keypair
is created. That is a convenient way to save private key
in OSC interactive mode, avoid to copy CLI output, then
paste it into file.
Change-Id: I119d2f2a3323d17ecbe3de4e27f35e1ceef6e0a5
Closes-Bug: #1549410
Some functional tests try to parse the CLI table output format, that cause much
work on parse string by using regular expression. Using json format in
functional tests is better and easier way, this patch reworks for network
flavor related tests.
Change-Id: I2bc5675409945c9ae79ac65df2d5d10781fe595a
The parents_as_list and subtree_as_list query parameters limit the
result to only parents and subtree where the user making the call has
role assignments in. Since OSC only displays the IDs, the call would be
the same as the similar *_as_ids queries, the difference is that the
later doesn't enforce the role assignments (making it more useful).
Output example by using this patch:
$ openstack project show --children root
+-------------+------------------------------+
| Field | Value |
+-------------+------------------------------+
| description | |
| domain_id | default |
| enabled | True |
| id | 123 |
| is_domain | False |
| name | root |
| parent_id | default |
| subtree | {u'456': None, u'789': None} |
+-------------+------------------------------+
Change-Id: Ib7b37ae8f55190a7efcc375d5be4a2823d02d1a4
The behavior of server migrate command are different depending on
whether user specify --live option or not.
server migrate command will call live migration API if user specify
--live option.
Ohterwise server migrate command will call migration(cold migration)
API.
Now then, "--block-migraiton" option and "--disk-overcommit" option
only affect live-migration.
But, openstackclient doesn't warn user if user specify these options
without "--live".
But, user can't recognize that specifying options are ignored.
This patch adds a validation that checks whether or not user specify
these options without "--live".
Change-Id: Ifa278abb23ecdba4b13f3742998359ac74eb7ad4
Closes-bug: #1662755
Update doc/source/command-objects/image.rst to match
output of 'openstack help image create' again.
Forgot this in:
https://review.openstack.org/#/c/437335/
Change-Id: Ied7ed88ea79da0b778cccf19d087b5ee06edcb71
Throwing error 'Port' object has no attribute 'security_groups'
Fix for set and unset.
Change-Id: I1a0625b5a432c7a91cf40249ce4f7c883f53d704
Closes-Bug: #1656788
The Ethertype column was always left empty because a wrong column name
was being used.
Change-Id: I7fc0f8d5eb7bac1efb234faba454dad0a45a7e6a
Closes-Bug: 1667699
Added parser.add_mutually_exclusive_group() for --file and --volume
in openstack image create.
Change-Id: I4d9fc6314801d569354e5644e231ddd6c7f1853d
Closes-Bug: 1666551
The value of is_default always be None, can not be set by
"network set" command. Allow "--default" and "--no-default"
options to be recognized when ``--external`` is not present.
Closes-bug:#1665231
Change-Id: I7a05fc7734a15994f72ca4e47997b4952f1f72f8
The output of current "command list" is so long, it's
very difficult for users to find out the commands
they care about.
Add "--group <group-keyword>" option to filter the commands by group
name keyword, like: --group volume, list all openstack.volume.v2
(cinder) commands
That support the scenario that users need to know the current support
commands of some OpenStack services(nova, neutron, cinder and so on) in
OSC.
Change-Id: Id673042729ad36a0cac0b81fb31a3537c24f03fc
Closes-Bug: #1666780
Implementation of Auto-allocated topology into OSC.
Dependency merged and released in SDK v. 0.9.11
Partially Implements: blueprint network-auto-allocated-topology
Change-Id: I16120910893b0b26b0f7f77a184b0378448458c5
- no need to prefix it with OSC
- since it's a page with a lot of content, make
it show sub headings
Change-Id: I1aab4f71def53f1a11a8a0e0f6b7748233ff02c7
OSC support to filter OpenStack endpoints by service type, name and ID,
but help message and document don't contain "type" for "--service"
option of "endpoint list" command.
Change-Id: I5c8bc28e037b4c6f96ec83525a319353f01f256a
Closes-Bug: #1666841
openstacksdk bug/1588823 exist, no good way to add __version__ for
openstack module properly, fix the issue in osc side, make openstacksdk
module information be available.
Change-Id: I27ff61792443d1aa07f31598bed3aa32f924ff40
Partial-Bug: #1662058
Implements Neutron feature of Network Flavor into OpenstackClient
This patch implements the following commands:
network flavor create
network flavor delete
network flavor list
network flavor show
network flavor set
Works with openstacksdk version 0.9.8
Change-Id: I29d7a62341010a1d067a8ca93bccb7d9b8d4c425
Partially-Implements: blueprint neutron-client-flavors
Partially-Implements: blueprint network-commands-options
Notice that patch [1] fixed the error of properties
format for volume qos in volume v2, but there is the
same bug in volume v1, and the patch missed that, so
fix the problem in v1 as well
[1] https://review.openstack.org/#/c/421065/
Partial-Bug: #1656767
Change-Id: I156bf13d164dbd0d0a7ce394964176718c4ff0e5
Some functional tests try to parse the CLI table output
format, that cause much work on parse string by using
regular expression. Using json format in functional tests
is better and easier way, the patch rework for port related
tests.
Change-Id: I0ec997bf63da4925742848c593db09d89655ca34
osc-lib 1.3.0 is released, which contains these functions that still
need to be migrated all the way down to os-client-config.
Currently osc-lib 1.2.0 is in global-requirements so this can not be
merged yet, but is included here for testing and to be ready for when
g-r is unfrozen.
Change-Id: I7bc8ed6cf78f38bab4a718ed3e2a88641fa23f27
python-openstackclient should not be in a plugin's requirements.txt
as it will pull in the OSC dependencies that may not be desirable.
Change-Id: Id72745704ec70cab438e766dbac21a838fccb523
SDK commit Ie67c240e3caa5e100ce07db3862718195c894748 exposed lingering uses
of Proxy.session in OSC. Get rid of them.
Change-Id: Icab230f1897a446cf3deb0e3d0550d24e11a0ef3
The image selection has been affected by Cirros image changes in DevStack,
make the logic moe robust and convert it to JSON. The conversion for the
remainder of the file will follow.
Change-Id: I8f3318f55ed79d617c3594142f0c086e2bd1a7b1
"auto" and "none" options was added into --nic argument of server create
command in patch https://review.openstack.org/#/c/412698/ , but that
don't work and raise internal error when execute command. The patch
fix that issue and add unit and functional tests.
Change-Id: Ia718c3bac0a5172a0cdbe9f0d97972a9346c1172
Co-Authored-By: Kevin_Zheng <zhengzhenyu@huawei.com>
Closes-Bug: #1663520
Novaclient has provided a public and unified method
get_console_url() to get console urls of server.
This change switches to use it.
Change-Id: Ie6b9d8cfc57a6943b5d64a4064e4bdd372cd8cd3
Depends-on: I36c6209b17ef453e1c2e47841daf41f81af471dc
Closes-Bug: #1654913
This patch adds support to overwrite/clear the flavor's
property using the new ``--no-property`` option in the
``flavor set`` command.
Change-Id: I873c96fcf223bbd638a19b908766d904a84e8431
Implements: blueprint allow-overwrite-set-options
Co-Authored By: zhiyong.dai@easystack.cn
There is a patch for refactor of volume funtional
test in volume v2 [1], but v1 is missing, this
change add the v1 refactor with json format.
[1]: https://review.openstack.org/#/c/417349
Change-Id: I969df3c8dbca21a62f6245e3e95680cf3cd47dc1
if command failed, we usually raise exception,
if command success, sometimes there is not any
output (such as set, add commands)
So modify the error handling for role and group
commands.
Change-Id: I1c0f86c04dcedd9c0d725fd73f3436be9da75ee0
Options "--parents" and "--children" don't work in "project show"
command, fix the issue and add related unit and functional tests.
Change-Id: Id9965267a037442f1077f8e1929d0527981f643d
Closes-Bug: #1499657
Add support to allow filtering ports via --fixed-ip
option to the port list command.
Change-Id: I2f728368d3046b2e6feadd0848bf6f8680e31aba
Partial-bug: #1634799
Partially-Implements: blueprint network-commands-options
When the service name end with keyword "os", like: antiddos,
the parsing logic isn't suitable, that cause the service api
version specified by users don't work.
Change-Id: I5d6217c77d7cd2d2f360d78d8561261398b96685
Closes-Bug: #1658614
KeyError cause the command "module list --all" failed,
fix it, and do refactor to filter private modules and
reduce the loop times, add related unit tests and
functional tests.
Change-Id: Icd77739502e05b5f763a04a92547497bf82d5d63
Closes-Bug: #1661814
OpenStackSDK is >=0.9.13 now in requirement,
so we can update "is_admin_state_up" as well
for the SDK refactor
Change-Id: I02de0ebc752ce602032bbe9d73256ed376993e78
os-client-config is now at 1.22.0 in global-requirements, we can remove
this pw_func setting block as the pw_func arg to __init__() was added
in 1.21.0.
Change-Id: I5bbc3e3aae4f3e4c4333c73bba19bda65e0d8488
Remove the 'shared' key from the attrs passed in to the SDK with 0.9.13.
Also convert the functional tests to the JSON-style (that's how I found this).
Closes-bug: 1659993
Change-Id: I614fbce967cdd07fe7360242547dbf52e7677939
Current compute_client.servers.create() relies on block_device_mapping
arg which is legacy[1]. "block_device_mapping" format require
device_name which is leads to hard-coded hack in --volume key handler
to KVM specific. "block_device_mapping_v2" format is more friendly
to hypervisiors.
Support of block_device_mapping_v2 appear in python-novaclient 2.16.0,
openstackclient require at least 2.29.0
Makes options --volume and --block-device-mapping work simultaneously.
Appends --block-device-mapping data even if --volume used.
After bug 1383338 only --volume was taken when both are used.
[1]http://docs.openstack.org/developer/nova/block_device_mapping.html
NOTE(dtroyer): I moved the new test_boot_from_volume() functional
test to Ie51b1c375c5940856ec76a5770df3c6bd18a3eba to test our
previous behaviour. The only changes required to support the new
behaviour should be that the empty_volume is now attached in that test.
Change-Id: I7bac3d870dd9ca404093142f8bce22a62e49180d
Closes-Bug: 1647406
Closes-Bug: 1497845
Supporting "--no-property" option will apply user a convenient
way to clean all properties of volume snapshot in a short command,
and this kind of behavior is the recommended way to devref.
The patch adds "--no-property" option in "volume snapshot set" command,
and update related test cases and devref document.
Change-Id: I5f10cc2b5814553699920c4343995b2e11416e4e
Implements: blueprint allow-overwrite-set-options
This patch adds the ability to specify the domain context for making
changes to a user with `--domain` flag.
Example:
$ openstack user set test_user --domain test_domain --enable
Change-Id: I2b3241785c22e72e19181394acff650422299b0e
Closes-Bug: #1658147
The Identity functional tests had an assumption that OS_AUTH_URL would
always be present, but when running the functional tests and only setting
OS_CLOUD (using clouds.yaml for creds) this fell down.
Change-Id: Ie589d301f866b06d9f8be8deeb953e03bc01cf09
whenever a resource adds a field (which is allowed in our API
guidelines), OSC functional tests fail, because we validate
the resource keys to a hardcoded list.
instead, this change proposes that the logic of
assert_show_fields is flipped around, so our hardcoded list acts
as a minimum set of values that must appear in the resource.
as part of this change, some fields were remove from the constants
since they were not actually in the returned data.
also, delete unused code `assert_show_structure`.
Change-Id: I8c0f0e80ea472f9c7f93c5f1f0ae52048e6cd7da
Plucked this test out of I5529f412578c50090e70d17aa0129217bf803fed in
order to validate the current behaviour before applying that change.
It was converted to the new JSON-style.
Change-Id: Ie51b1c375c5940856ec76a5770df3c6bd18a3eba
Without this patch, the command 'openstack mapping set <args>' will,
upon success, print the rules for the updated mapping and exit with
return code 1 (failure). This is a problem for scripts and config
management tools that depend on the return code to validate whether the
operation was successful, since even upon success the command returns a
failing error code. Moreover, the behavior of printing the new value is
completely unlike the behavior of any of the 'set' subcommands for
other entities. This patch normalizes the 'mapping set' command by
omitting any return value in the SetMapping take_action() method. This
way the client will only exit with an error code if an exception is
raised, and not upon normal operation.
Change-Id: I610ec3b2fa7561072346d46e49cfc1ae82130e0d
Review Ia66e44e530799ce6531922dcf6a84e38528c8725 changes OSC's server
commands to use the image client rather than compute clirnt (yay!)
but we never really tested any of this in functional tests. This review
adds a simple functional test (in the new style) to watch the client
change; it passes locally for me without the client change, due to timing
we went ahead and merged that first.
Change-Id: I5529f412578c50090e70d17aa0129217bf803fed
With the deprecation of the Nova proxy APIs in microversion 2.36 [1],
any operation that uses a microversion higher than 2.36 and works with
images will fail because the /images endpoint will return 404. This
patch updates openstackclient to query images using the image client
in places where previously the compute client was used.
[1] http://docs.openstack.org/developer/nova/api_microversion_history.html#id33
Change-Id: Ia66e44e530799ce6531922dcf6a84e38528c8725
Closes-bug: 1630161
The choices for valid container formats is out of date in the
image v1 and v2 help text. This patch adds 'ova' and 'docker'
and does some minor refactoring to align the container_format
option with the disk_format option.
Change-Id: Icdea5fab801abd651baf45cf96c920c7df79f11b
Closes-bug: #1658138
Currently, creating trust requires permission to list roles, but
non-admin users don't have permission to do that by default. This
commit adds exception handling on listing roles, and continue to
create trust if server returns 403.
Closes-Bug: #1658582
Change-Id: I4f016b76cb46ae07ef65ed54780881bbcd6210d3
Prepare the OSC "security group" commands for the SDK refactor.
Change-Id: If9918fad2474f9b4d68424f2806f0de61fd58b2e
Partially-Implements: blueprint network-command-sdk-support
Implement network feature meter label rules into
OpenStack Client.
Allows for creation of rules to meter
network traffic.
Partially Implements: blueprint neutron-client-metering
Change-Id: If18c078d7e80c122583417669f820f02c84d6237
Update the example about "--no-property" and "--property"
to make help message order more reasonable, that help make
users aware of the processing order, and update the help
details when both "--no-property" and "--property" appear
in the same command.
Change-Id: I998cdaf2f8c881dce219581ff328a639e8e358ee
Implements: blueprint allow-overwrite-set-options
OSC networking commands need to authenticate to get
service catalog, then decide to show nova-network or
neutron command help message. Fake token and fake
auth_type in prepare_to_run_command() casue os-cloud-config
use AdminToken auth plugin, but pass all the auth information
(include: username, password and so on) to it, that casue the
class initialization error. Pop the fake token and url, then
try to load auth plugin again to fix the issue.
Change-Id: I8b140f0b0a60681fc2a35a013bb0c84ff8cb9589
Closes-Bug: #1650026
Pass OS_* options into tox debug venv in order to
debug functional tests in local, and install ipdb
to make code-debug more convenient.
Change-Id: Ib926948f2b9a52921cf7487fe16ef716481e3ceb
Switch the delete command in subnet and router functional tests. Because
addCleanup will also work when an assertion fails ,except the test is for
testing delete command.
Change-Id: I33634f5148c4895c7cf4d4773a9c33c8368850c7
subnet create failed by some bad random
subnet range, so retry it with new random
range when the test failed.
Change-Id: If528ff419b51dd5c5232f81d4b26abae542bd820
With I308a6c6f3f5ce7dbb814ec0fd8ecb1734a2f137f merged in the
python-troveclient project, trove can now say it has adopted the
plugin.
What commands that actually get implemented for this cycle, is to be
determined. Another patch adding more commands to the docs will be
proposed later when they get merged.
Change-Id: If2c2545dd5d1510cc6eece698e34ad0f8c1b970f
The raw output in the command 'openstack server create'(also in show) is
used in display table directily. the item like
os-extended-volumes:volumes_attached and security_groups needs to convert.
the worry output:
os-extended-volumes:volumes_attached | [{u'id': u'c3525de9-1cbf-4ac8-8b7a-ca295c46633b'}]
security_groups | [{u'name': u'default'}]
Change-Id: Id9db251c315f989e1dc5b1b6231ab328014213e3
This patch fixed a 'volume qos create' display mistake in argument
of 'specs'[1]. For command such as:
$ openstack volume qos create hello
[1]https://bugs.launchpad.net/python-openstackclient/+bug/1656767
Closes-bug:#1656767
Change-Id: Ia9fce833d318d9b52b97c12cfb89e2d3c5465fbe
A bug in OpenStack SDK 0.9.11 and 0.9.12 that causes
quota set command to fail. This can be removed when
the proposed SDK fix (https://review.openstack.org/#/c/419911/)
is released and in the minimum SDK version in global requirements.
Closes-Bug: #1655445
Change-Id: I63132f5f762f0120282f8b92e72512763063e3c6
The /opt/stack/new directories are owned by the wrong user, so python
setup.py egg_info fails because it can't create the egg_info dir.
Changing the invocation to use git+file:// urls solves the problem.
Additionally, make a correction to test collection.
Change-Id: I39da0b26417dce1a72b15dedc02d10284329307f
Work around a bug in OpenStack SDK 0.9.11 and 0.9.12 that causes
quota show --default to fail. This can be removed when the proposed
SDK fix (https://review.openstack.org/420301) is reelased and in the
minimum SDK version in global requirements.
quota set --network is still broken, I can't fix it at the moment...
Closes-bug: 1656572
Change-Id: Ice77e14782c33e672176afbab36bba95b73d7a11
it seems the SDK returns "is_default", but doesn't actually set
it based on --default or --is-default
I already had these functioanl tests mostly converted to JSON, so I dumped
that in here too to make the is_default stuff cleaner.
Change-Id: I47ca62f57c73aa7fa984ca54742fc86b6bb837c4
The floating IP delete and show commands did not work using IP addresses
as the selector, only ID. The SDK floating_ip resource does not support
but OSC does, so we have to do it ourselves.
Now with more SDK 0.9.10 support!
Change-Id: Iea1b57cded6b16a56a06af87ab8f1fa001a3485e
Closes-bug: 1656402
Add "--encryption-provider", "--encryption-cipher",
"--encryption-key-size" and "--encryption-control-location"
options to "volume type set" and "volume type create" commands.
Add "--encryption-type" option to "volume type unset",
"volume type list" and "volume type show" commands.
Change-Id: I3572635d5913d971a723a62d7790ffe0f20ec39a
Implements: bp cinder-command-support
Closes-Bug: #1651117
Fix the formatting of Port Range in the security group rule list command
for Network v2 to handle SDK changes.
Change-Id: Id954cbfaedbb74f60125ebda91f80db751759933
Installing directly from the git url will bypass any depends-on
processing zuul may have done on the dependent repos.
Change-Id: I3dadacf7a855cc4efad701f0a6275d6cd60efd72
Currently Quota Show expects dictionary to be returned
for Network client, similar to Volume and Compute clients, but
Network Object is being returned, causing the "openstack quota show"
to fail.
This patch takes care of this issue.
Depends-On: Ie0e045ff4888615d68804fd739d5b995ca11e9a1
Change-Id: Ic507997cba09fcfa84dd1151d6922f56a7c5187b
Closes-Bug:#1655537
with the SDK at 0.9.12 the below test fails with:
'minimum_bandwidth' not in
+-----------------+
| Type |
+-----------------+
| dscp_marking |
| bandwidth_limit |
+-----------------+
So remove 'minimum_bandwidth' from the asserted fields.
Change-Id: I24ff691ae5a946d901afa763973305025829280b
Closes-Bug: 1653137
nova actually expects and uses swap size in MB, while in openstackclient
currently help states that swap must be specified in GB and passes this
value to nova without changes.
Fix the help string.
Change-Id: I95f46246c072961ce77f818d80d75e6a51f728d0
Closes-Bug: #1656018
Missing unit test for multi volume types delete
in volume v2 (v1 has been done), this patch add
it.
Change-Id: I5fe67196408157f8bdfe6399ba1e559cea3dc559
we can create a new infra job that points to the new test hook,
which should install the master version of the SDK, osc-lib
and os-client-config.
Change-Id: Ib6391893b2302bdc514525d5ddda886fe8c60100
Include option '--human-readable' to 'image show' command.
This option displays image size in human readable format
(such as K, M, G, T,..)
Related Commit: I0ef74c2ec978483fe49156c88acf5c369a8fa5c2
Closes-Bug: #1640086
Change-Id: I28cd5702925d51303d0607ed8dccf12c56434682
'openstack object save' is critically slow to download big objects. While
we 'stream' (chunked download) the data, the default chunks_size
is 1 byte [1], which is terribly inefficient.
[1] : http://docs.python-requests.org/en/master/api/#requests.Response.iter_content
Closes-Bug: 1654645
Change-Id: I2223e5897346acd2f2c1fae638d1193cff833c19
The above mentioned function tries to extract keys() from an item which
is type class.
This patch fixes the issue by converting item to dict by using
to_dict().
Change-Id: Ida520ae9fe64171d105f486ba06eda127a24547b
Closes-Bug: #1654887
Rework functional tests to remove resource create/delete from
setupClass() and teardownClass() methods.
Add test for more command options
Change-Id: I2b6ad1fce26f04c11ed43f8d73515fde4a7d09af
The port functional test can not be passed in my local environment.
When 'dns_assignment' is None, the port create, show command will
fail because parameter for 'utils.format_list_of_dicts' can not be
None.
Change-Id: Iebf16fb7ca681660c2b9ee7839a0629f38c6a38a
This patch fixed a bug of unable to filter volume list by '--project',
'--user' in "openstack volume list".
Modify uint test for 'volume list' to check parameter of list method.
Change-Id: I1fc4296c4c7eca0f7a803dbfd5e15e3bc0d6403f
Add "--project" and "--project-domain" option to volume v2's
"volume snapshot list" command, it will filter list result by different project.
Change-Id: I7dccd6d8d9f1889fa9cb0c2d04a42d77975c645b
commit Id18b8b2fe853b97631bc990df8188ed64a6e1275 added domain IDs
to an Identity provider, our functional tests have a hard match
on what to expect when 'showing' an idp, the domain ID was missing.
Change-Id: I87a1fd762918551c533668a9aa94f7c6268b79d6
* Rework functional tests to remove resource create/delete from
setupClass() and teardownClass() methods.
* Add tests for more command options
* Use JSON output
Change-Id: Ib99ef954fe8e1170c7445940180d80b8b9c0a92c
Add options to allow filtering via --agent-type
and --host on agent list
Change-Id: I1800f0777aa92a76b4b95f64f8acc18454809e81
Closes-Bug: #1641868
Partially-Implements: blueprint network-commands-options
SDK refactor broken network service provider
functional test, tested this command works,
but there is a error in the funtional test,
so fix it.
Change-Id: I783c58cedd39a05b665e47709b2b5321871e558b
Closes-Bug: 1653138
SDK refactor broken ip availability show functional
test, We can not find a ip availability by network
name but only network ID, so we find network and
get the ID first, then find the ip availability
by the network ID.
Closes-Bug: 1653139
Change-Id: I246163fb875e2cdb9e5b091bac500a94268e8aa9
When a private flavor is created with ID auto (=default) and a project
is specified for it, instead of trying to add the project to the flavor
called "auto" the ID of the newly created project should be used.
Change-Id: I19f7a0ec26bd5d147f00ecba3312240e3601567e
Closes-Bug: 1654221
* Rework functional tests to remove resource create/delete from
setupClass() and teardownClass() methods.
* Add tests for more command options
Change-Id: Ic77df94fe5980e60c6a67cbf061b9a9dc601518f
This patch adds 3 new options to the "image set" command: --accept,
--reject and --pending. This updates the membership status for
an image.
Closes-Bug: 1620481
Change-Id: I13b8c067aad68ece9ff636fbdd83bcb3663c91b2
openstackclient fails to get image list when the image api endpoint
has 'v2' substring in the URL. Instead of checking whether the api
endpoint URL terminates with '/v2', the current logic is checking
whether 'v2' appears anywhere in the endpoint string.
This issue was discovered on a production setup where certain
server names had 'v2' in their names. For example, when a hostname
is gopher.dev20.com, the image list APIs fail.
This commit updates the unit test to reflect this scenario. Without
the change in openstackclient/api/image_v2.py, all the unit tests
fail.
Co-Authored-By: sergio.carvalho@workday.com
Change-Id: I26b85afd646938272dbabe8e045b337b7df58c7d
Closes-Bug: 1652827
These are in the minimum required version of osc-lib (1.2.0).
A few methods remain that need to be released in osc-lib, expect them
in the 1.3.0 release soon.
Change-Id: I2333946da9a73e73377b646e4c06e99597990945
Add missing multi deletion error handling for
identity delete commands.
All delete commands in identity support
error handling now.
Change-Id: I05626dcb5e516a423d610906347b02236ba7eeaf
In network_qos_rule_type.py, network_service_provider.py, server.py and
volume_snapshot.py, the description format is using """ """.
In this patch, the former format is replaced with "_description = _( )".
Change-Id: I6863b01d3534e033df745070037ee45286745c92
This patch mainly adds ":option:` `" in several help messages in the doc.
This modification will create one link which helps the readers find the relative
option quickly and conveniently in website.
Change-Id: Ia047e15c3b2064e4822ee7df7922d4774d862602
Implement Neutron feature of Metering into
OpenStack Client.
Meter Rules will be implemented in seperate
patchset.
Partially Implements: blueprint neutron-client-metering
Change-Id: Ie82d42759504cbdb1c991c5183c1f0adf59e60fe
We need to get more thorough in our functional testing, so start by
adding tests for create options.
This also removes the parts of the setupClass() and teardownClass()
methods that do not pertain to the static prereqs for testing.
Change-Id: I0a090a8abc41613d8970343d1b67d101b4c82c65
We need to get more thorough in our functional testing, so start by
adding tests for all create and set options, check return values.
This also removes most of the setupClass() and teardownClass()
methods as they held common state that was subject to race conditions
when running tests in parallel.
Change-Id: Ib337f9e9d16b4183bb319b58cbe943045f365ff2
We need to get more thorough in our functional testing, so start by
adding tests for all create and set options, check return values.
This also removes most of the setupClass() and teardownClass()
methods as they held common state that was subject to race conditions
when running tests in parallel.
Change-Id: I4179f493cea971b7c576ffbf501330b5c57f52f3
SDK 0.9.11 caused some failures, its blocked now. Revert those breakages
that occurred in 0.9.10 -> 0.9.11.
This partially reverts commit 188e32f9e6.
Change-Id: I8b350250dbdcbf5c4599dfb55f6685c0db18bb30
...so we don't have to fix them all in one review.
Do not merge this until https://review.openstack.org/#/c/414649 is merged
and funtional tests pass.
Change-Id: I4f187111d3e4d8c4a613c20a946d6b5d3562e879
Include '--project' and '--project-domain' filtering
options to 'port list' command.
Change-Id: Ic7deae348f737c754b2f3e2113bd76d71a442400
Closes-Bug: #1648087
Added following commands:
- network qos rule type list
Closes-Bug: 1612194
Depends-On: Iecf7bc7acd244a842aae963993f37a64a26b43b9
Change-Id: I38af823c726ceaba9d0b45488fa48e2d93971c92
This patch adds '--allowed-addres-pair' and '--no-allowed-address-pair'
options to 'port create', 'port set' and 'port unset' commands.
Partial-Bug: #1612136
Closes-Bug: #1638265
Partially-Implements: blueprint network-commands-options
Co-Authored-By: Ha Van Tu <tuhv@vn.fujitsu.com>
Change-Id: I08d2269950467a8972a0d0110ed61f5cc7f5ca45
In the current doc, the command examples are like
"os server create" but the acutal command should
be started with "openstack" instead of "os", it
is misleading to first time users.
Change-Id: Ie67c0152d8ff8b7c456f91dc8b9a9164437ee9d1
In the current doc, the command examples are like
"os server create" but the acutal command should
be started with "openstack" instead of "os", it
is misleading to first time users.
Change-Id: I80c96f0938cec382f2f714a500138bd5a2c81aa0
In the current doc, the command examples are like
"os server create" but the acutal command should
be started with "openstack" instead of "os", it
is misleading to first time users.
Change-Id: Ic7686257725e1aa8e4e0d65a712eff1c079927a8
This patch adds the support to clear the gateway information
from a router.
Change-Id: I446c556750f080a6fc21fea8f531fd71838d648a
Implements: blueprint neutron-client-advanced-router
Partially-Implements: blueprint network-commands-options
The overwrite functionality allows user to overwrite
the routes of a specific router.
Change-Id: I8d3cfe5cab2ffbfa046371c3adcd2cf446c91cbc
partially-implements: blueprint allow-overwrite-set-options
The former tests for "backup set" command miss a test for '--description'
option. In this patch, one relative test is added.
Change-Id: Ie755d56a68a666d48751ab1ad20c8edb50e69b94
The doc information for python-searchlight client
is not good and this patch add some information.
Change-Id: I47da1665f5108a4d945b927c134904ab479c144d
This patch adds the support to set the gateway information
for a router.
Implements: blueprint neutron-client-advanced-router
Partially-Implements: blueprint network-commands-options
Change-Id: Ifb5a4d1965cd7e75c0c8cf2cfb677e0628b699dc
Depends-On: I2bda0dd40afd64b6cecca5f64ef2326bda4fac92
Prepare the OSC "network" commands for the SDK refactor.
Change-Id: I50680f6675905f2147fee94cce8c1ed9c81dac0a
Partially-Implements: blueprint network-command-sdk-support
Prepare the OSC "port" commands for the SDK refactor.
See [1] for details.
Also fixed a typo in the UT.
[1] https://etherpad.openstack.org/p/osc-network-command-sdk-support
Change-Id: I0e37d6c04f3d8e81fdfd50ac26eea9b5a5fb2ff9
Partially-Implements: blueprint network-command-sdk-support
Prepare the OSC "router" commands for the SDK refactor.
See [1] for details.
[1] https://etherpad.openstack.org/p/osc-network-command-sdk-support
Change-Id: I2fa12943a65e3981b924e6cea9ed041682ec54b2
Partially-Implements: blueprint network-command-sdk-support
Add "--remote-source" option to "volume snapshot create" command
to support creating snapshot from an existing remote snapshot in
volume v2 (v2 only), also add the doc, unit tests and release note.
Change-Id: I9e5fad4f0db5b44d528eb6b930edbc816e392c3a
Implements: bp cinder-command-support
Closes-Bug: #1618676
Co-Authored-By: Sheel Rana <ranasheel2000@gmail.com>
The patch adds filtering '--long', 'status', '--project',
'--project-domain' and '--router' options to
floating ip list command.
Closes-Bug: #1614379
Partially-Implements: blueprint network-commands-options
Change-Id: I2a02cf23845ff435927d8b481f77249915bd94dc
Add '--force' option to 'volume snapshot delete' command in
volume v2 (v2 only) to allow delete in state other than error
or available.
Change-Id: Ie8991e9a630d7c7e9ac6c6870aed787bbcebacf2
Closes-Bug: #1597195
Before the ".. describe",some codes are left out. I add them in this patch.
In addition, I change "[--property <key> ] to [--property <key> [...] ]
Change-Id: I37ae0ba53e2a2d43a4806b318c7776ff2260fd1d
Add "consistency-group-snapshot" option to
"consistency group create" command to support
for creating consistency group from existing
consistency group snapshot
Implements: bp cinder-command-support
Partial-Bug: #1613964
Change-Id: I54c265d38299f4973945ba99e30042bcf47859c0
Add "--default" option to volume v2's "type list"
command, it will show which volume type the volume
service has set as default.
Implements: bp cinder-command-support
Change-Id: Iae7ebc633ebe5554cc88390a84361887ec211fb2
Add "--bootable", "--non-bootable", "--read-only" and "--read-write" options
to "volume create" command for setting some attributes at the time of crration.
Change-Id: I71b4e9fccb4ee0ab1a90e7179d6d2d34dbbae909
Implements: bp cinder-command-support
This reverts commit 0b6fdcbe4c.
Adapt "image list" to not loop when --marker is specified on command
line.
Update tests to work with current state of code.
Change-Id: I8af58adf8637a9e34371c6280db40935d22bc3c3
The auth_with_unscoped_saml decorator existed to make sure the user
selected the right auth plugin before trying to call either a
'federation domain' or 'federation project' command. This is outdated,
because openstackclient now uses keystoneauth[1] and keystoneauth
removed its entrypoints for the federation plugins[2] since its
_Rescoped class no longer needs them. This patch removes the decorator
since that validation check was the only thing standing in the way of
the commands working correctly. Also removed the '*_list_wrong_auth'
tests since those only existed to test the decorator, and stopped
setting the plugin in the positive tests since the
automatically-determined token plugin should now be fine.
[1] http://git.openstack.org/cgit/openstack/python-openstackclient/commit/?id=6ae0d2e8a54fd5139e63a990ab4bdce634e73c5e
[2] http://git.openstack.org/cgit/openstack/keystoneauth/commit/?id=d9e4d26bb86f8d48e43188b88bab9d7fe778d2c1
Change-Id: Id981739663113447a7bba8ddba81ba9394a19e07
Closes-bug: #1624115
Prepared the OSC "ip availability" commands for the SDK refactor.
See [1] for details.
[1] https://etherpad.openstack.org/p/osc-network-command-sdk-support
Change-Id: Ia22e9fafec0a91ba1b0f1ce825fcaf1d8cbbbf88
Partially-Implements: blueprint network-command-sdk-support
Project_id appear twice when show network resources. This
patch check and not append if it already has one.
Change-Id: I744988f3f52d4a744e397a6a82fefdc4c17eacbf
Closes-Bug: #1636123
Partially-Implements: blueprint duplicated-project-id
This patch added a "dns-name" option to
"os port create" and "os port set" command.
Change-Id: I360e2c9a1970e64fe17e4561d7618f860b937373
Co-Authored-By: Ha Van Tu <tuhv@vn.fujitsu.com>
Partial-Bug: #1612136
Partially-Implements: blueprint network-commands-options
When an exception was caught and rethrown, it should
call 'raise' without any arguments because it shows
the place where an exception occured initially instead
of place where the exception re-raised
Change-Id: I3ec3680debbfad7c06f2251396e0e8e4e3df6c50
This patch added '--project' and '--project-domain' options to
filter subnets resulted by 'os subnet list',
'os floating ip create' and 'os security group list' commands.
Co-Authored-By: Ha Van Tu <tuhv@vn.fujitsu.com>
Change-Id: I727663d49ffa6aa042fdeb60797f18bb753b0372
Closes-Bug: #1613231
Closes-Bug: #1610909
Closes-Bug: #1613629
Partially-Implements: blueprint network-commands-options
This patch adds the currently missing options
`--enable-port-security` and `--disable-port-security`
in the `os port set` and `os port create` commands.
Partially-Implements: blueprint network-commands-options
Change-Id: I4dc11cdf32bf482a5937f5464fe8a3b418644ec3
Unit tests for server create is not completed. Some of the code in
take_action has not been tested.
Change-Id: Ifd3f42400408d3437e0bc6cd42acbb6db861b1f3
The overwrite functionality allows user to overwrite
the dns-nameservers of a specific subnet.
Change-Id: I421808a3bdeb4565668f627b7929c4762cf40212
partially-implements: blueprint allow-overwrite-set-options
partially-implements: blueprint network-commands-options
Using json format output in aggregate functional tests.
Remove resource create/delete from setupClass() and
teardownClass() methods
Change-Id: I6494ca63bfe8a51de0f65570fddcaf38f6c42dbb
Combine "test_module_list_no_options" and "test_module_list_with_all_option"
into one test, and modify the test for "--all' option.
Change-Id: If4e7a73502a888c50de17ec19ef7e8d02dd23f1d
When creating server group, the '--policy' option is required, but
valid choice is 'affinity' or 'anti-affinity', adding multiple
policies will produce an error. This patch add choices and default
value for option '--policy', and remove the former help message.
Change-Id: I312680af384363b3e9a7de9aa1f0946643e193e2
Closes-Bug: #1662771
In volumev2 fakes.py. Description of some 'get_*' methods is incorrect.
the error will mislead the user. this patch has already fixed it.
Change-Id: I048e3c2b625c7b54ab19f2b923d4970427f277ff
Several help messages are not proper.
This patch will do the following work:
* Remove redundant square bracket ']'
* Modify the wrong message
Change-Id: I2f05d1dc86838dbe77169074f93e467a959d0122
Using json format output in compute agent functional tests.
Remove resource create/delete from setupClass() and
teardownClass() methods
Change-Id: Ic7c6c268dfccca097709378c0473eb82cddf7bc6
Add "volume host set" command in volume v2 to support freeze(disable)
and thaw(enable) the specified cinder-volume host
Change-Id: Iee1604d72f9eccd9e327b0ef8d345909a733a647
Implements: bp cinder-command-support
Rework functional tests to remove resource create/delete from
setupClass() and teardownClass() methods.
Change-Id: Ia852e48d3bcf706eefa56b03ba1f02b3fd7605cd
Use choices for image set and image create commands, this aligns
with our use of choices in networking commands.
Also update the help text to match that of the networking
commands, where we iterate through the options.
Related-Bug: 1635518
Change-Id: Ib4c66b06e07f1d4e5bfe1b74053f2215cccad890
Add "--type" and "--retype-policy" options to
"volume set" command in volume v2 (v2 only) to
support changing the volume type for a volume
Change-Id: I0153abdb967aee790586a57cef31930e32005c1b
Implements: bp cinder-command-support
I think admin users will like to see the "Is Public" column
in volume type list since they can know the volume type
is public or private, so add "Is Public" column in volume
type list
Change-Id: I3f6e297a7adf82a275debbd87d2c4da415aa1360
Closes-Bug: #1643861
Checked the volume create unit test has beed completed,
so remove the TODO.
Checked the FakeVolume class has been added in volume
v1, so remove the note.
Change-Id: I82b5f775d013e5e301bc1c18481ef516ca5baa7e
Set the default key and dir for openstack image list,
if no command line argument passed
Changing sort_key to name(old value: created_at)
Change-Id: I6c61f6e5a04824d655ccf43477afcec9652101df
Closes-Bug: #1639231
Prepare the OSC "security group rule" commands for the SDK refactor.
See [1] for details.
[1] https://etherpad.openstack.org/p/osc-network-command-sdk-support
Change-Id: I5553e40fe90f3a26d3f462a69f1a424032479d49
Partially-Implements: blueprint network-command-sdk-support
Prepare the OSC "network rbac" commands for the SDK refactor.
See [1] for details.
[1] https://etherpad.openstack.org/p/osc-network-command-sdk-support
Change-Id: I6f25e167d7f933667173b04a4b0ad55baf3c56f2
Partially-Implements: blueprint network-command-sdk-support
Prepare the OSC "network qos policy" commands for the SDK refactor.
See [1] for details.
[1] https://etherpad.openstack.org/p/osc-network-command-sdk-support
Change-Id: I12dd8bda40801c26176a73646ed87aea66f09fcc
Partially-Implements: blueprint network-command-sdk-support
Prepare the OSC "subnet" commands for the SDK refactor.
See [1] for details.
[1] https://etherpad.openstack.org/p/osc-network-command-sdk-support
Partially-Implements: blueprint network-command-sdk-support
Change-Id: I5d58b189e822b2ee61c9c95ccf909113ff59de46
Add commands:
consistency group snapshot create
consistency group snapshot delete
consistency group snapshot list
consistency group snapshot show
in volume v2 (v2 only)
Change-Id: Ib4115f8ff00fb5aa8194588223032657eb1346b5
Closes-Bug: #1642238
Implements: bp cinder-command-support
The method being changed constructs domain-related parameters that will
further be passed to the auth plugin. If project domain is not
passed, the method sets it to the default domain.
token_endpoint does not expect any information about domain,
because it uses only a token and URL. Passing it to auth plugin causes
an exception.
Construct domain-related parameters only for specific plugins, such
as password or totp.
Change-Id: I13db3bbe31a0ed843e9f4528d37c768546e2bee9
Closes-Bug: 1642301
Glance API v1 has been deprecated, so it's better to use v2 as
the default API version in openstackclient.
Closes-Bug: 1642772
Change-Id: I7d9e3228a2f3a3d0da437b7ee6f23e528de27fd3
Leverage the new cliff command class attribute (_description)
to get the help of a command, this allows us to mark strings
for translation. We could not do this before since the help
was grabbed from the docstring.
This also depends on a new release of cliff and a bump to the
minimum level in osc's requirements.
Closes-Bug: 1636209
Depends-On: Id915f6aa7d95a0ff3dc6e2ceaac5decb3f3bf0da
Change-Id: I8673080bb5625e8e3c499feaefd42dfc7121e96f
Review I03fd0e14e470e7272930ac2651e73263b83bd4e1 renamed the
--src-group and --src-ip options to --remote-group and --remote-ip
but did not properly deprecate the old option names.
Add deprecation warnings when the old option names are used.
Also, format the warnings using the new proposed translation guideline
for marking substrings to not be translated, such as literal names
and option names.
Change-Id: I63d085d190fc28b8637e7686016eda4efbdda1be
Now all the volume unit tests (both v1 and v2)
are using fake classes. All the old fake data
and code can be removed.
Change-Id: Ib35ad4b6c94c42a21215e012f80f8978a74a3d18
The patch adds filtering '--network', '--port',
'--fixed-ip-address' options to floating ip list command
Partial-Bug: #1614379
Change-Id: I82319d0985d9e864431097c90264a20bf88167cc
Problem: if a user issue the cmd 'openstack floating ip create public'
and has already maxed his quota for FIP, OSC exits with a not so useful
message:
>jordan@jordan-XPS13-9333:~ $ openstack floating ip create public
>HttpException: Conflict
This patches catch the HttpException earlier and prints a more
verbose message:
> jordan@jordan-XPS13-9333:~ $ openstack floating ip create public
> Error while executing command: Quota exceeded for resources: ['floatingip']
Change-Id: I7c87524d871d230d92f007c32e06439b34c7194a
This patch adds '--description' option to
os security group rule create cmd.
Change-Id: I604bcdeb4658d2dcc4d860a87e704e186cca5225
Partially-Implements: blueprint network-commands-options
Partially-Implements: blueprint neutron-client-descriptions
Similar to what 'volume list --all-projects' does, 'volume backup
list --all-projects' list volume backups accross all projects.
Change-Id: Id5dda9b5adc822c4ddfb2dda339946d3322858e2
For ingress rules set ip-prefix means src-ip-
prefix, but for egress rules set ip-prefix means
dst-ip-prefix. It is not appropriate to name
src-ip directly. So as to src-group.
Change-Id: I03fd0e14e470e7272930ac2651e73263b83bd4e1
Closes-bug: #1637365
Prepare the OSC "floating ip" commands for the SDK refactor.
Change-Id: I02052185b3ce0b053acdcf76a0f68d49e6f7e608
Partially-Implements: blueprint network-command-sdk-support
1.change the command name ``snapshot create/delete/list/
show/set/unset`` to ``volume snapshot create/delete/list/
show/set/unset``.
2.change the optional parameter "--name <name>" to a
positional parameter "<snapshot-name>"; Change the
positional parameter "<volume>" to a optional
parameter "--volume <volume>"
Change-Id: If03276ecdf6f0d96893d5ecf91c2aaa64929cff3
Implements: bp backup-snapshot-renamed-for-volume-resource
Co-Authored-By: Sheel Rana <ranasheel2000@gmail.com>
Support --long option and more columns in output of hypervisor
list command, including 'Hypervisor Type', 'Host IP', 'State',
and 'vCPU Used', 'vCPUs', 'Memory MB Used', 'Memory MB' with
--long option.
Change-Id: I0c790c7835309dded03e230cf497168e19404537
Closes-Bug: #1637074
removed unneccassary directories in .coveragerc file
openstackclient/openstack/*
it is no longer valid, we no longer use content from oslo-incubator
Change-Id: I0b361617e855aae322009b97697dcc13a394ceba
Project_id appear twice when show network. This
patch check and not append if it already has one.
Change-Id: I4400239f454522101b639a0412050dd60eb6a612
Closes-Bug: #1636123
Partially-Implements: blueprint duplicated-project-id
FakeImage class has been added in image v1 so that
we can reuse it in volume v1 unit test to replace
the duplicated image info in volume v1 fake.
Change-Id: I0f96e568bd65e59241b57704fc2a379319a386d8
Correct help string of subnet pool list options, from
"subnets" to "subnet pools".
Change-Id: Ic6dd6649f411748cd0c6e6b08f0451c8a0fa220f
Partially-Implements: blueprint network-commands-options
We could input a QoS policy ID for the "rbac_object"
parameter in "network rbac create" command but not
name before. After this change, "rbac_object" parameter
can be both QoS policy name or ID.
Change-Id: I0fd6b5b5ae410074d85475ef49e5a0a9a52bf86f
Added support to allow filtering ports via --mac-address
option to the port list command.
Change-Id: I903e443f2f9057571d46520c4cafb88d1972c0cb
Partial-bug: #1634333
Partially-Implements: blueprint network-commands-options
the sdk expects subnet allocation pools to be reset to an empty array,
not an empty string.
Currently this results in an error message:
"Invalid input for allocation_pools. Reason: Invalid data format
for IP pool"
Change-Id: I7cc84b9c8e4abdbd2c91e5d591ad31f0849c1a83
Closes-Bug: #1634672
Add "--read-only" and "--read-write" options in "volume set"
command to set volume access mode.
Implements: bp cinder-command-support
Change-Id: I76ba85c7d3ff0eb026a9cbd794368d8b2b0d17fe
Add "volume migrate" command in volume v1 and v2
to support migrating volume to a new host
Change-Id: Ie4e6037171a31a872006a13f9fd1e15eaa627c26
Implements: bp cinder-command-support
This patchset
1. adds description field to openstack port create and
openstack port set.
2. updates method _add_updatable_args with 4 spaces instead
of existing 8 spaces
Partially Implements: blueprint neutron-client-descriptions
Partially Implements: blueprint network-commands-options
Change-Id: I4598e555722b1de7bc47f3a9be0fd81eacfcb572
Currently router set CLI does not provide the
support make a router highly available. The following
patch enables the same.
Checking for setting a router as HA is left on the
neutron server itself.
Partially-Implements: blueprint network-commands-options
Change-Id: I0d0548cf037a14e5ccb2f732918ee9d1f63f43b4
Closes-Bug:#1631492
This patch adds the Network ID and Project ID
for the listed floating IPs when Neutron is enabled
for OpenstackClient.
Change-Id: I823090f2e6d30acd72247d30956f48f4d7672a50
Closes-Bug:#1566090
The error messages are tuples and not substituting variables.
Before:
$ openstack volume set vol1 --size 1
Failed to set volume size: (u'New size must be greater than %s GB', 2)
$ openstack volume set vol1 --size 1
Failed to set volume size: (u'Volume is in %s state, it must be available
before size can be extended', u'error')
After:
$ openstack volume set vol2 --size 3
Failed to set volume size: New size must be greater than 4 GB
$ openstack volume set vol2 --size 3
Failed to set volume size: Volume is in error state, it must be available
before size can be extended
Change-Id: Ide6e644b1c6d1c11a9dc2f3f53c1a1837380b8d5
Zaqar v1 and v1.1 is deprecated now, and the V2 is the default API
version. Update the plugin doc for it.
Change-Id: I26db823852ba543607b250a09aae63bb439a8959
This patch added direction options (--ingress, --egress) and protocol
option (--protocol) to filter rules by os security group rule list command.
Change-Id: I56ace3f97eb927fd2a868f728c7347a29d028b67
Closes-Bug: #1613533
Partially-Implements: blueprint network-commands-options
This patch will add a new column called status to the
result of the 'os port list' command and --long option
to 'os port list' command.
Co-Authored-By: Ha Van Tu <tuhv@vn.fujitsu.com>
Change-Id: I4f942414e969687304b578ed7f003dd219c0f2f8
Closes-Bug: #1613995
Closes-Bug: #1614321
Partially-Implements: blueprint network-commands-options
Currently, --shared-migration and --block-migration options effects are
reversed: --block-migration requests a migration with share,
--shared-migration a block-migration.
This change corrects OSC implementation and clarifies arguments passed
to novaclient (the root cause of the bug).
Change-Id: Ib682cff0c44d3b1304670f8606907b1762d8b1e7
Closes-Bug: #1518059
Fix the "--route" option one the "os route unset" command. The option
did not convert gateway to nexthop which results "Router does not contain
route" error.
Change-Id: Ia57bc7ea77ad7c6030535180a6ce42b4928c9e56
Closes-Bug: 1631471
Now we have some use cases about set/unset properties,
try to redefine devref to find out a best and easiest
solution to keep commands simple and clearly.
Five use cases exist in property action, "append",
"update", "remove", "clean", "override", the following
rules can cover all these use cases:
1. append ==> "set --property new-key=value"
2. update ==> "set --property existed-key=new-value"
3. remove ==> "unset --property existed-key"
4. clean ==> "set --no-property"
5. clean ==> "unset --all-property"
6. override ==> "set --no-property --property new-key=value"
Related blueprint support-no-property-in-aggregate and
blueprint allow-overwrite-set-options.
Change-Id: If86daf6989d8e0ad0dc6e590d7636be7d5203a18
Add FakeImage class, and refactor the unit tests
with it in image v1.
Change-Id: I9024ca5eca5c604e7588c1d905562bf6838309f1
Implements: bp improve-image-unittest-framework
Releasenote translation publishing is being prepared. 'locale_dirs'
needs to be defined in conf.py to generate translated version of the
release notes.
Note that this repository might not get translated release notes - or
no translations at all - but we add the entry here nevertheless to
prepare for it.
Change-Id: Ib265f919e176f048f6e56bde47db3d99b3dd993e
The auth config hook can have credentials in it so
we have to mask the config before logging it. To
avoid doing the work of masking the password if we
aren't going to log it, there is a conditional put
around the actual debug statement.
Change-Id: I8e626672ec94fc837610216bccb4354dbdedca17
Closes-Bug: #1630822
Prepare the OSC "subnet pool" commands for the SDK refactor.
See [1] for details.
[1] https://etherpad.openstack.org/p/osc-network-command-sdk-support
Change-Id: I6d8cb7a079cf115ee25d48d9175e31f0f995c502
Partially-Implements: blueprint network-command-sdk-support
Prepare the OSC "network segment" commands for the SDK refactor.
See [1] for details.
[1] https://etherpad.openstack.org/p/osc-network-command-sdk-support
Change-Id: I426ecdad0f9d95b89e80fb1c5ba81ffe5fe274c9
Partially-Implements: blueprint network-command-sdk-support
Prepare the OSC "address scope" commands for the SDK refactor.
See [1] for details.
[1] https://etherpad.openstack.org/p/osc-network-command-sdk-support
Change-Id: I4e253e01f9b0b10452354f4e4152468090c76958
Partially-Implements: blueprint network-command-sdk-support
This patch added --ha option which the 'os router create'
command was missed.
Change-Id: I77635fb17af32beb0d8ed9aa080ef79285719fdc
Closes-Bug: #1610161
Ref:https://review.openstack.org/#/c/311653/
We should use 2.1 as the default nova version now
The API_MIN_VERSION of novaclient has already changed to 2.1
Change-Id: I9ff16cf052556e5d3756f81e02a8e76e8f315df5
Closes-bug: #1588171
With Ocata development opened, neutron network segments are no
longer beta resources.
Change-Id: I25be51c30df17c746136471b88840f64a03187b9
Partially-Implements: blueprint routed-networks
1.Add mutually exclusive options into a mutually
exclusive group.
2.Add "--source-replicated", "--consistency-group",
"--hint" and "multi-attach" options
3.Make --size option to be optional under some cases
Closes-Bug: #1568005
Closes-Bug: #1627913
Implements: bp implement-cinder-features
Co-Authored-By: Roman Vasilets <rvasilets@mirantis.com>
Change-Id: I2c4c3073195d33774e477f4d7f22e383b14b41dd
None of the help messages for the object commands
are marked for translation. This patch adds the
necessary support.
Co-Authored-By: Steve Martinelli <s.martinelli@gmail.com>
Change-Id: Ibf472d8f7d5ab6c876f60cddcab8833b28f042e0
Option "--name" can be used to set as the object name of
the file to be uploaded in the container. Similar to option
"--object-name" in command "swift upload". Added unit test case
to ensure an exception is raised when using option "--name" for
uploading multiple objects.
Change-Id: Ied7827841f6ca1cf9d4b48e304cbe5d62eda38ab
Closes-Bug: #1607972
There are options (--rdp,--serial,--mks) in console-url.rst,
but it has no these options after "os console url show", therefore,
I add them.
Change-Id: I4fd6b14f37cb5751021b8d33d4a65dae17e4e4e5
There are some set commands can set object state, it maybe
a danger behavor for users, so add explanation and warning
in the help message of the "--state" option to talk users
be caution when using (cinderclient have done this too)
Change-Id: I6a902887ea98879999c9972f36b1b7ef332173c3
Since we decide to unify the osc doc into the osc repo,
CLI Reference does not provide osc content.
Change-Id: I0d530143105b5411a7a38e9e9d2297a1e8c69071
Add functional test for snapshot commands in volume v1.
Tests can always help to find or avoid bugs.
Change-Id: Ieb0ab9c763d381a6343b4c4a8a5874f3e682f24f
Supporting "--no-property" option will apply user a convenience
way to clean all properties of aggregate in a short command,
and this kind of behavior is the recommended way to devref.
The patch add "--no-property" option in "aggregate set" command,
and update related test cases and devref document.
Change-Id: I7614a23c0db05144562330dc600dbab7d003d5d8
Implements: blueprint support-no-property-in-aggregate
Added simple option for floating ip description when creating
a floating ip.
Added option for create and set router as well.
Partially Implements: blueprint neutron-client-descriptions
Partially Implements: blueprint network-commands-options
Change-Id: Ib8cd8af449e9ff33b980017b2527a6b196894a00
There was not any unit tests for backup commands
in volume v1 so that sometimes some small bugs
maybe ignored, this patch add unit tests for them.
Change-Id: Ic67c1b80243f7b3d15dabd25e4e4a1b1517a8b59
After I found this problem appear in "volume unset",
I checked all the volume command and also found some
same problems. This patch fix them all.
The main reason of we ignored this problem before is
there was not any tests for it. So I add tests for
"nothing unset" for them all to test and aviod this
problem.
Also, I add unit tests for all snapshot commands
in volume v1 by the way in this patch. We will
need more tests to avoid some ignored problem.
Change-Id: I46775f24643d715e168b30785b8b531c0431a55b
Partial-bug: #1588588
Add "volume transfer request show" and
"volume transfer accept" commands in
volume v1 and v2. Also add the unit tests,
docs, release note and functional tests
Implements: bp cinder-command-support
Co-Authored-By: Sheel Rana <ranasheel2000@gmail.com>
Change-Id: I5787fc486b3401307125caa316f517b9c96a95a5
Add "volume backup set" command in volume v2 (v2 only)
to set backup name, description and state
Change-Id: If17e8457db9a4704fb5bb9c75921ed82fd0069cf
Closes-Bug: #1613261
This patch adds the following filtering options: '--name', '--internal',
'--share' and '--no-share', '--enable' and '--disable', '--project'
and '--project-domain', '--status'.
Change-Id: I7e9dd372ee572c6ee8cdba7fac3182f9dc0a137b
Partially-Implements: blueprint network-commands-options
Closes-Bug: #1578819
When nothing specified in "volume unset" command, there
will be an error message says that the "--properties"
option is required, it is unusual behaviour, this patch
fix it and also add unit test for it.
Also, this patch add unit test for "volume show" command
by the way.
Change-Id: I5b5d587670acf0af4262b8521292455bf9f60fe5
Partial-bug: #1588588
FakeVolume class has been added in the fake.py in
volume v1, this patch refactors the volume command
unit tests with the FakeVolume class.
Change-Id: Ic3c1a46d5bff9048d0095f5739ae9e5a34ca6b5b
The help message of command "openstack volume show" accepts either
volume-name or volume-ID. But the metavar is "volume-id" as below.
It can easily lead to misunderstanding.
usage: openstack volume show [-h] [-f {json,shell,table,value,yaml}]
[-c COLUMN] [--max-width <integer>]
[--noindent][--prefix PREFIX]
<volume-id>
Change-Id: I57576ea23868b1026cf268be69b39e98a53aafd4
This patch adds the overwrite/clear functionality
for allocation-pool and host-routes in subnets.
Change-Id: Idfa41173d0c054c5bfb4eda8c5f614928012555a
implements: blueprint allow-overwrite-set-options
The overwrite functionality allows user to overwrite
either the binding-profile or the fixed-ips of a
specific port.
Change-Id: I8ec3d04eeaf28972ee545fcdda4d5f7bd9deb915
partially-implements: blueprint allow-overwrite-set-options
setUp will be automatically called around each
testcase, so this is to remove setUp that doing
nothing additional than super to keep code clean.
Change-Id: I47be2be6f0e9785eb166f89d411582d6292babc1
Added simple option for network description to create and
set network.
Change-Id: I90ce4db4e365a56ecddb00d59f4c5aa2ebbd49a3
Partially-Implements: blueprint network-command-options
The new --network option provides a list of ports
connected with the current network.
Change-Id: I6a45184887b3e65f792391cb7e91f4ad85f29e03
Partial-Bug:#1562067
Partially-Implements: blueprint network-commands-options
This patch adds the following filtering options:
'--share' and '--no-share', '--default' and '--no-default',
'--project' and '--project-domain', '--name',
'--address-scope' options to the command.
Change-Id: I7ad9ed6842c6b3475ebf316fb5b954c7f5a7d7e3
Closes-Bug: #1613926
Partially-Implements: blueprint network-commands-options
This patch adds the following filtering options:
'--project' and '--project-domain', '--network', '--gateway',
'--name', '--subnet-range' to the command.
Change-Id: I575739486b9548492bd00f50130181b825534226
Partially-Implements: blueprint network-commands-options
Closes-Bug: #1610883
Currently L7Policies cannot be updated( it was missing
in implementation in neutronclient). The same has been
taken care in the current patch.
Also, currently quota doesnt support updating the members
in an LBaaS pool. This patch temporarily removes it, till
it is not confirmed that LBaaS v2 needs to support quotas
for members or not.
Change-Id: I25a54a57debb762a32a280ece8c081fc52365f0f
Closes-Bug: #1624097
Health Monitors could not be updated using
the `openstack quota update` CLI.
This patch fixes the same.
Change-Id: Ic5a4fa5dce5767e40139137131114834d564f89a
Closes-Bug: #1624225
Currently SshServer ("server ssh" command) raises an AttributeError if
no explicit login is provided because it uses an attribute which no more
exists.
Change-Id: I86f68230037d51efb41aca62e07e058733ecd67a
Closes-Bug: #1624085
when calling router list with --long OSC expects the availability_zone
field in the response, even if this extension is not loaded:
As per the document, http://developer.openstack.org/api-ref/networking/
v2/?expanded=list-routers-detail, The availability zone(s) for the router
is available when router_availability_zone extension is enabled.
Added testcase to test router list without availability zone
Change-Id: Ic9abb06140eb310b797ade8b0463a876d8bea1b8
Closes-bug: #1622565
Add --bootable | --non-bootable option in volume set
to mark or unmark volume as bootable.
Change-Id: Ifa6c2dd1642202f55b6d50e3b8614d3513d488f6
Closes-Bug:#1535704
Update port unset based on review comments in [1].
[1] https://review.openstack.org/#/c/306236/
Change-Id: Icae6e3869516f2d53f90ad46efc03f897c00b0e5
Implements: blueprint network-property-unset
Add new option "--server" for "port list" command to
list all of the ports that are attached on the specified
server.
Change-Id: I8b5550ea5068405b163711303465b704b5207410
Closes-Bug: #1614385
identity_client should not be used for quota class operation.
Update code to fix the qutoa class set/show issue.
Change-Id: I71c59c08a0d5da29982497f589e1efe131997f21
Closes-Bug: #1609233
Neutron server and openstacksdk had supported to fetch
network project default quota, this patch add the CLI
support in openstackclient.
Change-Id: If0ef74c268c41a866c62156da0603a40ae4e6e31
Closes-Bug: #1204956
Depends-On: I6a4e2a146351dd1e7d652442511f1ef2c279da42
CinderClient bug/1596511 cause that OSC can't unset multiple
properties of volume type, obviously no functional test case
cover the part of logic in OSC, that make the issue raising,
the patch add functional test cases for this scenario.
Change-Id: I42cf9ac8cc72ccc2f1208926d8faf7b80ee2d288
Partial-Bug: #1596511
Depends-On: I60378a32cdc52aacdf869d69b246dec7eb6cdb77
"per_volume_gigabytes", "backup_gigabytes" and "backups" items
can be shown in "openstack quota show" command, but can't be
updated by "openstack quota set". This patch fix the issue.
Change-Id: I47db5a69d4e4ef6e140f2735257c83e1fb052760
Closes-Bug: #1609767
Do refactor for quota command related unit tests, remove
useless code, add new tests to cover '--volume-type' and
'--class' option in "quota set" command and add the
volume quota fake object.
Change-Id: Iaf214740e98db1bfb4c739e810bac1c5ba6e9625
Some virt drivers such as ironic virt driver doesn't implement a
method to get host uptime. For such drivers, hypervisor show command
displays no information although these drivers provides other host
information.
This patch fixes the command to display hypervisor information in case
where a virt driver doesn't provide host uptime by ignoring a
HTTPNotImplemented exception.
Change-Id: I7bcca5862cd9c05aadaf6192cb80aa651cd77cad
Closes-Bug: 1612065
Hypervisor show command has a few bugs as follows.
- It doesn't trim an extra whitespace in the head of uptime
information.
- It doesn't display uptime information when the number of user is 1.
This patch fixes the regular expression to match uptime information.
Change-Id: Ic2f7fd9a9274466717084a0886f95f78e98a9007
Closes-Bug: 1611809
Add "volume transfer request delete" command in
volume v1 and v2. Also add the unit tests, docs,
release note and functional tests
Change-Id: Ic3d375bc8df3312fac53c1800d75f48376b8c91c
Implements: bp cinder-command-support
Co-Authored-By: Sheel Rana <ranasheel2000@gmail.com>
Add "volume transfer request create" command in
volume v1 and v2. Also add the unit tests, docs,
release note and functional tests
Change-Id: If362df1acf214efdf6ba129cd917d33eb54e1030
Implements: bp cinder-command-support
Co-Authored-By: Sheel Rana <ranasheel2000@gmail.com>
Support multi REST API calls error handling for
"snapshot set" command follow the rule in
doc/source/command-errors.rst. Also add a unit
test for testing the error handling
Change-Id: I0c6214271bc54a25b051c0a62438c3344c8b51d7
Some delete commands in volume v1 support multi delete
but do not support error handling, this patch fixes them,
and this patch also refactor (or add new) unit tests for
some delete commands in volume v1.
Change-Id: Ia8177698f8733cfe75ea0ff00eee8fdc0820f62e
Support multi REST API calls error handling for "volume unset"
command follow the rule in doc/source/command-errors.rst.
Also add a unit test for testing the error handling
Change-Id: I2de7a7bd5a7a5e39817ed5cf6952abf4afba75e4
Use the new location in openstackclient.tests.functional.
Depends-On: I49d54f009021d65c1ae49faf6b3f0a7acdadd7b3
Change-Id: I53b8fcc21c5f3638fd334245036c3d99bcaf9012
looks like this test snuck in during the refactor:
$ diff openstackclient/tests/volume/v1/test_service.py \
openstackclient/tests/unit/volume/v1/test_service.py
17c17
< from openstackclient.tests.volume.v1 import fakes as service_fakes
---
> from openstackclient.tests.unit.volume.v1 import fakes as service_fakes
Change-Id: I769b2d39f28cfaf65e4027c785b0ddbbefa26aea
since changing the infra job to call the new bash script location,
the functional tests now have a permission error:
py.error.EACCES: [Permission denied]: mkdir('/opt/stack/new/python-openstackclient/.tox',)
Change-Id: Ibe7057c99feac952d80156fb996d0193e1b0e497
Add network segment create, delete and set in support of routed
networks. This patch set includes documentation, unit tests and
functional tests for the following new commands:
- "os network segment create"
- "os network segment delete"
- "os network segment set"
This patch set also includes support for the name and description
properties.
These new commands are currently marked as beta commands.
Change-Id: I86bc223c4adc5b5fe1b1ee5c9253e43ba52fb5ed
Depends-On: Ib194125162057fccb4e951587c2fa4ec2e2f098c
Partially-Implements: blueprint routed-networks
functional tests should be grouped with other tests (unit and
integration tests). as part of this commit the "common" module
was renamed to just "base", this was done for simplicity.
the post_test_hook.sh file was also copied to the functional module
since it should live there. a separate change to the infra repo
will be made to call the new location, once that is merged we
can remove the old one (a new change will also be posted for that)
Needed-By: I49d54f009021d65c1ae49faf6b3f0a7acdadd7b3
Change-Id: Ie8c334f6223373b8e06df8bd8466500d2a2c8ede
this will better isolate the unit tests from the functional tests.
unfortunately, the "integration" tests had to be lumped into the
"unit" tests since we need the separation in testr.conf
Change-Id: Ifd12198c1f90e4e3c951c73bfa1884ab300d8ded
Auth option prompting happens waaaay to early in the default
os-client-config flow, we need to defer it until adter the commands
have been parsed. This is why ClientManager.setup_auth() exists,
as it is not called until the first attempt to connect to a server
occurs. Commands that do not require authentication never hit this.
Also, required options were not being enforced. By doing this we handle
when no authentication info is present, we fail on missing auth-url rather
than attempt to prompt for a password (default auth is password).
Closes-Bug: 1619274
Change-Id: Ia4eae350e6904c9eb2c8507d9b3429fe52418726
In order to support automatically updating the release notes when we
create stable branches, we want the pages to be in a standard order.
This patch updates the order to be reverse chronological, so the most
recent notes appear at the top.
Change-Id: Ib364dcc8eb31275a31c83b68d7914263b183e393
Signed-off-by: Doug Hellmann <doug@doughellmann.com>
"os-volume-type-access:is_public" property is the
same as "is_public" property in volume type object.
So stop showing "os-volume-type-access:is_public"
property and leave "is_public" property only.
Change-Id: Ic78a9ee69b0ab356edff18cdb4c46fc24b495d2b
Closes-Bug: #1620922
When output to shell, the token issue time is fine; however when
selecting the json formatter (via the --format json) option, an
exception is raised when formatting the dataetime data.
Rather than pass in the datetime data, we should format the data
with the ISO 8601 formatting.
Closes-Bug: 1619937
Change-Id: Iffebb2d5413fabfd283dfa94fc560fc37270f9dd
Move the integration tests into their final home...
* Create tests/integ to hold the integration tests
* Split tests/test_shell_integ.py into tests/integ/base.py and
tests/integ/cli/test_shell.py
* Rename TestXXXXInteg classes to TestIntegXXXX
* Adds tests/integ/cli/test_project.py for some simple project argument tests
Change-Id: I2cdd340d1d446d61784eae35dd5aa09d40d5899d
Add the Python file doing the import to the warnings emitted by
the modules moved to osc-lib. Users will at least have a hint as
to which package is out-of-date.
Change-Id: I633b440c30b2b15cfde7a9013e30dfa39ab200bc
Leaving the pw_func uninitialize in osc-lib turned out to be a
bad idea as the test to prompt in setup_auth() doesn't check
for a callback of None.
Also, release note
Change-Id: I8f875fa8a942d02a040238359ee22c603a4e5956
We start by fixing this in the already-present OSC_Config class so OSC
can move forward. This change needs to get ported down into
os-client-config in the near future, maybe even soon enough to make the
client library freeze this week.
* Add the pw-func argument to the OSC_Config (or OpenStackConfig) __init__()
* When looping through the auth options from the KSA plugin look for any
that have a prompt defined and do not have a value already, so ask for one.
Closes-bug: #1617384
Change-Id: Ic86d56b8a6844516292fb74513712b486fec4442
Tox tests are run on developer machines and on long lived slaves. We
should not leave lots of directories like
/tmp/python-openstackclient-tox_install-sdnltRu lying around.
Instead delete the temporary directory after our run.
Remove also an obsolete comment.
Change-Id: I939eae82dba3287fd4e4086128ebf4609a0e0770
In some part in the code we import objects.
In the Openstack style guidelines they recommend to import only modules.
http://docs.openstack.org/developer/hacking/#imports
Change-Id: I2eb35dc53f0fdb61c31022bb70293d1df8aaf482
The split to osc-lib shell lost the detection of --os-token and
--os-url to set --os-auth-type token_endpoint
Closes-bug: 1615988
Change-Id: I248f776a3a7b276195c162818f41ba20760ee545
Put FakeTransferClient and FakeServiceClient classes
into FakeVolumeClient class, I think we need not to
create FakeClient classes for every objects, we can use
only FakeVolumeClient for all volume objects. This can
reduce repetition, unified codes and make codes look
cleaner and easier.
Change-Id: I2729ef0e80166f4d49ccd9a48b653e2f215e3bfe
Need to add the fixed_arguments arg to _validate_auth() so
os-client-config 1.19.1 and 1.20.0 can call our version properly.
Change-Id: I328e47ba2f8115e6b18bf1482fd4aa35056907a4
The usage of zuul-cloner in tox_install breaks post and periodic jobs.
Update the script, it does not need to handle unconstrainted installs
anymore (see tox.ini). There's no need to set ZUUL_BRANCH explicitely
- it's set via the environment and branch is passed in as well.
Note that this script is needed for the edit-constraints call, add a
comment.
Change-Id: I0077c986a17d6bb92791474e03d1e77776e9382f
Closes-Bug: #1615430
Add '--service-type' to subnet arguments to support
Subnet service-types.
Change-Id: I215d83e4d4cf53e03fa35041c5e41a328641b3a9
Partially-implements: blueprint service-subnets
We have full support for various locales and languages, but often
there are hiccups when setting up a terminal to use OSC in this
manner. Document a few common questions so we don't have to
individually support each bug report.
Change-Id: I0f7c7efce3a2c00cc82ed8c67310e027b5e45a45
These run next to unit tests, but unlike unit tests, they test the
dependent libraries also. This is to detect incompatible breakage
in those dependencies. The tests provide CLI-level input and
verify the API calls being made via requests using requests_mock
so the entire stack is tested.
It is possible we want to run these separate from the unit tests.
They do not belong in the functional tests as they do not require
a functional cloud for testing.
Depends-on: I426548376fc7d3cdb36501310dafd8c44d22ae30
Change-Id: I356956fcc4ff35191a6ad6a085b75cf370434b09
Fix argument precedence hack
Working around issues in os-client-config <= 1.18.0
This is ugly because the issues in o-c-c 1.19.1 run even deeper
than in 1.18.0, so we're going to use 1.19.0 get_one_cloud() that
is known to work for OSC and fix o-c-c with an axe.
Remove return values for set commands
'identity provider set' and 'service provider set' were still
returning their show-like data, this is a fail for set commands
now, don't know how this ever passed before...
Constraints are ready to be used for tox.ini
Per email[1] from Andreas, we don't need to hack at install_command
any longer.
[1] http://openstack.markmail.org/thread/a4l7tokbotwqvuoh
Co-authorioed-by: Steve Martinelli <s.martinelli@gmail.com>
Depends-On: I49313dc7d4f44ec897de7a375f25b7ed864226f1
Change-Id: I426548376fc7d3cdb36501310dafd8c44d22ae30
Add "volume service set" command in volume v1 and v2
(v1 is the same as v2) to disable or enable volume service.
Change-Id: Ibb2db7e93b24cb2e0d2a7c28b6fd8bcc851b8d2f
Closes-Bug: #1613597
with the move to osc-lib we don't have to list some requirements.
removed oslo.config since it was not being used, and moved a few
to test-requirements since they are still used in examples and
unit tests.
Closes-Bug: 1593784
Change-Id: I39b610e6a49a4a346dddcedd231d9a7a81cab261
These errors may caused by copy-paste, we should specify
a fake return value for get() method but not create() method.
Create() mothod will not called in set/unset command. After
specifing the return value of get(), we can use the fake volume
in the assert.
Change-Id: I1e0df4c28ece373168788c396e9082d565e36cc7
Backup commands are used only in volume service now,
but "backup" is too generic, users may not know the
commands are used for volume from the commands name.
By seeing the command name, users can only see the
"backup" but do not know which object the backup
commands work for. It may confuse users. I think
rename "backup" to "volume backup" can depict resource
relation and will be helpful for users to know the
commands clearly.
So add new commands ``volume backup create/delete/
list/show/restore`` to replace the old commands
``backup create/delete/list/show/restore``. And also
deprecate old commands.
Change-Id: I4f844d9bc48573eb4d17288ce6b8a90cea00d16a
Implements: bp backup-snapshot-renamed-for-volume-resource
Co-Authored-By: Sheel Rana <ranasheel2000@gmail.com>
The OSC identity v3 functional tests are failing due to [1] which
added 'password_expires_at' to the user object. This patch set
fixes the tests by updating user object fields list to include
'password_expires_at'.
[1] https://review.openstack.org/#/c/333360/
Change-Id: Id4b060115d4270899ca0af2dc7b67ee723388e31
Add "network agent set" command in network v2 to set network
agent properties.
Also add the unit test, doc, functional test and release note.
Change-Id: Iebaee4c60f8c6b43f538c1b82a38b93178b9ce53
Implements: bp implement-network-agents
Co-Authored-By: Michael Gugino <michael.gugino@walmart.com>
This patch adds '--dhcp' and '--no-dhcp' options to filter
subnets resulted by os subnet list command.
Change-Id: Ib574cc54594845bc5c5afc38bf44e3b224d33b17
Partial-Bug: #1610883
When executed "openstack subnet list --help" we can see this is
supported for --ip-version filtering option.
But this option is missing in the rst document.
Change-Id: Ie5443f1da086a1ad455fbeaa848b50a0d9d4b290
Closes-Bug: #1610872
Support the error handling follow the rule in
doc/source/command-errors.rst
Also add a unit test for testing the error handling
Change-Id: I98064f4b8c1dc17eb3874f7b25c827a568463c0f
Convert to using ClientManager and OpenStackShell from osc-lib.
* Change all internal uses of ClientManager private attributes that are
now public in osc-lib's ClientManager. Leave back-compat copies in
place in OSC's clientManager so we don't break plugins.
* Put some work-arounds in place for changes in osc-lib that we need until
a new release makes it through the g-r and u-c change process.
* Add a test for Unicode decoding of argv in shell.main() to parallel
the one in osc-lib.
Change-Id: I85289740d4ca081f2aca8c9b40ec422ad25d302c
python-neutronclient implements the following command set:
agent-list, agent-show, agent-delete
These commands display and modify various network agents and their
information.
python-openstacksdk has supported the api calls for these commands,
but python-openstackclient does not implement these commands.
This commit adds support for the following commands:
openstack network agent list
openstack network agent show <agent>
openstack network agent delete <agent>
Change-Id: I83ede6f89c37e7bdc38d7e9e7bb9d80e94c8becc
Implements: blueprint implement-network-agents
Depends-On: I9755637f76787d5fac8ff295ae273b308fcb98d0
Co-Authored-By: Huanxuan Ao <huanxuan.ao@easystack.cn>
According to the code in SDK:
https://github.com/openstack/python-openstacksdk/blob/master/openstack/network/v2/rbac_policy.py#L34
we can see the conlumn of "target_tenant" should be
"targer_project_id" but not "target_project". It is
the reason why could not show the "target_project"
in OSC, so this patch fix it.
Before this change:
(openstack) network rbac show b74fd644-e057-4d44-8ae1-7ca9967ea1e1
+----------------+--------------------------------------+
| Field | Value |
+----------------+--------------------------------------+
| action | access_as_shared |
| id | b74fd644-e057-4d44-8ae1-7ca9967ea1e1 |
| object_id | 8735b57f-606a-4f65-9902-2052a6d2a66d |
| object_type | network |
| project_id | 01c0ba43101b4080a52a5f79a55c56ff |
| target_project | |
+----------------+--------------------------------------+
After this change:
(openstack) network rbac show b74fd644-e057-4d44-8ae1-7ca9967ea1e1
+-------------------+--------------------------------------+
| Field | Value |
+-------------------+--------------------------------------+
| action | access_as_shared |
| id | b74fd644-e057-4d44-8ae1-7ca9967ea1e1 |
| object_id | 8735b57f-606a-4f65-9902-2052a6d2a66d |
| object_type | network |
| project_id | 01c0ba43101b4080a52a5f79a55c56ff |
| target_project_id | c7ab4d2ea9e1487095a8ca24ea44ef38 |
+-------------------+--------------------------------------+
Change-Id: I53df127bfc3e43288c6afecdf872e6101b94a658
Closes-Bug: #1608903
Add unit tests for commands below in identity v3:
group create
group delete
group show
group set
group add user
group remove user
group contains user
Change-Id: I02f3b49e93582245a2749492bba1dfc4c5e0258d
The directory openstack/common from the exclude list of
flake8 in tox.ini was used to keep codes from oslo-incubator,
but oslo-incubator was retired, so don't use this directory
any more.
Change-Id: If1ea5dc167cfe4a09aad413b9eab0af807ebe603
OSC does not support to set volume's state, this
patch is going to add this functionality.
Closes-Bug:#1535213
Change-Id: I5bc1c7e81b8ba61c37f4bfd209fc86c5857fb050
Co-Authored-By: Huanxuan Ao <huanxuan.ao@easystack.cn>
Add "network rbac set" command which just supports
setting a target project.
Also, This patch adds the doc, unit test and functional test.
But there is a bug of showing network RBAC
https://bugs.launchpad.net/python-openstacksdk/+bug/1608903
We need to skip the functional test before this bug fixed.
Change-Id: I756f448bb333cf1098a735e57a1c5dc4edf195d4
Partially-Implements: blueprint neutron-client-rbac
Some options are required in some commands, I think we need
a document to state what should we do in this case.
Change-Id: Id345ca1790e2125b333b271b74288e1a73d39ba3
Refactor unit tests in identity v3 for "user", "endpoint", "group"
and "service" with fake classes.
Change-Id: I57316bbf762c805f8e9ae225b394bbe58ebdd416
Partially-Implements: blueprint refactor-identity-unit-test
Fix the documentation to indicate that the value
of OS_DEFAULT_DOMAIN must be the domain ID. A
domain name is not valid here
Change-Id: Id6d42aa10ef346fa5124ef841c5ce408e34d6424
Commands were added for network trunk object as part of
change I6fe1dbd81813fae234801a61c0e3d89f9e7c791e.
This patch adds documentation for the same.
Change-Id: If89478bb4b8af08de11ad521669ba2ee91b76f69
Partial-implements: blueprint vlan-aware-vms
group to server
In AddServerSecurityGroup, we currently pass the security group
name to novaclient. If multiple security groups with same name
exist, then even while passing secuity group using id to
command 'openstack server add security group <server> <group>'
it results in error 'Multiple security_group matches found'.
Added unit test case to test the command.
Change-Id: I6097eb36e1545c85209cfd767c477e10f82c6999
Closes-Bug: 1604076
Add "network rbac create" and "network rbac delete" commands
and also add unit tests, functional tests, docs and release
note for them.
Change-Id: I5fd58342f2deaa9bae7717412a942a21bbd7d045
Partially-Implements: blueprint neutron-client-rbac
Adds support of --server-groups and --server-group-members options
to the "quota set" command.
Change-Id: I178d1e267d010be7e908adefcf3b15abdafd9da4
Closes-Bug: #1602223
OSC doesn't support deleting volumes with associated snapshots.
This patch provides support for deleting volumes with associated
snapshots by adding an optional argument.
Change-Id: I7e74f251574993ff13a38e508fd2f9debeda8d0a
Closes-Bug: #1589332
Co-Authored-By: Rui Chen <chenrui.momo@gmail.com>
When the openstackclient in Python2 passes command line arguments to a
subcommand it fails to pass the arguments as text
(e.g. Unicode). Instead it passes the arguments as binary data encoded
using the current locales encoding.
An easy way to see this is trying to pass a username with a non-ASCII
character.
% openstack user delete ñew
No user with a name or ID of 'ñew' exists.
What occurs internally is when the user data is retrieved it's it
properly represented in a Unicode object. However the username pased
from the command line is still a str object encoded in the locales
encoding (typically UTF-8). A string comparison is attempted between
the encoded data from the command line and the Unicode text found in
the user representation. This seldom ends well, either the comparison
fails to match or a codec error is raised.
There is a hard and fast rule, all text data must be stored in Unicode
objects and the conversion from binary encoded text to Unicode must
occur as close to the I/O boundary as possible. Python3 enforces this
behavior automatically but in Python2 it is the programmers job to do
so.
In the past there have been attempts to fix problems deep inside
internal code by attempting to decode from UTF-8. There are two
problems with this approach. First, internal code has no way to
accurately know what encoding was used to encode the binary data. This
is way it needs to be decoded as close to the I/O source as possible
because that is the best place to know the actual encoding. Guessing
UTF-8 is at best a heuristic. Second, there must be a canonical
representation for data "inside" the program, you don't want dozens of
individual modules, classes, methods, etc. performing conversions,
instead they should be able to make the assumption in what format text
is represented in, the format for text data must be Unicode. This is
another reason to decode as close to the I/O as possible.
In Python3 the argv strings are decoded from the locales encoding by
the interpreter. By the time any Python3 code sees the argv strings
they will be Unicode. However in Python2 there must be explicit code
added to decode the argv strings into Unicode.
The conversion of sys.argv into Unicode only occurs when argv is not
passed to OpenStackShell.run(). If a caller of OpenStackShell.run()
supplies their own arg it is their responsiblity to assure they are
passing actual text objects. Consider this a requirement of the API.
Note: This patch does not contain a unittest to exercise the behavior
because it is difficult to construct a test that depends on command
invocation from a shell. The general structure of the unit tests is to
pass fake argv into OpenStackShell.run() as if it came from a
shell. Because the new code only operates when argv is not passed and
defaults to sys.argv it conflicts with the unittest design.
Change-Id: I779d260744728eae8455ff9dedb6e5c09c165559
Closes-Bug: 1603494
Signed-off-by: John Dennis <jdennis@redhat.com>
Use FakeProject, FakeDomain and FakeUser classes instead
of old test data in image, compute and volume. (This work
has done in network)
Change-Id: Ic37d5d9db98f0f2acc6c714a9646063dcbde4ff3
Partially-Implements: blueprint use-fake-project
In unittest2, assertDictEqual() is implemented by
using != operator to compare two dicts. So is
assertEqual() in testtools. assertEqual() in
testtools is able to handle dict, list, set and
so on. So we just call assertEqual() to make the
unit tests simpler.
Change-Id: Ice343b2ce468acae39d2ad79f7121503e3627656
Add "--public" and "--private" options to
"volume type command" in volumev2 (v2 only)
to list optional volume types
Change-Id: I8605990d62116c10d89ce192c14e550657dabee5
Closes-Bug: #1597198
Add missing unit tests and refactor the older tests
with fake classeds for credential in identity v3
Change-Id: I94d4f80a86806c6115178421bd481b7622065956
The current identity role list command (both v2 and v3) is
overloaded with listing roles as well as assignments (if you
provide user, group, project or domain options). This is in
addition to the v3 assignment list command designed for this
purpose.
This overloading complicates the fact that roles can now be
domain specific (i.e. have a domain attribute), so the
command 'role list --domain <domain-name' will soon become
ambigious (this is in a follow on patch).
This patch:
- Adds a v2 assignments list, with support for pulling the
user and project from the auth credentials
- For comapability, adds the same auth support to the
existing v3 assignments list
- Deprecates the use of role list and user role list to list
assignments
Change-Id: I65bafdef4f8c89e863dab101369d0d629fa818b8
Partial-Bug: 1605774
* Add compatibility for plugin v2 interface removed from osc-lib
* ClientManager.is_network_endpoint_enabled() is wrapper for
new is_service_available()
Change-Id: I6f26ce9e4d0702f50c7949bacfbeeb0f98cddb5d
if there are more than one services be found with one
name, a NoUniqueMatch exception should be raised but
we can see a NotFound Exception raised instead. It is
because in "find_service()", we use "find_resource()"
first, if "find_resource()" return a exception, we just
think it is a NotFound Exception and continue to find
by type but ignore a NoUniqueMatch exception of
"find_resource()". This patch refactor the "find_service()"
method to solve this problem.
Change-Id: Id4619092c57f276ae0698c89df0d5503b7423a4e
Co-Authored-By: Huanxuan Ao <huanxuan.ao@easystack.cn>
Closes-Bug:#1597296
Add a attribute "access_project_id" for flavor object to
display the access project id list by using "flavor show"
command.
Change-Id: I7f0c152b816e0ca2e32e47f9b5c1aa7663d33b6d
Closes-Bug:#1575461
The patch add the support to get server rdp/serial/mks
type console url, that make osc capability equal with
current nova server side feature.
Change-Id: I3dee2531c68563725187c8251d5ea8d4c02cca0c
Closes-Bug: #1605088
OSC does not support to show project access details for
private volume types. This patch will provide support
for showing project access details for private volume types.
Closes-Bug:#1554891
Implements: bp cinder-command-support
Change-Id: I218fb07a6e69033e9f8570748eee1df8df9d6fdc
This patch does the following things to transfer
"ip floating xxx" to "floating ip xxx":
* Add new command "floating ip create/delete/list/show", and doc.
* Deprecate "ip floating create/delete/list/show" command.
Change-Id: Ib071acaac81988431244e858bddafa7f93403df5
Implements: blueprint rework-ip-commands
Closes-bug: 1555990
Co-Authored-By: Dean Troyer <dtroyer@gmail.com>
The dhcp is setting with True by default and progress always
jump into the first if check.
So the no-dhcp option always ignored there.
Check the no-dhcp option first and then the dhcp option value
to avoid this.
Change-Id: Ide640e2cab3936d419ca62105304ff5d4a8a2074
Closes-Bug: #1602588
Support bulk deletion for delete commands in the list below
identity/v3/consumer
identity/v3/credential
identity/v3/domain
identity/v3/ec2creds
identity/v3/endpoint
identity/v3/federation_protocol
identity/v3/identity_provider
identity/v3/mapping
identity/v3/policy
identity/v3/region
identity/v3/service_provider
identity/v3/service
The unit test in identityv3 need to be refactored, so I add
some functional tests instead. I will add all unit tests at
one time after the refactor completed.
Change-Id: I82367570f59817b47c87b6c7bfeae95ccfe5c50e
Closes-Bug: #1592906
Usually we use a fake object in unit test. To match the other
test, add create_one_image_member() in FakeImage class in imagev2
to create a fake image member, delete the old data and update
the unit test of image.
Change-Id: I062a362b15db7e8bc89ec48c540d310199fd6c0b
Usually, the error message of multi delete is:
"'result' of 'total' 'objects' failed to delete"
the objects is a plural form.
To match the other multi delete error messages
in OSC, change the object in delete error message
in networkv2 to a plural form. Just add a 's' in
the message.
Change-Id: I17e0735d025bb61014db709d2639813565015b3d
Some delete conmmands in volumev2 did not support
error handling, this patch add them and also add
the unit tests for bulk deletion
Change-Id: I56ade6f9c7396c78fb989547476c4d94ccd76eae
These were removed prematurely from osc-lib (by me) but the real fix in
https://review.openstack.org/329189 is having racy functional test issues
that may be related to osc-lib, so let's clear this up while we fix that...
Change-Id: I8f67466967751fdf6fd24ae1b16ccee2aec52323
Add "--project" and "--project-domain" options to
"volume type create" command. We can use these options
to add the type access to a given project when we
create the volume type.
Change-Id: I483a6b61dae137682c3d1f7527531b40e508ba92
Closes-Bug: #1602169
Usually we use "(s)" to show about multi deletion in
help message. In addition, I think "EC2 credentials"
is better than "EC2 keys" in the error message.
Change-Id: I6a6461291542701d87a55d9ea0ea1fda6db04601
The checksum could potentially be useful for spotting duplicated images or
checking if images with the same name are identical or different.
Closes-Bug: #1602073
Change-Id: Ia0c41970c846d550de14297e18bc738e847e5a3b
Now that there is a passing gate job, we can claim support for Python 3.5
in the classifier. This patch also adds the convenience py35 venv.
Change-Id: If93af96739741584c87913ba140d0c6cee2aa10d
Cinder V2 API supports creating volume backup with "--incremental"
option. However, OSC doesn't support this argument. So this patch adds
the "--incremental" option to allow users to create incremental style
backups.
Change-Id: Iefac5f1a6c9ef006ad9c22d4250ae6df50504781
Closes-Bug: 1600196
In RemoveServerSecurityGroup we currently pass the entire security
group object, which results in TypeError in novaclient.
Added unit test case to test command 'openstack server remove
security group -h <server> <group>'
Change-Id: I6d486403a83804c3a30d6f89d2cf7f64f09797c6
Closes-Bug: 1590883
FakeProject and FakeDomain classes have been completed
in identityv2_0 and v3, Now we can use these classes
instead of old test data in networkv2.
Change-Id: I2f698e54ff35e24ffbdcaba29da6f96eb263cc0a
Partially-Implements: blueprint use-fake-project
Former patchs add some volume v2 only options for backup but
miss "Volume version 2 only" message. This patch adds them.
Change-Id: Id50db25617776b6ee0d0ad6b4b82bd443b940343
Some code has no notes, then add them
Some code notes are not perfect, then improve them
Some code notes are incorrect, then modify them
Change-Id: I43f9a8663ae138bdd494bc234c1fac00c2dd6c95
Add a new api about network-topolopy in openstackclient
It is the intention for OSC to collect data from existing
REST APIs
Change-Id: I23709ee906555d773c3efeb094aef50587732a1b
Related-Bug: #1586584
Implements: bp network-topology-support
There is now a second .get() call in osc_lib.utils.find_resources.
These tests were failing because they only mocked a single access
call to .get(). Ensure there are two calls to .get(), with the
first one raising an exception.
Change-Id: Idd2ad4a27a6db5bee633cc37a1042dbb0a57aa71
Closes-Bug: #1599333
It's confusing for new contributors to test the client.
Added a quick note to the README explaining how to do so.
Change-Id: I2a185f04bbec7ab01fdd2ab436a5f413f33819e7
When an exception was caught and rethrown,
it should call 'raise' without any arguments
because it shows the place where an exception
occured initially instead of place where the exception re-raised.
Change-Id: I5fb6dea5da7fb6e1e2b339a713c7d37f8c99e407
I checked all the 70 rst files in doc/source/command-objects and
found that:
-one spelling mistake as:rescure should be rescue(server.rst)
-two help messages:xpvnc should be xvpvnc(console-url.rst and
console.py)
Change-Id: I6f46c79983eaf5650bd3aa0ab448c19f5c6527a9
The `Image Name` column is shown by default (i.e.: without passing `--long`). E.g.:
```
$ openstack server list
WARNING: openstackclient.common.utils is deprecated and will be removed after Jun 2017. Please use osc_lib.utils
+--------------------------------------+-----------------+---------+----------------------+----------------------+
| ID | Name | Status | Networks | Image Name |
+--------------------------------------+-----------------+---------+----------------------+----------------------+
| abe67035-b14f-4541-b436-e0e778ec4227 | n9anonw302mgm1 | ACTIVE | mnky3-3000=10.3.0.55 | Koala.2016-07-01-175 |
| 8f6a2d12-2bc3-4d89-ba94-8916ce9cdf92 | n9anonw301mgm1 | ACTIVE | mnky3-3000=10.3.0.37 | Koala.2016-07-01-175 |
| b316d6d1-67cf-4f75-94a4-4c9a2b03f6a4 | n9dobby301mgm0 | ACTIVE | mnky3-3000=10.3.0.36 | Koala.2016-05-04-130 |
+--------------------------------------+-----------------+---------+----------------------+----------------------+
```
The `Image ID` column is only available with `--long`. E.g.:
```
$ openstack server list --long -c Name -c "Image Name" -c "Image ID"
WARNING: openstackclient.common.utils is deprecated and will be removed after Jun 2017. Please use osc_lib.utils
+-----------------+----------------------+--------------------------------------+
| Name | Image Name | Image ID |
+-----------------+----------------------+--------------------------------------+
| n9anonw302mgm1 | Koala.2016-07-01-175 | f587c6fc-1df3-42cd-ac86-8cd2c995a8d9 |
| n9anonw301mgm1 | Koala.2016-07-01-175 | f587c6fc-1df3-42cd-ac86-8cd2c995a8d9 |
| n9dobby301mgm0 | Koala.2016-05-04-130 | 37ff47a6-3e51-4986-bfa5-62afbfad5dfc |
+-----------------+----------------------+--------------------------------------+
```
Closes-Bug: #1599304
Change-Id: I477995b840eb9520b285948926ebbfe1777dd86c
Add '--force' option to 'backup delete' command in
volumev2 (v2 only) to allow delete in state other
than error or available.
Change-Id: I661ea0d465db227e374cbacdde0206fa1a6dd3d5
Closes-Bug: #1597188
Add "--property" option to "snapshot create" command
in volumev2 (v2 only) to support adding properties to
a new snapshot.
Change-Id: Ie0e90c9ccc2ac89b3b7b0ac89751fd864aada9a4
Closes-Bug: #1597192
I check all the files under doc/ directory and find three
spelling mistakes
- exeuction should be execution
- Fefora should be Fedora
- opentackclient should be openstackclient
Change-Id: If9e5d07b6558871bb3f8d55b52bf8f1d9db0897e
latest osc-lib breaks some of the tests, skip them for now
so we can continue to merge patches that are already approved.
Change-Id: I433190e9f763bea1df3135612b281d925745f884
Related-Bug: 1599333
One get_opts method can work instead of
get_list_opts and get_show_opts both.
Remove mutable default value.
Change-Id: I9c5683d416f0f3ed4989abab6f152b0341e30a4f
Neutron is transitioning its CLI to OSC. Some CLIs will reside
within python-openstackclient while others will be OSC plugins
within python-neutronclient.
Depends-On: I9a20bc7a3d8aa7b631fb0fd534fc5705c23326ce
Change-Id: I2d8d369739d1df1597201368dd2158e07c8d2baf
Related-Bug: #1521291
The option is '--force' and the default argument is
'force', so the 'dest=force' is useless and unnecessary.
This patch remove it.
Change-Id: If8fd5270e4e36b5361127f4a91bdf347f29341c2
In 'keypair show' command. One help message had '(name only)'
but the doc had not. And another had not '(name only)' but the
doc had. This patch Fixs them and keeps the consistent between
doc and help message.
Change-Id: Ic88219ae25a6f545a1db39e6b585e1857ae9e2e0
Add FakeProject and FakeDomain classes and update unit tests for
project and domain.
Change-Id: Ifeed5dcba03155daa3b7b46b34d49c333ab19135
Partially-Implements: blueprint refactor-identity-unit-test
This patch does the following things to transfer
"ip fixed add/remove" to "server add/remove fixed ip":
* Add new command "server add/remove fixed ip", and unit
tests and doc.
* Deprecate "ip fixed add/remove" command.
compute/v2/fixedip.py is not removed because the arguments'
positions are different between the new and old commands.
* ip fixed add <network> <server>
server add fixed ip <server> <network>
* ip fixed remove <ip-address> <server>
server remove fixed ip <server> <ip-address>
Change-Id: Ica07ccf92a76c21fd5608ecaff86ff7c4d96f5a0
Implements: blueprint rework-ip-commands
Partial-bug: 1555990
Co-Authored-By: Dean Troyer <dtroyer@gmail.com>
floating ip"
This patch does the following things to transfer
"ip floating add/remove" to "server add/remove floating ip":
* Add new command "server add/remove floating ip", and unit
tests and doc.
* Deprecate "ip floating add/remove" command.
compute/v2/floatingip.py is not removed because the arguments'
positions are different between the new and old commands.
* ip floating add <ip-address> <server>
server add floating ip <server> <ip-address>
* ip floating remove <ip-address> <server>
server remove floating ip <server> <ip-address>
Change-Id: Ic0dd22ca6fb7b7bc3e820fd5a14d7c551e7ab963
Implements: blueprint rework-ip-commands
Partial-bug: 1555990
Co-Authored-By: Dean Troyer <dtroyer@gmail.com>
This patch does the following things to transfer
"ip floating pool list" to "floating ip pool list":
* Add a new command "floating ip pool list" to deprecate
"ip floating pool list". The source code is in network/v2
dir.
* Add doc for "floating ip pool list".
* Add floating ip pool unit tests.
Change-Id: Id410f4e4a96cf589a6e8def209574da71395b55f
Implements: blueprint rework-ip-commands
Partial-bug: 1555990
Co-Authored-By: Dean Troyer <dtroyer@gmail.com>
This patch introduces the ``port unset`` command to
clear the fixed-ip and binding:profile information
from the ports.
Implements: blueprint network-property-unset
Change-Id: I9dba309234105af477e7618a8a437b7fa3b13cd7
Add "--snapshot" option to "backup create" command to support
backing up a snapshot.
Change-Id: Ibecbf1902599875f422d372d529835f73211d3ec
Closes-Bug: #1597184
This patch introduces the ``subnet pool unset`` command to
clear the pool prefix information from the subnet-pools.
Change-Id: I84b7259d6e26e695343d41cea6d807396faaf69a
Implements: blueprint network-property-unset
Add the "--enable-port-security" and "--disable-port-security" options
to the "network create" and "network set" commands. This supports setting
the default port security for ports created on a network.
Change-Id: I1deb505bd77cef2e4bc3c2dbbb0c450665136f47
Implements: blueprint neutron-client
Add "--property" option to "flavor create" command to support
adding properties to a new falvor.
Change-Id: I4f06b364375d5a81584fe41122d48e9568fa712a
Closes-Bug: #1596798
This patch introduces the ``subnet unset`` command to
clear the host-routes, allocation-pools and dns-nameservers
from subnets.
Implements: blueprint network-property-unset
Change-Id: I31324a2423f6d2315eed27445dfdcfe863e0b550
Add ``--force`` option to ``volume qos delete`` command in volume
v1 and v2 to allow users to delete in-use QoS specification(s).
Change-Id: I46036e5f55ced8b8a1be54c521f2a5c242b89160
Closes-Bug: #1596821
Support bulk deletion and error handling for "keypair delete"
and "service delete" commands in computev2.
Up to now, all the delete commands in computev2 support bulk
deletion.
Change-Id: I6d5c960e9716188e56615514d0921618a15a88ec
Partially-Implements: blueprint multi-argument-compute
Partial-Bug: #1592906
the command ``image set tag <tag> <image>`` is now failing
skip the test so our gate isn't broken.
Change-Id: I05e415b212e76aef62c1b0b966863573eff338e9
Partial-Bug: #1596573
Tested "find_resulce()" can find a backup by name or ID.
But some help messages and doc were "ID only", this patch
modify them.
Change-Id: I22dcc3a0b40f2bafabb6d26498158e2468037312
This patch introduces the ``router unset`` command to
clear the routing information from the routers.
Implements: blueprint network-property-unset
Change-Id: Iac8d32ca42fb28878805b4b58ab411b67fa6555b
Cinder V2 API supports creating volume backup with "--force"
option. However, OSC doesn't support this argument. So this
patch add the "--force" option to allow users to back up a
in-use volume.
Change-Id: I326f8d6172b2830da4cf1317348af50142cc5490
Closes-Bug: #1596443
Some command help messages are unusual, for example:
common help message for a list command:
"list objects"
unusual help message:
"list obejcets command"
I think we should keep help message consistent, so I modify
the unusual help messages in computev2.
Change-Id: Ic5f11eba1a4397949e85d91cc067519752e89bff
1. implement "openstack network rbac list"
2. implement "openstack network rbac show"
3. also add FakeRBACPolicy to test "network rbac xxx" command
The unit test class similar to FakeRouter, which is able to
fake one or more rbac policies. It will be used by the rbac
CRUD patches.
Change-Id: I6c97bc8819698546895fd530464a2cbb347bf77d
Co-Authored-By: Huanxuan Ao <huanxuan.ao@easystack.cn>
Partially-Implements: blueprint neutron-client-rbac
Depends-On: I88f409a24947b67146c0f93ec8480834cef56d2f
Commands are "ec2 credentials delete", "service delete", "endpoint delete".
Also update their unit tests and functional tests.
Partial-Bug: #1592906
Change-Id: I1a0b7160b803a523646d09d030e6f112c81c4c24
Patch set [1] fixed timing issues related to the server functional
tests. As part of the review, additional enhancements were
suggested. This patch set provides those enhancements. In particular,
the functional tests will now check for the cirros256 flavor and
the cirros-*-uec image.
[1] https://review.openstack.org/#/c/313870/
Change-Id: I7fe18e26b3d09db92bbe669ffafcd16618cae383
Currently a user is allowed to specify either a resource ID or name
when running openstack identity comands. In some cases, when a name
is specified instead of an ID, the command will return as not able
to find the resource when it in fact does exist.
The changes here are to check the client against the token on such
requests and to extract the ID of the resource specified if enough
information exists between the two. We then use the ID associated
with the resource to complete the user requests.
Change-Id: I40713b0ded42063b786dc21247e854224b9d2fe2
Closes-Bug: #1561599
The unit test of "compute service list" only checked the
"Disabled Reason" columns and its data. It is not enough.
This patch change the test to check all datas in the list.
Also, this patch modify the "Id" to "ID" in this command.
Change-Id: I988fd6365f2652185dd96d9417f294eba9c31cd9
Clean up fakes.py , use FakeCatalog, FakeProject, FakeService,
FakeEndpoint, FakeRole classes instead, also update their unit tests.
Change-Id: I510d175ec194165b0595ebd430e8cc596d363587
Partially-Implements: blueprint refactor-identity-unit-test
"Host set" command cannot work. Because:
1.Host has no 'ID' attribute, so 'ID' attribute cannot be found
in "host set" command.
2.value "True" and "Flase" are invalid in updata() method of host.
3.Some update functionalities is not supported in host API now.
This patch solves the problems 1 and 2 in OSC. But the problem 3
is a API problem and can't be solved in OSC, only XenServer driver
support to set enable/disable and maintenance host, it is a normal
problem.
After this patch the output of "host set" command is:
The requested functionality is not supported. (HTTP 501)
(Request-ID: req-14031fce-8c90-48a0-8492-dc8e3dd349f3)
Just the same as the "host-update" command in novaclient.
Change-Id: Ibe94c4d3d492d3d63355de803810edb988e1b4e9
Closes-Bug: #1594689
[This is not quite reduced from the original proposed fix as some
changes have merged that complicate the switch to OSC_Config and
v2 auth broke anyway.]
Fix the --os-token --os-url breakage in the switch to ksa.
Closes-bug: 1593664
Change-Id: I3ac23234fbf647fb145c7bd151d53c5c105462bf
Add ``--project`` and ``--project-domain`` options to the
``flavor create`` command. We can use these options to add
the flavor access to a givin project when we create the flavor.
Change-Id: Ic1907272c1d1ae526f9c9e86f32ba06c6da147c0
After this patch, all set/unset commands will return normally
when nothing specified.
Change-Id: Id94d0329faa1a674006a9aae901f834b41917317
Close-bug: #1588588
The command "configuration show" tries to redact some of the secrets
that are shown on the screen. However, this failed redacting options
that were marked as secrete by the auth plugins (if any) and it redacted
other options that were not redacted at all. For example, when using
the OpenID Connect plugins, it redacted the "access_token_endpoint" as
the word "token" appears there, but it failed to redact "client_secret"
even when this option is marked as secret in the corresponding plugin.
Change-Id: Idfad4fbbe5ddcff5e729e1dcd756d0379ad31dee
The code is setting defaults for some scope parameters, cheking if the
name ends with some specific substring (namely ending in "password")
causing failures in some plugins that end with the same string, but do
not allow those parameters (like "user_domain_id" in "v3oidcpassword").
Closes-Bug: #1582774
Change-Id: Id7036db3b783b135353d035dc4c1df7c808d6474
The functions check_valid_auth_options() function was relying on the name
for checking the set of required options, but this could cause errors
with external auth plugins. If somebody defines an auth plugin plugin
named "footoken" the check function would check for a "token" option,
even if the plugin has not defined that option. This change tries to
improve this situation, cheking for some options only if they have been
defined in the plugin.
Change-Id: I4255f2e7d4d23449c95be957ea7b6b60983f2608
When OSC failed to set a image's property, it will print
the image name and status, which is an useful info to
users. So translate this massage, and record it in log.
Change-Id: Icdff4dab17dedcb40289700c4cd278e6e62eea25
Support bulk deletion and error handling for "aggregate delete"
and "flavor delete" commands.
Change-Id: I3f6105cbeeab1c9f8cd571c63ce0e7ac3d4252b3
Partially-Implements: blueprint multi-argument-compute
Partial-Bug: #1592906
Add "--device-owner" option to the "port list" command to enable
listing ports based on device owner.
Change-Id: I0a538ec41800b9f842e86dceb6ca4180ef239c95
Implements: blueprint neutron-client
If the default identity API version were to change
in devstack, the v2.0 tests would fail today,
resulting in a broken OSC gate.
Change-Id: Id634ea7e0fab9f3772383b5512ccac19f5119ac0
Update the "--binding-profile" option on the "port create" and
"port set" commands to support both <key>=<value> and JSON input
for the port custom binding profile data. The JSON input is
sometimes needed to maintain the value type (e.g. integer) for
more advanced data.
The port custom binding profile data is unique across neutron
so a custom argparse.Action class was created instead of
writting a generic class in osc-lib.
Change-Id: I82ac6d4f95afdc866f5282fc00d390f850f54d21
Implements: blueprint neutron-client
Added the ability to delete multiple volume types at once. Note
there are no unit tests exist for v1 volume-types, so instead
a functional test was created.
Partial-Bug: #1592906
Change-Id: I99f3f22901ab35252b91a3072b14de7d19cb17ca
Use file logger for all command specific logs.
This patch also fixes some usage that doesn't
follow rules in:
http://docs.openstack.org/developer/oslo.i18n/guidelines.html
After this patch, all self.log and self.app.log
will be standardized to LOG().
NOTE: In shell.py, we got the log in class OpenStackShell,
which is also known as self.app.log in other classes.
This logger is used to record non-command-specific logs.
So we leave it as-is.
Change-Id: I114f73ee6c7e84593d71e724bc1ad00d343c1896
Implements: blueprint log-usage
"Router delete" command supports multi deletion but no error
handling. This patch add the error handling follow the rule
in doc/source/command-error.rst
Change-Id: I3376d957b4dc28d8282599dc909ecc5ed2b5f46a
This changes the scope validation to occur after a token has already
been created.
Previous flow:
1. Validate authentication options.
2. Validate authorization options if the command requires a scope.
3. Create a token (using authentication + authorization options)
4. Run command.
This means that scope was being checked, even if a default scope was
applied in step 3 by Keystone.
New flow:
1. Validate authentication options.
2. Create token (using authentication + authorization options)
3 Validate authorization options if the command requires a scope and
the token is not scoped.
4. Run command.
Change-Id: Idae368a11249f425b14b891fc68b4176e2b3e981
Closes-Bug: 1592062
Migrate 'change', 'update' to 'modify',
migrate 'user to delete' to 'user(s) to delete',
migrate '(name or ID)' to '(type, name or ID)'.
Change-Id: Ie425e178bb5ddf773e6e793fcd91c78e9c4a5053
not sure how this one release note was slotted into it's own
directory, but let's move it with the others.
Change-Id: I20eb36b1778b6fc9b5e550390962ec11dae38db4
The response data of nova get_xxx_console API is changed
from "console" to "remote_console" in microversion 2.6, and nova
server side API schema verify the spice vnc type to "spice-html5",
update OSC code to apply these change so that OSC can work in
different nova microversion cases.
Change-Id: I3bb4fe057e656209d00d2bb308ac3f7f837cb03f
Closes-Bug: #1590318
This patch support bulk deletion for delete commands below:
1.subnet delete
2.subnet pool delete
Up to now, all the delete commands in networkv2 support bulk deletion.
Change-Id: I63f6d1d02bad1fcc26e72b7028b53958a68ce2dc
Partially-Implements: blueprint multi-argument-network
Partial-Bug: #1592906
The formal of multi properties in most docs likes this:
[--property <key=value> [...] ]
[--property <key> [...] ]
This patch modify the formal of multi properties in
aggregate.rst.
Change-Id: I557cd51696d2721c8955c4a79f1ab85de3a0b9ce
<service> argument of `endpoint create` command doesn't mean
`new endpoint service`, but an existent service that the new endpoint attached to.
Change-Id: I846fdb501bdea14499f42288186f375a3b2b5951
The volume v2 functional tests occasionally fail with
"unrecognized arguments: --private". This appears to occur when
volume v1 and volume v2 functional tests are run at the same time
when one or more of the tests do not set OS_VOLUME_API_VERSION
appropriately.
This patch also fixes a timing issue seen when running the
tests locally due to a missing wait and moves the snapshot
test to volume v2 since it was written for v2.
Change-Id: I9c9863fe1aef81b0564920f36452c6f27211d5ba
Closes-Bug: #1589793
This could be a miss when we use osc_lib first in OSC.
command.py has been moved to osc_lib, and should reuse
it and print a deprecate msg if the old file is used.
Change-Id: Ibc35659f6f78b8f5e3c6026db2644a876ef7c549
There was not a default IP version in "ip availability list"
command, if we used this command without "--ip-version" option,
the output was different from the outputs with the option
"--ip-version 4" and "--ip-version 6" and it is not right.
This patch add default IP version (default is 4) in ``ip
availability list`` command and make this command work properly
without ``--ip-version`` option. And also fix the help message.
Change-Id: Idc08ab6eaf05946eb2ab59bfb3d4497a383d987d
Closes-Bug: #1592761
Some delete commands in networkv2 are exist in both network
and compute, They can use NetworkAndComputeDeleteclass to
supprot bulk deletion and error handling and the codes are
similar, so I change them all in this patch. The changed
commands including:
1.floating ip delete
2.security group delete
3.security group rule delete
Also, I update unit tests and docs for these commands in this patch.
Change-Id: I6c94c3d10ba579ddd9b14d17673c821e3481fd8a
Partially-Implements: blueprint multi-argument-network
self.app.log is the logger in class OpenStackShell,
which should be used to record logs that have nothing
to do with any specific command.
So, use the file logger instead.
This patch also fixes some usage that doesn't follow
rules in:
http://docs.openstack.org/developer/oslo.i18n/guidelines.html
1. add variables to logger as an argument
2. do not wrap variables with str()
Change-Id: I248861a38a4de0412a080046aa7a6f6473c3e082
Implements: blueprint log-usage
The OpenStack LLC copyrights date from before OpenStack was transferred
to the foundation. These appear to be getting copy-pasted to new files
so at least should reflect the correct entity.
Change-Id: I02953d752cb24ead6aa4ad8bfe257a48317c9f13
Currently OS_ENDPOINT_TYPE and --os-interface are being ignored for
network commands. This means the public URL is always used.
Make sure that these are picked up correctly so we hit the correct
endpoint (internal/admin/etc.) for commands such as:
$ openstack --os-interface internal network list
Change-Id: Iac05204e3056e386d84d3644b5da1a2bb322bb0a
Closes-bug: 1592368
Aims to evacuate servers from compute host as soon as possible,
operators might set the compute service force down manually.
Novaclient support the behavior, this patch support it in OSC.
Change-Id: I22ff1c5d670c449771fdcb3f4f39cd82f428531a
Closes-Bug: #1589348
1. We should assert flavor.set_keys() is called correctly
or not called in ``set flavor`` unit tests.
2. Commit c7e6973ff5 from me
removed test_flavor_unset_no_project which used to test
if --project was specified as '', and assert CommandError
was raised, which is incorrect. So I removed it. But after
looking into the code, I think we should not remove it,
but specify nothing after --project, and assert
ParserException was raised. So in this patch, we fix it
as so.
('--project', '') --> ('--project')
assert CommandError --> assert ParserException
Change-Id: Ifd33c72d5b7581aaabffb09e9b5e38ecc67e18c0
Use osc-lib directly for exceptions.
Leave openstackclient.common.exceptions for deprecation period.
Change-Id: Iea3e862302372e1b31ccd27f69db59b4953ca828
Add "--network-segment" option to the "subnet create" command.
This is a beta command option and subject to change. Use global
option "--os-beta-command" to enable this option.
This patch set also provides a devref update for beta command
options.
Change-Id: I4d0fbe079b2a873307364c41c22ce9ba88e632e6
Partially-Implements: blueprint routed-networks
This patch fixes the problems below:
1. flavor.unset_keys() is not checked in flavor unit tests.
So check them in the tests.
2. test_flavor_unset_no_project makes no sense. It is OK to
specify ``--project ''`` without raising any exception.
It can pass because in the test, we set nither project
nor property. So remove this test.
Change-Id: I04e537349936343b6d8c85b06bc6d0ba6bd41d6f
Now, we use i18n strings for help and log messages,
and standardize the usage of logger. So fix those
in the example in doc.
Change-Id: Ibbc051b12133699811dd35a7e77a10de50ed8e44
The initial use of osc-lib is behind the compatibility/deprecation
modules that we will leave in place for a time for plugins to catch
up.
* openstackclient.common.exceptions
* openstackclient.common.utils
Module-level warnings are emitted directly on stderr since logging
has not been configured yet.
Change-Id: I79e57ce9523a20366bccaf9b949ab5906792ea0d
Currently OpenStackClient uses keystoneclient for authentication.
This change will update OpenStackClient to use keystoneauth for
authentication.
All dependant test have been updated.
Updating how auth_ref is set in the tests to use KSA fixtures had
some racy side-effects. The user_role_list tests failed when they
picked up an auth_ref that was a fixture. This exposed a weakness
in ListUserRole that needed to be fixed at the same time re
handling of unscoped tokens and options.
Change-Id: I4ddb2dbbb3bf2ab37494468eaf65cef9213a6e00
Closes-Bug: 1533369
set/unset commands should ends up normally instead of raising
an exception when nothing is specified to modify. The main
reason is: When nothing is specified, the command sets/unsets
nothing, which is a normal behavior, and ends up normally.
No API call fails. No error happens.
This patch also adds a releasenote for both network, and volume
commands that fix patch has been merged.
Change-Id: I78c348066078decd350417a431f3b8bea8fcf9ef
Partial-bug: #1588588
All of volumev2 fake classes are completed.
Now the unit tests of volumev2 are using fake
classes so that the old codes are useless and
can be removed.
Change-Id: I502a8a0b0404975744d3b208af3e95c8692e6c47
The set --property command requires that the input match
the "key=value" type, but if the type don't match, the return
value will be None, and the command still can be implemented
successfully, this may confuse the users. I think we should
raise exception if the argument type don't match "key=value".
So I make some changes in KeyValueAction class in this patch.
Change-Id: I14e64922faa7e083bc8b5e7e1cac41ef8117c224
Closes-Bug: #1589935
Give the 2.x series its own release notes page, put the 3.x notes into
the 'current' series page. This removes the OpenStack development cycle
name from the release notes.
We follow the intermediary release model, however the association with
the common cycle release is something that we do not need to reflect in
the doc structure. We want users to use the current version even with
older clouds, not to think they need to use a 'Mitaka' OSC with a Mitaka
cloud.
Change-Id: Idbb6844824d50e5cd0fa64871b5aa625d4d237af
I checked all the files in openstackclient/common
and fixed the missing i18n supprots.
Change-Id: Id7f76a24aae663f5832ef9bcf1bd5a6b7081af24
Partial-bug: #1574965
Add FakeExtension class in networkv2, computev2, volumev2,
identityv2_0 and update unit test test/common/test_extension.py
Change-Id: I94815de7801860edb7fa91a7d146455cab946652
"Port delete" command supported deleting multi ports
before but didn't support error handing, This patch
add the error handling following the rules in
doc/source/command-errors.rst.
Change-Id: I4ea69f2279763626d6a27cad1ca0ee99822d016d
Partially-Implements: blueprint multi-argument-network
This patch adds functional tests for IP availability
Partially-Implements: blueprint neutron-ip-capacity
Change-Id: I1c1dc01801707fe8f0dc3c976e5d345d2b0db0ec
Moving the old release notes into the Reno releasenots tree broke
the embedded :doc: roles. Restore these using sphinx.ext.extlinks to
manage the URL to the OSC docs.
Add the following aliases:
* lpbug - generic Launchpad bug :lpbug:`123456`
* oscbp - OSC blueprints :oscbp:`Blue Print <bp-name>`
* oscdoc - OSC Docs :oscdoc:`Comamnd List <command-list>`
Change-Id: Iecfdd666d961c35f0ccb3b9f10df1d2620cb099f
Normally, we can unset multi properties but the "volume type unset"
command could not, because the action "append" was missed. So I add
it and also fix the unit test and doc in this patch.
Change-Id: I20470f2b7bb2a8d7f292cea498826669c3418c77
Unit test cases don't cover compute "server set/unset" commands,
the patch add some test cases for them.
Change-Id: I440c32968bd41b948352a9764a37c9af3e68803d
OSC does not support to list volume transfer from one user
to other user.
This patch will provide support for listning volume transfer
requests.
Closes-Bug:#1554886
Implements: bp cinder-command-support
Change-Id: Ie659bc39cb1d1e931cca7a40b2f126a067ee484c
set/unset commands should ends up normally instead of
logging an error when nothing is specified to modify.
The main reason is: When nothing is specified, the
command sets/unsets nothing, which is a normal behavior,
and ends up normally. No API call fails. No error happens.
Change-Id: Ib03a512650e5da90aa1ef38019772448383d0d33
Partial-bug: #1588588
Translated messages should not be combined with orther literal
strings to create partially translated message.
Although this change is very small, but this is the only one in
the directory VOLUME.
Change-Id: If798aacde9d5d5e8ac2edd49e75099ec255c858e
In test_flavor_set_no_project(), we aimed to test a
situation like this: User specifies "--project" option,
but didn't specifies the project name or ID.
But in the source code, it becomes "--project ''".
The test could past because if project and property
are both None, the command will raise an exception.
Change-Id: I39567306debb901e8bad420fa2492f1b207efddc
The --enable option on commands is ignored when the arguments are parsed.
This is related to the --enable-beta-commands option. Renaming the option
to --os-beta-command fixes the problem.
There's no need to handle backwards compatibility for the option name
change because there hasn't been an OSC release yet with beta commands.
Change-Id: I0327ba8a2058858a83e9a42e231470ed733cc834
Closes-Bug: #1588384
There are some issues in test_volume.py in volumev2,
I make three changes in this patch:
1.modified some codes that not used FakeVolume class.
2.added a fake image by FakeImage class for this test.
3.added a fake snapshot by FakeSnapshot class for this test.
Change-Id: I02ba73d3aaee95624b0e2307b255e0e485b0c3a3
Currently OSC release notes are in the OpenStack releasenote
site. There is a collection of old non-reno release notes in
our docs folder. Move the non-reno release notes to the
reno directionary.
Change-Id: Ie51fd1e1115d606e5d2739014d3720eedc8dc225
I checked all the cinder files and found some small issues
of i18n support.So I fix them.
Change-Id: I2df06cb9db4643bd734105664d83299726f7b4e9
Partial-bug: #1574965
This patch adds "--project" option in "flavor set" command to support
for setting flavor access.
Change-Id: I75b473600080d8ab1dd6ad01561c4f989ed3c3bd
Partial-Bug: #1575461
When a server is unexpected state, OSC don't support reset
the server to active or error state, that's supported by
novaclient, and it's an important command for operators, the
patch implement this function.
Change-Id: I3e7800feb192832b0719ef9a353945beb6bfd509
Implements: blueprint server-reset-state
This patch fixes 2 problems:
1. The '\n' should be in the end of a message,
not the beginning.
i.e.:
The original code was:
sys.stdout.write(_('\nError deleting server'))
It will make the output look like this:
[root@tangchen /]# openstack server delete aaa bbb
Error deleting server
Error deleting server[root@tangchen /]#
We change it to:
sys.stdout.write(_('Error deleting server\n'))
Then the output will become:
[root@tangchen /]# openstack server delete aaa bbb
Error deleting server
Error deleting server
[root@tangchen /]#
which is much better.
2. Record the error in log for those who didn't.
Change-Id: I38b00c2321014757970183205f95f026e20a8090
This patch adds support for deleting multi address scopes by
using "address scope delete" command.
Change-Id: Ic8d3ebc17db44ca5d42c336d2c4d5633f70d4e8b
Partially-Implements: blueprint multi-argument-network
There is only a functional test for "server set" command
in test_server_metadata(), we also need a functional test
for "server unset" command, so I add it in this patch.
Change-Id: I23c40ac1c5adcc2563d8aa9dcb5551df695e98e3
"Server group delete" command supported deleting multi server
groups, but the help message was "Delete an existing server
group", so I change it in this patch.
Change-Id: I05b1a7e3f29b84b9190e7cc05c01734e3daa7a6d
Add network segment command object in support of routed networks.
This patch set includes documentation, unit tests and functional
tests (currently skipped until segments enabled in neutron by
default) for the following new commands:
- "os network segment list"
- "os network segment show"
These new commands are currently marked as beta commands.
Change-Id: I1a79b48dc6820fe2a39fcceb11c8cae3bda413a0
Partially-Implements: blueprint routed-networks
Changing the password in Keystone V3 is an unscoped operation, but we
were requiring a scope.
Change-Id: If0653ac7b59320c2cd9d42a2c73dd29c3626d389
Closes-Bug: 1543222
If no region is set in Keystone, null is deserialized as None and the
region has None has value, which triggers a type error when building the
output string.
This patch fixes that.
Change-Id: I7637dc2595655cf452f38308f99fe66ac782e16d
IDs for service providers can be user defined (like, Bob). This
causes issues with the usual get by ID method.
Keystone server side has implemented changes to search by ID when
listing, which should resolve the issue with minimal changes to
the client side.
Change-Id: Ic705806e4bc7bb24f946a1fce803a0a0a4d788c1
Closes-Bug: 1555830
IDs for service providers can be user defined (like, Bob). This
causes issues with the usual get by ID method.
Keystone server side has implemented changes to search by ID when
listing, which should resolve the issue with minimal changes to
the client side.
Change-Id: Ic58df22b3445d3293a8e1c76c5da79badebf6528
Closes-Bug: 1479837
VolumeV2 lacked functional tests for qos specs
and volume type commands, so I add them.
These tests are quite similar to those in v1,just
three difference:
1.Importing functional.common.test instead of
functional.tests.volume.v1.common
2.Adding test_volume_type_set_unset_project()
in test_volume_type.py.
3.Adding a test for "qos unset" command in
test_qos.py
Change-Id: Ic50e8c49ef01ac967c01ec41fb3f04cd51fea9e4
We have been testing (incorrectly) Image v2 using our usual
FakeResource objects, when the v2 API actually uses warlock
schema modelled resources.
Bring this to the tests (TestImageSet was already doing this)
Change-Id: Ia6ed3a8e28a8961f770c241b49d47cce9ff328d3
The "quota set" command support compute and volume quotas previously.
This patch add support network.
Partially-implements: blueprint neutron-client-quota
Closes-bug: 1489441
Change-Id: I9d297f52bc30614b3493f09ed15f8f1d3f8ff952
In the meantime, add some static methods in FakeVolume for ease of use
and add info() method with "property" decorator in FakeResource to allow
those static methods to get fake information.
Change-Id: I98ad520f32afd529fda77a4592f645130282537f
Co-Authored-By: xiexs <xiexs@cn.fujitsu.com>
Implements: blueprint improve-volume-unittest-framework
osc network set and network create now support
--transparent-vlan|--no-transparent-vlan options
to add/remove vlan transparency from the network.
Change-Id: I845eb8f541cd32a4c4b28f929a63b205e7e31756
Closes-Bug: 1545537
Removed the "s" of the "credentials command" in the documentation and renaming the file to credential.rst (instead of credentials)
Change-Id: If1df15b9a630a5452e05d14fb45e9ebb124583a7
Add the following network protocol support to the
"os security group rule create" command:
- Add "--icmp-type" and "--icmp-code" options
for Network v2 only. These options can be used to set
the ICMP type and code for ICMP IP protocols.
- Change the "--proto" option to "--protocol". Using the
"--proto" option is still supported, but is no longer
documented and may be deprecated in a future release.
- Add the following Network v2 IP protocols to the
"--protocol" option: "ah", "dccp", "egp", "esp", "gre",
"igmp", "ipv6-encap", "ipv6-frag", "ipv6-icmp",
"ipv6-nonxt", "ipv6-opts", "ipv6-route", "ospf", "pgm",
"rsvp", "sctp", "udplite", "vrrp" and integer
representations [0-255].
The "os security group rule list" command now supports
displaying the ICMP type and code for security group rules
with the ICMP IP protocols.
Change-Id: Ic84bc92bc7aa5ac08f6ef91660eb6c125a200eb3
Closes-Bug: #1519512
Implements: blueprint neutron-client
Currently tox -epep8 will run flake8 on whole code.
To make this fast, flake8 support is added for only
updated(delta) code.
Same can be run by "tox -efast8".
Change-Id: I9c55fed32ae3060c21ec278398e9e07fb4a0fe13
Implements: BP tox-pep8-diff-part-only
This patch supports creating a new address scope,
with --ip-version,--project,--project-domain
and --share or --no-share options.
Change-Id: I37c73391a41ac239dd72d55dbc0adbebd7701f4a
Partial-Bug: #1566269
There is such a comment in test_server.py:
# Call .get() to retrieve all of the server information
# as findall(name=blah) and REST /details are not the same
# and do not return flavor and image information.
This is an out of date comment. There is no function named
findall() in OSC now. So use find_resource() instead of get(),
and remove this comment.
Change-Id: I8d79afc5f341fb5caf771d905506b7f1c7a41ae8
Currently, "/usr/bin/openstack --insecure token issue"
fails when OS_AUTH_URL and OS_IDENTITY_API_VERSION
indicate keystone v2 if OS_PROJECT_DOMAIN_NAME or
OS_USER_DOMAIN_NAME are set. This patchset ignore domain
related configs if using with keystone v2 and print warning
for each ignored config.
Change-Id: I8afbda787df7855c3f8e868b0f07cbf3b9cd97fd
Closes-bug: #1447704
There have been a lot of functional test failures for compute
and network. I believe they are timing related in that the
test_server is sometimes booting a server with a flavor,
image and/or network created by another functional test. Such
resources are then deleted by the owning functional tests
causing various types of failures
Change-Id: Ib82edd487da46610374fb0eb5796cb98f2d3aa2c
In _prep_server_detail(), power_state is not formatted
by _format_servers_list_power_state(). So when executing
"server show" or "server create", the power state is
represented by number. This patch map the numbers to
meanful strings.
This patch also adds power_state attribute to FakeServer,
and improves unit tests for this attribute.
Change-Id: I2ec674327de4e5133b8712ba6bb53fa5ce55e3f4
"Missing required args should bail here" is not understandable
and not necessary. The code is obvious enough. And some of the
comments are misused because of code copy. So remove them.
Change-Id: I031395f2c882386c7a708db5cf4eee75393dc639
In some tests, when comparing the results data with the
expected ones, many unnecessary type conversions are used.
So remove them to clean up.
Change-Id: I560ca78a3ab5e7b99087bfe1667de500f92c68de
Partial-bug: #1550633
Currently, "/usr/bin/openstack --insecure token issue"
fails when OS_AUTH_URL and OS_IDENTITY_API_VERSION
indicate keystone v2 if OS_PROJECT_DOMAIN_NAME or
OS_USER_DOMAIN_NAME are set. This patchset ignore domain
related configs if using with keystone v2.
Change-Id: If7eea2ed1a4877c60d055ed0114a5e5f31e282a0
Closes-bug: #1447704
The OpenStack SDK maps the network "router:external" field to
"is_router_external". However, OSC was using the incorrect
mapping, "router_external". This caused OSC to display router
type as "Internal" for all networks.
Change-Id: Ifcd1349ab7c5881baee751936d076bf6aa058852
Closes-Bug: #1572228
In OS_IDENTITY_API_VERSION=3, the "openstack help service delete"
allows the user to remove a service based on the name of the
service. So, this patch includes name as positional argument.
Change-Id: Iae7cb0a82af3cdd4d88e0ed2eb651abf9af30fd9
Closes-Bug: #1566909
There was not a unit test for "flavor create" command
in the "test_flavor.py".So I add the unit test.
Change-Id: Ib1e821ea524eb33c0ba73643164228c7b83253b4
Update the devref to add the describe and code example about
overwrite options behavior.
Change-Id: I65e9a3a30acf8d427906096bde24fa8b4c3ac3f7
Implements: blueprint allow-overwrite-set-options
the assert usage in the NonNegativeAction has the potential to allow
unexpected behavior when the python is byte-compiled with optimization
turned on.
Changes
* remove assert in favor of if/else in NonNegativeAction class
* add type specifier to parser arguments for non-negative actions
* correct tests for new int based values
Change-Id: I093e7440b8beff4f179e2c4ed81daff82704c40e
Closes-Bug: #1576375
Specification to lay out new commands to be added to OSC.
New feature has been implemented and released for Neutron
and python-neutronclient to display IP usages.
Commands will display the IP usage across all networks, or
detailed IP usage specifics for a given network
Partially Implements Blueprint: neutron-ip-capacity
Change-Id: I1c25de1bd924d92a96c20d60fa24d9e966b92dcd
The "flavor show" command could not show a
private flavor by flavor name becauce it could
not find a private flavor by flavor name.
In "until.find_resource(parsed_args.flavor)",
If parsed_args.falvor is a name of a flavor,
"flavors.find(name=parsed_args.flavor)"will be
called to find a flavor.But the default value of
"is_public" is "Ture" in "flavors.find()" so that
we can only find public flavors.If we want to find
all flaovrs by flavor name,we should add
"is_public=None" in "flavors.find()".
So I tried to change
"until.find_resource(parsed_args.flavor)" to
"until.find_resource(parsed_args.flavor, is_public=None)",
but then I could not find any flavor by flavor id
because "is_public" is an unexpected argument of
"flavors.get()" in "until.find_resource()".
In this case,I think "until.find_resource()"
can not find a private flavor properly,and
we should combine "manager.get(flavor.id)" and
"manager.find(name=flavor.name, is_public=None)"
by ourselve to find a flavor.
Also,this bug affects other flavor commands like
"flavor set/unset/delete",so I fix them in this patch too.
Change-Id: I4a4ed7b0a2f522ee04d1c3270afcda7064285c39
Closes-Bug: #1575478
tempest-lib is deprecated, so replace it with tempest.lib.
Co-Authored-By: Sheel Rana <ranasheel2000@gmail.com>
Change-Id: I0495eba110bb7581623fbcf49dc63a27e9cb6d64
Closes-Bug: #1553047
This change is being proposed as part of the OpenStack Security Project
working session at the Austin 2016 summit. It adds support for running
the bandit[1] security linting tool against the python-openstackclient
codebase. This change adds a targetted environment for bandit and also
adds bandit as part of the pep8 job.
The bandit configuration has been tailored to exclude tests that are
currently producing warning against the codebase. These issues will be
followed up with bug reports and patches.
[1]: https://wiki.openstack.org/wiki/Security/Projects/Bandit
Depends-On: Iccd81c17e84df03d249c1012277dad9cb68c5845
Change-Id: I691829c1224557d1d239c9f665ac539d0f13c4d3
In the "flavor set/unset" command,the "flavor" parameter
can be a name but can not be a id of a flavor.
I think we should find a flavor by using "utils.find_resource()"
in these commands.
Change-Id: I5836788f7ed18813f1ebde31bb808b7c3f932b80
Closes-Bug: #1575624
OSC does not support to list volume services.
This patch will provide support for adding volume service related
support.
Closes-bug:#1550999
Implements: bp cinder-command-support
Change-Id: I50ac14aeb96c4b8ddbf7b33e519feea0d126f752
The "os quota show" command "<project/class>" argument is now
optional. If not specified, the user's current project is used.
This allows non-admin users to show quotas for their current
project.
Change-Id: I602d4cc09c9d29ce84271eff78137f8810cb1a47
Closes-Bug: #1572733
The patch fix server group document typo and format issue.
Implements: blueprint nova-server-group-support
Related-Bug: #1542171
Change-Id: I3e24ddce91ecabc6be1b7be95d0f4e5a2ebe93ab
This patch adds the 'objects'/'resources' provided by the clustering
service (senlin) to the commands doc.
Change-Id: I028bd919f5b357d1b6e806c85e83a1a63c42839c
Add the "share" and "default" parms to subnet pool create command.
Add the "default" and "no-default" parms to subnet pool set command.
Note that "share" can not be modified once subnet pool has been
created, so do not add this to the set command.
Change-Id: I1eecad69527a1cde7fb234669f4aff2be2db491e
Partial-Bug: #1544591
Partial-Bug: #1544586
Fixed the "os subnet create", "os subnet list" and
"os subnet show" command output for host routes to
improve readability and to align with the "--host-route"
option on the "os subnet create" and "os subnet set"
commands.
Change-Id: Ida69ae1a0bdb2e1648f8b5c978fc80cf1bbe752f
Closes-Bug: #1572309
Make testcases separate instances of test class.
Use setUp with addCleanup methods for every test case.
Add more descriptive docstrings for tests.
Closes-Bug: #1483422
Partial-Bug: #1566962
Change-Id: I1a16b5bad1dafd19fd7dc94794c0bd4587b7f516
OSC don't support to use "X.latest" format in order to talk with the
latest nova microversion API, that is very helpful shortcut usage to
use new nova side features, this patch implement it.
Change-Id: I87918addff1f50fbc6eb72ca82b31813330753b5
Closes-Bug: #1561838
Python’s default arguments are evaluated only once
when the function is defined, not each time the
function is called. This means that if you use a
mutable default argument (like list and dict) and
mutate it, you will and have mutated that object
for all future calls to the function as well.
More details about this wrong usage here:
http://docs.python-guide.org/en/latest/writing/gotchas/#mutable-default-arguments
In unit tests, most FakeXXX classes' methods take
mutable arguments with default values [] or {}.
We should change them to None.
Change-Id: Iea833b66aa1379829511ad5c6d4432b72f3488e2
Closed-bug: #1550320
* The --profile global option is deprecated but will be supported
through at least April 2017.
* Update man page
Closes-bug: #1571812
Change-Id: I2e623411a56096b4cc352f4eedbf770632ae2cc3
Make testcases separate instances of test class.
Use setUp with addCleanup methods for every test case.
Add negative test cases.
Closes-Bug: #1564480
Change-Id: I5d8fd2a238e6cf0584777eb0d24dfcaed4133ee1
Currently network v2 commands don't support client certificate/key
because they were not passed to OpenStackSDK Connection which is used
by network v2 commands.
This changes corrects the integration with OpenStacKSDK to pass client
certificate/key.
Closes-Bug: #1569513
Related-Bug: #1569508
Depends-On: Ic093f8515e7b15931994e4516ebec8f4399d021e
Change-Id: Ie37e8e988ca695a09894c6c93560dacd83f17030
Add the following options to the 'os security group rule list'
command:
--long: Display direction and ethertype for Network v2
--all-projects: Display information from all projects for Compute v2
Change-Id: If8a1cbd7669cdfa6577d6d2f6fffd9e999a39a82
Partial-Bug: #1519512
Implements: blueprint neutron-client
Fix the "--route" option on the "os router set" command. The
option did not properly format the new routes to set which
resulted in a "HttpException: Bad Request" error. In addition,
the output for routes was fixed to improve readability and to
align with the "--route" option on the "os router set" command.
Change-Id: I9c514153ec201e2feae32be6dd281771e3298b9c
Closes-Bug: #1564460
All clients except neutron are initialized with region name.
This makes unable to use network related commands of
openstackclient in multi-region configurations
Change-Id: I200dc9a2f938c3e69357f91c79810df167e4fccb
Closes-bug: 1570491
Add _() to wrap help message in network commands.
And also some improvement for help message.
Change-Id: Ib3e498f5976ba98c44fd4eec2d1623263b3db53e
Partial-bug: 1570924
OSC does not support to remove volume type access to project.
This feature will provide support to remove volume type access
from project.
Closes-Bug:#1554890
Implements: bp cinder-command-support
Change-Id: I029a4292da05f028e8937962cb845ec6e00b0279
Previously, if an AttributeError was raised in a plugin's make_client
method, the plugin simply wouldn't be an attribute of the ClientManager,
producing tracebacks like
Traceback (most recent call last):
File ".../openstackclient/shell.py", line 118, in run
ret_val = super(OpenStackShell, self).run(argv)
...
File ".../openstackclient/object/v1/container.py", line 150, in take_action
data = self.app.client_manager.object_store.container_list(
File ".../openstackclient/common/clientmanager.py", line 66, in __getattr__
raise AttributeError(name)
AttributeError: object_store
This made writing minimal third-party auth plugins difficult, as it
obliterated the original AttributeError.
Now, AttributeErrors that are raised during plugin initialization will
be re-raised as PluginAttributeErrors, and the original traceback will
be preserved. This gives much more useful information to plugin
developers, as in
Traceback (most recent call last):
File ".../openstackclient/shell.py", line 118, in run
ret_val = super(OpenStackShell, self).run(argv)
...
File ".../openstackclient/object/v1/container.py", line 150, in take_action
data = self.app.client_manager.object_store.container_list(
File ".../openstackclient/common/clientmanager.py", line 57, in __get__
err_val, err_tb)
File ".../openstackclient/common/clientmanager.py", line 51, in __get__
self._handle = self.factory(instance)
File ".../openstackclient/object/client.py", line 35, in make_client
interface=instance._interface,
File ".../openstackclient/common/clientmanager.py", line 258,
in get_endpoint_for_service_type
endpoint = self.auth_ref.service_catalog.url_for(
PluginAttributeError: 'NoneType' object has no attribute 'url_for'
Change-Id: I0eee7eba6eccc6d471a699a381185c4e76da10bd
The following patch adds the options "--external" & "--internal"
and the suboptions to "external": "--default" & "--no-default",
to "osc network set" CLI to provide the user an option to set
a network as an external network or remove the setting.
Change-Id: I3a7f2cb249bc8101cbb01322d7732e913237d6cd
Partial-Bug: #1545537
This patch rework "network delete" command following the
rules in doc/source/command-errors.rst.
In "network delete" command, there are multiple REST API
calls, and we should make as many of them as possible.
And log error for each one, give a better error message.
Also return a non-zero exit code.
Change-Id: I39ae087dd7bd08d049d513abfa6c5cab2bd13b2b
Partial-Bug: #1556719
Existing --fixed-ip and --binding-profile information is
currently overwritten when a user executes 'port set', but
actually that data should be appended.
This patch fixes the issue.
Closes-Bug: #1564453
Change-Id: I62500c10ccbbc68167f24e9d4fa49e85345d82c4
Remove exceptions.py from functional/common.
Import exception with the same code from the tempest_lib to tests.
Change-Id: Ifaa658209c18dd608836079f57ed18fcf10fb84e
Fixed "os subnet pool list" command to properly disply the
list of subnet pool prefixes in the "Prefixes" column. This
fix is consistent with the "os subnet pool create" and
"os subnet pool show" command output.
Change-Id: I431d85c3b7f5bf8a327500decf3a15063fc5b120
Closes-Bug: #1569480
There are lots of "this option can be repeated" comments
in the doc, which are not consistent to other similar
docs.
This patch changes them to the following format:
"repeat option to do something"
Change-Id: I54e01053091c428bf87bb36bb95f73a0b80ab6e7
Network objects don't have any method needs to fake.
keys() method is only used by _get_columns() helper
to obtain all attributes of an object. But in compute
network implementation, attributes are obtained from
obj._info directly, which is a dictionary itself. So
there is no need to fake this method.
Change-Id: Ie6a46ef6a3042641e55a7002573ef501db7b60e1
Add a reference in the README directed to docs page for testing
within python-openstackclient. Avoid creating TESTING.rst due to
unneeded duplication. Updated Developer URL to correct one.
Change-Id: I40b4c949d155aea6e0e25ecd4a88797481a4d8ac
Add the --project and --project-domain options to the
'os security group rule create' command. These options
are for Network v2 only.
Change-Id: Ie3e136be076f0f2c22fbe7048d1d6eaebf5aa655
Partial-Bug: #1519512
Implements: blueprint neutron-client
Add the following network options to the "os security group rule"
command:
(1) --ingress and --egress
(2) --ethertype
These options enable egress and IPv6 security group rules for
Network v2.
Change-Id: Ie30b5e95f94e0c087b0ce81e518de72d2dda25ad
Partial-Bug: #1519512
Implements: blueprint neutron-client
OSC does not support to set volume type access to project.
This patch will provide support for adding volume type access
to existing project.
Closes-Bug:#1554889
Implements: bp cinder-command-support
Change-Id: Ie36e202bdde7de36eb263a476eb66699d82f7565
FakeXXX classes in network don't need to fake any method,
except keys(). But keys() can be put in FakeResource since
it just returns all attributes in _info.
This patch moves removes all unnecessary fake methods code,
moves keys() method to FakeResource.
This patch also finds out some missing attributes in
network and router tests.
Change-Id: I799822c8715b9ac4f95b98f8350f196757d79d3e
This patch adds --address-scope option to "subnet pool create/set"
commands, and --no-address-scope option to "subnet pool set"
command to clear the address scope setting.
Change-Id: Ie2c370a50b52574fa6ec268083ad013b7544361e
Partial-Bug: #1544586
Partial-Bug: #1544591
The network commands ignored the --insecure and --os-cacert
options and OS_CACERT environment variable which prevented
them from properly completing SSL/TLS verification. This
resulted in the network commands failing with
"An SSL error occurred."
Change-Id: I15167631ef58335e1476c16b828b079e3b0f13c1
Closes-Bug: #1560157
Fix the following network command documentation issues:
- Fix format of subnet pool positional arguments
- Update port set options to match help
- Fix network command documentation for Network v2
versus Compute v2 options and commands
- Fix subnet command documentation errors and formatting
problems in help text
Change-Id: I808c2a70ca62eafc9e42d6873539cdd142ffe50c
Related-Bug: #1558677
Existing values of --dns-nameserver, --allocation-pool and --houst-routes
is currently overwritten when a user executes 'port set', but
actually that data should be appended.
This patch fixes the issue.
Closes-Bug: #1564447
Change-Id: I3dba9afa68d869abb3960b55a6880401a10eebf7
* Remove release notes for changes to commands that have not been released yet
* Combine notes for common command sets (ie, new port commands)
* Rename notes with bugs to the bug-NNNNN-XXXXXXX form
Change-Id: I6216aad443056ada2fe28ba533bf20a09f118e4d
This patch adds the option of "no-fixed-ip" and
"no-binding-profile" which is used to clear the
fixed-ip and binding:profile information from the
ports.
Change-Id: I946301eaf6c647bae55e4f416aa0d98e5f06e699
functional.common.tests module defines:
* assertOutput (similar to assertEqual)
* assertInOutput (similar to assertIn)
in order to allow the usage of assertions in testcase classmethods but
there is no reason to use them in testcase instancemethods at least
because they raise Exception instances instead of AssertionError
instances.
Change-Id: I9ffcaf9c6e6a1ff5df6ea2d79be3fb4496db4b85
This change replaces in many identity functests the pattern:
raw_resource = create_resource(...)
check(raw_resource)
self.addCleanup(delete_resource, ...)
...
by the pattern:
raw_resource = create_resource(...)
self.addCleanup(delete_resource, ...)
check(raw_resource)
...
which ensures that cleanup is defined and called after the test even if
check(resource) fails.
Change-Id: I4da541b7552d06eaffafda446e389bb552422cda
The following patch adds the provider network options
to OSC "network create".
Change-Id: Ib8449c00ee4b4285889588f03ddd7a686ce8f987
Partial-Bug: #1545537
The following patch adds the options "--external" & "--internal"
and the suboptions to "external": "--default" & "--no-default",
to "osc network create" CLI to provide the user an option to create
a network as an external network.
Change-Id: Idf73714bb94c0610ea164131140a51848908b00b
Partial-Bug: #1545537
This change replaces when possible homemade temporary file management by
tempfile.NamedTemporaryFile[1][2] and defines only when needed a cleanup
for a temporary file[2].
[1] functional/tests/compute/v2/test_keypair.py
[2] functional/tests/object/v1/test_object.py
Change-Id: I728ab96381ca9f3fd1f899dd50e5ceb5e97b9397
Nothing ensures tearDown call as tearDown is called only if test
succeeds. This change replaces tearDown use with:
* addCleanup use to stop mocks
* EnvFixture which ensures to unmock environment thanks to useFixture.
Change-Id: I1ff422e6a7585bc48b04b8f5c4cc1e7e9ddab1bc
--enable and --disable-reason should be mutually exclusive in "compute
service set" command, but now when they are present at the same time,
--disable-reason would be ignored silently. Fix these and add some hints
about --disable-reason argument is ignored in this situation.
Change-Id: I43254b6bc40fcae4fd0dc3457f26fad84c267072
Closes-Bug: #1556801
Port's name can be updated in NeutronClient and it is a very
good feature for a user to have the ability to rename a port.
This was missing in the openstackclient, and the same has been
added in this patch.
Change-Id: I6e712ef08ab1c0a23786c4bb6972d3e0f8f0f999
Implements: blueprint neutron-client
Project show with name argument returns 'Could not find resource'
error when the user is not authorized. It should report the
authorization error instead. This patch makes that change.
Change-Id: Iac3521f8a411060b0ec9ef46c8f0e1f3551e56ae
Closes-Bug: #1511625
If user tries to create a subnet pool without --pool-prefix,
it fails at the NeutronServer [1].
This patch tries to add a default value to the --pool-prefix
to try and resolve it.
Closes-Bug: #1564271
[1] : http://paste.openstack.org/show/492537/
Change-Id: I6cf324a5a8037048602e59c0bbfc93b40e73a74e
This patch adds --project and --project-domain
options to "subnet pool create" command.
Change-Id: I2fe006013a194861299a9c77234a7cf988a8dad8
Partial-Bug: #1544586
This adds a test case to exercise the --public-key option of
the 'keypair create' command. It is a follow-on to
I7a299a542d9df543bff43d3ea1e7907fc8c5f640 that fixed a key file
read bug.
Change-Id: Id78c1c7ece02f619aca69dc397185fc426b92306
Fix the --min-prefix-length, --max-prefix-length and
--default-prefix-length options for the "os subnet pool create" and
"os subnet pool set" commands. Using these options caused the
commands to fail with "HttpException: Bad Request" because unrecognized
attributes were passed to the REST API.
No release note was added since these commands are new and haven't
been released.
Change-Id: I2f765750f79dc91d6c1f5962f699fbf2ee38657a
Closes-Bug: #1564004
compute-service.rst file uses 'describe' for below
optional parameters
1. --long
2. --service <service>
3. --host <host>
This patchset changes type of these argument to option.
Change-Id: Ifd57bdf058efaeaa6cb43a7d4a60ee61ddb8de14
Closes-bug:#1563700
'openstackclient.common.exceptions.from_response' method is never called
in openstackclient code base, so we should remove it.
Change-Id: I04254a4e66863942e6c273d77bbd66ce2ce7804c
Related-Bug: #1559072
The describe of Compute "aggregate" in command-objects and commands
documents use "a grouping of servers", but exactly that should be a
grouping of compute hosts. "server" object in OSC is a virtual machine
instance, and server group should be "grouping of servers".
Change-Id: Ib034fed15f11fc3e756985b3131a9922129ed6bf
Closes-Bug: #1563172
Related-Bug: #1542171
This formats the volume command help text consistent with the rest of OSC,
adds some reference targets and some explanation text to some commands.
No functional changes have been made, only cosmetic/help output.
Change-Id: Ib86ec3ca58bdea5f33078ced3ec3583b2be0e89a
Clean up volume type command help, add volume type show to doc, sort
command classes in v1/volume_type.py.
Change-Id: I1f8e5c047d9c08f5704fc23cfb694f23d32e3caf
Refactored the 'os security group rule list' command to use the
SDK when neutron is enabled, but continue to use the nova client
when nova network is enabled.
In addition, a release note was added to document the features
and fixes resulting from this refactor.
Change-Id: I24d04b720102ed1c60776e1ca67d4ca20e31b663
Partial-Bug: #1519512
Implements: blueprint neutron-client
'identity provider' commands had functional tests but 'service
provider' commands did not. Added the tests in a similar way to
how it is done it test_idp.
Change-Id: Id4b24ef7d34db65c6b0260c89327ec9be683284d
Support "aggregate unset" command in order to
remove the property of aggregate object in OSC.
Change-Id: I49645135586362f0fd251f5e4a4c03eff273d9e9
Closes-Bug: #1559866
This patch adds --subnet, --port, --floating-ip-address
and --fixed-ip-address options only. Project related options
will be added in another patch because it relates to identity
v2 and v3, which will make the unit tests too complicated in
one single patch.
Change-Id: I3cce4404a114ff128b74e4596f0e847be2846b17
Partial-Bug: 1519502
Related-to: blueprint neutron-client
Support security group name for the "--src-group" option on the
"os security group rule create" command.
Change-Id: Ic23d0671dad77566269c9a588644c8d774368733
Closes-Bug: #1540656
Refactored the 'os security group rule create' command to use the
SDK when neutron is enabled, but continue to use the nova client
when nova network is enabled.
Added a release note for the change in security group rules output
due to Network v2.
Change-Id: I8c6c99d5272ff5d410a449f73d198d834c5cd96e
Partial-Bug: #1519512
Implements: blueprint neutron-client
Fix "--property" option describe issue in "server unset"
document, and update the help message to keep consistent.
Change-Id: I68022a187e83fad6320365400ad2a1b0c8cf9a61
The following patch adds the support for
"router add subnet" and "router remove subnet"
to the OSC as a part of migration of Neutron's
CLI commands.
Partial-Bug: #1546849
Implements: blueprint neutron-client-advanced-router
Change-Id: Ia3770c41026194bdb1543d4e67446f81936d44d1
This patch proposes the migration of port
deletion of Neutron's "router-interface-delete"
to OSC's "router remove port".
Change-Id: Ifceabce080aacac9f6410c809fcc097760e0c5ee
Partial-Bug: #1546849
Implements: blueprint neutron-client-advanced-router
This patch proposes the migration of port addition of
Neutron's "router-interface-add" to OSC's "router add port".
Change-Id: I3a8a76d384caa32975f8e77f50f3cf3c3be13786
Closes-Bug: #1546849
Depends-On: I9783bc4ccceae3d361dce52d51483ef2187920a9
Implements: blueprint neutron-client-advanced-router
It is perfectly valid for a Cinder volume to have a volume_type of
"none", so don't make the Image API v2 require that one be set.
Change-Id: I1a6da8d791fa0ae67cac46eec81bcbcb420729c3
Closes-Bug: #1559344
Currently when you perform the 'token issue' command with
the admin_token, the error is a nonsense python error. This
commit changes it to be user-friendly.
Change-Id: I5cc92c342e3f83e099354cd04301c7b8d8d2dabc
Closes-Bug: #1547721
This devref documents the OSC interfaces are officially available
for plugins to implement commands and related unit tests. It also
covers requirements for plugins.
Change-Id: I68caa188e389e400fa9f5fd38f32c76cdd3e0986
Commit Id702ccaad239b916340bb17014d1ede0a28aaec9 changed the keypair
create --public-key to use io.open but incorrectly reads the file
in binary mode, which causes JSON serialization to fail.
The unit tests mock out io.ioen (the reason for adding it in the first
place actually) so any testing for this specific problem would have to
be done in functional tests...yet to come.
Closes-bug: 1559125
Change-Id: I7a299a542d9df543bff43d3ea1e7907fc8c5f640
Add tests for list and description for Server commands:
- Check server commands in main help message.
- Check list of server-related commands only.
Commands:
server add security group,
server add volume,
server create,
server delete,
server dump create,
server image create,
server list,
server lock,
server migrate,
server pause,
server reboot,
server rebuild,
server remove security group,
server remove volume,
server rescue,
server resize,
server resume,
server set,
server shelve,
server show,
server ssh,
server start,
server stop,
server suspend,
server unlock,
server unpause,
server unrescue,
server unset,
server unshelve.
Change-Id: Ib4bf9ab0264fb482d36cf5688c0f939bcd2cb6d8
several other projects have joined the bandwagon, let's add them
to the list, these include:
python-ironic-inspector-client
python-muranoclient
python-senlinclient
python-tripleoclient
python-searchlightclient
Change-Id: I9165daf64bf817b9e12ee8fc27ce6e11ebe01e5e
* --device-id should have been --device
* --host-id should have been --host
Old options are deprecated and retained for compatibility since they
appear in a release.
Closes-Bug: 1558677
Change-Id: Ic733523c8d57060f2cb5d420fdb1f7598e7d5e71
Added support to allow filtering ports via --router
option to list ports that are applicable to specific router.
Partial-bug: #1519909
Partially-implements: blueprint neutron-client
Change-Id: I6dd958603909f641735c821a62fc0d45afd5c7ec
OSC does not support to delete volume's image property.
This patch will provide support for deleting image property
to existing volume.
Closes-Bug:#1554879
Change-Id: I9256913948fae9e9a03fed173b826dfa918f78e9
Implements: bp cinder-command-support
OSC does not support to set volume's image property.
This patch will provide support for adding image property
to existing volume.
Closes-Bug:#1554877
Implements: bp cinder-command-support
Change-Id: I4ff5532c228f010789b81c7587dd4a2838a90f20
No changes are intended other than sorting the sections...
* image add/remove project
* flavor set
Change-Id: I1ac240e12889227f2f470b9167904ce35609a227
Add "--long" option in ListService so that compute service
disabled reason can be showed.
Change-Id: I1ace8f1c4e4efe0a1a8f6710425d73eb5db9e5e1
Closes-Bug: #1556815
assertListEqual() is order sensitive. So we need to sort
the lists before we compare them. Use assertItemsEqual()
instead is better.
Change-Id: I9eaa98716c7401f5b099b007438acc916dae619b
In Python 2, dict.keys() will return a list.
But in Python 3, it will return an iterator.
So we need to fix all the places that assuming
dict.keys() is a list.
Change-Id: I8d1cc536377b3e5c644cfaa0892e40d0bd7c11b1
Closes-Bug: #1556350
Add the --project and --project-domain options to the
'os security group create' command. These options are for Network v2
only.
Change-Id: I9e1667080a1a49389d51ade2e76a08b08a09870b
Closes-Bug: #1519511
Implements: blueprint neutron-client
Commit d8abec33ad changed
the output of "ip floating list" command. But forgot to
add any backward incompatibility info.
Output of command "ip floating list" for nova network
has been changed. And it is different from the output
of neutron network.
This patch adds this incompatibility info.
Change-Id: I45858fda3b9bcc0bdf4d0891637fa7dd712872af
Partial-Bug: 1519502
Related-to: blueprint neutron-client
Extension list involves identity, compute, volume and network.
Current test covers only identity and network. This patch added test
against compute and volum. Also refactored current implentation.
Change-Id: If9b36cba24c50a817a17f685801e418fb898596a
Refactored the 'os security group create' command to use the SDK
when neutron is enabled, but continue to use the nova client
when nova network is enabled.
Added a release note for the change in security group rules output
due to Network v2. The tenant_id column name was fixed to align
with the 'os security group show' command.
Change-Id: Ib29df42edcddcc73a123fff6a64743a6bfcb7fbf
Partial-Bug: #1519511
Implements: blueprint neutron-client
Refactored the 'os security group show' command to use the SDK
when neutron is enabled, but continue to use the nova client
when nova network is enabled.
Added a release note for the change in security group rules output
due to Network v2. The column names remain unchanged to maintain
backwards compatibility.
Change-Id: I25233ddb8115d18b8b88affb3de13346084a339d
Partial-Bug: #1519511
Implements: blueprint neutron-client
The cliff module expects an array of tuples however
the array that this function was returning was an array
of tuples that was also containing an array of values for
the commands attached to each group and the
cliff module wasn't liking it.
The output now comes out looking like:
| openstack.common | limits show |
| | extension list |
| openstack.baremetal.v1 | baremetal set |
Change-Id: Ifa1c149cb5c66ba27dc72bf72d7c8f2f50e42f73
Closes-Bug: 1545609
take_action() in commands inheriting from Command returns nothing.
So we should assert the return is None in the unit tests of these
commands.
Change-Id: I53eeb88316b2c20882fed97149d55cb04bcb2b2e
Closes-Bug: #1550636
In unit tests, all real methods are faked. They should not
do any real operations in the tests. So, FakeFlavorResource
is not necessary. Just fake get_keys(), set_keys and unset_keys()
in FakeResource would be enough.
Change-Id: Icc3473ba9c77f4817d0edddb7ff3e1bd2946fac7
This patch is going to add the functionality of
setting snapshot state which OSC currently lacks.
Closes-Bug:#1535239
Change-Id: I2afd6567416e75ba0c70b73351cf1eb5394b3373
Add CLI support for the 'port set' command
Change-Id: I2bea508e11290284aa64b1ab548a0bb61e7290d3
Partial-bug: #1519909
Partially-implements: blueprint neutron-client
This patch supports creating a new subnet pool,
with pool prefixes, default prefix length, minimum
prefix length, and maximum prefix length specified.
Change-Id: I9150797c8cfa794d5264ad07965aa967d9a8f5bc
Partial-Bug: #1544586
Related-to: blueprint neutron-client
This patch supports setting a new name, pool prefix,
default prefix length, minimum prefix length,
and maximum prefix length for a subnet pool.
Change-Id: I65bd71e0f54f2f65acefbc542df67a1b1ec26397
Partial-Bug: #1544591
Related-to: blueprint neutron-client
take_action() in commands inheriting from Command returns nothing.
So we should assert the return is None in the unit tests of these
commands.
Change-Id: I02af06b3d476aac2d93a23ef2111cdc7fa0892ec
Partial-Bug: #1550636
This patch adds the ability to list all created ports
Change-Id: Ie1a48c203cabc96346a4950f21b83493d58a66a5
Partial-bug: #1519909
Partially-implements: blueprint neutron-client
Objects returned by Network v2 and Compute v2 are different.
When getting columns to display, Network v2 uses obj.keys(),
while Compute v2 uses obj._info.keys(). But both of them could
obtain the keys of the object by _get_columns().
Change-Id: I347815f2d28822a95bd6f57d429b84b7ca96e0ee
Some of the unit tests test run(), but not take_action().
For example, in openstackclient/tests/volume/v1/test_volume.py, there is:
def test_volume_set_size_smaller(self):
......
result = self.cmd.run(parsed_args)
self.assertEqual(0, result)
......
run() is defined in class Command in cliff. We don't need to test it in OSC
unit tests. On the contrary, we should test take_action(), which is
overwritten in each command classes in OSC.
Change-Id: If07e89953d40ac530f08cbb1ec05f5805171364b
Closes-bug: #1553468
After creating a snapshot of a running instance, a print out similar
to server create is expected, but it prints out something like "_info"
which is nothing related to created image. _prep_image_detail method
is added to /compute/v2/server.py to enable the priting, while running
the test properly.
Change-Id: I4b06be959768bcdaafd9aa8df497490958bee649
Closes-Bug:1551586
Nova API validation changes [1] appear to have broken the
'os aggregate create' and 'nova aggregate-create' commands when
an availability zone name is not specified. This patch set updates
the test_aggregate functional test to set the availability zone
name in order to unblock the osc gate while nova investigates
the issue.
[1] https://review.openstack.org/#/c/281143/
Change-Id: I00b497be61c4bc4bc467c66c1e49b2e0636ab841
Related-Bug: #1541691
take_action() in commands inheriting from Command returns nothing.
So we should assert the return is None in the unit tests of these
commands.
Change-Id: Idd961a5fa3db825353700837a559621d17f782c5
Partial-Bug: #1550636
Command "router show" will display router's "tenant_id" as
"project_id". But in the unit test, it checks "tenant_id",
which is incorrect.
This patch fix this problem, and add a _get_columns() helper
function to simplify the code.
Change-Id: I0087ef7dfd0130b6c47222495848c4f2b9804b1b
Refactored the 'os security group set' command to use the SDK
when neutron is enabled, but continue to use the nova client
when nova network is enabled.
This patch set also fixes a compute bug which ignores name
and description when set to an empty value.
Change-Id: I4225179dca4aedf799e1656ec49236bdedc5e9bd
Partial-Bug: #1519511
Implements: blueprint neutron-client
take_action() in commands inheriting from Command returns nothing.
So we should assert the return is None in the unit tests of
these commands.
Change-Id: I237ea772f74fa52af2e9aacd35d4b9cfb225c94c
Partial-Bug: #1550636
This patch only provide network name and subnet setting for
"network create" command.
The other options, such as --project which depends on
identity v2 or v3, will make the unit tests too complicated.
So I prefer to implement them in other patches.
Change-Id: I9ec93f0af813c8fae4170c36e16bbe8f0f53cbb6
Partial-Bug: 1543672
"server image create"
"server rebuild"
"server resize"
Above 3 commands are not covered by unit test.
So add some unit tests.
Meanwhile, fix bug. Now that image name is an optional argument,
we'd better record error messages with positional arguments
instead of optional argument. So, record server name.
Change-Id: I41bc025d4824dc46f63a3213d82e1528bacbbe12
Add a developer reference for options with choices. This patch set
also includes RST doc formatting fixes.
Change-Id: I5fd6a699806edf1d2d95110f0b8a2b8a385028ab
six.moves.urllib already covers the py2 and py3 compatibility issues
of urlparse module, use six.moves.urllib.parse.urlparse is enough.
Change-Id: I785f4f872850e5d770fdcf4c0d3392be3978cc4a
This api doc is clearly copied from v1, we should update it to reflact v2 API.
Added 'shared' param description.
Change-Id: I73d36e3a2a0448c28edab788a9340fd46177f8ef
Fix typo introduced in OSprofiler intergation commit, that
leaded to non-working interactive mode of the CLI client.
Change-Id: If5dfc90dbbe64d4665c3e33e936f0cc674738351
Closes-Bug: 1551160
Modify 'code-block' tag format so that the following python code
could be showed exactly, and reformat the more than 79 chars of lines.
Change-Id: Ic6721e4cc8f4c7a3e4a7c7dbd63d9089180cdc33
As per the comment given by Steve Martinelli in
https://review.openstack.org/#/c/278209/ , the
following patch just rearranges the classes
as per the Alphabetical order.
TrivialFix
Change-Id: Ib8f0f703df4ef7d7ee6180ff8bd8a47062ae5b0f
Fix misusages of ArgumentTypeError which causes a tuple of
class instance and error message string to be printed rather than just the
error message string itsself.
Change-Id: I0e997f86bb6603930cc92e90efcb48155f62ffb5
Closes-bug: #1551426
Refactored the 'os security group list' command to use the SDK
when neutron is enabled, but continue to use the nova client
when nova network is enabled.
This refactor also removes the logic for displaying project names
instead of project IDs when the --all-projects option is specified.
This logic was removed because it is inconsistent with the other
network commands.
Since neutron will always display security groups across all
projects for an admin, the --all-projects option is now hidden
when neutron is enabled and the Project column is always
displayed.
Change-Id: I934a1f5084ef3c5f929d0ffd38ebf5064d799941
Partial-Bug: #1519511
Related-to: blueprint neutron-client
command.Command and command.Showone are base classes implemented
in cliff framework. Showone extends Command to allow take_action()
to return data to be formatted using a user-selectable formatter.
Most of the classes which are extended from Command in
openstackclient/identity/v3/ in some cases return data or return
nothing where it is not necessary, this commit fixes most of them.
Change-Id: I84c72ea4d6680f8bdbef5449316dd9a8af8c8286
Closes-Bug: 1550892
"image set" command should return None. But in one path,
it returns ({}, {}). This patch fixes this.
Change-Id: I3847e661cb7e89863921a3f0a859d9b1a8077ede
take_action() in commands inheriting from Command returns nothing.
So we should assert the return is None in the unit tests of
these commands.
Change-Id: I953480ecff3b5beb12255d866d0e1df45f130efd
Partial-Bug: #1550636
--route option is used to set routes to the router.
It is used like this:
--route destination=subnet,gateway=ip-address
destination: destination subnet CIDR
gateway: nexthop IP address
--clear-routes is used to clear all routes on the router.
Change-Id: I97ce4871113c684b29c98cdad4dec9cc80ed20f7
Implements: blueprint neutron-client
Partial-bug: #1519503
Class MultiKeyValueAction will be used to parse arguments like this:
--route destination=xxx,gateway=xxx --route destination=yyy,gateway=yyy
The result is a list like this:
[{destination:xxx, gateway:xxx}, {destination:yyy, gateway:yyy}]
This action also contain validation of the parameters.
Change-Id: Ie3aa8635c6a13fc2e429fe6922acd681dc7244cf
set/unset comamnd classes should inherit from cliff.Command class.
Also, this patch adds functional tests for aggregate.
And also, use utils.format_dict() to format the output of the
properties dict.
Change-Id: Idb50bef8990da95666960e2414dfd7c9be234bba
Partial-bug: #1519503
Closes-Bug: 1546065
Add missing 'command' and 'configuration' object into
command object list, add command, module, host commands
describe in command-objects, and add 'mask' and 'unmask'
options in configuration command details, fix some format
issues by the way.
Change-Id: Iea80c7b1e413e02e49b9090b9d3cb9c59aab4c38
This will allow to trigger profiling of various services that
allow it currently and which APIs support is added to openstackclient.
Cinder and Glance have osprofiler support already, Nova and Keystone
are in progress.
To use this functionality osprofiler (and its storage backend) needs
to be installed in the environment. If so, you will be able to trigger
profiling via the following command, for example:
$ openstack --profile SECRET_KEY user list
At the end of output there will be message with <trace_id>, and
to plot nice HTML graphs the following command should be used:
$ osprofiler trace show <trace_id> --html --out result.html
Related Keystone change: https://review.openstack.org/#/c/103368/
Related Nova change: https://review.openstack.org/#/c/254703/
The similar change to the keystoneclient
(https://review.openstack.org/#/c/255308/) was abandoned as new
CLI extenstions are not more accepted to python-keystoneclient.
Change-Id: I3d6ac613e5da70619d0a4781e5d066fde073b407
Many OpenStack client heat command patches are in progress, seems like
good time to also update some of the highlevel doc.
Added new objects for orchestration and software
openstack orchestration resource type list/show
openstack software config create/delete/show/list
Added new action for restore
openstack stack snapshot create/delete/list/show/restore
Added link to CLI reference for complete plugin syntax and
details
Removed deprecated tasker client
Change-Id: I2c94a5981954edcba95f364a0f909c799f1c403b
Blueprint: heat-support-python-openstackclient
Add some test cases that test 'server list' command when specifying flavor or image.
Because I add some attribution to fake.py, I have to change some code
in create server test. Despite all this, I think it's good for testing.
Change-Id: I714deac1f6f940b790a3c20af5f7ffa724ac44d1
All dict.iteritems in osc are replaced with six.iteritems
except this one.
So fix it to add py3 compatibility.
Change-Id: I1aa51399a36e650d262d839ce2b4ec04d3f91db2
If “ignore” is not set under flake8 in the tox.ini
file there there are defaults set to be ignored.
The depended patch fixes many of the problems.
Change-Id: Ieed2fe1c4654e201d3fe6d40ef93e247ee736f8b
Doc: http://flake8.readthedocs.org/en/latest/config.html#default
Depends-On: I935ab48e7c5bac5f88ecdb3a05f73fb44fc9f41d
Closes-Bug: #1548910
Add the "os security group rule show" command which will use
the SDK when neutron is enabled, and use the nova client when
nova network is enabled.
Change-Id: I41efaa4468ec15e4e86d74144cc72edc25a29024
Partial-Bug: #1519512
Implements: blueprint neutron-client
ShowNetwork inherits from NetworkAndComputeCommand. So we should use
update_parser_common() in it, not overwrite parent's get_parser().
Change-Id: I21bb1407962344b9800fd31caee4b2582674fe24
Adjusted conditional statements to use instanceof when
comparing variables. Instanceof supports inheritance type
checking better than type.
Change-Id: I4ee0004934dc2322d43ef07e797a6811e39a812c
Closes-Bug: 1548530
Implement the openstack client subnet show command using SDK
calls. This shows the details of a specific subnet.
Co-Authored-By: Terry Howe <terrylhowe@gmail.com>
Partially implements: blueprint neutron-client
Closes-Bug: #1542359
Change-Id: Iaf18b9e44af35ca0cd61033b468e0c60cd3b05d6
_keys is defined as a class attribute in FakeFlavorResource. So when
we call set_keys() to update it, it changes. And this change may bring
trouble to the other tests afterward.
So define and initialize it in __init__() as an object attribute.
Change-Id: Ib18c03877b67e1b7c2e107f598076b928a58e4fb
Closes-bug: #1548378
`dict.get()` returns `None` by default, if a key wasn't found.
Removing `None` as second argument to avoid redundancy.
Change-Id: Ia82f7469cd019509bbeccbfe54b15eeedc7bb6ea
The tests for v2 "volume" commands are quite similar to v1.
This patch also map 'metadata' to 'properties', 'volume_type' to 'type'
to align to the v1 output.
Change-Id: Icf2c5463b186fc78c890ccd96453090c4a2c2eb6
Partial-bug: #1519503
The tests for image v2 are quite similar to the tests for v1.
The only difference things are:
1. v2 "image set" command only allows to change the disk format
for a queued image
2. v2 "image show" command output is different from v1
Change-Id: Ieb6bec7467887aab567743153ea3181afa49537d
OpenStack SDK will translate "project_id" into "tenant_id" automatically
when referring to "tenant_id" attribute with the name "project_id". So
when faking an object returned fron SDK, we need to fake this behavior.
The original way is ugly. This patch turns it into a consistent style,
and give better comments.
Change-Id: I0dfb1f7552fc28eb4e7ebf5c614c9f3bde79ad80
Python’s default arguments are evaluated once when the function is defined,
not each time the function is called. This means that if you use a mutable
default argument (like list and dict) and mutate it, you will and have mutated
that object for all future calls to the function as well.
more details about this wrong usage here:
http://docs.python-guide.org/en/latest/writing/gotchas/#mutable-default-arguments
Change-Id: If187f16bfb305ac4fe6e4177e498a06c49c3f946
File names under doc/source/command-objects/ are words connected
with "-". So rename subnet_pool.rst to subnet-pool.rst to keep
the consistence.
Also use "display" instead of "show" in the comment to keep the
consistence.
Change-Id: If486f6cec34b4572a8245af865267b063c1e877d
There are files containing string format arguments inside logging messages.
Using logging function parameters should be preferred.
Change-Id: I15b405bf4d4715263fe1e1262982467b3d4bc1f4
Closes-Bug: #1321274
Make scope check optional for the "token issue" command as unscoped token is
a valid Keystone V2/V3 API.
Change-Id: Ie1cded4dbfdafd3a78c0ebdf89e3f66762509930
Closes-Bug: #1543214
Class mock.Mock does not exist method "called_once_with()", it just
exists method "assert_called_once_with()". "called_once_with()" does
nothing because it's a mock object.
In OSC, only one place is still using "called_once_with()". Fix it.
Change-Id: Ib890e95d775c3fc43df80fa05c82d726e78cdac8
Partial Bug: 1544522
The implementation of "ip floating list" in the commit below
is incorrect:
Change-Id: I253f66f6bc64470e1a18ffea506048eb53f67d5c
This is because the FloatingIP objects returned from Nova and
Neutron network are different. They need different handling.
This patch fixes this problem.
The output for Neutron network would be:
+--------------------------------------+---------------------+------------------+------+
| ID | Floating IP Address | Fixed IP Address | Port |
+--------------------------------------+---------------------+------------------+------+
| 1976df86-e66a-4f96-81bd-c6ffee6407f1 | 172.24.4.3 | None | None |
+--------------------------------------+---------------------+------------------+------+
The output for Neutron network would be:
+----+---------------------+------------------+-----------+--------+
| ID | Floating IP Address | Fixed IP Address | Server ID | Pool |
+----+---------------------+------------------+-----------+--------+
| 1 | 172.24.4.1 | None | None | public |
+----+---------------------+------------------+-----------+--------+
Change-Id: I1295e922df695414511d9a07ca4a8e2428040064
Partial-Bug: 1519502
Related-to: blueprint neutron-client
"network show" command is not implemented in nova network.
This patch implements it.
Change-Id: I1fadd890fe36c4e3ac5c9ed389b20c5b2fff8aca
partial-Bug: 1543672
"network list" command is not implemented in nova network.
This patch implements it.
The Network object in novaclient is quite different from
the one in sdk. And the output of "network list" using
Nova network is also quite different from using Neutron.
It is like this:
# openstack network list
+--------------------------------------+---------+-------------+
| ID | Name | Subnet |
+--------------------------------------+---------+-------------+
| 96a98ec4-31f6-45f6-99e6-9384569b3bb5 | private | 10.0.0.0/24 |
+--------------------------------------+---------+-------------+
--long and --external options have not been implemented because
the attrs in Network object in novaclient is too much different.
This patch also introduces a new FakeNetwork class in compute/v2/fake.py
to fake nova network.
Change-Id: Id1fdf81fb2fa8b39f2c76b7bae37ac4fecafd0f7
Depends-On: I1b59264cd40aaf1062f4e8db233ccb7fd0e95f0e
partial-Bug: 1543672
"ip floating list" command is not available for Neutron now because
the implementation is incorrect.
The FloatingIP objects returned from Nova and Neutron network are
quite different. So they need different FakeFloatingIP class to
do the tests.
This patch copies class FakeFloatingIP in tests/network to tests/compute
for Nova network tests.
Will fix the problem in "ip floating list" command and change FakeFloatingIP
in tests/network to fit Neutron network tests.
Change-Id: Ia29d257868e0f1dc6cd7cfe3819875e5913f76ec
Partial-Bug: 1519502
Partially implements: blueprint neutron-client
'openstack --help' can display the basic information, even if
openstack command does not have permission to read clouds.yaml.
Change-Id: I7d5255c5ce3bd60af77fc70f433ca78dc011a79f
Closes-Bug: #1541047
In other commands, the name or ID of an object is just the name
of the object. For example, name or ID of a server is "server",
router is "router". So, do not use "identifier" in network commands.
Also, the parameter in doc file network.rst is not "identifier",
but "network".
Change-Id: I1ec3beefbb878a207bca280b994ca176ef04ee2d
In some test cases, try/except is used to check if an exception
has been raised. We should use assertRaises() instead.
Change-Id: I15c8e757dcab77fd6f895feb018184e1eb7e617b
"network delete" command is not implemented in nova network.
This patch implements it.
Change-Id: I5dac1eed6eb8e67298bb446418835a6ab85c859c
Depends-On: I1b59264cd40aaf1062f4e8db233ccb7fd0e95f0e
partial-Bug: 1543672
This patch implements "ip floating delete" command for
both compute and network. Also includes unit tests.
Change-Id: Ie61f0faad65ec90f9d9956ae463412be8d963d05
partial-Bug: 1519502
Related-to: blueprint neutron-client
Co-Authored-By: Tang Chen <chen.tang@easystack.cn>
This patch set introduces the NetworkAndComputeLister and
NetworkAndComputeShowOne classes which are related to the
NetworkAndComputeCommand class. These classes are for commands
that must support neutron and nova network. The new classes
allows both the parser and actions to be unique.
Change-Id: I1b59264cd40aaf1062f4e8db233ccb7fd0e95f0e
Partial-Bug: #1519511
Partial-Bug: #1519512
Related-to: blueprint neutron-client
A recent keystone change [1] resulted in the domain_id field
being included when showing a role.
[1] 407eabde41
Change-Id: I344f4d727f2a16217c075ad8b8393c1e0a233c2e
Closes-Bug: #1544547
Exceptions that occur while getting network availability zones
should not be masked as if the extension does not exist.
Change-Id: I07213ec6c4d83e97261b58bf8d42417c1cdfae6a
Related-Bug: #1534202
Refactored the 'os security group rule delete' command to use the
SDK when neutron is enabled, but continue to use the nova client
when nova network is enabled.
This patch set also introduces new FakeSecurityGroupRule classes
for testing network and compute security group rules. And fixes
were made to the network FakeSecurityGroup class.
Change-Id: I8d0917925aa464e8255defae95a2a2adfb6cfb75
Partial-Bug: #1519512
Related-to: blueprint neutron-client
As bug #1477199 describes, the wrong comment below is all over the
unit test code of OSC.
# DisplayCommandBase.take_action() returns two tuples
There is no such class named DisplayCommandBase in OSC. It is in cliff.
All OSC command classes inherit from the base classes in cliff,
class Command, class Lister and class ShowOne. It is like this:
Object
|--> Command
|--> DisplayCommandBase
|--> Lister
|--> ShowOne
take_action() is an abstract method of class Command, and generally is
overwritten by subclasses.
* Command.take_action() returns nothing.
* Lister.take_action() returns a tuple which contains a tuple of columns
and a generator used to generate the data.
* ShowOne.take_action() returns an iterator which contains a tuple of
columns and a tuple of data.
So, this problem should be fixed in 3 steps:
1. Remove all DisplayCommandBase comments for tests of classes inheriting
from class Command in cliff as it returns nothing.
2. Fix all DisplayCommandBase comments for tests of classes inheriting
from class Lister in cliff. Lister.take_action() returns a tuple and
a generator.
3. Fix all DisplayCommandBase comments for tests of classes inheriting
from class ShowOne in cliff. ShowOne.take_action() returns two tuples.
This patch finishes step 3 in all identity tests.
Change-Id: I1f05e833cdacd30915954e4220b6e1f16ac1ed40
Closes-bug: #1477199
As bug #1477199 describes, the wrong comment below is all over the
unit test code of OSC.
# DisplayCommandBase.take_action() returns two tuples
There is no such class named DisplayCommandBase in OSC. It is in cliff.
All OSC command classes inherit from the base classes in cliff,
class Command, class Lister and class ShowOne. It is like this:
Object
|--> Command
|--> DisplayCommandBase
|--> Lister
|--> ShowOne
take_action() is an abstract method of class Command, and generally is
overwritten by subclasses.
* Command.take_action() returns nothing.
* Lister.take_action() returns a tuple which contains a tuple of columns
and a generator used to generate the data.
* ShowOne.take_action() returns an iterator which contains a tuple of
columns and a tuple of data.
So, this problem should be fixed in 3 steps:
1. Remove all DisplayCommandBase comments for tests of classes inheriting
from class Command in cliff as it returns nothing.
2. Fix all DisplayCommandBase comments for tests of classes inheriting
from class Lister in cliff. Lister.take_action() returns a tuple and
a generator.
3. Fix all DisplayCommandBase comments for tests of classes inheriting
from class ShowOne in cliff. ShowOne.take_action() returns two tuples.
This patch finishes step 2 in all identity tests.
Change-Id: I2929ee688b1d7afc52c6ab325982bdc24c60a995
Partial-bug: #1477199
As bug #1477199 describes, the wrong comment below is all over the
unit test code of OSC.
# DisplayCommandBase.take_action() returns two tuples
There is no such class named DisplayCommandBase in OSC. It is in cliff.
All OSC command classes inherit from the base classes in cliff,
class Command, class Lister and class ShowOne. It is like this:
Object
|--> Command
|--> DisplayCommandBase
|--> Lister
|--> ShowOne
take_action() is an abstract method of class Command, and generally is
overwritten by subclasses.
* Command.take_action() returns nothing.
* Lister.take_action() returns a tuple which contains a tuple of columns
and a generator used to generate the data.
* ShowOne.take_action() returns an iterator which contains a tuple of
columns and a tuple of data.
So, this problem should be fixed in 3 steps:
1. Remove all DisplayCommandBase comments for tests of classes inheriting
from class Command in cliff as it returns nothing.
2. Fix all DisplayCommandBase comments for tests of classes inheriting
from class Lister in cliff. Lister.take_action() returns a tuple and
a generator.
3. Fix all DisplayCommandBase comments for tests of classes inheriting
from class ShowOne in cliff. ShowOne.take_action() returns two tuples.
This patch finishes step 1 in all identity tests.
Change-Id: Id7180d10c050c6286b2c05cd990e2e275fbc3d38
Partial-bug: #1477199
As Richard <rtheis@us.ibm.com> has pointed out, "abstractmethod"
should be "abstract method". This is a small typo I have made
when I fix DisplayCommandBase comment bug.
Change-Id: I84f1a3158896257686a0a7efa1123eef1b85139f
Partial-bug: #1477199
As bug #1477199 describes, the wrong comment below is all over the
unit test code of OSC.
# DisplayCommandBase.take_action() returns two tuples
There is no such class named DisplayCommandBase in OSC. It is in cliff.
All OSC command classes inherit from the base classes in cliff,
class Command, class Lister and class ShowOne. It is like this:
Object
|--> Command
|--> DisplayCommandBase
|--> Lister
|--> ShowOne
take_action() is an abstract method of class Command, and generally is
overwritten by subclasses.
* Command.take_action() returns nothing.
* Lister.take_action() returns a tuple which contains a tuple of columns
and a generator used to generate the data.
* ShowOne.take_action() returns an iterator which contains a tuple of
columns and a tuple of data.
So, this problem should be fixed in 3 steps:
1. Remove all DisplayCommandBase comments for tests of classes inheriting
from class Command in cliff as it returns nothing.
2. Fix all DisplayCommandBase comments for tests of classes inheriting
from class Lister in cliff. Lister.take_action() returns a tuple and
a generator.
3. Fix all DisplayCommandBase comments for tests of classes inheriting
from class ShowOne in cliff. ShowOne.take_action() returns two tuples.
This patch finishes step 3 in all but identity tests. There are too many
such comments in identity tests. So fix them all in another patch.
Change-Id: I1afe4852069d25d562a9448ec2bf2cff58955052
Partial-bug: #1477199
As bug #1477199 describes, the wrong comment below is all over the
unit test code of OSC.
# DisplayCommandBase.take_action() returns two tuples
There is no such class named DisplayCommandBase in OSC. It is in cliff.
All OSC command classes inherit from the base classes in cliff,
class Command, class Lister and class ShowOne. It is like this:
Object
|--> Command
|--> DisplayCommandBase
|--> Lister
|--> ShowOne
take_action() is an abstract method of class Command, and generally is
overwritten by subclasses.
* Command.take_action() returns nothing.
* Lister.take_action() returns a tuple which contains a tuple of columns
and a generator used to generate the data.
* ShowOne.take_action() returns an iterator which contains a tuple of
columns and a tuple of data.
So, this problem should be fixed in 3 steps:
1. Remove all DisplayCommandBase comments for tests of classes inheriting
from class Command in cliff as it returns nothing.
2. Fix all DisplayCommandBase comments for tests of classes inheriting
from class Lister in cliff. Lister.take_action() returns a tuple and
a generator.
3. Fix all DisplayCommandBase comments for tests of classes inheriting
from class ShowOne in cliff. ShowOne.take_action() returns two tuples.
This patch finishes step 2 in all but identity tests. There are too many
such comments in identity tests. So fix them all in another patch.
Change-Id: I00f38d12f55abe20fa708f6349073da658622f8d
Partial-bug: #1477199
As bug #1477199 describes, the wrong comment below is all over the
unit test code of OSC.
# DisplayCommandBase.take_action() returns two tuples
There is no such class named DisplayCommandBase in OSC. It is in cliff.
All OSC command classes inherit from the base classes in cliff,
class Command, class Lister and class ShowOne. It is like this:
Object
|--> Command
|--> DisplayCommandBase
|--> Lister
|--> ShowOne
take_action() is an abstract method of class Command, and generally is
overwritten by subclasses.
* Command.take_action() returns nothing.
* Lister.take_action() returns a tuple which contains a tuple of columns
and a generator used to generate the data.
* ShowOne.take_action() returns an iterator which contains a tuple of
columns and a tuple of data.
So, this problem should be fixed in 3 steps:
1. Remove all DisplayCommandBase comments for tests of classes inheriting
from class Command in cliff as it returns nothing.
2. Fix all DisplayCommandBase comments for tests of classes inheriting
from class Lister in cliff. Lister.take_action() returns a tuple and
a generator.
3. Fix all DisplayCommandBase comments for tests of classes inheriting
from class ShowOne in cliff. ShowOne.take_action() returns two tuples.
This patch finishes step 1 in all but identity tests. There are too many
such comments in identity tests. So fix them all in another patch.
Change-Id: I9849baa8141ea8af2042a69afd540b77ce6ae6bd
Partial-bug: #1477199
As bug #1477199 describes, the wrong comment below is all over the
unit test code of OSC.
# DisplayCommandBase.take_action() returns two tuples
There is no such class named DisplayCommandBase in OSC. It is in cliff.
All OSC command classes inherit from the base classes in cliff,
class Command, class Lister and class ShowOne. It is like this:
Object
|--> Command
|--> DisplayCommandBase
|--> Lister
|--> ShowOne
take_action() is an abstract method of class Command, and generally is
overwritten by subclasses.
* Command.take_action() returns nothing.
* Lister.take_action() returns a tuple which contains a tuple of
columns and a generator used to generate the data.
* ShowOne.take_action() returns an iterator which contains a tuple
of columns and a tuple of data
So, this problem should be fixed in 3 steps:
1. Remove all DisplayCommandBase comments for tests of classes
inheriting from class Command in cliff as it returns nothing.
2. Fix all DisplayCommandBase comments for tests of classes
inheriting from class Lister in cliff. Lister.take_action()
returns a tuple and a generator.
3. Fix all DisplayCommandBase comments for tests of classes
inheriting from class ShowOne in cliff. ShowOne.take_action()
returns two tuples.
This patch finishes step 3 in compute tests.
Change-Id: I4df224ec82b5d82a3d6d3f366c0f68a7ea0d87cd
Partial-bug: #1477199
As bug #1477199 describes, the wrong comment below is all over the
unit test code of OSC.
# DisplayCommandBase.take_action() returns two tuples
There is no such class named DisplayCommandBase in OSC. It is in cliff.
All OSC command classes inherit from the base classes in cliff,
class Command, class Lister and class ShowOne. It is like this:
Object
|--> Command
|--> DisplayCommandBase
|--> Lister
|--> ShowOne
take_action() is an abstract method of class Command, and generally is
overwritten by subclasses.
* Command.take_action() returns nothing.
* Lister.take_action() returns a tuple which contains a tuple of
columns and a generator used to generate the data.
* ShowOne.take_action() returns an iterator which contains a tuple
of columns and a tuple of data
So, this problem should be fixed in 3 steps:
1. Remove all DisplayCommandBase comments for tests of classes
inheriting from class Command in cliff as it returns nothing.
2. Fix all DisplayCommandBase comments for tests of classes
inheriting from class Lister in cliff. Lister.take_action()
returns a tuple and a generator.
3. Fix all DisplayCommandBase comments for tests of classes
inheriting from class ShowOne in cliff. ShowOne.take_action()
returns two tuples.
This patch finishes step 2 in compute tests.
Change-Id: Idc54ad21eaa1371ebd601327b8d962c7039f2de0
Partial-bug: #1477199
As bug #1477199 describes, the wrong comment below is all over the
unit test code of OSC.
# DisplayCommandBase.take_action() returns two tuples
There is no such class named DisplayCommandBase in OSC. It is in cliff.
All OSC command classes inherit from the base classes in cliff,
class Command, class Lister and class ShowOne. It is like this:
Object
|--> Command
|--> DisplayCommandBase
|--> Lister
|--> ShowOne
take_action() is an abstract method of class Command, and generally is
overwritten by subclasses.
* Command.take_action() returns nothing.
* Lister.take_action() returns a tuple which contains a tuple of
columns and a generator used to generate the data.
* ShowOne.take_action() returns an iterator which contains a tuple
of columns and a tuple of data
So, this problem should be fixed in 3 steps:
1. Remove all DisplayCommandBase comments for tests of classes
inheriting from class Command in cliff as it returns nothing.
2. Fix all DisplayCommandBase comments for tests of classes
inheriting from class Lister in cliff. Lister.take_action()
returns a tuple and a generator.
3. Fix all DisplayCommandBase comments for tests of classes
inheriting from class ShowOne in cliff. ShowOne.take_action()
returns two tuples.
This patch finishes step 1 in compute tests.
Change-Id: I99ab42a7de69af0e5de802a1bb5aac647245a200
Partial-bug: #1477199
projects mock has been defined in FakeIdentityv2Client as
tenants, and in FakeIdentityv3Client as projects. No need
to define them again.
Change-Id: Ieb97b32d7be6bd95c8621092b218ebfd8bc5b78d
This is a test to see if we can update release notes from previous releases.
This may not work and will be abandoned if so.
Change-Id: Id85a25c793aa403025c7e32038ea7072139700db
Moved the functional tests for "os security group" and
"os security group rule" from the compute to the network
directory to align with the refactoring to the commands.
Change-Id: Ief6ab17775c6d7e3bef58d9fa025d9dd520b7370
Partial-Bug: #1519511
Partial-Bug: #1519512
Related-to: blueprint neutron-client
The triggering crash dump feature is supported by nova [1] and
novaclient [2] now, it's time to introduce this feature into
OSC correspondingly.
[1]The change id is: I6ed777ff637254b4b79417008f9055dd19fc7405
[2]The change id is: If03b1864bbe7074c720b946fc2700bd5d07debc3
Change-Id: I5a411f283fdf0fc3c00380d069848a332c799cdd
Closes-Bug: #1538372
Co-Authored-By: Tang Chen <chen.tang@easystack.cn>
There is no unit tests for "hypervisor" command. This patch
introudces a new class FakeHypervisor to fake one or more
hypervisors, and a base class TestHypervisor. Also adds
hypervisors mock to fake compute client.
And also, this patch adds unit tests for "hypervisor list"
command.
Change-Id: I18733eae1a8f4fff72e830d9a060fb8f0f58fbf5
It would be convenient to be able to enable special logging for
various components that openstack uses. The biggest thing is
the --debug prints a lot of information when often all I want to
see is the outgoing requests/responses. To get just that logged
you would put this in your clouds.yaml:
logging:
keystoneclient.session: debug
Closes-Bug: #1484660
Change-Id: I15c2607e8262f10903dd831ee8622fb5d6315310
In https://review.openstack.org/#/c/273653/ Bryan Jones made
a point about using mock_sleep.assert_not_called() rather than
self.assertFalse(mock_sleep.called), so let's make that change
throughout these tests.
Change-Id: I826d608836955383891b303355edcca7b62faa16
Users could specify the last image (name or ID) of the previous page with
--marker option to control the start image of the output.
Change-Id: Idca0235ee83b1226b00c89cf3d38500fa898b7d0
Closes-Bug: #1540988
This option is quite useful if there are too many images.
Change-Id: If6a901c27c5da2d1f4412e8fa9ba3bed3b72fdd9
Co-Authored-By: Tang Chen <chen.tang@easystack.cn>
Partial-Bug: #1540988
Since --page-size has never worked, there is no paginate logic needs
to be implemented in "image list" command. So remove the unnecessary
loop.
And also, the marker is not necessary because --marker option has not
been implemented. Will add it back when implementing --marker option.
Change-Id: I71fea1502f92f447a49697edb52e8e82f336772f
Partial-Bug: #1540988
Class FakeVolume should be used in volume tests.
Change-Id: Idf7d3e2a0654cd7d7993f169c4743b1d38902f1b
Implements: blueprint improve-volume-unittest-framework
Co-Authored-By: Tang Chen <chen.tang@easystack.cn>
Refactored the 'os security group delete' command to use the SDK
when neutron is enabled, but continue to use the nova client when
nova network is enabled.
This patch set introduces a new NetworkAndComputeCommand class
to be used for commands that must support neutron and nova network.
The new class allows both the parser and actions to be unique.
The current DeleteSecurityGroup class is now a subclass of this
new class and has moved under the network v2 commands.
This patch set also introduces a new FakeSecurityGroup class for
testing security groups.
And finally, this patch set updates the command documentation
for security group and security group rule to indicate that
Network v2 is also used.
Change-Id: Ic21376b86b40cc6d97f360f3760ba5beed154537
Partial-Bug: #1519511
Related-to: blueprint neutron-client
Update the "os availability zone list" command to support listing
network availability zones along with the currently listed compute
and volume availability zones. This adds the --network option to
the command in order to only list network availability zones. By
default, all availability zones are listed. The --long option
was also updated to include a "Zone Resource" column which is
applicable to network availability zones. Example zone resources
include "network" and "router".
If the Network API does not support listing availability zones
then a warning message will be issued when the --network option
is specified.
This support requires an updated release of the SDK in order
to pull in [1].
[1] https://bugs.launchpad.net/python-openstacksdk/+bug/1532274
Change-Id: I78811d659b793d9d2111ea54665d5fe7e4887264
Closes-Bug: #1534202
get_body() is needed in each network files to construct a dict
to pass to sdk proxy. And it is also used by several functions
in each file. So define it as a file level private helper function.
The unified prototype should be:
def _get_attrs(client_manager, parsed_args):
1. The name, in sdk, the parameter passed to proxy is named "attrs".
And it is a private method. So let's call it _get_attrs().
2. The parameters, besides parsed_args, when we deal with project
and project_domain, we have to make use of identity_client. So
let's pass in the client manager.
Change-Id: Ib044ebd4ddedbcd805f46334a7fe99e4ebb5b249
As a result of the recent logging refactoring, log_method decorator
is no longer required. oslo.log provides a similar decorator
oslo_log.helpers.log_method_call. If a similar feature is needed,
we can use the decorator from oslo_log.
searchlightclient is the only OSC external plugin which uses this
decorator. The depending patch removes it, so we can safely drop
the decorator.
Change-Id: If3df09cf6aa0a401d9f89e8924adce851d0c6dec
Depends-On: Ib94e7ba77262a9a8cbfce71f3083c47cb1973364
Follow-up patch of https://review.openstack.org/#/c/269613/
network/v2/subnet and port still use cliff classes directly.
This patch fixes it.
Change-Id: If9d90e5151ece7f4cf1e0d6fd2f32919865f2f2e
The OpenStack SDK is now used for the network client. However,
the 'openstack quota show' command wasn't updated for the
client change. As a result, the command will fail to show
network quotas when a project name is specified. For example:
$ openstack quota show admin
'Proxy' object has no attribute 'show_quota'
This patch set fixes the command by using the OpenStack SDK
to get network quotas for a project.
Change-Id: I59a7b6780a7b80cd09e79d40d214751b25d3016e
Related-To: blueprint neutron-client
Closes-Bug: #1528249
Previously each command logs take_action parameters explicitly
by using @utils.log_method decorator or log.debug().
Some commands have no logging.
This commit calls a logger in the base class and
drops all logging definition from individual commands.
Closes-Bug: #1532294
Change-Id: I43cd0290a4353c68c075bade9571c940733da1be
DevStack now uses identity v3 by default thus causing OSC to
only load openstack.identity.v3 commands. This prevents running
functional tests on openstack.identity.v2 commands. As a result,
this patch set skips all identity v2 functional tests to unblock
the gate.
Change-Id: I066187318be71792a966fa21226fab0d406c3758
Partial-Bug: #1539780
This patch allows the adding of availability_zone_hints during
router create. Also allows for the display of availability_zones
during list and and show commands.
Change-Id: Ifbc5c218bc7103d28076d726212ce25321bcf7f1
Partial-bug: #1519503
Partially-implements: blueprint neutron-client
Follow new infra setup for translations, see spec
http://specs.openstack.org/openstack-infra/infra-specs/specs/translation_setup.html
for full details.
This basically renames
python-openstackclient/locale/python-openstackclient.pot to
openstackclient/locale/openstackclient.pot. For this we need to update
setup.cfg.
Update also domain name in i18n.py.
Change-Id: I89fad12f20775c8b7cd228348ff82a77488e6ab2
Add --availability-zone-hint parm to network create. Also add
availability_zones and availability_zone_hints to the network list and network
show commands
Change-Id: Ib4dc2e3e7897939be7bef6b25a095c8222b885bc
Partially-implements: blueprint neutron-client
Allow the exception and error status
strings to be passed in such that other plugins can
make use of this function.
There is a comment in find_resource:
The exception to catch here is dependent on which
client library the manager passed in belongs to.
Eventually this should be pulled from a common set
of client exceptions.
Since I think that is a long ways off, this change will
work now and also work when a common exception is defined
and used.
Change-Id: Iab56cd1166028caed4f1e657e0b1ee81af3f48d8
Utilize the new include names functionality added to
list role assignments (GET /role_assignments?include_names=True).
Which will return the names of the entities instead of their
IDs.
Change-Id: I6dc03baf61ef9354a8a259a9f17ff47ce1665ce7
Depends-On: I4aa77c08660a0cbd021502155938a46121ca76ef
Closes-Bug: #1479569
Implements: blueprint list-assignment-with-names
OpenStack uses 'CIDR' incorrectly in many places. We are not going
to perpetuate that usage. The correct name here is simply 'subnet'
as the data is the network address for the subnet, in CIDR notation.
Also, some additional cleanups as suggested in comments to
https://review.openstack.org/#/c/84782
Depends-on: I3c0748074a6511ff92500516b3129886d2476eed
Change-Id: Ib44c49dc1739ce7d881432e482dd16f8928eef49
test cases
columns and datalist has been set in each test case in image
and object which is not necessary. This patch abstract it out
and remove all redundant code.
Change-Id: Ie6aa3fa27ab2a468c67da31209107517259631c2
Related-Bug: 1532384
columns and datalist has been set in each test case in compute,
which is not necessary. This patch abstract it out and remove
all redundant code.
Change-Id: I5e8423722416ea31fdced4c932ed141de90028ab
Closes-Bug: #1531816
This commit makes 'log' optional.
'log' attribute of each command class does not exist
when the class is defined because 'log' is now setup
dynamically when a class is instantiated. Instead log_method
looks for a logger from a decorating method.
compute.v2.server is changed in this commit as an example.
Change-Id: Ic4d128f8e027d3b8e6f884f31369e9085c0f0871
Partial-Bug: #1532294
columns and datalist has been set in each test case in volume,
which is not necessary. This patch abstract it out and remove
all redundant code.
Change-Id: I3a09d5d2db86da986bdcfbf2310978ced181017d
* image create and image set now use --project to specify an alternate
project to own the image
* --owner is still silently accepted but deprecated, add warning messages
* --project and --owner are mutually exclusive to prevent precedence issues
Closes Bug: 1527833
Change-Id: Iccb1a1d9175ef9b5edcd79d294607db12641c1f0
Update the "os availability zone list" command to support listing
volume availability zones along with the currently listed compute
availability zones. This adds a --compute and --volume option to
the command in order to select the availability zones to list. By
default, all availability zones are listed.
If the Block Storage API does not support listing availability
zones then an warning message will be issued.
Change-Id: I8159509a41bd1fb1b4e77fdbb512cf64a5ac11a9
Closes-Bug: #1532945
Refactor the "os availability zone list" command to make it a common
command instead of a compute-only command. Since availability zones
are common to compute, volume and network (new), this refactoring
allows availability zone support to be added for volume and network.
In addition to the refactor, unit and functional tests were added.
Change-Id: I63e9d41d229b21cd38e5a083493042c096d65e05
Partial-Bug: #1532945
columns and datalist has been set in each test case in compute,
which is not necessary. This patch abstract it out and remove
all redundant code.
Change-Id: I45a3582088161f12e60e7c933da8e7dcc0ae8e7b
Closes-Bug: #1532384
Currently user password update require interactive prompting of user's
original password. This is problematic because we can't support
non-interactive applications and therefore hinders automation. This
patch make it possible by optionally accepting an
'--original-password' argument. If specified, we would use it instead
of prompting.
DocImpact
Change-Id: I2d994e8c2be949f7ae616ac1d1594fb94e1a27cd
Closes-Bug: 1531360
The usage of assertEqual(True/False, ***) should be changed
to a meaningful format of assertTrue/False(***).
Change-Id: I3437634329fc8ecef25082b43b5fc0e1030cdbda
Closes-Bug:#1512207
Replace assertEqual(*, None) with assertIsNone in tests to have
more clear messages in case of failure.
Change-Id: I8964a10ae3529e978bfab1d8140f95da4b56615c
Improve the security group rules output when running the
"os security group show" command. Empty and duplicate
information for each security group rule is now removed.
This will ensure that the rules remain readable when
direction and ethertype information is returned as part
of the transition to neutron networking.
Change-Id: Ib49c27a9d7f4d5d38ceb2b0d785ddf94d88b2d89
Partial-Bug: #1519511
Related-To: blueprint neutron-client
Move the network endpoint enablement checking from the 'server create'
command to the common client manager. This allows future network
commands to use either nova or neutron networking based on the cloud
environment.
This patch set also includes related unit test enhancements to the
common client manager to trigger authentication on the tests.
Change-Id: Ia37e81d4fb05a1e2fceb3e5d367bda769ab8e64b
Related-Bug: #1519511
Related-to: blueprint neutron-client
This patch introduces a unit test class TestProjectUnset
for testing unset cmd.
Co-Authored-By: Steve Martinelli <stevemar@ca.ibm.com>
Change-Id: Ib4a414d2313e3d37e48d1cb3639f064231aec508
Closes-Bug: #1486597
Currently the domain option for `project set` attempts to set
a new domain that owns the project. This is actually an action
that is denied by keystone server. Instead, the domain option
should be used as a lookup, to find projects that exist in the
non-default domain.
Co-Authored-By: Steve Martinelli <stevemar@ca.ibm.com>
Closes-Bug: #1524456
Change-Id: I30a3812184fe262667e09baa106d2275c2cbb981
string_to_bool() is not used by anyone.
Furthermore, it is not well designed. It tries to convirt 't', '1'
to True, which could be confused.
So remove it. If we need something similar, let's make a better one.
Change-Id: Ic1f63480c806bf7bcc9f541fc806eed297ddf718
No need to initialize parser in each test case. Do it in setUp().
Also remove the test_default_values case because it could be tested
in the test_good_values case.
Change-Id: Ia2ed7c9e46bf6baabbd62b9d50511c5e8103e5e2
This patch is going to replace assertEqual(None, *) with
assertIsNone(*) in unit test code to have more clear messages
in case of failure.
Change-Id: I6f85498347e8fc7cad5ea7afb832b9acda7daafc
OCC now requires all regions to be listed in the cloud
configuration. Update the shell unit tests to list all
of the regions being tested.
Change-Id: Ic7300d1f708339701b5daadbf2c4769b239a2adb
Closes-Bug: #1528926
1. Make TestServerGeneral inherit from TestServer because
we need to use servers_mock, image_mock and flavor_mock
in compute_client.
2. Create a dict containing all info of a server in the
original format, and pass it to _prep_server_detail().
3. Compare the original and formatted dict.
Change-Id: Ie0b83c42a5c3bbba630a064d28374d07e2ce9caf
Implements: blueprint osc-unit-test-framework-improvement
The items in a dict are in random order. So if a server is in two networks,
there may be two results after formatted.
Change-Id: I2e15d202639e3fff427935f46650a405b0e51bcc
Implements: blueprint osc-unit-test-framework-improvement
Both nova and neutron allow security group rules to be listed without
specifying the owning security group. This patch set makes the
group argument on 'os security group rule list' optional. Behavior
is unchanged when the argument is specified. When the argument is
not specified then all accessible security group rules will be listed.
The listing will include the owning security group for each rule.
Change-Id: I6914baecf70a65354e1e82dad92c6afbd32b4973
Related-Bug: #1519512
In python-openstackclient some test cases using asserEqual(None, *)
instead of assertIsNone(). assertIsNone method provides clear error message.
Change-Id: I3069a6436d11efa513ae94f21ceab46c498d6e25
Closes-Bug: #1527054
This change allows admins to deactivate and reactivate their
images. Currently this has to be done with the REST api or the
glanceclient.
This change introduces `--deactivate` and `--activate` for the `image
set` command.
This requires glanceclient 1.2.0. Which got bumped here:
https://review.openstack.org/#/c/257512/
Change-Id: I476c44a0343cdc92d58ddc93fb06470242de2345
Depends-On: I2c370c6bf6ff664d94d756cc76aaa983fbdb8869
Closes-Bug: 1516661
This patch adds "router set" command to osc using sdk.
NOTE: Setting ha property of a router is not supported for now.
Will suppport it in another patch.
Change-Id: I9c15249ae61a87291f0728ad1c8f0a98aa8119bf
Implements: blueprint neutron-client
Partial-bug: #1519503
Currently, test_create_no_options() case actually takes a 'name' arg.
Rename it to test_create_default_options, and add a test_create_no_options
case taking nothing.
Change-Id: I4f9d2e8cbfa843faea641d3cc959f96894c9cd5d
This patch adds "router create" command to osc using sdk.
NOTE: Test for --project needs support for fake identity client v2 and v3.
These tests will be added in other patches.
NOTE: external_gateway_info and routes are not supported to be passed to
create command now. They will be supported in another tow patches.
NOTE: Creating a ha router is not supported for now. Will support it in
another patch.
Change-Id: I7642295d27c27dd498331ae1da1c293706d8f6af
Implements: blueprint neutron-client
Partial-bug: #1519503
The 'security group rule list' command was updated to display the
remote security group name for a security group rule. This was done
via a new 'Remote Security Group' column. The output of the
'security group rule create' and 'security group show' commands was
also updated to include 'remote_security_group' information instead
of the raw 'group' information returned from the API layer.
Change-Id: I5f9600338c8331966d2c658109a24b502c538106
Closes-Bug: #1520003
sometimes properties within object store concepts are stored with
mixed case depending on the client used to store said properties.
when retrieving properties to 'show' the user, always call lower()
on the property in question when comparing it to the reserved
values of the swift API.
Change-Id: I97ffc715788ca3cd021413124b6945a399465c99
Closes-Bug: 1525805
The developer documentation has been updated to include an
optional command specs process. This process may be used
to work out the specifications for new commands, objects
and actions before their implementation.
This new process could assist in the implementation of
additional neutron support in OSC.
Change-Id: I62f7472435a9caacee0d1b4c8d35417c123b5a44
This patch removes `MANIFEST.in` file as pbr generates a sensible
manifest from git files and some standard files and it removes
the need for an explicit `MANIFEST.in` file.
Change-Id: I78b28bf2fe60dc64cf6c3894da36f683a2e0bb30
Add "router list" command. It takes one "--long" option.
By default, the command will print router id, name, status,
admin state up, distributed, ha and project id.
With "--long" option, it will also print routes and
external gateway info.
Change-Id: I9d21904c41c11ee1fa107f985744878a1dc2f970
Implements: blueprint neutron-client
Partial-bug: #1519503
A unit test class similar to FakeServer, which is able to fake one
or more routers. It will be used by the router CRUD patches.
Change-Id: I9b87c6c95282902c3a829da51229a35d4265a1e4
Implements: blueprint neutron-client
Partial-bug: #1519503
In test_server.py, there are two ImageManagers are faked:
1. the one in compute client
2. the one in image client
But the comments are the same. And so is volume.
This patch makes the comments more clear.
Change-Id: I2c52f48a7b3c005c185a4ac64abbb3e18d5fb3de
The command will now default to the image currently in-use by
the server, effectively making the --image parameter optional.
This commit also adds basic tests for ServerRebuild since there
wasn't any. Will add more full tests for it.
Change-Id: I733fd3ad5a825f06563c72aa430122e1a0e3b3b0
Closes-bug: #1524406
Co-Authored-By: David Moreau Simard <dms@redhat.com>
Co-Authored-By: Tang Chen <tangchen@cn.fujitsu.com>
1. "network delete" takes network name or ID, not project
2. "network set/show" takes network name or ID, not only name.
So use network, not name.
Change-Id: I13835fea1d0151ea0cd93e250b022c9daf74b537
Since "network delete" could delete more than one network,
add a (s) to the doc.
And also, rename the parameter "networks" to "network".
The naming style is not using plural format in parameter.
Change-Id: Id434ea905af34457f84ea6bcb18addef5800429a
The keys() method returns the keys returned from Neutron, but
the SDK maps some things like tenant_id to project_id. This
makes the output a little prettier.
Change-Id: Ibd8c890b61ffc94021f93fc1051fcf5dabd1e9ea
If we have tests for each helper function, then we can call them
in other tests without worrying about error.
Change-Id: I1e4273aef201fe9d8936e5c365ebb46068039892
Implements: blueprint osc-unit-test-framework-improvement
Now that the neutron support is using the openstacksdk
requirement, the python-neutronclient requirement can
be removed.
Change-Id: Ieefac297e136f2f2997ec41cef2673e814c75b55
Related-to: blueprint neutron-client
In two steps:
1. Setup all necessary attributes of a server in setUp(), including
the ones that are not faked in FaseServer by default.
2. Run a similar process with no option test case.
The future plan is to move all these attributes to FakeServer.
But it will cause some other changes which has nothing to do with
this patch. So leave this job to do later.
Change-Id: I1134812a0ea146ef737b0f0ffbef8ca23684accd
Implements: blueprint osc-unit-test-framework-improvement
The previous patches have migrate all network commands to
the new version using sdk. This patch will remove the
temporary method, and implement a new make_client() to
create sdk network client.
And also, find() in openstackclient/network/common.py must
support sdk. The logic of this function will become much
easier than before, so this patch also removes two useless
test cases of find().
This patch will also remove the patched methods in tests.
Change-Id: Ic2f7bca073beb9757172d16f95d9b82c48cbbc12
Implements: blueprint neutron-client
Co-Authored-By: Terry Howe <terrylhowe@gmail.com>
Co-Authored-By: Tang Chen <tangchen@cn.fujitsu.com>
This patch makes "network show" command use sdk.
Since we have to keep the other commands runnable with
the old network client, we use a temporary method to
create sdk network client. And as a result, the tests
need to patch a method to fake the temporary method,
which will be removed at last.
There are two same test cases in the unit tests. This
patch will remove one.
And since the output has changed, we also need to fix
function test cases.
Change-Id: I4c06b4efad2db430767bbaa882b0876df3ab483a
Implements: blueprint neutron-client
Co-Authored-By: Terry Howe <terrylhowe@gmail.com>
Co-Authored-By: Tang Chen <tangchen@cn.fujitsu.com>
This patch makes "network set" command use sdk.
Since we have to keep the other commands runnable with
the old network client, we use a temporary method to
create sdk network client. And as a result, the tests
need to patch a method to fake the temporary method,
which will be removed at last.
Change-Id: I794ac4b82d9200747298f1a9ee44611140e9b6d0
Implements: blueprint neutron-client
Co-Authored-By: Terry Howe <terrylhowe@gmail.com>
Co-Authored-By: Tang Chen <tangchen@cn.fujitsu.com>
This patch makes "network delete" command use sdk.
Since we have to keep the other commands runnable with
the old network client, we use a temporary method to
create sdk network client. And as a result, the tests
need to patch a method to fake the temporary method,
which will be removed at last.
Change-Id: I1f2c404e4b0ff6727e4c535ce543aa406f2290ce
Implements: blueprint neutron-client
Co-Authored-By: Terry Howe <terrylhowe@gmail.com>
Co-Authored-By: Tang Chen <tangchen@cn.fujitsu.com>
This patch makes "network create" command use sdk.
Since we have to keep the other commands runnable with
the old network client, we use a temporary method to
create sdk network client. And as a result, the tests
need to patch a method to fake the temporary method,
which will be removed at last.
Change-Id: I06559c675be1188747257f72f18d6b4d420d0285
Implements: blueprint neutron-client
Co-Authored-By: Terry Howe <terrylhowe@gmail.com>
Co-Authored-By: Tang Chen <tangchen@cn.fujitsu.com>
This patch makes "network list" command use sdk.
Since we have to keep the other commands runnable with
the old network client, we use a temporary method to
create sdk network client. And as a result, the tests
need to patch a method to fake the temporary method,
which will be removed at last.
Change-Id: I0882501cd7bb2c17917e10a6da4298f1452c9765
Implements: blueprint neutron-client
Co-Authored-By: Terry Howe <terrylhowe@gmail.com>
Co-Authored-By: Tang Chen <tangchen@cn.fujitsu.com>
We have a class FakeVolume to fake one or more volumes. So use it in
test_server.py.
Change-Id: I735ae7f678a6799e0ae4c7c25c8083d9ebf47b09
Implements: blueprint improve-volume-unittest-framework
We have a class FakeImage to fake one or more images. So use it in
test_server.py.
Change-Id: I276e4ade5aecefbe66b9722c1dfbac10b3bd14b6
Implements: blueprint improve-image-unittest-framework
The 'security group rule create' command was updated to support a
source security group. Now either a source IP address block or source
security group can be specified when creating a rule. The default
remains the same.
Change-Id: If57de2871810caddeeaee96482eb34146968e173
Closes-Bug: #1522969
This patch adds a temporary method to create a network client using sdk.
This method will help to migrate network commands from neutronclient to sdk
one by one. The command which is being migrated will use this temporary
method to create the sdk client, and the rest ones will use the old client.
The temporary method will finally be removed and implement the same thing
in make_client().
This patch will also add sdk to requirements file.
And adds some formatter helper functions, which will be used in class
CreateNetwork, ListNetwork and ShowNetwork.
This patch is splited from TerryHowe <terrylhowe@gmail.com> 's original patch.
Change-Id: Ie9b35747680afeb66cf6922e2c654fbca7e03569
Implements: blueprint neutron-client
Co-Authored-By: TerryHowe <terrylhowe@gmail.com>
Co-Authored-By: Tang Chen <tangchen@cn.fujitsu.com>
Introduce a new class FakeNetwork to fake one or more Network
objects so that we don't need to initialize objects once and
once again in each test case.
Change-Id: I519e5368025946a737002a2e97bc218b65a78fa2
Implements: blueprint osc-network-unit-test-refactor
Related-to: blueprint neutron-client
We should use the formatter in the original code to set the
expected data in each test case.
The same problem exists in other test cases, like "server create".
But data structure in TestServerCreate is different from TestServerList,
so will fix the problem in another patch.
Change-Id: I233f7a91cd4cc1e996941e26ea85490fa3290572
In server.py, identity.common is imported as identity_common.
But network.common is imported as common, which is confuseing.
This patch imports network.common as network_common.
Change-Id: I74295bc88b22de398ab64fe556aedaca2453d17d
openstackclient/tests/network/common.py won't be used anymore. Remove it.
Change-Id: I641f6d44852931e31ecda22261bfbc9f451446de
Implements: blueprint osc-network-unit-test-refactor
Related-to: blueprint neutron-client
There are severail problems in TestShowNetwork:
1. NETWORK_ITEM is not used.
2. Some redundant code.
3. The param n_mock is used to fake find_attr(), but the name is confusing.
So rename it to find_attr().
This patch fixes them.
Change-Id: I7bc909057125013fb9d215e92c61f847300f93e2
Implements: blueprint osc-network-unit-test-refactor
Related-to: blueprint neutron-client
Use TestNetwork in TestSetNetwork, and also setup test command
in setUp().
Change-Id: I4e72332fcf253407bb3d5f20aaf4be047046e146
Related-to: blueprint neutron-client
Abstract cloumns and data out in TestListNetwork so that they
can be reused by each case.
Also rename n_mock to network_list because it is used to fake
function network_list().
Change-Id: I3f65f7bd6c587c167dc1cf8b6d34e003c6454e57
Implements: blueprint osc-network-unit-test-refactor
Related-to: blueprint neutron-client
Make TestDeleteNetwork inherit from TestNetwork, and have the same class architecture
as the other test classes.
Change-Id: I37047d7d13931b2a8f25665d6427efc05fc4f989
Implements: blueprint osc-network-unit-test-refactor
Related-to: blueprint neutron-client
This patch setup the v2 identity client only once in setUp() for TestCreateNetworkIdentityV2.
Change-Id: I9d7a83e5e67e810a5c5f760fb9c40ce450f7dc99
Implements: blueprint osc-network-unit-test-refactor
Related-to: blueprint neutron-client
This patch setup the v3 identity client only once in setUp() for TestCreateNetworkIdentityV3.
Change-Id: Ia20db01af85f868a88bf905174b8556979b0a39a
Implements: blueprint osc-network-unit-test-refactor
Related-to: blueprint neutron-client
This patch setup the tested command only once in setUp() for TestCreateNetworkIdentityV2.
Change-Id: I689980674c9500c0c040d27164ec61f5fcf40ee5
Implements: blueprint osc-network-unit-test-refactor
Related-to: blueprint neutron-client
This patch setup the tested command only once in setUp() for TestCreateNetworkIdentityV3.
Change-Id: Iff5119fa24c9cc0caa72ff0e8f63e8dcac72470a
Implements: blueprint osc-network-unit-test-refactor
Related-to: blueprint neutron-client
In TestCreateNetwork, both Identity v2 and v3 clients are tested. As a result, we should
initialize the identity client again and again in each test function.
To reduce redundant code, this patch split TestCreateNetwork to TestCreateNetworkIdentityV2 and V3.
And then initialize the identity client only once in each of them.
Change-Id: I349fe7f827524beb541efe7dd9460c534254b80c
Implements: blueprint osc-network-unit-test-refactor
Related-to: blueprint neutron-client
The class inherit architecture in network unit test is different from other test classes,
which leads to lots of redundant code. This patch will make it the same as the other test
classes. And it will be more convenience for the coming up refactor.
Change-Id: I6f239dd54b9401ff2bbcf7ffdeb18769a450f573
Implements: blueprint osc-network-unit-test-refactor
Related-to: blueprint neutron-client
The following options of "server create" command support searching
by both name and ID. So add this info into doc.
--image, --volume, --flavor, --security.
Change-Id: I93b167da58144e5de6c9996009b7ea2449fb4cd8
The v2 SetVolume extends from show.ShowOne and returns None
after setting volume operation. It will raise an exception.
This patch is going to fix the issue by changing the parent
class of SetVolume to command.Command.
Change-Id: Iefa453fe4adad06f2a0601a052c01e74004be5b7
Closes-bug: 1521896
This patch provide a class to test "server list" command. Only one simplest
case in this patch.
Some of the options in "server list" are complicated. And the server object
contains lots of attributes need to be handled in specific ways. So other
test cases will be added in other patches.
Change-Id: Id9fdba8f149bd74187aa42516067dacebc6962b5
Implements: blueprint osc-unit-test-framework-improvement
setup_servers_mock() is now able to set methods to the fake servers.
But it cannot set attributes. This patch enable it to do so.
This will be useful in "server list" test cases.
Change-Id: Ic30d750ebe4650244707a368cdd5d622a8f1b8ed
Implements: blueprint osc-unit-test-framework-improvement
Introduce FakeImage to improve the current image unittest framework
with following two advantages:
1. generate more than one faking images
2. all faking images generated by random
Change-Id: Ide326fa2a047ddeea478bef97000083617a0b744
Implements: blueprint improve-image-unittest-framework
* Change session imports to keystoneauth1
* Change keystoneclient.exception imports to keystoneauth1
* Change exceptions raised from internal API from keystoneclient to openstack.common
Change-Id: I046d89f561d6fe04baae53726f9749d2e7fe2056
Nova API only supports list servers searching by image ID.
In OSC, we can support both image name and ID by mapping
the name to ID.
This patch also fix the inconsistent doc in .py and .rst files.
Closes-Bug: 1521492
Change-Id: I70613843f82d74732bd32a457cd4a31aba57825f
Nova API only supports list servers searching by flavor ID.
In OSC, we can support both flavor name and ID by mapping
the name to ID.
This patch also fix the inconsistent doc in .py and .rst files.
Partial-Bug: 1521492
Change-Id: I1d1a6aa91aef4e2846745babe8382481185fa96e
conflicting command names are a painpoint, so is manually updating
a list. let's autodocument the commands that are being use by
existing osc supporters.
Change-Id: If37d81dfd57cc79803668b64be1ccd776e319572
Replace the super class from lister.Lister to command.Command,
as no need to display the status for the "set" command.
Change-Id: Ibaf3c1e349633223fca19937bbd9060d4f9ecbda
Closes-Bug: #1517804
in addition to release notes, it'll be nice to also see the
changelog that happened between releases.
Change-Id: I4548be22c377ec12f0398a248391384126506715
Add a set of testcases to test the classes of
ListService and SetService in the compute.v2.service.
And to be consistent with cinder term, use service_binary
to represent the service binary.
Change-Id: I9fe740f07c9ce3afdba7b7cca152d614170abb96
This change is inspired by the volume.py.
It allow the user to use openstack snapshot list --all.
Closes-Bug: #1517386
Change-Id: I72a53fcd0c5c5af539cd88b37e71b4331fa67473
Introduce FakeVolume to improve the current volume unittest framework
with following two advantages:
1. generate more than one faking volumes
2. all faking volumes generated by random
Change-Id: I9d56efa4fd4f03c82cd4e29622b6312566dbc453
Implements: blueprint improve-volume-unittest-framework
A validation is necessary to check the existence of project.
This patch is similar to Ia2d8c96527820e25b074e6486d3f39c5ad7eae60.
Change-Id: Id8895ba7a21ecad05942619a82a87c0dc68eae53
Actually, the status column is useful for the user.
So, it`s better to output this info by default (or, user had
to specify the extra option, i.e. --long).
Change-Id: Id2a9f86f0de5310f8f5ff9a46bf1b7411094b519
Closes-Bug: #1519181
The new class FakeFlavor has been introduced to fake one or more flavors.
So use it and remove the old fake flavor data.
Change-Id: Ie3a33b36ae6e597c6a0b1d17ad13c73cf4b73bc9
Implements: blueprint improve-flavor-unit-test
Just like FakeServer and FakeResource, FakeFlavorResource should be in compute_fakes.py.
Change-Id: I8315256fb90377605fa2190e24c9674f6aaf6efd
Implements: blueprint improve-flavor-unit-test
datalist has been set in each test case in TestFlavorList, which is not
necessary. This patch abstract it out and remove all redundant code.
Change-Id: I6f735f7d9fa29a8ab435adaef17ca559df1fdcee
Implements: blueprint improve-flavor-unit-test
The columns has been set in each test case of TestFlavorList, which is not
necessary. This patch abstract it out and remove all redundant code.
Change-Id: Ideb2872f073755ac251bd603fd906410ea86c4ef
Implements: blueprint improve-flavor-unit-tes
The unshelve operation is not supported by OSC,
and this patch tries to add it.
Change-Id: Ic60a4616cb63ad21c1a3c8e02611da8bad3a8bd0
Implements: blueprint introduce-shelve-into-osc
While multi volumes specified for the osc "openstack volume delete",
only the last volume is deleted.
This patch tries to fix it.
Change-Id: I171b2869f85b29c88fda16eaf5bf163c55795df0
Closes-Bug: #1520541
The test cases for server.xxx() are all the same, with one or more faked servers.
So use a helper function to reduce code duplicate.
Change-Id: I660c7731e2de8bf4d815b414a621d8d9ca6d5a8b
Implements: blueprint osc-unit-test-framework-improvement
This patch adds a multiple servers test case to class TestServerDelete.
Change-Id: I8b0c37ec2a8e7b23889e25c9004f867f2907f630
Implements: blueprint osc-unit-test-framework-improvement
Use setup_servers_mock() in class TestServerDelete to coordinate
the test class format.
Change-Id: I1901d6b781d97820667984241f4d68764d045854
Implements: blueprint osc-unit-test-framework-improvement
This function will be used in almost every test case.
So move it to the base class to avoid define it each
time a test case is added.
Change-Id: I060b54f0935b42a85042ad217d851fea649ec8d9
Implements: blueprint osc-unit-test-framework-improvement
Currently the 'public' and 'private' keys does not work
when creating volume type, 'is_public' should be used.
Change-Id: If34a66053ea6c192882a1b9d8bbb1d3666be3f83
Closes-bug: 1520115
Per comment in [1], refactor the security group class names to
be in alphabetical order.
[1] https://review.openstack.org/#/c/249223
Change-Id: If28a153cdab57c0659ff5c78b276766d4043467f
as of mitaka, the infra team won't have the resources available to
reasonably test py26, also the oslo team is dropping py26 support
from their libraries. sine we rely on oslo for a lot of our work,
and depend on infra for our CI, we should drop py26 support too.
Change-Id: I66d168ecc755a3ea0e01d5b6344d06d9e0d1378b
Closes-Bug: 1519510
Fix the 'ip floating' command documentation file name.
Add missing command list documentation for the 'ip fixed'
and 'ip floating pool' commands. In addition, update the
command description and argument help to fix minor issues
and use consistent terminology. And finally, cleanup the
Network command object formatting.
Change-Id: I0168891bc674c9f0d4df4062f7e93f497dc8fe6f
Add missing command list documentation for the 'security group'
and 'security group rule' commands. In addition, update the
command description and argument help to fix minor issues and
use consistent terminology.
Change-Id: I9f4a3fbac5637289f19511874e16391d3fe27132
Current "openstack server resume" command could only resume one server.
Improve it to be able to handle more than one servers. Also improve
the doc to reflect the new feature.
Change-Id: I726eb86bfa3df3a9911f45770e6641264dbc1e0b
Implements: blueprint cmd-with-multi-servers
Current "openstack server suspend" command could only suspend one server.
Improve it to be able to handle more than one servers. Also improve
the doc to reflect the new feature.
Change-Id: Ic0417ee28f46c9198a35744c0180342e61966b26
Implements: blueprint cmd-with-multi-servers
Currently, the shelve operation is not supported by OSC.
So, this patch attempts to add it into OSC.
Change-Id: I92545300bef006a069338168d2de800e8a58af69
Implements: blueprint introduce-shelve-into-osc
The old fake server framework has be replaced with the new
class FakeServer, which is stronger in:
1. faking multiple servers with random names and ids
2. faking methods in a server
3. easier to use
So remove the old fake server data, and use class FakeServer
from now on.
Change-Id: Ife8ee37a7ce14d9a3201104bce8075a918a97613
Implements: blueprint osc-unit-test-framework-improvement
There are the same problems with TestServerCreate in TestServerResize.
Use the new class FakeServer to fix them.
Change-Id: Ibde3e68a7bc55bbbf8357ba98be2559a6d0d41b6
Implements: blueprint osc-unit-test-framework-improvement
There are the same problems with TestServerCreate in TestServerImageCreate.
Use the new class FakeServer to fix them.
Change-Id: Ie723fa95620549f09a81ef72953f46877ef9252a
Implements: blueprint osc-unit-test-framework-improvement
There are the same problems with TestServerCreate in TestServerDelete.
Use the new class FakeServer to fix them.
Change-Id: Icdcc90cc93ed1080187fb0edca885b0db56ab35d
Implements: blueprint osc-unit-test-framework-improvement
In the current TestServerCreate, there are several problems:
1. The fake create() returns a server with no 'networks' field.
The new_server is used to fake the created server which is
supposed to be returned by create(), but it has a 'networks'
field.
They have the same name and id, but they are actually not
the same server.
As a result, when checking the return value from create(),
'networks' is not checked.
2. The fake server is not accessable in the test functions.
So each time a test function wants to get the server name
or id, it has to use the constants defined in compute_fakes.
This is not good. We should make the fake server accessable
in all test functions to ensure they actually get the same
server.
This patch fix them both by using the new class FakeServer to
fake a server.
Change-Id: I8ffc8e233f8710034329ed33fccb2c734898ec2d
Implements: blueprint osc-unit-test-framework-improvement
This is a follow-up to I6c750730963615895f5d9953487d2d5a905885a8 that
removed a command deprecation warning wrapper. This documents the
technique for later use.
Change-Id: Ieaa1e6b7eed4e5b037b4bfb6cf488e1290fc69f7
The OpenStackClient mapping of 'openstack quota set' arguments isn't
correct for compute quota items that have to different names. For
example, the --injected-file-size argument is mapped to
injected_file_size, but the compute quotas item is actually
injected_file_content_bytes. This incorrect mapping prevented the
impacted compute quota items from being set.
The problem impacts the following 'openstack quota set' arguments:
--injected-file-size
--injected-path-size
--properties
--secgroup-rules
--secgroups
This patch set also expands the compute quota unit tests to verify
all compute quota items that can be set.
Change-Id: I0a2f241e425f4811e4ae55be183ac0c8b0805c2a
Closes-Bug: #1475831
This was previously part of the command, so added it in for backwards
compatibility. This adds the --volume command and the complimentary
--force command allowing users to create images from volumes.
It seems it may not be possible to add it to image set v2.
Change-Id: Ica36e70989f75d80959af3227f66708758fae68d
This patch adds unit tests for "server pause" command,
including one and multiple servers.
Change-Id: If5551e77d7dd4f7f48c6ee4a7f80f8313817f492
Implements: blueprint osc-unit-test-framework-improvement
This patch introduces a new server faking mechanism to support
multiple servers faking.
Server names and ids can be generated randomly, and use APIs in
class FakeServer to get one or more servers.
Change-Id: Ic54f3bf7c77294dc7dfb9acdbf4a721eb5eef6af
Implements: blueprint osc-unit-test-framework-improvement
Use MagicMock to fake a method in FakeResource. A new function:
add_method(name, return_value)
is added to FakeResource. The caller specifies method @name and @return_value,
the function will add an attribute with @name, which is a callable MagicMock
object whose return value is @return_value.
When user access the attribute with a (), @return_value will be returned by
MagicMock, which looks like a function call.
Change-Id: I12eb876cbebab064773df7b5dd612de69bbf3f01
Implements: blueprint osc-unit-test-framework-improvement
For some apis, heat, the error status is "failed". This patch
changes the wait_for_status method to allow for the error
status to be passed in the same way as the success status.
Change-Id: I20db4051d3f5611a4b13fe23ea8798b82a40da81
Remove the 'project usage list' command that was deprecated in version
1.0.2 in review Ie08d4f88d71a660fca1862405351109cd0aa86b6.
Note that the removed command class is a good example of how to wrap a
command and show a deprecation message.
Change-Id: I6c750730963615895f5d9953487d2d5a905885a8
From seeing other OpenStack modules,
APPENDIX:How to apply the Apache License to your work.
is not written.
Change-Id: I6fe0968e2281ef4f60e7c41f5621f552efc8a349
"nova list" will also output "Task State" and "Power State" by default.
This patch improves "server list" command to have the same columns, but
not by default. These two columns will be output if --long is added.
The power state is an int, so also adds a formatter helper function
to translate it to human readable string, just as "Networks" does.
Change-Id: I0530a910bec03835839a5ba7687c66d5643338f3
Current "openstack server unlock" command could only unlock one server.
Improve it to be able to handle more than one servers. Also improve the
doc to reflect the new feature.
Change-Id: Ibf57b2021a504da950a491d63139a438087aed0b
Implements: blueprint cmd-with-multi-servers
Current "openstack server lock" command could only lock one server.
Improve it to be able to handle more than one servers. Also improve
the doc to reflect the new feature.
Change-Id: Ifcf103b1c32e6c547ac09f688b887b1c03f92b09
Implements: blueprint cmd-with-multi-servers
Current "openstack server unpause" command could only unpause one server.
Improve it to be able to handle more than one servers. Also improve the
doc to reflect the new feature.
Change-Id: I069ebdd6dcd121f6e55c2bf40d42197f93830e0c
Implements: blueprint cmd-with-multi-servers
skip properties that are non-ascii values, but proceed
with properties that work. log these failed values back
to the user.
Change-Id: Iaca8909f4465a01c8aebfd290b1a322823702359
Closes-Bug: 1503898
remote-ids are a list, and we should format these values as such,
rather than python representations of lists/arrays.
Closes-Bug: 1478995
Change-Id: Ia6ced0fab2435b8cb486822c676c0dee32613abe
neutronclient expects 2.0 as the version if you go through the discovery
constructor. For that reason, 2.0 is the 'correct' version to set in
config files or environment variables for if you're using things that
are not OSC. However, if you do that, OSC prints a warning that 2.0 is
not in the supported network version list.
Let's support both so that users don't get a confuse.
Change-Id: I7412519693f75fcd29f5621ce9e5a2df2da92684
The behaviors are inconsistent while different
negative line numbers specified.
Change-Id: I2573f3e789f5603c896758971830ffc0b94c5e2b
Closes-Bug: #1512263
Current "openstack server pause" command could only pause one server.
Improve it to be able to handle more than one servers. Also improve
the doc to reflect the new feature.
Change-Id: I809f77f0720457c9cdc1028a70b391c75885984c
Implements: blueprint cmd-with-multi-servers
Instead of "find_project", using "find_user" to get the user_id
while the option --user is specified for "openstack volume list"
Change-Id: Iea8472b7b8e709a8792a56575e00003a9cbdaa39
Closes-Bug: #1514145
"server create" command takes a server name parameter. The server id is
generated by openstack.
When we intended to pass a server name to the unit tests of "server create"
command, we passed server id. It won't be any problem because the fake
server id is also a string, but we should pass a fake server name because
we have a string to fake one.
Change-Id: I9944f0ea2a6c457e4fad8215a54778bca08965ab
This adds --owner to `image create`. This is backwards compatable with v1.
Change-Id: I9e79cf880c91a1386419db729818d23dfe632179
Depends-On: I8d572a070bbb04dccdd051b8e0ad199c5754746e
OSC blows up if you try to use for example identity_api_version: 2
in the clouds.yaml. It will only work with a string '2'. This
fixes that.
Change-Id: I785d37a288126a1582464e907c7f9c9947bac27c
The quota info would be set into DB, even though the project actually
does not exist.
This patch tried to add a validation to forbid this undesirable behavior.
Change-Id: Ia2d8c96527820e25b074e6486d3f39c5ad7eae60
Closes-Bug: #1512638
When there is no resouce usage associated with the project,
an odd output will be displayed.
This patch tried to fix this issue.
Change-Id: I6f254c6ba37fbb760ada08e640c4938668d560dc
Closes-Bug: #1512220
At one point this file contained the context for logging, but
the reason for its existence is now for logging.
Implements: blueprint logging-migration
Change-Id: I4ba42bbef97b09d31236ac8c01b6fb23827b8bee
The current default value for debug in cliff is False. Cloud
config assumes that it was set that way on the command line and
does not overlay it with the value from the configuration file.
Cliff bug:
https://bugs.launchpad.net/python-cliff/+bug/1483378
Change-Id: I66d82b489b2241dbcd1e1350e94259a54ce09de7
It is a general rule that we don't use plural form for the name of
command arguments. But class DeleteServer() is still using "servers".
So use "server instead".
Change-Id: I2d76de14ec34b88547b9f728b41e9bd93b2a22c5
image_member doesn't have a _info attribute, glanceclient returns
warlock object instead of a Resource object.
Change-Id: If6e7c4bd404454bd6cbe8c111879c1afa1380211
Closes-Bug: #1509054
Add a developer guideline for command options to define the options
used across multiple commands and make them behave consistently.
Change-Id: I1dbbafe8061e10b271cd55cac056731508c52204
the parameter "url" was removed from Keystone, it was only added
for one release as part of an experimental support for adding
service providers.
BackwardsIncompatibleImpact
Closes-Bug: 1506841
Change-Id: I7a62fbf1d9bfa8e6dd8d619e98c32b9860348d2e
Missing 'marker' and 'limit' params for `openstack flavor list` shell
command. It would be nice to have this when there are many flavors.
Closes-bug: #1505874
Change-Id: I088ac5d24f0d7595f5cbce14f063e296a449eb26
* Add volume list tests for v1 (a copy of the v2 tests)
* Converts volume v2 tests to use Identity v3 so domains can be tested
* Add volume list (v2) tests for new options
* Re-orders volume list options (both v1 and v2) to match
* MArks the new volume list (v2) options as v2-only in doc
Change-Id: I2181b2c48cfde2147d7d0ef135322df8a81e7ce8
This change adds 'compute service delete <service>' to the openstack
client. This is the equivalent of 'nova service-delete <id>'
Change-Id: I69ef1cac72cbe125c2114f8e958e22350a70f367
Closes-Bug: #1503510
added project, user and domain options for filtering results,
also cleaned up the order to match the docs.
Co-Authored-By: Steve Martinelli <stevemar@ca.ibm.com>
Closed-bug: #1483976
Change-Id: I9d955094d31d4a28e215d24f7521a11c62bee8db
in an effort to start consuming keystoneauth1, we can move our
sesssion and fixture code over to use keystoneauth1 instead of
keystoneclient.
Change-Id: Ibcbd588ce2e3d864f87ff1eb6e1c3c071a1e06f6
* shlex.split() expects a string. Not bytes.
* decode the bytestring result of subprocess's communicate()
to a string.
Change-Id: I209f67a91dc609b1e30cb9e683d3d6ee63d00069
1) Change metadata to appear under a common 'properties' key, and
use the utility to format them, this applied to object, account
and container.
2) Clean up container and object output, which were setting the
x-container-meta-owner property, but this is metadata only for
the container, so it's pointless to have, removed it.
3) Container show was showing read/write ACLs and sync stuff, but
these are not being returned by my swift by default, so I moved
these to be checks, so we don't clutter the output.
Change-Id: Ife7521fe9c2724035b06963c118bd6016ba2f5b5
Devstack now issues all v3 OSC commands for our CI, and since v3
has everything v2 has, we should be able to switch to v3.
Furthermore, most OSC users were initially using OSC since they
were looking to exploit v3 keystone capabilities.
Change-Id: If7de86946f6dd0f148aa5f526155cccf90adfcc3
We need a spot that highlights the `objects` used by OpenStack
based `plugins`. The sooner we have this information out, the
sooner we reduce the chance of a name collision.
Change-Id: If9f07e19adea4aaa813eecdd0bce1fbfe616e306
This change adds the ID to the compute service list command so that the
ID can be leveraged by scripts trying to remove or update a specific
service.
Change-Id: I446b4c0071988133195eb2382313b3918b7ffa72
Closes-Bug: #1503430
the rest of OSC set commands do not show the resource after it has
been updated. unless the update fails then we report back a failure,
otherwise the user should assume everything went fine.
Change-Id: I2bd4188450c3853b4a1bc25f80fc9450cda32bdd
This adds --tag to the v2 version of `image set`. This
is another step to compatability between the osc image api.
Added merge of tags into existing tags and handling duplicates,
and tests for same.
Co-Authored-By: Steve Martinelli <stevemar@ca.ibm.com>
Change-Id: Ie800fcbf8bbc0978c54ace3278750a18023e8ce4
Make the Image v2 image set command meet at the intersection of the v1
image set command and the v2 image create command:
* Add visibility to the deadopts list and remove the option
* Put the options in the same order as v1 image set
* Make the help text match
* Add --properties
* Move the additional options that do not appear in either v1 image set or
v2 image create after --property as they are really pre-defined properties
* Add tests for v2 image set to match v1 and then some
* Put the SetImage class in v2/image.py in alphabetical order
Change-Id: I102b914e8ad09a014f6fdd846c5766b6c2eaadb8
There have been some changes as to the status of OSC plugins,
highlight these changes in the table.
Change-Id: Iff6520d35b34ae5d7bf88a128ebdf05f3681d643
add docs and command support to set and unset metadata of objects
that are stored in an object store (swift).
Closes-Bug: #1501945
Change-Id: If838a4b3343b6ddb97cd4bd1cb63f0ba1c1a00a1
In the following help message, last parenthesis is missing.
$ openstack --os-volume-api-version 2 help volume delete
usage: openstack volume delete [-h] [--force] <volume> [<volume> ...]
Delete volume(s)
positional arguments:
<volume> Volume(s) to delete (name or ID)
optional arguments:
-h, --help show this help message and exit
--force Attempt forced removal of volume(s), regardless of state
(defaults to False
Change-Id: I45c4030abf076cba14450019c379d333eb6530d6
use a common function to determine account ID instead of different
ways - depending on the response and command
Change-Id: I95adc5dc7d5a82a2cffc570d1ded24d1fc754a11
add the command `openstack account show` that lists details
about the object store account that the user authenticated
against.
Partial-Bug: #1501943
Change-Id: I1246dafee812b63a41d43be4e3598224364a2c11
this patch adds support for creating/updating and removing
properties (nee: metadata) for object store accounts.
Partial-Bug: #1501943
Change-Id: I3ed70a5d8bd8920fedb79adc60cdc602261d5eef
Add a couple of tests for utils.find_resource() for the odd resources
and managers without resource_class.
Change-Id: I2ed9b491d1361b5259b3a5f80b4fac787a7087c1
add a last-ditch effort to find the resource in question by
listing all the resources and doing a simply match for name and
id. if no match is found then raise an error, if the list call
is unsuccessful, raise the same error. we have failed this city.
Closes-Bug: #1501362
Change-Id: I0d3d7002e9ac47b17b1ef1a5534406c85b1fc753
A few things here: 1) we need to check if the client class even
has a 'resource_class', in the case of glanceclient, it does not.
2) If everything fails we should print a better error message,
rather than a "find" failed, since some clients don't support find.
Change-Id: I6277322639e75b1635f9f3d159753efadbce1031
The arguments to install the development branch is incorrect, since
the -e option needs a directory to look for setup.py in.
Change-Id: Icfe402e7b79a50ddc885c7eadb6c323c27e36ef3
Currently `image set` uses the new api, where other parts of osc the old
api is used. This deprecates the v2 api in favour of the v1 to maintain
the same commands across osc. However the functionality now remains
there as people could now be using this functionality.
This also adds the --unprotected argument, as in the previous version if
--protected was not supplied it would just make the argument
--unprotected without the users explicit consent.
The patch also fixes the documentation for image set as it was outdated.
Change-Id: I990d20332c80165102badef7ac94ddbeb7824950
Closes-Bug: 1498092
This currently breaks listing images with --long. Tags are an
array and shouldn't be formatted as a dictionary.
Change-Id: I6d1d85351b58ae4824498774673ebdc8eaa7e420
Closes-Bug: #1498150
Currently, these properties are each top level keys, they should
all be under a single 'properties' field. Secondly, the tags are
kept as an array, but can be shown as a comma separated string.
Change-Id: Ic769c657a86e768fee38acc40434c377de70a7bc
We have it for v1, but v2 is the future. There are two differences,
things in v2 do not go into a properties dict, and the actual image
data needs to get uploaded as a second step.
Closes-Bug: 1405562
Co-Authored-By: Niall Bunting <niall.bunting@hp.com>
Co-Authored-By: Sean Perry <sean.perry@hp.com>
Change-Id: If7b81c4a6746c8a1eb0302c96e045fb0f457d67b
the docs and code had inconsistencies with how it
references other arguments, lets just remove the
backticks from around them.
Change-Id: I43d17b07364e45387c6b9d86c2aca26eeea8ed93
Currently after calling the cinderclient to create an image from a volume,
it also then tries to create another image. This fails as the keyword
volume is unexpected. This add checks so the image is not created in
this case. Allowing --volume to not throw an error when it has worked.
Change-Id: I67e650eb0b8c331d86515e3e326c39a5d6dad5e1
Closes-Bug: 1497221
devstack now defaults to image api v2, but osc does not support
v2 image create. set the functional tests to use v1 for now
to unwedge the gate.
Closes-Bug: #1496337
Change-Id: Ia02ed761446b8de52c932a424b9c423691ebcceb
novaclien v2.26.0 includes `discover_extensions` method, which returns
list of all nova extensions based of version. Such method allows us to
reduce imports of novaclient's modules and construct novaclient instance
simpler.
Change-Id: Idbe3ed275fb4a7e3918b11669dcfad47b8de4fb9
`novaclient.client.Client` is a recommended entry point for novaclient.
It supports backward-compatibility and allows Nova-folks to change
interfaces of inner versioned clients classes.
Change-Id: Iaf20714f63c307f88a451759f041ca509fbcf6f8
Add a new option to search by user when listing servers,
include support for domain scoped users, also update
docs
Co-Authored-By: Steve Martinelli <stevemar@ca.ibm.com>
Closes-Bug: #1483974
Change-Id: Ifdade6dc9ca8400fbd85f6b55793ab15ed17b97d
Added project and project-domain option to server list
command for listing servers based on project name or id
Co-Authored-By: Steve Martinelli <stevemar@ca.ibm.com>
Change-Id: Iaadfffe734ad8a72fa4b1eeb2222748c66f7fae0
Closes-Bug: #1488486
Listing users within a group is not presently domain scoped. We
do not use the domain info at all when the group option is present.
A new --group-domain option is not needed since we cannot list
users by --project and --group, they are mutually exclusive (as
per the identity API).
Closes-Bug: 1492916
Change-Id: I50f995ee4a03c2bdb21f2b5722546ab8fe786eb6
novaclient 2.27.0 introduced the API microversion discovery and client.Client
now wants an api_version argument to properly work out the correct API
version in use. OSC needs to provide this when required.
Letting the compute client plugin do the version validity checking makes more
sense than encoding it into shell.py, so I've added a new OSC plugin interface
function check_api_version() that is called from shell.py if it exists. If it
either does not exist or it returns False the previous version checking using
API_VERSIONS is still performed.
compute.client.check_api_version() conditionally imports the new
novaclient.api_versions module and uses it if successful. Otherwise
check_api_version() returns False and the previous code path is resumed.
One side-effect of this is that it is now valid to use --os-compute-api-version
with any valid microversion supported by the installed python-novaclient.
Closes-Bug: #1492467
Change-Id: I4535b38a5639a03a9597bf83f6394f9bb45c2b9e
The Compute API requires 'from_port' and 'to_port' to be -1 for
ICMP security group rules. It happily accepts them empty or None
but the resulting rules do not work. So we force the values for
ICMP rules.
Closes-bug: #1477629
Change-Id: Iba57211014caca16be7c9a28d15d4db2a6c51b8d
Instead of duplicating the same log statement throughout
the code, the same logic can be provided by a shared decorator
that abstracts away the logging capability and unifies it behind
a common function instead.
Change-Id: Icc63bced7347c8bbf0299a4c5821425a10892a79
If there is an error finding an image or a flavor during
image show, ignore it and just print the id of the flavor
or image. This code is also used during server create and
server rebuild, but only to display the results.
Change-Id: I5362158ab8ffc3e5a0800904d6ea15420c3a8627
Closes-bug: #1489901
Configuration of logging gets triggered twice. The first time it
uses the CLI options when the application is started and second
it uses the configuration file after that is read. The state of
the logging needs to be saved from the first to the second time,
so I created a class.
Implements: blueprint logging-migration
Change-Id: I7b8d1a3b6fd128e98cafd7c16009c7b694a52146
Cinder is trying to deprecate/remove support for v1, so we should,
as a client library default to v2 and keep support for v1.
Related-Bug: 1467589
Change-Id: I732448a57fc3fd06a8d82ec0f0d2ace671036ca2
Functional tests rely on some sort of configuration and
rather than configure something right now, how about it
pulls something from the middle of the available list.
Change-Id: I8147e40e5ee7393d8a8dcf1b0beb48856f28af7e
keystone added a new property to projects, called is_domain.
our functional tests fail because we are not expecting that in
the project's 'show' command.
Change-Id: Idf05118155847e3a6002818c44b99825801ea9f4
Related-Bug: #1487600
Cliff sets the default debug value to False and this makes it
impossible to override debug with OCC. If we set the default to
None, we can override debug in clouds.yaml. Also, OSC changes
the meaning of --debug, so modify the help text.
Change-Id: I5e6680b2286cd7f55afe4b083fae5f8a4a9567a2
Closes-Bug: #1483378
Running limits show without --absolute or --rate returns nothing and
the user is left to figure out what they need to provide to get the
correct data back. This patch prints an error and help output by making
at least one of the arguments required.
Change-Id: I576cf8ec0e05524ee67d46c48b56da8d44258667
There is no way to change the configuration variables we want
printed in log messages, so format them in the constructor.
This will save us from overridding the format method and
a couple cpu cycles every log message. This change also moves
the _LOG* variables into the formatter since they aren't really
globally needed.
Change-Id: I706e9db7da3daec20332f9d1533fe665f2739dea
Implements: blueprint logging-migration
Extract log_level from configuration file if the level was not
overridden by the command line option. The default command line
option is 1 and there is no command line option to set the
verbose_level to 1, so if it is 1, it has not be set.
Change-Id: I1be04367c72f83c1181f92ca4c2c83165b66995c
Implements: blueprint logging-migration
Move the conversion of command line options to log level out
of shell.py.
Change-Id: I86cb45a85cd63927aa1c87c1eed27542981df659
Implements: blueprint logging-migration
Add some tests for volume quota set and get rid of TODO about
using the value instead of the key to get the attribute.
Change-Id: I57aa57951aeea65965966e63af922cda532d759d
When adding a role to a group and project OSC is mistakenly using the
group_domain to find the project which will fail if the group_domain !=
project_domain.
Change-Id: I4c1bec9b3b183c755be121b91f40e026d707192b
Closes-Bug: #1483520
seems like test_server_up is causing intermittent issues in our
CI, skipping for now, so we can proceed with merging code.
Change-Id: Id41a78e703d7b416dfdc9a7bc95b19a8999192e3
Related-Bug: 1483422
Commit Id38a1497019c7fe2d4ad8567f1c0c8d229951751 removed all of
the hacking rules from the ignore list. However, the hacking doc
still refers to those previouly ignored rules.
Change-Id: I370be096d83cd5121d24bb96d8d5dc08a1c3c216
Several projects have begun to make OSC plugins; we should list
the status of the major projects, so users can know if they
can expect support for that feature/project.
Change-Id: Ib3c11c8f2b90663e37578a2714d438944eb1c6f6
This will allow users to record logs of all their commands into
a predefined log file, in clouds.yaml. The log should have a
format similar to that of oslo.log.
Change-Id: I1b334bf429d575fc25809c9706fc0b11116be3f1
Implements: blueprint every-time-record-log-in-file
OSC was missing developer docs, these are critically helpful for
new developers. Add sections related to running tests (tox,
functional and with the debugger), and generating docs locally.
implements bp: developer-documentation
Change-Id: I428d89c3e5fc335864bc4f7843506043ec332fe5
Adds inherited information when listing role
assignments. In addition, it makes possible
to list only inherited ones by adding
--inherited option.
Change-Id: Idf889603d584716da95e2c7b4880142fbd8291c4
Closes-Bug: 1370546
"volume type set" and "volume type unset" is not in the v2.
Co-Authored-By: Lin Hua Cheng <os.lcheng@gmail.com>
implements bp: volume-v2
Change-Id: Ia804787d76d2029726c030b43c61eac3b411f66a
"volume list" is not in the v2.
Co-Authored-By: Lin Hua Cheng <os.lcheng@gmail.com>
implements bp: volume-v2
Change-Id: I9f4585202f5f9ec5f4c091278fc6c4036efb1290
The paremeter to Keystone Client was passed as
'inherited', when it should be
'os_inherit_extension_inherited'.
Closes-Bug: #1482254
Change-Id: I1cb46add532223ef0b9620763b1047cc80e19ec0
When using the command: openstack quota set, the compute quota below
can't be set successfully,the value of compute quota stay unchanged,
'fixed-ips', 'floating-ips', 'injected-files', 'key-pairs'.
What's more,I add a TODO comment in the code for two reason.
1. volume quota set works fine for the moment.
2. To indicate that this issue about volume needs
discuss and report another bug, if it's confirmed.
This bug is only about compute quota.
Change-Id: Ic1028d561f5a0030cf65ac18fc117bf01e945478
Partial-Bug: #1420104
Create a `configuration show` command that displays the current
configuration of the CLI. Different configurations can be
displayed using options such as --os-cloud. Passwords and
tokens are redacted by default unless the --unmask
option is specified.
Closes-Bug: #1476729
Change-Id: I0792365d0c5fa526cd09c0ed88c6bb1e2cb813a7
External plugins need to know which plugin interface is being
used by the host OSC. Releases <1.6 (?) will not have a
version defined.
Plugins can add the following to their make_client() to discover
the interface version:
_plugin_interface_version = getattr(
instance,
"PLUGIN_INTERFACE_VERSION",
None,
)
Change-Id: Ifc0f40fec5bc27f6425139984936b7f6e032a580
The error message refers to --os-auth-plugin which is not a valid
option. This patch changes that to --os-auth-type.
Change-Id: I02ec0b7855131180bb8c674051930ebb51cb7303
Closes-Bug: #1477083
In the previous implementation, we were always including the domain
argument, which caused a lookup by name for trustee/trustor and
project. By excluding it when not necessary, we do a search by
ID in find_resources.
Change-Id: Id756aeab522b5dccb2dc6b31d137a28514b0fdf6
Closes-Bug: 1473298
Commit 50f05448982b5fafd9d9a7783b639dd145090a0d to os-client-config
removed the default values in the _defaults dict. This makes any
call to cloud_config.set_default() before initializing the dict
fail.
The fix changes the way the auth_type default is overriden, by
doing it when cloud_config.OpenStackConfig() is executed.
Change-Id: If37d3ba303f01d4c77fd7c15a3cde9634534b64a
Closes-bug: #1473921
Currently, the properties of a volume type are unformatted.
Use the formatter to keep things consistent with the way
properties are represented in OSC.
Change-Id: I81c6bd3fdbc30568c269e501c740473b2a1ffb4e
For Volume V1, we have a type.py file which should be renamed to
volume_type.py (as it's named for V2).
Change-Id: If860bbafe4a801d8b4fa06938eef20658c4fcc2c
Closes-Bug: 1475958
The three commands below
openstack volume unset
openstack snapshot unset
openstack volume type unset
Should have --property as a required argument,
not optional. The reason is the command will not work
without --property.
Closes-Bug: #1475872
Change-Id: Ib9e29392472db38982cc2817af2dd5055f5a01ca
When using openstack flavor unset, the --property is needed,
so the --property should be a required parameter.
Close-Bug: #1474237
Change-Id: Id6913e1b263eddeb5dd44c3edb957206b68f816c
Setting default versions in parsed args makes it so OCC
cannot tell if the argument was parsed, an environment
variable was set or it is just defaulted. In order to
set api versions from OCC, it will have to be defaulted
after processing OCC.
Closes-Bug: #1453229
Change-Id: I4d065919397b783f3bdd4022c986c0234a7a16e6
From lifeless: pbr reflects the package dependencies from
requirements.txt into the sdist that tox builds.
Change-Id: I63548ec321b9c59cc935ba8179b1da5b9c90e09b
add functional tests for endpoint, region and service.
Change-Id: I504878811dc8f9fcb2295cbf7419885959d9c1f6
Implements: blueprint identity-functional-tests
Also make sure that we are using the singular qos_spec when
we should and the plural qos_specs otherwise.
Change-Id: If4bbeb6fc245d7d80dc3d7dccfe9f949e802653c
user v3 create/set only support --project option,
we need --project-domain to prevent collisions between
project names exist.
Change-Id: I2d62e5b9bb6df4c5c5a9542514faf2e4365bb18b
Closes-Bug: #1475357
We're trying to change cliff for the better, by improving the UX
of the help command. But cliff tests against the tip of OSC.
Temporarily skip the tests that are failing and then update them
once the fix for cliff has been merged.
The patch in question: https://review.openstack.org/#/c/201258/
Change-Id: Ie1e7ddd66477ddf4a3bafedad12934e900ace48f
There is no assert_called() method in mock, replace it with
assert_called_with() method. The old method used to work with
mock 1.0.1 because it was a noop in magicmock.
Needs https://review.openstack.org/#/c/200583 to pass the requirements check.
https://review.openstack.org/#/c/193935/ changed the OS_* vars
we source by forcing v2password as the auth method.
change our identity v3 test setup by setting v3password
Co-Authored-By: Steve Martinelli <stevemar@ca.ibm.com>
Closes-Bug: 1473454
Depends-on: I0cfab6d13e5d9e744cb302c86a2c21269923e75d
Change-Id: Id22765c7e044797e03d19ad1b103fadec2726aa2
split test_identity.py into test_user.py, test_project, etc.
To make functional tests run repeatedly without raising
duplicated error, clean up resources before exiting each test case.
Change-Id: I8f31ccbd70f1cccdab8b3720aac179e2e399486d
Implements: blueprint identity-functional-tests
There seem to be three formats for the server address field
and the old code only supported the old format. This code adds
a parser for all three formats.
Change-Id: I7f12d2c69ff70556907ea6f31a0e0bba91b68b49
Closes-Bug: #1469843
With this change 'openstack catalog list' returns the correspoding URL for
publicURL, internalURL and adminURL in _format_endpoints .
Change-Id: I5d946c9d70a2d3c22a7cc77067fec8e2e9aa4940
Closes-Bug: 1472629
The --dhcp option lists agents, not networks. This does not make
a lot of sense. Another command should be created to list agents.
BackwardsIncompatibleImpact
Closes-Bug: #1472613
Change-Id: I5ecfe3fc046a07eb64a4dabd41dbd99de7c2215f
To make test cases more clearly, split test_identity.py
into test_user.py, test_role, etc. Add more test cases for
user, role, etc. Furthermore, to make functional tests run
repeatedly without raising duplicated error, clean up
resources before exiting each test case.
Change-Id: I1541943ad0b8d4d8d1e72822c159fda243b3d1d7
Implements: blueprint identity-functional-tests
User should be able to specify the endpoint type through
a CLI optional argument/ENV variable setting. We will name this new
optional argument: --os-endpoint-type (Env: OS_ENDPOINT_TYPE) and
based on the value given, the service API will use that specific
endpoint type. Possible values: public, admin, internal.
DocImpact
Closes-Bug: #1454392
Change-Id: Ife3d4e46b44c0ddcd712b1130e27e362545a9a29
This adds support for showing which host aggregates
a hypervisor is member of, if any.
It supports hypervisors with or without nova cells.
Closes-bug: #1470875
Change-Id: I0cfe4f15fa8f8ba0be3295b79cd438998893114c
Openstack image create command updates existing image (with same name) by
default. That might be confusing since glance allows create multiple
images with same names and may lead to unwanted image update by image
create command.
Image update code was moved from image create action to image set action.
BackwardsIncompatibleImpact
Change-Id: I1686c6544c366262efab9e33c066d5f8a667f707
Closes-Bug: #1461817
setup.cfg and the implementation had some functions that were
not in alphabetical order. Since the rest of OSC is alphabetized,
let's stick to that.
Change-Id: Ief5d4694c7b6bc20a0898437b96305885104d45c
we have used domain scope arguments --project-domain, --user-domain
and --group-domain in identity commands, for example, role add v3,
to prevent resources conflict from same resource name existence.
To keep with the style of identity commands, it's better to rename
--domain to --project-domain.
Closes-Bug: #1468988
Change-Id: Ic6ccb895cf9be4a3d5f0001525e3b80cd340da8b
There is a typo for --domain argument in network create:
Owner’s domain (name or ID)",
the last character " should be removed.
Closes-Bug: #1468282
Change-Id: I81d55841e633a52f3913cf5f4a3e6626ebc1f919
Once inherited project role grant calls are
implemented on python-keystoneclient,
python-openstackclient also should support such
calls.
This patch add such support as well as its
related tests.
Co-Authored-By: Raildo Mascena <raildo@lsd.ufcg.edu.br>
Change-Id: Id72670be8640e5c6e2490a6ef849e9ec3493b1a9
Implements: blueprint hierarchical-multitenancy
we have <security-group-list> in server create option,
while <security-group-name> in the explanation, they
both should be <security-group-name>.
Closes-Bug: #1466742
Change-Id: I26a25f57e57d8f9e19ec9c9ccb3c2b8d5396b78d
ec2creds.py was referencing a function on self, but wasn't there.
Correctly reference the right function.
Change-Id: I62f09c497be9dbb394341914388d60634e8b80c2
Closes-Bug: 1465561
This patch includes functional tests for image set and it includes
a change to use the OSC utils.format_dict method to format the
properties. This will give a more user friendly format to the image
commands and it gives a more consistent testable format to the
output. Instead of:
{u'a': u'b', u'c': u'd'}
The user will see:
a=b, c=d
Change-Id: Ib396316586ffc5dbab231064d5b6dc9425507934
Adds the possibility to retrieve a project and list its
parents and subtree in the hierarchy.
Co-Authored-By: Rodrigo Duarte <rodrigods@lsd.ufcg.edu.br>
Co-Authored-By: Samuel de Medeiros Queiroz <samuel@lsd.ufcg.edu.br>
Implements: bp hierarchical-multitenancy
Change-Id: I874f6faffc8a2db9d99f12cbe0a69c0a30c0d9df