mirror of
https://github.com/portainer/portainer.git
synced 2025-07-21 14:29:40 +02:00
refactor(image): refactor the code used in image and image details controller (#705)
This commit is contained in:
parent
c2e63070e6
commit
24b51a7e87
8 changed files with 245 additions and 167 deletions
|
@ -1,10 +1,43 @@
|
|||
angular.module('portainer.services')
|
||||
.factory('ImageService', ['$q', 'Image', function ImageServiceFactory($q, Image) {
|
||||
.factory('ImageService', ['$q', 'Image', 'ImageHelper', function ImageServiceFactory($q, Image, ImageHelper) {
|
||||
'use strict';
|
||||
var service = {};
|
||||
|
||||
service.pullImage = function(imageConfiguration) {
|
||||
service.image = function(imageId) {
|
||||
var deferred = $q.defer();
|
||||
Image.get({id: imageId}).$promise
|
||||
.then(function success(data) {
|
||||
if (data.message) {
|
||||
deferred.reject({ msg: data.message });
|
||||
} else {
|
||||
var image = new ImageDetailsViewModel(data);
|
||||
deferred.resolve(image);
|
||||
}
|
||||
})
|
||||
.catch(function error(err) {
|
||||
deferred.reject({ msg: 'Unable to retrieve image details', err: err });
|
||||
});
|
||||
return deferred.promise;
|
||||
};
|
||||
|
||||
service.images = function() {
|
||||
var deferred = $q.defer();
|
||||
Image.query({}).$promise
|
||||
.then(function success(data) {
|
||||
var images = data.map(function (item) {
|
||||
return new ImageViewModel(item);
|
||||
});
|
||||
deferred.resolve(images);
|
||||
})
|
||||
.catch(function error(err) {
|
||||
deferred.reject({ msg: 'Unable to retrieve images', err: err });
|
||||
});
|
||||
return deferred.promise;
|
||||
};
|
||||
|
||||
service.pullImage = function(image, registry) {
|
||||
var deferred = $q.defer();
|
||||
var imageConfiguration = ImageHelper.createImageConfigForContainer(image, registry);
|
||||
Image.create(imageConfiguration).$promise
|
||||
.then(function success(data) {
|
||||
var err = data.length > 0 && data[data.length - 1].hasOwnProperty('error');
|
||||
|
@ -20,5 +53,43 @@ angular.module('portainer.services')
|
|||
});
|
||||
return deferred.promise;
|
||||
};
|
||||
|
||||
service.tagImage = function(id, image, registry) {
|
||||
var imageConfig = ImageHelper.createImageConfigForCommit(image, registry);
|
||||
return Image.tag({id: id, tag: imageConfig.tag, repo: imageConfig.repo}).$promise;
|
||||
};
|
||||
|
||||
service.deleteImage = function(id, forceRemoval) {
|
||||
var deferred = $q.defer();
|
||||
Image.remove({id: id, force: forceRemoval}).$promise
|
||||
.then(function success(data) {
|
||||
if (data[0].message) {
|
||||
deferred.reject({ msg: data[0].message });
|
||||
} else {
|
||||
deferred.resolve();
|
||||
}
|
||||
})
|
||||
.catch(function error(err) {
|
||||
deferred.reject({ msg: 'Unable to remove image', err: err });
|
||||
});
|
||||
return deferred.promise;
|
||||
};
|
||||
|
||||
service.pushImage = function(tag) {
|
||||
var deferred = $q.defer();
|
||||
Image.push({tag: tag}).$promise
|
||||
.then(function success(data) {
|
||||
if (data[data.length - 1].error) {
|
||||
deferred.reject({ msg: data[data.length - 1].error });
|
||||
} else {
|
||||
deferred.resolve();
|
||||
}
|
||||
})
|
||||
.catch(function error(err) {
|
||||
deferred.reject({ msg: 'Unable to push image tag', err: err });
|
||||
});
|
||||
return deferred.promise;
|
||||
};
|
||||
|
||||
return service;
|
||||
}]);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue