Merge pull request #355 from pigmej/new_db_celery_session

Added session start / end to celery using hooks
This commit is contained in:
Łukasz Oleś 2015-11-20 13:17:09 +01:00
commit da26480f72

View File

@ -17,6 +17,7 @@ import subprocess
import time import time
from celery.app import task from celery.app import task
from celery.signals import task_prerun, task_postrun
from solar.orchestration import graph from solar.orchestration import graph
from solar.core import actions from solar.core import actions
@ -26,6 +27,7 @@ from solar.orchestration.runner import app
from solar.orchestration.traversal import traverse from solar.orchestration.traversal import traverse
from solar.orchestration import limits from solar.orchestration import limits
from solar.orchestration import executor from solar.orchestration import executor
from solar.dblayer import ModelMeta
__all__ = ['solar_resource', 'cmd', 'sleep', __all__ = ['solar_resource', 'cmd', 'sleep',
@ -52,6 +54,14 @@ class ReportTask(task.Task):
report_task = partial(app.task, base=ReportTask, bind=True) report_task = partial(app.task, base=ReportTask, bind=True)
@task_prerun.connect
def start_solar_session(task_id, task, *args, **kwargs):
ModelMeta.session_start()
@task_postrun.connect
def end_solar_session(task_id, task, *args, **kwargs):
ModelMeta.session_end()
@report_task(name='solar_resource') @report_task(name='solar_resource')
def solar_resource(ctxt, resource_name, action): def solar_resource(ctxt, resource_name, action):