Bug 754744

Summary: launching audrey enabled rhevm instance returns nil:NilClass error
Product: [Retired] CloudForms Cloud Engine Reporter: dgao
Component: deltacloud-coreAssignee: Michal Fojtik <mfojtik>
Status: CLOSED CURRENTRELEASE QA Contact: wes hayutin <whayutin>
Severity: high Docs Contact:
Priority: unspecified    
Version: 1.0.0CC: akarol, deltacloud-maint, dgao, morazi, rananda
Target Milestone: rc   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: deltacloud-core-0.4.1-8 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2012-08-30 17:14:55 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 754250    
Attachments:
Description Flags
.
none
rhevm_working none

Description dgao 2011-11-17 16:00:59 UTC
dcloud version: 3.0.0.0
rpm version: deltacloud-core-rhevm-0.4.1-7.el6.noarch

when launching a rhevm instance, this error shows up in conductor (see screenshot)

deltacloud-core/mock.log shows:

thin server (localhost:3002) [deltacloud-mock][10965]: [NO HANDLED] NoMethodError: undefined method `[]' for nil:NilClass
/usr/share/deltacloud-core/bin/../lib/deltacloud/drivers/rhevm/rhevm_client.rb:102:in `api_version?'

upon further investigation, the problematic line might be

"(result_xml/'/api/system_version').first[:major].strip == major" << This is trying to fetch the url api/system_version, but system_version no longer exists, so there's an inconsistency.

Comment 1 dgao 2011-11-17 16:01:27 UTC
Created attachment 534224 [details]
.

Comment 2 wes hayutin 2011-11-17 17:07:30 UTC
only happens to templates w/ audrey

Comment 3 dgao 2011-11-17 19:04:29 UTC
Looks like this bug is caused by a combination of userdata (from <services> in deployable.xml and lack of RHEVM hook for audrey and a change in the api. 


<deployable name="application_stack">
  <description>Deployable For JBoss Application Stack</description>
  <assemblies>
    <!-- when a deployable is launched, each assembly defition in this file
         will map to a launched instance -->
    <assembly name="Proxy Server" hwp="hwp1">
      <!-- this image element references an image that exists in the image
           warehouse
           images get into the image warehouse either by building the
           image from a template XML file, or by importing from an
           external source (such as an Amazon AMI) -->
      <image id="046069e0-5579-4ac1-b9ed-8ceacde33be8"/>
      <services>
        <service name="proxy1">
          <!-- - this is a URL that the Audrey Configuration Server must be
               able to access, and points to a script that is meant to
               setup the proxy
               - the user will be responsible for authoring and providing
               this script -->
          <executable url="https://www.aeolusproject.org/redmine/attachments/download/169/start_simple"/>
          <!-- - the parameters that are fed into the "proxy_setup_script"
               above are identified here in the "services" section
               - this is a bit clunky and will likely change -->
          <parameters>
            <!-- only scalar parameter types are going to be supported
                 initially -->
            <parameter name="proxy_server_1_param_1" type="scalar"/>
            <parameter name="proxy_server_1_param_2" type="scalar"/>
            <parameter name="proxy_server_1_param_3" type="scalar">
            </parameter>
          </parameters>
        </service>
        <service name="proxy2">
          <!-- - this is a URL that the Audrey Configuration Server must be
               able to access, and points to a script that is meant to
               setup the proxy
               - the user will be responsible for authoring and providing
               this script -->
          <executable url="https://www.aeolusproject.org/redmine/attachments/download/169/start_simple"/>
          <!-- - the parameters that are fed into the "proxy_setup_script"
               above are identified here in the "services" section
               - this is a bit clunky and will likely change -->
          <parameters>
            <!-- only scalar parameter types are going to be supported
                 initially -->
            <parameter name="proxy_server_1_param_1" type="scalar"/>
            <parameter name="proxy_server_1_param_2" type="scalar"/>
          </parameters>
        </service>
      </services>
      <!-- the items listed under the "returns" element are values that
           are collected by the launched guest and returned to the
           configuration server
           the values that are returned to the configuration server can be
           shared with other launched instances in this deployable -->
      <returns>
        <return name="hostname"/>
      </returns>
    </assembly>
  </assemblies>
</deployable>

Comment 4 dgao 2011-11-17 19:09:31 UTC
thin server (localhost:3002) [deltacloud-mock][28633]: Server: thin 1.2.11 codename Bat-Shit Crazy
thin server (localhost:3002) [deltacloud-mock][28633]: Accept: application/xml
thin server (localhost:3002) [deltacloud-mock][28633]: [NO HANDLED] NoMethodError: undefined method `[]' for nil:NilClass
/usr/share/deltacloud-core/bin/../lib/deltacloud/drivers/rhevm/rhevm_client.rb:102:in `api_version?'
/usr/lib/ruby/gems/1.8/gems/nokogiri-1.4.3.1/lib/nokogiri/xml/builder.rb:341:in `send'
/usr/lib/ruby/gems/1.8/gems/nokogiri-1.4.3.1/lib/nokogiri/xml/builder.rb:341:in `method_missing'
/usr/share/deltacloud-core/bin/../lib/deltacloud/drivers/rhevm/rhevm_client.rb:128:in `create_vm'
/usr/lib/ruby/gems/1.8/gems/nokogiri-1.4.3.1/lib/nokogiri/xml/builder.rb:364:in `instance_eval'
/usr/lib/ruby/gems/1.8/gems/nokogiri-1.4.3.1/lib/nokogiri/xml/builder.rb:364:in `insert'
/usr/lib/ruby/gems/1.8/gems/nokogiri-1.4.3.1/lib/nokogiri/xml/builder.rb:350:in `method_missing'
/usr/share/deltacloud-core/bin/../lib/deltacloud/drivers/rhevm/rhevm_client.rb:118:in `create_vm'
/usr/lib/ruby/gems/1.8/gems/nokogiri-1.4.3.1/lib/nokogiri/xml/builder.rb:291:in `instance_eval'
/usr/lib/ruby/gems/1.8/gems/nokogiri-1.4.3.1/lib/nokogiri/xml/builder.rb:291:in `initialize'
/usr/share/deltacloud-core/bin/../lib/deltacloud/drivers/rhevm/rhevm_client.rb:117:in `new'
/usr/share/deltacloud-core/bin/../lib/deltacloud/drivers/rhevm/rhevm_client.rb:117:in `create_vm'
/usr/share/deltacloud-core/bin/../lib/deltacloud/drivers/rhevm/rhevm_driver.rb:199: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/rhevm/rhevm_driver.rb:190: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.2.6/lib/sinatra/base.rb:1151:in `call'
/usr/lib/ruby/gems/1.8/gems/sinatra-1.2.6/lib/sinatra/base.rb:1151:in `compile!'
/usr/lib/ruby/gems/1.8/gems/sinatra-1.2.6/lib/sinatra/base.rb:724:in `instance_eval'
/usr/lib/ruby/gems/1.8/gems/sinatra-1.2.6/lib/sinatra/base.rb:724:in `route_eval'
/usr/lib/ruby/gems/1.8/gems/sinatra-1.2.6/lib/sinatra/base.rb:708:in `route!'
/usr/lib/ruby/gems/1.8/gems/sinatra-1.2.6/lib/sinatra/base.rb:758:in `process_route'
/usr/lib/ruby/gems/1.8/gems/sinatra-1.2.6/lib/sinatra/base.rb:755:in `catch'
/usr/lib/ruby/gems/1.8/gems/sinatra-1.2.6/lib/sinatra/base.rb:755:in `process_route'
/usr/lib/ruby/gems/1.8/gems/sinatra-1.2.6/lib/sinatra/base.rb:707:in `route!'
/usr/lib/ruby/gems/1.8/gems/sinatra-1.2.6/lib/sinatra/base.rb:706:in `each'
/usr/lib/ruby/gems/1.8/gems/sinatra-1.2.6/lib/sinatra/base.rb:706:in `route!'
/usr/lib/ruby/gems/1.8/gems/sinatra-1.2.6/lib/sinatra/base.rb:843:in `dispatch!'
/usr/lib/ruby/gems/1.8/gems/sinatra-1.2.6/lib/sinatra/base.rb:644:in `call!'
/usr/lib/ruby/gems/1.8/gems/sinatra-1.2.6/lib/sinatra/base.rb:808:in `instance_eval'
/usr/lib/ruby/gems/1.8/gems/sinatra-1.2.6/lib/sinatra/base.rb:808:in `invoke'
/usr/lib/ruby/gems/1.8/gems/sinatra-1.2.6/lib/sinatra/base.rb:808:in `catch'
/usr/lib/ruby/gems/1.8/gems/sinatra-1.2.6/lib/sinatra/base.rb:808:in `invoke'
/usr/lib/ruby/gems/1.8/gems/sinatra-1.2.6/lib/sinatra/base.rb:644:in `call!'
/usr/lib/ruby/gems/1.8/gems/sinatra-1.2.6/lib/sinatra/base.rb:629: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/lib/ruby/gems/1.8/gems/rack-1.3.0/lib/rack/head.rb:9: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/head.rb:9: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.2.6/lib/sinatra/base.rb:1272:in `call'
/usr/lib/ruby/gems/1.8/gems/sinatra-1.2.6/lib/sinatra/base.rb:1303:in `synchronize'
/usr/lib/ruby/gems/1.8/gems/sinatra-1.2.6/lib/sinatra/base.rb:1272: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:226
/usr/bin/deltacloudd:5:in `load'
/usr/bin/deltacloudd:5

Comment 5 dgao 2011-11-17 23:37:11 UTC
Created attachment 534327 [details]
rhevm_working

.

Comment 6 dgao 2011-11-17 23:38:04 UTC
verified according to attached screenshot and updated deltacloud

[root@intel-s3ea2-03 html]# rpm -qa | egrep "aeolus|deltacloud"
deltacloud-core-ec2-0.4.1-8.el6.noarch
rubygem-ZenTest-4.3.3-2.aeolus.el6.noarch
aeolus-conductor-doc-0.6.0-3.el6.noarch
aeolus-all-0.6.0-3.el6.noarch
rubygem-deltacloud-client-0.4.0-3.el6.noarch
rubygem-rack-mount-0.7.1-3.aeolus.el6.noarch
rubygem-arel-2.0.10-0.aeolus.el6.noarch
deltacloud-core-vsphere-0.4.1-8.el6.noarch
rubygem-aeolus-cli-0.1.0-4.el6.noarch
deltacloud-core-0.4.1-8.el6.noarch
rubygem-aeolus-image-0.1.0-6.el6.noarch
aeolus-configure-2.3.0-1.el6.noarch
aeolus-conductor-daemons-0.6.0-3.el6.noarch
aeolus-conductor-0.6.0-3.el6.noarch
deltacloud-core-rhevm-0.4.1-8.el6.noarch

Comment 7 wes hayutin 2011-11-28 01:16:38 UTC
removing bugs from ce-sprint from the tracker.. you can find these bugs by querying the "qa whiteboard" for ce-sprint-60