Update and enable the job_processor app
This commit is contained in:
@@ -25,11 +25,14 @@ class IconSet(IconSetBase):
|
|||||||
COG: 'cog.png',
|
COG: 'cog.png',
|
||||||
COG_ADD: 'cog_add.png',
|
COG_ADD: 'cog_add.png',
|
||||||
COG_EDIT: 'cog_edit.png',
|
COG_EDIT: 'cog_edit.png',
|
||||||
|
COG_ERROR: 'cog_error.png',
|
||||||
COG_DELETE: 'cog_delete.png',
|
COG_DELETE: 'cog_delete.png',
|
||||||
COMMENTS: 'comments.png',
|
COMMENTS: 'comments.png',
|
||||||
COMMENT_ADD: 'comment_add.png',
|
COMMENT_ADD: 'comment_add.png',
|
||||||
COMMENT_DELETE: 'comment_delete.png',
|
COMMENT_DELETE: 'comment_delete.png',
|
||||||
COMPUTER_KEY: 'computer_key.png',
|
COMPUTER_KEY: 'computer_key.png',
|
||||||
|
CONTROL_PLAY_BLUE: 'control_play_blue.png',
|
||||||
|
CONTROL_STOP_BLUE: 'control_stop_blue.png',
|
||||||
CROSS: 'cross.png',
|
CROSS: 'cross.png',
|
||||||
DATABASE: 'database.png',
|
DATABASE: 'database.png',
|
||||||
DATABASE_ADD: 'database_add.png',
|
DATABASE_ADD: 'database_add.png',
|
||||||
@@ -52,6 +55,7 @@ class IconSet(IconSetBase):
|
|||||||
GROUP_DELETE: 'group_delete.png',
|
GROUP_DELETE: 'group_delete.png',
|
||||||
GROUP_KEY: 'group_key.png',
|
GROUP_KEY: 'group_key.png',
|
||||||
GROUP_LINK: 'group_link.png',
|
GROUP_LINK: 'group_link.png',
|
||||||
|
HOURGLASS: 'hourglass.png',
|
||||||
HOUSE: 'house.png',
|
HOUSE: 'house.png',
|
||||||
INFORMATION: 'information.png',
|
INFORMATION: 'information.png',
|
||||||
KEY: 'key.png',
|
KEY: 'key.png',
|
||||||
@@ -71,6 +75,8 @@ class IconSet(IconSetBase):
|
|||||||
LOCK: 'lock.png',
|
LOCK: 'lock.png',
|
||||||
LOCK_EDIT: 'lock_edit.png',
|
LOCK_EDIT: 'lock_edit.png',
|
||||||
LOCK_GO: 'lock_go.png',
|
LOCK_GO: 'lock_go.png',
|
||||||
|
LORRY_GO: 'lorry_go.png',
|
||||||
|
LORRY_DELETE: 'lorry_delete.png',
|
||||||
MAGNIFIER: 'magnifier.png',
|
MAGNIFIER: 'magnifier.png',
|
||||||
MEDAL_GOLD: 'medal_gold_1.png',
|
MEDAL_GOLD: 'medal_gold_1.png',
|
||||||
MEDAL_GOLD_ADD: 'medal_gold_add.png',
|
MEDAL_GOLD_ADD: 'medal_gold_add.png',
|
||||||
|
|||||||
@@ -19,11 +19,14 @@ CD_BURN = 'cd_burn'
|
|||||||
COG = 'cog'
|
COG = 'cog'
|
||||||
COG_ADD = 'cog_add'
|
COG_ADD = 'cog_add'
|
||||||
COG_EDIT = 'cog_edit'
|
COG_EDIT = 'cog_edit'
|
||||||
|
COG_ERROR = 'cog_error'
|
||||||
COG_DELETE = 'cog_delete'
|
COG_DELETE = 'cog_delete'
|
||||||
COMMENTS = 'comments'
|
COMMENTS = 'comments'
|
||||||
COMMENT_ADD = 'comment_add'
|
COMMENT_ADD = 'comment_add'
|
||||||
COMMENT_DELETE = 'comment_delete'
|
COMMENT_DELETE = 'comment_delete'
|
||||||
COMPUTER_KEY = 'computer_key'
|
COMPUTER_KEY = 'computer_key'
|
||||||
|
CONTROL_PLAY_BLUE = 'control_play_blue'
|
||||||
|
CONTROL_STOP_BLUE = 'control_stop_blue'
|
||||||
CROSS = 'cross'
|
CROSS = 'cross'
|
||||||
DATABASE = 'database'
|
DATABASE = 'database'
|
||||||
DATABASE_ADD = 'database_add'
|
DATABASE_ADD = 'database_add'
|
||||||
@@ -48,6 +51,7 @@ GROUP_EDIT = 'group_edit'
|
|||||||
GROUP_DELETE = 'group_delete'
|
GROUP_DELETE = 'group_delete'
|
||||||
GROUP_KEY = 'group_key'
|
GROUP_KEY = 'group_key'
|
||||||
GROUP_LINK = 'group_link'
|
GROUP_LINK = 'group_link'
|
||||||
|
HOURGLASS = 'hourglass'
|
||||||
HOUSE = 'house'
|
HOUSE = 'house'
|
||||||
INFORMATION = 'information'
|
INFORMATION = 'information'
|
||||||
KEY = 'key'
|
KEY = 'key'
|
||||||
@@ -67,6 +71,8 @@ LINK_DELETE = 'link_delete'
|
|||||||
LOCK = 'lock'
|
LOCK = 'lock'
|
||||||
LOCK_EDIT = 'lock_edit'
|
LOCK_EDIT = 'lock_edit'
|
||||||
LOCK_GO = 'lock_go'
|
LOCK_GO = 'lock_go'
|
||||||
|
LORRY_GO = 'lorry_go'
|
||||||
|
LORRY_DELETE = 'lorry_delete'
|
||||||
MAGNIFIER = 'magnifier'
|
MAGNIFIER = 'magnifier'
|
||||||
MEDAL_GOLD = 'medal_gold'
|
MEDAL_GOLD = 'medal_gold'
|
||||||
MEDAL_GOLD_ADD = 'medal_gold_add'
|
MEDAL_GOLD_ADD = 'medal_gold_add'
|
||||||
|
|||||||
@@ -9,11 +9,8 @@ from django.db import transaction, DatabaseError
|
|||||||
from django.dispatch import receiver
|
from django.dispatch import receiver
|
||||||
from django.utils.translation import ugettext_lazy as _
|
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 scheduler.api import LocalScheduler
|
||||||
from navigation.api import bind_links, register_model_list_columns
|
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 project_setup.api import register_setup
|
||||||
from common.utils import encapsulate
|
from common.utils import encapsulate
|
||||||
|
|
||||||
@@ -43,7 +40,6 @@ def add_job_queue_jobs():
|
|||||||
|
|
||||||
|
|
||||||
add_job_queue_jobs()
|
add_job_queue_jobs()
|
||||||
register_tool(tool_link)
|
|
||||||
register_setup(setup_link)
|
register_setup(setup_link)
|
||||||
bind_links([JobQueue, 'job_queues'], [job_queues], menu_name='secondary_menu')
|
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])
|
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)
|
atexit.register(kill_all_node_processes)
|
||||||
|
|
||||||
#try:
|
|
||||||
# app = register_app('job_processor', _(u'Job processor'))
|
|
||||||
#except UnableToRegister:
|
|
||||||
# pass
|
|
||||||
#else:
|
|
||||||
# AppBackup(app, [ModelBackup()])
|
|
||||||
|
|||||||
17
apps/job_processor/icons.py
Normal file
17
apps/job_processor/icons.py
Normal 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)
|
||||||
@@ -9,6 +9,10 @@ from clustering.permissions import PERMISSION_NODES_VIEW
|
|||||||
from .permissions import (PERMISSION_JOB_QUEUE_VIEW,
|
from .permissions import (PERMISSION_JOB_QUEUE_VIEW,
|
||||||
PERMISSION_JOB_PROCESSING_CONFIGURATION, PERMISSION_JOB_QUEUE_START_STOP,
|
PERMISSION_JOB_PROCESSING_CONFIGURATION, PERMISSION_JOB_QUEUE_START_STOP,
|
||||||
PERMISSION_JOB_REQUEUE, PERMISSION_JOB_DELETE, PERMISSION_WORKER_TERMINATE)
|
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):
|
def is_running(context):
|
||||||
@@ -27,23 +31,27 @@ def is_in_pending_state(context):
|
|||||||
return context['object'].is_in_pending_state
|
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])
|
#icon_job_queue_config_edit == sprite='hourglass'
|
||||||
tool_link = Link(text=_(u'job queues'), view='job_queues', icon='hourglass.png', permissions=[PERMISSION_JOB_QUEUE_VIEW])
|
#icon_setup_link icon='hourglass.png'
|
||||||
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])
|
|
||||||
|
|
||||||
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])
|
node_workers = Link(text=_(u'workers'), view='node_workers', args='object.pk', icon=icon_node_workers, permissions=[PERMISSION_NODES_VIEW])
|
||||||
setup_link = Link(text=_(u'job processing configuration'), view='job_queue_config_edit', icon='hourglass.png', permissions=[PERMISSION_JOB_PROCESSING_CONFIGURATION])
|
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_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_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_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])
|
||||||
|
|
||||||
|
|
||||||
'''
|
'''
|
||||||
|
|||||||
12
apps/job_processor/registry.py
Normal file
12
apps/job_processor/registry.py
Normal 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]
|
||||||
@@ -165,7 +165,7 @@ INSTALLED_APPS = (
|
|||||||
'mimetype',
|
'mimetype',
|
||||||
'clustering',
|
'clustering',
|
||||||
'scheduler',
|
'scheduler',
|
||||||
#'job_processor',
|
'job_processor',
|
||||||
# Mayan EDMS
|
# Mayan EDMS
|
||||||
'diagnostics',
|
'diagnostics',
|
||||||
'maintenance',
|
'maintenance',
|
||||||
|
|||||||
2
urls.py
2
urls.py
@@ -35,7 +35,7 @@ urlpatterns = patterns('',
|
|||||||
#(r'^checkouts/', include('checkouts.urls')),
|
#(r'^checkouts/', include('checkouts.urls')),
|
||||||
#(r'^installation/', include('installation.urls')),
|
#(r'^installation/', include('installation.urls')),
|
||||||
(r'^scheduler/', include('scheduler.urls')),
|
(r'^scheduler/', include('scheduler.urls')),
|
||||||
#(r'^job_processing/', include('job_processor.urls')),
|
(r'^job_processing/', include('job_processor.urls')),
|
||||||
#(r'^bootstrap/', include('bootstrap.urls')),
|
#(r'^bootstrap/', include('bootstrap.urls')),
|
||||||
(r'^diagnostics/', include('diagnostics.urls')),
|
(r'^diagnostics/', include('diagnostics.urls')),
|
||||||
(r'^maintenance/', include('maintenance.urls')),
|
(r'^maintenance/', include('maintenance.urls')),
|
||||||
|
|||||||
Reference in New Issue
Block a user