mirror of
https://github.com/portainer/portainer.git
synced 2025-08-04 05:15:25 +02:00
fix(docker/services): show cred spec configs [EE-5276] (#10083)
This commit is contained in:
parent
e28322459a
commit
95ca1d396b
3 changed files with 48 additions and 20 deletions
|
@ -92,6 +92,7 @@ angular.module('portainer.docker').controller('ServiceController', [
|
|||
endpoint
|
||||
) {
|
||||
$scope.resourceType = ResourceControlType.Service;
|
||||
$scope.WebhookExists = false;
|
||||
|
||||
$scope.onUpdateResourceControlSuccess = function () {
|
||||
$state.reload();
|
||||
|
@ -463,6 +464,27 @@ angular.module('portainer.docker').controller('ServiceController', [
|
|||
|
||||
config.TaskTemplate.ContainerSpec.Secrets = service.ServiceSecrets ? service.ServiceSecrets.map(SecretHelper.secretConfig) : [];
|
||||
config.TaskTemplate.ContainerSpec.Configs = service.ServiceConfigs ? service.ServiceConfigs.map(ConfigHelper.configConfig) : [];
|
||||
|
||||
// support removal and (future) editing of credential specs
|
||||
const credSpec = service.ServiceConfigs.find((config) => config.credSpec);
|
||||
const credSpecId = credSpec ? credSpec.Id : '';
|
||||
const oldCredSpecId =
|
||||
(config.TaskTemplate.ContainerSpec.Privileges &&
|
||||
config.TaskTemplate.ContainerSpec.Privileges.CredentialSpec &&
|
||||
config.TaskTemplate.ContainerSpec.Privileges.CredentialSpec.Config) ||
|
||||
'';
|
||||
if (oldCredSpecId && !credSpecId) {
|
||||
delete config.TaskTemplate.ContainerSpec.Privileges.CredentialSpec;
|
||||
} else if (oldCredSpecId !== credSpec) {
|
||||
config.TaskTemplate.ContainerSpec.Privileges = {
|
||||
...(config.TaskTemplate.ContainerSpec.Privileges || {}),
|
||||
CredentialSpec: {
|
||||
...((config.TaskTemplate.ContainerSpec.Privileges && config.TaskTemplate.ContainerSpec.Privileges.CredentialSpec) || {}),
|
||||
Config: credSpec,
|
||||
},
|
||||
};
|
||||
}
|
||||
|
||||
config.TaskTemplate.ContainerSpec.Hosts = service.Hosts ? ServiceHelper.translateHostnameIPToHostsEntries(service.Hosts) : [];
|
||||
|
||||
if (service.Mode === 'replicated') {
|
||||
|
@ -583,8 +605,7 @@ angular.module('portainer.docker').controller('ServiceController', [
|
|||
}
|
||||
|
||||
$scope.updateService = function updateService(service) {
|
||||
let config = {};
|
||||
service, (config = buildChanges(service));
|
||||
const config = buildChanges(service);
|
||||
ServiceService.update(service, config).then(
|
||||
function (data) {
|
||||
if (data.message && data.message.match(/^rpc error:/)) {
|
||||
|
@ -736,7 +757,6 @@ angular.module('portainer.docker').controller('ServiceController', [
|
|||
$scope.isAdmin = Authentication.isAdmin();
|
||||
$scope.availableNetworks = data.availableNetworks;
|
||||
$scope.swarmNetworks = _.filter($scope.availableNetworks, (network) => network.Scope === 'swarm');
|
||||
$scope.WebhookExists = false;
|
||||
|
||||
const serviceNetworks = _.uniqBy(_.concat($scope.service.Model.Spec.Networks || [], $scope.service.Model.Spec.TaskTemplate.Networks || []), 'Target');
|
||||
const networks = _.filter(
|
||||
|
@ -833,6 +853,11 @@ angular.module('portainer.docker').controller('ServiceController', [
|
|||
return networks.filter((network) => !network.Ingress && (network.Id === current.Id || $scope.service.Networks.every((serviceNetwork) => network.Id !== serviceNetwork.Id)));
|
||||
}
|
||||
|
||||
$scope.filterConfigs = filterConfigs;
|
||||
function filterConfigs(configs) {
|
||||
return configs.filter((config) => $scope.service.ServiceConfigs.every((serviceConfig) => config.Id !== serviceConfig.Id));
|
||||
}
|
||||
|
||||
function updateServiceArray(service, name) {
|
||||
previousServiceValues.push(name);
|
||||
service.hasChanges = true;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue