Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Fixed
-
None
-
Fedora 17, Deltacloud 1.0.3
Description
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