Files
backroad/app/portainer/services/api/dockerhubService.js
Chaim Lev-Ari f5aa6c4dc2 feat(docker): show docker pull rate limits (#4666)
* feat(dockerhub): introduce local status endpoint

* feat(proxy): rewrite request with dockerhub credentials

* feat(endpoint): check env type

* feat(endpoint): check for local endpoint

* feat(docker): introduce client side service to get limits

* feat(container): add info about rate limits in container

* feat(dockerhub): load rate limits just for specific endpoints

* feat(images): show specific dockerhub messages for admin

* feat(service-create): show docker rate limits

* feat(service-edit): show rate limit messages

* fix(images): fix loading of page

* refactor(images): move rate limits check to container

* feat(kubernetes): proxy agent requests

* feat(kubernetes/apps): show pull limits in application creation

* refactor(image-registry): move warning to end of field

* fix(image-registry): show right message for admin

* fix(images): silently fail when loading rate limits

* fix(kube/apps): use new rate limits comp

* fix(images): move rate warning to end

* fix(registry): move search to right place

* fix(service): remove service warning

* fix(endpoints): check if kube endpoint is local
2021-03-24 19:27:32 +01:00

52 lines
1.5 KiB
JavaScript

import { DockerHubViewModel } from '../../models/dockerhub';
angular.module('portainer.app').factory('DockerHubService', [
'$q',
'DockerHub',
'Endpoints',
'AgentDockerhub',
'EndpointHelper',
function DockerHubServiceFactory($q, DockerHub, Endpoints, AgentDockerhub, EndpointHelper) {
'use strict';
var service = {};
service.dockerhub = function () {
var deferred = $q.defer();
DockerHub.get()
.$promise.then(function success(data) {
var dockerhub = new DockerHubViewModel(data);
deferred.resolve(dockerhub);
})
.catch(function error(err) {
deferred.reject({ msg: 'Unable to retrieve DockerHub details', err: err });
});
return deferred.promise;
};
service.update = function (dockerhub) {
return DockerHub.update({}, dockerhub).$promise;
};
service.checkRateLimits = checkRateLimits;
function checkRateLimits(endpoint) {
if (EndpointHelper.isLocalEndpoint(endpoint)) {
return Endpoints.dockerhubLimits({ id: endpoint.Id }).$promise;
}
switch (endpoint.Type) {
case 2: //AgentOnDockerEnvironment
case 4: //EdgeAgentOnDockerEnvironment
return AgentDockerhub.limits({ endpointId: endpoint.Id, endpointType: 'docker' }).$promise;
case 6: //AgentOnKubernetesEnvironment
case 7: //EdgeAgentOnKubernetesEnvironment
return AgentDockerhub.limits({ endpointId: endpoint.Id, endpointType: 'kubernetes' }).$promise;
}
}
return service;
},
]);