Commit graph

124 commits

Author SHA1 Message Date
Jenkins
6525c065a4 Merge "Add sort support to image list" 2015-02-07 18:07:54 +00:00
Jenkins
04d036875f Merge "Add network support to quota show" 2015-02-07 00:17:14 +00:00
Igor_Bolotin
4771feb7c4 Adding default user_domain_id parameter only when using
password auth

Change-Id: I31943739cc1b535cbd402c5e9245b2f7a19cfa32
Closes-Bug: #1418810
2015-02-05 21:30:44 -08:00
zhiyuan_cai
42cff38834 Add sort support to image list
Add sort support to image list by sorting items in the client side.
The parameter syntax follows this spec[1].

[1] https://review.openstack.org/#/c/145544/

Change-Id: I42b487d18f00f937db1938daa46487cea2a896ab
Closes-Bug: #1410251
2015-02-06 10:57:10 +08:00
zhiyuan_cai
54ab9fb230 Add network support to quota show
Currently quota show only lists quotas of Nova and Cinder, we
should make it also support Neutron resources. Also, Nova and
Neutron may have conflicts in the quotas of the following
resources: floating ip, security group and security group rule.
When Neutron is enabled, we should display the quotas of the
above resouces in Neutron, not Nova.

Change-Id: I6e508d2077b6cda41ca93d81a82f39aee0ebfb4c
Closes-Bug: #1411160
2015-01-28 16:26:11 +08:00
Jenkins
b9e50a716d Merge "Add helpful messages when authN'ing with password" 2015-01-16 21:14:08 +00:00
Steve Martinelli
1d75edb167 Default user domain id and project domain id
If either of OS_USER_DOMAIN_ID or OS_USER_DOMAIN_NAME are present
then we don't tinker with anything. Otherwise, we should set
the USER_DOMAIN_ID to 'OS_DEFAULT_DOMAIN', as this provides a better UX,
since the end user doesn't have to specify these arguments.

Same logic applies for OS_PROJECT_DOMAIN_ID.

Closes-Bug: #1385338

Change-Id: I8a4034c16a1dd50d269f809abab8e960d5de20f7
2015-01-16 02:52:15 -05:00
Steve Martinelli
fff4a1cd23 Add helpful messages when authN'ing with password
Setting up auth options can be complicated, and we currently don't
do any checking before we build all our auth parameters to send off
to keystoneclient. We should do some basic checking to guide new
users.

Change-Id: I9c88f1c9637b3870c151952ecc797aaf65be271a
Closes-Bug: #1400531
2015-01-16 02:41:24 -05:00
zhiyuan_cai
7ea5f89043 Catch exception when getting quota
Quota show command will list both the quotas of nova and cinder.
But if cinder service is not enabled, EndpointNotFound exception
will be raised and thus the command is broken. Catch this exception
so quotas of nova can be listed.

Change-Id: If2d2820675aa6a12e407d608fed846b21c953b2d
Closes-Bug: #1390507
2014-12-30 09:53:26 +08:00
Jenkins
1989198eac Merge "Enhance the theming for modules page" 2014-12-01 23:06:53 +00:00
Dean Troyer
254910d3ce Begin copying wiki command list here
* Sort by command objects
* Drop the comparison to the project CLIs
* Minor updates to command help to match docs

Initially include the cross-API commands to establish the structure and format.

Change-Id: I77a7b3c89e088b66aa62941e29ce0b65b532285b
2014-11-19 14:47:53 -06:00
Steve Martinelli
6dc128636e Enhance the theming for modules page
Also fixes a few small docstring syntax errors

Change-Id: I85eb968e32c1191cf5d60d02deff2ab7f3291074
2014-11-18 22:07:57 -05:00
Dean Troyer
8ba74451ee Adjust some logging levels
* Promote select messages to INFO so lower logging levels can be useful
* Help more modules not say so much all the time

Change-Id: I814023c1489595998ae74efe40ef439b3522ee74
2014-10-24 13:16:41 -05:00
Dean Troyer
f079b5b9c4 Change --os-auth-plugin to --os-auth-type
User's don't know what a plugin is.

* Internally, os_auth_type and/or auth_type represents what the
  user supplied.
* auth_plugin_name is the name of the selected plugin
* auth_plugin is the actual plugin object

Plugin selection process:
* if --os-auth-type is supplied:
  * if it matches against an available plugin, done
  * (if it can map to an availble plugin type, done; TODO in a followup)
* if --os-auth-type is not supplied:
  * if --os-url and --os-token are supplied, select 'token_endpoint'
  * if --os-username supplied, select identity_api_version + 'password'
  * if --os-token supplied, select identity_api_version + 'token'

Change-Id: Ice4535214e311ebf924087cf77f6d84d76f5f3ee
2014-10-23 15:37:44 -05:00
Dean Troyer
e063246b97 Clean up shell authentication
* Remove the auth option checks as the auth plugins will validate
  their own options
* Move the initialization of client_manager to the end of
  initialize_app() so it is always called.  Note that no attempts
  to actually authenticate occur until the first use of one of the
  client attributes in client_manager.  This leaves
  initialize_clientmanager() (formerly uathenticate_user()) empty
  so remove it.
* Remove interact() as the client_manager has already been created
  And there is nothing left.
* prepare_to_run_command() is reduced to trigger an authentication
  attempt for the best_effort auth commands, currently the only
  one is 'complete'.
* Add prompt_for_password() to ask the user to enter a password
  when necessary.  Passed to ClientManager in a new kward pw_func.

Bug: 1355838
Change-Id: I9fdec9144c4c84f65aed1cf91ce41fe1895089b2
2014-10-21 23:16:16 -05: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
b40fa49809 Merge "Move plugin stuff to clientmanager" 2014-10-17 20:13:55 +00:00
Jenkins
fa9cdef874 Merge "Add 'command list' command" 2014-10-14 22:23:20 +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
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
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
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
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
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
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
wanghong
7029cf37e2 utils.find_resource does not catch right exception
Currently, utils.find_resource catch NotFound exception defined in
openstackclient. However, different client libraries raise different
exceptions defined in thire own library.

Change-Id: Idc40428e30e59f71dbdbfa0555c0066fddc441c2
Closes-Bug: #1371924
2014-09-24 11:04:41 +08:00
Oleksii Chuprykov
ffe976ce3e Use oslo.utils
Module `importutils` from common code was graduated to oslo.utils,
so it would be great if we reuse this library.
Remove unused strutils.py and gettextutils.py

Change-Id: Iaae19fc5018d83103e5f15ff76d6da686bfdf5f8
2014-09-22 13:07:31 +03:00
Jenkins
df69d3264f Merge "Add network extension list" 2014-09-18 09:41:51 +00:00
Dean Troyer
ae957b176e Use Keystone client session.Session
This replaces the restapi requests wrapper with the one from Keystone client so
we can take advantage of the auth plugins.

As a first step only the v2 and v3 token and password plugins are supported.
This maintainis no changes to the command options or environment variables.

The next steps will include reworking the other API client interfaces to
fully utilize the single auth session.

Blueprint: ksc-session-auth
Change-Id: I47ec63291e4c3cf36c8061299a4764f60b36ab89
2014-09-08 00:06:52 -05:00
Jenkins
3317e0abf6 Merge "Add action 'user password set' for identiy v3" 2014-09-07 15:12:18 +00:00
Jenkins
dcf658cc4e Merge "Unordered dicts and lists causes variable results" 2014-09-07 12:59:35 +00:00
Jenkins
9b3c84e9e1 Merge "Leverage openstack.common.importutils for import_class" 2014-09-07 10:51:43 +00:00
Mouad Benchchaoui
0069adef5c Add action 'user password set' for identiy v3
This new action will allow a user to change their own password by
either providing the new password as an argument (--password) or by
being prompted to enter the new password.
In both cases user will be prompted to enter their current password
as required by the v3 API.

Closes-Bug: #1337245
Change-Id: I5e1e0fd2b46a4502318da57f7cce2b236fb2d93d
2014-09-07 02:37:54 -04:00
Terry Howe
514ecc6e96 Unordered dicts and lists causes variable results
The unordered dict and lists causes variable results.  The user
may see different results and tests can fail.  Might as well make
this more consistent.

Change-Id: I7045b40b44cbf3ee0f2ca79c6ea0d279b6d8cfe3
2014-09-06 23:55:31 -04:00
Aaron Rosen
c43854048c Leverage openstack.common.importutils for import_class
This patch drops the import_utils method from common.utils and leverages
it from openstack.common.importutils instead.

Change-Id: If7e7383aa742afe44f750f916c0d90d747793150
Closes-bug: 1365273
2014-09-06 23:36:59 -04:00
Dean Troyer
4bbd03210f Change app.restapi to app.client_manager.session
This is step 1 toward using Keystone client's session.Session as the
primary session/requests interface in OSC.

* Move the session create into ClientManager and rename 'restapi' attribute to 'session'
* Set up ClientManager and session loggers
* Fix container and object command references to restapi/api

Change-Id: I013d81520b336c7a6422cd22c05d1d65655e64f8
2014-08-25 13:38:03 -05:00
Steve Martinelli
be83ae763f Add container create and delete support
Add basic container create and delete support to OSC.

Change-Id: Ia104db9d7e580d33097ea33a5690998f817995d1
implements: bp swift-client
2014-08-03 03:52:04 -04:00
Terry Howe
25e0d2ab27 Add network extension list
Network extension list support

Change-Id: I013f68ef2c3329c8db59e2441dd8d4ffafd4470e
Closes-Bug: #1337685
2014-07-26 15:57:48 -06:00
Dean Troyer
f3dbab4a6c Fix PEP8 E302 errors
Also add remaining skipped checks to HACKING

Change-Id: I0c4333ce29597e0a8a233af17c15bed2b4d0711f
2014-07-22 17:51:15 -06:00
Jenkins
bc6495c6a1 Merge "Add basic timing support" 2014-07-11 18:22:06 +00:00
Jenkins
e8f058775e Merge "Add support to list volume extensions" 2014-07-09 06:59:39 +00:00
Jenkins
ab5416a385 Merge "Add support to list compute extensions" 2014-07-08 15:41:37 +00:00
Dean Troyer
4844a25779 Add basic timing support
Add support for --timing options.  Use cliff via a pseudo-command
'Timing' to support multiple outputformats.

If an output format other than the default 'table' is selected
use CSV since the timing data is in list form.

Will pick up timing data for any client object that has a method
similar to novaclient's get_timings().

TODO:
* Stop instantiating all of the clientmanager client objects just
  to check for timing data.  Descriptor magic required?

Change-Id: I7f1076b7a250fba6a8b24b2ae9353a7f51b792b2
2014-07-08 02:04:00 -05:00
Jenkins
6575581f79 Merge "Python 3: remove a useless code to safe_encode()" 2014-07-08 01:01:01 +00:00
Jenkins
b3736fd9df Merge "Remove keyring support from openstackclient" 2014-07-04 19:45:30 +00:00
Steve Martinelli
9b2e264ada Add support to list volume extensions
Since cinderclient has support to list extensions, we should add
some of the logic to our list extensions command.

Change-Id: I7dc7ca325ea9b82194bba6d875e7b8dc1884d77e
Closes-Bug: #1337687
2014-07-04 14:27:16 -04:00
Cyril Roelandt
1fedd38de6 Python 3: remove a useless code to safe_encode()
The safe_encode method returns bytes, so we cannot concatenate its output with
text strings. This call does not seem needed after all, so let's just remove
it.

Change-Id: I6c18427559147d4c732ff7daa6d6006e7e5f6365
2014-07-04 10:25:53 +02:00
Steve Martinelli
270c7fe967 Add support to list compute extensions
Since novaclient has support to list extensions, we should add
some of the logic to our list extensions command.

Closes-Bug: #1337684
Change-Id: I3074225780142df265a34add03e60c0f7c64c711
2014-07-03 23:53:57 -04:00