diff options
Diffstat (limited to 'meta-openstack/recipes-devtools/python')
4 files changed, 158 insertions, 269 deletions
diff --git a/meta-openstack/recipes-devtools/python/python-nova-compute_2013.1.3.bb b/meta-openstack/recipes-devtools/python/python-nova-compute_2013.1.3.bb deleted file mode 100644 index 2511b289..00000000 --- a/meta-openstack/recipes-devtools/python/python-nova-compute_2013.1.3.bb +++ /dev/null @@ -1,51 +0,0 @@ - -include python-nova.inc - -PR = "r0" - -FILESEXTRAPATHS := "${THISDIR}/${PYTHON_PN}" - -SRC_URI += "file://nova-compute \ - file://nova.conf \ - file://openrc \ - " - -inherit hosts update-rc.d - -PACKAGES = "${PN} ${SRCNAME}-compute ${SRCNAME}-compute-misc" - -do_install_append() { - if ${@base_contains('DISTRO_FEATURES', 'sysvinit', 'true', 'false', d)}; then - install -d ${D}${sysconfdir}/init.d - install -m 0755 ${WORKDIR}/nova-compute ${D}${sysconfdir}/init.d/nova-compute - fi -} - -#FILES_${SRCNAME}-compute = " ${files_${SRCNAME}-compute}" -# -# the controller is built, so we package it out of the way - -#FILES_${SRCNAME}-compute-misc = "${files_${SRCNAME}-controller} -#${files_${SRCNAME}-common} ${files_${PYTHON_PN}}" - -FILES_${PN} = "${libdir}/python*" - -FILES_${SRCNAME}-compute = " \ - ${bindir}/nova-compute \ - ${sysconfdir}/${SRCNAME}/* \ - ${sysconfdir}/init.d/nova-compute" - -FILES_${SRCNAME}-compute-misc = " \ - ${bindir} \ - ${sysconfdir}/init.d/nova-all \ - ${bindir}/nova-manage \ - ${bindir}/nova-rootwrap \ - ${sysconfdir}/sudoers.d" - -RDEPENDS_${SRCNAME}-compute = "${PYTHON_PN} ${SRCNAME}-common \ - qemu libvirt libvirt-libvirtd libvirt-python libvirt-virsh" - -RCONFLICTS_${SRCNAME}-compute = "${SRCNAME}-controller" - -INITSCRIPT_PACKAGES = "${SRCNAME}-compute" -INITSCRIPT_NAME_${SRCNAME}-compute = "nova-compute" diff --git a/meta-openstack/recipes-devtools/python/python-nova-controller_2013.1.3.bb b/meta-openstack/recipes-devtools/python/python-nova-controller_2013.1.3.bb deleted file mode 100644 index c99a890e..00000000 --- a/meta-openstack/recipes-devtools/python/python-nova-controller_2013.1.3.bb +++ /dev/null @@ -1,87 +0,0 @@ -include python-nova.inc - -PR = "r0" - -FILESEXTRAPATHS := "${THISDIR}/${PYTHON_PN}" - -SRC_URI += "file://nova-all \ - file://nova-consoleauth \ - file://nova-novncproxy \ - file://nova.conf \ - file://openrc \ - " - -inherit hosts update-rc.d - -PACKAGES = "${PN} ${PN}-dbg ${SRCNAME}-controller-misc ${SRCNAME}-controller" -PACKAGES += " ${SRCNAME}-consoleauth" -PACKAGES += " ${SRCNAME}-novncproxy" - -do_install_append() { - if ${@base_contains('DISTRO_FEATURES', 'sysvinit', 'true', 'false', d)}; then - install -d ${D}${sysconfdir}/init.d - install -m 0755 ${WORKDIR}/nova-all ${D}${sysconfdir}/init.d/nova-all - install -m 0755 ${WORKDIR}/nova-consoleauth ${D}${sysconfdir}/init.d/nova-consoleauth - install -m 0755 ${WORKDIR}/nova-novncproxy ${D}${sysconfdir}/init.d/nova-novncproxy - fi -} - -pkg_postinst_${SRCNAME}-controller () { - if [ "x$D" != "x" ]; then - exit 1 - fi - - # This is to make sure postgres is configured and running - if ! pidof postmaster > /dev/null; then - sudo -u postgres initdb -D /etc/postgresql/ - /etc/init.d/postgresql start - sleep 0.2 - sudo -u postgres psql -c "CREATE ROLE ${DB_USER} WITH SUPERUSER LOGIN PASSWORD '${DB_PASSWORD}'" - fi - - sudo -u postgres createdb nova - nova-manage db sync -} - - -#FILES_${SRCNAME}-controller = "${files_${SRCNAME}-controller}" -# -# If the compute is built, so we package it out of the way - -#FILES_${SRCNAME}-controller-misc = "${files_${SRCNAME}-compute} -#${files_${SRCNAME}-common} ${files_${PYTHON_PN}}" - -FILES_${SRCNAME}-controller = " \ - ${bindir} \ - ${sysconfdir}/${SRCNAME}/* \ - ${sysconfdir}/init.d/nova-all \ -" - -FILES_${SRCNAME}-consoleauth = " \ - ${sysconfdir}/init.d/nova-consoleauth \ -" -FILES_${SRCNAME}-novncproxy = " \ - ${sysconfdir}/init.d/nova-novncproxy \ -" - -FILES_${SRCNAME}-controller-misc = " \ - ${bindir}/nova-compute \ - ${sysconfdir}/init.d/nova-compute \ - ${bindir}/nova-manage \ - ${bindir}/nova-rootwrap \ - ${sysconfdir}/sudoers.d \ - ${libdir}" - -FILES_${PN} = " \ - ${libdir}/python*/site-packages" - -RDEPENDS_${SRCNAME}-controller = "${PYTHON_PN} ${SRCNAME}-common ${SRCNAME}-consoleauth \ - ${SRCNAME}-novncproxy \ - postgresql postgresql-client python-psycopg2" - -RCONFLICTS_${SRCNAME}-controller = "${SRCNAME}-compute" - -INITSCRIPT_PACKAGES = "${SRCNAME}-controller ${SRCNAME}-consoleauth ${SRCNAME}-novncproxy" -INITSCRIPT_NAME_${SRCNAME}-controller = "nova-all" -INITSCRIPT_NAME_${SRCNAME}-consoleauth = "nova-consoleauth" -INITSCRIPT_NAME_${SRCNAME}-novncproxy = "nova-novncproxy" diff --git a/meta-openstack/recipes-devtools/python/python-nova.inc b/meta-openstack/recipes-devtools/python/python-nova.inc deleted file mode 100644 index e520130c..00000000 --- a/meta-openstack/recipes-devtools/python/python-nova.inc +++ /dev/null @@ -1,102 +0,0 @@ -DESCRIPTION = "Nova is a cloud computing fabric controller" -HOMEPAGE = "https://launchpad.net/nova" -SECTION = "devel/python" -LICENSE = "Apache-2.0" -LIC_FILES_CHKSUM = "file://LICENSE;md5=1dece7821bf3fd70fe1309eaa37d52a2" - -DEPENDS = "sudo" - -SRCNAME = "nova" -PYTHON_PN = "python-nova" - -FILESEXTRAPATHS := "${THISDIR}/${PYTHON_PN}" - -SRC_URI = "https://launchpad.net/${SRCNAME}/grizzly/${PV}/+download/${SRCNAME}-${PV}.tar.gz \ - file://0001-nova-api-paste.ini-make-controller-IP-configurable.patch \ - " - -SRC_URI[md5sum] = "6215982b9ed08b9042e088470d60a0a6" -SRC_URI[sha256sum] = "f7c25186920daccb16867c5fd272318beb8cc076e5a55f79b5906618ef2724f4" - -S = "${WORKDIR}/${SRCNAME}-${PV}" - -inherit setuptools identity - -do_install_append() { - - if [ ! -f "${WORKDIR}/nova.conf" ]; then - return - fi - - TEMPLATE_CONF_DIR=${S}${sysconfdir}/${SRCNAME} - NOVA_CONF_DIR=${D}/${sysconfdir}/nova - - install -d ${NOVA_CONF_DIR} - install -m 600 ${S}/etc/nova/policy.json ${NOVA_CONF_DIR}/ - - # Deploy filters to /etc/nova/rootwrap.d - install -m 755 -d ${NOVA_CONF_DIR}/rootwrap.d - install -m 600 ${S}/etc/nova/rootwrap.d/*.filters ${NOVA_CONF_DIR}/rootwrap.d - chown -R root:root ${NOVA_CONF_DIR}/rootwrap.d - chmod 644 ${NOVA_CONF_DIR}/rootwrap.d - - # Set up rootwrap.conf, pointing to /etc/nova/rootwrap.d - install -m 644 ${S}/etc/nova/rootwrap.conf ${NOVA_CONF_DIR}/ - sed -e "s:^filters_path=.*$:filters_path=${sysconfdir}/nova/rootwrap.d:" \ - -i ${NOVA_CONF_DIR}/rootwrap.conf - chown root:root $NOVA_CONF_DIR/rootwrap.conf - - # Set up the rootwrap sudoers for nova - install -d ${D}${sysconfdir}/sudoers.d - touch ${D}${sysconfdir}/sudoers.d/nova-rootwrap - chmod 0440 ${D}${sysconfdir}/sudoers.d/nova-rootwrap - chown root:root ${D}${sysconfdir}/sudoers.d/nova-rootwrap - echo "root ALL=(root) NOPASSWD: ${bindir}/nova-rootwrap" > \ - ${D}${sysconfdir}/sudoers.d/nova-rootwrap - - # Configuration options - sed -e "s:%SERVICE_TENANT_NAME%:${SERVICE_TENANT_NAME}:g" \ - ${TEMPLATE_CONF_DIR}/api-paste.ini > ${WORKDIR}/api-paste.ini - sed -e "s:%SERVICE_USER%:${SRCNAME}:g" -i ${WORKDIR}/api-paste.ini - sed -e "s:%SERVICE_PASSWORD%:${SERVICE_PASSWORD}:g" \ - -i ${WORKDIR}/api-paste.ini - sed -e "s:%CONTROLLER_IP%:${CONTROLLER_IP}:g" -i ${WORKDIR}/api-paste.ini - - sed -e "s:%DB_USER%:${DB_USER}:g" -i ${WORKDIR}/nova.conf - sed -e "s:%DB_PASSWORD%:${DB_PASSWORD}:g" -i ${WORKDIR}/nova.conf - - sed -e "s:%CONTROLLER_IP%:${CONTROLLER_IP}:g" -i ${WORKDIR}/nova.conf - sed -e "s:%CONTROLLER_HOST%:${CONTROLLER_HOST}:g" -i ${WORKDIR}/nova.conf - - sed -e "s:%COMPUTE_IP%:${COMPUTE_IP}:g" -i ${WORKDIR}/nova.conf - sed -e "s:%COMPUTE_HOST%:${COMPUTE_HOST}:g" -i ${WORKDIR}/nova.conf - - sed -e "s:%OS_PASSWORD%:${ADMIN_PASSWORD}:g" -i ${WORKDIR}/openrc - sed -e "s:%SERVICE_TOKEN%:${SERVICE_TOKEN}:g" -i ${WORKDIR}/openrc - - sed -e "s:%CONTROLLER_IP%:${CONTROLLER_IP}:g" -i ${WORKDIR}/openrc - sed -e "s:%CONTROLLER_HOST%:${CONTROLLER_HOST}:g" -i ${WORKDIR}/openrc - - # Copy the configuration file - install -m 664 ${WORKDIR}/nova.conf ${NOVA_CONF_DIR}/nova.conf - install -m 664 ${WORKDIR}/api-paste.ini ${NOVA_CONF_DIR} - install -m 664 ${WORKDIR}/openrc ${NOVA_CONF_DIR} - - install -d ${NOVA_CONF_DIR}/instances -} - -# note the lowercase "files", these variables are used in the packaging -# recipes themselves. -files_${PYTHON_PN} = "${libdir}/*" - -files_${SRCNAME}-common = " ${bindir}/nova-manage \ - ${bindir}/nova-rootwrap \ - ${sysconfdir}/sudoers.d" - -files_${SRCNAME}-compute = " ${bindir}/nova-compute \ - ${sysconfdir}/${SRCNAME}/* \ - ${sysconfdir}/init.d/nova-compute" - -files_${SRCNAME}-controller = " ${bindir}/* \ - ${sysconfdir}/${SRCNAME}/* \ - ${sysconfdir}/init.d/nova-all"
\ No newline at end of file diff --git a/meta-openstack/recipes-devtools/python/python-nova_2013.1.3.bb b/meta-openstack/recipes-devtools/python/python-nova_2013.1.3.bb index e7f844a2..c2dd1f3f 100644 --- a/meta-openstack/recipes-devtools/python/python-nova_2013.1.3.bb +++ b/meta-openstack/recipes-devtools/python/python-nova_2013.1.3.bb @@ -1,49 +1,162 @@ -include python-nova.inc +DESCRIPTION = "Nova is a cloud computing fabric controller" +HOMEPAGE = "https://launchpad.net/nova" +SECTION = "devel/python" +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://LICENSE;md5=1dece7821bf3fd70fe1309eaa37d52a2" -inherit useradd +DEPENDS = "sudo" -pkg_postinst_${SRCNAME}-common () { - if [ "x$D" != "x" ]; then - exit 1 +PR = "r0" +SRCNAME = "nova" + +FILESEXTRAPATHS := "${THISDIR}/${PN}" + +SRC_URI = "https://launchpad.net/${SRCNAME}/grizzly/${PV}/+download/${SRCNAME}-${PV}.tar.gz \ + file://0001-nova-api-paste.ini-make-controller-IP-configurable.patch \ + " + +SRC_URI += "file://nova-all \ + file://nova-consoleauth \ + file://nova-novncproxy \ + file://nova.conf \ + file://openrc \ + " + +SRC_URI[md5sum] = "6215982b9ed08b9042e088470d60a0a6" +SRC_URI[sha256sum] = "f7c25186920daccb16867c5fd272318beb8cc076e5a55f79b5906618ef2724f4" + +S = "${WORKDIR}/${SRCNAME}-${PV}" + +inherit update-rc.d setuptools identity hosts + +do_install_append() { + if [ ! -f "${WORKDIR}/nova.conf" ]; then + return fi - if [ -d $D/home/root/ ]; then - echo "source /etc/nova/openrc" >> $D/home/root/.bashrc - elif [ -d $D/root/ ]; then - echo "source /etc/nova/openrc" >> $D/root/.bashrc + TEMPLATE_CONF_DIR=${S}${sysconfdir}/${SRCNAME} + NOVA_CONF_DIR=${D}/${sysconfdir}/nova + + install -d ${NOVA_CONF_DIR} + install -m 600 ${S}/etc/nova/policy.json ${NOVA_CONF_DIR}/ + + # Deploy filters to /etc/nova/rootwrap.d + install -m 755 -d ${NOVA_CONF_DIR}/rootwrap.d + install -m 600 ${S}/etc/nova/rootwrap.d/*.filters ${NOVA_CONF_DIR}/rootwrap.d + chown -R root:root ${NOVA_CONF_DIR}/rootwrap.d + chmod 644 ${NOVA_CONF_DIR}/rootwrap.d + + # Set up rootwrap.conf, pointing to /etc/nova/rootwrap.d + install -m 644 ${S}/etc/nova/rootwrap.conf ${NOVA_CONF_DIR}/ + sed -e "s:^filters_path=.*$:filters_path=${sysconfdir}/nova/rootwrap.d:" \ + -i ${NOVA_CONF_DIR}/rootwrap.conf + chown root:root $NOVA_CONF_DIR/rootwrap.conf + + # Set up the rootwrap sudoers for nova + install -d ${D}${sysconfdir}/sudoers.d + touch ${D}${sysconfdir}/sudoers.d/nova-rootwrap + chmod 0440 ${D}${sysconfdir}/sudoers.d/nova-rootwrap + chown root:root ${D}${sysconfdir}/sudoers.d/nova-rootwrap + echo "root ALL=(root) NOPASSWD: ${bindir}/nova-rootwrap" > \ + ${D}${sysconfdir}/sudoers.d/nova-rootwrap + + # Configuration options + sed -e "s:%SERVICE_TENANT_NAME%:${SERVICE_TENANT_NAME}:g" \ + ${TEMPLATE_CONF_DIR}/api-paste.ini > ${WORKDIR}/api-paste.ini + sed -e "s:%SERVICE_USER%:${SRCNAME}:g" -i ${WORKDIR}/api-paste.ini + sed -e "s:%SERVICE_PASSWORD%:${SERVICE_PASSWORD}:g" \ + -i ${WORKDIR}/api-paste.ini + sed -e "s:%CONTROLLER_IP%:${CONTROLLER_IP}:g" -i ${WORKDIR}/api-paste.ini + + sed -e "s:%DB_USER%:${DB_USER}:g" -i ${WORKDIR}/nova.conf + sed -e "s:%DB_PASSWORD%:${DB_PASSWORD}:g" -i ${WORKDIR}/nova.conf + + sed -e "s:%CONTROLLER_IP%:${CONTROLLER_IP}:g" -i ${WORKDIR}/nova.conf + sed -e "s:%CONTROLLER_HOST%:${CONTROLLER_HOST}:g" -i ${WORKDIR}/nova.conf + + sed -e "s:%COMPUTE_IP%:${COMPUTE_IP}:g" -i ${WORKDIR}/nova.conf + sed -e "s:%COMPUTE_HOST%:${COMPUTE_HOST}:g" -i ${WORKDIR}/nova.conf + + sed -e "s:%OS_PASSWORD%:${ADMIN_PASSWORD}:g" -i ${WORKDIR}/openrc + sed -e "s:%SERVICE_TOKEN%:${SERVICE_TOKEN}:g" -i ${WORKDIR}/openrc + + sed -e "s:%CONTROLLER_IP%:${CONTROLLER_IP}:g" -i ${WORKDIR}/openrc + sed -e "s:%CONTROLLER_HOST%:${CONTROLLER_HOST}:g" -i ${WORKDIR}/openrc + + # Copy the configuration file + install -m 664 ${WORKDIR}/nova.conf ${NOVA_CONF_DIR}/nova.conf + install -m 664 ${WORKDIR}/api-paste.ini ${NOVA_CONF_DIR} + install -m 664 ${WORKDIR}/openrc ${NOVA_CONF_DIR} + + install -d ${NOVA_CONF_DIR}/instances + + if ${@base_contains('DISTRO_FEATURES', 'sysvinit', 'true', 'false', d)}; then + install -d ${D}${sysconfdir}/init.d + install -m 0755 ${WORKDIR}/nova-all ${D}${sysconfdir}/init.d/nova-all + install -m 0755 ${WORKDIR}/nova-consoleauth ${D}${sysconfdir}/init.d/nova-consoleauth + install -m 0755 ${WORKDIR}/nova-novncproxy ${D}${sysconfdir}/init.d/nova-novncproxy fi } -PACKAGES += "${SRCNAME}-common ${SRCNAME}-common-misc" - -#FILES_${PN} = "${files_${PN}}" -# -#FILES_${SRCNAME}-common = "${files_${SRCNAME}-common}" -# -#FILES_${SRCNAME}-common-misc = "${files_${SRCNAME}-compute} ${files_${SRCNAME}-controller}" +pkg_postinst_${SRCNAME}-controller () { + if [ "x$D" != "x" ]; then + exit 1 + fi -FILES_${PN} = "${libdir}/python*" + # 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 -FILES_${SRCNAME}-common = " \ - ${bindir}/nova-manage \ - ${bindir}/nova-rootwrap \ - ${sysconfdir}/sudoers.d" + sudo -u postgres createdb nova + sleep 2 + nova-manage db sync +} -FILES_${SRCNAME}-common-misc = " \ - ${bindir}/nova-compute \ - ${sysconfdir}/${SRCNAME}/* \ - ${sysconfdir}/init.d/nova-compute \ - ${bindir} \ - ${sysconfdir}/init.d/nova-all" +pkg_postinst_${SRCNAME}-common () { + if [ "x$D" != "x" ]; then + exit 1 + fi -RDEPENDS_${SRCNAME}-common = "${PN} openssl openssl-misc libxml2 libxslt \ - iptables curl dnsmasq sudo procps" + if [ -d /home/root ]; then + echo "source /etc/nova/openrc" > /home/root/.bashrc + else + echo "source /etc/nova/openrc" > /root/.bashrc + fi +} USERADD_PACKAGES = "${PN}" GROUPADD_PARAM_${PN} = "--system nova" USERADD_PARAM_${PN} = "--system --home /var/lib/nova -g nova \ --no-create-home --shell /bin/false nova" +PACKAGES += " ${SRCNAME}-common ${SRCNAME}-compute ${SRCNAME}-controller" +PACKAGES += " ${SRCNAME}-consoleauth" +PACKAGES += " ${SRCNAME}-novncproxy" + + +FILES_${PN} = "${libdir}/*" + +FILES_${SRCNAME}-common = "${bindir}/nova-manage \ + ${bindir}/nova-rootwrap \ + ${sysconfdir}/${SRCNAME}/* \ + ${sysconfdir}/sudoers.d" + +FILES_${SRCNAME}-compute = "${bindir}/nova-compute \ + ${sysconfdir}/init.d/nova-compute" + +FILES_${SRCNAME}-controller = "${bindir}/* \ + ${sysconfdir}/init.d/nova-all " + +FILES_${SRCNAME}-consoleauth = " \ + ${sysconfdir}/init.d/nova-consoleauth \ +" +FILES_${SRCNAME}-novncproxy = " \ + ${sysconfdir}/init.d/nova-novncproxy \ +" + RDEPENDS_${PN} = " python-modules \ python-misc \ python-argparse \ @@ -79,3 +192,19 @@ RDEPENDS_${PN} = " python-modules \ python-webob \ python-websockify \ " + +RDEPENDS_${SRCNAME}-common = "${PN} openssl openssl-misc libxml2 libxslt \ + iptables curl dnsmasq sudo procps" + +RDEPENDS_${SRCNAME}-controller = "${PN} ${SRCNAME}-common \ + ${SRCNAME}-consoleauth \ + ${SRCNAME}-novncproxy \ + postgresql postgresql-client python-psycopg2" + +RDEPENDS_${SRCNAME}-compute = "${PN} ${SRCNAME}-common \ + qemu libvirt libvirt-libvirtd libvirt-python libvirt-virsh" + +INITSCRIPT_PACKAGES = "${SRCNAME}-controller ${SRCNAME}-consoleauth ${SRCNAME}-novncproxy" +INITSCRIPT_NAME_${SRCNAME}-controller = "nova-all" +INITSCRIPT_NAME_${SRCNAME}-consoleauth = "nova-consoleauth" +INITSCRIPT_NAME_${SRCNAME}-novncproxy = "nova-novncproxy" |