Commit graph

192 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
Jenkins
56680c83fe Merge "Add unit tests for "server show" command" 2016-05-11 13:26:55 +00:00
Jenkins
b60ff95edf Merge "Use find_resource() instead of get() in _prep_server_detail()" 2016-05-11 13:26:30 +00:00
Tang Chen
06780dd880 Add unit tests for "server show" command
Change-Id: I6eb0c4e7d5d3e677764b253e3324720a784a110b
2016-05-11 09:33:51 +08:00
Jenkins
3f5fd2f9e1 Merge "Map server power state num to meanful string" 2016-05-09 13:36:56 +00:00
Tang Chen
d58280a279 Use find_resource() instead of get() in _prep_server_detail()
There is such a comment in test_server.py:

    # Call .get() to retrieve all of the server information
    # as findall(name=blah) and REST /details are not the same
    # and do not return flavor and image information.

This is an out of date comment. There is no function named
findall() in OSC now. So use find_resource() instead of get(),
and remove this comment.

Change-Id: I8d79afc5f341fb5caf771d905506b7f1c7a41ae8
2016-05-09 14:59:39 +08:00
Jenkins
fbd48be2ac Merge "Trivial: Remove unuseful comments for assertRaise() checking" 2016-05-07 11:35:05 +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
Jenkins
467ed54d6d Merge "Make "flavor show" command to show a private flavor properly" 2016-05-06 14:07:54 +00:00
Tang Chen
15c9576817 Trivial: Remove unuseful comments for assertRaise() checking
"Missing required args should bail here" is not understandable
and not necessary. The code is obvious enough. And some of the
comments are misused because of code copy. So remove them.

Change-Id: I031395f2c882386c7a708db5cf4eee75393dc639
2016-05-06 19:55:50 +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
Huanxuan Ao
681d6dc2de Make "flavor show" command to show a private flavor properly
The "flavor show" command could not show a
private flavor by flavor name becauce it could
not find a private flavor by flavor name.
In "until.find_resource(parsed_args.flavor)",
If parsed_args.falvor is a name of a flavor,
"flavors.find(name=parsed_args.flavor)"will be
called to find a flavor.But the default value of
"is_public" is "Ture" in "flavors.find()" so that
we can only find public flavors.If we want to find
all flaovrs by flavor name,we should add
"is_public=None" in "flavors.find()".

So I tried to change
"until.find_resource(parsed_args.flavor)" to
"until.find_resource(parsed_args.flavor, is_public=None)",
but then I could not find any flavor by flavor id
because "is_public" is an unexpected argument of
"flavors.get()" in "until.find_resource()".

In this case,I think "until.find_resource()"
can not find a private flavor properly,and
we should combine "manager.get(flavor.id)" and
"manager.find(name=flavor.name, is_public=None)"
by ourselve to find a flavor.

Also,this bug affects other flavor commands like
"flavor set/unset/delete",so I fix them in this patch too.

Change-Id: I4a4ed7b0a2f522ee04d1c3270afcda7064285c39
Closes-Bug: #1575478
2016-05-02 16:47:53 +08:00
Huanxuan Ao
4524b3605f Fix error in flavor set/unset command
In the "flavor set/unset" command,the "flavor" parameter
can be a name but can not be a id of a flavor.
I think we should find a flavor by using "utils.find_resource()"
in these commands.

Change-Id: I5836788f7ed18813f1ebde31bb808b7c3f932b80
Closes-Bug: #1575624
2016-04-28 19:59:53 +08:00
Jenkins
38759f3edd Merge "Add "server group show" command" 2016-04-20 20:43:07 +00:00
Jenkins
e78113a5fc Merge "Fix mutable default arguments in tests" 2016-04-20 20:22:55 +00:00
Rui Chen
a0d79968ca Add "server group show" command
Support compute v2 "server group show" command in OSC.

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

Change-Id: I1a6d103151c704bda5b67cb9a49cc43c7d9f1d6a
2016-04-20 03:26:13 +00:00
Rui Chen
4e22728013 Add "server group list" command
Support compute v2 "server group list" command in OSC.

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

Change-Id: I68b80e3c4458692472af671028cd1f939736bcb8
2016-04-20 03:25:57 +00:00
Rui Chen
7458c612ed Add "server group delete" command
Support compute v2 "server group delete" command in OSC.

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

Change-Id: I7d792d669b147b24dc774844cfc9dbacd60d017b
2016-04-20 03:25:38 +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
Jenkins
cb8f757779 Merge "Refactor security group rule list to use SDK" 2016-04-11 03:01:13 +00:00
Jenkins
523ab58fb6 Merge "Log hint when --enable present with --disable-reason" 2016-04-06 18:46:14 +00:00
Rui Chen
4d3f996e7c Log hint when --enable present with --disable-reason
--enable and --disable-reason should be mutually exclusive in "compute
service set" command, but now when they are present at the same time,
--disable-reason would be ignored silently. Fix these and add some hints
about --disable-reason argument is ignored in this situation.

Change-Id: I43254b6bc40fcae4fd0dc3457f26fad84c267072
Closes-Bug: #1556801
2016-04-05 21:22:27 +08:00
Tang Chen
c3f6ee9570 Trivial: Rename FakehypervisorStats to FakeHypervisorStats
Change-Id: I138b1b8a3327947b8cd032d8d0c32d98548ce2ad
2016-04-05 19:43:33 +08:00
Jenkins
f3b58238dd Merge "Add unit tests for compute v2 aggregate" 2016-03-30 23:23:57 +00:00
Jenkins
01b2a0c49f Merge "Add "aggregate unset" to osc" 2016-03-30 23:21:37 +00:00
Richard Theis
c5b58a47b0 Refactor security group rule list to use SDK
Refactored the 'os security group rule list' command to use the
SDK when neutron is enabled, but continue to use the nova client
when nova network is enabled.

In addition, a release note was added to document the features
and fixes resulting from this refactor.

Change-Id: I24d04b720102ed1c60776e1ca67d4ca20e31b663
Partial-Bug: #1519512
Implements: blueprint neutron-client
2016-03-28 12:25:51 -05:00
Rui Chen
e1e68809ae Add unit tests for compute v2 aggregate
This patch add the complete unit tests to cover compute v2
aggregate object.

Change-Id: Ifcf9248eabb5ca3ee5ca01c5843e96ba681c3b5a
Closes-Bug: #1560832
2016-03-26 18:43:46 +08: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
ea2dd8e141 Refactor security group create to use SDK
Refactored the 'os security group 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. The tenant_id column name was fixed to align
with the 'os security group show' command.

Change-Id: Ib29df42edcddcc73a123fff6a64743a6bfcb7fbf
Partial-Bug: #1519511
Implements: blueprint neutron-client
2016-03-10 10:18:52 -06: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
Jenkins
1cef18427f Merge "Remove FakeFlavorResource class" 2016-03-09 17:18:26 +00:00
Jenkins
c8e4a1407f Merge "Add --reason for disable service" 2016-03-09 07:12:51 +00:00
jichenjc
b711c3a0ca Add --reason for disable service
disbale service allow a reason to be input as disable reason.
This patch add support for it.

Change-Id: I59622c3970e055ebd46bf03c33c864b6d064db28
2016-03-09 05:19:41 +00: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
fa3a34322c Merge "[compute] Support restore server" 2016-03-04 23:41:42 +00:00
Jenkins
5c1633f505 Merge "[compute] Add unit test for keypair" 2016-03-04 23:39:16 +00:00
Jenkins
d763acdf1c Merge "Add test cases to test some commands with '--wait' and fix bug" 2016-03-04 01:29:56 +00:00
ting.wang
84942bb11c Add test cases to test some commands with '--wait' and fix bug
"server image create"
"server rebuild"
"server resize"
Above 3 commands are not covered by unit test.
So add some unit tests.

Meanwhile, fix bug. Now that image name is an optional argument,
we'd better record error messages with positional arguments
instead of optional argument. So, record server name.

Change-Id: I41bc025d4824dc46f63a3213d82e1528bacbbe12
2016-03-02 09:32:27 +08: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
8a3fc6c343 Merge "Make SetFlavor and UnsetFlavor inherit from cliff.Command" 2016-02-29 18:37:44 +00:00
Tang Chen
058232b999 [Compute] Check return value is None in compute unit tests.
take_action() in commands inheriting from Command returns nothing.
So we should assert the return is None in the unit tests of
these commands.

Change-Id: I953480ecff3b5beb12255d866d0e1df45f130efd
Partial-Bug: #1550636
2016-02-27 15:38:04 +08:00