68 Commits

Author SHA1 Message Date
Tang Chen
8ce5d90136 Refactor service unit tests
Add a FakeService class, and refactor service unit tests
to use this class.

Change-Id: I650ad83386a58205ebe42274d2bf2f508436bfa6
2016-05-25 13:06:39 +08:00
Jenkins
5dfedd6445 Merge "Enhance exception handling for "network delete" command" 2016-05-17 03:04:42 +00:00
Tang Chen
809239ca1e Map server power state num to meanful string
In _prep_server_detail(), power_state is not formatted
by _format_servers_list_power_state(). So when executing
"server show" or "server create", the power state is
represented by number. This patch map the numbers to
meanful strings.

This patch also adds power_state attribute to FakeServer,
and improves unit tests for this attribute.

Change-Id: I2ec674327de4e5133b8712ba6bb53fa5ce55e3f4
2016-05-07 14:54:44 +08:00
Huanxuan Ao
68224eafc3 Add a unit test for "flavor create" command
There was not a unit test for "flavor create" command
in the "test_flavor.py".So I add the unit test.

Change-Id: Ib1e821ea524eb33c0ba73643164228c7b83253b4
2016-05-04 18:55:49 +08:00
Jenkins
e78113a5fc Merge "Fix mutable default arguments in tests" 2016-04-20 20:22:55 +00:00
Rui Chen
a06bb28bcc Add "server group create" command
Support compute v2 "server group create" command in OSC.

Implements: blueprint nova-server-group-support
Partial-Bug: #1542171

Change-Id: I96ffb07764d3adb715e048943cfee3b879c280f6
2016-04-20 03:24:58 +00:00
Tang Chen
09c20b2b5c Fix mutable default arguments in tests
Python’s default arguments are evaluated only once
when the function is defined, not each time the
function is called. This means that if you use a
mutable default argument (like list and dict) and
mutate it, you will and have mutated that object
for all future calls to the function as well.

More details about this wrong usage here:
http://docs.python-guide.org/en/latest/writing/gotchas/#mutable-default-arguments

In unit tests, most FakeXXX classes' methods take
mutable arguments with default values [] or {}.
We should change them to None.

Change-Id: Iea833b66aa1379829511ad5c6d4432b72f3488e2
Closed-bug: #1550320
2016-04-20 11:15:17 +08:00
Tang Chen
df3ee61be3 Remove methods argument from FakeHypervisorStats
methods argument is not necessary in FakeHypervisorStats class.
Remove it.

Change-Id: I288f71b412beb3e583e957a9fd99210bc6f3f543
2016-04-15 16:10:09 +08:00
Tang Chen
56f9227063 Enhance exception handling for "network delete" command
This patch rework "network delete" command following the
rules in doc/source/command-errors.rst.

In "network delete" command, there are multiple REST API
calls, and we should make as many of them as possible.
And log error for each one, give a better error message.
Also return a non-zero exit code.

Change-Id: I39ae087dd7bd08d049d513abfa6c5cab2bd13b2b
Partial-Bug: #1556719
2016-04-14 13:54:14 +08:00
Tang Chen
a281ef89a5 Remove fake methods code from compute network
Network objects don't have any method needs to fake.

keys() method is only used by _get_columns() helper
to obtain all attributes of an object. But in compute
network implementation, attributes are obtained from
obj._info directly, which is a dictionary itself. So
there is no need to fake this method.

Change-Id: Ie6a46ef6a3042641e55a7002573ef501db7b60e1
2016-04-12 13:41:52 +08:00
Tang Chen
c3f6ee9570 Trivial: Rename FakehypervisorStats to FakeHypervisorStats
Change-Id: I138b1b8a3327947b8cd032d8d0c32d98548ce2ad
2016-04-05 19:43:33 +08:00
Jenkins
01b2a0c49f Merge "Add "aggregate unset" to osc" 2016-03-30 23:21:37 +00:00
Rui Chen
4cbcd02a57 Add "aggregate unset" to osc
Support "aggregate unset" command in order to
remove the property of aggregate object in OSC.

Change-Id: I49645135586362f0fd251f5e4a4c03eff273d9e9
Closes-Bug: #1559866
2016-03-24 10:33:23 +08:00
Richard Theis
d906507962 Refactor security group rule create to use SDK
Refactored the 'os security group rule create' command to use the
SDK when neutron is enabled, but continue to use the nova client
when nova network is enabled.

Added a release note for the change in security group rules output
due to Network v2.

Change-Id: I8c6c99d5272ff5d410a449f73d198d834c5cd96e
Partial-Bug: #1519512
Implements: blueprint neutron-client
2016-03-23 09:56:01 -05:00
Jenkins
bc5b0846f8 Merge "[compute] Add set host command" 2016-03-17 03:06:12 +00:00
Rui Chen
8664a2f8ae Support "--long" option in ListService
Add "--long" option in ListService so that compute service
disabled reason can be showed.

Change-Id: I1ace8f1c4e4efe0a1a8f6710425d73eb5db9e5e1
Closes-Bug: #1556815
2016-03-14 18:07:23 +08:00
Richard Theis
564c8ff240 Refactor security group show to use SDK
Refactored the 'os security group show' command to use the SDK
when neutron is enabled, but continue to use the nova client
when nova network is enabled.

Added a release note for the change in security group rules output
due to Network v2. The column names remain unchanged to maintain
backwards compatibility.

Change-Id: I25233ddb8115d18b8b88affb3de13346084a339d
Partial-Bug: #1519511
Implements: blueprint neutron-client
2016-03-10 08:33:52 -06:00
Tang Chen
81930abdcb Remove FakeFlavorResource class
In unit tests, all real methods are faked. They should not
do any real operations in the tests. So, FakeFlavorResource
is not necessary. Just fake get_keys(), set_keys and unset_keys()
in FakeResource would be enough.

Change-Id: Icc3473ba9c77f4817d0edddb7ff3e1bd2946fac7
2016-03-09 10:26:15 +08:00
Tang Chen
11c253ca19 Trivial: Fix incorrect comments in compute fakes.py
Change-Id: I18b1720af13b444527dda1ecab52e3cc8d8d9376
2016-03-08 20:48:58 +08:00
Jenkins
5c1633f505 Merge "[compute] Add unit test for keypair" 2016-03-04 23:39:16 +00:00
Richard Theis
842882f3cb Refactor security group list to use SDK
Refactored the 'os security group list' command to use the SDK
when neutron is enabled, but continue to use the nova client
when nova network is enabled.

This refactor also removes the logic for displaying project names
instead of project IDs when the --all-projects option is specified.
This logic was removed because it is inconsistent with the other
network commands.

Since neutron will always display security groups across all
projects for an admin, the --all-projects option is now hidden
when neutron is enabled and the Project column is always
displayed.

Change-Id: I934a1f5084ef3c5f929d0ffd38ebf5064d799941
Partial-Bug: #1519511
Related-to: blueprint neutron-client
2016-02-29 14:46:57 -06:00
Jenkins
fbc03104f6 Merge "Floating IP: Neutron support for "ip floating show" command" 2016-02-25 21:15:47 +00:00
jichenjc
ff3a1d3780 [compute] Add set host command
set host command is missing, add it as SetHost class.

Change-Id: I7acb94150718b7150598632cbebc3d85018a0d59
2016-02-26 05:05:46 +08:00
Jenkins
6176e802b3 Merge "Fixed a bunch of spacing" 2016-02-25 20:54:25 +00:00
ting.wang
e0b6cab09b Add some test cases for "server list" command
Add some test cases that test 'server list' command when specifying flavor or image.
Because I add some attribution to fake.py, I have to change some code
in create server test. Despite all this, I think it's good for testing.

Change-Id: I714deac1f6f940b790a3c20af5f7ffa724ac44d1
2016-02-24 18:57:02 +08:00
Tang Chen
f0960f0fef Floating IP: Neutron support for "ip floating show" command
Change-Id: I30350076621c83c758927444e5f8bcc2b7d0fc74
Partial-Bug: 1519502
Related-to: blueprint neutron-client
2016-02-24 17:26:13 +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
jichenjc
042e2b7d53 [compute] Add unit test for keypair
keypair do not have unit test, this patch adds it.

Change-Id: Id702ccaad239b916340bb17014d1ede0a28aaec9
2016-02-23 12:23:10 +08:00
Jenkins
37f96c2c47 Merge "Add unit tests for 'hypervisor stats' command" 2016-02-23 00:59:08 +00:00
Tang Chen
c57fc41c33 Initialize _keys in __init__() in FakeFlavorResource
_keys is defined as a class attribute in FakeFlavorResource. So when
we call set_keys() to update it, it changes. And this change may bring
trouble to the other tests afterward.

So define and initialize it in __init__() as an object attribute.

Change-Id: Ib18c03877b67e1b7c2e107f598076b928a58e4fb
Closes-bug: #1548378
2016-02-23 00:14:56 +08:00
ting.wang
8825f0d8f3 Add unit tests for 'hypervisor stats' command
'hypervisor stats show' command isn't covered by unit tests,
so add unit tests to test it.

Change-Id: Ic355230cbdd596e848191b599803dca7f27c2ffb
2016-02-22 23:36:29 +08:00
Tang Chen
b4edbd55f2 Add unit test for "flavor show" command
Change-Id: I1591649e5b97a885707042fcccad3335ee8c7aec
2016-02-20 17:16:01 +08:00
Jenkins
088f2446f2 Merge "Support "network show" command in nova network" 2016-02-18 09:03:56 +00:00
Jenkins
36b21461d9 Merge "Support "network list" command in nova network" 2016-02-18 09:03:49 +00:00
Jenkins
bb153b705a Merge "Refactor security group rule delete to use SDK" 2016-02-18 09:03:27 +00:00
Tang Chen
d9d1809907 Support "network show" command in nova network
"network show" command is not implemented in nova network.
This patch implements it.

Change-Id: I1fadd890fe36c4e3ac5c9ed389b20c5b2fff8aca
partial-Bug: 1543672
2016-02-17 17:09:51 +08:00
Tang Chen
ddc97c6dc5 Support "network list" command in nova network
"network list" command is not implemented in nova network.
This patch implements it.

The Network object in novaclient is quite different from
the one in sdk. And the output of "network list" using
Nova network is also quite different from using Neutron.

It is like this:

# openstack network list
+--------------------------------------+---------+-------------+
| ID                                   | Name    | Subnet      |
+--------------------------------------+---------+-------------+
| 96a98ec4-31f6-45f6-99e6-9384569b3bb5 | private | 10.0.0.0/24 |
+--------------------------------------+---------+-------------+

--long and --external options have not been implemented because
the attrs in Network object in novaclient is too much different.

This patch also introduces a new FakeNetwork class in compute/v2/fake.py
to fake nova network.

Change-Id: Id1fdf81fb2fa8b39f2c76b7bae37ac4fecafd0f7
Depends-On: I1b59264cd40aaf1062f4e8db233ccb7fd0e95f0e
partial-Bug: 1543672
2016-02-17 17:04:43 +08:00
Tang Chen
da3d65299b Define FakeFloatingIP class in tests/compute for nova network commands
"ip floating list" command is not available for Neutron now because
the implementation is incorrect.

The FloatingIP objects returned from Nova and Neutron network are
quite different. So they need different FakeFloatingIP class to
do the tests.

This patch copies class FakeFloatingIP in tests/network to tests/compute
for Nova network tests.

Will fix the problem in "ip floating list" command and change FakeFloatingIP
in tests/network to fit Neutron network tests.

Change-Id: Ia29d257868e0f1dc6cd7cfe3819875e5913f76ec
Partial-Bug: 1519502
Partially implements: blueprint neutron-client
2016-02-16 15:14:34 +08:00
Tang Chen
27a0da65e3 Support "network delete" command in nova network
"network delete" command is not implemented in nova network.
This patch implements it.

Change-Id: I5dac1eed6eb8e67298bb446418835a6ab85c859c
Depends-On: I1b59264cd40aaf1062f4e8db233ccb7fd0e95f0e
partial-Bug: 1543672
2016-02-14 17:07:17 +08:00
Jude Job
6109dfcf63 Floating IP: Neutron support for "ip floating delete" command
This patch implements "ip floating delete" command for
both compute and network. Also includes unit tests.

Change-Id: Ie61f0faad65ec90f9d9956ae463412be8d963d05
partial-Bug: 1519502
Related-to: blueprint neutron-client
Co-Authored-By: Tang Chen <chen.tang@easystack.cn>
2016-02-14 04:21:00 +00:00
Richard Theis
a29c9732d7 Refactor security group rule delete to use SDK
Refactored the 'os security group rule 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 also introduces new FakeSecurityGroupRule classes
for testing network and compute security group rules. And fixes
were made to the network FakeSecurityGroup class.

Change-Id: I8d0917925aa464e8255defae95a2a2adfb6cfb75
Partial-Bug: #1519512
Related-to: blueprint neutron-client
2016-02-10 10:38:35 -06:00
Jenkins
3d04c78cb9 Merge "Add unit tests for "hypervisor show" command" 2016-02-08 08:10:03 +00:00
Tang Chen
fc708c4991 Add unit tests for "hypervisor show" command
Change-Id: Ib75e5eb5b197e9d58fb87a595a43b8774b7b1987
2016-02-07 02:38:09 +08:00
Tang Chen
1740218728 Define security_group_rules mock in FakeComputev2Client
security_group_rules mock should be defined in
FakeComputev2Client, and used in each test class.

Change-Id: I44bb6379b2c1b6cb277296e08e25dd4d7255c276
2016-02-06 08:43:55 +08:00
Tang Chen
553631a5d4 Move security_groups mock definition to FakeComputev2Client
All compute client related mocks should be defined in
FakeComputev2Client.

Change-Id: Ie75385af772ca23286c4cf131d3d54cc14f20a30
2016-02-06 08:43:01 +08:00
Tang Chen
05b18749ef Add unit tests for "hypervisor list" command
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
2016-02-05 21:40:28 +08: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
Tang Chen
ec79d338f7 Use FakeVolume in server test cases.
We have a class FakeVolume to fake one or more volumes. So use it in
test_server.py.

Change-Id: I735ae7f678a6799e0ae4c7c25c8083d9ebf47b09
Implements: blueprint improve-volume-unittest-framework
2015-12-08 10:36:25 +08:00
Jenkins
e6057f088b Merge "Add project name/ID validation for "openstack quota show"" 2015-12-01 00:03:10 +00:00
xiexs
eb8672978c Add testcases for compute.v2.service
Add a set of testcases to test the classes of
ListService and SetService in the compute.v2.service.
And to be consistent with cinder term, use service_binary
to represent the service binary.

Change-Id: I9fe740f07c9ce3afdba7b7cca152d614170abb96
2015-12-01 10:09:54 +08:00