Thinking ahead, a few other upcoming keystone features could
benefit from reading contents from a file. Thus, moving the
function from policy to utils.
Change-Id: I713ab0e5a00c949ad996daf83b775a7c19044888
Most of the CLIs use a NoUniqueMatch, so produce a useful
error message if that happens. Added some tests for
find_resource as well.
Change-Id: I85ba61d5f6d1be5bd336a1cc4b02501492905f33
Closes-Bug: #1293846
* Add get_password method to the utilities
* Add --password-prompt option
* Call the get_password method if a prompt is requested
* Various tests
Change-Id: I1786ad531e2a2fbcc21b8bc86aac0ccd7985995a
Closes-Bug: 1100116
Add the ability to pass user_domain_id / user_domain_name, domain_id
/ domain_name, and project_domain_id / project_domain_name to keystone.
These parameters are the first step needed to getting multi-domain
support working via the CLI.
Closes-Bug: #1198171
Change-Id: I81a8534913978ff1cce01ec02741ae477e8c5fa4
Signed-off-by: Paul Belanger <paul.belanger@polybeacon.com>
Signed-off-by: Bo Tang <btang@cs.utsa.edu>
When using the -v option, displays curl equivalent commands and http
messages exchanged with the nova and cinder API servers. Displays the
same messages as those displayed with the --debug option of
python-novaclient and python-cinderclient.
Implements: blueprint curl-commands-in-debugging-messages for nova and
cinder related calls
Change-Id: Ibc8ef79d874334585b81d652b9c7df9e874fffa9
cliff.commandmanager.CommandManager gained an option, update
openstackclient.common.commandmanager.ComamndManager to match.
Also add CommandManager.get_command_groups() to return a list of the
currently loaded command groups. I expect this to be useful in
upcoming client diagnostic commands for plugins/extensions.
If these turn out to be generally useful we'll propose them to
upstream cliff.
Change-Id: Ic15a7ca0ef975ca679e753be861be7c628b8e10c
Prepare to use the (soon to be) common Session from keystoneclient
* Rework RESTApi to eventually be a subclass of keystoneclient.Session
Change-Id: I68e610f8b19a3f6267a93f7bf3de54a228be68aa
Allows client libraries to have complete access to the rest of the
OSC ClientManager. In addition, extension libraries can define
global options (for API version options/env vars) and define
versioned API entry points similar to the in-repo commands.
The changes to ClientManager exposed some issues in the existing
object api tests that needed to be cleaned up.
Change-Id: Ic9662edf34c5dd130a2f1a69d2454adefc1f8a95
Keyring 1.1 moved the concrete backend implementations into their
own modules. As we depend on 1.6.1+, we can make use of the new
name and remove the old one without deprecation-fallback.
Change-Id: I0682b13fc9f488b3f3d9fd057f712909fcd48bc4
Add --os-cacert and --verify|--insecure options using the same
sematics as the other project CLIs. --verify is included for
completeness.
Bug: 1236608
Change-Id: I8a116d790db5aa4cb17a2207efedce7cb229eba3
* Add current auth info (auth_ref) to ClientManager
* Fix identity.v2_0.role.ListUserRole to get default user/project
from ClientManager.auth_ref
* Fix identity.v2_0.role.AddRole call to roles.add_user_role()
Change-Id: Ie8bf41c491d97b0292a2b86bdc9b7580989a7f97
* Add object-store API to ClientManager
* Add object-store client
* Add Object API library in openstackclient.object.v1.lib
* Add Object API {container,object} list commands
* Add library tests
* Add command tests
This should complete the Object v1 container and object list commands
Change-Id: Ib1770d45efa8871959826b85faafa1e0bcef0a03
* restapi module provides basic REST API support
* uses dicts rather than Resource classes
* JSON serialization/deserialization
* log requests in 'curl' format
* basic API boilerplate for create/delete/list/set/show verbs
* ignore H302 due to urllib import
Change-Id: I3cb91e44e631ee19e9f5dea19b6bac5d599d19ce
Change the global auth options to use 'project', leave the original
tenant options in place but silent for compatability with the existing
project CLI auth options. This is the only compatibility for tenant
usage in this changeover.
Change-Id: I3cce6e552f18822cc9f445ec5f301b0f5d9003f8
* Add security group: create, delete, list, set, show
* Add server: add secgroup, remove secgroup
* Add security group rule: create, delete, list
* Add Oslo's strutils and gettextutils
* Adds parseractions.RangeAction() to handle option arguments of either a single number
or a range of numbers: '--port 25' or '--port 1024:65535'
Blueprint: nova-client
Change-Id: Iad2de1b273ba29197709fc4c6a1036b4ae99725f
* add server resize
* update --wait handling for server create, reboot, rebuild
* move _wait_for_status to utils
Blueprint: nova-client
Rebased after https://review.openstack.org/38162 was committed
Change-Id: I7a43b996feecadc7628fcfe20cd5b17333762739
* Reformat default dict output to key='value' using utils.format_dict()
* Changes utils.get_item_properties() to pass the specific field to
the formatter function rather than the entire resource object, this
allows the formatter to handle multiple attributes.
* Updates server, volume, volume type commands
Change-Id: I90eebf6b84ae200532f09cd925f371598ea54a64
* Add quota set and quota show commands; these work on both
the compute and volume APIs
* Add the --class variation on the above commands
Note: this replaces the existing volume-only quota commands and eliminates quota list
Blueprint: cinder-client
Bug: 1172064
Change-Id: I766d40e410e48f05e36e17e567a4f01a9411b40e
* This is a combination of the compute and volume API limits as they are
very similar. As such, the command lives in a new command group
'openstack.common' that is unversioned.
* Implements 'limits show [--absolute|--rate]
Updated for https://review.openstack.org/#/c/36772/
Bug: 1172057
Change-Id: I2bd181cd0d098f7143360ae67944c2f221379af5
As discussed in https://review.openstack.org/#/c/36352/ for each
command, we were setting api = identity or volume... etc,
this was for an old way of calling commands that are is no longer
used.
Also removed openstackclient/common/command.py
Change-Id: I2705f35d343f2ae729dc22d6aed0b852b2f8ca19
* Add remove role
* Add --role to group list
* Add --role to user list
* Fix groups in AddRole()
* Remove the tweaks to utils.find_resource for domains; will address
that across domains, projects, users and groups in another patch.
I want to nail down the structure of these commands and get that into place
Change-Id: I8673dd8221ef88978dada5a2833c187026bdb31a
Basic cleanups:
* change metadata to property
* add new KeyValueAction to parse the property options
* multiple properties can be set using multiple --property args
* consistent formatting
* do lookups for volume args
Change-Id: Ib6c43f01ad46b395aee8c61e886f42e2a5f5573e
Adds:
* fixed-ip commands: add, remove
* floating-ip commands: add, create, delete, list, remove
* floating-ip-poo command: list
Also uses NAME_ATTR in the Resource class if present to determine
the attribute to be used for searching in utils.find_resource()
Change-Id: Ifd8fa60f880fc4050dea182ac24553cc2c4bff15
rebase again, and change util to look for display_name too
minor changes and rebase
add create/delete/list/set/show support for snapshot
Change-Id: I80261653fa919555a44ddda07b0a827ccd16e5e0
made the changes suggested by dtroyer
added client
modified setup.py entry points
updated pip required
added support for create/delete/list volume types
openstack list type
openstack create type typeName
openstack delete type typeNameOrId
Change-Id: I43655de151582e37f14dc9550151a66db7a009ab
* Use multiple entry point groups to represent each API+version
combination supported
* Add some tests
Try it out:
* Right now only '* user' commands have multiple overlapping versions;
you can see the selection between v2.0 and v3 by looking at the
command help output for 'tenant' vs 'project':
os --os-identity-api-version=2.0 help set user
os --os-identity-api-version=3 help set user
Change-Id: I7114fd246843df0243d354a7cce697810bb7de62
Made all the necessary changes to pass new PEP8 standards.
Also cleaned up docstrings to conform to the HACKING stanards.
Change-Id: Ib8df3030da7a7885655689ab5da0717748c9edbe
Bug: 1030440
If password is defined in keyring, use it; otherwise, prompt for the
password. Keying is configured using command line switch,
--os-use-keyring or env(OS_USE_KEYRING).
* openstackclient/common/openstackkeyring.py
The abstract class for keyring, specifically for openstack. The
class is used to store encrypted password in keyring, without
prompting for keyring password. The encrypted password is
stored in ~/.openstack-keyring.cfg file.
* openstack-common.py
Update openstackkeyring library from openstack.common.
* openstackclient/shell.py
OpenStackClient.build_option_parser(): New boolean argument,
--os-use-keyring, default to env(OS_USE_KEYRING).
OpenStackClient.authenticate_user(): Get password from keyring,
if it is defined; otherwise, prompt for the password. If user
enter a password and keyring is enabled, store it in keyring.
OpenStackClient.init_keyring_backend(): New method to define
openstack backend for keyring.
OpenStackClient.get_password_from_keyring(): New method to
get password from keyring.
OpenStackClient.set_password_in_keyring(): New method go set
password in keyring.
* toos/pip-requires
Define keyring and pycrypto as one of dependent.
Change-Id: I36d3a63054658c0ef0553d68b38fefbc236930ef