Update and enable the job_processor app

This commit is contained in:
Roberto Rosario
2012-09-15 03:53:34 -04:00
parent 00eae9702a
commit d44646aa60
9 changed files with 65 additions and 27 deletions

View File

@@ -9,11 +9,8 @@ from django.db import transaction, DatabaseError
from django.dispatch import receiver
from django.utils.translation import ugettext_lazy as _
#from backups.api import AppBackup, ModelBackup
#from app_registry import register_app, UnableToRegister
from scheduler.api import LocalScheduler
from navigation.api import bind_links, register_model_list_columns
from project_tools.api import register_tool
from project_setup.api import register_setup
from common.utils import encapsulate
@@ -43,7 +40,6 @@ def add_job_queue_jobs():
add_job_queue_jobs()
register_tool(tool_link)
register_setup(setup_link)
bind_links([JobQueue, 'job_queues'], [job_queues], menu_name='secondary_menu')
bind_links([JobQueue], [job_queue_start, job_queue_stop, job_queue_items_pending, job_queue_items_active, job_queue_items_error])
@@ -90,10 +86,3 @@ def kill_all_node_processes():
atexit.register(kill_all_node_processes)
#try:
# app = register_app('job_processor', _(u'Job processor'))
#except UnableToRegister:
# pass
#else:
# AppBackup(app, [ModelBackup()])

View File

@@ -0,0 +1,17 @@
from __future__ import absolute_import
from icons.literals import (LORRY_GO, LORRY_DELETE, HOURGLASS, COG, COG_DELETE,
COG_ERROR, COG_ADD, CONTROL_PLAY_BLUE, CONTROL_STOP_BLUE)
from icons import Icon
icon_node_workers = Icon(LORRY_GO)
icon_tool_link = Icon(HOURGLASS)
icon_job_queues = Icon(HOURGLASS)
icon_job_queue_items_pending = Icon(COG)
icon_job_queue_items_error = Icon(COG_ERROR)
icon_job_queue_items_active = Icon(COG)
icon_job_queue_start = Icon(CONTROL_PLAY_BLUE)
icon_job_queue_stop = Icon(CONTROL_STOP_BLUE)
icon_job_requeue = Icon(COG_ADD)
icon_job_delete = Icon(COG_DELETE)
icon_worker_terminate = Icon(LORRY_DELETE)

View File

@@ -9,7 +9,11 @@ from clustering.permissions import PERMISSION_NODES_VIEW
from .permissions import (PERMISSION_JOB_QUEUE_VIEW,
PERMISSION_JOB_PROCESSING_CONFIGURATION, PERMISSION_JOB_QUEUE_START_STOP,
PERMISSION_JOB_REQUEUE, PERMISSION_JOB_DELETE, PERMISSION_WORKER_TERMINATE)
from .icons import (icon_node_workers, icon_tool_link, icon_job_queues,
icon_job_queue_items_pending, icon_job_queue_items_error, icon_job_queue_items_active,
icon_job_queue_start, icon_job_queue_stop, icon_job_requeue, icon_job_delete,
icon_worker_terminate)
def is_running(context):
return context['object'].is_running()
@@ -27,23 +31,27 @@ def is_in_pending_state(context):
return context['object'].is_in_pending_state
node_workers = Link(text=_(u'workers'), view='node_workers', args='object.pk', sprite='lorry_go', permissions=[PERMISSION_NODES_VIEW])
tool_link = Link(text=_(u'job queues'), view='job_queues', icon='hourglass.png', permissions=[PERMISSION_JOB_QUEUE_VIEW])
job_queues = Link(text=_(u'job queue list'), view='job_queues', sprite='hourglass', permissions=[PERMISSION_JOB_QUEUE_VIEW])
job_queue_items_pending = Link(text=_(u'pending jobs'), view='job_queue_items_pending', args='object.pk', sprite='cog', permissions=[PERMISSION_JOB_QUEUE_VIEW])
job_queue_items_error = Link(text=_(u'error jobs'), view='job_queue_items_error', args='object.pk', sprite='cog_error', permissions=[PERMISSION_JOB_QUEUE_VIEW])
job_queue_items_active = Link(text=_(u'active jobs'), view='job_queue_items_active', args='object.pk', sprite='cog', permissions=[PERMISSION_JOB_QUEUE_VIEW])
#icon_job_queue_config_edit == sprite='hourglass'
#icon_setup_link icon='hourglass.png'
job_queue_start = Link(text=_(u'start'), view='job_queue_start', args='object.pk', sprite='control_play_blue', permissions=[PERMISSION_JOB_QUEUE_START_STOP], condition=is_not_running)
job_queue_stop = Link(text=_(u'stop'), view='job_queue_stop', args='object.pk', sprite='control_stop_blue', permissions=[PERMISSION_JOB_QUEUE_START_STOP], condition=is_running)
job_queue_config_edit = Link(text=_(u'edit job processing configuration'), view='job_queue_config_edit', sprite='hourglass', permissions=[PERMISSION_JOB_PROCESSING_CONFIGURATION])
setup_link = Link(text=_(u'job processing configuration'), view='job_queue_config_edit', icon='hourglass.png', permissions=[PERMISSION_JOB_PROCESSING_CONFIGURATION])
node_workers = Link(text=_(u'workers'), view='node_workers', args='object.pk', icon=icon_node_workers, permissions=[PERMISSION_NODES_VIEW])
tool_link = Link(text=_(u'job queues'), view='job_queues', icon=icon_tool_link, permissions=[PERMISSION_JOB_QUEUE_VIEW])
job_queues = Link(text=_(u'job queue list'), view='job_queues', icon=icon_job_queues, permissions=[PERMISSION_JOB_QUEUE_VIEW])
job_queue_items_pending = Link(text=_(u'pending jobs'), view='job_queue_items_pending', args='object.pk', icon=icon_job_queue_items_pending, permissions=[PERMISSION_JOB_QUEUE_VIEW])
job_queue_items_error = Link(text=_(u'error jobs'), view='job_queue_items_error', args='object.pk', icon=icon_job_queue_items_error, permissions=[PERMISSION_JOB_QUEUE_VIEW])
job_queue_items_active = Link(text=_(u'active jobs'), view='job_queue_items_active', args='object.pk', icon=icon_job_queue_items_active, permissions=[PERMISSION_JOB_QUEUE_VIEW])
job_requeue = Link(text=_(u'requeue job'), view='job_requeue', args='object.pk', sprite='cog_add', permissions=[PERMISSION_JOB_REQUEUE], condition=is_in_error_state)
job_delete = Link(text=_(u'delete job'), view='job_delete', args='object.pk', sprite='cog_delete', permissions=[PERMISSION_JOB_DELETE], condition=is_in_pending_state)
job_queue_start = Link(text=_(u'start'), view='job_queue_start', args='object.pk', icon=icon_job_queue_start, permissions=[PERMISSION_JOB_QUEUE_START_STOP], condition=is_not_running)
job_queue_stop = Link(text=_(u'stop'), view='job_queue_stop', args='object.pk', icon=icon_job_queue_stop, permissions=[PERMISSION_JOB_QUEUE_START_STOP], condition=is_running)
worker_terminate = Link(text=_(u'terminate worker'), view='worker_terminate', args='object.pk', sprite='lorry_delete', permissions=[PERMISSION_WORKER_TERMINATE])
job_queue_config_edit = Link(text=_(u'edit job processing configuration'), view='job_queue_config_edit', permissions=[PERMISSION_JOB_PROCESSING_CONFIGURATION])
setup_link = Link(text=_(u'job processing configuration'), view='job_queue_config_edit', permissions=[PERMISSION_JOB_PROCESSING_CONFIGURATION])
job_requeue = Link(text=_(u'requeue job'), view='job_requeue', args='object.pk', icon=icon_job_requeue, permissions=[PERMISSION_JOB_REQUEUE], condition=is_in_error_state)
job_delete = Link(text=_(u'delete job'), view='job_delete', args='object.pk', icon=icon_job_delete, permissions=[PERMISSION_JOB_DELETE], condition=is_in_pending_state)
worker_terminate = Link(text=_(u'terminate worker'), view='worker_terminate', args='object.pk', icon=icon_worker_terminate, permissions=[PERMISSION_WORKER_TERMINATE])
'''

View File

@@ -0,0 +1,12 @@
from __future__ import absolute_import
from django.utils.translation import ugettext_lazy as _
from .icons import icon_tool_link
from .links import tool_link
label = _(u'Job processor')
description = _(u'Handles queuing of jobs to be processed by the cluster nodes.')
icon = icon_tool_link
dependencies = ['navigation', 'icons', 'permissions']
tool_links = [tool_link]