Bug 749376

Summary: aeolus-image should gracefully handle Conductor being down
Product: [Retired] CloudForms Cloud Engine Reporter: Matt Wagner <matt.wagner>
Component: rubygem-aeolus-cliAssignee: Maros Zatko <mzatko>
Status: CLOSED CURRENTRELEASE QA Contact: wes hayutin <whayutin>
Severity: medium Docs Contact:
Priority: unspecified    
Version: 1.0.0CC: akarol, athomas, morazi, slinaber
Target Milestone: rc   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2012-08-30 17:16:18 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:

Description Matt Wagner 2011-10-26 20:43:07 UTC
Description of problem:
If aeolus-image is run when Conductor is down, a backtrace is thrown, rather than a helpful error.


Version-Release number of selected component (if applicable):
rubygem-aeolus-cli-0.1.0-3.20111024205439gitc3aa990.fc15.noarch


How reproducible:
100%


Steps to Reproduce:
1. service aeolus-conductor stop
2. aeolus-image list --images
3. Error!

  
Actual results:
$ aeolus-image build --target mock --template ~/template.tpl 
/usr/lib/ruby/1.8/net/http.rb:560:in `initialize': Connection refused - connect(2) (Errno::ECONNREFUSED)
	from /usr/lib/ruby/1.8/net/http.rb:560:in `open'
	from /usr/lib/ruby/1.8/net/http.rb:560:in `connect'
	from /usr/lib/ruby/1.8/timeout.rb:67:in `timeout'
	from /usr/lib/ruby/1.8/timeout.rb:101:in `timeout'
	from /usr/lib/ruby/1.8/net/http.rb:560:in `connect'
	from /usr/lib/ruby/1.8/net/http.rb:553:in `do_start'
	from /usr/lib/ruby/1.8/net/http.rb:542:in `start'
	from /usr/lib/ruby/1.8/net/http.rb:1035:in `__request__'
	from /usr/lib/ruby/gems/1.8/gems/rest-client-1.6.1/lib/restclient/net_http_ext.rb:17:in `request'
	from /usr/lib/ruby/1.8/net/http.rb:845:in `post'
	from /usr/lib/ruby/gems/1.8/gems/activeresource-3.0.10/lib/active_resource/connection.rb:112:in `send'
	from /usr/lib/ruby/gems/1.8/gems/activeresource-3.0.10/lib/active_resource/connection.rb:112:in `request'
	from /usr/lib/ruby/gems/1.8/gems/activesupport-3.0.10/lib/active_support/notifications.rb:52:in `instrument'
	from /usr/lib/ruby/gems/1.8/gems/activesupport-3.0.10/lib/active_support/notifications/instrumenter.rb:21:in `instrument'
	from /usr/lib/ruby/gems/1.8/gems/activesupport-3.0.10/lib/active_support/notifications.rb:52:in `instrument'
	from /usr/lib/ruby/gems/1.8/gems/activeresource-3.0.10/lib/active_resource/connection.rb:109:in `request'
	from /usr/lib/ruby/gems/1.8/gems/activeresource-3.0.10/lib/active_resource/connection.rb:97:in `post'
	from /usr/lib/ruby/gems/1.8/gems/activeresource-3.0.10/lib/active_resource/connection.rb:217:in `with_auth'
	from /usr/lib/ruby/gems/1.8/gems/activeresource-3.0.10/lib/active_resource/connection.rb:97:in `post'
	from /usr/lib/ruby/gems/1.8/gems/activeresource-3.0.10/lib/active_resource/base.rb:1314:in `create_without_notifications'
	from /usr/lib/ruby/gems/1.8/gems/activeresource-3.0.10/lib/active_resource/observing.rb:11:in `create'
	from /usr/lib/ruby/gems/1.8/gems/activeresource-3.0.10/lib/active_resource/base.rb:1117:in `save_without_validation'
	from /usr/lib/ruby/gems/1.8/gems/activeresource-3.0.10/lib/active_resource/validations.rb:87:in `save_without_notifications'
	from /usr/lib/ruby/gems/1.8/gems/activeresource-3.0.10/lib/active_resource/observing.rb:11:in `save'
	from /usr/lib/ruby/gems/1.8/gems/activeresource-3.0.10/lib/active_resource/base.rb:1134:in `save!'
	from /usr/lib/ruby/gems/1.8/gems/aeolus-cli-0.1.0/lib/aeolus_cli/command/build_command.rb:37:in `run'
	from /usr/lib/ruby/gems/1.8/gems/aeolus-cli-0.1.0/lib/aeolus_cli/command/config_parser.rb:220:in `build'
	from /usr/lib/ruby/gems/1.8/gems/aeolus-cli-0.1.0/lib/aeolus_cli/command/config_parser.rb:38:in `send'
	from /usr/lib/ruby/gems/1.8/gems/aeolus-cli-0.1.0/lib/aeolus_cli/command/config_parser.rb:38:in `process'
	from /usr/lib/ruby/gems/1.8/gems/aeolus-cli-0.1.0/bin/aeolus-image:20
	from /usr/bin/aeolus-image:19:in `load'
	from /usr/bin/aeolus-image:19


Expected results:
A helpful error along the lines of, "Could not reach Conductor. Please ensure that the aeolus-conductor service is running."

Comment 1 wes hayutin 2011-11-03 00:25:09 UTC
version should be cloudforms-1.0.0

Comment 2 wes hayutin 2012-01-12 16:51:51 UTC
adding to sprint tracker

Comment 3 Maros Zatko 2012-01-27 13:00:19 UTC
fixed in axiom/1.0-staging

commit 76c98a9759b1cb732a5c93c80f1fdf139b1eac11
Author: Maros Zatko <mzatko>
Date:   Fri Jan 27 00:38:54 2012 +0100

    BZ 749376: tests for aeolus-image handling of Conductor being down
    
    https://bugzilla.redhat.com/show_bug.cgi?id=749376
    
    Test for descriptive messages for exceptions when Conductor is
    unreachable

commit a46435e430e748aaad6b70d7db57b32c988feb14
Author: Maros Zatko <mzatko>
Date:   Thu Jan 26 19:06:11 2012 +0100

    BZ 749376: aeolus-image should gracefully handle Conductor being down
    
    https://bugzilla.redhat.com/show_bug.cgi?id=749376
    
    Added descriptive messages for exceptions when Conductor is unreachable

Comment 4 Steve Linabery 2012-01-31 22:14:32 UTC
76c98a9759b1cb732a5c93c80f1fdf139b1eac11 in rubygem-aeolus-cli-0.3.0-7

Comment 5 Aziza Karol 2012-02-01 13:03:21 UTC
aeolus-image checks if Conductor is down.

#aeolus-image list --images
ERROR:  Service Temporarily Unavailable => Please check that Conductor is running.


verified on:
rpm -qa | grep aeolus
aeolus-conductor-0.8.0-17.el6.noarch
rubygem-aeolus-cli-0.3.0-7.el6.noarch
aeolus-configure-2.5.0-11.el6.noarch
aeolus-conductor-daemons-0.8.0-17.el6.noarch
aeolus-all-0.8.0-17.el6.noarch
aeolus-conductor-doc-0.8.0-17.el6.noarch
rubygem-aeolus-image-0.3.0-7.el6.noarch