Oved Ourfali created DTACLOUD-327:
-------------------------------------

             Summary: Using EC2 frontend with RHEV-M - problem with actions
                 Key: DTACLOUD-327
                 URL: https://issues.apache.org/jira/browse/DTACLOUD-327
             Project: DeltaCloud
          Issue Type: Bug
          Components: EC2/Frontend, Server
         Environment: Fedora 17, Deltacloud 1.0.3
            Reporter: Oved Ourfali


When performing actions with RHEV-M driver, and EC2 frontend, oVirt returns 
only a status object, and not the original resource, or link to get the updated 
resource.

Thus, in the EC2 frontend, an error 500 is returned, as no ID is found in the 
oVirt returned object, which causes a failure.

Several solutions may apply here (until a more suitable resource is returned by 
oVirt):
1. Returning the original resource.
2. Returning a new response object, with the status returned by oVirt, and in 
addition the link to the resource we did the action on.

Stack trace:

127.0.0.1 - - [24/Sep/2012 14:06:37] "GET 
/ec2/?Action=StartInstances&InstanceId.1=f7519f1b-ecf7-4f32-adb8-3dacfc7c1a59 
HTTP/1.1" 500 30 0.3564
NoMethodError - undefined method `id' for nil:NilClass:
        
/autohome/oourfali/git/deltacloud/server/lib/ec2/views/instance_action.haml:3:in
 `block in render'
        /usr/local/share/gems/gems/haml-3.1.7/lib/haml/engine.rb:191:in `eval'
        /usr/local/share/gems/gems/haml-3.1.7/lib/haml/engine.rb:191:in `render'
        /autohome/oourfali/git/deltacloud/server/lib/ec2/query_parser.rb:101:in 
`render'
        
/autohome/oourfali/git/deltacloud/server/lib/ec2/views/stop_instances.haml:1:in 
`block in render'
        /usr/local/share/gems/gems/haml-3.1.7/lib/haml/engine.rb:191:in `eval'
        /usr/local/share/gems/gems/haml-3.1.7/lib/haml/engine.rb:191:in `render'
        /autohome/oourfali/git/deltacloud/server/lib/ec2/query_parser.rb:101:in 
`render'
        layout:3:in `block in render'
        /usr/local/share/gems/gems/haml-3.1.7/lib/haml/engine.rb:191:in `eval'
        /usr/local/share/gems/gems/haml-3.1.7/lib/haml/engine.rb:191:in `render'
        /autohome/oourfali/git/deltacloud/server/lib/ec2/query_parser.rb:86:in 
`parse'
        /autohome/oourfali/git/deltacloud/server/lib/ec2/query_parser.rb:68:in 
`to_xml'
        /autohome/oourfali/git/deltacloud/server/lib/ec2/server.rb:68:in `block 
in <class:API>'
        /usr/local/share/gems/gems/sinatra-1.3.3/lib/sinatra/base.rb:1265:in 
`call'
        /usr/local/share/gems/gems/sinatra-1.3.3/lib/sinatra/base.rb:1265:in 
`block in compile!'
        /usr/local/share/gems/gems/sinatra-1.3.3/lib/sinatra/base.rb:835:in `[]'
        /usr/local/share/gems/gems/sinatra-1.3.3/lib/sinatra/base.rb:835:in 
`block (3 levels) in route!'
        /usr/local/share/gems/gems/sinatra-1.3.3/lib/sinatra/base.rb:851:in 
`route_eval'
        /usr/local/share/gems/gems/sinatra-1.3.3/lib/sinatra/base.rb:835:in 
`block (2 levels) in route!'
        /usr/local/share/gems/gems/sinatra-1.3.3/lib/sinatra/base.rb:872:in 
`block in process_route'
        /usr/local/share/gems/gems/sinatra-1.3.3/lib/sinatra/base.rb:870:in 
`catch'
        /usr/local/share/gems/gems/sinatra-1.3.3/lib/sinatra/base.rb:870:in 
`process_route'
        /usr/local/share/gems/gems/sinatra-1.3.3/lib/sinatra/base.rb:834:in 
`block in route!'
        /usr/local/share/gems/gems/sinatra-1.3.3/lib/sinatra/base.rb:833:in 
`each'
        /usr/local/share/gems/gems/sinatra-1.3.3/lib/sinatra/base.rb:833:in 
`route!'
        /usr/local/share/gems/gems/sinatra-1.3.3/lib/sinatra/base.rb:936:in 
`dispatch!'
        /usr/local/share/gems/gems/sinatra-1.3.3/lib/sinatra/base.rb:769:in 
`block in call!'
        /usr/local/share/gems/gems/sinatra-1.3.3/lib/sinatra/base.rb:921:in 
`block in invoke'
        /usr/local/share/gems/gems/sinatra-1.3.3/lib/sinatra/base.rb:921:in 
`catch'
        /usr/local/share/gems/gems/sinatra-1.3.3/lib/sinatra/base.rb:921:in 
`invoke'
        /usr/local/share/gems/gems/sinatra-1.3.3/lib/sinatra/base.rb:769:in 
`call!'
        /usr/local/share/gems/gems/sinatra-1.3.3/lib/sinatra/base.rb:755:in 
`call'
        
/autohome/oourfali/git/deltacloud/server/lib/sinatra/rack_logger.rb:71:in `call'
        /autohome/oourfali/git/deltacloud/server/lib/sinatra/rack_etag.rb:41:in 
`call'
        
/usr/local/share/gems/gems/rack-protection-1.2.0/lib/rack/protection/xss_header.rb:22:in
 `call'
        
/usr/local/share/gems/gems/rack-protection-1.2.0/lib/rack/protection/path_traversal.rb:16:in
 `call'
        
/usr/local/share/gems/gems/rack-protection-1.2.0/lib/rack/protection/json_csrf.rb:17:in
 `call'
        
/usr/local/share/gems/gems/rack-protection-1.2.0/lib/rack/protection/base.rb:47:in
 `call'
        
/usr/local/share/gems/gems/rack-protection-1.2.0/lib/rack/protection/xss_header.rb:22:in
 `call'
        /usr/local/share/gems/gems/rack-1.4.1/lib/rack/nulllogger.rb:9:in `call'
        /usr/local/share/gems/gems/rack-1.4.1/lib/rack/head.rb:9:in `call'
        /usr/local/share/gems/gems/sinatra-1.3.3/lib/sinatra/base.rb:99:in 
`call'
        /usr/local/share/gems/gems/sinatra-1.3.3/lib/sinatra/base.rb:1389:in 
`block in call'
        /usr/local/share/gems/gems/sinatra-1.3.3/lib/sinatra/base.rb:1471:in 
`synchronize'
        /usr/local/share/gems/gems/sinatra-1.3.3/lib/sinatra/base.rb:1389:in 
`call'
        /usr/local/share/gems/gems/rack-1.4.1/lib/rack/urlmap.rb:64:in `block 
in call'
        /usr/local/share/gems/gems/rack-1.4.1/lib/rack/urlmap.rb:49:in `each'
        /usr/local/share/gems/gems/rack-1.4.1/lib/rack/urlmap.rb:49:in `call'
        
/autohome/oourfali/git/deltacloud/server/lib/sinatra/rack_matrix_params.rb:104:in
 `call'
        /usr/local/share/gems/gems/rack-1.4.1/lib/rack/builder.rb:134:in `call'
        /usr/local/share/gems/gems/thin-1.4.1/lib/thin/connection.rb:80:in 
`block in pre_process'
        /usr/local/share/gems/gems/thin-1.4.1/lib/thin/connection.rb:78:in 
`catch'
        /usr/local/share/gems/gems/thin-1.4.1/lib/thin/connection.rb:78:in 
`pre_process'
        
/usr/local/share/gems/gems/eventmachine-0.12.10/lib/eventmachine.rb:1060:in 
`call'
        
/usr/local/share/gems/gems/eventmachine-0.12.10/lib/eventmachine.rb:1060:in 
`block in spawn_threadpool'
127.0.0.1 - - [24/Sep/2012 14:07:10] "GET 
/ec2/?Action=StopInstances&InstanceId.1=f7519f1b-ecf7-4f32-adb8-3dacfc7c1a59 
HTTP/1.1" 500 30 5.6231


--
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