645 Commits

Author SHA1 Message Date
Steve Martinelli
e7bba3211a Include support for using oslo debugger in tests
Simply run `tox -e debug <test_name>` to get an interactive
debugging prompt

Change-Id: I09e5b844a33c2f0fd4230f01fbc6c0aa8d752545
2014-10-22 14:29:36 -04:00
Jenkins
5b7d3ba9dc Merge "Fix token issue after auth changeup" 2014-10-21 19:56:59 +00:00
Dean Troyer
cd368bb816 Fix token issue after auth changeup
IssueToken.take_action() was missed in updating the structure of
the ClientManager.

Also, TOKEN_WITH_TENANT_ID in v3 is just wrong...

Closes-Bug: #1383396

Change-Id: If2dd82a26af1d743ee9df73e0c1aebce497bf22e
2014-10-20 18:21:51 +00:00
wanghong
f600c0eafb only generate one clientmanager instance in interactive mode
Currently, we repeated to generate clientmanager instance when run
command in interactive mode. This should be avoided.

Change-Id: I0536a690bc173be38af08a2e4443115532041efd
Closes-Bug: #1383083
2014-10-20 15:29:53 +08:00
Dean Troyer
2166d7d3af Remove ClientManager._service_catalog
Anything that needs a service catalog can get it directly from
auth_ref.service_catalog, no need to carry the extra attribute.

ClientManager.get_endpoint_for_service_type() reamins the proper
method to get an endpoint for clients that still need one directly.

Change-Id: I809091c9c71d08f29606d7fd8b500898ff2cb8ae
2014-10-18 00:01:52 -05:00
Dean Troyer
0de67016c7 Remove now-unnecessary client creation hacks
Clients that can use ksc Session don't need the old junk to
fake auth anymore:
* compute
* volume

Clients that still need to be fed credentials can pick directly
from the auth object in clientmanager.  The _token attribute is
removed, the token can be retrieved from the auth object:

  openstackclient/tests/common/test_clientmanager.py

This change will break any plugin that relies on getting a token
from instance._token. They should be updated to use the above, or
preferable, to use keystoneclient.session.Session to create its
HTTP interface object.

Change-Id: I877a29de97a42f85f12a14c274fc003e6fba5135
2014-10-18 00:01:45 -05:00
Jenkins
68130fa921 Merge "Add plugin to support token-endpoint auth" 2014-10-17 23:27:28 +00:00
Jenkins
efc572efc1 Merge "use jsonutils in oslo.serialization instead of keystoneclient" 2014-10-17 22:33:53 +00:00
Jenkins
b40fa49809 Merge "Move plugin stuff to clientmanager" 2014-10-17 20:13:55 +00:00
wanghong
deda023314 use jsonutils in oslo.serialization instead of keystoneclient
keystoneclient/openstack/common/jsonutils.py is removed in this patch
https://review.openstack.org/#/c/128454/
Now, we should use jsonutils in oslo.serialization package.

Change-Id: I7c8e8e6d5dffa85244368fd578616c9b19f4fd21
2014-10-17 14:13:32 +08:00
Jenkins
fa9cdef874 Merge "Add 'command list' command" 2014-10-14 22:23:20 +00:00
Jenkins
1d9194d4cb Merge "Put pbr and six first in requirements list" 2014-10-14 05:40:50 +00:00
Jenkins
87f5da02c3 Merge "Fix operation on clouds with availability-zones" 2014-10-14 04:11:24 +00:00
Dean Troyer
897418edca Move plugin stuff to clientmanager
The OSC plugins work by adding an object as an attribute to a
ClientManager instance.  The initialization and management of
thos plugins belongs in clientmanager.py.

At this point the only part not moved is the API version dict
initialization bcause the timing and connection to the
CommandManager initialization.  It gets refactored anyway when
API discovery becomes operational.

Change-Id: If9cb9a0c45a3a577082a5cdbb793769211f20ebb
2014-10-13 23:02:34 -05:00
Jenkins
79a9331f95 Merge "Remove 'links' section from several v3 Identity objects" 2014-10-13 03:26:27 +00:00
Monty Taylor
a388ce40f4 Put pbr and six first in requirements list
Each of them have scenarios where it's important that they install
first.

Change-Id: Ia9fff6e94651693f9fa74ca676771b19144bcd8b
2014-10-12 17:10:07 -05:00
Jenkins
36212c43d8 Merge "Updated from global requirements" 2014-10-12 21:52:07 +00:00
Dean Troyer
c3c6edbe8a Add plugin to support token-endpoint auth
The ksc auth plugins do not have support for the original
token-endpoint (aka token flow) auth where the user supplies
a token (possibly the Keystone admin_token) and an API endpoint.
This is used for bootstrapping Keystone but also has other uses
when a scoped user token is provided.

The api.auth:TokenEndpoint class is required to provide the
same interface methods so all of the special-case code branches
to support token-endpoint can be removed.

Some additional cleanups related to ClientManager and creating
the Compute client also were done to streamline using sessions.

Change-Id: I1a6059afa845a591eff92567ca346c09010a93af
2014-10-12 16:48:43 -05:00
Jenkins
49c74229b4 Merge "Mark identity v2 resources for translation" 2014-10-12 18:50:27 +00:00
Jenkins
4a34e7d0e6 Merge "Update compute server messages for translation" 2014-10-12 07:30:33 +00:00
Jenkins
5fcd462ead Merge "Add translation markers for user v2 actions" 2014-10-12 07:20:09 +00:00
Jenkins
c39867f980 Merge "Fix issue token for v3" 2014-10-12 07:11:20 +00:00
Steve Martinelli
a8d4b0eebb Remove 'links' section from several v3 Identity objects
The links field in the returned objects from the v3 Identity
API aren't really useful, so let's remove them.
Managed to remove most of them from the core API.
I'll likely remove the extension/contribution (oauth/federation)
related ones in another patch.

Also in this patch the code for setting services and projects
was changed. Though not incorrect, it was not needed to copy
the entire returned object, we should just need to pass in
the fields we want to update.

Change-Id: I164ca9ad8b28fa10b291e9115ef40753e387c547
2014-10-11 22:35:12 -04:00
Steve Martinelli
1b3c7ec122 Fix issue token for v3
Currently the code is broken as it references a part of
keystoneclient that does not exist.

Change-Id: I7fbc754537fbb4acffb166b5854840acfaef1fb8
Closes-Bug: #1379871
2014-10-11 20:34:09 -04:00
OpenStack Proposal Bot
7b046f9511 Updated from global requirements
Change-Id: I2ac5b9ac545c1bb6ec6279ecbe74e3301eb07a25
2014-10-11 22:37:59 +00:00
Monty Taylor
3af547a1a6 Fix operation on clouds with availability-zones
In a cloud with AZs, you can get multiple entries back from the service
catalog - one for each AZ and then one that is AZ agnostic that's tied
to the region. If the region_name is plumbed all the way through, this
works as intended.

Change-Id: I3b365ea306e8111fc80830672ae8080a5d1dc8e0
2014-10-11 14:30:04 -07:00
Nathan Kinder
f0c57e17c9 Allow --domain to be used for identity commands without lookup
Performing create, list, or set operations for users, groups, and projects
with the --domain option attempts to look up the domain for name to ID
conversion.  In the case of an environment using Keystone domains, it is
desired to allow a domain admin to perform these operations for objects in
their domain without allowing them to list or show domains. The current
behavior prevents the domain admin from performing these operations since
they will be forbidden to perform the underlying list_domains operation.

This patch makes the domain lookup error a soft failure, and falls back
to using the passed in domain argument directly as a domain ID in the
request that it sends to Keystone.

Change-Id: I5139097f8cedc53693f6f71297518917ac72e50a
Closes-Bug: #1378565
2014-10-09 13:29:21 -07:00
Steve Martinelli
b61db3eb72 Add translation markers for user v2 actions
implements bp use_i18n

Change-Id: I86508a232c9cf88695b7982dad0b9b02eaf8b3a1
2014-10-09 14:47:19 -04:00
Steve Martinelli
364071a90b Add domain parameters to user show for Identity V3
Update `user show` for Identity V3 to account for a domain argument,
in doing so, also update `find resource` to be more flexible by
allowing **kwargs.
Also update `group show` and `project show` since they follow the
same logic as a user within a group.

Change-Id: Ib828e4dbeb0bd31164396069ce8a64c873179779
Closes-Bug: #1378165
2014-10-09 14:34:48 -04:00
Steve Martinelli
bb71df9ced Mark identity v2 resources for translation
mark v2 catalog, ec2, endpoint, project, role, service and token

Change-Id: I14a5852bfee4ca9e25130d001fdadd7778ad0996
2014-10-09 14:16:45 -04:00
Matthieu Huin
0c77a9fe8b Support for keystone auth plugins
This patch allows the user to choose which authentication plugin
to use with the CLI. The arguments needed by the auth plugins are
automatically added to the argument parser. Some examples with
the currently available authentication plugins::

  OS_USERNAME=admin OS_PROJECT_NAME=admin OS_AUTH_URL=http://keystone:5000/v2.0 \
  OS_PASSWORD=admin openstack user list

  OS_USERNAME=admin OS_PROJECT_DOMAIN_NAME=default OS_USER_DOMAIN_NAME=default \
  OS_PROJECT_NAME=admin OS_AUTH_URL=http://keystone:5000/v3 OS_PASSWORD=admin \
  OS_IDENTITY_API_VERSION=3 OS_AUTH_PLUGIN=v3password openstack project list

  OS_TOKEN=1234 OS_URL=http://service_url:35357/v2.0 \
  OS_IDENTITY_API_VERSION=2.0 openstack user list

The --os-auth-plugin option can be omitted; if so the CLI will attempt to
guess which plugin to use from the other options.

Change-Id: I330c20ddb8d96b3a4287c68b57c36c4a0f869669
Co-Authored-By: Florent Flament <florent.flament-ext@cloudwatt.com>
2014-10-09 12:34:47 +02:00
Jenkins
866965f011 Merge "Update for cliff commandmanager >=1.6.1" 2014-10-09 04:43:01 +00:00
Jenkins
8554fd24fe Merge "CRUD operations for federated protocols" 2014-10-09 03:59:33 +00:00
Jenkins
d87868720e Merge "Pass in domain and project as positional args, not kwargs" 2014-10-09 03:23:03 +00:00
Dean Troyer
d32185cb34 Add 'command list' command
* Add method to CommandManager to retrieve command names by group
* Add ListCommands

To list command groups loaded by cliff

Change-Id: I37fe2471aa2fafa8aa223159452d52b1981021d6
2014-10-08 21:57:26 -05:00
Marek Denis
14c61a0ace CRUD operations for federated protocols
Openstackclient needs to have a capability to manage federated protocols
(like saml2, openid connect, abfab). This patch allows users to
administrate such operations from the commandline.

Change-Id: I59eef2acdda60c7ec795d1bfe31e8e960b4478a1
Implements: bp/add-openstackclient-federation-crud
2014-10-08 21:12:38 -04:00
Dean Troyer
5b6c24fdb0 Update for cliff commandmanager >=1.6.1
Cliff 1.6.1 added  CommandManager.load_commands() so we can adopt it
rather than rolling our own.

Also, that second group is Greek, not Latin.  Jeez...

Change-Id: I4a63c22f37bcfd0ef5d83c2dbd08b58fda0db35c
2014-10-08 18:05:43 -05:00
Jenkins
d405b1b12d Merge "Fix issues with object related commands" 2014-10-08 22:18:50 +00:00
Jenkins
35b0bbd762 Merge "Implement CRUD operations for Mapping objects" 2014-10-08 22:17:56 +00:00
Steve Martinelli
111d43ad8f Update compute server messages for translation
Mark some of the messages from the server for translation

implements bp use_i18n

Change-Id: I503efcfb4ca3dec1c427b58ee4a85de9a241dacd
2014-10-08 15:05:22 -04:00
Marek Denis
30b0a41ce7 Implement CRUD operations for Mapping objects
Change-Id: I4b8f2e77e741cf74f50aba98ab975af7321b02c6
Implements: bp/add-openstackclient-federation-crud
2014-10-08 18:35:11 +02:00
Steve Martinelli
388bbbac2c Fix issues with object related commands
1) Can't create instance of swiftclient. Since we now create
an API instance, creating a swiftclient instance won't work.
Trying to do any object related command fails.

2) Listing objects in a container fails, we depend on the
data returned in a specific way, during the API transition
this must have slipped through.

Needs regression/funcitonal tests to mame sure this doesn't
happen again.

Change-Id: I69079a0dc9f32b84e6f9307729d3dbbba549ac5e
2014-10-06 20:04:19 -04:00
Steve Martinelli
0cb204e59b Update gitignore
add .project and .pydevproject to gitignore

Change-Id: Ic258ded80612d31bd3017fce65000b619026e844
2014-10-03 19:35:13 -04:00
Jenkins
5c8b43e891 Merge "Remove duplicate env function in shell.py" 2014-10-03 22:38:14 +00:00
Jenkins
af04ff5ba3 Merge "Create a whole slew of functional tests for identity" 2014-10-03 22:38:08 +00:00
Jenkins
89a58c65ca Merge "Add functional tests to osc" 2014-10-03 22:38:01 +00:00
Jenkins
86d258f658 Merge "Add some code-blocks to the docs" 2014-10-03 22:36:19 +00:00
Steve Martinelli
89bb5b0b85 Add some code-blocks to the docs
Add some basic highlighting for the docs

Change-Id: Ifa740856f3ef636bdf0f60f3b7d082c68062fe9b
2014-10-03 00:25:56 -04:00
Steve Martinelli
1934b1b243 Place the command to generate docs on one line
Change-Id: I99d78208c940bc6646327ee967e71187c32a159f
2014-10-03 00:09:59 -04:00
Steve Martinelli
693687e4ff Remove duplicate env function in shell.py
There already exists an env() function in utils. Let's use that
one since it's common.

Change-Id: I661984394cf0c0543b2f35bf76e3929dead54d1d
2014-10-02 23:09:34 -04:00