summaryrefslogtreecommitdiff
path: root/openstackclient/shell.py
Commit message (Collapse)AuthorAgeFilesLines
...
* Merge "Remove keyring support from openstackclient"Jenkins2014-07-041-43/+0
|\
| * Remove keyring support from openstackclientAlex Gaynor2014-07-041-43/+0
| | | | | | | | | | | | | | | | * The encryption it purports to offer is completely insecure. * It also appears to be broken. Closes-Bug: #1319381 Change-Id: Id15ecfbbfd15f142b14c125bfd85afd5032699ac
* | trust authenticationMatthieu Huin2014-07-031-2/+26
|/ | | | | | | | | This patch enables authenticating by using a trust. The trust ID must be set with the parameter --os-trust-id or the env variable OS_TRUST_ID. Trusts are available for the identity v3 API. Co-Authored-By: Florent Flament <florent.flament@cloudwatt.com> Change-Id: Iacc389b203bbadda53ca31a7f5a9b8b6e1a1f522
* Fix PEP8 H405 errorsDean Troyer2014-06-271-3/+2
| | | | Change-Id: Id9ea03e7d88148f84bffe1b18b5b4315e6123012
* Clean up logging levelsDean Troyer2014-06-131-9/+44
| | | | | | | | | | | | | | | | | | | | | The following logging levels are set according to the combination of --verbose, --quiet and --debug options: verbose_level logging level options 0 --quiet ERROR 1 (none) WARNING 2 --verbose INFO 3+ --verbose --verbose DEBUG or --debug Logging levels for the requests and iso8601 modules are forced to ERROR. This is the first step in bp use-logging-not-print The difference between '--debug' and '--verbose --verbose' is --debug triggers cliff's exception handling and traceback display. Change-Id: Ide2233b3316471d279260fb1e7255a6ca2072023
* replace string format arguments with function parametersChristian Berendt2014-05-201-2/+3
| | | | | | | | There are files containing string format arguments inside logging messages. Using logging function parameters should be preferred. Change-Id: Ic749ac9eb55564ed631d57055a5a4dfc3aebd169
* Make bash comple command best effort to authorizeTerry Howe2014-03-061-1/+12
| | | | | | | | | If authorization fails for the complete command, generate the bash complete anyway. * Added best_effort flag to command * Attempts to authorize for bash complete, but if it fails, it tries anyway Change-Id: I796258f8044f42abc6a51164d920a26f73397962 Partial-Bug: #1283550
* Fix some help stringsAndreas Jaeger2014-02-211-5/+5
| | | | | | | | | | This fixes some errors and inconsistencies I found reviewing the help strings: * Capitalize help strings * Add missing space between words (in multi-line strings) * Improve wording Change-Id: I2fb31ab4191c330146e31c1a9651115a6657769a
* Add support for specifying custom domainsPaul Belanger2014-01-071-6/+57
| | | | | | | | | | | | 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>
* Merge "Bring RESTApi closer to ithe imminent keystoneclient.Session"Jenkins2013-12-061-1/+4
|\
| * Bring RESTApi closer to ithe imminent keystoneclient.SessionDean Troyer2013-12-031-1/+4
| | | | | | | | | | | | | | Prepare to use the (soon to be) common Session from keystoneclient * Rework RESTApi to eventually be a subclass of keystoneclient.Session Change-Id: I68e610f8b19a3f6267a93f7bf3de54a228be68aa
* | Add return Closes-Bug: 1246356Terry Howe2013-11-271-1/+1
|/ | | | Change-Id: I70999a91062b9c61e5f420b1ed33a45086b62fd4
* Expand support for command extensionsDean Troyer2013-11-211-54/+29
| | | | | | | | | | | | 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
* change execute to runTerry Howe2013-11-161-5/+19
| | | | Change-Id: I23a210c8771c206df14d2713a2e72ccd92402c43
* Add options to support TLS certificate verificationDean Troyer2013-10-071-2/+27
| | | | | | | | | | 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
* Delay authentication to handle commands that do not require itDean Troyer2013-09-121-11/+17
| | | | | | | | | | * Move the auth to OpenStackShell.prepare_to_run_command() and skip it if the command's auth_required == False * Default auth_required = True for all commands * Do authentication up-front for interactive use as OpenStackShell.prepare_to_run_command() is not called Change-Id: Id330092f242af624f430d469882d15f4a22f4e37
* Object API commands using our REST API layerDean Troyer2013-08-281-2/+13
| | | | | | | | | | | | | * 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
* Create a new base REST API interfaceDean Troyer2013-08-231-0/+5
| | | | | | | | | | | * 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 version reporting to use pbr0.2.0Dean Troyer2013-08-021-2/+2
| | | | | | Gets rid of the hard-coded version string in shell.py Change-Id: I8b818c9a8f1224669079141e7a7caf614e588d20
* Merge "Prep for 0.2 release (0.2.rc1)"0.2.rc1Jenkins2013-08-011-1/+1
|\
| * Prep for 0.2 release (0.2.rc1)Dean Troyer2013-08-011-1/+1
| | | | | | | | | | | | | | | | * rename HACKING to HACKING.rst and refer to the common OpenStack HACKING file * add the barest of pointers to the wiki, etc. to the source docs * add a bare-bones man page Change-Id: I80e5b972af645f14ef17ae87f182ab09cb08dabe
* | Remove tenant round 1 - global optionsDean Troyer2013-07-311-9/+25
|/ | | | | | | | | 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
* Merge "Complete Image v1"Jenkins2013-07-201-2/+2
|\
| * Complete Image v1Dean Troyer2013-07-181-2/+2
| | | | | | | | | | | | | | | | | | * Add v1 versions of image delete, list, save, set, show * Change default Image API to v1 Rebased for https://review.openstack.org/#/c/36772/ Change-Id: Ie2bfe660aac8a0fcf651c67fd1ea4842e76ce377
* | Add show limits commandDean Troyer2013-07-121-0/+4
|/ | | | | | | | | | | | | * 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
* Finish up v3 role commandsSteve Martinelli2013-07-031-1/+14
| | | | | | | | | | | | * 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
* Migrate to flake8.Monty Taylor2013-05-161-2/+2
| | | | | | Fixes bug 1172444 Change-Id: Ieca721663aea2fd31753df4abfb5b01a7145b26a
* Fix flake8 errors in anticipation of flake8 patch.Monty Taylor2013-05-141-7/+7
| | | | Change-Id: Ifdc4322b699f2bd91a6900e55695acd3d736568e
* Merge "Add a simple extension hook"Jenkins2013-03-271-1/+13
|\
| * Add a simple extension hookDean Troyer2013-03-151-1/+13
| | | | | | | | | | | | | | | | | | | | | | This enables stand-alone modules to hook in to the command-line handler in a dedicated API namespace. These extensions have access to the existing clients via the client manager but no way to add another client to the manager is provided.. blueprint client-extensions Change-Id: I4b2eaa780d8ba881db23d950d09b8702e9e314ef
* | Turn down requests logging levelDean Troyer2013-03-091-0/+7
|/ | | | | | | Looks like the default is INFO, we don't need to see that unless --debug is specified. Change-Id: Ieee5d4dc5102f11536ecc6330461f86101811f9e
* Correct the version mapping to image service.Josh Kearney2013-02-191-1/+1
| | | | | | This was preventing image support from being activated. Change-Id: I1b7ab9174b90c55423b244ca63402d33b4411a49
* Add Cinder API V1 SupportSteve Martinelli2013-02-081-0/+11
| | | | | | | | | | | | | 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
* Multiple API version supportDean Troyer2013-02-061-9/+63
| | | | | | | | | | | | | | | | * 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
* Upgraded to PEP8 1.3.3 to stay aligned with Nova, etc.Josh Kearney2013-01-311-35/+37
| | | | | | | | Made all the necessary changes to pass new PEP8 standards. Also cleaned up docstrings to conform to the HACKING stanards. Change-Id: Ib8df3030da7a7885655689ab5da0717748c9edbe
* Standardize on a copyright header and ensure all files have them.Josh Kearney2013-01-241-12/+10
| | | | Change-Id: I64812bca01ca655c9cf9239a0daea84907082a29
* Keyring support for openstackclient.Bhuvan Arumugam2012-08-151-0/+44
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* If no password in env or command line, try prompting.Ken Thomas2012-06-291-3/+15
| | | | | | | | | | | Implements blueprint password-prompt This logic was recently added to keystone as a short term fix. The long term fix is to have that same logic here. Basically, if no password is present in the env or command line and there's a tty available for us to prompt, then attempt to use getpass. Change-Id: Ia0eec800b96c8f6ca1c2540e21e0e03c3880c713
* Fix pep8 issues.Clark Boylan2012-06-131-3/+3
| | | | | | | | Fix several pep8 issues and pin the pep8 test to pep8 version 1.1. This should prevent future changes from being unmergable by the pep8 gate after a pep8 upgrade. Change-Id: I4678a9179579fb5c7afe795fb43a8a89a99ad717
* Merge "fix authentication setup in interactive mode and improve error ↵Jenkins2012-05-151-4/+9
|\ | | | | | | handling so tracebacks are not printed twice"
| * fix authentication setup in interactive mode and improve error handling so ↵Doug Hellmann2012-05-141-4/+9
| | | | | | | | | | | | tracebacks are not printed twice Change-Id: I59fb07369edad3b2f2abddba3c0d0f6bbce1eab1
* | Revise command boolean flagsDean Troyer2012-05-111-1/+1
|/ | | | | | | * use --enable|--disable form for boolean 'enabled' value * clean up logging strings Change-Id: Ib4016bbef1763c27ec5a9edf36b926dc0d0b265c
* Move get_client_class() to common.utilsDean Troyer2012-05-111-6/+0
| | | | | | * add constants for API_NAME Change-Id: I8ccf72f032227e0a452d96303181549b1b11a5d1
* Add API versioning supportDean Troyer2012-05-101-3/+1
| | | | | | | | | * Specific versions supported are managed in XXXXXX.client.py with a mapping from version to client class. This is based on the scheme that is included in novaclient; none of the other client libs have that capability. Change-Id: I930b197f1189e7f52c3b0096e73e0773cf925542
* look at the command the user is going to run before trying to authenticate themDoug Hellmann2012-05-101-17/+29
| | | | Change-Id: I4edc6a0f1e16be4cd80fe01f62869094b50ef120
* Add copyright notices and update datesDean Troyer2012-05-101-1/+1
| | | | Change-Id: I54a7d99328143205ab97ea930aeeeb69fe92c76c
* More identity client configDean Troyer2012-05-101-0/+36
| | | | | | | | | | | | | | * move auth option checking back to OpenStackShell() to keep the shell-level interaction at that level; add checking for token flow options * make identity.client.make_client() configure keystoneclient.v2_0.Client() properly for both password flow and token flow auth * eliminated ClientManager.init_token(), set _service_catalog in __init__() * compute client handles token flow Change-Id: I42481b5424489387798c4ec6d3e2a723ab1e6067
* Fix "help" command and implement "list server" and "show server"Doug Hellmann2012-05-041-60/+17
| | | | | | | | | | | blueprint client-manager blueprint nova-client bug 992841 Move the authentication logic into a new ClientManager class so that only commands that need to authenticate will trigger that code. Implement "list server" and "show server" commands as examples of using the ClientManager, Lister, and ShowOne classes. Change-Id: I9845b70b33bae4b193dbe41871bf0ca8e286a727
* Shell init & loggingDean Troyer2012-05-011-17/+43
| | | | | | | * Split global app init to initialize_app() * Set up logging & eliminate debug prints Change-Id: I7c1e1f6fa336a4ff828007e240c890282cbd3015
* Add openstack-common and test infrastructure.James E. Blair2012-04-281-5/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fix pep8 errors (project is pep8 clean now). Update setup.py to use openstack-common style dependencies. Remove the unused novaclient dependency. Change the keystoneclient dependency to a git URL. Add test-requires, and move some pip-requires dependencies into it. Remove the test_utils unit test which wasn't testing anything that is actually present in the project. Add the test_authors unit test. Use tox for running tests locally. See: http://wiki.openstack.org/ProjectTestingInterface Tox can manage virtualenvs, and is currently doing so for running tests in Jenkins. It's just as, or more, useful for running tests locally, so this starts the migration from the run_tests system to tox. The goal is to reduce duplicate testing infrastructure, and get what's running locally on developer workstations as close to what is run by Jenkins as possible. Run_tests.sh will now call tox to facilitate the transition for developers used to typing "run_tests.sh". Developers will need tox installed on their workstations. It can be installed from PyPI with "pip install tox". run_tests.sh outputs those instructions if tox is not present. New facilities are available using tox directly, including: tox -e py26 # run tests under python 2.6 tox -e py27 # run tests under python 2.7 tox -e pep8 # run pep8 tests tox # run all of the above tox -e venv foo # run the command "foo" inside a virtualenv The OpenStack nose plugin is used when running tox from the command line, so the enhanced, colorized output is visible to developers running the test suite locally. However, when Jenkins runs tox, xunit output will be used instead, which is natively understood by jenkins and much more readable in that context. Change-Id: Ib627be3b37b5a09d3795006d412ddcc35f8c6c1e