summaryrefslogtreecommitdiffstats
path: root/compass-tasks/actions/health_check/check_celery.py
diff options
context:
space:
mode:
authorHarry Huang <huangxiangyu5@huawei.com>2017-11-17 14:53:44 +0800
committerHarry Huang <huangxiangyu5@huawei.com>2017-12-21 16:36:30 +0800
commit8646b8d62cf4ca7b6bccae537a0c9e72ba45eab3 (patch)
tree73a9a983e0dd1423e9df928a78a5023a09d5a7f9 /compass-tasks/actions/health_check/check_celery.py
parent6234176ae292a75dcda5520324cb7857d6105988 (diff)
Merge compass-tasks-osa and compass-tasks-k8s
JIRA: COMPASS-568 rename compass-tasks to compass-tasks-base. add both osa and k8s support in compass-tasks Change-Id: I438f5b17e509d4cb751ced0ffe640ec70899882f Signed-off-by: Harry Huang <huangxiangyu5@huawei.com>
Diffstat (limited to 'compass-tasks/actions/health_check/check_celery.py')
-rw-r--r--compass-tasks/actions/health_check/check_celery.py115
1 files changed, 0 insertions, 115 deletions
diff --git a/compass-tasks/actions/health_check/check_celery.py b/compass-tasks/actions/health_check/check_celery.py
deleted file mode 100644
index 2d8d27c..0000000
--- a/compass-tasks/actions/health_check/check_celery.py
+++ /dev/null
@@ -1,115 +0,0 @@
-# Copyright 2014 Huawei Technologies Co. Ltd
-#
-# 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.
-
-"""Health Check module for Celery."""
-import commands
-import os
-
-from celery.task.control import inspect
-
-from compass.actions.health_check import base
-from compass.actions.health_check import utils as health_check_utils
-
-
-class CeleryCheck(base.BaseCheck):
- """celery health check class."""
- NAME = "Celery Check."
-
- def run(self):
- """do health check."""
- self.check_compass_celery_setting()
- print "[Done]"
- self.check_celery_backend()
- print "[Done]"
- if self.code == 1:
- self.messages.append("[%s]Info: Celery health check "
- "has completed. No problems found, "
- "all systems go." % self.NAME)
- return (self.code, self.messages)
-
- def check_compass_celery_setting(self):
- """Validates Celery settings."""
-
- print "Checking Celery setting......",
- setting_map = {
- 'logfile': 'CELERY_LOGFILE',
- 'configdir': 'CELERYCONFIG_DIR',
- 'configfile': 'CELERYCONFIG_FILE',
- }
- unset = []
- res = health_check_utils.validate_setting('Celery',
- self.config,
- 'CELERY_LOGFILE')
- if res is False:
- unset.append(setting_map["logfile"])
- self._set_status(0, res)
-
- res = health_check_utils.validate_setting('Celery',
- self.config,
- 'CELERYCONFIG_DIR')
- if res is False:
- unset.append(setting_map["configdir"])
- self._set_status(0, res)
-
- res = health_check_utils.validate_setting('Celery',
- self.config,
- 'CELERYCONFIG_FILE')
- if res is False:
- unset.append(setting_map["configdir"])
- self._set_status(0, res)
-
- if len(unset) != 0:
- self._set_status(0,
- "[%s]Error: Unset celery settings: %s"
- " in /etc/compass/setting"
- % (self.NAME, ', '.join(item for item in unset)))
- return True
-
- def check_celery_backend(self):
- """Checks if Celery backend is running and configured properly."""
-
- print "Checking Celery Backend......",
- if 'celery worker' not in commands.getoutput('ps -ef'):
- self._set_status(0, "[%s]Error: celery is not running" % self.NAME)
- return True
-
- if not os.path.exists('/etc/compass/celeryconfig'):
- self._set_status(
- 0,
- "[%s]Error: No celery config file found for Compass"
- % self.NAME)
- return True
-
- try:
- insp = inspect()
- celery_stats = inspect.stats(insp)
- if not celery_stats:
- self._set_status(
- 0,
- "[%s]Error: No running Celery workers were found."
- % self.NAME)
- except IOError as error:
- self._set_status(
- 0,
- "[%s]Error: Failed to connect to the backend: %s"
- % (self.NAME, str(error)))
- from errno import errorcode
- if (
- len(error.args) > 0 and
- errorcode.get(error.args[0]) == 'ECONNREFUSED'
- ):
- self.messages.append(
- "[%s]Error: RabbitMQ server isn't running"
- % self.NAME)
- return True