Commit 71298e8f authored by Jameson Rollins's avatar Jameson Rollins

clarify/consolidate OP and MODE lists in db

keep everything in one place
parent c722a9cf
......@@ -8,13 +8,11 @@ if sys.version_info.major > 2:
else:
import __builtin__ as builtins
from . import db
from . import cli
from . import const
from .log import get_logger
DAEMON_OP_INIT = ('PAUSE', 'EXEC')
DAEMON_MODE_INIT = ('AUTO', 'MANAGED', 'MANUAL')
############################################################
PROG = 'guardian'
......@@ -98,11 +96,11 @@ parser.add_argument('-s', '--state', metavar='<state>', dest='dstate',
parser.add_argument('-r', '--request', metavar='<state>', dest='drequest',
help="set initial request state for daemon")
parser.add_argument('-o', '--op', metavar='<op>', dest='dop',
choices=DAEMON_OP_INIT, default='EXEC',
help="set initial daemon OP ({}|{})".format(*DAEMON_OP_INIT))
choices=db.DAEMON_OP, default='EXEC',
help="set initial daemon OP ({}|{})".format(*db.DAEMON_OP))
parser.add_argument('-m', '--mode', metavar='<mode>', dest='dmode',
choices=DAEMON_MODE_INIT, default='AUTO',
help="set initial daemon MODE ({}|{}|{})".format(*DAEMON_MODE_INIT))
choices=db.DAEMON_MODE,
help="set initial daemon MODE ({}|{}|{})".format(*db.DAEMON_MODE))
cgroup = parser.add_mutually_exclusive_group()
cgroup.add_argument('-i', '--interactive', action='store_true',
......@@ -142,8 +140,7 @@ def main():
if system.ifo:
ifo = system.ifo
name = system.name
from db import guarddb
for chan in sorted(guarddb):
for chan in sorted(db.guarddb):
channel = const.CAS_PREFIX_FMT.format(IFO=ifo, SYSTEM=name) + chan
flag = ''
if guarddb[chan].get('archive'):
......
......@@ -17,16 +17,10 @@ except ImportError:
############################################################
# used by db, so need to be defined first
DAEMON_OP_INIT = ('PAUSE', 'EXEC',)
DAEMON_MODE_INIT = ('AUTO', 'MANAGED', 'MANUAL')
############################################################
from ._version import __version__
from . import const
from . import db
from .system import GuardSystemError
from .db import guarddb, Database
from .worker import Worker
############################################################
......@@ -47,10 +41,10 @@ class Daemon(object):
archive=None,
):
# check arguments
if initial_op not in DAEMON_OP_INIT:
raise GuardDaemonError("Initial OP not in %s" % str(DAEMON_OP_INIT))
if initial_mode not in DAEMON_MODE_INIT:
raise GuardDaemonError("Initial MODE not in %s" % str(DAEMON_MODE_INIT))
if initial_op not in db.DAEMON_OP:
raise GuardDaemonError("Initial OP not in %s" % str(DAEMON_OP))
if initial_mode and initial_mode not in db.DAEMON_MODE:
raise GuardDaemonError("Initial MODE ({}) not in {}".format(initial_mode, str(DAEMON_MODE)))
# FIXME: check that system is initialized already
self.system = system
......@@ -90,7 +84,7 @@ class Daemon(object):
self.archive = None
# initialize internal db
self.db = Database(self.cas)
self.db = db.Database(self.cas)
# initialize state index and request enum
self.db.update_system(self.system, init=True)
......@@ -167,7 +161,7 @@ guardian version: {}
def __setitem__(self, channel, value):
if self.db[channel] != value \
and guarddb[channel].get('log_changes', True):
and db.guarddb[channel].get('log_changes', True):
self.log.debug('%s => %s' % (channel, value))
self.db[channel] = value
......
......@@ -2,6 +2,8 @@ from . import version
from ._version import __version__
from . import const
DAEMON_OP = ('STOPE', 'PAUSE', 'EXEC')
DAEMON_MODE = ('AUTO', 'MANAGED', 'MANUAL')
DAEMON_STATUS = ('ENTER', 'MAIN', 'RUN', 'DONE', 'JUMP', 'REDIRECT', 'EDGE', 'INIT')
WORKER_STATUS = ('INIT', 'COMMAND', 'CONTINUE', 'DONE', 'JUMP', 'CERROR', 'ERROR')
......@@ -46,14 +48,14 @@ guarddb = {
# op mode
'OP': {
'type': 'enum',
'enums': ('STOP', 'PAUSE', 'EXEC'),
'enums': DAEMON_OP,
'writable': True,
'archive': True,
},
# run mode
'MODE': {
'type': 'enum',
'enums': ('AUTO', 'MANAGED', 'MANUAL'),
'enums': DAEMON_MODE,
'writable': True,
'archive': True,
},
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment