summaryrefslogtreecommitdiffstats
path: root/meta-openstack/recipes-devtools/python/python-nova.inc
diff options
context:
space:
mode:
Diffstat (limited to 'meta-openstack/recipes-devtools/python/python-nova.inc')
-rw-r--r--meta-openstack/recipes-devtools/python/python-nova.inc99
1 files changed, 99 insertions, 0 deletions
diff --git a/meta-openstack/recipes-devtools/python/python-nova.inc b/meta-openstack/recipes-devtools/python/python-nova.inc
new file mode 100644
index 0000000..be46460
--- /dev/null
+++ b/meta-openstack/recipes-devtools/python/python-nova.inc
@@ -0,0 +1,99 @@
1DESCRIPTION = "Nova is a cloud computing fabric controller"
2HOMEPAGE = "https://launchpad.net/nova"
3SECTION = "devel/python"
4LICENSE = "Apache-2.0"
5LIC_FILES_CHKSUM = "file://LICENSE;md5=1dece7821bf3fd70fe1309eaa37d52a2"
6
7DEPENDS = "sudo"
8
9SRCNAME = "nova"
10PYTHON_PN = "python-nova"
11
12FILESEXTRAPATHS := "${THISDIR}/${PYTHON_PN}"
13
14SRC_URI = "https://launchpad.net/${SRCNAME}/grizzly/${PV}/+download/${SRCNAME}-${PV}.tar.gz \
15 file://0001-nova-api-paste.ini-make-controller-IP-configurable.patch \
16 "
17
18SRC_URI[md5sum] = "6215982b9ed08b9042e088470d60a0a6"
19SRC_URI[sha256sum] = "f7c25186920daccb16867c5fd272318beb8cc076e5a55f79b5906618ef2724f4"
20
21S = "${WORKDIR}/${SRCNAME}-${PV}"
22
23inherit setuptools identity
24
25do_install_append() {
26
27 if [ ! -f "${WORKDIR}/nova.conf" ]; then
28 return
29 fi
30
31 TEMPLATE_CONF_DIR=${S}${sysconfdir}/${SRCNAME}
32 NOVA_CONF_DIR=${D}/${sysconfdir}/nova
33
34 install -d ${NOVA_CONF_DIR}
35 install -m 600 ${S}/etc/nova/policy.json ${NOVA_CONF_DIR}/
36
37 # Deploy filters to /etc/nova/rootwrap.d
38 install -m 755 -d ${NOVA_CONF_DIR}/rootwrap.d
39 install -m 600 ${S}/etc/nova/rootwrap.d/*.filters ${NOVA_CONF_DIR}/rootwrap.d
40 chown -R root:root ${NOVA_CONF_DIR}/rootwrap.d
41 chmod 644 ${NOVA_CONF_DIR}/rootwrap.d
42
43 # Set up rootwrap.conf, pointing to /etc/nova/rootwrap.d
44 install -m 644 ${S}/etc/nova/rootwrap.conf ${NOVA_CONF_DIR}/
45 sed -e "s:^filters_path=.*$:filters_path=${NOVA_CONF_DIR}/rootwrap.d:" \
46 -i ${NOVA_CONF_DIR}/rootwrap.conf
47 chown root:root $NOVA_CONF_DIR/rootwrap.conf
48
49 # Set up the rootwrap sudoers for nova
50 install -d ${D}${sysconfdir}/sudoers.d
51 touch ${D}${sysconfdir}/sudoers.d/nova-rootwrap
52 chmod 0440 ${D}${sysconfdir}/sudoers.d/nova-rootwrap
53 chown root:root ${D}${sysconfdir}/sudoers.d/nova-rootwrap
54 echo "root ALL=(root) NOPASSWD: ${bindir}/nova-rootwrap" > \
55 ${D}${sysconfdir}/sudoers.d/nova-rootwrap
56
57 # Configuration options
58 sed -e "s:%SERVICE_TENANT_NAME%:${SERVICE_TENANT_NAME}:g" \
59 ${TEMPLATE_CONF_DIR}/api-paste.ini > ${WORKDIR}/api-paste.ini
60 sed -e "s:%SERVICE_USER%:${SRCNAME}:g" -i ${WORKDIR}/api-paste.ini
61 sed -e "s:%SERVICE_PASSWORD%:${SERVICE_PASSWORD}:g" \
62 -i ${WORKDIR}/api-paste.ini
63 sed -e "s:%CONTROLLER_IP%:${CONTROLLER_IP}:g" -i ${WORKDIR}/api-paste.ini
64
65 sed -e "s:%DB_USER%:${DB_USER}:g" -i ${WORKDIR}/nova.conf
66 sed -e "s:%DB_PASSWORD%:${DB_PASSWORD}:g" -i ${WORKDIR}/nova.conf
67
68 sed -e "s:%CONTROLLER_IP%:${CONTROLLER_IP}:g" -i ${WORKDIR}/nova.conf
69 sed -e "s:%CONTROLLER_HOST%:${CONTROLLER_HOST}:g" -i ${WORKDIR}/nova.conf
70
71 sed -e "s:%OS_PASSWORD%:${ADMIN_PASSWORD}:g" -i ${WORKDIR}/openrc
72 sed -e "s:%SERVICE_TOKEN%:${SERVICE_TOKEN}:g" -i ${WORKDIR}/openrc
73
74 sed -e "s:%CONTROLLER_IP%:${CONTROLLER_IP}:g" -i ${WORKDIR}/openrc
75 sed -e "s:%CONTROLLER_HOST%:${CONTROLLER_HOST}:g" -i ${WORKDIR}/openrc
76
77 # Copy the configuration file
78 install -m 664 ${WORKDIR}/nova.conf ${NOVA_CONF_DIR}/nova.conf
79 install -m 664 ${WORKDIR}/api-paste.ini ${NOVA_CONF_DIR}
80 install -m 664 ${WORKDIR}/openrc ${NOVA_CONF_DIR}
81
82 install -d ${NOVA_CONF_DIR}/instances
83}
84
85# note the lowercase "files", these variables are used in the packaging
86# recipes themselves.
87files_${PYTHON_PN} = "${libdir}/*"
88
89files_${SRCNAME}-common = " ${bindir}/nova-manage \
90 ${bindir}/nova-rootwrap \
91 ${sysconfdir}/sudoers.d"
92
93files_${SRCNAME}-compute = " ${bindir}/nova-compute \
94 ${sysconfdir}/${SRCNAME}/* \
95 ${sysconfdir}/init.d/nova-compute"
96
97files_${SRCNAME}-controller = " ${bindir}/* \
98 ${sysconfdir}/${SRCNAME}/* \
99 ${sysconfdir}/init.d/nova-all" \ No newline at end of file