[
https://issues.apache.org/jira/browse/CLOUDSTACK-735?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Rohit Yadav closed CLOUDSTACK-735.
----------------------------------
Assignee: Rohit Yadav (was: Prasanna Santhanam)
Discussed with Prasanna... Instead of fixing tests, we should maintain backward
compatibility, hence an incorrect uuid is not thrown as exception but logged
and an empty response would be sent like in 4.0 and before. The fix was applied
in api_refactoring, in ApiDispatcher:
commit 8cee441c52281baee69d2614a6fca9408363f484
Author: Rohit Yadav <[email protected]>
Date: Thu Jan 3 17:17:21 2013 -0800
server: Make ApiDispatcher backward compatible to not throw error on
incorrect params
Incorrect params are silently ignored in 4.0 and before. The fix would log
the error
in debug log, but will continue processing. In case of an issue with uuid
or param
an empty response is sent, for ex. in case of deleted entities as well.
Signed-off-by: Rohit Yadav <[email protected]>
> Integration smoke tests: Fix expunge vm test on api_refactoring
> ---------------------------------------------------------------
>
> Key: CLOUDSTACK-735
> URL: https://issues.apache.org/jira/browse/CLOUDSTACK-735
> Project: CloudStack
> Issue Type: Bug
> Security Level: Public(Anyone can view this level - this is the
> default.)
> Reporter: Rohit Yadav
> Assignee: Rohit Yadav
> Fix For: 4.1.0
>
>
> With last test of smoke tests for devcloud on api_refactoring, when an
> expunged vm is listed, marvin raises HTTPError which was a recent change on
> master (was done so clients like cloudmonkey can display error correctly).
> The bug is that test vm life cycle does not trap the error correctly:
> 867 while expunge_cycle > 0:
>
> 868 list_vm_response = list_virtual_machines(
>
> 869 self.apiclient,
>
> 870
> id=self.small_virtual_machine.id
> 871 )
>
> 872 if list_vm_response:
>
> 873 time.sleep(expunge_cycle)
>
> 874 expunge_cycle = 0
>
> 875 continue
> Log:
> $ nosetests --with-marvin --marvin-config ../../tools/devcloud/devcloud.cfg
> --load -a tags="devcloud" -w smoke [15:05:40]
> Test Deploy Virtual Machine ... ok
> Test Stop Virtual Machine ... ok
> Test Start Virtual Machine ... ok
> Test Reboot Virtual Machine ... ok
> Test destroy Virtual Machine ... ok
> Test recover Virtual Machine ... ok
> Test destroy(expunge) Virtual Machine ... ERROR
> ERROR
> ======================================================================
> ERROR: Test destroy(expunge) Virtual Machine
> ----------------------------------------------------------------------
> Traceback (most recent call last):
> File
> "/Bhaisaab/Work/apache-cloudstack/test/integration/smoke/test_vm_life_cycle.py",
> line 870, in test_09_expunge_vm
> id=self.small_virtual_machine.id
> File "/Library/Python/2.7/site-packages/marvin/integration/lib/common.py",
> line 368, in list_virtual_machines
> return(apiclient.listVirtualMachines(cmd))
> File
> "/Library/Python/2.7/site-packages/marvin/cloudstackAPI/cloudstackAPIClient.py",
> line 473, in listVirtualMachines
> response = self.connection.make_request(command, response)
> File "/Library/Python/2.7/site-packages/marvin/cloudstackConnection.py",
> line 174, in make_request
> result = self.make_request_with_auth(commandName, requests)
> File "/Library/Python/2.7/site-packages/marvin/cloudstackConnection.py",
> line 88, in make_request_with_auth
> raise e
> HTTPError: HTTP Error 431: 431
> -------------------- >> begin captured logging << --------------------
> testclient.testcase.TestVMLifeCycle: DEBUG: Expunge VM-ID:
> c78f9972-07c2-4117-8e98-c420db8503df
> testclient.testengine.run: INFO: sending command: destroyVirtualMachine
> {'id': u'c78f9972-07c2-4117-8e98-c420db8503df'}
> testclient.testengine.run: INFO: got response: {
> "destroyvirtualmachineresponse" :
> {"jobid":"5435f360-42d3-42e4-a58d-8edb2fb5340a"}, "cloudstack-version":
> "4.1.0-SNAPSHOT" }
> testclient.testengine.run: INFO: sending command: queryAsyncJobResult
> {'jobid': u'5435f360-42d3-42e4-a58d-8edb2fb5340a'}
> testclient.testengine.run: INFO: got response: {
> "queryasyncjobresultresponse" :
> {"accountid":"a5daff59-c646-4709-8ee8-371f7f9d2348","userid":"d63dd13f-d1cb-4329-9baf-6b59447d0a3a","cmd":"org.apache.cloudstack.api.command.user.vm.DestroyVMCmd","jobstatus":0,"jobprocstatus":0,"jobresultcode":0,"created":"2013-01-03T15:15:43-0800","jobid":"5435f360-42d3-42e4-a58d-8edb2fb5340a"},
> "cloudstack-version": "4.1.0-SNAPSHOT" }
> testclient.testengine.run: INFO: sending command: queryAsyncJobResult
> {'jobid': u'5435f360-42d3-42e4-a58d-8edb2fb5340a'}
> testclient.testengine.run: INFO: got response: {
> "queryasyncjobresultresponse" :
> {"accountid":"a5daff59-c646-4709-8ee8-371f7f9d2348","userid":"d63dd13f-d1cb-4329-9baf-6b59447d0a3a","cmd":"org.apache.cloudstack.api.command.user.vm.DestroyVMCmd","jobstatus":1,"jobprocstatus":0,"jobresultcode":0,"jobresulttype":"object","jobresult":{"virtualmachine":{"id":"c78f9972-07c2-4117-8e98-c420db8503df","name":"c78f9972-07c2-4117-8e98-c420db8503df","account":"test-1IMEO7","domainid":"9da53465-269d-4d1b-ad24-ede114e3a039","domain":"ROOT","created":"2013-01-03T15:13:47-0800","state":"Destroyed","haenable":false,"zoneid":"d32a7f4a-c5d3-4973-bb4c-e2c06876abbe","zonename":"MyZone","templateid":"bd24b5ca-6759-4956-88ff-582f440a3a87","templtename":"tiny
> Linux","templatedisplaytext":"tiny
> Linux","passwordenabled":false,"serviceofferingid":"6de4123b-8fb3-481d-8215-e7caaebdb79d","serviceofferingname":"Small
>
> Instance","cpunumber":1,"cpuspeed":100,"memory":256,"cpuused":"0%","networkkbsread":0,"networkkbswrite":0,"guestosid":"0e7ed9de-98d0-4858-aa45-517e35c0af91","rootdeviceid":0,"rootdevicetype":"ROOT","securitygroup":[{"id":"6f190e4b-6b2a-4a71-a523-b4a1ce60dcbf","name":"default","description":"Default
> Security
> Group","account":"test-1IMEO7","ingressrule":[],"egressrule":[],"tags":[]}],"nic":[{"id":"d8f3bb74-6859-4040-9b29-3ca22c0482f2","networkid":"4b949baa-4e35-453c-b77a-8ecbe55a55cd","netmask":"255.255.255.0","gateway":"192.168.56.1","ipaddress":"192.168.56.240","isolationuri":"ec2://untagged","broadcasturi":"vlan://untagged","traffictype":"Guest","type":"Shared","isdefault":true,"macaddress":"06:82:dc:00:00:84"}],"hypervisor":"XenServer","instancename":"i-4-5-VM","tags":[],"jobstatus":0}},"created":"2013-01-03T15:15:43-0800","jobid":"5435f360-42d3-42e4-a58d-8edb2fb5340a"},
> "cloudstack-version": "4.1.0-SNAPSHOT" }
> testclient.testengine.run: INFO: sending command: listConfigurations {'name':
> 'expunge.delay'}
> testclient.testengine.run: INFO: got response: { "listconfigurationsresponse"
> : { "count":1 ,"configuration" : [
> {"category":"Advanced","name":"expunge.delay","value":"60"} ] },
> "cloudstack-version": "4.1.0-SNAPSHOT" }
> testclient.testengine.run: INFO: sending command: listConfigurations {'name':
> 'expunge.interval'}
> testclient.testengine.run: INFO: got response: { "listconfigurationsresponse"
> : { "count":1 ,"configuration" : [
> {"category":"Advanced","name":"expunge.interval","value":"60"} ] },
> "cloudstack-version": "4.1.0-SNAPSHOT" }
> testclient.testengine.run: INFO: sending command: listVirtualMachines {'id':
> u'c78f9972-07c2-4117-8e98-c420db8503df'}
> testclient.testengine.run: CRITICAL: server returned 431 error code
> --------------------- >> end captured logging << ---------------------
> ======================================================================
> ERROR: test suite for <class
> 'integration.smoke.test_vm_life_cycle.TestVMLifeCycle'>
> ----------------------------------------------------------------------
> Traceback (most recent call last):
> File
> "/Library/Python/2.7/site-packages/nose-1.2.1-py2.7.egg/nose/suite.py", line
> 227, in run
> self.tearDown()
> File
> "/Library/Python/2.7/site-packages/nose-1.2.1-py2.7.egg/nose/suite.py", line
> 350, in tearDown
> self.teardownContext(ancestor)
> File
> "/Library/Python/2.7/site-packages/nose-1.2.1-py2.7.egg/nose/suite.py", line
> 366, in teardownContext
> try_run(context, names)
> File "/Library/Python/2.7/site-packages/nose-1.2.1-py2.7.egg/nose/util.py",
> line 478, in try_run
> return func()
> File
> "/Bhaisaab/Work/apache-cloudstack/test/integration/smoke/test_vm_life_cycle.py",
> line 325, in tearDownClass
> cleanup_resources(cls.api_client, cls._cleanup)
> File "/Library/Python/2.7/site-packages/marvin/integration/lib/utils.py",
> line 106, in cleanup_resources
> obj.delete(api_client)
> File "/Library/Python/2.7/site-packages/marvin/integration/lib/base.py",
> line 1080, in delete
> apiclient.deleteServiceOffering(cmd)
> File
> "/Library/Python/2.7/site-packages/marvin/cloudstackAPI/cloudstackAPIClient.py",
> line 653, in deleteServiceOffering
> response = self.connection.make_request(command, response)
> File "/Library/Python/2.7/site-packages/marvin/cloudstackConnection.py",
> line 174, in make_request
> result = self.make_request_with_auth(commandName, requests)
> File "/Library/Python/2.7/site-packages/marvin/cloudstackConnection.py",
> line 88, in make_request_with_auth
> raise e
> HTTPError: HTTP Error 431: 431
> -------------------- >> begin captured logging << --------------------
> testclient.testengine.run: INFO: sending command: deleteServiceOffering
> {'id': u'6de4123b-8fb3-481d-8215-e7caaebdb79d'}
> testclient.testengine.run: CRITICAL: server returned 431 error code
> --------------------- >> end captured logging << ---------------------
> ----------------------------------------------------------------------
> Ran 7 tests in 317.374s
> FAILED (errors=2)
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira