[
https://issues.apache.org/jira/browse/DTACLOUD-41?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Michal Fojtik resolved DTACLOUD-41.
-----------------------------------
Resolution: Fixed
Exception was not captured by our exception handling system. Putting that raise
to safely..end block did that trick:
diff --git a/server/lib/deltacloud/drivers/rhevm/rhevm_driver.rb
b/server/lib/deltacloud/drivers/rhevm/rhevm_driver.rb
index 8a0764c..dfe77b3 100644
--- a/server/lib/deltacloud/drivers/rhevm/rhevm_driver.rb
+++ b/server/lib/deltacloud/drivers/rhevm/rhevm_driver.rb
@@ -177,10 +177,10 @@ class RHEVMDriver < Deltacloud::BaseDriver
def create_instance(credentials, image_id, opts={})
client = new_client(credentials)
params = {}
- if opts[:name]
- raise "Parameter name must be #{USER_NAME_MAX} characters or less" if
opts[:name].length > USER_NAME_MAX
- end
safely do
+ if opts[:name]
+ raise "Parameter name must be #{USER_NAME_MAX} characters or less" if
opts[:name].length > USER_NAME_MAX
+ end
params[:name] = opts[:name]
params[:template] = opts[:image_id]
params[:cluster] = opts[:realm_id] if opts[:realm_id]
@@ -327,10 +327,6 @@ class RHEVMDriver < Deltacloud::BaseDriver
exceptions do
- on /Bad Request/ do
- status 400
- end
-
on /Unauthorized/ do
status 401
end
@@ -351,7 +347,7 @@ class RHEVMDriver < Deltacloud::BaseDriver
status 500
end
- on /Parameter name/ do
+ on /(Bad Request|Parameter name)/ do
status 400
end
Current results:
Processing /api/instances (for 127.0.0.1 at 2012-03-08 13:23:19 +0100) [POST]
[RHEVM]
Parameters: {"image_id"=>"73cde5ef-1759-4b7a-9dd8-6e955fa9efa0",
"name"=>"iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii",
"user_data"=>"", "hwp_id"=>"SERVER", "hwp_cpu"=>"1", "hwp_memory"=>"512",
"hwp_storage"=>"1", "realm_id"=>"3c8af388-cff6-11e0-9267-52540013f702"}
Provider: https://x-x.x.x.x.x.com:8443/api;645e425e-66fe-4ac9-8874-537bd10ef08d
Authentication: Basic
Server: thin 1.3.1 codename Triple Espresso
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
RuntimeError:Parameter name must be 50 characters or less
/Users/mfojtik/code/core/server/lib/deltacloud/drivers/rhevm/rhevm_driver.rb:182:in
`block in create_instance'
/Users/mfojtik/code/core/server/lib/deltacloud/base_driver/exceptions.rb:173:in
`call'
/Users/mfojtik/code/core/server/lib/deltacloud/base_driver/exceptions.rb:173:in
`safely'
/Users/mfojtik/code/core/server/lib/deltacloud/drivers/rhevm/rhevm_driver.rb:180:in
`create_instance'
/Users/mfojtik/code/core/server/lib/deltacloud/server.rb:480:in `block (3
levels) in <top (required)>'
/Users/mfojtik/code/core/server/lib/sinatra/rabbit.rb:125:in `instance_eval'
/Users/mfojtik/code/core/server/lib/sinatra/rabbit.rb:125:in `block in control'
/Users/mfojtik/.rvm/gems/ruby-1.9.3-p125/gems/sinatra-1.3.2/lib/sinatra/base.rb:1212:in
`call'
/Users/mfojtik/.rvm/gems/ruby-1.9.3-p125/gems/sinatra-1.3.2/lib/sinatra/base.rb:1212:in
`block in compile!'
/Users/mfojtik/.rvm/gems/ruby-1.9.3-p125/gems/sinatra-1.3.2/lib/sinatra/base.rb:785:in
`[]'
/Users/mfojtik/.rvm/gems/ruby-1.9.3-p125/gems/sinatra-1.3.2/lib/sinatra/base.rb:785:in
`block (3 levels) in route!'
Completed in 0.000000 | 0.000000 | 400 | | http://localhost:3009/api/instances
Pushed in d488054051d98699a7f43669c5ed2e97b3173688
> RHEVM driver returns 500 Internal Server Error if a instance name has been
> entered > 50chars
> --------------------------------------------------------------------------------------------
>
> Key: DTACLOUD-41
> URL: https://issues.apache.org/jira/browse/DTACLOUD-41
> Project: DeltaCloud
> Issue Type: Bug
> Components: Server
> Reporter: Martyn Taylor
> Assignee: Michal Fojtik
> Attachments: error-message.png
>
> Original Estimate: 24h
> Remaining Estimate: 24h
>
> On an instance create request for server using RHEV-M backend, when trying to
> create with an instance name > 50 chars. The Server returns an Internal
> Server Error HTTP 500. This is because the RHEV-M backend does not support
> Instances names of this length.
> Some validation Checks should be applied before requests are sent to the
> RHEV-M backend to make sure that these errors do not occur and to make sure a
> relevant Error message is returned to the client
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira