def logs(self, appid, app_type, log_name, is_embeddable=False): logs = '' logs_list = [] try: if app_type == 'YarnV2' or app_type == 'MAPREDUCE': if log_name == 'default': response = job_single_logs(MockDjangoRequest(self.user), job=appid) parseResponse = json.loads(response.content) logs = parseResponse.get('logs') logs_list = parseResponse.get('logsList') if logs and len(logs) == 4: if app_type == 'YarnV2' and logs[0]: #logs[0] is diagnostics logs = logs[0] else: logs = logs[1] else: response = job_attempt_logs_json(MockDjangoRequest(self.user), job=appid, name=log_name, is_embeddable=is_embeddable) logs = json.loads(response.content).get('log') elif app_type == 'SPARK': response = job_executor_logs(MockDjangoRequest(self.user), job=appid, name=log_name) logs = json.loads(response.content).get('log') else: logs = None except PopupException as e: LOG.warn('No task attempt found for logs: %s' % smart_str(e)) return {'logs': logs, 'logsList': logs_list}
def logs(self, appid, app_type, log_name, is_embeddable=False): logs = '' try: if app_type == 'MAPREDUCE' or app_type == 'Oozie Launcher': if log_name == 'default': response = job_single_logs(MockDjangoRequest(self.user), job=appid) logs = json.loads(response.content).get('logs') if logs and len(logs) == 4: logs = logs[1] else: response = job_attempt_logs_json( MockDjangoRequest(self.user), job=appid, name=log_name, is_embeddable=is_embeddable) logs = json.loads(response.content).get('log') elif app_type == 'SPARK': response = job_executor_logs(MockDjangoRequest(self.user), job=appid, name=log_name) logs = json.loads(response.content).get('log') else: logs = None except PopupException, e: LOG.warn('No task attempt found for logs: %s' % smart_str(e))
def _manage_oozie_job(user, action, app_ids): if action == 'change' or action == 'ignore' or len(app_ids) == 1: request = MockDjangoRequest(user) response = manage_oozie_jobs(request, app_ids[0], action['action']) else: request = MockDjangoRequest(user, post={'job_ids': ' '.join(app_ids), 'action': action['action']}) response = bulk_manage_oozie_jobs(request) result = json.loads(response.content) result['status'] = result.get('totalErrors', 0) result['message'] = _('%s action sent to %s jobs') % (action['action'], result.get('totalRequests', 1)) return result
def action(self, appid, action): if action == 'change' or action == 'ignore' or ',' not in appid: request = MockDjangoRequest(self.user) response = manage_oozie_jobs(request, appid, action['action']) else: request = MockDjangoRequest(self.user, post={ 'job_ids': appid, 'action': action['action'] }) response = bulk_manage_oozie_jobs(request) return json.loads(response.content)
def logs(self, appid, app_type, log_name): if app_type == 'MAPREDUCE': if log_name == 'default': response = job_single_logs(MockDjangoRequest(self.user), job=appid) logs = json.loads(response.content).get('logs') else: response = job_attempt_logs_json(MockDjangoRequest(self.user), job=appid, name=log_name) logs = json.loads(response.content).get('log') else: logs = None return {'logs': logs}
def logs(self, appid, app_type): if app_type == 'MAPREDUCE': response = job_attempt_logs_json(MockDjangoRequest(self.user), job=appid) logs = json.loads(response.content)['log'] else: logs = None return {'progress': 0, 'logs': {'default': logs}}
def logs(self, appid, app_type, log_name): try: response = job_attempt_logs_json(MockDjangoRequest(self.user), job=self.app_id, name=log_name) logs = json.loads(response.content)['log'] except PopupException, e: LOG.warn('No task attempt found for default logs: %s' % e) logs = ''
def app(self, appid): if '@' in appid: return WorkflowActionApi(self.user).app(appid) oozie_api = get_oozie(self.user) workflow = oozie_api.get_job(jobid=appid) common = { 'id': workflow.id, 'name': workflow.appName, 'status': workflow.status, 'apiStatus': self._api_status(workflow.status), 'progress': workflow.get_progress(), 'type': 'workflow', } request = MockDjangoRequest(self.user) response = list_oozie_workflow(request, job_id=appid) common['properties'] = json.loads(response.content) common['properties']['xml'] = '' common['properties']['properties'] = '' common['properties']['coordinator_id'] = workflow.get_parent_job_id() common['properties']['bundle_id'] = workflow.conf_dict.get( 'oozie.bundle.id') return common
def app(self, appid): if '@' in appid: return WorkflowActionApi(self.user).app(appid) oozie_api = get_oozie(self.user) workflow = oozie_api.get_job(jobid=appid) common = { 'id': workflow.id, 'name': workflow.appName, 'status': workflow.status, 'apiStatus': self._api_status(workflow.status), 'progress': workflow.get_progress(), 'type': 'workflow', 'user': workflow.user, 'duration': workflow.durationTime, 'submitted': workflow.submissionTime * 1000, 'canWrite': has_job_edition_permission(workflow, self.user), } request = MockDjangoRequest(self.user) response = list_oozie_workflow(request, job_id=appid) common['properties'] = json.loads(response.content) common['properties']['xml'] = '' common['properties']['properties'] = '' common['properties']['coordinator_id'] = workflow.get_parent_job_id() common['properties']['bundle_id'] = workflow.conf_dict.get( 'oozie.bundle.id') common['properties']['parameters'] = self._get_variables(workflow) common['doc_url'] = common['properties'].get('doc_url') return common
def app(self, appid): oozie_api = get_oozie(self.user) coordinator = oozie_api.get_coordinator(jobid=appid) request = MockDjangoRequest(self.user, get=MockGet()) response = list_oozie_coordinator(request, job_id=appid) common = { 'id': coordinator.coordJobId, 'name': coordinator.coordJobName, 'status': coordinator.status, 'apiStatus': self._api_status(coordinator.status), 'progress': coordinator.get_progress(), 'type': 'schedule', 'submitted': format_time(coordinator.startTime), 'user': coordinator.user, 'canWrite': has_job_edition_permission(coordinator, self.user), } common['properties'] = json.loads(response.content) for action in common['properties']['actions']: action['apiStatus'] = self._task_api_status(action['status']) common['properties']['tasks'] = common['properties']['actions'] common['properties']['xml'] = '' common['properties']['properties'] = '' common['properties']['bundle_id'] = coordinator.conf_dict.get( 'oozie.bundle.id') common['doc_url'] = common['properties'].get('doc_url') return common
def logs(self, appid, app_type, log_name): response = job_attempt_logs_json(MockDjangoRequest(self.user), job=self.app_id, name=log_name) logs = json.loads(response.content)['log'] return {'progress': 0, 'logs': logs}
def logs(self, appid, app_type, log_name): logs = '' try: if app_type == 'MAPREDUCE': if log_name == 'default': response = job_single_logs(MockDjangoRequest(self.user), job=appid) logs = json.loads(response.content).get('logs') if logs and len(logs) == 4: logs = logs[3] else: response = job_attempt_logs_json(MockDjangoRequest(self.user), job=appid, name=log_name) logs = json.loads(response.content).get('log') else: logs = None except PopupException, e: LOG.warn('No task attempt found for logs: %s' % e)
def action(self, appid, action): request = MockDjangoRequest(self.user) manage_oozie_jobs(request, action) if action == 'change' or action == 'ignore' or ',' not in appid: return manage_oozie_jobs(request, action) else: return bulk_manage_oozie_jobs(request)
def logs(self, appid, app_type, log_name=None): if '@' in appid: return WorkflowActionApi(self.user).logs(appid, app_type) request = MockDjangoRequest(self.user) data = get_oozie_job_log(request, job_id=appid) return {'logs': json.loads(data.content)['log']}
def logs(self, appid, app_type, log_name, is_embeddable=False): if log_name == 'default': log_name = 'stdout' try: response = job_attempt_logs_json(MockDjangoRequest(self.user), job=self.app_id, name=log_name, is_embeddable=is_embeddable) logs = json.loads(response.content)['log'] except PopupException as e: LOG.warn('No task attempt found for default logs: %s' % e) logs = '' return {'progress': 0, 'logs': logs}
def action(self, operation, app_ids): if operation['action'] == 'kill': kills = [] for app_id in app_ids: try: kill_job(MockDjangoRequest(self.user), job=app_id) except MessageException: kills.append(app_id) return {'kills': kills, 'status': len(app_ids) - len(kills), 'message': _('Stop signal sent to %s') % kills} else: return {}
def app(self, appid): oozie_api = get_oozie(self.user) workflow = oozie_api.get_job(jobid=appid) common = {'id': workflow.id, 'name': workflow.appName, 'status': workflow.status} request = MockDjangoRequest(self.user) response = list_oozie_workflow(request, job_id=appid) common['properties'] = json.loads(response.content) return common
def action(self, operation, app_ids): if operation['action'] == 'kill': kills = [] for app_id in app_ids: try: response = kill_job(MockDjangoRequest(self.user), job=app_id) if isinstance(response, JsonResponse) and json.loads(response.content).get('status') == 0: kills.append(app_id) except MessageException: kills.append(app_id) return {'kills': kills, 'status': len(app_ids) - len(kills), 'message': _('Stop signal sent to %s') % kills} else: return {}
def app(self, appid): oozie_api = get_oozie(self.user) coordinator = oozie_api.get_coordinator(jobid=appid) request = MockDjangoRequest(self.user, get=MockGet()) response = list_oozie_coordinator(request, job_id=appid) common = { 'id': coordinator.coordJobId, 'name': coordinator.coordJobName, 'status': coordinator.status, 'apiStatus': self._api_status(coordinator.status), 'progress': coordinator.get_progress(), 'type': 'schedule', 'startTime': format_time(coordinator.startTime), } common['properties'] = json.loads(response.content) common['properties']['xml'] = '' common['properties']['properties'] = '' return common
def app(self, appid): request = MockDjangoRequest(self.user, get=MockGet()) response = list_oozie_bundle(request, job_id=appid) bundle = json.loads(response.content) common = { 'id': bundle['id'], 'name': bundle['name'], 'status': bundle['status'], 'apiStatus': self._api_status(bundle['status']), 'progress': bundle['progress'], 'type': 'bundle', 'user': bundle['user'], 'submitted': bundle['submitted'], 'properties': {} } common['properties']['actions'] = bundle['actions'] common['properties']['xml'] = '' common['properties']['properties'] = '' common['doc_url'] = bundle.get('doc_url') return common
def logs(self, appid, app_type, log_name=None, is_embeddable=False): request = MockDjangoRequest(self.user) data = get_oozie_job_log(request, job_id=appid) return {'logs': json.loads(data.content)['log']}
def logs(self, appid, app_type): request = MockDjangoRequest(self.user) data = get_oozie_job_log(request, job_id=appid) return {'progress': 0, 'logs': {'default': json.loads(data.content)['log']}}
def action(self, operation, appid): if operation['action'] == 'kill': return kill_job(MockDjangoRequest(self.user), job=appid) else: return {}