Hide Forgot
Description of problem: Completed in 0.000000 | 0.000000 | 200 | application/xml | http://localhost:3002/api /usr/bin/deltacloudd[28156]: Processing /api (for 127.0.0.1 at Wed Oct 05 15:47:17 -0400 2011) [GET] [VSphere] /usr/bin/deltacloudd[28156]: Parameters: {} /usr/bin/deltacloudd[28156]: Authentication: Basic /usr/bin/deltacloudd[28156]: Server: thin 1.2.11 codename Bat-Shit Crazy /usr/bin/deltacloudd[28156]: Accept: application/xml /usr/bin/deltacloudd[28156]: Completed in 0.000000 | 0.000000 | 200 | application/xml | http://localhost:3002/api /usr/bin/deltacloudd[28156]: Processing /api/instances (for 127.0.0.1 at Wed Oct 05 15:47:17 -0400 2011) [POST] [VSphere] /usr/bin/deltacloudd[28156]: Parameters: {"realm_id"=>"datastore1", "name"=>"dctest01-testVsphere", "hwp_memory"=>"512", "image_id"=>"factory-image-1ad2930a-74e0-4556-b0bd-caafd5d76cf4", "keyname"=>"", "hwp_id"=>"default", "hwp_cpu"=>"1.0", "hwp_storage"=>""} /usr/bin/deltacloudd[28156]: Provider: 10.16.120.136 /usr/bin/deltacloudd[28156]: Authentication: Basic /usr/bin/deltacloudd[28156]: Server: thin 1.2.11 codename Bat-Shit Crazy /usr/bin/deltacloudd[28156]: Accept: application/xml /usr/bin/deltacloudd[28156]: RbVmomi::Fault:InvalidRequest: Error formatting number /usr/lib/ruby/gems/1.8/gems/rbvmomi-1.2.3/lib/rbvmomi/connection.rb:47:in `parse_response' /usr/lib/ruby/gems/1.8/gems/rbvmomi-1.2.3/lib/rbvmomi/connection.rb:71:in `call' /usr/lib/ruby/gems/1.8/gems/rbvmomi-1.2.3/lib/rbvmomi/basic_types.rb:182:in `_call' /usr/lib/ruby/gems/1.8/gems/rbvmomi-1.2.3/lib/rbvmomi/basic_types.rb:70:in `CloneVM_Task' /usr/share/deltacloud-core/bin/../lib/deltacloud/drivers/vsphere/vsphere_driver.rb:285:in `create_instance' /usr/share/deltacloud-core/bin/../lib/deltacloud/base_driver/exceptions.rb:151:in `call' /usr/share/deltacloud-core/bin/../lib/deltacloud/base_driver/exceptions.rb:151:in `safely' /usr/share/deltacloud-core/bin/../lib/deltacloud/drivers/vsphere/vsphere_driver.rb:207:in `create_instance' /usr/share/deltacloud-core/bin/../server.rb:450 /usr/share/deltacloud-core/bin/../lib/sinatra/rabbit.rb:125:in `instance_eval' /usr/share/deltacloud-core/bin/../lib/sinatra/rabbit.rb:125:in `POST /api/instances' /usr/lib/ruby/gems/1.8/gems/sinatra-1.1.2/lib/sinatra/base.rb:1057:in `call' /usr/lib/ruby/gems/1.8/gems/sinatra-1.1.2/lib/sinatra/base.rb:1057:in `compile!' /usr/lib/ruby/gems/1.8/gems/sinatra-1.1.2/lib/sinatra/base.rb:643:in `instance_eval' /usr/lib/ruby/gems/1.8/gems/sinatra-1.1.2/lib/sinatra/base.rb:643:in `route_eval' /usr/lib/ruby/gems/1.8/gems/sinatra-1.1.2/lib/sinatra/base.rb:627:in `route!' /usr/lib/ruby/gems/1.8/gems/sinatra-1.1.2/lib/sinatra/base.rb:675:in `process_route' /usr/lib/ruby/gems/1.8/gems/sinatra-1.1.2/lib/sinatra/base.rb:672:in `catch' /usr/lib/ruby/gems/1.8/gems/sinatra-1.1.2/lib/sinatra/base.rb:672:in `process_route' /usr/lib/ruby/gems/1.8/gems/sinatra-1.1.2/lib/sinatra/base.rb:626:in `route!' /usr/lib/ruby/gems/1.8/gems/sinatra-1.1.2/lib/sinatra/base.rb:625:in `each' /usr/lib/ruby/gems/1.8/gems/sinatra-1.1.2/lib/sinatra/base.rb:625:in `route!' /usr/lib/ruby/gems/1.8/gems/sinatra-1.1.2/lib/sinatra/base.rb:760:in `dispatch!' /usr/lib/ruby/gems/1.8/gems/sinatra-1.1.2/lib/sinatra/base.rb:553:in `call!' /usr/lib/ruby/gems/1.8/gems/sinatra-1.1.2/lib/sinatra/base.rb:725:in `instance_eval' /usr/lib/ruby/gems/1.8/gems/sinatra-1.1.2/lib/sinatra/base.rb:725:in `invoke' /usr/lib/ruby/gems/1.8/gems/sinatra-1.1.2/lib/sinatra/base.rb:725:in `catch' /usr/lib/ruby/gems/1.8/gems/sinatra-1.1.2/lib/sinatra/base.rb:725:in `invoke' /usr/lib/ruby/gems/1.8/gems/sinatra-1.1.2/lib/sinatra/base.rb:553:in `call!' /usr/lib/ruby/gems/1.8/gems/sinatra-1.1.2/lib/sinatra/base.rb:538:in `call' /usr/share/deltacloud-core/bin/../lib/sinatra/rack_syslog.rb:48:in `call' /usr/share/deltacloud-core/bin/../lib/sinatra/rack_date.rb:31:in `call' /usr/share/deltacloud-core/bin/../lib/sinatra/rack_accept.rb:149:in `call' /usr/share/deltacloud-core/bin/../lib/sinatra/rack_driver_select.rb:45:in `call' /usr/share/deltacloud-core/bin/../lib/sinatra/rack_matrix_params.rb:102:in `call' /usr/share/deltacloud-core/bin/../lib/sinatra/rack_runtime.rb:36:in `call' /usr/share/deltacloud-core/bin/../lib/sinatra/rack_etag.rb:41:in `call' /usr/lib/ruby/gems/1.8/gems/rack-accept-0.4.3/lib/rack/accept/context.rb:22:in `call' /usr/lib/ruby/gems/1.8/gems/rack-1.3.0/lib/rack/methodoverride.rb:24:in `call' /usr/lib/ruby/gems/1.8/gems/sinatra-1.1.2/lib/sinatra/base.rb:1167:in `call' /usr/lib/ruby/gems/1.8/gems/sinatra-1.1.2/lib/sinatra/base.rb:1193:in `synchronize' /usr/lib/ruby/gems/1.8/gems/sinatra-1.1.2/lib/sinatra/base.rb:1167:in `call' /usr/lib/ruby/gems/1.8/gems/thin-1.2.11/lib/thin/connection.rb:84:in `pre_process' /usr/lib/ruby/gems/1.8/gems/thin-1.2.11/lib/thin/connection.rb:82:in `catch' /usr/lib/ruby/gems/1.8/gems/thin-1.2.11/lib/thin/connection.rb:82:in `pre_process' /usr/lib/ruby/gems/1.8/gems/eventmachine-0.12.10/lib/eventmachine.rb:1060:in `call' /usr/lib/ruby/gems/1.8/gems/eventmachine-0.12.10/lib/eventmachine.rb:1060:in `spawn_threadpool' /usr/lib/ruby/gems/1.8/gems/eventmachine-0.12.10/lib/eventmachine.rb:1057:in `initialize' /usr/lib/ruby/gems/1.8/gems/eventmachine-0.12.10/lib/eventmachine.rb:1057:in `new' /usr/lib/ruby/gems/1.8/gems/eventmachine-0.12.10/lib/eventmachine.rb:1057:in `spawn_threadpool' /usr/lib/ruby/gems/1.8/gems/eventmachine-0.12.10/lib/eventmachine.rb:1049:in `defer' /usr/lib/ruby/gems/1.8/gems/thin-1.2.11/lib/thin/connection.rb:54:in `process' /usr/lib/ruby/gems/1.8/gems/thin-1.2.11/lib/thin/connection.rb:42:in `receive_data' /usr/lib/ruby/gems/1.8/gems/eventmachine-0.12.10/lib/eventmachine.rb:256:in `run_machine' /usr/lib/ruby/gems/1.8/gems/eventmachine-0.12.10/lib/eventmachine.rb:256:in `run' /usr/lib/ruby/gems/1.8/gems/thin-1.2.11/lib/thin/backends/base.rb:61:in `start' /usr/lib/ruby/gems/1.8/gems/thin-1.2.11/lib/thin/server.rb:159:in `start' /usr/lib/ruby/gems/1.8/gems/thin-1.2.11/lib/thin/controllers/controller.rb:86:in `start' /usr/lib/ruby/gems/1.8/gems/thin-1.2.11/lib/thin/runner.rb:185:in `send' /usr/lib/ruby/gems/1.8/gems/thin-1.2.11/lib/thin/runner.rb:185:in `run_command' /usr/lib/ruby/gems/1.8/gems/thin-1.2.11/lib/thin/runner.rb:151:in `run!' /usr/share/deltacloud-core/bin/deltacloudd:223 /usr/bin/deltacloudd:5:in `load' /usr/bin/deltacloudd:5 /usr/bin/deltacloudd[28156]: Completed in 0.000000 | 0.000000 | 502 | application/xml | http://localhost:3002/api/instances /usr/bin/deltacloudd[28156]: 127.0.0.1 - - [05/Oct/2011 15:47:20] "POST /api/instances HTTP/1.1" 502 216 2.5964 [root@unused ~]# rpm -qa | grep deltacloud rubygem-deltacloud-client-0.4.0-3.fc15.noarch deltacloud-core-ec2-0.5.0-0.1.1317167702git.noarch deltacloud-core-0.5.0-0.1.1317167702git.noarch deltacloud-core-vsphere-0.5.0-0.1.1317167702git.noarch deltacloud-core-rhevm-0.5.0-0.1.1317167702git.noarch [root@unused ~]# rpm -qa | grep aeolus aeolus-configure-2.0.2-4.20111004160858gitaf7e59a.fc15.noarch rubygem-aeolus-image-0.1.0-3.20111003170706git8f23238.fc15.noarch aeolus-conductor-0.4.0-0.20111004192348git2cf5ee6.fc15.noarch aeolus-conductor-doc-0.4.0-0.20111004192348git2cf5ee6.fc15.noarch aeolus-all-0.4.0-0.20111004192348git2cf5ee6.fc15.noarch rubygem-aeolus-cli-0.1.0-3.20111003133323git9451323.fc15.noarch aeolus-conductor-daemons-0.4.0-0.20111004192348git2cf5ee6.fc15.noarch
For Vsphere I'm not able to add a entry for storage and have the hwp match.. so I'm kind of stuck
The issue is that conductor passes in '1.0' for hwp_cpu where RbVmomi wants an integer, i.e. '1'
Filed https://issues.apache.org/jira/browse/DTACLOUD-86 against DC to make sure we do better validation of hwp_cpu in DC and produce a better error message
I've spent a bit trying to reproduce this bug or find where it's happening on the Conductor side to no avail. If you hit a reproducer, can you let me (or one of my compatriots) know and set us up with access?
The problem is on conductor side: if backend hw profile property is of type 'range', let's say 1-4 and frontend end hw profile property is matched in this range, but is of type float ('1.0'), this float value is not converted to integer but is passed as float to dc api
About the 'hwp_storage': This parameter could be safely ignored since DC is not processing it. In VSphere you can't define custom storage size. Storage is 'inherited' from the template you're using for clone. Anyway my 50cents for removing this parameter completely (it's better to *not* send it when it's blank).
(In reply to comment #3) > Filed https://issues.apache.org/jira/browse/DTACLOUD-86 against DC to make sure > we do better validation of hwp_cpu in DC and produce a better error message http://mail-archives.apache.org/mod_mbox/incubator-deltacloud-dev/201110.mbox/%3C1317900479-98208-1-git-send-email-mfojtik@redhat.com%3E
For Conductor, I've posted https://fedorahosted.org/pipermail/aeolus-devel/2011-October/005446.html which should keep us from sending these values in the first place. (At least in this specific case.)
Whoops, I failed to update this. Fixed with this commit: commit 1f3f5f1e81d5964d1251bba51d42b639b692a1ae Author: Matt Wagner <matt.wagner> Date: Thu Oct 6 11:23:29 2011 -0400 generate_override_property_value returns integers for ranged values Resolves https://bugzilla.redhat.com/show_bug.cgi?id=743718
Vsphere deployables started successfully even if the hwp_cpu value is float. I changed the hwp_cpu value to 1.0 and deployment was successful without any error. This float value is converted to integer and is passed to dc api. [root@dell-pe1950-01 ~]# deltacloudd -i mock -p 3002 -V Processing /api/instances (for 127.0.0.1 at Wed Nov 02 05:03:00 -0400 2011) [POST] [VSphere] Parameters: {"name"=>"vmware4-vmware", "image_id"=>"factory-image-d7acd937-a3ec-4abd-9178-10341ae2c945", "realm_id"=>"datastore1", "hwp_memory"=>"512", "keyname"=>"", "hwp_id"=>"default", "hwp_cpu"=>"1", "hwp_storage"=>"", "user_data"=>""} Provider: 10.16.120.136 Authentication: Basic Server: thin 1.2.11 codename Bat-Shit Crazy Accept: application/xml verified on: [root@dell-pe1950-01 ~]# rpm -qa | grep aeolus aeolus-conductor-0.6.0-0.20111029030732git7410602.el6.noarch rubygem-ZenTest-4.3.3-2.aeolus.el6.noarch aeolus-all-0.6.0-0.20111029030732git7410602.el6.noarch rubygem-aeolus-cli-0.1.0-3.20111028152758git7063136.el6.noarch rubygem-aeolus-image-0.1.0-4.20111024205454git6b2b696.el6.noarch aeolus-conductor-daemons-0.6.0-0.20111029030732git7410602.el6.noarch aeolus-configure-2.3.0-0.20111028220920gitf01b051.el6.noarch rubygem-rack-mount-0.7.1-3.aeolus.el6.noarch aeolus-conductor-doc-0.6.0-0.20111029030732git7410602.el6.noarch rubygem-arel-2.0.10-0.aeolus.el6.noarch
Please don't use Float as CPU property. In newer version of Deltacloud API (starting from 0.4.1) we're doing a more strict validation of parameters and using Float for 'hwp_cpu' will lead to validation error (DC will return code '400').
Hi Michal, Indeed, the use of a float was a bug. My patch fixed it up to use an integer. (Although it's already in 'verified' state, I'm re-assigning this bug to be public for posterity since there's no reason it should be private.)
Since the problem described in this bug report should be resolved in a recent advisory, it has been closed with a resolution of ERRATA. For information on the advisory, and where to find the updated files, follow the link below. If the solution does not work for you, open a new bug report. http://rhn.redhat.com/errata/RHEA-2012-0587.html