summaryrefslogtreecommitdiffstats
path: root/meta-openstack/recipes-devtools/python
diff options
context:
space:
mode:
authorBruce Ashfield <bruce.ashfield@windriver.com>2013-10-03 00:20:31 -0400
committerBruce Ashfield <bruce.ashfield@windriver.com>2013-10-03 01:16:44 -0400
commitb625b4c4c3d299e3830951304f468a5399828b51 (patch)
treeca62e1ff521cb2be4849930a52dd735d779c6b1b /meta-openstack/recipes-devtools/python
parent718ecf27999c69acae27992123d2a7fe85d64c77 (diff)
downloadmeta-cloud-services-b625b4c4c3d299e3830951304f468a5399828b51.tar.gz
nova: add novnc console proxy support
With this commit the appropriate daemons are started on a control node boot to support horizon console access via the novnc proxy. Additionally, the proper nova configuration is set for boh the control and compute nodes for out of the box console connectivity between the compute, control and horizone interface. Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
Diffstat (limited to 'meta-openstack/recipes-devtools/python')
-rw-r--r--meta-openstack/recipes-devtools/python/python-nova-controller_2013.1.3.bb24
-rw-r--r--meta-openstack/recipes-devtools/python/python-nova.inc3
-rw-r--r--meta-openstack/recipes-devtools/python/python-nova/nova-consoleauth75
-rw-r--r--meta-openstack/recipes-devtools/python/python-nova/nova-novncproxy72
-rw-r--r--meta-openstack/recipes-devtools/python/python-nova/nova.conf5
5 files changed, 173 insertions, 6 deletions
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
index 36b5ba3..c99a890 100644
--- 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
@@ -5,19 +5,24 @@ PR = "r0"
5FILESEXTRAPATHS := "${THISDIR}/${PYTHON_PN}" 5FILESEXTRAPATHS := "${THISDIR}/${PYTHON_PN}"
6 6
7SRC_URI += "file://nova-all \ 7SRC_URI += "file://nova-all \
8 file://nova-consoleauth \
9 file://nova-novncproxy \
8 file://nova.conf \ 10 file://nova.conf \
9 file://openrc \ 11 file://openrc \
10 " 12 "
11 13
12inherit hosts update-rc.d 14inherit hosts update-rc.d
13 15
14#PACKAGES = "${SRCNAME}-controller ${SRCNAME}-controller-misc"
15PACKAGES = "${PN} ${PN}-dbg ${SRCNAME}-controller-misc ${SRCNAME}-controller" 16PACKAGES = "${PN} ${PN}-dbg ${SRCNAME}-controller-misc ${SRCNAME}-controller"
17PACKAGES += " ${SRCNAME}-consoleauth"
18PACKAGES += " ${SRCNAME}-novncproxy"
16 19
17do_install_append() { 20do_install_append() {
18 if ${@base_contains('DISTRO_FEATURES', 'sysvinit', 'true', 'false', d)}; then 21 if ${@base_contains('DISTRO_FEATURES', 'sysvinit', 'true', 'false', d)}; then
19 install -d ${D}${sysconfdir}/init.d 22 install -d ${D}${sysconfdir}/init.d
20 install -m 0755 ${WORKDIR}/nova-all ${D}${sysconfdir}/init.d/nova-all 23 install -m 0755 ${WORKDIR}/nova-all ${D}${sysconfdir}/init.d/nova-all
24 install -m 0755 ${WORKDIR}/nova-consoleauth ${D}${sysconfdir}/init.d/nova-consoleauth
25 install -m 0755 ${WORKDIR}/nova-novncproxy ${D}${sysconfdir}/init.d/nova-novncproxy
21 fi 26 fi
22} 27}
23 28
@@ -49,7 +54,15 @@ pkg_postinst_${SRCNAME}-controller () {
49FILES_${SRCNAME}-controller = " \ 54FILES_${SRCNAME}-controller = " \
50 ${bindir} \ 55 ${bindir} \
51 ${sysconfdir}/${SRCNAME}/* \ 56 ${sysconfdir}/${SRCNAME}/* \
52 ${sysconfdir}/init.d/nova-all" 57 ${sysconfdir}/init.d/nova-all \
58"
59
60FILES_${SRCNAME}-consoleauth = " \
61 ${sysconfdir}/init.d/nova-consoleauth \
62"
63FILES_${SRCNAME}-novncproxy = " \
64 ${sysconfdir}/init.d/nova-novncproxy \
65"
53 66
54FILES_${SRCNAME}-controller-misc = " \ 67FILES_${SRCNAME}-controller-misc = " \
55 ${bindir}/nova-compute \ 68 ${bindir}/nova-compute \
@@ -62,10 +75,13 @@ FILES_${SRCNAME}-controller-misc = " \
62FILES_${PN} = " \ 75FILES_${PN} = " \
63 ${libdir}/python*/site-packages" 76 ${libdir}/python*/site-packages"
64 77
65RDEPENDS_${SRCNAME}-controller = "${PYTHON_PN} ${SRCNAME}-common \ 78RDEPENDS_${SRCNAME}-controller = "${PYTHON_PN} ${SRCNAME}-common ${SRCNAME}-consoleauth \
79 ${SRCNAME}-novncproxy \
66 postgresql postgresql-client python-psycopg2" 80 postgresql postgresql-client python-psycopg2"
67 81
68RCONFLICTS_${SRCNAME}-controller = "${SRCNAME}-compute" 82RCONFLICTS_${SRCNAME}-controller = "${SRCNAME}-compute"
69 83
70INITSCRIPT_PACKAGES = "${SRCNAME}-controller" 84INITSCRIPT_PACKAGES = "${SRCNAME}-controller ${SRCNAME}-consoleauth ${SRCNAME}-novncproxy"
71INITSCRIPT_NAME_${SRCNAME}-controller = "nova-all" 85INITSCRIPT_NAME_${SRCNAME}-controller = "nova-all"
86INITSCRIPT_NAME_${SRCNAME}-consoleauth = "nova-consoleauth"
87INITSCRIPT_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
index 01483e7..e520130 100644
--- a/meta-openstack/recipes-devtools/python/python-nova.inc
+++ b/meta-openstack/recipes-devtools/python/python-nova.inc
@@ -68,6 +68,9 @@ do_install_append() {
68 sed -e "s:%CONTROLLER_IP%:${CONTROLLER_IP}:g" -i ${WORKDIR}/nova.conf 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 69 sed -e "s:%CONTROLLER_HOST%:${CONTROLLER_HOST}:g" -i ${WORKDIR}/nova.conf
70 70
71 sed -e "s:%COMPUTE_IP%:${COMPUTE_IP}:g" -i ${WORKDIR}/nova.conf
72 sed -e "s:%COMPUTE_HOST%:${COMPUTE_HOST}:g" -i ${WORKDIR}/nova.conf
73
71 sed -e "s:%OS_PASSWORD%:${ADMIN_PASSWORD}:g" -i ${WORKDIR}/openrc 74 sed -e "s:%OS_PASSWORD%:${ADMIN_PASSWORD}:g" -i ${WORKDIR}/openrc
72 sed -e "s:%SERVICE_TOKEN%:${SERVICE_TOKEN}:g" -i ${WORKDIR}/openrc 75 sed -e "s:%SERVICE_TOKEN%:${SERVICE_TOKEN}:g" -i ${WORKDIR}/openrc
73 76
diff --git a/meta-openstack/recipes-devtools/python/python-nova/nova-consoleauth b/meta-openstack/recipes-devtools/python/python-nova/nova-consoleauth
new file mode 100644
index 0000000..13ad285
--- /dev/null
+++ b/meta-openstack/recipes-devtools/python/python-nova/nova-consoleauth
@@ -0,0 +1,75 @@
1#! /bin/sh
2### BEGIN INIT INFO
3# Provides: nova-consoleauth
4# Required-Start: $remote_fs $syslog
5# Required-Stop: $remote_fs $syslog
6# Should-Start: libvirt-bin
7# Should-Stop: libvirt-bin
8# Default-Start: 2 3 4 5
9# Default-Stop: 0 1 6
10# Short-Description: nova-consoleauth service
11# Description: Provides console services for the openstack
12# cloud computing system
13### END INIT INFO
14
15
16set -e
17
18DAEMON=/usr/bin/nova-consoleauth
19DAEMON_ARGS=""
20PIDFILE=/var/run/nova/nova-consoleauth.pid
21
22ENABLED=true
23
24if test -f /etc/default/nova-consoleauth; then
25 . /etc/default/nova-consoleauth
26fi
27
28mkdir -p /var/run/nova
29chown nova:root /var/run/nova/
30
31mkdir -p /var/lock/nova
32chown nova:root /var/lock/nova/
33
34#uid="$(getent passwd nova | cut -f3 -d:)"
35#gid="$(getent passwd nova | cut -f4 -d:)"
36
37. /lib/lsb/init-functions
38
39export PATH="${PATH:+$PATH:}/usr/sbin:/sbin"
40export TMPDIR=/var/lib/nova/tmp
41
42if ! [ -x ${DAEMON} ] ; then
43 exit 0
44fi
45
46case "$1" in
47 start)
48 test "$ENABLED" = "true" || exit 0
49 echo "Starting nova console" "nova-consoleauth"
50 start-stop-daemon --start -b -m --pidfile $PIDFILE --exec ${DAEMON} -- ${DAEMON_ARGS}
51 log_end_msg $?
52 ;;
53 stop)
54 test "$ENABLED" = "true" || exit 0
55 echo "Stopping nova console" "nova-consoleauth"
56 start-stop-daemon --stop --oknodo --pidfile ${PIDFILE}
57 log_end_msg $?
58 ;;
59 restart|force-reload)
60 test "$ENABLED" = "true" || exit 1
61 $0 stop
62 sleep 1
63 $0 start
64 ;;
65 status)
66 test "$ENABLED" = "true" || exit 0
67 status_of_proc -p $PIDFILE $DAEMON nova-consoleauth && exit 0 || exit $?
68 ;;
69 *)
70 echo "Usage: /etc/init.d/nova-consoleauth {start|stop|restart|force-reload|status}"
71 exit 1
72 ;;
73esac
74
75exit 0
diff --git a/meta-openstack/recipes-devtools/python/python-nova/nova-novncproxy b/meta-openstack/recipes-devtools/python/python-nova/nova-novncproxy
new file mode 100644
index 0000000..76cd1df
--- /dev/null
+++ b/meta-openstack/recipes-devtools/python/python-nova/nova-novncproxy
@@ -0,0 +1,72 @@
1#! /bin/sh
2### BEGIN INIT INFO
3# Provides: nova-novncproxy
4# Required-Start: $remote_fs $syslog
5# Required-Stop: $remote_fs $syslog
6# Should-Start: libvirt-bin
7# Should-Stop: libvirt-bin
8# Default-Start: 2 3 4 5
9# Default-Stop: 0 1 6
10# Short-Description: nova-novncproxy service
11# Description: Provides vnc proxy services for the openstack
12# cloud computing system
13### END INIT INFO
14
15
16set -e
17
18DAEMON=/usr/bin/nova-novncproxy
19DAEMON_ARGS=""
20PIDFILE=/var/run/nova/nova-novncproxy.pid
21
22ENABLED=true
23
24if test -f /etc/default/nova-novncproxy; then
25 . /etc/default/nova-novncproxy
26fi
27
28mkdir -p /var/run/nova
29chown nova:root /var/run/nova/
30
31mkdir -p /var/lock/nova
32chown nova:root /var/lock/nova/
33
34. /lib/lsb/init-functions
35
36export PATH="${PATH:+$PATH:}/usr/sbin:/sbin"
37export TMPDIR=/var/lib/nova/tmp
38
39if ! [ -x ${DAEMON} ] ; then
40 exit 0
41fi
42
43case "$1" in
44 start)
45 test "$ENABLED" = "true" || exit 0
46 echo "Starting nova vnc proxy" "nova-novncproxy"
47 start-stop-daemon --start -b -m --pidfile $PIDFILE --exec ${DAEMON} -- ${DAEMON_ARGS}
48 log_end_msg $?
49 ;;
50 stop)
51 test "$ENABLED" = "true" || exit 0
52 echo "Stopping nova vnc proxy" "nova-novncproxy"
53 start-stop-daemon --stop --oknodo --pidfile ${PIDFILE}
54 log_end_msg $?
55 ;;
56 restart|force-reload)
57 test "$ENABLED" = "true" || exit 1
58 $0 stop
59 sleep 1
60 $0 start
61 ;;
62 status)
63 test "$ENABLED" = "true" || exit 0
64 status_of_proc -p $PIDFILE $DAEMON nova-novncproxy && exit 0 || exit $?
65 ;;
66 *)
67 echo "Usage: /etc/init.d/nova-novncproxy {start|stop|restart|force-reload|status}"
68 exit 1
69 ;;
70esac
71
72exit 0
diff --git a/meta-openstack/recipes-devtools/python/python-nova/nova.conf b/meta-openstack/recipes-devtools/python/python-nova/nova.conf
index 695f084..20db54d 100644
--- a/meta-openstack/recipes-devtools/python/python-nova/nova.conf
+++ b/meta-openstack/recipes-devtools/python/python-nova/nova.conf
@@ -22,7 +22,9 @@ glance_host = %CONTROLLER_IP%
22 22
23#VNC 23#VNC
24vnc_enabled = true 24vnc_enabled = true
25vncserver_listen = 0.0.0.0 25vncserver_listen = %COMPUTE_IP%
26novncproxy_base_url=http://%CONTROLLER_IP%:6080/vnc_auto.html
27vncserver_proxyclient_address=%COMPUTE_IP%
26 28
27#Network 29#Network
28flat_interface = eth0 30flat_interface = eth0
@@ -35,7 +37,6 @@ force_dhcp_release=False
35dhcpbridge=/usr/bin/nova-dhcpbridge 37dhcpbridge=/usr/bin/nova-dhcpbridge
36 38
37#Database configuration 39#Database configuration
38# sql_connection = postgresql://%DB_USER%:%DB_PASSWORD%@localhost/nova
39sql_connection = postgresql://%DB_USER%:%DB_PASSWORD%@%CONTROLLER_IP%/nova 40sql_connection = postgresql://%DB_USER%:%DB_PASSWORD%@%CONTROLLER_IP%/nova
40 41
41#RabbitMQ configuration 42#RabbitMQ configuration