187 Commits

Author SHA1 Message Date
Mark Vanderwiel
71e1adeaf0 Allow error status to be specified
For some apis, heat, the error status is "failed". This patch
changes the wait_for_status method to allow for the error
status to be passed in the same way as the success status.

Change-Id: I20db4051d3f5611a4b13fe23ea8798b82a40da81
2015-11-18 17:48:43 -06:00
Jenkins
6e1ad73723 Merge "validate non-ascii values for swift properties" 2015-11-12 22:38:58 +00:00
Steve Martinelli
cfd2bf5882 validate non-ascii values for swift properties
skip properties that are non-ascii values, but proceed
with properties that work. log these failed values back
to the user.

Change-Id: Iaca8909f4465a01c8aebfd290b1a322823702359
Closes-Bug: 1503898
2015-11-12 11:07:57 -06:00
Jenkins
6a8c0f3ff6 Merge "Add project-name/-id validation for the OSC "openstack quota set"" 2015-11-12 05:01:41 +00:00
xiexs
ea63553925 Fix the bug of "openstack console log show"
The behaviors are inconsistent while different
negative line numbers specified.

Change-Id: I2573f3e789f5603c896758971830ffc0b94c5e2b
Closes-Bug: #1512263
2015-11-09 04:22:09 -05:00
xiexs
7d8bb331a0 Add project-name/-id validation for the OSC "openstack quota set"
The quota info would be set into DB, even though the project actually
does not exist.
This patch tried to add a validation to forbid this undesirable behavior.

Change-Id: Ia2d8c96527820e25b074e6486d3f39c5ad7eae60
Closes-Bug: #1512638
2015-11-04 10:22:46 -05:00
Jenkins
cb28cd9ac0 Merge "Rename context.py to logs.py" 2015-10-30 11:02:08 +00:00
Terry Howe
05800c4722 Rename context.py to logs.py
At one point this file contained the context for logging, but
the reason for its existence is now for logging.

Implements: blueprint logging-migration

Change-Id: I4ba42bbef97b09d31236ac8c01b6fb23827b8bee
2015-10-30 17:38:42 +09:00
lin-hua-cheng
f0a81c284d Mask the sensitive values in debug log
Change-Id: I0eb11a648c3be21749690f079229c8e63a678e6c
Closes-Bug: #1501598
2015-10-12 16:55:48 -07:00
Steve Martinelli
83282bc5e1 attempt to find resource by listing
add a last-ditch effort to find the resource in question by
listing all the resources and doing a simply match for name and
id. if no match is found then raise an error, if the list call
is unsuccessful, raise the same error. we have failed this city.

Closes-Bug: #1501362

Change-Id: I0d3d7002e9ac47b17b1ef1a5534406c85b1fc753
2015-09-30 09:58:44 -05:00
Steve Martinelli
05f5e043d8 Additional exception handling for find_resource
A few things here: 1) we need to check if the client class even
has a 'resource_class', in the case of glanceclient, it does not.

2) If everything fails we should print a better error message,
rather than a "find" failed, since some clients don't support find.

Change-Id: I6277322639e75b1635f9f3d159753efadbce1031
2015-09-30 09:54:28 -05:00
Jenkins
6de1af1161 Merge "Add tests for volume quota set" 2015-09-19 03:03:05 +00:00
Jenkins
0daa096939 Merge "Use a common decorator to log 'take_action' activation" 2015-09-11 02:43:54 +00:00
Jenkins
46696f5ed5 Merge "Create log configuration class" 2015-09-09 20:15:54 +00:00
Jenkins
cd54db8741 Merge "Optimize log formatting" 2015-09-09 20:06:27 +00:00
Jenkins
535aac6c91 Merge "Extract log level from configuration file" 2015-09-09 20:06:24 +00:00
Jenkins
67387ba9cd Merge "Move options to log level out of shell.py" 2015-09-09 19:46:28 +00:00
Jenkins
1a2bb48432 Merge "Move set warnings filters to logging module" 2015-09-08 22:06:02 +00:00
Jenkins
24ca952eb6 Merge "Set up every time record log in file" 2015-09-08 20:22:24 +00:00
Joshua Harlow
e3c46ece4a Use a common decorator to log 'take_action' activation
Instead of duplicating the same log statement throughout
the code, the same logic can be provided by a shared decorator
that abstracts away the logging capability and unifies it behind
a common function instead.

Change-Id: Icc63bced7347c8bbf0299a4c5821425a10892a79
2015-09-01 16:49:54 -07:00
TerryHowe
85a03945f0 Create log configuration class
Configuration of logging gets triggered twice.  The first time it
uses the CLI options when the application is started and second
it uses the configuration file after that is read.  The state of
the logging needs to be saved from the first to the second time,
so I created a class.

Implements: blueprint logging-migration

Change-Id: I7b8d1a3b6fd128e98cafd7c16009c7b694a52146
2015-08-26 10:23:53 +00:00
Major Hayden
0f0d66f3f1 Running 'limits show' returns nothing
Running limits show without --absolute or --rate returns nothing and
the user is left to figure out what they need to provide to get the
correct data back.  This patch prints an error and help output by making
at least one of the arguments required.

Change-Id: I576cf8ec0e05524ee67d46c48b56da8d44258667
2015-08-14 10:31:53 -04:00
TerryHowe
6c46355734 Optimize log formatting
There is no way to change the configuration variables we want
printed in log messages, so format them in the constructor.
This will save us from overridding the format method and
a couple cpu cycles every log message.  This change also moves
the _LOG* variables into the formatter since they aren't really
globally needed.

Change-Id: I706e9db7da3daec20332f9d1533fe665f2739dea
Implements: blueprint logging-migration
2015-08-13 22:16:10 +00:00
TerryHowe
d828429d6a Extract log level from configuration file
Extract log_level from configuration file if the level was not
overridden by the command line option.  The default command line
option is 1 and there is no command line option to set the
verbose_level to 1, so if it is 1, it has not be set.

Change-Id: I1be04367c72f83c1181f92ca4c2c83165b66995c
Implements: blueprint logging-migration
2015-08-13 22:16:03 +00:00
TerryHowe
ca9965c328 Move options to log level out of shell.py
Move the conversion of command line options to log level out
of shell.py.

Change-Id: I86cb45a85cd63927aa1c87c1eed27542981df659
Implements: blueprint logging-migration
2015-08-13 16:11:25 -06:00
TerryHowe
9c3c336391 Move set warnings filters to logging module
This is the first step in moving logging out of shell.py

Change-Id: I3dcb4e17bb4687988ddf9b793ad1a308ef89b242
Implements: blueprint logging-migration
2015-08-13 16:05:01 -06:00
TerryHowe
b1ce0356f2 Add tests for volume quota set
Add some tests for volume quota set and get rid of TODO about
using the value instead of the key to get the attribute.

Change-Id: I57aa57951aeea65965966e63af922cda532d759d
2015-08-11 14:40:53 -06:00
Daisuke Fujita
e23dd6de58 Set up every time record log in file
This will allow users to record logs of all their commands into
a predefined log file, in clouds.yaml. The log should have a
format similar to that of oslo.log.

Change-Id: I1b334bf429d575fc25809c9706fc0b11116be3f1
Implements: blueprint every-time-record-log-in-file
2015-08-08 10:02:46 -06:00
Jenkins
d87403a7bf Merge "Fix quota set failed problem" 2015-08-06 07:34:08 +00:00
TerryHowe
fd61711585 Fix quota show when there is no project id
If no id is in the response, quota show fails.

Change-Id: I9905431b006404c9ba8453eba016cec9ebe19402
Closes-Bug: #1481803
2015-08-05 09:55:29 -06:00
Jenkins
9c492b742d Merge "Add plugin interface version" 2015-07-29 15:46:34 +00:00
jiaxi
77214c56e7 Fix quota set failed problem
When using the command: openstack quota set, the compute quota below
can't be set successfully,the value of compute quota stay unchanged,
'fixed-ips', 'floating-ips', 'injected-files', 'key-pairs'.

What's more,I add a TODO comment in the code for two reason.
1. volume quota set works fine for the moment.
2. To indicate that this issue about volume needs
   discuss and report another bug, if it's confirmed.

This bug is only about compute quota.

Change-Id: Ic1028d561f5a0030cf65ac18fc117bf01e945478
Partial-Bug: #1420104
2015-07-28 23:21:28 -04:00
TerryHowe
43942871a9 Add configuration show command
Create a `configuration show` command that displays the current
configuration of the CLI.  Different configurations can be
displayed using options such as --os-cloud.  Passwords and
tokens are redacted by default unless the --unmask
option is specified.

Closes-Bug: #1476729

Change-Id: I0792365d0c5fa526cd09c0ed88c6bb1e2cb813a7
2015-07-23 13:00:59 -06:00
Dean Troyer
15fe0fae17 Add plugin interface version
External plugins need to know which plugin interface is being
used by the host OSC.  Releases <1.6 (?) will not have a
version defined.

Plugins can add the following to their make_client() to discover
the interface version:

    _plugin_interface_version = getattr(
        instance,
        "PLUGIN_INTERFACE_VERSION",
        None,
    )

Change-Id: Ifc0f40fec5bc27f6425139984936b7f6e032a580
2015-07-22 11:06:41 -05:00
TerryHowe
643d1d90fe More minor docs fixes
Change-Id: Ia74b8e14bacb562d9bac29221f511acbab5296df
2015-07-19 07:03:57 -06:00
Jenkins
bbe71eb9a3 Merge "Rename endpoint type to interface" 2015-07-17 13:55:47 +00:00
TerryHowe
36391a81a3 Rename endpoint type to interface
Change-Id: I4e21d09bc747e8210f4f79a1d6c4c7ccf2f25d1c
Closes-Bug: #1454392
2015-07-15 10:11:59 -06:00
TerryHowe
ef0cf00b33 Fix interactive password prompt
Change-Id: Ie0e7a9cd6016b5c646a111a76e8372e10602a25c
Closes-Bug: #1473862
2015-07-13 07:44:24 -06:00
Jenkins
ee64c2fa6b Merge "Add --os-endpoint-type cli optional argument" 2015-07-03 02:48:47 +00:00
Roxana Gherle
5521e4c504 Add --os-endpoint-type cli optional argument
User should be able to specify the endpoint type through
a CLI optional argument/ENV variable setting. We will name this new
optional argument: --os-endpoint-type (Env: OS_ENDPOINT_TYPE) and
based on the value given, the service API will use that specific
endpoint type. Possible values: public, admin, internal.

DocImpact
Closes-Bug: #1454392
Change-Id: Ife3d4e46b44c0ddcd712b1130e27e362545a9a29
2015-07-02 10:10:46 -07:00
Jenkins
ec31a2a12e Merge "Enables retrieval of project's parents and subtree" 2015-06-25 21:51:04 +00:00
Steve Martinelli
aac0d588bd Skip trying to set project_domain_id if not using password
This is already fine for user_domain_id, and needs to be replicated
for project_domain_id. Also added more logging.

Change-Id: I3fa8f29edb3fc430d453bd0fc835312c0c8401f4
2015-06-11 02:43:57 -04:00
Rodrigo Duarte Sousa
4fab606349 Enables retrieval of project's parents and subtree
Adds the possibility to retrieve a project and list its
parents and subtree in the hierarchy.

Co-Authored-By: Rodrigo Duarte <rodrigods@lsd.ufcg.edu.br>
Co-Authored-By: Samuel de Medeiros Queiroz <samuel@lsd.ufcg.edu.br>

Implements: bp hierarchical-multitenancy

Change-Id: I874f6faffc8a2db9d99f12cbe0a69c0a30c0d9df
2015-06-09 13:10:22 -03:00
Jenkins
9bf24f3ae1 Merge "Set tenant options on parsed namespace" 2015-06-02 02:15:52 +00:00
Jamie Lennox
3ae247fdce Set tenant options on parsed namespace
Because of the way OSC registers all plugins together we end up
with os-tenant-X parameters being saved to the project-X attribute after
parsing. If you are using the v2 plugins directly then they and os-client-config
expect the tenant_X values and will assuming no scoping information if
they are not present.

Validating options for scope will also fail in this situation, not just
because the resultant auth dictionary is missing the tenant-X
attributes, but because OSC validates that either project or domain
scope information is present.

Fix this by just always setting the v2 parameters if the v3 parameters
are present. This will have no effect on the generic or v3 case but fix
the v2 case.

Expand validation to include the tenant options so it knows that v2
plugins are scoped.

Change-Id: I8cab3e423663f801cbf2d83106c671bddc58d7e6
Closes-Bug: #1460369
2015-05-31 15:03:42 +10:00
Matt Riedemann
224d375ef4 Add --wait to server delete
This allows the server delete command to wait for the server to be
deleted (obviously).

The wait method is the same model that Tempest uses, i.e. wait for a 404
on server GET (successful deletion), fail if the server went to ERROR
status, or fail if a timeout is reached.  The default timeout of 300
seconds is also what Tempest uses.

Closes-Bug: #1460112

Change-Id: I0e66c400903e82832944d1cad61e7eb30177c3e8
2015-05-29 14:32:51 -07:00
Roxana Gherle
c126a2ae56 Send the correct user-agent to Keystone
When we execute an Openstack CLI command, keystone should log in
Keystone access log that the user-agent that made the request was
'python-openstackclient' instead of the default 'python-keystoneclient'.
Therefore, when we create the authentication session we
need to send the explicit user-agent.

Closes-Bug: #1453995

Change-Id: I75087fd4bb1ff1e6f2a911bc70bf8008268276bb
2015-05-11 17:00:39 -07:00
Jamie Lennox
179ed18c30 Don't create empty quota set requests
The way that getattr is called with the None default you will always
create a compute_kwargs dictionary with key: None values. This means
that we will always send these empty requests to the servers.

Change so that only actually changed values end up in the quota set
requests and get sent.

Change-Id: I33bc3f4e1a8013ec672e995648d27513064baf26
Closes-Bug: #1451640
2015-05-05 12:45:42 +10:00
Jenkins
fd8b284164 Merge "Add --os-cloud support" 2015-04-19 06:17:31 +00:00
Jenkins
61fb68e8b3 Merge "Add support for showing limits of a specific project" 2015-04-19 06:15:08 +00:00