32 lines
1.3 KiB
Python
32 lines
1.3 KiB
Python
from __future__ import absolute_import
|
|
|
|
from django.utils.translation import ugettext_lazy as _
|
|
from django.db import transaction, DatabaseError
|
|
|
|
from scheduler.api import LocalScheduler
|
|
from navigation.api import bind_links
|
|
from project_tools.api import register_tool
|
|
from project_setup.api import register_setup
|
|
|
|
from .tasks import send_heartbeat, house_keeping
|
|
from .links import tool_link, node_list, clustering_config_edit, setup_link
|
|
from .models import Node, ClusteringConfig
|
|
|
|
ClusteringConfig()
|
|
@transaction.commit_on_success
|
|
def add_clustering_jobs():
|
|
clustering_scheduler = LocalScheduler('clustering', _(u'Clustering'))
|
|
try:
|
|
clustering_scheduler.add_interval_job('send_heartbeat', _(u'Update a node\'s properties.'), send_heartbeat, seconds=ClusteringConfig.get().node_heartbeat_interval)
|
|
clustering_scheduler.add_interval_job('house_keeping', _(u'Check for unresponsive nodes in the cluster list.'), house_keeping, seconds=ClusteringConfig.get().dead_node_removal_interval)
|
|
except DatabaseError:
|
|
transaction.rollback()
|
|
clustering_scheduler.start()
|
|
|
|
|
|
add_clustering_jobs()
|
|
register_tool(tool_link)
|
|
register_setup(setup_link)
|
|
bind_links([Node, 'node_list'], [node_list], menu_name='secondary_menu')
|
|
bind_links(['clustering_config_edit'], [clustering_config_edit], menu_name='secondary_menu')
|