fix(network-creation): force overlay network creation on manager node (#2622)

* fix(network-creation): force overlay network creation on manager node

* fix(app): fix function override

* fix(app): use portainerAgentManagerOperation in interceptor
pull/2629/head
Anthony Lapenna 2019-01-15 12:10:29 +13:00 committed by GitHub
parent 3a3577754e
commit 34667bd3b3
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 22 additions and 3 deletions

View File

@ -30,7 +30,7 @@ function ($rootScope, $state, Authentication, authManager, StateManager, Endpoin
};
$transitions.onBefore({ to: 'docker.**' }, function() {
HttpRequestHelper.resetAgentTargetQueue();
HttpRequestHelper.resetAgentHeaders();
});
}]);

View File

@ -27,6 +27,9 @@ angular.module('portainer')
request: function(config) {
if (config.url.indexOf('/docker/') > -1) {
config.headers['X-PortainerAgent-Target'] = HttpRequestHelper.portainerAgentTargetHeader();
if (HttpRequestHelper.portainerAgentManagerOperation()) {
config.headers['X-PortainerAgent-ManagerOperation'] = '1';
}
}
return config;
}

View File

@ -126,6 +126,7 @@ angular.module('portainer.docker')
function createNetwork(context) {
HttpRequestHelper.setPortainerAgentTargetHeader(context.nodeName);
HttpRequestHelper.setPortainerAgentManagerOperation(context.managerOperation);
$scope.state.actionInProgress = true;
NetworkService.create(context.networkConfiguration)
@ -162,12 +163,17 @@ angular.module('portainer.docker')
var creationContext = {
nodeName: $scope.formValues.NodeName,
managerOperation: false,
networkConfiguration: networkConfiguration,
userDetails: userDetails,
accessControlData: accessControlData,
reload: true
};
if ($scope.applicationState.endpoint.mode.agentProxy && $scope.applicationState.endpoint.mode.provider === 'DOCKER_SWARM_MODE' && $scope.config.Driver === 'overlay') {
creationContext.managerOperation = true;
}
if ($scope.config.Driver === 'macvlan') {
if ($scope.formValues.Macvlan.Scope === 'local') {
modifyNetworkConfigurationForMacvlanConfigOnly(networkConfiguration);
@ -205,4 +211,4 @@ angular.module('portainer.docker')
initView();
}
]);
]);

View File

@ -5,6 +5,7 @@ angular.module('portainer.app')
var service = {};
var headers = {};
headers.agentTargetQueue = [];
headers.agentManagerOperation = false;
service.registryAuthenticationHeader = function() {
return headers.registryAuthentication;
@ -36,9 +37,18 @@ angular.module('portainer.app')
}
};
service.resetAgentTargetQueue = function() {
service.setPortainerAgentManagerOperation = function(set) {
headers.agentManagerOperation = set;
};
service.portainerAgentManagerOperation = function() {
return headers.agentManagerOperation;
};
service.resetAgentHeaders = function() {
headers.agentTargetQueue = [];
delete headers.agentTargetLastValue;
headers.agentManagerOperation = false;
};
return service;