mirror of https://github.com/portainer/portainer
51 lines
1.3 KiB
JavaScript
51 lines
1.3 KiB
JavaScript
import { AgentViewModel } from '../models/agent';
|
|
|
|
angular.module('portainer.agent').factory('AgentService', [
|
|
'$q',
|
|
'Agent',
|
|
'AgentVersion1',
|
|
'HttpRequestHelper',
|
|
'Host',
|
|
'StateManager',
|
|
function AgentServiceFactory($q, Agent, AgentVersion1, HttpRequestHelper, Host, StateManager) {
|
|
'use strict';
|
|
var service = {};
|
|
|
|
service.agents = agents;
|
|
service.hostInfo = hostInfo;
|
|
|
|
function getAgentApiVersion() {
|
|
var state = StateManager.getState();
|
|
return state.endpoint.agentApiVersion;
|
|
}
|
|
|
|
function hostInfo(nodeName) {
|
|
HttpRequestHelper.setPortainerAgentTargetHeader(nodeName);
|
|
return Host.info().$promise;
|
|
}
|
|
|
|
function agents() {
|
|
var deferred = $q.defer();
|
|
|
|
var agentVersion = getAgentApiVersion();
|
|
var service = agentVersion > 1 ? Agent : AgentVersion1;
|
|
|
|
service
|
|
.query({ version: agentVersion })
|
|
.$promise.then(function success(data) {
|
|
var agents = data.map(function (item) {
|
|
return new AgentViewModel(item);
|
|
});
|
|
deferred.resolve(agents);
|
|
})
|
|
.catch(function error(err) {
|
|
deferred.reject({ msg: 'Unable to retrieve agents', err: err });
|
|
});
|
|
|
|
return deferred.promise;
|
|
}
|
|
|
|
return service;
|
|
},
|
|
]);
|