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>
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