From 61a980a9813ea9df8556e374262231d9fbe250e4 Mon Sep 17 00:00:00 2001 From: Michael Hanselmann <hansmi@google.com> Date: Wed, 23 Feb 2011 14:39:08 +0100 Subject: [PATCH] Add constants for instance status MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit They've been hardcoded for too long. Signed-off-by: Michael Hanselmann <hansmi@google.com> Reviewed-by: Iustin Pop <iustin@google.com> Reviewed-by: RenΓ© Nussbaumer <rn@google.com> --- lib/cmdlib.py | 4 ++-- lib/constants.py | 18 ++++++++++++++++++ lib/query.py | 14 +++++++------- lib/watcher/__init__.py | 4 ++-- test/ganeti.query_unittest.py | 19 ++++++++----------- 5 files changed, 37 insertions(+), 22 deletions(-) diff --git a/lib/cmdlib.py b/lib/cmdlib.py index db7df85c5..56d8fda0b 100644 --- a/lib/cmdlib.py +++ b/lib/cmdlib.py @@ -7872,9 +7872,9 @@ class LUInstanceConsole(NoHooksLU): if instance.name not in node_insts.payload: if instance.admin_up: - state = "ERROR_down" + state = constants.INSTST_ERRORDOWN else: - state = "ADMIN_down" + state = constants.INSTST_ADMINDOWN raise errors.OpExecError("Instance %s is not running (state %s)" % (instance.name, state)) diff --git a/lib/constants.py b/lib/constants.py index 2afa13d70..117b43cc3 100644 --- a/lib/constants.py +++ b/lib/constants.py @@ -861,6 +861,24 @@ NV_VGLIST = "vglist" NV_VMNODES = "vmnodes" NV_OOB_PATHS = "oob-paths" +# Instance status +INSTST_RUNNING = "running" +INSTST_ADMINDOWN = "ADMIN_down" +INSTST_NODEOFFLINE = "ERROR_nodeoffline" +INSTST_NODEDOWN = "ERROR_nodedown" +INSTST_WRONGNODE = "ERROR_wrongnode" +INSTST_ERRORUP = "ERROR_up" +INSTST_ERRORDOWN = "ERROR_down" +INSTST_ALL = frozenset([ + INSTST_RUNNING, + INSTST_ADMINDOWN, + INSTST_NODEOFFLINE, + INSTST_NODEDOWN, + INSTST_WRONGNODE, + INSTST_ERRORUP, + INSTST_ERRORDOWN, + ]) + # SSL certificate check constants (in days) SSL_CERT_EXPIRATION_WARN = 30 SSL_CERT_EXPIRATION_ERROR = 7 diff --git a/lib/query.py b/lib/query.py index 55b03e658..b185170ef 100644 --- a/lib/query.py +++ b/lib/query.py @@ -779,23 +779,23 @@ def _GetInstStatus(ctx, inst): """ if inst.primary_node in ctx.offline_nodes: - return "ERROR_nodeoffline" + return constants.INSTST_NODEOFFLINE if inst.primary_node in ctx.bad_nodes: - return "ERROR_nodedown" + return constants.INSTST_NODEDOWN if bool(ctx.live_data.get(inst.name)): if inst.name in ctx.wrongnode_inst: - return "ERROR_wrongnode" + return constants.INSTST_WRONGNODE elif inst.admin_up: - return "running" + return constants.INSTST_RUNNING else: - return "ERROR_up" + return constants.INSTST_ERRORUP if inst.admin_up: - return "ERROR_down" + return constants.INSTST_ERRORDOWN - return "ADMIN_down" + return constants.INSTST_ADMINDOWN def _GetInstDiskSize(index): diff --git a/lib/watcher/__init__.py b/lib/watcher/__init__.py index 098f8c2d5..ba78537b2 100644 --- a/lib/watcher/__init__.py +++ b/lib/watcher/__init__.py @@ -62,8 +62,8 @@ MAXTRIES = 5 # 5 minutes, so it takes around half an hour to exceed the retry # counter, so 8 hours (16*1/2h) seems like a reasonable reset time RETRY_EXPIRATION = 8 * 3600 -BAD_STATES = ['ERROR_down'] -HELPLESS_STATES = ['ERROR_nodedown', 'ERROR_nodeoffline'] +BAD_STATES = [constants.INSTST_ERRORDOWN] +HELPLESS_STATES = [constants.INSTST_NODEDOWN, constants.INSTST_NODEOFFLINE] NOTICE = 'NOTICE' ERROR = 'ERROR' KEY_RESTART_COUNT = "restart_count" diff --git a/test/ganeti.query_unittest.py b/test/ganeti.query_unittest.py index 18c6d2894..8994425a1 100755 --- a/test/ganeti.query_unittest.py +++ b/test/ganeti.query_unittest.py @@ -743,20 +743,20 @@ class TestInstanceQuery(unittest.TestCase): (constants.RS_NORMAL, inst.name)) if inst.primary_node in offline_nodes: - exp_status = "ERROR_nodeoffline" + exp_status = constants.INSTST_NODEOFFLINE elif inst.primary_node in bad_nodes: - exp_status = "ERROR_nodedown" + exp_status = constants.INSTST_NODEDOWN elif inst.name in live_data: if inst.name in wrongnode_inst: - exp_status = "ERROR_wrongnode" + exp_status = constants.INSTST_WRONGNODE elif inst.admin_up: - exp_status = "running" + exp_status = constants.INSTST_RUNNING else: - exp_status = "ERROR_up" + exp_status = constants.INSTST_ERRORUP elif inst.admin_up: - exp_status = "ERROR_down" + exp_status = constants.INSTST_ERRORDOWN else: - exp_status = "ADMIN_down" + exp_status = constants.INSTST_ADMINDOWN self.assertEqual(row[fieldidx["status"]], (constants.RS_NORMAL, exp_status)) @@ -830,10 +830,7 @@ class TestInstanceQuery(unittest.TestCase): self._CheckInstanceConsole(inst, row[fieldidx["console"]]) # Ensure all possible status' have been tested - self.assertEqual(tested_status, - set(["ERROR_nodeoffline", "ERROR_nodedown", - "running", "ERROR_up", "ERROR_down", - "ADMIN_down", "ERROR_wrongnode"])) + self.assertEqual(tested_status, constants.INSTST_ALL) def _CheckInstanceConsole(self, instance, (status, consdata)): if instance.name == "inst7": -- GitLab