From fe0aedf76cd182a84bb478ea3af586ccec0f3394 Mon Sep 17 00:00:00 2001 From: Zack Cerza Date: Mon, 10 Feb 2014 14:12:06 -0600 Subject: [PATCH] Set apache ServerName, reboot, restart devstack Signed-off-by: Zack Cerza --- teuthology/task/devstack.py | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/teuthology/task/devstack.py b/teuthology/task/devstack.py index da3c5a2993..c4c23bdbb9 100644 --- a/teuthology/task/devstack.py +++ b/teuthology/task/devstack.py @@ -4,6 +4,7 @@ import logging from cStringIO import StringIO import textwrap from configparser import ConfigParser +import time from ..orchestra import run from teuthology import misc @@ -67,6 +68,10 @@ def configure_devstack_and_ceph(ctx, config, devstack_node, ceph_node): distribute_ceph_keys(devstack_node, ceph_node) secret_uuid = set_libvirt_secret(devstack_node, ceph_node) update_devstack_config_files(devstack_node, secret_uuid) + set_apache_servername(devstack_node) + # Rebooting is the most-often-used method of restarting devstack services + reboot(devstack_node) + start_devstack(devstack_node) def create_pools(ceph_node, pool_size): @@ -216,3 +221,34 @@ def update_devstack_config_files(devstack_node, secret_uuid): backup_config(devstack_node, file_name) new_config_stream = update_config(file_name, config_stream, options) misc.sudo_write_file(devstack_node, file_name, new_config_stream) + + +def set_apache_servername(devstack_node): + # Apache complains: "Could not reliably determine the server's fully + # qualified domain name, using 127.0.0.1 for ServerName" + # So, let's make sure it knows its name. + hostname = devstack_node.hostname + config_file = '/etc/apache2/conf.d/servername' + misc.sudo_write_file(devstack_node, config_file, + "ServerName {name}".format(name=hostname)) + devstack_node.run(args=['sudo', '/etc/init.d/apache2', 'restart'], + wait=True) + + +def reboot(node, timeout=300, interval=10): + log.info("Rebooting {host}...".format(host=node.hostname)) + node.run(args=['sudo', 'shutdown', '-r', 'now']) + reboot_start_time = time.time() + while time.time() - reboot_start_time < timeout: + time.sleep(interval) + if node.is_online: + return + raise RuntimeError( + "{host} did not come up after reboot within {time}s".format( + host=node.hostname, time=timeout)) + + +def start_devstack(devstack_node): + log.info("Starting devstack...") + args = ['cd', 'devstack', run.Raw('&&'), './rejoin-stack.sh'] + devstack_node.run(args=args) -- 2.39.5