|
@@ -21,7 +21,7 @@ import logging
|
|
|
from django.utils.translation import ugettext as _
|
|
from django.utils.translation import ugettext as _
|
|
|
|
|
|
|
|
from jobbrowser.apis.base_api import Api, MockDjangoRequest
|
|
from jobbrowser.apis.base_api import Api, MockDjangoRequest
|
|
|
-from jobbrowser.views import job_attempt_logs_json
|
|
|
|
|
|
|
+from jobbrowser.views import job_attempt_logs_json, kill_job
|
|
|
|
|
|
|
|
|
|
|
|
|
LOG = logging.getLogger(__name__)
|
|
LOG = logging.getLogger(__name__)
|
|
@@ -50,6 +50,8 @@ class JobApi(Api):
|
|
|
def app(self, appid):
|
|
def app(self, appid):
|
|
|
return self._get_api(appid).app(appid)
|
|
return self._get_api(appid).app(appid)
|
|
|
|
|
|
|
|
|
|
+ def action(self, appid, action): self._get_api(appid).action(action, appid)
|
|
|
|
|
+
|
|
|
def logs(self, appid, app_type):
|
|
def logs(self, appid, app_type):
|
|
|
return self._get_api(appid).logs(appid, app_type)
|
|
return self._get_api(appid).logs(appid, app_type)
|
|
|
|
|
|
|
@@ -119,6 +121,13 @@ class YarnApi(Api):
|
|
|
return common
|
|
return common
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
+ def action(self, action, appid):
|
|
|
|
|
+ if action == 'kill':
|
|
|
|
|
+ return kill_job(MockDjangoRequest(self.user), job=appid)
|
|
|
|
|
+ else:
|
|
|
|
|
+ return {}
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
def logs(self, appid, app_type):
|
|
def logs(self, appid, app_type):
|
|
|
if app_type == 'MAPREDUCE':
|
|
if app_type == 'MAPREDUCE':
|
|
|
response = job_attempt_logs_json(MockDjangoRequest(self.user), job=appid)
|
|
response = job_attempt_logs_json(MockDjangoRequest(self.user), job=appid)
|