Commit graph

110 commits

Author SHA1 Message Date
Tang Chen
ada06f4dc3 Add MultiKeyValueAction to custom parser action
Class MultiKeyValueAction will be used to parse arguments like this:

--route destination=xxx,gateway=xxx --route destination=yyy,gateway=yyy

The result is a list like this:

[{destination:xxx, gateway:xxx}, {destination:yyy, gateway:yyy}]

This action also contain validation of the parameters.

Change-Id: Ie3aa8635c6a13fc2e429fe6922acd681dc7244cf
2016-02-27 03:53:32 +08:00
Brandon Palm
f49f0fead2 Fixed a bunch of spacing
Nothing too complicated here.  I fixed a bunch of spacing issues
that I saw in OSC.

Change-Id: I935ab48e7c5bac5f88ecdb3a05f73fb44fc9f41d
2016-02-23 10:38:58 -06:00
guang-yee
41e1bd0be6 Support unscoped token request
Make scope check optional for the "token issue" command as unscoped token is
a valid Keystone V2/V3 API.

Change-Id: Ie1cded4dbfdafd3a78c0ebdf89e3f66762509930
Closes-Bug: #1543214
2016-02-19 16:07:13 -08:00
Tang Chen
48681af86a Don't use Mock.called_once_with that does not exist
Class mock.Mock does not exist method "called_once_with()", it just
exists method "assert_called_once_with()". "called_once_with()" does
nothing because it's a mock object.

In OSC, only one place is still using "called_once_with()". Fix it.

Change-Id: Ib890e95d775c3fc43df80fa05c82d726e78cdac8
Partial Bug: 1544522
2016-02-19 13:44:54 +08:00
Tang Chen
e69b88ef52 Fix DisplayCommandBase comments for cliff Lister subclass tests
As bug #1477199 describes, the wrong comment below is all over the
unit test code of OSC.

    # DisplayCommandBase.take_action() returns two tuples

There is no such class named DisplayCommandBase in OSC. It is in cliff.

All OSC command classes inherit from the base classes in cliff,
class Command, class Lister and class ShowOne. It is like this:

Object
|--> Command
     |--> DisplayCommandBase
          |--> Lister
          |--> ShowOne

take_action() is an abstract method of class Command, and generally is
overwritten by subclasses.
* Command.take_action() returns nothing.
* Lister.take_action() returns a tuple which contains a tuple of columns
  and a generator used to generate the data.
* ShowOne.take_action() returns an iterator which contains a tuple of
  columns and a tuple of data.

So, this problem should be fixed in 3 steps:
1. Remove all DisplayCommandBase comments for tests of classes inheriting
   from class Command in cliff as it returns nothing.
2. Fix all DisplayCommandBase comments for tests of classes inheriting
   from class Lister in cliff. Lister.take_action() returns a tuple and
   a generator.
3. Fix all DisplayCommandBase comments for tests of classes inheriting
   from class ShowOne in cliff. ShowOne.take_action() returns two tuples.

This patch finishes step 2 in all but identity tests. There are too many
such comments in identity tests. So fix them all in another patch.

Change-Id: I00f38d12f55abe20fa708f6349073da658622f8d
Partial-bug: #1477199
2016-02-09 20:28:18 +08:00
Jenkins
42b607edf1 Merge "Use assert_not_called() in common tests" 2016-02-04 22:56:57 +00:00
Jenkins
48697de28f Merge "Support listing network availability zones" 2016-02-04 00:40:09 +00:00
Jenkins
e4c0d8583d Merge "Allow wait_for_delete to work for all clients" 2016-02-04 00:39:47 +00:00
Dean Troyer
38ff51baef Use assert_not_called() in common tests
In https://review.openstack.org/#/c/273653/ Bryan Jones made
a point about using mock_sleep.assert_not_called() rather than
self.assertFalse(mock_sleep.called), so let's make that change
throughout these tests.

Change-Id: I826d608836955383891b303355edcca7b62faa16
2016-02-03 15:47:07 -06:00
Richard Theis
981621e984 Add "os port show" command
Add "os port show" command.

Change-Id: Id87c81640e74c60ae8f247c722c64fdadff022a2
Partial-Bug: #1519909
Partially-Implements: blueprint neutron-client
2016-02-02 08:40:05 -06:00
Richard Theis
4d332defbc Support listing network availability zones
Update the "os availability zone list" command to support listing
network availability zones along with the currently listed compute
and volume availability zones. This adds the --network option to
the command in order to only list network availability zones. By
default, all availability zones are listed. The --long option
was also updated to include a "Zone Resource" column which is
applicable to network availability zones. Example zone resources
include "network" and "router".

If the Network API does not support listing availability zones
then a warning message will be issued when the --network option
is specified.

This support requires an updated release of the SDK in order
to pull in [1].

[1] https://bugs.launchpad.net/python-openstacksdk/+bug/1532274

Change-Id: I78811d659b793d9d2111ea54665d5fe7e4887264
Closes-Bug: #1534202
2016-02-02 08:08:25 -06:00
Richard Theis
5d1a93362d Fix showing network quotas for a project
The OpenStack SDK is now used for the network client. However,
the 'openstack quota show' command wasn't updated for the
client change. As a result, the command will fail to show
network quotas when a project name is specified. For example:

  $ openstack quota show admin
  'Proxy' object has no attribute 'show_quota'

This patch set fixes the command by using the OpenStack SDK
to get network quotas for a project.

Change-Id: I59a7b6780a7b80cd09e79d40d214751b25d3016e
Related-To: blueprint neutron-client
Closes-Bug: #1528249
2016-02-02 02:02:53 +00:00
Mark Vanderwiel
5903ffff8a Allow wait_for_delete to work for all clients
Allow the exception and error status
strings to be passed in such that other plugins can
make use of this function.

There is a comment in find_resource:
  The exception to catch here is dependent on which
  client library the manager passed in belongs to.
  Eventually this should be pulled from a common set
  of client exceptions.

Since I think that is a long ways off, this change will
work now and also work when a common exception is defined
and used.

Change-Id: Iab56cd1166028caed4f1e657e0b1ee81af3f48d8
2016-01-28 10:52:45 -06:00
Jenkins
ee78fb2f78 Merge "Support listing volume availability zones" 2016-01-22 19:23:20 +00:00
Jenkins
09be6a439a Merge "Refactor "os availability zone list"" 2016-01-22 19:22:42 +00:00
Akihiro Motoki
0e6b86ad94 Set up logger of each command by metaclass
compute.v2.flavor is changed in this commit as an initial example.

Partial-Bug: #1532294
Change-Id: I262af6ade0ae03fbe1cd2ad198faf4ebb4ecf7ce
2016-01-20 22:02:19 +09:00
Richard Theis
a8ec2ac494 Support listing volume availability zones
Update the "os availability zone list" command to support listing
volume availability zones along with the currently listed compute
availability zones. This adds a --compute and --volume option to
the command in order to select the availability zones to list. By
default, all availability zones are listed.

If the Block Storage API does not support listing availability
zones then an warning message will be issued.

Change-Id: I8159509a41bd1fb1b4e77fdbb512cf64a5ac11a9
Closes-Bug: #1532945
2016-01-14 15:47:19 -06:00
Richard Theis
84174440fc Refactor "os availability zone list"
Refactor the "os availability zone list" command to make it a common
command instead of a compute-only command. Since availability zones
are common to compute, volume and network (new), this refactoring
allows availability zone support to be added for volume and network.

In addition to the refactor, unit and functional tests were added.

Change-Id: I63e9d41d229b21cd38e5a083493042c096d65e05
Partial-Bug: #1532945
2016-01-14 11:43:31 -06:00
Jenkins
8654e3e366 Merge "Changed the abstract columns and datalists from test cases of common and Identity" 2016-01-14 16:33:16 +00:00
Jenkins
fa3077d51a Merge "Refactor network endpoint enablement checking" 2016-01-14 00:45:04 +00:00
SaiKiran
030aee6fbc Changed the abstract columns and datalists from test cases of common and Identity
columns and datalist has been set in each test case in compute,
which is not necessary. This patch abstract it out and remove
all redundant code.

Change-Id: I45a3582088161f12e60e7c933da8e7dcc0ae8e7b
Closes-Bug: #1532384
2016-01-12 17:25:33 +05:30
Swapnil Kulkarni (coolsvap)
a56fc34039 Use assertTrue/False instead of assertEqual(T/F)
The usage of assertEqual(True/False, ***) should be changed
to a meaningful format of assertTrue/False(***).

Change-Id: I3437634329fc8ecef25082b43b5fc0e1030cdbda
Closes-Bug:#1512207
2016-01-07 12:40:09 +05:30
Richard Theis
57dac0bc3a Refactor network endpoint enablement checking
Move the network endpoint enablement checking from the 'server create'
command to the common client manager. This allows future network
commands to use either nova or neutron networking based on the cloud
environment.

This patch set also includes related unit test enhancements to the
common client manager to trigger authentication on the tests.

Change-Id: Ia37e81d4fb05a1e2fceb3e5d367bda769ab8e64b
Related-Bug: #1519511
Related-to: blueprint neutron-client
2016-01-04 13:49:49 -06:00
Jenkins
9f2ed6b03a Merge "Improve output for "os security group show"" 2015-12-28 13:54:02 +00:00
Tang Chen
8d718e9d67 Refactor: Initialize parser in setUp() in TestNonNegativeAction
Change-Id: I12846acc4450d31d19897bbdfc6846bde8c8f2ce
2015-12-28 20:01:13 +08:00
Tang Chen
f0a3b175a1 Refactor: Initialize parser in setUp() in TestKeyValueAction
No need to initialize parser in each test case. Do it in setUp().
Also remove the test_default_values case because it could be tested
in the test_good_values case.

Change-Id: Ia2ed7c9e46bf6baabbd62b9d50511c5e8103e5e2
2015-12-28 17:28:04 +08:00
Xi Yang
8210ba7a55 Replace assertEqual(None, *) with assertIsNone(*)
This patch is going to replace assertEqual(None, *) with
assertIsNone(*) in unit test code to have more clear messages
in case of failure.

Change-Id: I6f85498347e8fc7cad5ea7afb832b9acda7daafc
2015-12-25 13:14:33 +08:00
Richard Theis
0e38ef8484 Improve output for "os security group show"
Improve the security group rules output when running the
"os security group show" command. Each security group rule
is now displayed on a separate line.

Current output example:
$ openstack security group show default
+-------------+------------------------- ... ---+
| Field       | Value                    ...    |
+-------------+------------------------- ... ---+
| description | Default security group   ...    |
| id          | 048a5fc3-3be1-407d-ae47-9...    |
| name        | default                  ...    |
| project_id  | 3b96bb2020c1459da76963f9e...    |
| rules       | [u"id='5d812367-9829-4340...t"] |
+-------------+------------------------- ... ---+

New output example:
+-------------+------------------------- ... ---+
| Field       | Value                    ...    |
+-------------+------------------------- ... ---+
| description | Default security group   ...    |
| id          | 048a5fc3-3be1-407d-ae47-9...    |
| name        | default                  ...    |
| project_id  | 3b96bb2020c1459da76963f9e...    |
| rules       | id='5d812367-9829-4340-95...lt' |
|             | id='ee451d1c-ade3-4975-8e...lt' |
+-------------+------------------------- ... ---+

Change-Id: I1386075310896c58a2b776e2bbec3603bd00eff1
Partial-Bug: #1519511
Related-To: blueprint neutron-client
2015-12-23 13:44:22 -06:00
Terry Howe
7aa6e5e36c SDK integration extensions and server create networks
Finish up the SDK integration with server create network and port
find and extension list.

Change-Id: I18dbada784d8aa92a45a937f251023ddf899c53e
2015-12-09 11:39:20 -07:00
xiexs
0ccd2a8108 Add project name/ID validation for "openstack quota show"
A validation is necessary to check the existence of project.
This patch is similar to Ia2d8c96527820e25b074e6486d3f39c5ad7eae60.

Change-Id: Id8895ba7a21ecad05942619a82a87c0dc68eae53
2015-11-29 22:30:04 -05:00
Richard Theis
99498b0ab3 Unable to set some compute quotas
The OpenStackClient mapping of 'openstack quota set' arguments isn't
correct for compute quota items that have to different names.  For
example, the --injected-file-size argument is mapped to
injected_file_size, but the compute quotas item is actually
injected_file_content_bytes.  This incorrect mapping prevented the
impacted compute quota items from being set.

The problem impacts the following 'openstack quota set' arguments:
  --injected-file-size
  --injected-path-size
  --properties
  --secgroup-rules
  --secgroups

This patch set also expands the compute quota unit tests to verify
all compute quota items that can be set.

Change-Id: I0a2f241e425f4811e4ae55be183ac0c8b0805c2a
Closes-Bug: #1475831
2015-11-20 13:08:42 -06:00
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
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
Dean Troyer
97659adf53 Add tests for find_resource()
Add a couple of tests for utils.find_resource() for the odd resources
and managers without resource_class.

Change-Id: I2ed9b491d1361b5259b3a5f80b4fac787a7087c1
2015-10-01 11:46:16 -05:00
Jenkins
6de1af1161 Merge "Add tests for volume quota set" 2015-09-19 03:03:05 +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
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
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