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 1 in all but identity tests. There are too many
such comments in identity tests. So fix them all in another patch.
Change-Id: I9849baa8141ea8af2042a69afd540b77ce6ae6bd
Partial-bug: #1477199
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 3 in compute tests.
Change-Id: I4df224ec82b5d82a3d6d3f366c0f68a7ea0d87cd
Partial-bug: #1477199
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 compute tests.
Change-Id: Idc54ad21eaa1371ebd601327b8d962c7039f2de0
Partial-bug: #1477199
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 1 in compute tests.
Change-Id: I99ab42a7de69af0e5de802a1bb5aac647245a200
Partial-bug: #1477199
projects mock has been defined in FakeIdentityv2Client as
tenants, and in FakeIdentityv3Client as projects. No need
to define them again.
Change-Id: Ieb97b32d7be6bd95c8621092b218ebfd8bc5b78d
The triggering crash dump feature is supported by nova [1] and
novaclient [2] now, it's time to introduce this feature into
OSC correspondingly.
[1]The change id is: I6ed777ff637254b4b79417008f9055dd19fc7405
[2]The change id is: If03b1864bbe7074c720b946fc2700bd5d07debc3
Change-Id: I5a411f283fdf0fc3c00380d069848a332c799cdd
Closes-Bug: #1538372
Co-Authored-By: Tang Chen <chen.tang@easystack.cn>
There is no unit tests for "hypervisor" command. This patch
introudces a new class FakeHypervisor to fake one or more
hypervisors, and a base class TestHypervisor. Also adds
hypervisors mock to fake compute client.
And also, this patch adds unit tests for "hypervisor list"
command.
Change-Id: I18733eae1a8f4fff72e830d9a060fb8f0f58fbf5
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
Users could specify the last image (name or ID) of the previous page with
--marker option to control the start image of the output.
Change-Id: Idca0235ee83b1226b00c89cf3d38500fa898b7d0
Closes-Bug: #1540988
This option is quite useful if there are too many images.
Change-Id: If6a901c27c5da2d1f4412e8fa9ba3bed3b72fdd9
Co-Authored-By: Tang Chen <chen.tang@easystack.cn>
Partial-Bug: #1540988
Since --page-size has never worked, there is no paginate logic needs
to be implemented in "image list" command. So remove the unnecessary
loop.
And also, the marker is not necessary because --marker option has not
been implemented. Will add it back when implementing --marker option.
Change-Id: I71fea1502f92f447a49697edb52e8e82f336772f
Partial-Bug: #1540988
Class FakeVolume should be used in volume tests.
Change-Id: Idf7d3e2a0654cd7d7993f169c4743b1d38902f1b
Implements: blueprint improve-volume-unittest-framework
Co-Authored-By: Tang Chen <chen.tang@easystack.cn>
Refactored the 'os security group delete' command to use the SDK
when neutron is enabled, but continue to use the nova client when
nova network is enabled.
This patch set introduces a new NetworkAndComputeCommand class
to be used for commands that must support neutron and nova network.
The new class allows both the parser and actions to be unique.
The current DeleteSecurityGroup class is now a subclass of this
new class and has moved under the network v2 commands.
This patch set also introduces a new FakeSecurityGroup class for
testing security groups.
And finally, this patch set updates the command documentation
for security group and security group rule to indicate that
Network v2 is also used.
Change-Id: Ic21376b86b40cc6d97f360f3760ba5beed154537
Partial-Bug: #1519511
Related-to: blueprint neutron-client
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
get_body() is needed in each network files to construct a dict
to pass to sdk proxy. And it is also used by several functions
in each file. So define it as a file level private helper function.
The unified prototype should be:
def _get_attrs(client_manager, parsed_args):
1. The name, in sdk, the parameter passed to proxy is named "attrs".
And it is a private method. So let's call it _get_attrs().
2. The parameters, besides parsed_args, when we deal with project
and project_domain, we have to make use of identity_client. So
let's pass in the client manager.
Change-Id: Ib044ebd4ddedbcd805f46334a7fe99e4ebb5b249
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
This patch allows the adding of availability_zone_hints during
router create. Also allows for the display of availability_zones
during list and and show commands.
Change-Id: Ifbc5c218bc7103d28076d726212ce25321bcf7f1
Partial-bug: #1519503
Partially-implements: blueprint neutron-client
Add --availability-zone-hint parm to network create. Also add
availability_zones and availability_zone_hints to the network list and network
show commands
Change-Id: Ib4dc2e3e7897939be7bef6b25a095c8222b885bc
Partially-implements: blueprint neutron-client
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
OpenStack uses 'CIDR' incorrectly in many places. We are not going
to perpetuate that usage. The correct name here is simply 'subnet'
as the data is the network address for the subnet, in CIDR notation.
Also, some additional cleanups as suggested in comments to
https://review.openstack.org/#/c/84782
Depends-on: I3c0748074a6511ff92500516b3129886d2476eed
Change-Id: Ib44c49dc1739ce7d881432e482dd16f8928eef49