2993 Commits

Author SHA1 Message Date
Jenkins
a42664ccaa Merge "Implement "network rbac set" command" 2016-08-03 12:54:03 +00:00
Huanxuan Ao
ab32f37e67 Remove an outdated directory in tox.ini
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
2016-08-03 13:44:05 +08:00
Huanxuan Ao
fac3214581 Implement "network rbac set" command
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
2016-08-03 10:49:57 +08:00
Jenkins
eaee74bba2 Merge "Add a document for required options" 2016-08-02 18:42:13 +00:00
Huanxuan Ao
c1a040f66d Add a document for required options
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
2016-08-02 19:54:30 +08:00
Huanxuan Ao
5125b6f73b Refactor identity v3 unit tests with fake class
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
2016-08-02 12:36:15 +08:00
Jenkins
2a1c2b2275 Merge "Updated from global requirements" 2016-08-01 23:06:36 +00:00
Jenkins
3c4c0ce23f Merge "OS_DEFAULT_DOMAIN must be an ID" 2016-08-01 19:40:41 +00:00
OpenStack Proposal Bot
1d2c9a79df Updated from global requirements
Change-Id: Iccc0deccc66dd82b101ca4fdd099cc55325ea516
2016-08-01 18:47:35 +00:00
Jenkins
f40f3f9f2f Merge "arguments are not locale decoded into Unicode" 2016-08-01 17:37:00 +00:00
Ghe Rivero
27a55fd796 OS_DEFAULT_DOMAIN must be an ID
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
2016-08-01 15:31:00 +00:00
OpenStack Proposal Bot
19bea1ca91 Updated from global requirements
Change-Id: Ie90dc3937e1991202a9af7aa38c5e510947cb219
2016-07-30 01:24:17 +00:00
Jenkins
fe650e204b Merge "Implement network rbac create and delete commands" 2016-07-29 15:47:07 +00:00
Jenkins
b7b140df06 Merge "Pass security group id to novaclient while adding security group to server" 2016-07-29 13:21:20 +00:00
Jenkins
3b6bb4f495 Merge "Update the description of project in releasenotes." 2016-07-29 13:13:20 +00:00
qtang
62c187df7a Update the description of project in releasenotes.
Change-Id: I1fe0e52d2e049d34666a6d94bac1d85b91a78b19
2016-07-29 11:15:31 +08:00
OpenStack Proposal Bot
62874a5307 Updated from global requirements
Change-Id: If225aca4a8b366b6657f46bc9478a88f9e9b1964
2016-07-29 02:34:59 +00:00
Rajasi Kulkarni
e26eecc12f Pass security group id to novaclient while adding security
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
2016-07-28 21:39:02 +05:30
Jenkins
3d53ae828b Merge "Allow setting quotas for server groups and server group members" 2016-07-28 13:12:07 +00:00
Huanxuan Ao
13bc3793e0 Implement network rbac create and delete commands
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
2016-07-28 10:23:29 +08:00
Jenkins
5f6257206e Merge "Add support for deleting volumes with associated snapshots" 2016-07-27 19:50:21 +00:00
Elena Ezhova
b50c2b6a88 Allow setting quotas for server groups and server group members
Adds support of --server-groups and --server-group-members options
to the "quota set" command.

Change-Id: I178d1e267d010be7e908adefcf3b15abdafd9da4
Closes-Bug: #1602223
2016-07-27 13:04:36 +03:00
Jenkins
97ccb65f83 Merge "Fix error for find_service() in identity" 2016-07-27 03:37:52 +00:00
wuyuting
954c28dfa2 Add support for deleting volumes with associated snapshots
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>
2016-07-27 11:30:52 +08:00
John Dennis
756d2fac67 arguments are not locale decoded into Unicode
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>
2016-07-26 18:09:20 -04:00
Jenkins
7a667d700f Merge "Use identity fake classes instead of old unit tests data" 2016-07-26 15:13:20 +00:00
Jenkins
0181709222 Merge "Use assertEqual() instead of assertDictEqual()" 2016-07-26 12:51:06 +00:00
Jenkins
6da7a127af Merge "Add options to "volume type list" command" 2016-07-26 10:53:40 +00:00
Huanxuan Ao
1b2ea91420 Use identity fake classes instead of old unit tests data
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
2016-07-26 18:38:12 +08:00
Jenkins
566b8566c0 Merge "Standardize import format" 2016-07-26 07:22:27 +00:00
Jenkins
08ba2aa978 Merge "Add "--marker" and "--limit" options to "snapshot list"" 2016-07-26 07:22:21 +00:00
Jenkins
b838e9970d Merge "Unit test of credential in identityv3" 2016-07-26 07:09:45 +00:00
Dean Troyer
0bc2d83f68 Remove temporary code in ClientManager
This effectively reverts https://review.openstack.org/#/c/341618/.

Change-Id: Ic8e53e17b4a5352b0c00e39bcb5d248b057540a9
2016-07-25 14:55:33 -05:00
Tang Chen
bcaa5c2e0e Use assertEqual() instead of assertDictEqual()
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
2016-07-25 15:09:49 +08:00
Huanxuan Ao
e31408d2a4 Add options to "volume type list" command
Add "--public" and "--private" options to
"volume type command" in volumev2 (v2 only)
to list optional volume types

Change-Id: I8605990d62116c10d89ce192c14e550657dabee5
Closes-Bug: #1597198
2016-07-23 11:26:49 +08:00
Huanxuan Ao
61b9d9fe2d Add "--marker" and "--limit" options to "snapshot list"
Add "--marker" and "--limit" options to
"snapshot list" command in volume v2 (v2 only).

Change-Id: Ib60840b9b83dfe5e599e4037e8ec308844a9448b
Closes-Bug: #1605475
2016-07-23 10:41:28 +08:00
Huanxuan Ao
bca4571ab6 Unit test of credential in identityv3
Add missing unit tests and refactor the older tests
with fake classeds for credential in identity v3

Change-Id: I94d4f80a86806c6115178421bd481b7622065956
2016-07-23 10:02:23 +08:00
Jenkins
a8880e8b34 Merge "Add assignment list to v2 identity and deprecate alternate listing" 2016-07-23 00:04:39 +00:00
Jenkins
02e95dc8ff Merge "Rework clientmanager" 2016-07-22 22:54:05 +00:00
Henry Nash
713d92df4e Add assignment list to v2 identity and deprecate alternate listing
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
2016-07-22 21:46:29 +00:00
Jenkins
859517f657 Merge "Clarification of option name rules" 2016-07-22 21:07:58 +00:00
Dean Troyer
f38c51c1b9 Rework clientmanager
* 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
2016-07-22 20:49:18 +00:00
Jenkins
719c5d79ce Merge ""server list": "Image Name", "Image ID" columns" 2016-07-22 20:38:20 +00:00
Jenkins
d2cb96a2ef Merge "Remove execute permission on a few files" 2016-07-22 20:37:54 +00:00
Dean Troyer
75a1fcf70a Clarification of option name rules
We never specifcally said anywhere that short names are global only and why.

Change-Id: Ia2824cb7ebe7c2e1d116c0a9bc7760de24904c61
2016-07-22 12:58:28 -05:00
SongmingYan
1b878b4efd Remove execute permission on a few files
Some files have execute permission unnecessarily. Change them from
755 to 644.

Change-Id: I471ebd1c3d123ad4a7376f7f5996f53f8c2d9b0b
2016-07-22 17:38:34 +00:00
Jenkins
b59ade75e5 Merge "Support to get server rdp/serial/mks type console url" 2016-07-22 12:22:34 +00:00
sunyajing
c45b1d7b23 Fix error for find_service() in identity
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
2016-07-22 19:40:50 +08:00
shizhihui
f996138a0d Standardize import format
According to the rule in
http://docs.openstack.org/developer/hacking/#imports
I modify some irregular import format.

Change-Id: Ibf29ccaf3ddec4a956334cc3368ebee7a66e282c
2016-07-22 19:24:02 +08:00
Jenkins
831301e5d6 Merge "Add Support for showing flavor access list" 2016-07-22 09:11:42 +00:00