diff options
author | Bruce Ashfield <bruce.ashfield@windriver.com> | 2013-08-25 23:59:46 -0400 |
---|---|---|
committer | Bruce Ashfield <bruce.ashfield@windriver.com> | 2013-08-28 18:42:00 -0400 |
commit | 6e8b7c9fb262768cb89712948b9fadf461e472ba (patch) | |
tree | d29fc8dd1b43815e3892ab28b2c1a05333359ef3 /meta-openstack/recipes-devtools/python | |
parent | ec5aab41b280d719c14e1c5d88d09e7b38168bb3 (diff) | |
download | meta-cloud-services-6e8b7c9fb262768cb89712948b9fadf461e472ba.tar.gz |
nova: split into explicit compute and controller recipes
To allow unique configuration of nova for compute and controller nodes,
the nova class is split into two, but packaged largely the same way.
The compute and controller classes are introduced to hold configuration
values and operations that are used by the common packaging routines to
customize and deploy.
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Diffstat (limited to 'meta-openstack/recipes-devtools/python')
7 files changed, 229 insertions, 126 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 new file mode 100644 index 0000000..204313d --- /dev/null +++ b/meta-openstack/recipes-devtools/python/python-nova-compute_2013.1.3.bb | |||
@@ -0,0 +1,35 @@ | |||
1 | |||
2 | include python-nova.inc | ||
3 | |||
4 | PR = "r0" | ||
5 | |||
6 | FILESEXTRAPATHS := "${THISDIR}/${PYTHON_PN}" | ||
7 | |||
8 | SRC_URI += "file://nova-compute \ | ||
9 | file://nova.conf \ | ||
10 | file://openrc \ | ||
11 | " | ||
12 | |||
13 | inherit compute update-rc.d | ||
14 | |||
15 | PACKAGES = "${SRCNAME}-compute ${SRCNAME}-compute-misc" | ||
16 | |||
17 | do_install_append() { | ||
18 | if ${@base_contains('DISTRO_FEATURES', 'sysvinit', 'true', 'false', d)}; then | ||
19 | install -d ${D}${sysconfdir}/init.d | ||
20 | install -m 0755 ${WORKDIR}/nova-compute ${D}${sysconfdir}/init.d/nova-compute | ||
21 | fi | ||
22 | } | ||
23 | |||
24 | FILES_${SRCNAME}-compute = " ${files_${SRCNAME}-compute}" | ||
25 | |||
26 | # the controller is built, so we package it out of the way | ||
27 | FILES_${SRCNAME}-compute-misc = "${files_${SRCNAME}-controller} ${files_${SRCNAME}-common} ${files_${PYTHON_PN}}" | ||
28 | |||
29 | RDEPENDS_${SRCNAME}-compute = "${PYTHON_PN} ${SRCNAME}-common \ | ||
30 | qemu libvirt libvirt-libvirtd libvirt-python libvirt-virsh" | ||
31 | |||
32 | RCONFLICTS_${SRCNAME}-compute = "${SRCNAME}-controller" | ||
33 | |||
34 | INITSCRIPT_PACKAGES = "${SRCNAME}-compute" | ||
35 | 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 new file mode 100644 index 0000000..686c1d7 --- /dev/null +++ b/meta-openstack/recipes-devtools/python/python-nova-controller_2013.1.3.bb | |||
@@ -0,0 +1,52 @@ | |||
1 | include python-nova.inc | ||
2 | |||
3 | PR = "r0" | ||
4 | |||
5 | FILESEXTRAPATHS := "${THISDIR}/${PYTHON_PN}" | ||
6 | |||
7 | SRC_URI += "file://nova-all \ | ||
8 | file://nova.conf \ | ||
9 | file://openrc \ | ||
10 | " | ||
11 | |||
12 | inherit controller update-rc.d | ||
13 | |||
14 | PACKAGES = "${SRCNAME}-controller ${SRCNAME}-controller-misc" | ||
15 | |||
16 | do_install_append() { | ||
17 | if ${@base_contains('DISTRO_FEATURES', 'sysvinit', 'true', 'false', d)}; then | ||
18 | install -d ${D}${sysconfdir}/init.d | ||
19 | install -m 0755 ${WORKDIR}/nova-all ${D}${sysconfdir}/init.d/nova-all | ||
20 | fi | ||
21 | } | ||
22 | |||
23 | pkg_postinst_${SRCNAME}-controller () { | ||
24 | if [ "x$D" != "x" ]; then | ||
25 | exit 1 | ||
26 | fi | ||
27 | |||
28 | # This is to make sure postgres is configured and running | ||
29 | if ! pidof postmaster > /dev/null; then | ||
30 | sudo -u postgres initdb -D /etc/postgresql/ | ||
31 | /etc/init.d/postgresql start | ||
32 | sleep 0.2 | ||
33 | sudo -u postgres psql -c "CREATE ROLE ${DB_USER} WITH SUPERUSER LOGIN PASSWORD '${DB_PASSWORD}'" | ||
34 | fi | ||
35 | |||
36 | sudo -u postgres createdb nova | ||
37 | nova-manage db sync | ||
38 | } | ||
39 | |||
40 | |||
41 | FILES_${SRCNAME}-controller = "${files_${SRCNAME}-controller}" | ||
42 | |||
43 | # If the compute is built, so we package it out of the way | ||
44 | FILES_${SRCNAME}-controller-misc = "${files_${SRCNAME}-compute} ${files_${SRCNAME}-common} ${files_${PYTHON_PN}}" | ||
45 | |||
46 | RDEPENDS_${SRCNAME}-controller = "${PYTHON_PN} ${SRCNAME}-common \ | ||
47 | postgresql postgresql-client python-psycopg2" | ||
48 | |||
49 | RCONFLICTS_${SRCNAME}-controller = "${SRCNAME}-compute" | ||
50 | |||
51 | INITSCRIPT_PACKAGES = "${SRCNAME}-controller" | ||
52 | INITSCRIPT_NAME_${SRCNAME}-controller = "nova-all" | ||
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 @@ | |||
1 | DESCRIPTION = "Nova is a cloud computing fabric controller" | ||
2 | HOMEPAGE = "https://launchpad.net/nova" | ||
3 | SECTION = "devel/python" | ||
4 | LICENSE = "Apache-2.0" | ||
5 | LIC_FILES_CHKSUM = "file://LICENSE;md5=1dece7821bf3fd70fe1309eaa37d52a2" | ||
6 | |||
7 | DEPENDS = "sudo" | ||
8 | |||
9 | SRCNAME = "nova" | ||
10 | PYTHON_PN = "python-nova" | ||
11 | |||
12 | FILESEXTRAPATHS := "${THISDIR}/${PYTHON_PN}" | ||
13 | |||
14 | SRC_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 | |||
18 | SRC_URI[md5sum] = "6215982b9ed08b9042e088470d60a0a6" | ||
19 | SRC_URI[sha256sum] = "f7c25186920daccb16867c5fd272318beb8cc076e5a55f79b5906618ef2724f4" | ||
20 | |||
21 | S = "${WORKDIR}/${SRCNAME}-${PV}" | ||
22 | |||
23 | inherit setuptools identity | ||
24 | |||
25 | do_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. | ||
87 | files_${PYTHON_PN} = "${libdir}/*" | ||
88 | |||
89 | files_${SRCNAME}-common = " ${bindir}/nova-manage \ | ||
90 | ${bindir}/nova-rootwrap \ | ||
91 | ${sysconfdir}/sudoers.d" | ||
92 | |||
93 | files_${SRCNAME}-compute = " ${bindir}/nova-compute \ | ||
94 | ${sysconfdir}/${SRCNAME}/* \ | ||
95 | ${sysconfdir}/init.d/nova-compute" | ||
96 | |||
97 | files_${SRCNAME}-controller = " ${bindir}/* \ | ||
98 | ${sysconfdir}/${SRCNAME}/* \ | ||
99 | ${sysconfdir}/init.d/nova-all" \ No newline at end of file | ||
diff --git a/meta-openstack/recipes-devtools/python/python-nova/0001-nova-api-paste.ini-make-controller-IP-configurable.patch b/meta-openstack/recipes-devtools/python/python-nova/0001-nova-api-paste.ini-make-controller-IP-configurable.patch new file mode 100644 index 0000000..7d2ed7e --- /dev/null +++ b/meta-openstack/recipes-devtools/python/python-nova/0001-nova-api-paste.ini-make-controller-IP-configurable.patch | |||
@@ -0,0 +1,26 @@ | |||
1 | From dd200f769d745ed4cb02faf40ebc32252046d783 Mon Sep 17 00:00:00 2001 | ||
2 | From: Bruce Ashfield <bruce.ashfield@windriver.com> | ||
3 | Date: Wed, 28 Aug 2013 01:38:16 -0400 | ||
4 | Subject: [PATCH] nova/api-paste.ini: make controller IP configurable | ||
5 | |||
6 | Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com> | ||
7 | --- | ||
8 | etc/nova/api-paste.ini | 2 +- | ||
9 | 1 file changed, 1 insertion(+), 1 deletion(-) | ||
10 | |||
11 | diff --git a/etc/nova/api-paste.ini b/etc/nova/api-paste.ini | ||
12 | index 34c87b9..c770408 100644 | ||
13 | --- a/etc/nova/api-paste.ini | ||
14 | +++ b/etc/nova/api-paste.ini | ||
15 | @@ -98,7 +98,7 @@ paste.filter_factory = nova.api.auth:NovaKeystoneContext.factory | ||
16 | |||
17 | [filter:authtoken] | ||
18 | paste.filter_factory = keystoneclient.middleware.auth_token:filter_factory | ||
19 | -auth_host = 127.0.0.1 | ||
20 | +auth_host = %CONTROLLER_IP% | ||
21 | auth_port = 35357 | ||
22 | auth_protocol = http | ||
23 | admin_tenant_name = %SERVICE_TENANT_NAME% | ||
24 | -- | ||
25 | 1.7.10.4 | ||
26 | |||
diff --git a/meta-openstack/recipes-devtools/python/python-nova/nova.conf b/meta-openstack/recipes-devtools/python/python-nova/nova.conf index dbbd1a8..f698349 100644 --- a/meta-openstack/recipes-devtools/python/python-nova/nova.conf +++ b/meta-openstack/recipes-devtools/python/python-nova/nova.conf | |||
@@ -34,11 +34,12 @@ force_dhcp_release=False | |||
34 | dhcpbridge=/usr/bin/nova-dhcpbridge | 34 | dhcpbridge=/usr/bin/nova-dhcpbridge |
35 | 35 | ||
36 | #Database configuration | 36 | #Database configuration |
37 | sql_connection = postgresql://%DB_USER%:%DB_PASSWORD%@localhost/nova | 37 | # sql_connection = postgresql://%DB_USER%:%DB_PASSWORD%@localhost/nova |
38 | sql_connection = postgresql://%DB_USER%:%DB_PASSWORD%@%CONTROLLER_HOST%/nova | ||
38 | 39 | ||
39 | #RabbitMQ configuration | 40 | #RabbitMQ configuration |
40 | rpc_backend = nova.rpc.impl_kombu | 41 | rpc_backend = nova.rpc.impl_kombu |
41 | rabbit_host = 0.0.0.0 | 42 | rabbit_host = %CONTROLLER_IP% |
42 | rabbit_port = 5672 | 43 | rabbit_port = 5672 |
43 | 44 | ||
44 | #Quantum | 45 | #Quantum |
diff --git a/meta-openstack/recipes-devtools/python/python-nova/openrc b/meta-openstack/recipes-devtools/python/python-nova/openrc index 1d0a1ea..c28f355 100644 --- a/meta-openstack/recipes-devtools/python/python-nova/openrc +++ b/meta-openstack/recipes-devtools/python/python-nova/openrc | |||
@@ -1,6 +1,6 @@ | |||
1 | export OS_TENANT_NAME=admin | 1 | export OS_TENANT_NAME=admin |
2 | export OS_USERNAME=admin | 2 | export OS_USERNAME=admin |
3 | export OS_PASSWORD=%OS_PASSWORD% | 3 | export OS_PASSWORD=%OS_PASSWORD% |
4 | export OS_AUTH_URL="http://localhost:5000/v2.0/" | 4 | export OS_AUTH_URL="http://%CONTROLLER_HOST%:5000/v2.0/" |
5 | export SERVICE_ENDPOINT="http://localhost:35357/v2.0" | 5 | export SERVICE_ENDPOINT="http://%CONTROLLER_HOST%:35357/v2.0" |
6 | export SERVICE_TOKEN=%SERVICE_TOKEN% | 6 | export SERVICE_TOKEN=%SERVICE_TOKEN% |
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 95065fc..c10bebb 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,88 +1,6 @@ | |||
1 | DESCRIPTION = "Nova is a cloud computing fabric controller" | 1 | include python-nova.inc |
2 | HOMEPAGE = "https://launchpad.net/nova" | ||
3 | SECTION = "devel/python" | ||
4 | LICENSE = "Apache-2.0" | ||
5 | LIC_FILES_CHKSUM = "file://LICENSE;md5=1dece7821bf3fd70fe1309eaa37d52a2" | ||
6 | 2 | ||
7 | DEPENDS = "sudo" | 3 | inherit useradd |
8 | |||
9 | PR = "r0" | ||
10 | SRCNAME = "nova" | ||
11 | |||
12 | SRC_URI = "https://launchpad.net/${SRCNAME}/grizzly/${PV}/+download/${SRCNAME}-${PV}.tar.gz \ | ||
13 | file://nova.conf \ | ||
14 | file://nova-compute \ | ||
15 | file://nova-all \ | ||
16 | file://openrc \ | ||
17 | " | ||
18 | SRC_URI[md5sum] = "6215982b9ed08b9042e088470d60a0a6" | ||
19 | SRC_URI[sha256sum] = "f7c25186920daccb16867c5fd272318beb8cc076e5a55f79b5906618ef2724f4" | ||
20 | |||
21 | S = "${WORKDIR}/${SRCNAME}-${PV}" | ||
22 | |||
23 | inherit setuptools useradd update-rc.d identity | ||
24 | |||
25 | do_install_append() { | ||
26 | TEMPLATE_CONF_DIR=${S}${sysconfdir}/${SRCNAME} | ||
27 | NOVA_CONF_DIR=${D}/${sysconfdir}/nova | ||
28 | |||
29 | install -d ${NOVA_CONF_DIR} | ||
30 | install -m 600 ${S}/etc/nova/policy.json ${NOVA_CONF_DIR}/ | ||
31 | |||
32 | # Deploy filters to /etc/nova/rootwrap.d | ||
33 | install -m 755 -d ${NOVA_CONF_DIR}/rootwrap.d | ||
34 | install -m 600 ${S}/etc/nova/rootwrap.d/*.filters ${NOVA_CONF_DIR}/rootwrap.d | ||
35 | chown -R root:root ${NOVA_CONF_DIR}/rootwrap.d | ||
36 | chmod 644 ${NOVA_CONF_DIR}/rootwrap.d | ||
37 | |||
38 | # Set up rootwrap.conf, pointing to /etc/nova/rootwrap.d | ||
39 | install -m 644 ${S}/etc/nova/rootwrap.conf ${NOVA_CONF_DIR}/ | ||
40 | sed -e "s:^filters_path=.*$:filters_path=${NOVA_CONF_DIR}/rootwrap.d:" \ | ||
41 | -i ${NOVA_CONF_DIR}/rootwrap.conf | ||
42 | chown root:root $NOVA_CONF_DIR/rootwrap.conf | ||
43 | |||
44 | # Set up the rootwrap sudoers for nova | ||
45 | install -d ${D}${sysconfdir}/sudoers.d | ||
46 | touch ${D}${sysconfdir}/sudoers.d/nova-rootwrap | ||
47 | chmod 0440 ${D}${sysconfdir}/sudoers.d/nova-rootwrap | ||
48 | chown root:root ${D}${sysconfdir}/sudoers.d/nova-rootwrap | ||
49 | echo "root ALL=(root) NOPASSWD: ${bindir}/nova-rootwrap" > \ | ||
50 | ${D}${sysconfdir}/sudoers.d/nova-rootwrap | ||
51 | |||
52 | #Configuration options | ||
53 | sed -e "s:%SERVICE_TENANT_NAME%:${SERVICE_TENANT_NAME}:g" \ | ||
54 | ${TEMPLATE_CONF_DIR}/api-paste.ini > ${WORKDIR}/api-paste.ini | ||
55 | sed -e "s:%SERVICE_USER%:${SRCNAME}:g" -i ${WORKDIR}/api-paste.ini | ||
56 | sed -e "s:%SERVICE_PASSWORD%:${SERVICE_PASSWORD}:g" \ | ||
57 | -i ${WORKDIR}/api-paste.ini | ||
58 | |||
59 | sed -e "s:%DB_USER%:${DB_USER}:g" -i ${WORKDIR}/nova.conf | ||
60 | sed -e "s:%DB_PASSWORD%:${DB_PASSWORD}:g" -i ${WORKDIR}/nova.conf | ||
61 | |||
62 | sed -e "s:%OS_PASSWORD%:${ADMIN_PASSWORD}:g" -i ${WORKDIR}/openrc | ||
63 | sed -e "s:%SERVICE_TOKEN%:${SERVICE_TOKEN}:g" -i ${WORKDIR}/openrc | ||
64 | |||
65 | #Copy the configuration file | ||
66 | install -m 664 ${WORKDIR}/nova.conf ${NOVA_CONF_DIR}/nova.conf | ||
67 | install -m 664 ${WORKDIR}/api-paste.ini ${NOVA_CONF_DIR} | ||
68 | install -m 664 ${WORKDIR}/openrc ${NOVA_CONF_DIR} | ||
69 | |||
70 | install -d ${NOVA_CONF_DIR}/instances | ||
71 | |||
72 | if ${@base_contains('DISTRO_FEATURES', 'sysvinit', 'true', 'false', d)}; then | ||
73 | install -d ${D}${sysconfdir}/init.d | ||
74 | install -m 0755 ${WORKDIR}/nova-compute ${D}${sysconfdir}/init.d/nova-compute | ||
75 | install -m 0755 ${WORKDIR}/nova-all ${D}${sysconfdir}/init.d/nova-all | ||
76 | fi | ||
77 | |||
78 | } | ||
79 | |||
80 | USERADD_PACKAGES = "${PN}" | ||
81 | GROUPADD_PARAM_${PN} = "--system nova" | ||
82 | USERADD_PARAM_${PN} = "--system --home /var/lib/nova -g nova \ | ||
83 | --no-create-home --shell /bin/false nova" | ||
84 | |||
85 | PACKAGES += "${SRCNAME}-common ${SRCNAME}-compute ${SRCNAME}-controller" | ||
86 | 4 | ||
87 | pkg_postinst_${SRCNAME}-common () { | 5 | pkg_postinst_${SRCNAME}-common () { |
88 | if [ "x$D" != "x" ]; then | 6 | if [ "x$D" != "x" ]; then |
@@ -92,36 +10,21 @@ pkg_postinst_${SRCNAME}-common () { | |||
92 | echo "source /etc/nova/openrc" > /home/root/.bashrc | 10 | echo "source /etc/nova/openrc" > /home/root/.bashrc |
93 | } | 11 | } |
94 | 12 | ||
95 | pkg_postinst_${SRCNAME}-controller () { | 13 | PACKAGES += "${SRCNAME}-common ${SRCNAME}-common-misc" |
96 | if [ "x$D" != "x" ]; then | ||
97 | exit 1 | ||
98 | fi | ||
99 | 14 | ||
100 | # This is to make sure postgres is configured and running | 15 | FILES_${PN} = "${files_${PN}}" |
101 | if ! pidof postmaster > /dev/null; then | ||
102 | sudo -u postgres initdb -D /etc/postgresql/ | ||
103 | /etc/init.d/postgresql start | ||
104 | sleep 0.2 | ||
105 | sudo -u postgres psql -c "CREATE ROLE ${DB_USER} WITH SUPERUSER LOGIN PASSWORD '${DB_PASSWORD}'" | ||
106 | fi | ||
107 | 16 | ||
108 | sudo -u postgres createdb nova | 17 | FILES_${SRCNAME}-common = "${files_${SRCNAME}-common}" |
109 | nova-manage db sync | ||
110 | } | ||
111 | |||
112 | |||
113 | FILES_${PN} = "${libdir}/*" | ||
114 | 18 | ||
115 | FILES_${SRCNAME}-common = " ${bindir}/nova-manage \ | 19 | FILES_${SRCNAME}-common-misc = "${files_${SRCNAME}-compute} ${files_${SRCNAME}-controller}" |
116 | ${bindir}/nova-rootwrap \ | ||
117 | ${sysconfdir}/${SRCNAME}/* \ | ||
118 | ${sysconfdir}/sudoers.d" | ||
119 | 20 | ||
120 | FILES_${SRCNAME}-compute = "${bindir}/nova-compute \ | 21 | RDEPENDS_${SRCNAME}-common = "${PN} openssl openssl-misc libxml2 libxslt \ |
121 | ${sysconfdir}/init.d/nova-compute" | 22 | iptables curl dnsmasq sudo procps" |
122 | 23 | ||
123 | FILES_${SRCNAME}-controller = "${bindir}/* \ | 24 | USERADD_PACKAGES = "${PN}" |
124 | ${sysconfdir}/init.d/nova-all" | 25 | GROUPADD_PARAM_${PN} = "--system nova" |
26 | USERADD_PARAM_${PN} = "--system --home /var/lib/nova -g nova \ | ||
27 | --no-create-home --shell /bin/false nova" | ||
125 | 28 | ||
126 | RDEPENDS_${PN} = " python-modules \ | 29 | RDEPENDS_${PN} = " python-modules \ |
127 | python-misc \ | 30 | python-misc \ |
@@ -158,16 +61,3 @@ RDEPENDS_${PN} = " python-modules \ | |||
158 | python-webob \ | 61 | python-webob \ |
159 | python-websockify \ | 62 | python-websockify \ |
160 | " | 63 | " |
161 | |||
162 | RDEPENDS_${SRCNAME}-common = "${PN} openssl openssl-misc libxml2 libxslt \ | ||
163 | iptables curl dnsmasq sudo procps" | ||
164 | |||
165 | RDEPENDS_${SRCNAME}-compute = "${PN} nova-common \ | ||
166 | qemu libvirt libvirt-libvirtd libvirt-python libvirt-virsh" | ||
167 | |||
168 | RDEPENDS_${SRCNAME}-controller = "${PN} nova-common \ | ||
169 | postgresql postgresql-client python-psycopg2" | ||
170 | |||
171 | INITSCRIPT_PACKAGES = "${SRCNAME}-compute ${SRCNAME}-controller" | ||
172 | INITSCRIPT_NAME_${SRCNAME}-compute = "nova-compute" | ||
173 | INITSCRIPT_NAME_${SRCNAME}-controller = "nova-all" | ||