From a307312bef9321cc3f45028c64d8f01809282354 Mon Sep 17 00:00:00 2001 From: Przemyslaw Kaminski Date: Tue, 12 May 2015 09:06:05 +0200 Subject: [PATCH] RabbitMQ commands added Change-Id: Ia711ae137799aad7d178376d08b8cdf21be7d5a5 --- fuel_dev_tools/README.md | 4 +- fuel_dev_tools/docker/rabbitmq.py | 73 +++++++++++++++++++++++++++++++ fuel_dev_tools/shell.py | 12 +++++ 3 files changed, 87 insertions(+), 2 deletions(-) create mode 100644 fuel_dev_tools/docker/rabbitmq.py diff --git a/fuel_dev_tools/README.md b/fuel_dev_tools/README.md index eaf7f36..44e2145 100644 --- a/fuel_dev_tools/README.md +++ b/fuel_dev_tools/README.md @@ -6,9 +6,9 @@ Command-line interface for interacting with Fuel Master node. ## Global options -### `--IP` +### `--IP`, `-P|--port`, `-U|--user` -Specify IP of the Fuel master ISO (default is `10.20.0.2`). +Specify IP, port and user of the Fuel master ISO (default is `10.20.0.2`). ### `-I`, `--identity-file` diff --git a/fuel_dev_tools/docker/rabbitmq.py b/fuel_dev_tools/docker/rabbitmq.py new file mode 100644 index 0000000..99d9236 --- /dev/null +++ b/fuel_dev_tools/docker/rabbitmq.py @@ -0,0 +1,73 @@ +# Copyright 2015 Mirantis, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. + +import six +import subprocess + +from fuel_dev_tools import docker +from fuel_dev_tools import info + + +class DockerRabbitMQMixin(object): + container = 'RabbitMQ' + default_command = '/bin/bash' + + def get_log_directory(self): + return '/var/log/docker-logs/rabbitmq' + + +class RabbitMQInfo(DockerRabbitMQMixin, info.BasicInfo): + @classmethod + def get_info(cls): + return '' + + +class Id(DockerRabbitMQMixin, docker.IdCommand): + """Print Docker container id.""" + + +class Config(DockerRabbitMQMixin, docker.ConfigCommand): + """Print Docker container config.""" + + +class Dir(DockerRabbitMQMixin, docker.DirCommand): + """Print Docker container directory on master.""" + + +class Log(DockerRabbitMQMixin, docker.LogCommand): + """Display logs for container.""" + + +class Restart(DockerRabbitMQMixin, docker.RestartCommand): + """Restart Docker container.""" + + +class Start(DockerRabbitMQMixin, docker.StartCommand): + """Start Docker container.""" + + +class Stop(DockerRabbitMQMixin, docker.StopCommand): + """Stop Docker container.""" + + +class Shell(DockerRabbitMQMixin, docker.ShellCommand): + """Shell into a nailgun Docker container.""" + + +class Tail(DockerRabbitMQMixin, docker.TailCommand): + """Display logs for container.""" + + +class Volumes(DockerRabbitMQMixin, docker.VolumesCommand): + """Print all volumes of a container.""" diff --git a/fuel_dev_tools/shell.py b/fuel_dev_tools/shell.py index e3a4b10..a9a37bf 100644 --- a/fuel_dev_tools/shell.py +++ b/fuel_dev_tools/shell.py @@ -31,6 +31,7 @@ from fuel_dev_tools.docker import astute from fuel_dev_tools.docker import nailgun from fuel_dev_tools.docker import nginx from fuel_dev_tools.docker import postgres +from fuel_dev_tools.docker import rabbitmq from fuel_dev_tools import exc from fuel_dev_tools import info from fuel_dev_tools import ssh @@ -75,6 +76,17 @@ COMMANDS = { 'postgres-stop': postgres.Stop, 'postgres-tail': postgres.Tail, 'postgres-volumes': postgres.Volumes, + + 'rabbitmq-id': rabbitmq.Id, + 'rabbitmq-config': rabbitmq.Config, + 'rabbitmq-dir': rabbitmq.Dir, + 'rabbitmq-log': rabbitmq.Log, + 'rabbitmq-restart': rabbitmq.Restart, + 'rabbitmq-shell': rabbitmq.Shell, + 'rabbitmq-start': rabbitmq.Start, + 'rabbitmq-stop': rabbitmq.Stop, + 'rabbitmq-tail': rabbitmq.Tail, + 'rabbitmq-volumes': rabbitmq.Volumes, }