The expected behavior is when timing is True, then we record each
request's time, then we should call reset_timings() to release memory.
However, the shell, client.{HTTPClient,SessionClient} will record each
request's time no matter what timing is set, then after long running
time in service like ceilometer-agent-compute, the memory keeps increasing.
We'd better not record request's time when timing is set to False.
Users are not responiable to call reset_timings() when they don't want
timing functionality.
Change-Id: I3e7d2fadf9a21be018781d528a1b6562228da6dd
Closes-Bug: #1433491
https://review.openstack.org/#/c/153203/3 added check
for novaclient, removed the logic for both
--image and --block-device are added.
But actually the following valid boot command failed
due to the change here, so this patch reverted original
one and add some descriptions to avoid further removal.
nova boot test-vm --flavor m1.medium --image centos-vm-32
--nic net-id=c3f40e33-d535-4217-916b-1450b8cd3987
--block-device id=26b7b917-2794-452a-95e5-2efb2ca6e32d,bus=sata,
source=volume,bootindex=1
Change-Id: Ia29e63c72b34d3038aa591c466425e65edf5755b
Partial-Bug: #1433609
Currently, several of the volumes apis depend on callers to pass
service_type='volume' as a parameter when creating a client object,
to route correctly. The problem is, it makes it impossible for
callers to work with both the compute and volume endpoints at the
same time. They can either work with compute and have volumes.* calls
return 404, or they can work with volume and have servers.* images.*
flavors.* calls return 404.
The CLI sets service_type='volume' for client objects for the
following commands via a decorator:
volume-list
volume-show
volume-create
volume-delete
volume-snapshot-list
volume-snapshot-show
volume-snapshot-create
volume-snapshot-delete
volume-type-list
volume-type-create
volume-type-delete
With this change, the service_type 'volume' is set in the api,
so the decorators on the shell commands are no longer needed.
Closes-Bug: #1431154
Change-Id: I11b48ac14fa4c64d8aae528552ec5b363be384c5
nova client is not able to show the list of volumes when
querying by name.This is because cinder api accepts only
display_name as query parameter and when qeried with 'name'
parameter returns a empty list
Change-Id: Ie4ffc275d1754052d9e239d8457baf6f7fd53b83
Closes-Bug: #1430415
The nova flavor-show command accepts a flavor
name as its parameter. The command show inconsistency
as it works with the exact flavor name and flavor name
in all lowercase but fails for any other case pattern.
So, updated the code so that if we run the command
with flavor-name case patern it runs fine.
Closes-Bug: #1423885
Change-Id: I713bf2b5aca977df40dc745e29d4fe98a950c991
The following replacements were done:
1) assertEqual(True, *) -> assertTrue(*)
2) assertEqual(False, *) -> assertFalse(*)
3) assertTrue(a in b) -> assertIn(a, b)
4) assertTrue(* is not None) -> assertIsNotNone(*)
TrivialFix
Change-Id: I8d8a2d7b5d3505e07728544b683b301d1a8850cf
Unused code was removed in fixture_data/images.py
for unknown image requests that relate to
v2/images.py and test_images for them.
Change-Id: I7e31a572116b1e5cf0df9f431f8e53470d27d066
Fix E124 failures and enable check for E124
E124 closing bracket does not match visual indentation
Change-Id: Iec6af44362dcf613cfaccbccbe53de82aba51a6a
other openstack clients like glance, cinder use --endpoint-type
(internal|admin|public). This allows users to use the same arguments
with the nova cli.
Partial-bug: #1367389
Change-Id: Ia55cad797ac0dca7fa60f55c1f2dfba0b64d0fd3
Fixed redeclared test_names for two test functions that pass now:
1) 'test_list_security_groups_all_tenants_on'
2) 'test_find_by_str_name'
Small spelling corrections
TrivialFix
Change-Id: Iacb0ce5697779f9342c22a22cb2f29a8e063b459
This reverts commit 4c8cefb98a425382204df2f38f24e6b5b71520dd.
The cache completion was causing a bug where 'nova volume-attach' would
then try to query Nova for volume information using a URL that was not
valid. This caused it to appear that the attach had failed.
Additionally the idea of making extra API queries for a bash completion
cache should be thought through more.
Conflicts:
novaclient/client.py
novaclient/shell.py
novaclient/v2/client.py
novaclient/v3/client.py
Closes-Bug: #1423695
Change-Id: I6676a11f9b5318a1cda2d03a5d4550bda549d5c2
Currently the commands of os-tenant-network API use net-*
which may confuse users sometime. This patch changes commands
to tenant-network-*, and marks net-* commands as DEPRECATED.
Closes-Bug: #1152862
Change-Id: I8c3a0be08763a6f626d7fc7cf84811ac61ccc526
Nova delete command deletes an instance by name
or ID. Nova delete command is able to delete an
instance within the same the tenant by name or
ID. When admin credentials are sourced and try
to delete a non admin tenant instances, nova
delete command is able to delete an instance by
ID only, it is not able to delete an instance by
name.
Nova delete command deletes an instances by id
using following api call
/v2/{tenant_id}/servers/{server_id}
But to delete an instance by name, nova delete
command first find the resources by name using
following api call
/servers?name={server_name}
This api call is not able to retrive the list
of other tenant instances.
Adding all tenants parameter to this api call
will retrive the list of other tenant
instances. The following will be new api
call
/servers?all_tenants=1&name={server_name}
Closes-Bug: #1247030
Change-Id: I03e578d58214c835d9a411752bd618d77ced37ff
If 'auth_url' is missed in HTTPClient, authenticate method failed with
non-friendly error while trying to parse it.
Change-Id: Iaec95527293f3e1a34eb7f9ffa81097ba48107b3
If given filename is `-` for `--pub-key` option, reads public key
from stdin.
$ cat id_rsa.pub | nova keypair-add --pub-key - keyname
Change-Id: Ib6dfe5a7b08d588868a923defb9ddd15fc28e01f
Closes-Bug: #1333476
I observed a transient unit test failure [1] where occasionally the
ordering of the keys in the string result from json.dumps() didn't
match the ordering in the call_args_list, causing the test to fail.
This change adds a dict comparison of the POST data payload instead
of comparing the json.dumps(data) strings.
[1] http://logs.openstack.org/03/153203/3/check/
gate-python-novaclient-python34/f8a12bc/
Change-Id: I6b8bd4169b92870f657bf4e7f7fca02722749017
In the method named from_api in nova/block_device.py,
if source_type == 'image' and destination_type == 'local':
raise exception.InvalidBDMFormat(
details=_("Mapping image to local is not supported."))
While, in the method named _boot in novaclient/v2/servers.py
if image:
bdm_dict = {'uuid': image.id, 'source_type': 'image',
'destination_type': 'local', 'boot_index': 0,
'delete_on_termination': True}
block_device_mapping_v2.insert(0, bdm_dict)
Because of the above, if using --image and --block-device
params at the same time to create vm, nova would
raise InvalidBDMFormat exception
To resolve this problem, remove the codes in novaclient which
conflict with nova
Change-Id: I488322ba0160100a6d641fde68fa824d0581956a
Closes-Bug:#1418484
This fix changes the item that cached for completion from
"human_id" to "name".
A string for completion shoud not be changed in any way,
because changed keyword can not use as command line parameter.
But the "human_id" means "human readable id" that is
changed from "name" by method "to_slug". "to_slug" is meant to
create a valid path name from a string.
The tools/nova.bash_completion take the completion string from
the file ".novaclient/*/*-cache". The file is created when client
call "list" command. For example , "nova list","nova image-list",
and the others.
Currently, items that are written to the cache file is the "id"
and "human_id".
Closes-Bug: #1193049
Change-Id: I241ec8b7c8729274ee43db6e360141fd381b265e
Methods tests.v1_1.fakes.FakeHTTPClient.post_servers_1234_action
and tests.fixture_data.servers.V1.post_servers_1234_action
contain a set of same asserts. These asserts moved to method
check_server_actions. This method is shared between
post_servers_1234_action methods.
Some almost equal asserts are grouped.
Change-Id: I2643e77fe30400d462731bbc57351460fb28dc92
Currently find_resource() searches resource with human_id before does
with name_attr. With this logic, find_resource() cannot identify
upper/lower case. In find_resource(), human_id always matches and
name_attr never used in find_resource() because human_id made from
small letters of name_attr string (see bug/1318503).
To identify upper/lower case, name_attr should be used before human_id.
This fix moves name_attr to ahead of human_id with unit-test cases.
Change-Id: I9b821d7111c11a97be38f19de06172daf410022d
Closes-Bug: #1318503
Module novaclient.v1_1 is used as implementation of V1.1, V2 and V3.
Since future development(microversioning) will be done across V2,
implementation should be done in appropriate module(to prevent misleading).
Despite the fact that implementation for all versions are equal, discover
method for contrib path worked only for v1.1. This patch fixes this bug and
modifies shell tests to check all versions.
Change-Id: Ib6798f4dfe177586302141f522dc593560ce6a5b
quota-show and quota-defaults not work because 'SessionClient'
object has no attribute 'tenant_id'. Try to get project_id
from auth_ref when cs.client is SessionClient instance.
Change-Id: Ic125a99ba34e911485868454c3c7531a34eabdc9
Closes-Bug: #1407388
The docstrings refer to instance passwords as the admin password, root
password, or simply as "password". That makes documentation difficult to
understand. I've cleaned things up where appropriate.
I did not change the 'root-password' command in this patch, im planning
to do that in a separate patch.
Cleaning that up to have everything
refer to the instance password as "admin password" for clarity.
Change-Id: I421edcaf18bf8536d5e43f71db6e868868154be3
In order to pave the way for functional testing, move existing unit
tests into a directory labeled unit. A subsequent patch will add a
directory for functional tests.
Change-Id: I0adb8b9f14451acb382c725d31f5387b4b6d82bb