Traceback Switch to copy-and-paste view
-
/home/backups/backup-manager/.venv/lib/python3.10/site-packages/django/core/handlers/exception.py, line 55, in innerreturn inner
else:
@wraps(get_response)
def inner(request):
try:
response = get_response(request)
…
except Exception as exc:
response = response_for_exception(request, exc)
return response
return inner
Local vars
Variable Value exc NoSuchBucket('An error occurred (NoSuchBucket) when calling the ListObjects operation: The specified bucket does not exist')get_response <bound method BaseHandler._get_response of <django.core.handlers.wsgi.WSGIHandler object at 0x7f4bc2f6ea40>>
request <WSGIRequest: GET '/archives/callback_sync/7b43740a-5e3c-443e-a3a8-2a4755e37657'>
-
/home/backups/backup-manager/.venv/lib/python3.10/site-packages/django/core/handlers/base.py, line 197, in _get_responseif response is None:
wrapped_callback = self.make_view_atomic(callback)
# If it is an asynchronous view, run it in a subthread.
if iscoroutinefunction(wrapped_callback):
wrapped_callback = async_to_sync(wrapped_callback)
try:
response = wrapped_callback(request, *callback_args, **callback_kwargs)
…
except Exception as e:
response = self.process_exception_by_middleware(e, request)
if response is None:
raise
# Complain if the view returned None (a common error).
Local vars
Variable Value callback <function callback_sync at 0x7f4bc15ce0e0>
callback_args ()
callback_kwargs {'bucket': '7b43740a-5e3c-443e-a3a8-2a4755e37657'}middleware_method <bound method CsrfViewMiddleware.process_view of <CsrfViewMiddleware get_response=convert_exception_to_response.<locals>.inner>>
request <WSGIRequest: GET '/archives/callback_sync/7b43740a-5e3c-443e-a3a8-2a4755e37657'>
response None
self <django.core.handlers.wsgi.WSGIHandler object at 0x7f4bc2f6ea40>
wrapped_callback <function callback_sync at 0x7f4bc15ce0e0>
-
/home/backups/backup-manager/apps/archives/views.py, line 333, in callback_syncs3_content = list_s3_bucket_content.start(bucket)
s3_content.sort()
archive = Archives.objects.get(machine_id=bucket)
archive.set_on_s3_server = s3_content
s3_set = set(s3_content)
arch_set = set(archive.set_on_s3_server)
archive.size_on_s3 = list_s3_buckets.get_bucket_size(bucket)
…
# if s3_set.issubset(arch_set):
# archive.synced = 1
# archive.synced_since = int(time.time())
# else:
# print("ZZZZ", s3_set.difference(arch_set))# print("ZZssZZ", arch_set.difference(s3_set))
Local vars
Variable Value arch_set set()
archive <Archives: Archives object (7b43740a-5e3c-443e-a3a8-2a4755e37657)>
bucket '7b43740a-5e3c-443e-a3a8-2a4755e37657'
payload ['']
payload_string ''
request <WSGIRequest: GET '/archives/callback_sync/7b43740a-5e3c-443e-a3a8-2a4755e37657'>
s3_content []
s3_set set()
-
/home/backups/backup-manager/apps/archives/jobs/list_s3_buckets.py, line 44, in get_bucket_sizedef get_bucket_size(bucket):
archive = Archives.objects.get(machine_id=bucket)
size = 0
for profile in archive.backup_servers:
aws_cli = AwsClient(profile=profile)
size_ = aws_cli.get_bucket_disk_usage(bucket)
…
backup_server = BackupNode.objects.get(name=profile)
values=backup_server.sizes
values[bucket] = size_
backup_server.sizes = values
backup_server.save()
size += size_
Local vars
Variable Value archive <Archives: Archives object (7b43740a-5e3c-443e-a3a8-2a4755e37657)>
aws_cli <apps.archives.awsclient.awsclient.AwsClient object at 0x7f4bb7eec820>
bucket '7b43740a-5e3c-443e-a3a8-2a4755e37657'
profile 's1'
size 0
-
/home/backups/backup-manager/apps/archives/awsclient/awsclient.py, line 258, in get_bucket_disk_usagefor file in self.list_bucket_content(bucket):
all_files.append(file)
return list(dict.fromkeys(all_files)), version_list
def get_bucket_disk_usage(self, bucket):
s3 = self.resources
bytes_ = sum([object_.size for object_ in s3.Bucket(bucket).objects.all()])
…
# return f"{bytes_ // 1000 // 1000 // 1000}"return round(bytes_ / 1024 / 1024 / 1024, 2)
def empty_bucket(self, bucket):
s3 = self.resources
bucket_ = s3.Bucket(bucket)
Local vars
Variable Value bucket '7b43740a-5e3c-443e-a3a8-2a4755e37657'
s3 s3.ServiceResource()
self <apps.archives.awsclient.awsclient.AwsClient object at 0x7f4bb7eec820>
-
/home/backups/backup-manager/apps/archives/awsclient/awsclient.py, line 258, in <listcomp>for file in self.list_bucket_content(bucket):
all_files.append(file)
return list(dict.fromkeys(all_files)), version_list
def get_bucket_disk_usage(self, bucket):
s3 = self.resources
bytes_ = sum([object_.size for object_ in s3.Bucket(bucket).objects.all()])
…
# return f"{bytes_ // 1000 // 1000 // 1000}"return round(bytes_ / 1024 / 1024 / 1024, 2)
def empty_bucket(self, bucket):
s3 = self.resources
bucket_ = s3.Bucket(bucket)
Local vars
Variable Value .0 <generator object ResourceCollection.__iter__ at 0x7f4bb5dfe6c0>
-
/home/backups/backup-manager/.venv/lib/python3.10/site-packages/boto3/resources/collection.py, line 79, in __iter__'key1'
'key2'
"""
limit = self._params.get('limit', None)count = 0
for page in self.pages():
…
for item in page:
yield item
# If the limit is set and has been reached, then
# we stop processing items here.
count += 1
Local vars
Variable Value count 0
limit None
self s3.Bucket.objectsCollection(s3.Bucket(name='7b43740a-5e3c-443e-a3a8-2a4755e37657'), s3.ObjectSummary)
-
/home/backups/backup-manager/.venv/lib/python3.10/site-packages/boto3/resources/collection.py, line 169, in pagesparams,
)
pages = [getattr(client, self._py_operation_name)(**params)]
# Now that we have a page iterator or single page of results
# we start processing and yielding individual items.
count = 0
for page in pages:
…
page_items = []
for item in self._handler(self._parent, params, page):
page_items.append(item)
# If the limit is set and has been reached, then
# we stop processing items here.
Local vars
Variable Value cleaned_params {}client <botocore.client.S3 object at 0x7f4bb5d25d50>
count 0
limit None
page_size None
pages <botocore.paginate.PageIterator object at 0x7f4bb5da4970>
paginator <botocore.client.S3.Paginator.ListObjects object at 0x7f4bb5da4940>
params {'Bucket': '7b43740a-5e3c-443e-a3a8-2a4755e37657'}self s3.Bucket.objectsCollection(s3.Bucket(name='7b43740a-5e3c-443e-a3a8-2a4755e37657'), s3.ObjectSummary)
-
/home/backups/backup-manager/.venv/lib/python3.10/site-packages/botocore/paginate.py, line 272, in __iter__# The number of items from result_key we've seen so far.
total_items = 0
first_request = True
primary_result_key = self.result_keys[0]
starting_truncation = 0
self._inject_starting_params(current_kwargs)
while True:
response = self._make_request(current_kwargs)
…
parsed = self._extract_parsed_response(response)
if first_request:
# The first request is handled differently. We could
# possibly have a resume/starting token that tells us where
# to index into the retrieved page.
if self._starting_token is not None:
Local vars
Variable Value current_kwargs {'Bucket': '7b43740a-5e3c-443e-a3a8-2a4755e37657'}first_request True
next_token {'Marker': None}previous_next_token None
primary_result_key {'type': 'field', 'children': [], 'value': 'Contents'}self <botocore.paginate.PageIterator object at 0x7f4bb5da4970>
starting_truncation 0
total_items 0
-
/home/backups/backup-manager/.venv/lib/python3.10/site-packages/botocore/context.py, line 123, in wrapperdef decorator(func):
@wraps(func)
def wrapper(*args, **kwargs):
with start_as_current_context():
if hook:
hook()
return func(*args, **kwargs)
…
return wrapper
return decorator
Local vars
Variable Value args (<botocore.paginate.PageIterator object at 0x7f4bb5da4970>, {'Bucket': '7b43740a-5e3c-443e-a3a8-2a4755e37657'})func <function PageIterator._make_request at 0x7f4bc3e02710>
hook functools.partial(<function register_feature_id at 0x7f4bc3ecc4c0>, 'PAGINATOR')
kwargs {} -
/home/backups/backup-manager/.venv/lib/python3.10/site-packages/botocore/paginate.py, line 361, in _make_requestyield from results
else:
# Yield result directly if it is not a list.
yield results
@with_current_context(partial(register_feature_id, 'PAGINATOR'))
def _make_request(self, current_kwargs):
return self._method(**current_kwargs)
…
def _extract_parsed_response(self, response):
return response
def _record_non_aggregate_key_values(self, response):
non_aggregate_keys = {}
Local vars
Variable Value current_kwargs {'Bucket': '7b43740a-5e3c-443e-a3a8-2a4755e37657'}self <botocore.paginate.PageIterator object at 0x7f4bb5da4970>
-
/home/backups/backup-manager/.venv/lib/python3.10/site-packages/botocore/client.py, line 595, in _api_call# error message than TypeError: _api_call takes exactly
# 1 argument.
if args:
raise TypeError(
f"{py_operation_name}() only accepts keyword arguments.")
# The "self" in this scope is referring to the BaseClient.
return self._make_api_call(operation_name, kwargs)
…
_api_call.__name__ = str(py_operation_name)
# Add the docstring to the client method
operation_model = service_model.operation_model(operation_name)
docstring = ClientMethodDocstring(
Local vars
Variable Value args ()
kwargs {'Bucket': '7b43740a-5e3c-443e-a3a8-2a4755e37657', 'EncodingType': 'url'}operation_name 'ListObjects'
py_operation_name 'list_objects'
self <botocore.client.S3 object at 0x7f4bb5d25d50>
-
/home/backups/backup-manager/.venv/lib/python3.10/site-packages/botocore/context.py, line 123, in wrapperdef decorator(func):
@wraps(func)
def wrapper(*args, **kwargs):
with start_as_current_context():
if hook:
hook()
return func(*args, **kwargs)
…
return wrapper
return decorator
Local vars
Variable Value args (<botocore.client.S3 object at 0x7f4bb5d25d50>, 'ListObjects', {'Bucket': '7b43740a-5e3c-443e-a3a8-2a4755e37657', 'EncodingType': 'url'})func <function BaseClient._make_api_call at 0x7f4bc3e30670>
hook None
kwargs {} -
/home/backups/backup-manager/.venv/lib/python3.10/site-packages/botocore/client.py, line 1058, in _make_api_callif http.status_code >= 300:
error_info = parsed_response.get("Error", {})error_code = error_info.get("QueryErrorCode") or error_info.get("Code"
)
error_class = self.exceptions.from_code(error_code)
raise error_class(parsed_response, operation_name)
…
else:
return parsed_response
def _make_request(self, operation_model, request_dict, request_context):
try:
return self._endpoint.make_request(operation_model, request_dict)
Local vars
Variable Value additional_headers {}api_params {'Bucket': '7b43740a-5e3c-443e-a3a8-2a4755e37657', 'EncodingType': 'url'}endpoint_url 'https://u7b8.da.idrivee2-19.com/7b43740a-5e3c-443e-a3a8-2a4755e37657'
error_class <class 'botocore.errorfactory.NoSuchBucket'>
error_code 'NoSuchBucket'
error_info {'BucketName': '7b43740a-5e3c-443e-a3a8-2a4755e37657', 'Code': 'NoSuchBucket', 'Message': 'The specified bucket does not exist', 'Resource': '/7b43740a-5e3c-443e-a3a8-2a4755e37657'}event_response None
handler <function inject_api_version_header_if_needed at 0x7f4bc3e545e0>
http <botocore.awsrequest.AWSResponse object at 0x7f4bb5da5db0>
operation_model OperationModel(name=ListObjects)
operation_name 'ListObjects'
parsed_response {'Error': {'BucketName': '7b43740a-5e3c-443e-a3a8-2a4755e37657', 'Code': 'NoSuchBucket', 'Message': 'The specified bucket does not exist', 'Resource': '/7b43740a-5e3c-443e-a3a8-2a4755e37657'}, 'ResponseMetadata': {'HTTPHeaders': {'accept-ranges': 'bytes', 'connection': 'keep-alive', 'content-length': '344', 'content-security-policy': 'block-all-mixed-content', 'content-type': 'application/xml', 'date': 'Fri, 03 Jul 2026 11:27:39 GMT', 'server': 'nginx', 'strict-transport-security': 'max-age=31536000; ' 'includeSubDomains', 'vary': 'Accept-Encoding, Origin', 'x-amz-request-id': '18BEC40C315687C1', 'x-content-type-options': 'nosniff', 'x-xss-protection': '1; mode=block'}, 'HTTPStatusCode': 404, 'HostId': '', 'RequestId': '18BEC40C315687C1', 'RetryAttempts': 0}}properties {'authSchemes': [{'disableDoubleEncoding': True, 'name': 'sigv4', 'signingName': 's3', 'signingRegion': 'us-east-1'}]}request_context {'auth_type': 'v4', 'client_config': <botocore.config.Config object at 0x7f4bb5d25ed0>, 'client_region': 'us-east-1', 'encoding_type_auto_set': True, 'endpoint_properties': {'authSchemes': [{'disableDoubleEncoding': True, 'name': 'sigv4', 'signingName': 's3', 'signingRegion': 'us-east-1'}]}, 'has_streaming_input': False, 'input_params': {'Bucket': '7b43740a-5e3c-443e-a3a8-2a4755e37657'}, 'retries': {'attempt': 1, 'invocation-id': 'd04ab4a3-7c7a-46d3-b100-20d1e393d1a8', 'max': 5}, 's3_redirect': {'bucket': '7b43740a-5e3c-443e-a3a8-2a4755e37657', 'params': {'Bucket': '7b43740a-5e3c-443e-a3a8-2a4755e37657', 'EncodingType': 'url'}, 'redirected': False}, 'signing': {'disableDoubleEncoding': True, 'region': 'us-east-1', 'signing_name': 's3'}, 'timestamp': '20260703T112738Z', 'unsigned_payload': None}request_dict {'auth_path': '/7b43740a-5e3c-443e-a3a8-2a4755e37657/', 'body': b'', 'context': {'auth_type': 'v4', 'client_config': <botocore.config.Config object at 0x7f4bb5d25ed0>, 'client_region': 'us-east-1', 'encoding_type_auto_set': True, 'endpoint_properties': {'authSchemes': [{'disableDoubleEncoding': True, 'name': 'sigv4', 'signingName': 's3', 'signingRegion': 'us-east-1'}]}, 'has_streaming_input': False, 'input_params': {'Bucket': '7b43740a-5e3c-443e-a3a8-2a4755e37657'}, 'retries': {'attempt': 1, 'invocation-id': 'd04ab4a3-7c7a-46d3-b100-20d1e393d1a8', 'max': 5}, 's3_redirect': {'bucket': '7b43740a-5e3c-443e-a3a8-2a4755e37657', 'params': {'Bucket': '7b43740a-5e3c-443e-a3a8-2a4755e37657', 'EncodingType': 'url'}, 'redirected': False}, 'signing': {'disableDoubleEncoding': True, 'region': 'us-east-1', 'signing_name': 's3'}, 'timestamp': '20260703T112738Z', 'unsigned_payload': None}, 'headers': {'User-Agent': 'Boto3/1.38.24 md/Botocore#1.38.24 ua/2.1 ' 'os/linux#4.18.0-553.117.1.el8_10.x86_64 ' 'md/arch#x86_64 lang/python#3.10.10 ' 'md/pyimpl#CPython m/C,N,Z,b cfg/retry-mode#legacy ' 'Botocore/1.38.24 Resource'}, 'method': 'GET', 'query_string': {'encoding-type': 'url'}, 'url': 'https://u7b8.da.idrivee2-19.com/7b43740a-5e3c-443e-a3a8-2a4755e37657?encoding-type=url', 'url_path': ''}self <botocore.client.S3 object at 0x7f4bb5d25d50>
service_id 's3'
service_name 's3'
Request information
USER
AnonymousUser
GET
No GET data
POST
No POST data
FILES
No FILES data
COOKIES
No cookie data
META
| Variable | Value |
|---|---|
| CONTENT_LENGTH | '4' |
| CONTENT_TYPE | 'application/json' |
| HTTP_ACCEPT | '*/*' |
| HTTP_ACCEPT_ENCODING | 'gzip, deflate' |
| HTTP_CONNECTION | 'close' |
| HTTP_HOST | '127.0.0.1:8000' |
| HTTP_USER_AGENT | 'python-requests/2.32.5' |
| HTTP_X_FORWARDED_FOR | '64.44.163.58' |
| HTTP_X_FORWARDED_HOST | '185.149.110.44' |
| HTTP_X_FORWARDED_SERVER | 'backup-manager.vm.plesk-server.com' |
| PATH_INFO | '/archives/callback_sync/7b43740a-5e3c-443e-a3a8-2a4755e37657' |
| QUERY_STRING | '' |
| RAW_URI | '/archives/callback_sync/7b43740a-5e3c-443e-a3a8-2a4755e37657' |
| REMOTE_ADDR | '127.0.0.1' |
| REMOTE_PORT | '36456' |
| REQUEST_METHOD | 'GET' |
| SCRIPT_NAME | '' |
| SERVER_NAME | '0.0.0.0' |
| SERVER_PORT | '8000' |
| SERVER_PROTOCOL | 'HTTP/1.1' |
| SERVER_SOFTWARE | 'gunicorn/23.0.0' |
| gunicorn.socket | <socket.socket fd=10, family=AddressFamily.AF_INET, type=SocketKind.SOCK_STREAM, proto=0, laddr=('127.0.0.1', 8000), raddr=('127.0.0.1', 36456)> |
| wsgi.errors | <gunicorn.http.wsgi.WSGIErrorsWrapper object at 0x7f4bba1c2260> |
| wsgi.file_wrapper | <class 'gunicorn.http.wsgi.FileWrapper'> |
| wsgi.input | <gunicorn.http.body.Body object at 0x7f4bba1c0bb0> |
| wsgi.input_terminated | True |
| wsgi.multiprocess | True |
| wsgi.multithread | True |
| wsgi.run_once | False |
| wsgi.url_scheme | 'http' |
| wsgi.version | (1, 0) |
Settings
Using settings module backupstwopointo.settings
| Setting | Value |
|---|---|
| ABSOLUTE_URL_OVERRIDES | {} |
| ADMINS | [] |
| ADMIN_REORDER | ({'app': 'machines', 'label': "VM's and CT's"},
'backupsets',
'restore',
'backupnodes',
'hardwarenodes',
'plans',
'archives',
'django_rq') |
| ALLOWED_HOSTS | ['127.0.0.1', '109.109.143.230', '185.149.110.205', '185.149.110.162', '185.149.110.130', '185.149.110.44'] |
| APPEND_SLASH | True |
| AUTHENTICATION_BACKENDS | '********************' |
| AUTH_PASSWORD_VALIDATORS | '********************' |
| AUTH_USER_MODEL | '********************' |
| BASE_DIR | PosixPath('/home/backups/backup-manager') |
| CACHES | {'default': {'BACKEND': 'django.core.cache.backends.locmem.LocMemCache'}} |
| CACHE_MIDDLEWARE_ALIAS | 'default' |
| CACHE_MIDDLEWARE_KEY_PREFIX | '********************' |
| CACHE_MIDDLEWARE_SECONDS | 600 |
| CORS_ALLOW_ALL_ORIGINS | True |
| CSRF_COOKIE_AGE | 31449600 |
| CSRF_COOKIE_DOMAIN | None |
| CSRF_COOKIE_HTTPONLY | False |
| CSRF_COOKIE_NAME | 'csrftoken' |
| CSRF_COOKIE_PATH | '/' |
| CSRF_COOKIE_SAMESITE | 'Lax' |
| CSRF_COOKIE_SECURE | False |
| CSRF_FAILURE_VIEW | 'django.views.csrf.csrf_failure' |
| CSRF_HEADER_NAME | 'HTTP_X_CSRFTOKEN' |
| CSRF_TRUSTED_ORIGINS | ['https://backups.solus-io.kuly.ro', 'https://backup-manager.vm.plesk-server.com', 'https://backup-manager.stage.town', 'http://127.0.0.1:5000'] |
| CSRF_USE_SESSIONS | False |
| DATABASES | {'default': {'ATOMIC_REQUESTS': False,
'AUTOCOMMIT': True,
'CONN_HEALTH_CHECKS': False,
'CONN_MAX_AGE': 0,
'ENGINE': 'django.db.backends.postgresql',
'HOST': 'node441679-backup-manager-postgres.j.layershift.co.uk',
'NAME': 'backups',
'OPTIONS': {},
'PASSWORD': '********************',
'PORT': '5432',
'TEST': {'CHARSET': None,
'COLLATION': None,
'MIGRATE': True,
'MIRROR': None,
'NAME': None},
'TIME_ZONE': None,
'USER': 'backups'}} |
| DATABASE_ROUTERS | [] |
| DATA_UPLOAD_MAX_MEMORY_SIZE | 2621440 |
| DATA_UPLOAD_MAX_NUMBER_FIELDS | 1000 |
| DATA_UPLOAD_MAX_NUMBER_FILES | 100 |
| DATETIME_FORMAT | 'N j, Y, P' |
| DATETIME_INPUT_FORMATS | ['%Y-%m-%d %H:%M:%S', '%Y-%m-%d %H:%M:%S.%f', '%Y-%m-%d %H:%M', '%m/%d/%Y %H:%M:%S', '%m/%d/%Y %H:%M:%S.%f', '%m/%d/%Y %H:%M', '%m/%d/%y %H:%M:%S', '%m/%d/%y %H:%M:%S.%f', '%m/%d/%y %H:%M'] |
| DATE_FORMAT | 'N j, Y' |
| DATE_INPUT_FORMATS | ['%Y-%m-%d', '%m/%d/%Y', '%m/%d/%y', '%b %d %Y', '%b %d, %Y', '%d %b %Y', '%d %b, %Y', '%B %d %Y', '%B %d, %Y', '%d %B %Y', '%d %B, %Y'] |
| DEBUG | True |
| DEBUG_PROPAGATE_EXCEPTIONS | False |
| DECIMAL_SEPARATOR | '.' |
| DEFAULT_AUTO_FIELD | 'django.db.models.BigAutoField' |
| DEFAULT_CHARSET | 'utf-8' |
| DEFAULT_EXCEPTION_REPORTER | 'django.views.debug.ExceptionReporter' |
| DEFAULT_EXCEPTION_REPORTER_FILTER | 'django.views.debug.SafeExceptionReporterFilter' |
| DEFAULT_FROM_EMAIL | 'webmaster@localhost' |
| DEFAULT_INDEX_TABLESPACE | '' |
| DEFAULT_TABLESPACE | '' |
| DISALLOWED_USER_AGENTS | [] |
| EMAIL_BACKEND | 'django.core.mail.backends.smtp.EmailBackend' |
| EMAIL_HOST | 'localhost' |
| EMAIL_HOST_PASSWORD | '********************' |
| EMAIL_HOST_USER | '' |
| EMAIL_PORT | 25 |
| EMAIL_SSL_CERTFILE | None |
| EMAIL_SSL_KEYFILE | '********************' |
| EMAIL_SUBJECT_PREFIX | '[Django] ' |
| EMAIL_TIMEOUT | None |
| EMAIL_USE_LOCALTIME | False |
| EMAIL_USE_SSL | False |
| EMAIL_USE_TLS | False |
| FILE_UPLOAD_DIRECTORY_PERMISSIONS | None |
| FILE_UPLOAD_HANDLERS | ['django.core.files.uploadhandler.MemoryFileUploadHandler', 'django.core.files.uploadhandler.TemporaryFileUploadHandler'] |
| FILE_UPLOAD_MAX_MEMORY_SIZE | 2621440 |
| FILE_UPLOAD_PERMISSIONS | 420 |
| FILE_UPLOAD_TEMP_DIR | None |
| FIRST_DAY_OF_WEEK | 0 |
| FIXTURE_DIRS | [] |
| FORCE_SCRIPT_NAME | None |
| FORMAT_MODULE_PATH | None |
| FORMS_URLFIELD_ASSUME_HTTPS | False |
| FORM_RENDERER | 'django.forms.renderers.DjangoTemplates' |
| GRAPH_MODELS | {'all_applications': True, 'group_models': True} |
| IGNORABLE_404_URLS | [] |
| INSTALLED_APPS | ['apps', 'apps.common', 'apps.backup.machines', 'apps.agent', 'corsheaders', 'django_extensions', 'admin_reorder', 'apps.restore', 'apps.backup.plans', 'apps.settings', 'apps.statistics', 'apps.backup.plandetails', 'apps.backup.backupsets', 'apps.backup.hardwarenodes', 'apps.archives', 'apps.backup.backupnodes', 'apps.callbacks', 'apps.backup.scheduler', 'django_object_actions', 'admin_extra_buttons', 'apps.healthcheck', 'apps.backup.snapshots', 'django_rq', 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'django_cascading_dropdown_widget', 'polymorphic', 'drf_spectacular'] |
| INTERNAL_IPS | [] |
| LANGUAGES | [('af', 'Afrikaans'),
('ar', 'Arabic'),
('ar-dz', 'Algerian Arabic'),
('ast', 'Asturian'),
('az', 'Azerbaijani'),
('bg', 'Bulgarian'),
('be', 'Belarusian'),
('bn', 'Bengali'),
('br', 'Breton'),
('bs', 'Bosnian'),
('ca', 'Catalan'),
('ckb', 'Central Kurdish (Sorani)'),
('cs', 'Czech'),
('cy', 'Welsh'),
('da', 'Danish'),
('de', 'German'),
('dsb', 'Lower Sorbian'),
('el', 'Greek'),
('en', 'English'),
('en-au', 'Australian English'),
('en-gb', 'British English'),
('eo', 'Esperanto'),
('es', 'Spanish'),
('es-ar', 'Argentinian Spanish'),
('es-co', 'Colombian Spanish'),
('es-mx', 'Mexican Spanish'),
('es-ni', 'Nicaraguan Spanish'),
('es-ve', 'Venezuelan Spanish'),
('et', 'Estonian'),
('eu', 'Basque'),
('fa', 'Persian'),
('fi', 'Finnish'),
('fr', 'French'),
('fy', 'Frisian'),
('ga', 'Irish'),
('gd', 'Scottish Gaelic'),
('gl', 'Galician'),
('he', 'Hebrew'),
('hi', 'Hindi'),
('hr', 'Croatian'),
('hsb', 'Upper Sorbian'),
('hu', 'Hungarian'),
('hy', 'Armenian'),
('ia', 'Interlingua'),
('id', 'Indonesian'),
('ig', 'Igbo'),
('io', 'Ido'),
('is', 'Icelandic'),
('it', 'Italian'),
('ja', 'Japanese'),
('ka', 'Georgian'),
('kab', 'Kabyle'),
('kk', 'Kazakh'),
('km', 'Khmer'),
('kn', 'Kannada'),
('ko', 'Korean'),
('ky', 'Kyrgyz'),
('lb', 'Luxembourgish'),
('lt', 'Lithuanian'),
('lv', 'Latvian'),
('mk', 'Macedonian'),
('ml', 'Malayalam'),
('mn', 'Mongolian'),
('mr', 'Marathi'),
('ms', 'Malay'),
('my', 'Burmese'),
('nb', 'Norwegian Bokmål'),
('ne', 'Nepali'),
('nl', 'Dutch'),
('nn', 'Norwegian Nynorsk'),
('os', 'Ossetic'),
('pa', 'Punjabi'),
('pl', 'Polish'),
('pt', 'Portuguese'),
('pt-br', 'Brazilian Portuguese'),
('ro', 'Romanian'),
('ru', 'Russian'),
('sk', 'Slovak'),
('sl', 'Slovenian'),
('sq', 'Albanian'),
('sr', 'Serbian'),
('sr-latn', 'Serbian Latin'),
('sv', 'Swedish'),
('sw', 'Swahili'),
('ta', 'Tamil'),
('te', 'Telugu'),
('tg', 'Tajik'),
('th', 'Thai'),
('tk', 'Turkmen'),
('tr', 'Turkish'),
('tt', 'Tatar'),
('udm', 'Udmurt'),
('ug', 'Uyghur'),
('uk', 'Ukrainian'),
('ur', 'Urdu'),
('uz', 'Uzbek'),
('vi', 'Vietnamese'),
('zh-hans', 'Simplified Chinese'),
('zh-hant', 'Traditional Chinese')] |
| LANGUAGES_BIDI | ['he', 'ar', 'ar-dz', 'ckb', 'fa', 'ug', 'ur'] |
| LANGUAGE_CODE | 'en-us' |
| LANGUAGE_COOKIE_AGE | None |
| LANGUAGE_COOKIE_DOMAIN | None |
| LANGUAGE_COOKIE_HTTPONLY | False |
| LANGUAGE_COOKIE_NAME | 'django_language' |
| LANGUAGE_COOKIE_PATH | '/' |
| LANGUAGE_COOKIE_SAMESITE | None |
| LANGUAGE_COOKIE_SECURE | False |
| LOCALE_PATHS | [] |
| LOGGING | {} |
| LOGGING_CONFIG | 'logging.config.dictConfig' |
| LOGIN_REDIRECT_URL | 'home' |
| LOGIN_URL | '/accounts/login/' |
| LOGOUT_REDIRECT_URL | 'home' |
| MANAGERS | [] |
| MEDIA_ROOT | '' |
| MEDIA_URL | '/' |
| MESSAGE_STORAGE | 'django.contrib.messages.storage.fallback.FallbackStorage' |
| MIDDLEWARE | ['django.middleware.security.SecurityMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'corsheaders.middleware.CorsMiddleware', 'django.middleware.common.CommonMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', 'django.middleware.clickjacking.XFrameOptionsMiddleware'] |
| MIGRATION_MODULES | {} |
| MONTH_DAY_FORMAT | 'F j' |
| NUMBER_GROUPING | 0 |
| PASSWORD_HASHERS | '********************' |
| PASSWORD_RESET_TIMEOUT | '********************' |
| PREPEND_WWW | False |
| REST_FRAMEWORK | {'DEFAULT_SCHEMA_CLASS': 'drf_spectacular.openapi.AutoSchema'} |
| ROOT_URLCONF | 'backupstwopointo.urls' |
| RQ_QUEUES | {'default': {'DB': 0,
'DEFAULT_TIMEOUT': 360,
'HOST': '127.0.0.1',
'PASSWORD': '********************',
'PORT': 6379},
'high': {'DB': 0,
'HOST': '127.0.0.1',
'PASSWORD': '********************',
'PORT': 6379},
'low': {'DB': 0,
'HOST': '127.0.0.1',
'PASSWORD': '********************',
'PORT': 6379}} |
| RQ_SHOW_ADMIN_LINK | True |
| SECRET_KEY | '********************' |
| SECRET_KEY_FALLBACKS | '********************' |
| SECURE_CONTENT_TYPE_NOSNIFF | True |
| SECURE_CROSS_ORIGIN_OPENER_POLICY | None |
| SECURE_HSTS_INCLUDE_SUBDOMAINS | False |
| SECURE_HSTS_PRELOAD | False |
| SECURE_HSTS_SECONDS | 0 |
| SECURE_PROXY_SSL_HEADER | None |
| SECURE_REDIRECT_EXEMPT | [] |
| SECURE_REFERRER_POLICY | 'same-origin' |
| SECURE_SSL_HOST | None |
| SECURE_SSL_REDIRECT | False |
| SERVER_EMAIL | 'root@localhost' |
| SESSION_CACHE_ALIAS | 'default' |
| SESSION_COOKIE_AGE | 1209600 |
| SESSION_COOKIE_DOMAIN | None |
| SESSION_COOKIE_HTTPONLY | True |
| SESSION_COOKIE_NAME | 'sessionid' |
| SESSION_COOKIE_PATH | '/' |
| SESSION_COOKIE_SAMESITE | 'Lax' |
| SESSION_COOKIE_SECURE | False |
| SESSION_ENGINE | 'django.contrib.sessions.backends.db' |
| SESSION_EXPIRE_AT_BROWSER_CLOSE | False |
| SESSION_FILE_PATH | None |
| SESSION_SAVE_EVERY_REQUEST | False |
| SESSION_SERIALIZER | 'django.contrib.sessions.serializers.JSONSerializer' |
| SETTINGS_MODULE | 'backupstwopointo.settings' |
| SHORT_DATETIME_FORMAT | 'm/d/Y P' |
| SHORT_DATE_FORMAT | 'm/d/Y' |
| SIGNING_BACKEND | 'django.core.signing.TimestampSigner' |
| SILENCED_SYSTEM_CHECKS | [] |
| SPECTACULAR_SETTINGS | {'TITLE': 'Backup API', 'VERSION': '1.0.0'} |
| STATICFILES_DIRS | [] |
| STATICFILES_FINDERS | ['django.contrib.staticfiles.finders.FileSystemFinder', 'django.contrib.staticfiles.finders.AppDirectoriesFinder'] |
| STATIC_ROOT | None |
| STATIC_URL | '/static/' |
| STORAGES | {'default': {'BACKEND': 'django.core.files.storage.FileSystemStorage'},
'staticfiles': {'BACKEND': 'django.contrib.staticfiles.storage.StaticFilesStorage'}} |
| TEMPLATES | [{'APP_DIRS': True,
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [PosixPath('/home/backups/backup-manager/templates')],
'OPTIONS': {'context_processors': ['django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages']}}] |
| TEST_NON_SERIALIZED_APPS | [] |
| TEST_RUNNER | 'django.test.runner.DiscoverRunner' |
| THOUSAND_SEPARATOR | ',' |
| TIME_FORMAT | 'P' |
| TIME_INPUT_FORMATS | ['%H:%M:%S', '%H:%M:%S.%f', '%H:%M'] |
| TIME_ZONE | 'UTC' |
| USE_I18N | True |
| USE_THOUSAND_SEPARATOR | False |
| USE_TZ | True |
| USE_X_FORWARDED_HOST | False |
| USE_X_FORWARDED_PORT | False |
| WSGI_APPLICATION | 'backupstwopointo.wsgi.application' |
| X_FRAME_OPTIONS | 'DENY' |
| YEAR_MONTH_FORMAT | 'F Y' |