* 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
52 lines
1.5 KiB
JavaScript
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;
|
|
},
|
|
]);
|