Bug 786740

Summary: With an invalid url in the template,building an image passes for ec2 but fails for vsphere.
Product: [Retired] CloudForms Cloud Engine Reporter: Aziza Karol <akarol>
Component: imagefactoryAssignee: jrd <jrd>
Status: CLOSED NOTABUG QA Contact: Martin Kočí <mkoci>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 1.0.0CC: akarol, brad, dajohnso, deltacloud-maint, dgao, ssachdev, whayutin
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-02-02 13:53:03 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 Aziza Karol 2012-02-02 09:43:48 UTC
Description of problem:


Version-Release number of selected component (if applicable):


How reproducible:


Steps to Reproduce:
template used:

<template>
  <name>RHEL_westest01</name>
  <os>
    <name>RHEL-6</name>
    <version>1</version>
    <arch>x86_64</arch>
    <rootpw>dog8code</rootpw>
    <install type="url">
      <url>http://download.devel.redhat.com/released/RHEL-6-Server/6.1/x86_64/os/</url>
    </install>
  </os>
  <description>RHEL61 x86_64 </description>
</template>


  
if you try to access this url in browser you get:
The requested URL /released/RHEL-6-Server/6.1/x86_64/os/ was not found on this server.



With the above template i tried build an image for ec2 and vsphere.

EC2:
# aeolus-image build --target  ec2 --template rheltempwes/RHEL61.tpl 
Image                                    Build                                    Target Image                             Target     Status       
------------------------------------     ------------------------------------     ------------------------------------     ------     --------     
ddcdd705-266a-4fff-b53d-e2e37439f727     83a861a7-880b-44d9-8972-9b5894c0aaf2     8b045662-67c6-43fc-a1dc-bcd157b38165     ec2        BUILDING     

]# aeolus-image status --targetimage 8b045662-67c6-43fc-a1dc-bcd157b38165
Build Status: COMPLETE


Vsphere:

aeolus-image build --target  vsphere  --template rheltempwes/RHEL61.tpl 
Image                                    Build                                    Target Image                             Target      Status       
------------------------------------     ------------------------------------     ------------------------------------     -------     --------     
6f5ce16f-6052-4dc0-ba65-ab68b2ec40e4     ce23a878-bd5d-4b81-b3c4-46424ee87628     7e73d4c0-4b6b-45fa-b980-beda6d64a47c     vsphere     BUILDING  

Imagefactory.log:
2012-02-02 02:17:47,369 DEBUG imgfac.builders.BaseBuilder.RHEL6_vsphere_Builder pid(30015) Message: Traceback (most recent call last):
  File "/usr/lib/python2.6/site-packages/imgfac/builders/Fedora_vsphere_Builder.py", line 49, in build_image
    self.build_upload(build_id)
  File "/usr/lib/python2.6/site-packages/imgfac/builders/Fedora_vsphere_Builder.py", line 83, in build_upload
    self.guest = oz.GuestFactory.guest_factory(self.tdlobj, oz_config, None)
  File "/usr/lib/python2.6/site-packages/oz/GuestFactory.py", line 69, in guest_factory
    klass = oz.RHEL_6.get_class(tdl, config, auto, output_disk)
  File "/usr/lib/python2.6/site-packages/oz/RHEL_6.py", line 57, in get_class
    return RHEL6Guest(tdl, config, auto, output_disk)
  File "/usr/lib/python2.6/site-packages/oz/RHEL_6.py", line 35, in __init__
    "cpio")
  File "/usr/lib/python2.6/site-packages/oz/RedHat.py", line 42, in __init__
    None, None, diskbus, iso_allowed, url_allowed)
  File "/usr/lib/python2.6/site-packages/oz/Guest.py", line 1177, in __init__
    mousetype, diskbus, iso_allowed, url_allowed)
  File "/usr/lib/python2.6/site-packages/oz/Guest.py", line 203, in __init__
    self.url = self._check_url(iso=iso_allowed, url=url_allowed)
  File "/usr/lib/python2.6/site-packages/oz/RedHat.py", line 810, in _check_url
    response = urllib2.urlopen(url)
  File "/usr/lib64/python2.6/urllib2.py", line 126, in urlopen
    return _opener.open(url, data, timeout)
  File "/usr/lib64/python2.6/urllib2.py", line 397, in open
    response = meth(req, response)
  File "/usr/lib64/python2.6/urllib2.py", line 510, in http_response
    'http', request, response, code, msg, hdrs)
  File "/usr/lib64/python2.6/urllib2.py", line 435, in error
    return self._call_chain(*args)
  File "/usr/lib64/python2.6/urllib2.py", line 369, in _call_chain
    result = func(*args)
  File "/usr/lib64/python2.6/urllib2.py", line 518, in http_error_default
    raise HTTPError(req.get_full_url(), code, msg, hdrs, fp)
HTTPError: HTTP Error 404: Not Found



Building and image for vsphere fails with error "HTTPError: HTTP Error 404: Not Found" but passes for ec2.
Does that mean, while building for ec2 are we not validating for valid url?



Additional info:
rpm -qa | grep aeolus
rubygem-aeolus-image-0.3.0-7.el6.noarch
aeolus-conductor-doc-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-0.8.0-17.el6.noarch

Comment 1 Martin Kočí 2012-02-02 11:30:08 UTC
AFAIK the building process (as we know for vsphere/rhevm) is running when you try to push the target image to the ec2. As well you can observe that the "building" activity for EC2 is quite fast in compare to vsphere target, because it doesn't download anything from url. 
Just my two cents.

Comment 2 wes hayutin 2012-02-02 13:53:03 UTC
There is no build for RHEL ec2 templates... the official RHEL ami is simply cloned.

So the URL is never used for ec2..  Sorry the URL have been changing in my templates.. I've also been getting a lot of 404's