1
0
mirror of https://github.com/ansible/awx.git synced 2024-11-01 16:51:11 +03:00

Merge pull request #2697 from ryanpetrello/smarter-websocket-expiry

stop various async background requests from bumping the session expiry

Reviewed-by: https://github.com/softwarefactory-project-zuul[bot]
This commit is contained in:
softwarefactory-project-zuul[bot] 2018-12-12 15:39:20 +00:00 committed by GitHub
commit ca16787e7c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 10 additions and 5 deletions

View File

@ -126,8 +126,9 @@ class SessionTimeoutMiddleware(object):
"""
def process_response(self, request, response):
should_skip = 'HTTP_X_WS_SESSION_QUIET' in request.META
req_session = getattr(request, 'session', None)
if req_session and not req_session.is_empty():
if req_session and not req_session.is_empty() and should_skip is False:
expiry = int(settings.SESSION_COOKIE_AGE)
request.session.set_expiry(expiry)
response['Session-Timeout'] = expiry

View File

@ -207,7 +207,7 @@ function ListJobsController (
};
function refreshJobs () {
qs.search(SearchBasePath, $state.params.job_search)
qs.search(SearchBasePath, $state.params.job_search, { 'X-WS-Session-Quiet': true })
.then(({ data }) => {
vm.jobs = data.results;
vm.job_dataset = data;

View File

@ -199,7 +199,7 @@ function ListTemplatesController(
function refreshTemplates() {
Wait('start');
let path = GetBasePath('unified_job_templates');
qs.search(path, $state.params.template_search)
qs.search(path, $state.params.template_search, { 'X-WS-Session-Quiet': true })
.then(function(searchResponse) {
vm.dataset = searchResponse.data;
vm.templates = vm.dataset.results;

View File

@ -62,10 +62,11 @@ function requestWithCache (config) {
* @yields {boolean} - Indicating a match has been found. If so, the results
* are set on the model.
*/
function search (params = {}, config = {}) {
function search (params = {}, config = {}, headers = {}) {
const req = {
method: 'GET',
url: this.path
url: this.path,
headers
};
if (typeof params === 'string') {

View File

@ -36,6 +36,7 @@ function JobStatusGraphData(Rest, getBasePath, processErrors, $rootScope, $q) {
return;
}
url = dash_path + 'graphs/jobs/?period='+period+'&job_type='+jobType;
Rest.setHeader({'X-WS-Session-Quiet': true});
Rest.setUrl(url);
var result = Rest.get()
.catch(function(response) {

View File

@ -87,6 +87,7 @@ export default ['$scope', '$rootScope','Wait',
ProcessErrors($scope, data, status, null, { hdr: 'Error!', msg: 'Failed to get dashboard: ' + status });
});
Rest.setUrl(GetBasePath("unified_jobs") + "?order_by=-finished&page_size=5&finished__isnull=false&type=workflow_job,job");
Rest.setHeader({'X-WS-Session-Quiet': true});
Rest.get()
.then(({data}) => {
data = data.results;
@ -119,6 +120,7 @@ export default ['$scope', '$rootScope','Wait',
});
Rest.setUrl(GetBasePath("unified_jobs") + "?order_by=-finished&page_size=5&finished__isnull=false&type=workflow_job,job");
Rest.setHeader({'X-WS-Session-Quiet': true});
Rest.get()
.then(({data}) => {
$scope.dashboardJobsListData = data.results;