2
0
mirror of https://github.com/inventree/InvenTree.git synced 2025-04-28 19:46:46 +00:00

Upload timeout (#8895)

* Increase upload timeout for attachments

* Increase default API timeout

- To account for distant connections

* Use longer timeout when uploading files

* Debug for RTD testing

* Adjust commit extraction

* Cleanup debug output

* Include more vars in output

* Move debug output to top of file

* Add useful link
This commit is contained in:
Oliver 2025-01-15 14:02:43 +11:00 committed by GitHub
parent 412bba50ba
commit c7e960728d
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
4 changed files with 38 additions and 6 deletions

View File

@ -8,6 +8,26 @@ import textwrap
import requests
import yaml
# Debugging output - useful for diagnosing CI build issues
print('loading ./docs/main.py...')
# Print out some useful debugging information
# Ref: https://docs.readthedocs.io/en/stable/reference/environment-variables.html
for key in [
'GITHUB_ACTIONS',
'GITHUB_REF',
'READTHEDOCS',
'READTHEDOCS_GIT_IDENTIFIER',
'READTHEDOCS_GIT_CLONE_URL',
'READTHEDOCS_GIT_COMMIT_HASH',
'READTHEDOCS_PROJECT',
'READTHEDOCS_VERSION',
'READTHEDOCS_VERSION_NAME',
'READTHEDOCS_VERSION_TYPE',
]:
val = os.environ.get(key) or '-- MISSING --'
print(f' - {key}: {val}')
# Cached settings dict values
global GLOBAL_SETTINGS
global USER_SETTINGS
@ -77,12 +97,15 @@ def get_build_enviroment() -> str:
"""Returns the branch we are currently building on, based on the environment variables of the various CI platforms."""
# Check if we are in ReadTheDocs
if os.environ.get('READTHEDOCS') == 'True':
return os.environ.get('READTHEDOCS_GIT_IDENTIFIER')
for var in ['READTHEDOCS_GIT_COMMIT_HASH', 'READTHEDOCS_GIT_IDENTIFIER']:
if val := os.environ.get(var):
return val
# We are in GitHub Actions
elif os.environ.get('GITHUB_ACTIONS') == 'true':
return os.environ.get('GITHUB_REF')
else:
return 'master'
# Default to 'master' branch
return 'master'
def define_env(env):

View File

@ -15,7 +15,7 @@ export function setApiDefaults() {
const { token } = useUserState.getState();
api.defaults.baseURL = host;
api.defaults.timeout = 2500;
api.defaults.timeout = 5000;
api.defaults.withCredentials = true;
api.defaults.withXSRFToken = true;

View File

@ -435,11 +435,18 @@ export function ApiForm({
}
});
/* Set the timeout for the request:
* - If a timeout is provided in the props, use that
* - If the form contains files, use a longer timeout
* - Otherwise, use the default timeout
*/
const timeout = props.timeout ?? (hasFiles ? 30000 : undefined);
return api({
method: method,
url: url,
data: hasFiles ? formData : jsonData,
timeout: props.timeout,
timeout: timeout,
headers: {
'Content-Type': hasFiles ? 'multipart/form-data' : 'application/json'
}

View File

@ -131,7 +131,9 @@ export function AttachmentTable({
setIsUploading(true);
api
.post(url, formData)
.post(url, formData, {
timeout: 30 * 1000
})
.then((response) => {
notifications.show({
title: t`File uploaded`,