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