Only redirect rabbmitmq commands to tmp files if distro says to

This commit is contained in:
Joshua Harlow
2012-03-30 18:09:26 -07:00
parent dd505fc076
commit d734e0a033
5 changed files with 23 additions and 6 deletions

View File

@@ -45,6 +45,7 @@ commands:
start: service rabbitmq-server start
status: service rabbitmq-server status
stop: service rabbitmq-server stop
redirect-outs: false
components:
db:
action_classes:

View File

@@ -45,6 +45,7 @@ commands:
start: service rabbitmq-server start
status: service rabbitmq-server status
stop: service rabbitmq-server stop
redirect-outs: true
components:
db:
action_classes:

View File

@@ -50,7 +50,7 @@ commands:
status: service rabbitmq-server status
restart: service rabbitmq-server restart
change_password: rabbitmqctl change_password guest
redirect-outs: true
components:
db:
action_classes:

View File

@@ -19,6 +19,7 @@ from tempfile import TemporaryFile
from devstack import component as comp
from devstack import log as logging
from devstack import shell as sh
from devstack import utils
LOG = logging.getLogger("devstack.components.rabbit")
@@ -84,6 +85,7 @@ class RabbitRuntime(comp.EmptyRuntime):
def __init__(self, *args, **kargs):
comp.EmptyRuntime.__init__(self, *args, **kargs)
self.wait_time = max(self.cfg.getint('default', 'service_wait_seconds'), 1)
self.redir_out = utils.make_bool(self.distro.get_command_config('rabbit-mq', 'redirect-outs'))
def start(self):
if self.status() != comp.STATUS_STARTED:
@@ -122,12 +124,14 @@ class RabbitRuntime(comp.EmptyRuntime):
# See: https://bugs.launchpad.net/ubuntu/+source/rabbitmq-server/+bug/878600
#
# RHEL seems to have this bug also...
#
# TODO: Move to distro dir...
with TemporaryFile() as f:
if self.redir_out:
with TemporaryFile() as f:
return sh.execute(*cmd, run_as_root=True,
stdout_fh=f, stderr_fh=f,
check_exit_code=check_exit)
else:
return sh.execute(*cmd, run_as_root=True,
stdout_fh=f, stderr_fh=f,
check_exit_code=check_exit)
check_exit_code=check_exit)
def restart(self):
LOG.info("Restarting rabbit-mq.")

View File

@@ -83,6 +83,17 @@ def construct_log_level(verbosity_level, dry_run=False):
return log_level
def make_bool(val):
if not val:
return False
if type(val) is bool:
return val
sval = str(val).lower().strip()
if sval in ['true', '1', 'on', 'yes', 't']:
return True
return False
def configure_logging(log_level, cli_args):
root_logger = logging.getLogger().logger
console_logger = logging.StreamHandler(sys.stdout)