Checking for "$D" and doing an "exit 1" now results in errors such as:
[log_check] warning: %post(keystone-cronjobs-...) scriptlet failed, exit status 2 during image creation. Instead of escaping the script for "level-1" (image creation postinst) we wrap the "level-2" (first boot) postinst in an if statement. This also ensure the scriptlet in indentity.bbclass is less prone to behaving differently based on the postinsts defined in the classes which inherit 'identity'. Signed-off-by: Mark Asselstine <mark.asselst...@windriver.com> --- meta-openstack/classes/identity.bbclass | 11 +++-- .../recipes-devtools/python/python-barbican_git.bb | 8 ++-- .../python/python-ceilometer_git.bb | 24 +++++------ .../recipes-devtools/python/python-cinder_git.bb | 48 ++++++++++----------- .../recipes-devtools/python/python-glance_git.bb | 24 +++++------ .../recipes-devtools/python/python-heat_git.bb | 24 +++++------ .../recipes-devtools/python/python-keystone_git.bb | 50 +++++++++++----------- .../recipes-devtools/python/python-neutron_git.bb | 32 ++++++-------- .../recipes-devtools/python/python-nova_git.bb | 42 ++++++++---------- .../recipes-devtools/python/python-rally_git.bb | 28 ++++++------ .../recipes-devtools/python/python-swift_git.bb | 40 ++++++++--------- .../recipes-devtools/python/python-trove_git.bb | 45 ++++++++++--------- .../postgresql/postgresql_9.%.bbappend | 14 +++--- 13 files changed, 185 insertions(+), 205 deletions(-) diff --git a/meta-openstack/classes/identity.bbclass b/meta-openstack/classes/identity.bbclass index c4b1394..1f4f408 100644 --- a/meta-openstack/classes/identity.bbclass +++ b/meta-openstack/classes/identity.bbclass @@ -163,9 +163,11 @@ python populate_packages_append () { postinst = d.getVar('pkg_postinst_%s' % pkg, True) or d.getVar('pkg_postinst', True) if not postinst: - postinst = ' if [ "x$D" != "x" ]; then\n' + \ - ' exit 1\n' + \ - ' fi\n' + postinst = '' + + # Only execute on target. Header. + postinst += ' if [ -z "$D" ]; then\n' + postinst += servicecreate_postinst_common_copy if d.getVar('USERCREATE_PARAM_%s' % pkg, True): @@ -176,6 +178,9 @@ python populate_packages_append () { servicecreate_postinst_service = servicecreate_postinst_service_copy.replace("SERVICECREATE_PARAM", servicecreate_param(d, pkg)) postinst += servicecreate_postinst_service + # Footer. + postinst += ' fi\n' + d.setVar('pkg_postinst_%s' % pkg, postinst) bb.debug(1, 'pkg_postinst_%s = %s' % (pkg, d.getVar('pkg_postinst_%s' % pkg, True))) } diff --git a/meta-openstack/recipes-devtools/python/python-barbican_git.bb b/meta-openstack/recipes-devtools/python/python-barbican_git.bb index 0b3d768..579413c 100644 --- a/meta-openstack/recipes-devtools/python/python-barbican_git.bb +++ b/meta-openstack/recipes-devtools/python/python-barbican_git.bb @@ -85,12 +85,10 @@ FILES_${SRCNAME} = "${sysconfdir}/${SRCNAME}/* \ ALLOW_EMPTY_${SRCNAME}-setup = "1" pkg_postinst_${SRCNAME}-setup () { - if [ "x$D" != "x" ]; then - exit 1 + if [ -z "$D" ]; then + chown -R barbican:barbican ${sysconfdir}/${SRCNAME} + chown -R barbican:barbican ${localstatedir}/lib/barbican fi - - chown -R barbican:barbican ${sysconfdir}/${SRCNAME} - chown -R barbican:barbican ${localstatedir}/lib/barbican } DEPENDS += " \ diff --git a/meta-openstack/recipes-devtools/python/python-ceilometer_git.bb b/meta-openstack/recipes-devtools/python/python-ceilometer_git.bb index 5645626..4b01022 100644 --- a/meta-openstack/recipes-devtools/python/python-ceilometer_git.bb +++ b/meta-openstack/recipes-devtools/python/python-ceilometer_git.bb @@ -108,20 +108,18 @@ do_install_append() { } pkg_postinst_${SRCNAME}-setup () { - if [ "x$D" != "x" ]; then - exit 1 + if [ -z "$D" ]; then + # This is to make sure postgres is configured and running + if ! pidof postmaster > /dev/null; then + /etc/init.d/postgresql-init + /etc/init.d/postgresql start + sleep 2 + fi + + mkdir /var/log/ceilometer + sudo -u postgres createdb ceilometer + ceilometer-dbsync fi - - # This is to make sure postgres is configured and running - if ! pidof postmaster > /dev/null; then - /etc/init.d/postgresql-init - /etc/init.d/postgresql start - sleep 2 - fi - - mkdir /var/log/ceilometer - sudo -u postgres createdb ceilometer - ceilometer-dbsync } inherit setuptools identity hosts update-rc.d default_configs monitor diff --git a/meta-openstack/recipes-devtools/python/python-cinder_git.bb b/meta-openstack/recipes-devtools/python/python-cinder_git.bb index e70a3aa..9f70beb 100644 --- a/meta-openstack/recipes-devtools/python/python-cinder_git.bb +++ b/meta-openstack/recipes-devtools/python/python-cinder_git.bb @@ -124,31 +124,29 @@ do_install_append() { } pkg_postinst_${SRCNAME}-setup () { - if [ "x$D" != "x" ]; then - exit 1 - fi - - # This is to make sure postgres is configured and running - if ! pidof postmaster > /dev/null; then - /etc/init.d/postgresql-init - /etc/init.d/postgresql start - fi - - if [ ! -d /var/log/cinder ]; then - mkdir /var/log/cinder - fi - - sudo -u postgres createdb cinder - cinder-manage db sync - - # Create Cinder nfs_share config file with default nfs server - if [ ! -f /etc/cinder/nfs_shares ]; then - /bin/bash /etc/cinder/drivers/nfs_setup.sh - fi - - # Create Cinder glusterfs_share config file with default glusterfs server - if [ ! -f /etc/cinder/glusterfs_shares ] && [ -f /usr/sbin/glusterfsd ]; then - /bin/bash /etc/cinder/drivers/glusterfs_setup.sh + if [ -z "$D" ]; then + # This is to make sure postgres is configured and running + if ! pidof postmaster > /dev/null; then + /etc/init.d/postgresql-init + /etc/init.d/postgresql start + fi + + if [ ! -d /var/log/cinder ]; then + mkdir /var/log/cinder + fi + + sudo -u postgres createdb cinder + cinder-manage db sync + + # Create Cinder nfs_share config file with default nfs server + if [ ! -f /etc/cinder/nfs_shares ]; then + /bin/bash /etc/cinder/drivers/nfs_setup.sh + fi + + # Create Cinder glusterfs_share config file with default glusterfs server + if [ ! -f /etc/cinder/glusterfs_shares ] && [ -f /usr/sbin/glusterfsd ]; then + /bin/bash /etc/cinder/drivers/glusterfs_setup.sh + fi fi } diff --git a/meta-openstack/recipes-devtools/python/python-glance_git.bb b/meta-openstack/recipes-devtools/python/python-glance_git.bb index 27c33b9..4042f1b 100644 --- a/meta-openstack/recipes-devtools/python/python-glance_git.bb +++ b/meta-openstack/recipes-devtools/python/python-glance_git.bb @@ -122,20 +122,18 @@ do_install_append() { } pkg_postinst_${SRCNAME}-setup () { - if [ "x$D" != "x" ]; then - exit 1 + if [ -z "$D" ]; then + # This is to make sure postgres is configured and running + if ! pidof postmaster > /dev/null; then + /etc/init.d/postgresql-init + /etc/init.d/postgresql start + sleep 5 + fi + + mkdir /var/log/glance + sudo -u postgres createdb glance + glance-manage db_sync fi - - # This is to make sure postgres is configured and running - if ! pidof postmaster > /dev/null; then - /etc/init.d/postgresql-init - /etc/init.d/postgresql start - sleep 5 - fi - - mkdir /var/log/glance - sudo -u postgres createdb glance - glance-manage db_sync } PACKAGES += " ${SRCNAME}-tests ${SRCNAME} ${SRCNAME}-setup ${SRCNAME}-api ${SRCNAME}-registry" diff --git a/meta-openstack/recipes-devtools/python/python-heat_git.bb b/meta-openstack/recipes-devtools/python/python-heat_git.bb index cccaf0a..2cf7ce4 100644 --- a/meta-openstack/recipes-devtools/python/python-heat_git.bb +++ b/meta-openstack/recipes-devtools/python/python-heat_git.bb @@ -107,20 +107,18 @@ do_install_append() { } pkg_postinst_${SRCNAME}-setup () { - if [ "x$D" != "x" ]; then - exit 1 + if [ -z "$D" ]; then + # This is to make sure postgres is configured and running + if ! pidof postmaster > /dev/null; then + /etc/init.d/postgresql-init + /etc/init.d/postgresql start + sleep 2 + fi + + mkdir /var/log/heat + sudo -u postgres createdb heat + heat-manage db_sync fi - - # This is to make sure postgres is configured and running - if ! pidof postmaster > /dev/null; then - /etc/init.d/postgresql-init - /etc/init.d/postgresql start - sleep 2 - fi - - mkdir /var/log/heat - sudo -u postgres createdb heat - heat-manage db_sync } inherit setuptools identity hosts update-rc.d default_configs monitor diff --git a/meta-openstack/recipes-devtools/python/python-keystone_git.bb b/meta-openstack/recipes-devtools/python/python-keystone_git.bb index 79bd0c8..a26c9bf 100644 --- a/meta-openstack/recipes-devtools/python/python-keystone_git.bb +++ b/meta-openstack/recipes-devtools/python/python-keystone_git.bb @@ -189,28 +189,26 @@ role_tree_dn = ou=Roles,${LDAP_DN} \ pkg_postinst_${SRCNAME}-setup () { # python-keystone postinst start - if [ "x$D" != "x" ]; then - exit 1 - fi - - # This is to make sure postgres is configured and running - if ! pidof postmaster > /dev/null; then - /etc/init.d/postgresql-init - /etc/init.d/postgresql start - sleep 2 - fi - - # This is to make sure keystone is configured and running - PIDFILE="/var/run/keystone-all.pid" - if [ -z `cat $PIDFILE 2>/dev/null` ]; then - sudo -u postgres createdb keystone - keystone-manage db_sync - keystone-manage pki_setup --keystone-user=root --keystone-group=daemon - - if ${@bb.utils.contains('DISTRO_FEATURES', 'OpenLDAP', 'true', 'false', d)}; then - /etc/init.d/openldap start - fi - /etc/init.d/keystone start + if [ -z "$D" ]; then + # This is to make sure postgres is configured and running + if ! pidof postmaster > /dev/null; then + /etc/init.d/postgresql-init + /etc/init.d/postgresql start + sleep 2 + fi + + # This is to make sure keystone is configured and running + PIDFILE="/var/run/keystone-all.pid" + if [ -z `cat $PIDFILE 2>/dev/null` ]; then + sudo -u postgres createdb keystone + keystone-manage db_sync + keystone-manage pki_setup --keystone-user=root --keystone-group=daemon + + if ${@bb.utils.contains('DISTRO_FEATURES', 'OpenLDAP', 'true', 'false', d)}; then + /etc/init.d/openldap start + fi + /etc/init.d/keystone start + fi fi } @@ -219,9 +217,11 @@ pkg_postinst_${SRCNAME}-setup () { KEYSTONE_TOKEN_FLUSH_TIME ??= "0 0 */2 * *" pkg_postinst_${SRCNAME}-cronjobs () { - # By default keystone expired tokens are not automatic removed out of the - # database. So we create a cronjob for cleaning these expired tokens. - echo "${KEYSTONE_TOKEN_FLUSH_TIME} root /usr/bin/keystone-manage token_flush" >> /etc/crontab + if [ -z "$D" ]; then + # By default keystone expired tokens are not automatic removed out of the + # database. So we create a cronjob for cleaning these expired tokens. + echo "${KEYSTONE_TOKEN_FLUSH_TIME} root /usr/bin/keystone-manage token_flush" >> /etc/crontab + fi } PACKAGES += " ${SRCNAME}-tests ${SRCNAME} ${SRCNAME}-setup ${SRCNAME}-cronjobs" diff --git a/meta-openstack/recipes-devtools/python/python-neutron_git.bb b/meta-openstack/recipes-devtools/python/python-neutron_git.bb index 51c2ac4..c837401 100644 --- a/meta-openstack/recipes-devtools/python/python-neutron_git.bb +++ b/meta-openstack/recipes-devtools/python/python-neutron_git.bb @@ -138,29 +138,25 @@ do_install_append() { } pkg_postinst_${SRCNAME}-setup () { - if [ "x$D" != "x" ]; then - exit 1 + if [ -z "$D" ]; then + # This is to make sure postgres is configured and running + if ! pidof postmaster > /dev/null; then + /etc/init.d/postgresql-init + /etc/init.d/postgresql start + sleep 2 + fi + + sudo -u postgres createdb neutron + sudo neutron-db-manage --config-file /etc/neutron/neutron.conf \ + --config-file /etc/neutron/plugins/ml2/ml2_conf.ini upgrade head fi - - # This is to make sure postgres is configured and running - if ! pidof postmaster > /dev/null; then - /etc/init.d/postgresql-init - /etc/init.d/postgresql start - sleep 2 - fi - - sudo -u postgres createdb neutron - sudo neutron-db-manage --config-file /etc/neutron/neutron.conf \ - --config-file /etc/neutron/plugins/ml2/ml2_conf.ini upgrade head } pkg_postinst_${SRCNAME}-plugin-openvswitch-setup () { - if [ "x$D" != "x" ]; then - exit 1 + if [ -z "$D" ]; then + /etc/init.d/openvswitch-switch start + ovs-vsctl --no-wait -- --may-exist add-br br-int fi - - /etc/init.d/openvswitch-switch start - ovs-vsctl --no-wait -- --may-exist add-br br-int } ALLOW_EMPTY_${SRCNAME}-setup = "1" diff --git a/meta-openstack/recipes-devtools/python/python-nova_git.bb b/meta-openstack/recipes-devtools/python/python-nova_git.bb index f3a6b86..7b560a7 100644 --- a/meta-openstack/recipes-devtools/python/python-nova_git.bb +++ b/meta-openstack/recipes-devtools/python/python-nova_git.bb @@ -160,33 +160,29 @@ do_install_append() { } pkg_postinst_${SRCNAME}-setup () { - if [ "x$D" != "x" ]; then - exit 1 + if [ -z "$D" ]; then + # This is to make sure postgres is configured and running + if ! pidof postmaster > /dev/null; then + /etc/init.d/postgresql-init + /etc/init.d/postgresql start + sleep 5 + fi + + sudo -u postgres createdb nova + sleep 2 + nova-manage db sync fi - - # This is to make sure postgres is configured and running - if ! pidof postmaster > /dev/null; then - /etc/init.d/postgresql-init - /etc/init.d/postgresql start - sleep 5 - fi - - sudo -u postgres createdb nova - sleep 2 - nova-manage db sync } pkg_postinst_${SRCNAME}-common () { - if [ "x$D" != "x" ]; then - exit 1 - fi - - if [ -d /home/root ]; then - echo "source /etc/nova/openrc" >> /home/root/.bashrc - echo "source /etc/nova/openrc" >> /home/root/.profile - else - echo "source /etc/nova/openrc" >> /root/.bashrc - echo "source /etc/nova/openrc" >> /root/.profile + if [ -z "$D" ]; then + if [ -d /home/root ]; then + echo "source /etc/nova/openrc" >> /home/root/.bashrc + echo "source /etc/nova/openrc" >> /home/root/.profile + else + echo "source /etc/nova/openrc" >> /root/.bashrc + echo "source /etc/nova/openrc" >> /root/.profile + fi fi } diff --git a/meta-openstack/recipes-devtools/python/python-rally_git.bb b/meta-openstack/recipes-devtools/python/python-rally_git.bb index d29e7cb..31d4242 100644 --- a/meta-openstack/recipes-devtools/python/python-rally_git.bb +++ b/meta-openstack/recipes-devtools/python/python-rally_git.bb @@ -63,22 +63,20 @@ do_install_append() { } pkg_postinst_${SRCNAME}-setup () { - if [ "x$D" != "x" ]; then - exit 1 + if [ -z "$D" ]; then + # This is to make sure postgres is configured and running + if ! pidof postmaster > /dev/null; then + /etc/init.d/postgresql-init + /etc/init.d/postgresql start + fi + + if [ ! -d /var/log/rally ]; then + mkdir /var/log/rally + fi + + sudo -u postgres createdb rally + rally-manage db recreate fi - - # This is to make sure postgres is configured and running - if ! pidof postmaster > /dev/null; then - /etc/init.d/postgresql-init - /etc/init.d/postgresql start - fi - - if [ ! -d /var/log/rally ]; then - mkdir /var/log/rally - fi - - sudo -u postgres createdb rally - rally-manage db recreate } PACKAGES += "${SRCNAME}-tests ${SRCNAME}-api ${SRCNAME} ${SRCNAME}-setup" diff --git a/meta-openstack/recipes-devtools/python/python-swift_git.bb b/meta-openstack/recipes-devtools/python/python-swift_git.bb index 8552ea7..fc7c258 100644 --- a/meta-openstack/recipes-devtools/python/python-swift_git.bb +++ b/meta-openstack/recipes-devtools/python/python-swift_git.bb @@ -109,28 +109,26 @@ do_install_append() { } pkg_postinst_${SRCNAME}-setup () { - if [ "x$D" != "x" ]; then - exit 1 + if [ -z "x$D" ]; then + CLUSTER_CONF=/etc/swift/cluster.conf + SWIFT_SETUP='/bin/bash /etc/swift/swift_setup.sh' + + for i in `seq 1 3`; do + BACKING_FILE=/etc/swift/swift_backing_$i + if [ "x${SWIFT_BACKING_FILE_SIZE}" != "x0G" ]; then + truncate -s ${SWIFT_BACKING_FILE_SIZE} $BACKING_FILE + sed "s:%SWIFT_BACKING_FILE_${i}%:$BACKING_FILE:g" -i $CLUSTER_CONF + else + sed "s:%SWIFT_BACKING_FILE_${i}%::g" -i $CLUSTER_CONF + fi + done + + $SWIFT_SETUP createrings + $SWIFT_SETUP formatdevs + $SWIFT_SETUP mountdevs + $SWIFT_SETUP -i "${CONTROLLER_IP}" adddevs + $SWIFT_SETUP unmountdevs fi - - CLUSTER_CONF=/etc/swift/cluster.conf - SWIFT_SETUP='/bin/bash /etc/swift/swift_setup.sh' - - for i in `seq 1 3`; do - BACKING_FILE=/etc/swift/swift_backing_$i - if [ "x${SWIFT_BACKING_FILE_SIZE}" != "x0G" ]; then - truncate -s ${SWIFT_BACKING_FILE_SIZE} $BACKING_FILE - sed "s:%SWIFT_BACKING_FILE_${i}%:$BACKING_FILE:g" -i $CLUSTER_CONF - else - sed "s:%SWIFT_BACKING_FILE_${i}%::g" -i $CLUSTER_CONF - fi - done - - $SWIFT_SETUP createrings - $SWIFT_SETUP formatdevs - $SWIFT_SETUP mountdevs - $SWIFT_SETUP -i "${CONTROLLER_IP}" adddevs - $SWIFT_SETUP unmountdevs } PACKAGES += "${SRCNAME}-tests ${SRCNAME} ${SRCNAME}-setup" diff --git a/meta-openstack/recipes-devtools/python/python-trove_git.bb b/meta-openstack/recipes-devtools/python/python-trove_git.bb index 830da92..b90e552 100755 --- a/meta-openstack/recipes-devtools/python/python-trove_git.bb +++ b/meta-openstack/recipes-devtools/python/python-trove_git.bb @@ -146,30 +146,29 @@ do_install_append() { pkg_postinst_${SRCNAME}-setup () { # python-trove-setup postinst start - if [ "x$D" != "x" ]; then - exit 1 + if [ -z "$D" ]; then + source /etc/nova/openrc + + # This is to make sure postgres is configured and running + if ! pidof postmaster > /dev/null; then + /etc/init.d/postgresql-init + /etc/init.d/postgresql start + sleep 5 + fi + + mkdir /var/log/trove + # Create database for trove. + sudo -u postgres createdb trove + + # Create default trove database. + trove-manage db_sync + # Create new datastore. + trove-manage datastore_update "postgresql" "" + # Set up new version + trove-manage datastore_version_update "postgresql" "9.1" "postgresql" 1 "postgresql-server-9.1" 1 + # Set new default version. + trove-manage datastore_update "postgresql" "9.1" fi - source /etc/nova/openrc - - # This is to make sure postgres is configured and running - if ! pidof postmaster > /dev/null; then - /etc/init.d/postgresql-init - /etc/init.d/postgresql start - sleep 5 - fi - - mkdir /var/log/trove - # Create database for trove. - sudo -u postgres createdb trove - - # Create default trove database. - trove-manage db_sync - # Create new datastore. - trove-manage datastore_update "postgresql" "" - # Set up new version - trove-manage datastore_version_update "postgresql" "9.1" "postgresql" 1 "postgresql-server-9.1" 1 - # Set new default version. - trove-manage datastore_update "postgresql" "9.1" } diff --git a/meta-openstack/recipes-support/postgresql/postgresql_9.%.bbappend b/meta-openstack/recipes-support/postgresql/postgresql_9.%.bbappend index 22dae71..b26054e 100644 --- a/meta-openstack/recipes-support/postgresql/postgresql_9.%.bbappend +++ b/meta-openstack/recipes-support/postgresql/postgresql_9.%.bbappend @@ -41,14 +41,12 @@ ALLOW_EMPTY_${PN}-setup = "1" pkg_postinst_${PN}-setup () { # postgres 9.2.4 postinst - if [ "x$D" != "x" ]; then - exit 1 - fi - - /etc/init.d/postgresql-init - if [ $? -ne 0 ]; then - echo "[ERROR] postgres: unable to create admin account" - exit 1 + if [ -z "$D" ]; then + /etc/init.d/postgresql-init + if [ $? -ne 0 ]; then + echo "[ERROR] postgres: unable to create admin account" + exit 1 + fi fi } -- 2.7.4 -- _______________________________________________ meta-virtualization mailing list meta-virtualization@yoctoproject.org https://lists.yoctoproject.org/listinfo/meta-virtualization