mirror of
https://github.com/portainer/portainer.git
synced 2025-08-06 06:15:22 +02:00
feat(app): push pull container details recreate
This commit is contained in:
parent
c183cb53aa
commit
7b9998bdde
3 changed files with 17 additions and 30 deletions
|
@ -8,47 +8,27 @@ angular.module('portainer.docker')
|
||||||
|
|
||||||
helper.isValidTag = isValidTag;
|
helper.isValidTag = isValidTag;
|
||||||
helper.createImageConfigForContainer = createImageConfigForContainer;
|
helper.createImageConfigForContainer = createImageConfigForContainer;
|
||||||
|
helper.getImagesNamesForDownload = getImagesNamesForDownload;
|
||||||
|
helper.removeDigestFromRepository = removeDigestFromRepository;
|
||||||
|
|
||||||
function isValidTag(tag) {
|
function isValidTag(tag) {
|
||||||
return tag.match(/^(?![\.\-])([a-zA-Z0-9\_\.\-])+$/g);
|
return tag.match(/^(?![\.\-])([a-zA-Z0-9\_\.\-])+$/g);
|
||||||
}
|
}
|
||||||
|
|
||||||
// helper.extractImageAndRegistryFromRepository = function(repository) {
|
function getImagesNamesForDownload(images) {
|
||||||
// var slashCount = _.countBy(repository)['/'];
|
|
||||||
// var registry = null;
|
|
||||||
// var image = repository;
|
|
||||||
// if (slashCount >= 1) {
|
|
||||||
// // assume something/something[/...]
|
|
||||||
// registry = repository.substr(0, repository.indexOf('/'));
|
|
||||||
// // assume valid DNS name or IP (contains at least one '.')
|
|
||||||
// if (_.countBy(registry)['.'] > 0) {
|
|
||||||
// image = repository.substr(repository.indexOf('/') + 1);
|
|
||||||
// } else {
|
|
||||||
// registry = null;
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
|
|
||||||
// return {
|
|
||||||
// registry: registry,
|
|
||||||
// image: image
|
|
||||||
// };
|
|
||||||
// };
|
|
||||||
|
|
||||||
helper.getImagesNamesForDownload = function(images) {
|
|
||||||
var names = images.map(function(image) {
|
var names = images.map(function(image) {
|
||||||
return image.RepoTags[0] !== '<none>:<none>' ? image.RepoTags[0] : image.Id;
|
return image.RepoTags[0] !== '<none>:<none>' ? image.RepoTags[0] : image.Id;
|
||||||
});
|
});
|
||||||
return {
|
return {
|
||||||
names: names
|
names: names
|
||||||
};
|
};
|
||||||
};
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* @param {PorImageRegistryModel} registry
|
* @param {PorImageRegistryModel} registry
|
||||||
*/
|
*/
|
||||||
function createImageConfigForContainer(registry) {
|
function createImageConfigForContainer(registry) {
|
||||||
console.log('registry', registry);
|
|
||||||
const data = {
|
const data = {
|
||||||
fromImage: ''
|
fromImage: ''
|
||||||
};
|
};
|
||||||
|
@ -64,13 +44,12 @@ angular.module('portainer.docker')
|
||||||
}
|
}
|
||||||
|
|
||||||
data.fromImage = fullImageName;
|
data.fromImage = fullImageName;
|
||||||
console.log('FULL IMAGE NAME', fullImageName);
|
|
||||||
return data;
|
return data;
|
||||||
}
|
}
|
||||||
|
|
||||||
helper.removeDigestFromRepository = function(repository) {
|
function removeDigestFromRepository(repository) {
|
||||||
return repository.split('@sha')[0];
|
return repository.split('@sha')[0];
|
||||||
};
|
}
|
||||||
|
|
||||||
return helper;
|
return helper;
|
||||||
}]);
|
}]);
|
||||||
|
|
|
@ -96,6 +96,10 @@ angular.module('portainer.docker')
|
||||||
return deferred.promise;
|
return deferred.promise;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* PULL IMAGE
|
||||||
|
*/
|
||||||
|
|
||||||
function pullImageAndIgnoreErrors(imageConfiguration) {
|
function pullImageAndIgnoreErrors(imageConfiguration) {
|
||||||
var deferred = $q.defer();
|
var deferred = $q.defer();
|
||||||
|
|
||||||
|
@ -146,6 +150,10 @@ angular.module('portainer.docker')
|
||||||
return pullImageAndAcknowledgeErrors(imageConfiguration);
|
return pullImageAndAcknowledgeErrors(imageConfiguration);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* ! PULL IMAGE
|
||||||
|
*/
|
||||||
|
|
||||||
service.tagImage = function(id, image, registry) {
|
service.tagImage = function(id, image, registry) {
|
||||||
void registry;
|
void registry;
|
||||||
return Image.tag({id: id, repo: image}).$promise;
|
return Image.tag({id: id, repo: image}).$promise;
|
||||||
|
|
|
@ -224,9 +224,9 @@ function ($q, $scope, $state, $transition$, $filter, Commit, ContainerHelper, Co
|
||||||
if (!pullImage) {
|
if (!pullImage) {
|
||||||
return $q.when();
|
return $q.when();
|
||||||
}
|
}
|
||||||
return RegistryService.retrieveRegistryFromRepository(container.Config.Image)
|
return RegistryService.retrievePorRegistryModelFromRepository(container.Config.Image)
|
||||||
.then(function pullImage(containerRegistry) {
|
.then(function pullImage(registryModel) {
|
||||||
return ImageService.pullImage(containerRegistry, true);
|
return ImageService.pullImage(registryModel, true);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue