Bug 772682

Summary: Instance parameter values greater than 255 break deployment
Product: [Retired] CloudForms Cloud Engine Reporter: chris alfonso <calfonso>
Component: aeolus-conductorAssignee: chris alfonso <calfonso>
Status: CLOSED CURRENTRELEASE QA Contact: wes hayutin <whayutin>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 1.0.0CC: akarol, deltacloud-maint, hbrock, slinaber, ssachdev
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: Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:

Description chris alfonso 2012-01-09 16:32:04 UTC
Description of problem:
If you provide a value with content greater than 255 characters, the deployment will break with the following error:
PGError: ERROR:  value too long for type character varying(255)
: INSERT INTO "instance_parameters" ("name", "value", "type", "service", "instance_id", "updated_at", "created_at") VALUES ('cert', '-----BEGIN CERTIFICATE----- MIICaDCCAdGgAwIBAgIJAPjiRSvJCRZTMA0GCSqGSIb3DQEBBQUAME0xLDAqBgNV BAMMI2NmLXNlMy5jbG91ZC5sYWIuZW5nLmJvcy5yZWRoYXQuY29tMQswCQYDVQQG EwJVUzEQMA4GA1UEBwwHUmFsZWlnaDAeFw0xMTEyMjIyMDEwNDhaFw0xMjEyMjEy MDEwNDhaME0xLDAqBgNVBAMMI2NmLXNlMy5jbG91ZC5sYWIuZW5nLmJvcy5yZWRo YXQuY29tMQswCQYDVQQGEwJVUzEQMA4GA1UEBwwHUmFsZWlnaDCBnzANBgkqhkiG 9w0BAQEFAAOBjQAwgYkCgYEAsZxKQDDGDcNlcYVHBg07s4KDUO3LDI8BW9wLnooq CZHO/IN6kHJnpixBcM+frHH5GUXGs+UK6ZT7CfKKdY9F5pQaoOgSdcv2rMRvjieG fkQVXU7W95BGFhPMmNeeBCjjFa/mG4IJdI7p2a8QjNnFK0OeqYQFv/HHi3wPcXOK v68CAwEAAaNQME4wHQYDVR0OBBYEFE1+zy5nNoYAKdB+FTG2wdVzg2mWMB8GA1Ud IwQYMBaAFE1+zy5nNoYAKdB+FTG2wdVzg2mWMAwGA1UdEwQFMAMBAf8wDQYJKoZI hvcNAQEFBQADgYEADIb0Y02SWy7eZwGpFRHBxOyqb+5Np9aYZ6Gez5D+HWcjaDxN oNVZ7OeH15xku6wbTgFyH6ZbSx3k5714tCkh/A+fy+Rb0zA6efFRhVfsAfwzTYRD JegMuHSHOycG4K67Cs+7UyZVBrYdxHYNxsz7i2iOLBSNArer1Bm4zwmjn4c= -----END CERTIFICATE-----               ', NULL, 'candlepin6.1-reg', 5, '2012-01-09 15:47:16.700182', '2012-01-09 15:47:16.700182') RETURNING "id"
/usr/lib/ruby/gems/1.8/gems/activerecord-3.0.10/lib/active_record/connection_adapters/abstract_adapter.rb:207:in `log'

And example parameter value that would break the deployable xml...

<parameter name="cert" type="scalar"><value>
-----BEGIN CERTIFICATE-----
MIICaDCCAdGgAwIBAgIJAPjiRSvJCRZTMA0GCSqGSIb3DQEBBQUAME0xLDAqBgNV
BAMMI2NmLXNlMy5jbG91ZC5sYWIuZW5nLmJvcy5yZWRoYXQuY29tMQswCQYDVQQG
EwJVUzEQMA4GA1UEBwwHUmFsZWlnaDAeFw0xMTEyMjIyMDEwNDhaFw0xMjEyMjEy
MDEwNDhaME0xLDAqBgNVBAMMI2NmLXNlMy5jbG91ZC5sYWIuZW5nLmJvcy5yZWRo
YXQuY29tMQswCQYDVQQGEwJVUzEQMA4GA1UEBwwHUmFsZWlnaDCBnzANBgkqhkiG
9w0BAQEFAAOBjQAwgYkCgYEAsZxKQDDGDcNlcYVHBg07s4KDUO3LDI8BW9wLnooq
CZHO/IN6kHJnpixBcM+frHH5GUXGs+UK6ZT7CfKKdY9F5pQaoOgSdcv2rMRvjieG
fkQVXU7W95BGFhPMmNeeBCjjFa/mG4IJdI7p2a8QjNnFK0OeqYQFv/HHi3wPcXOK
v68CAwEAAaNQME4wHQYDVR0OBBYEFE1+zy5nNoYAKdB+FTG2wdVzg2mWMB8GA1Ud
IwQYMBaAFE1+zy5nNoYAKdB+FTG2wdVzg2mWMAwGA1UdEwQFMAMBAf8wDQYJKoZI
hvcNAQEFBQADgYEADIb0Y02SWy7eZwGpFRHBxOyqb+5Np9aYZ6Gez5D+HWcjaDxN
oNVZ7OeH15xku6wbTgFyH6ZbSx3k5714tCkh/A+fy+Rb0zA6efFRhVfsAfwzTYRD
JegMuHSHOycG4K67Cs+7UyZVBrYdxHYNxsz7i2iOLBSNArer1Bm4zwmjn4c=
-----END CERTIFICATE-----
              </value></parameter>

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


How reproducible:

Create a deployable that has an instance parameter value with more than 255 characters.

It's not necessary to use this one, but this is an example of a deployable xml file that provides an instance parameter value greater than 255.

<deployable name="refarch_uc1"><description>deployable for use case 1 using r61</description><assemblies><assembly name="uc1_assembly" hwp="hwp1"><image id="5512af7a-37db-11e1-9576-001a64760006"/><services><service name="chkconfig_services"><executable><contents>#!/bin/bash
chkconfig httpd on
            </contents></executable></service><service name="fix_katello_agent"><executable><contents>#!/bin/bash
sed -i 's/ssl:/tcp:/' /etc/gofer/plugins/katelloplugin.conf 
sed -i 's/:5674/:5672/' /etc/gofer/plugins/katelloplugin.conf 
            </contents></executable></service><service name="candlepin6.1-reg"><executable><contents>
#!/bin/bash
(
sehost=$AUDREY_VAR_candlepin_reg_sehost
seorg=$AUDREY_VAR_candlepin_reg_org
seenv=$AUDREY_VAR_candlepin_reg_environment
seuser=$AUDREY_VAR_candlepin_reg_username
sepassword=$AUDREY_VAR_candlepin_reg_password
secert=$AUDREY_VAR_candlepin_reg_cert
echo "sehost: " $sehost
echo "seorg: " $seorg
echo "seenv: " $seenv
echo "seuser: " $seuser
echo "sepassword: " $sepassword
echo "secert: " $secert
echo
echo - get latest sub man
wget http://repos.fedorapeople.org/repos/candlepin/subscription-manager/epel-subscription-manager.repo -O /etc/yum.repos.d/epel-subscription-manager.repo
yum -y update
echo - after update get rid of this repo 
\rm /etc/yum.repos.d/epel-subscription-manager.repo
echo - create releasever variable
echo 6.1 > /etc/yum/vars/releasever
echo - modify /etc/rhsm/rhsm.conf
sed -i "s/hostname = subscription.rhn.redhat.com/hostname = $sehost/" /etc/rhsm/rhsm.conf
sed -i 's/prefix = \/subscription/prefix = \/katello\/api/' /etc/rhsm/rhsm.conf
sed -i 's/insecure = 0/insecure = 1/' /etc/rhsm/rhsm.conf
sed -i "s/baseurl= https:\/\/cdn.redhat.com/baseurl = https:\/\/$sehost\/pulp\/repos/" /etc/rhsm/rhsm.conf
sed -i 's/redhat-uep.pem/candlepin-local.pem/' /etc/rhsm/rhsm.conf
echo - create cert
echo $secert >/etc/rhsm/ca/candlepin-local.pem
#echo - register, using key?
echo - register
subscription-manager register --force --username=$seuser --password=$sepassword --env=$seenv --org=$seorg --autosubscribe
echo - display subscribe repos
yum repolist
echo - restart katello agent
# only works with registered clients
service goferd restart
) 2>&1 | tee /var/audrey/tooling/auto_reg.log
            </contents></executable><parameters><parameter name="sehost" type="scalar"><value>cf-se3.cloud.lab.eng.bos.redhat.com</value></parameter><parameter name="org" type="scalar"><value>refarch</value></parameter><parameter name="environment" type="scalar"><value>dev</value></parameter><parameter name="username" type="scalar"><value>sadev</value></parameter><parameter name="password" type="password"><value>100yard-</value></parameter><parameter name="cert" type="scalar"><value>
-----BEGIN CERTIFICATE-----
MIICaDCCAdGgAwIBAgIJAPjiRSvJCRZTMA0GCSqGSIb3DQEBBQUAME0xLDAqBgNV
BAMMI2NmLXNlMy5jbG91ZC5sYWIuZW5nLmJvcy5yZWRoYXQuY29tMQswCQYDVQQG
EwJVUzEQMA4GA1UEBwwHUmFsZWlnaDAeFw0xMTEyMjIyMDEwNDhaFw0xMjEyMjEy
MDEwNDhaME0xLDAqBgNVBAMMI2NmLXNlMy5jbG91ZC5sYWIuZW5nLmJvcy5yZWRo
YXQuY29tMQswCQYDVQQGEwJVUzEQMA4GA1UEBwwHUmFsZWlnaDCBnzANBgkqhkiG
9w0BAQEFAAOBjQAwgYkCgYEAsZxKQDDGDcNlcYVHBg07s4KDUO3LDI8BW9wLnooq
CZHO/IN6kHJnpixBcM+frHH5GUXGs+UK6ZT7CfKKdY9F5pQaoOgSdcv2rMRvjieG
fkQVXU7W95BGFhPMmNeeBCjjFa/mG4IJdI7p2a8QjNnFK0OeqYQFv/HHi3wPcXOK
v68CAwEAAaNQME4wHQYDVR0OBBYEFE1+zy5nNoYAKdB+FTG2wdVzg2mWMB8GA1Ud
IwQYMBaAFE1+zy5nNoYAKdB+FTG2wdVzg2mWMAwGA1UdEwQFMAMBAf8wDQYJKoZI
hvcNAQEFBQADgYEADIb0Y02SWy7eZwGpFRHBxOyqb+5Np9aYZ6Gez5D+HWcjaDxN
oNVZ7OeH15xku6wbTgFyH6ZbSx3k5714tCkh/A+fy+Rb0zA6efFRhVfsAfwzTYRD
JegMuHSHOycG4K67Cs+7UyZVBrYdxHYNxsz7i2iOLBSNArer1Bm4zwmjn4c=
-----END CERTIFICATE-----
              </value></parameter></parameters></service></services></assembly></assemblies></deployable>

Comment 1 chris alfonso 2012-01-10 16:43:07 UTC
commit f1ad9c92d9af7a8d06a209833144610dd89aae54 conductor repo

Comment 2 Steve Linabery 2012-01-10 19:26:14 UTC
commit 981260f654f60c5eb1e7eca6994570286aecc942 on 0.8.x branch of conductor git

Comment 3 Steve Linabery 2012-01-10 20:07:38 UTC
981260f654f60c5eb1e7eca6994570286aecc942 is in aeolus-conductor-0.8.0-3

Comment 4 wes hayutin 2012-01-12 16:27:28 UTC
removing verified on-qa from tracker

Comment 5 wes hayutin 2012-01-16 20:23:09 UTC
successful deploy w/
<deployable name='ce-w7lue'>
  <description>deployable for use case 1 using
r61asdfasdfasdfasdfasdfasfddeployable for use case 1 using
r61asdfasdfasdfasdfasdfasfddeployable for use case 1 using
r61asdfasdfasdfasdfasdfasfddeployable for use case 1 using
r61asdfasdfasdfasdfasdfasfddeployable for use case 1 using
r61asdfasdfasdfasdfasdfasfddeployable for use case 1 using
r61asdfasdfasdfasdfasdfasfddeployable for use case 1 using
r61asdfasdfasdfasdfasdfasfddeployable for use case 1 using
r61asdfasdfasdfasdfasdfasfd</description>
  <assemblies>
    <assembly name='testVsphere' hwp='default'>
      <image id='3f66f10c-4313-4850-97ec-540d4e02049e' build='2f62663e-6d11-4b33-bf70-1287a853608c' />
    </assembly>
  </assemblies>
</deployable>


does that verify the bug.. or do we need to check every param?

Comment 6 Shveta 2012-02-14 12:50:07 UTC
Fixed .
Verified w/
rpm -qa|grep aeolus
aeolus-conductor-doc-0.8.0-26.el6.noarch
rubygem-aeolus-cli-0.3.0-8.el6.noarch
rubygem-aeolus-image-0.3.0-7.el6.noarch
aeolus-configure-2.5.0-13.el6.noarch
aeolus-conductor-daemons-0.8.0-26.el6.noarch
aeolus-conductor-0.8.0-26.el6.noarch
aeolus-all-0.8.0-26.el6.noarch