[ 
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 <bhais...@apache.org>
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 <bhais...@apache.org>
                
> 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

Reply via email to