mirror of https://github.com/portainer/portainer
				
				
				
			
		
			
				
	
	
		
			80 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			JavaScript
		
	
	
			
		
		
	
	
			80 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			JavaScript
		
	
	
import angular from 'angular';
 | 
						|
import _ from 'lodash-es';
 | 
						|
 | 
						|
import { ScheduleCreateRequest, ScheduleUpdateRequest } from '@/portainer/models/schedule';
 | 
						|
 | 
						|
function EdgeJobService(EdgeJobs, EdgeJobResults, FileUploadService) {
 | 
						|
  var service = {};
 | 
						|
 | 
						|
  service.edgeJob = edgeJob;
 | 
						|
  async function edgeJob(edgeJobId) {
 | 
						|
    try {
 | 
						|
      return await EdgeJobs.get({ id: edgeJobId }).$promise;
 | 
						|
    } catch (err) {
 | 
						|
      throw { msg: 'Unable to retrieve edgeJob', err: err };
 | 
						|
    }
 | 
						|
  }
 | 
						|
 | 
						|
  service.edgeJobs = edgeJobs;
 | 
						|
  async function edgeJobs() {
 | 
						|
    try {
 | 
						|
      return await EdgeJobs.query().$promise;
 | 
						|
    } catch (err) {
 | 
						|
      throw { msg: 'Unable to retrieve edgeJobs', err: err };
 | 
						|
    }
 | 
						|
  }
 | 
						|
 | 
						|
  service.jobResults = jobResults;
 | 
						|
  async function jobResults(edgeJobId) {
 | 
						|
    try {
 | 
						|
      const results = await EdgeJobResults.query({ id: edgeJobId }).$promise;
 | 
						|
 | 
						|
      return _.sortBy(results, ['Id']);
 | 
						|
    } catch (err) {
 | 
						|
      throw { msg: 'Unable to retrieve results associated to the edgeJob', err: err };
 | 
						|
    }
 | 
						|
  }
 | 
						|
 | 
						|
  service.logFile = logFile;
 | 
						|
  function logFile(id, taskId) {
 | 
						|
    return EdgeJobResults.logFile({ id, taskId }).$promise;
 | 
						|
  }
 | 
						|
 | 
						|
  service.collectLogs = collectLogs;
 | 
						|
  function collectLogs(id, taskId) {
 | 
						|
    return EdgeJobResults.collectLogs({ id, taskId }).$promise;
 | 
						|
  }
 | 
						|
 | 
						|
  service.clearLogs = clearLogs;
 | 
						|
  function clearLogs(id, taskId) {
 | 
						|
    return EdgeJobResults.clearLogs({ id, taskId }).$promise;
 | 
						|
  }
 | 
						|
 | 
						|
  service.createEdgeJobFromFileContent = function (model) {
 | 
						|
    var payload = new ScheduleCreateRequest(model);
 | 
						|
    return EdgeJobs.create({}, { method: 'string', ...payload }).$promise;
 | 
						|
  };
 | 
						|
 | 
						|
  service.createEdgeJobFromFileUpload = function (model) {
 | 
						|
    var payload = new ScheduleCreateRequest(model);
 | 
						|
    return FileUploadService.createSchedule(payload);
 | 
						|
  };
 | 
						|
 | 
						|
  service.updateEdgeJob = function (model) {
 | 
						|
    var payload = new ScheduleUpdateRequest(model);
 | 
						|
    return EdgeJobs.update(payload).$promise;
 | 
						|
  };
 | 
						|
 | 
						|
  service.remove = function (edgeJobId) {
 | 
						|
    return EdgeJobs.remove({ id: edgeJobId }).$promise;
 | 
						|
  };
 | 
						|
 | 
						|
  service.getScriptFile = function (edgeJobId) {
 | 
						|
    return EdgeJobs.file({ id: edgeJobId }).$promise;
 | 
						|
  };
 | 
						|
 | 
						|
  return service;
 | 
						|
}
 | 
						|
 | 
						|
angular.module('portainer.edge').factory('EdgeJobService', EdgeJobService);
 |