NoSuchBucket at /archives/callback_sync/7b43740a-5e3c-443e-a3a8-2a4755e37657

An error occurred (NoSuchBucket) when calling the ListObjects operation: The specified bucket does not exist
Request Method: GET
Request URL: http://127.0.0.1:8000/archives/callback_sync/7b43740a-5e3c-443e-a3a8-2a4755e37657
Django Version: 5.2.11
Exception Type: NoSuchBucket
Exception Value:
An error occurred (NoSuchBucket) when calling the ListObjects operation: The specified bucket does not exist
Exception Location: /home/backups/backup-manager/.venv/lib/python3.10/site-packages/botocore/client.py, line 1058, in _make_api_call
Raised during: apps.archives.views.callback_sync
Python Executable: /home/backups/backup-manager/.venv/bin/python
Python Version: 3.10.10
Python Path:
['/home/backups/backup-manager',
 '/home/backups/backup-manager/.venv/bin',
 '/usr/local/lib/python310.zip',
 '/usr/local/lib/python3.10',
 '/usr/local/lib/python3.10/lib-dynload',
 '/home/backups/backup-manager/.venv/lib/python3.10/site-packages']
Server time: Fri, 03 Jul 2026 11:27:39 +0000

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 inner
    1.         return inner
    2.     else:
    3.         @wraps(get_response)
    4.         def inner(request):
    5.             try:
    1.                 response = get_response(request)
    1.             except Exception as exc:
    2.                 response = response_for_exception(request, exc)
    3.             return response
    4.         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_response
    1.         if response is None:
    2.             wrapped_callback = self.make_view_atomic(callback)
    3.             # If it is an asynchronous view, run it in a subthread.
    4.             if iscoroutinefunction(wrapped_callback):
    5.                 wrapped_callback = async_to_sync(wrapped_callback)
    6.             try:
    1.                 response = wrapped_callback(request, *callback_args, **callback_kwargs)
    1.             except Exception as e:
    2.                 response = self.process_exception_by_middleware(e, request)
    3.                 if response is None:
    4.                     raise
    5.         # 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_sync
    1.     s3_content = list_s3_bucket_content.start(bucket)
    2.     s3_content.sort()
    3.     archive = Archives.objects.get(machine_id=bucket)
    4.     archive.set_on_s3_server = s3_content
    5.     s3_set = set(s3_content)
    6.     arch_set = set(archive.set_on_s3_server)
    1.     archive.size_on_s3 = list_s3_buckets.get_bucket_size(bucket)
    1.     # if s3_set.issubset(arch_set):
    2.     #     archive.synced = 1
    3.     #     archive.synced_since = int(time.time())
    4.     # else:
    5.     #     print("ZZZZ", s3_set.difference(arch_set))
    6.     #     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_size
    1. def get_bucket_size(bucket):
    2.     archive = Archives.objects.get(machine_id=bucket)
    3.     size = 0
    4.     for profile in archive.backup_servers:
    5.         aws_cli = AwsClient(profile=profile)
    1.         size_ = aws_cli.get_bucket_disk_usage(bucket)
    1.         backup_server = BackupNode.objects.get(name=profile)
    2.         values=backup_server.sizes
    3.         values[bucket] = size_
    4.         backup_server.sizes = values
    5.         backup_server.save()
    6.         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_usage
    1.         for file in self.list_bucket_content(bucket):
    2.             all_files.append(file)
    3.         return list(dict.fromkeys(all_files)), version_list
    4.     def get_bucket_disk_usage(self, bucket):
    5.         s3 = self.resources
    1.         bytes_ = sum([object_.size for object_ in s3.Bucket(bucket).objects.all()])
    1.         # return f"{bytes_ // 1000 // 1000 // 1000}"
    2.         return round(bytes_ / 1024 / 1024 / 1024, 2)
    3.     def empty_bucket(self, bucket):
    4.         s3 = self.resources
    5.         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>
    1.         for file in self.list_bucket_content(bucket):
    2.             all_files.append(file)
    3.         return list(dict.fromkeys(all_files)), version_list
    4.     def get_bucket_disk_usage(self, bucket):
    5.         s3 = self.resources
    1.         bytes_ = sum([object_.size for object_ in s3.Bucket(bucket).objects.all()])
    1.         # return f"{bytes_ // 1000 // 1000 // 1000}"
    2.         return round(bytes_ / 1024 / 1024 / 1024, 2)
    3.     def empty_bucket(self, bucket):
    4.         s3 = self.resources
    5.         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__
    1.             'key1'
    2.             'key2'
    3.         """
    4.         limit = self._params.get('limit', None)
    5.         count = 0
    1.         for page in self.pages():
    1.             for item in page:
    2.                 yield item
    3.                 # If the limit is set and has been reached, then
    4.                 # we stop processing items here.
    5.                 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 pages
    1.                 params,
    2.             )
    3.             pages = [getattr(client, self._py_operation_name)(**params)]
    4.         # Now that we have a page iterator or single page of results
    5.         # we start processing and yielding individual items.
    6.         count = 0
    1.         for page in pages:
    1.             page_items = []
    2.             for item in self._handler(self._parent, params, page):
    3.                 page_items.append(item)
    4.                 # If the limit is set and has been reached, then
    5.                 # 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__
    1.         # The number of items from result_key we've seen so far.
    2.         total_items = 0
    3.         first_request = True
    4.         primary_result_key = self.result_keys[0]
    5.         starting_truncation = 0
    6.         self._inject_starting_params(current_kwargs)
    7.         while True:
    1.             response = self._make_request(current_kwargs)
    1.             parsed = self._extract_parsed_response(response)
    2.             if first_request:
    3.                 # The first request is handled differently.  We could
    4.                 # possibly have a resume/starting token that tells us where
    5.                 # to index into the retrieved page.
    6.                 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 wrapper
    1.     def decorator(func):
    2.         @wraps(func)
    3.         def wrapper(*args, **kwargs):
    4.             with start_as_current_context():
    5.                 if hook:
    6.                     hook()
    1.                 return func(*args, **kwargs)
    1.         return wrapper
    2.     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_request
    1.                 yield from results
    2.             else:
    3.                 # Yield result directly if it is not a list.
    4.                 yield results
    5.     @with_current_context(partial(register_feature_id, 'PAGINATOR'))
    6.     def _make_request(self, current_kwargs):
    1.         return self._method(**current_kwargs)
    1.     def _extract_parsed_response(self, response):
    2.         return response
    3.     def _record_non_aggregate_key_values(self, response):
    4.         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
    1.             # error message than TypeError: _api_call takes exactly
    2.             # 1 argument.
    3.             if args:
    4.                 raise TypeError(
    5.                     f"{py_operation_name}() only accepts keyword arguments."
    6.                 )
    7.             # The "self" in this scope is referring to the BaseClient.
    1.             return self._make_api_call(operation_name, kwargs)
    1.         _api_call.__name__ = str(py_operation_name)
    2.         # Add the docstring to the client method
    3.         operation_model = service_model.operation_model(operation_name)
    4.         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 wrapper
    1.     def decorator(func):
    2.         @wraps(func)
    3.         def wrapper(*args, **kwargs):
    4.             with start_as_current_context():
    5.                 if hook:
    6.                     hook()
    1.                 return func(*args, **kwargs)
    1.         return wrapper
    2.     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_call
    1.         if http.status_code >= 300:
    2.             error_info = parsed_response.get("Error", {})
    3.             error_code = error_info.get("QueryErrorCode") or error_info.get(
    4.                 "Code"
    5.             )
    6.             error_class = self.exceptions.from_code(error_code)
    1.             raise error_class(parsed_response, operation_name)
    1.         else:
    2.             return parsed_response
    3.     def _make_request(self, operation_model, request_dict, request_context):
    4.         try:
    5.             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

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'
185.149.110.44 NoSuchBucket at /archives/callback_sync/25a9f9fd-7284-4fb9-9c21-4e6b4e8df157

NoSuchBucket at /archives/callback_sync/25a9f9fd-7284-4fb9-9c21-4e6b4e8df157

An error occurred (NoSuchBucket) when calling the ListObjects operation: The specified bucket does not exist
Request Method: GET
Request URL: http://127.0.0.1:8000/archives/callback_sync/25a9f9fd-7284-4fb9-9c21-4e6b4e8df157
Django Version: 5.2.11
Exception Type: NoSuchBucket
Exception Value:
An error occurred (NoSuchBucket) when calling the ListObjects operation: The specified bucket does not exist
Exception Location: /home/backups/backup-manager/.venv/lib/python3.10/site-packages/botocore/client.py, line 1058, in _make_api_call
Raised during: apps.archives.views.callback_sync
Python Executable: /home/backups/backup-manager/.venv/bin/python
Python Version: 3.10.10
Python Path:
['/home/backups/backup-manager',
 '/home/backups/backup-manager/.venv/bin',
 '/usr/local/lib/python310.zip',
 '/usr/local/lib/python3.10',
 '/usr/local/lib/python3.10/lib-dynload',
 '/home/backups/backup-manager/.venv/lib/python3.10/site-packages']
Server time: Fri, 03 Jul 2026 11:27:39 +0000

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 inner
    1.         return inner
    2.     else:
    3.         @wraps(get_response)
    4.         def inner(request):
    5.             try:
    1.                 response = get_response(request)
    1.             except Exception as exc:
    2.                 response = response_for_exception(request, exc)
    3.             return response
    4.         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/25a9f9fd-7284-4fb9-9c21-4e6b4e8df157'>
  • /home/backups/backup-manager/.venv/lib/python3.10/site-packages/django/core/handlers/base.py, line 197, in _get_response
    1.         if response is None:
    2.             wrapped_callback = self.make_view_atomic(callback)
    3.             # If it is an asynchronous view, run it in a subthread.
    4.             if iscoroutinefunction(wrapped_callback):
    5.                 wrapped_callback = async_to_sync(wrapped_callback)
    6.             try:
    1.                 response = wrapped_callback(request, *callback_args, **callback_kwargs)
    1.             except Exception as e:
    2.                 response = self.process_exception_by_middleware(e, request)
    3.                 if response is None:
    4.                     raise
    5.         # Complain if the view returned None (a common error).
    Local vars
    Variable Value
    callback
    <function callback_sync at 0x7f4bc15ca0e0>
    callback_args
    ()
    callback_kwargs
    {'bucket': '25a9f9fd-7284-4fb9-9c21-4e6b4e8df157'}
    middleware_method
    <bound method CsrfViewMiddleware.process_view of <CsrfViewMiddleware get_response=convert_exception_to_response.<locals>.inner>>
    request
    <WSGIRequest: GET '/archives/callback_sync/25a9f9fd-7284-4fb9-9c21-4e6b4e8df157'>
    response
    None
    self
    <django.core.handlers.wsgi.WSGIHandler object at 0x7f4bc2f6ea40>
    wrapped_callback
    <function callback_sync at 0x7f4bc15ca0e0>
  • /home/backups/backup-manager/apps/archives/views.py, line 333, in callback_sync
    1.     s3_content = list_s3_bucket_content.start(bucket)
    2.     s3_content.sort()
    3.     archive = Archives.objects.get(machine_id=bucket)
    4.     archive.set_on_s3_server = s3_content
    5.     s3_set = set(s3_content)
    6.     arch_set = set(archive.set_on_s3_server)
    1.     archive.size_on_s3 = list_s3_buckets.get_bucket_size(bucket)
    1.     # if s3_set.issubset(arch_set):
    2.     #     archive.synced = 1
    3.     #     archive.synced_since = int(time.time())
    4.     # else:
    5.     #     print("ZZZZ", s3_set.difference(arch_set))
    6.     #     print("ZZssZZ", arch_set.difference(s3_set))
    Local vars
    Variable Value
    arch_set
    set()
    archive
    <Archives: Archives object (25a9f9fd-7284-4fb9-9c21-4e6b4e8df157)>
    bucket
    '25a9f9fd-7284-4fb9-9c21-4e6b4e8df157'
    payload
    ['']
    payload_string
    ''
    request
    <WSGIRequest: GET '/archives/callback_sync/25a9f9fd-7284-4fb9-9c21-4e6b4e8df157'>
    s3_content
    []
    s3_set
    set()
  • /home/backups/backup-manager/apps/archives/jobs/list_s3_buckets.py, line 44, in get_bucket_size
    1. def get_bucket_size(bucket):
    2.     archive = Archives.objects.get(machine_id=bucket)
    3.     size = 0
    4.     for profile in archive.backup_servers:
    5.         aws_cli = AwsClient(profile=profile)
    1.         size_ = aws_cli.get_bucket_disk_usage(bucket)
    1.         backup_server = BackupNode.objects.get(name=profile)
    2.         values=backup_server.sizes
    3.         values[bucket] = size_
    4.         backup_server.sizes = values
    5.         backup_server.save()
    6.         size += size_
    Local vars
    Variable Value
    archive
    <Archives: Archives object (25a9f9fd-7284-4fb9-9c21-4e6b4e8df157)>
    aws_cli
    <apps.archives.awsclient.awsclient.AwsClient object at 0x7f4bbbf91db0>
    bucket
    '25a9f9fd-7284-4fb9-9c21-4e6b4e8df157'
    profile
    's1'
    size
    0
  • /home/backups/backup-manager/apps/archives/awsclient/awsclient.py, line 258, in get_bucket_disk_usage
    1.         for file in self.list_bucket_content(bucket):
    2.             all_files.append(file)
    3.         return list(dict.fromkeys(all_files)), version_list
    4.     def get_bucket_disk_usage(self, bucket):
    5.         s3 = self.resources
    1.         bytes_ = sum([object_.size for object_ in s3.Bucket(bucket).objects.all()])
    1.         # return f"{bytes_ // 1000 // 1000 // 1000}"
    2.         return round(bytes_ / 1024 / 1024 / 1024, 2)
    3.     def empty_bucket(self, bucket):
    4.         s3 = self.resources
    5.         bucket_ = s3.Bucket(bucket)
    Local vars
    Variable Value
    bucket
    '25a9f9fd-7284-4fb9-9c21-4e6b4e8df157'
    s3
    s3.ServiceResource()
    self
    <apps.archives.awsclient.awsclient.AwsClient object at 0x7f4bbbf91db0>
  • /home/backups/backup-manager/apps/archives/awsclient/awsclient.py, line 258, in <listcomp>
    1.         for file in self.list_bucket_content(bucket):
    2.             all_files.append(file)
    3.         return list(dict.fromkeys(all_files)), version_list
    4.     def get_bucket_disk_usage(self, bucket):
    5.         s3 = self.resources
    1.         bytes_ = sum([object_.size for object_ in s3.Bucket(bucket).objects.all()])
    1.         # return f"{bytes_ // 1000 // 1000 // 1000}"
    2.         return round(bytes_ / 1024 / 1024 / 1024, 2)
    3.     def empty_bucket(self, bucket):
    4.         s3 = self.resources
    5.         bucket_ = s3.Bucket(bucket)
    Local vars
    Variable Value
    .0
    <generator object ResourceCollection.__iter__ at 0x7f4bbbc69a80>
  • /home/backups/backup-manager/.venv/lib/python3.10/site-packages/boto3/resources/collection.py, line 79, in __iter__
    1.             'key1'
    2.             'key2'
    3.         """
    4.         limit = self._params.get('limit', None)
    5.         count = 0
    1.         for page in self.pages():
    1.             for item in page:
    2.                 yield item
    3.                 # If the limit is set and has been reached, then
    4.                 # we stop processing items here.
    5.                 count += 1
    Local vars
    Variable Value
    count
    0
    limit
    None
    self
    s3.Bucket.objectsCollection(s3.Bucket(name='25a9f9fd-7284-4fb9-9c21-4e6b4e8df157'), s3.ObjectSummary)
  • /home/backups/backup-manager/.venv/lib/python3.10/site-packages/boto3/resources/collection.py, line 169, in pages
    1.                 params,
    2.             )
    3.             pages = [getattr(client, self._py_operation_name)(**params)]
    4.         # Now that we have a page iterator or single page of results
    5.         # we start processing and yielding individual items.
    6.         count = 0
    1.         for page in pages:
    1.             page_items = []
    2.             for item in self._handler(self._parent, params, page):
    3.                 page_items.append(item)
    4.                 # If the limit is set and has been reached, then
    5.                 # we stop processing items here.
    Local vars
    Variable Value
    cleaned_params
    {}
    client
    <botocore.client.S3 object at 0x7f4bc0d9d450>
    count
    0
    limit
    None
    page_size
    None
    pages
    <botocore.paginate.PageIterator object at 0x7f4bc0d57af0>
    paginator
    <botocore.client.S3.Paginator.ListObjects object at 0x7f4bc0d57ac0>
    params
    {'Bucket': '25a9f9fd-7284-4fb9-9c21-4e6b4e8df157'}
    self
    s3.Bucket.objectsCollection(s3.Bucket(name='25a9f9fd-7284-4fb9-9c21-4e6b4e8df157'), s3.ObjectSummary)
  • /home/backups/backup-manager/.venv/lib/python3.10/site-packages/botocore/paginate.py, line 272, in __iter__
    1.         # The number of items from result_key we've seen so far.
    2.         total_items = 0
    3.         first_request = True
    4.         primary_result_key = self.result_keys[0]
    5.         starting_truncation = 0
    6.         self._inject_starting_params(current_kwargs)
    7.         while True:
    1.             response = self._make_request(current_kwargs)
    1.             parsed = self._extract_parsed_response(response)
    2.             if first_request:
    3.                 # The first request is handled differently.  We could
    4.                 # possibly have a resume/starting token that tells us where
    5.                 # to index into the retrieved page.
    6.                 if self._starting_token is not None:
    Local vars
    Variable Value
    current_kwargs
    {'Bucket': '25a9f9fd-7284-4fb9-9c21-4e6b4e8df157'}
    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 0x7f4bc0d57af0>
    starting_truncation
    0
    total_items
    0
  • /home/backups/backup-manager/.venv/lib/python3.10/site-packages/botocore/context.py, line 123, in wrapper
    1.     def decorator(func):
    2.         @wraps(func)
    3.         def wrapper(*args, **kwargs):
    4.             with start_as_current_context():
    5.                 if hook:
    6.                     hook()
    1.                 return func(*args, **kwargs)
    1.         return wrapper
    2.     return decorator
    Local vars
    Variable Value
    args
    (<botocore.paginate.PageIterator object at 0x7f4bc0d57af0>,
     {'Bucket': '25a9f9fd-7284-4fb9-9c21-4e6b4e8df157'})
    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_request
    1.                 yield from results
    2.             else:
    3.                 # Yield result directly if it is not a list.
    4.                 yield results
    5.     @with_current_context(partial(register_feature_id, 'PAGINATOR'))
    6.     def _make_request(self, current_kwargs):
    1.         return self._method(**current_kwargs)
    1.     def _extract_parsed_response(self, response):
    2.         return response
    3.     def _record_non_aggregate_key_values(self, response):
    4.         non_aggregate_keys = {}
    Local vars
    Variable Value
    current_kwargs
    {'Bucket': '25a9f9fd-7284-4fb9-9c21-4e6b4e8df157'}
    self
    <botocore.paginate.PageIterator object at 0x7f4bc0d57af0>
  • /home/backups/backup-manager/.venv/lib/python3.10/site-packages/botocore/client.py, line 595, in _api_call
    1.             # error message than TypeError: _api_call takes exactly
    2.             # 1 argument.
    3.             if args:
    4.                 raise TypeError(
    5.                     f"{py_operation_name}() only accepts keyword arguments."
    6.                 )
    7.             # The "self" in this scope is referring to the BaseClient.
    1.             return self._make_api_call(operation_name, kwargs)
    1.         _api_call.__name__ = str(py_operation_name)
    2.         # Add the docstring to the client method
    3.         operation_model = service_model.operation_model(operation_name)
    4.         docstring = ClientMethodDocstring(
    Local vars
    Variable Value
    args
    ()
    kwargs
    {'Bucket': '25a9f9fd-7284-4fb9-9c21-4e6b4e8df157', 'EncodingType': 'url'}
    operation_name
    'ListObjects'
    py_operation_name
    'list_objects'
    self
    <botocore.client.S3 object at 0x7f4bc0d9d450>
  • /home/backups/backup-manager/.venv/lib/python3.10/site-packages/botocore/context.py, line 123, in wrapper
    1.     def decorator(func):
    2.         @wraps(func)
    3.         def wrapper(*args, **kwargs):
    4.             with start_as_current_context():
    5.                 if hook:
    6.                     hook()
    1.                 return func(*args, **kwargs)
    1.         return wrapper
    2.     return decorator
    Local vars
    Variable Value
    args
    (<botocore.client.S3 object at 0x7f4bc0d9d450>,
     'ListObjects',
     {'Bucket': '25a9f9fd-7284-4fb9-9c21-4e6b4e8df157', '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_call
    1.         if http.status_code >= 300:
    2.             error_info = parsed_response.get("Error", {})
    3.             error_code = error_info.get("QueryErrorCode") or error_info.get(
    4.                 "Code"
    5.             )
    6.             error_class = self.exceptions.from_code(error_code)
    1.             raise error_class(parsed_response, operation_name)
    1.         else:
    2.             return parsed_response
    3.     def _make_request(self, operation_model, request_dict, request_context):
    4.         try:
    5.             return self._endpoint.make_request(operation_model, request_dict)
    Local vars
    Variable Value
    additional_headers
    {}
    api_params
    {'Bucket': '25a9f9fd-7284-4fb9-9c21-4e6b4e8df157', 'EncodingType': 'url'}
    endpoint_url
    'https://u7b8.da.idrivee2-19.com/25a9f9fd-7284-4fb9-9c21-4e6b4e8df157'
    error_class
    <class 'botocore.errorfactory.NoSuchBucket'>
    error_code
    'NoSuchBucket'
    error_info
    {'BucketName': '25a9f9fd-7284-4fb9-9c21-4e6b4e8df157',
     'Code': 'NoSuchBucket',
     'Message': 'The specified bucket does not exist',
     'Resource': '/25a9f9fd-7284-4fb9-9c21-4e6b4e8df157'}
    event_response
    None
    handler
    <function inject_api_version_header_if_needed at 0x7f4bc3e545e0>
    http
    <botocore.awsrequest.AWSResponse object at 0x7f4bbbc64610>
    operation_model
    OperationModel(name=ListObjects)
    operation_name
    'ListObjects'
    parsed_response
    {'Error': {'BucketName': '25a9f9fd-7284-4fb9-9c21-4e6b4e8df157',
               'Code': 'NoSuchBucket',
               'Message': 'The specified bucket does not exist',
               'Resource': '/25a9f9fd-7284-4fb9-9c21-4e6b4e8df157'},
     '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': '18BEC40C374F980A',
                                          'x-content-type-options': 'nosniff',
                                          'x-xss-protection': '1; mode=block'},
                          'HTTPStatusCode': 404,
                          'HostId': '',
                          'RequestId': '18BEC40C374F980A',
                          '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 0x7f4bc0d9dfc0>,
     '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': '25a9f9fd-7284-4fb9-9c21-4e6b4e8df157'},
     'retries': {'attempt': 1,
                 'invocation-id': '78511c56-c68b-420e-82f5-a751ec795216',
                 'max': 5},
     's3_redirect': {'bucket': '25a9f9fd-7284-4fb9-9c21-4e6b4e8df157',
                     'params': {'Bucket': '25a9f9fd-7284-4fb9-9c21-4e6b4e8df157',
                                'EncodingType': 'url'},
                     'redirected': False},
     'signing': {'disableDoubleEncoding': True,
                 'region': 'us-east-1',
                 'signing_name': 's3'},
     'timestamp': '20260703T112738Z',
     'unsigned_payload': None}
    request_dict
    {'auth_path': '/25a9f9fd-7284-4fb9-9c21-4e6b4e8df157/',
     'body': b'',
     'context': {'auth_type': 'v4',
                 'client_config': <botocore.config.Config object at 0x7f4bc0d9dfc0>,
                 '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': '25a9f9fd-7284-4fb9-9c21-4e6b4e8df157'},
                 'retries': {'attempt': 1,
                             'invocation-id': '78511c56-c68b-420e-82f5-a751ec795216',
                             'max': 5},
                 's3_redirect': {'bucket': '25a9f9fd-7284-4fb9-9c21-4e6b4e8df157',
                                 'params': {'Bucket': '25a9f9fd-7284-4fb9-9c21-4e6b4e8df157',
                                            '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/25a9f9fd-7284-4fb9-9c21-4e6b4e8df157?encoding-type=url',
     'url_path': ''}
    self
    <botocore.client.S3 object at 0x7f4bc0d9d450>
    service_id
    's3'
    service_name
    's3'


Request information

USER

AnonymousUser

GET

No GET data

POST

No POST data

FILES

No FILES data

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/25a9f9fd-7284-4fb9-9c21-4e6b4e8df157'
QUERY_STRING
''
RAW_URI
'/archives/callback_sync/25a9f9fd-7284-4fb9-9c21-4e6b4e8df157'
REMOTE_ADDR
'127.0.0.1'
REMOTE_PORT
'36466'
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', 36466)>
wsgi.errors
<gunicorn.http.wsgi.WSGIErrorsWrapper object at 0x7f4bbbafa7a0>
wsgi.file_wrapper
<class 'gunicorn.http.wsgi.FileWrapper'>
wsgi.input
<gunicorn.http.body.Body object at 0x7f4bbbaf9960>
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'
185.149.110.44 NoSuchBucket at /archives/callback_sync/fae164ff-10c0-4014-baec-3c165e8296cc

NoSuchBucket at /archives/callback_sync/fae164ff-10c0-4014-baec-3c165e8296cc

An error occurred (NoSuchBucket) when calling the ListObjects operation: The specified bucket does not exist
Request Method: GET
Request URL: http://127.0.0.1:8000/archives/callback_sync/fae164ff-10c0-4014-baec-3c165e8296cc
Django Version: 5.2.11
Exception Type: NoSuchBucket
Exception Value:
An error occurred (NoSuchBucket) when calling the ListObjects operation: The specified bucket does not exist
Exception Location: /home/backups/backup-manager/.venv/lib/python3.10/site-packages/botocore/client.py, line 1058, in _make_api_call
Raised during: apps.archives.views.callback_sync
Python Executable: /home/backups/backup-manager/.venv/bin/python
Python Version: 3.10.10
Python Path:
['/home/backups/backup-manager',
 '/home/backups/backup-manager/.venv/bin',
 '/usr/local/lib/python310.zip',
 '/usr/local/lib/python3.10',
 '/usr/local/lib/python3.10/lib-dynload',
 '/home/backups/backup-manager/.venv/lib/python3.10/site-packages']
Server time: Fri, 03 Jul 2026 11:27:41 +0000

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 inner
    1.         return inner
    2.     else:
    3.         @wraps(get_response)
    4.         def inner(request):
    5.             try:
    1.                 response = get_response(request)
    1.             except Exception as exc:
    2.                 response = response_for_exception(request, exc)
    3.             return response
    4.         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/fae164ff-10c0-4014-baec-3c165e8296cc'>
  • /home/backups/backup-manager/.venv/lib/python3.10/site-packages/django/core/handlers/base.py, line 197, in _get_response
    1.         if response is None:
    2.             wrapped_callback = self.make_view_atomic(callback)
    3.             # If it is an asynchronous view, run it in a subthread.
    4.             if iscoroutinefunction(wrapped_callback):
    5.                 wrapped_callback = async_to_sync(wrapped_callback)
    6.             try:
    1.                 response = wrapped_callback(request, *callback_args, **callback_kwargs)
    1.             except Exception as e:
    2.                 response = self.process_exception_by_middleware(e, request)
    3.                 if response is None:
    4.                     raise
    5.         # Complain if the view returned None (a common error).
    Local vars
    Variable Value
    callback
    <function callback_sync at 0x7f4bc15ca0e0>
    callback_args
    ()
    callback_kwargs
    {'bucket': 'fae164ff-10c0-4014-baec-3c165e8296cc'}
    middleware_method
    <bound method CsrfViewMiddleware.process_view of <CsrfViewMiddleware get_response=convert_exception_to_response.<locals>.inner>>
    request
    <WSGIRequest: GET '/archives/callback_sync/fae164ff-10c0-4014-baec-3c165e8296cc'>
    response
    None
    self
    <django.core.handlers.wsgi.WSGIHandler object at 0x7f4bc2f6ea40>
    wrapped_callback
    <function callback_sync at 0x7f4bc15ca0e0>
  • /home/backups/backup-manager/apps/archives/views.py, line 333, in callback_sync
    1.     s3_content = list_s3_bucket_content.start(bucket)
    2.     s3_content.sort()
    3.     archive = Archives.objects.get(machine_id=bucket)
    4.     archive.set_on_s3_server = s3_content
    5.     s3_set = set(s3_content)
    6.     arch_set = set(archive.set_on_s3_server)
    1.     archive.size_on_s3 = list_s3_buckets.get_bucket_size(bucket)
    1.     # if s3_set.issubset(arch_set):
    2.     #     archive.synced = 1
    3.     #     archive.synced_since = int(time.time())
    4.     # else:
    5.     #     print("ZZZZ", s3_set.difference(arch_set))
    6.     #     print("ZZssZZ", arch_set.difference(s3_set))
    Local vars
    Variable Value
    arch_set
    set()
    archive
    <Archives: Archives object (fae164ff-10c0-4014-baec-3c165e8296cc)>
    bucket
    'fae164ff-10c0-4014-baec-3c165e8296cc'
    payload
    ['']
    payload_string
    ''
    request
    <WSGIRequest: GET '/archives/callback_sync/fae164ff-10c0-4014-baec-3c165e8296cc'>
    s3_content
    []
    s3_set
    set()
  • /home/backups/backup-manager/apps/archives/jobs/list_s3_buckets.py, line 44, in get_bucket_size
    1. def get_bucket_size(bucket):
    2.     archive = Archives.objects.get(machine_id=bucket)
    3.     size = 0
    4.     for profile in archive.backup_servers:
    5.         aws_cli = AwsClient(profile=profile)
    1.         size_ = aws_cli.get_bucket_disk_usage(bucket)
    1.         backup_server = BackupNode.objects.get(name=profile)
    2.         values=backup_server.sizes
    3.         values[bucket] = size_
    4.         backup_server.sizes = values
    5.         backup_server.save()
    6.         size += size_
    Local vars
    Variable Value
    archive
    <Archives: Archives object (fae164ff-10c0-4014-baec-3c165e8296cc)>
    aws_cli
    <apps.archives.awsclient.awsclient.AwsClient object at 0x7f4bb9c263b0>
    bucket
    'fae164ff-10c0-4014-baec-3c165e8296cc'
    profile
    's1'
    size
    0
  • /home/backups/backup-manager/apps/archives/awsclient/awsclient.py, line 258, in get_bucket_disk_usage
    1.         for file in self.list_bucket_content(bucket):
    2.             all_files.append(file)
    3.         return list(dict.fromkeys(all_files)), version_list
    4.     def get_bucket_disk_usage(self, bucket):
    5.         s3 = self.resources
    1.         bytes_ = sum([object_.size for object_ in s3.Bucket(bucket).objects.all()])
    1.         # return f"{bytes_ // 1000 // 1000 // 1000}"
    2.         return round(bytes_ / 1024 / 1024 / 1024, 2)
    3.     def empty_bucket(self, bucket):
    4.         s3 = self.resources
    5.         bucket_ = s3.Bucket(bucket)
    Local vars
    Variable Value
    bucket
    'fae164ff-10c0-4014-baec-3c165e8296cc'
    s3
    s3.ServiceResource()
    self
    <apps.archives.awsclient.awsclient.AwsClient object at 0x7f4bb9c263b0>
  • /home/backups/backup-manager/apps/archives/awsclient/awsclient.py, line 258, in <listcomp>
    1.         for file in self.list_bucket_content(bucket):
    2.             all_files.append(file)
    3.         return list(dict.fromkeys(all_files)), version_list
    4.     def get_bucket_disk_usage(self, bucket):
    5.         s3 = self.resources
    1.         bytes_ = sum([object_.size for object_ in s3.Bucket(bucket).objects.all()])
    1.         # return f"{bytes_ // 1000 // 1000 // 1000}"
    2.         return round(bytes_ / 1024 / 1024 / 1024, 2)
    3.     def empty_bucket(self, bucket):
    4.         s3 = self.resources
    5.         bucket_ = s3.Bucket(bucket)
    Local vars
    Variable Value
    .0
    <generator object ResourceCollection.__iter__ at 0x7f4bb9c98190>
  • /home/backups/backup-manager/.venv/lib/python3.10/site-packages/boto3/resources/collection.py, line 79, in __iter__
    1.             'key1'
    2.             'key2'
    3.         """
    4.         limit = self._params.get('limit', None)
    5.         count = 0
    1.         for page in self.pages():
    1.             for item in page:
    2.                 yield item
    3.                 # If the limit is set and has been reached, then
    4.                 # we stop processing items here.
    5.                 count += 1
    Local vars
    Variable Value
    count
    0
    limit
    None
    self
    s3.Bucket.objectsCollection(s3.Bucket(name='fae164ff-10c0-4014-baec-3c165e8296cc'), s3.ObjectSummary)
  • /home/backups/backup-manager/.venv/lib/python3.10/site-packages/boto3/resources/collection.py, line 169, in pages
    1.                 params,
    2.             )
    3.             pages = [getattr(client, self._py_operation_name)(**params)]
    4.         # Now that we have a page iterator or single page of results
    5.         # we start processing and yielding individual items.
    6.         count = 0
    1.         for page in pages:
    1.             page_items = []
    2.             for item in self._handler(self._parent, params, page):
    3.                 page_items.append(item)
    4.                 # If the limit is set and has been reached, then
    5.                 # we stop processing items here.
    Local vars
    Variable Value
    cleaned_params
    {}
    client
    <botocore.client.S3 object at 0x7f4bb9cd47c0>
    count
    0
    limit
    None
    page_size
    None
    pages
    <botocore.paginate.PageIterator object at 0x7f4bb9ca82b0>
    paginator
    <botocore.client.S3.Paginator.ListObjects object at 0x7f4bb9cabd00>
    params
    {'Bucket': 'fae164ff-10c0-4014-baec-3c165e8296cc'}
    self
    s3.Bucket.objectsCollection(s3.Bucket(name='fae164ff-10c0-4014-baec-3c165e8296cc'), s3.ObjectSummary)
  • /home/backups/backup-manager/.venv/lib/python3.10/site-packages/botocore/paginate.py, line 272, in __iter__
    1.         # The number of items from result_key we've seen so far.
    2.         total_items = 0
    3.         first_request = True
    4.         primary_result_key = self.result_keys[0]
    5.         starting_truncation = 0
    6.         self._inject_starting_params(current_kwargs)
    7.         while True:
    1.             response = self._make_request(current_kwargs)
    1.             parsed = self._extract_parsed_response(response)
    2.             if first_request:
    3.                 # The first request is handled differently.  We could
    4.                 # possibly have a resume/starting token that tells us where
    5.                 # to index into the retrieved page.
    6.                 if self._starting_token is not None:
    Local vars
    Variable Value
    current_kwargs
    {'Bucket': 'fae164ff-10c0-4014-baec-3c165e8296cc'}
    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 0x7f4bb9ca82b0>
    starting_truncation
    0
    total_items
    0
  • /home/backups/backup-manager/.venv/lib/python3.10/site-packages/botocore/context.py, line 123, in wrapper
    1.     def decorator(func):
    2.         @wraps(func)
    3.         def wrapper(*args, **kwargs):
    4.             with start_as_current_context():
    5.                 if hook:
    6.                     hook()
    1.                 return func(*args, **kwargs)
    1.         return wrapper
    2.     return decorator
    Local vars
    Variable Value
    args
    (<botocore.paginate.PageIterator object at 0x7f4bb9ca82b0>,
     {'Bucket': 'fae164ff-10c0-4014-baec-3c165e8296cc'})
    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_request
    1.                 yield from results
    2.             else:
    3.                 # Yield result directly if it is not a list.
    4.                 yield results
    5.     @with_current_context(partial(register_feature_id, 'PAGINATOR'))
    6.     def _make_request(self, current_kwargs):
    1.         return self._method(**current_kwargs)
    1.     def _extract_parsed_response(self, response):
    2.         return response
    3.     def _record_non_aggregate_key_values(self, response):
    4.         non_aggregate_keys = {}
    Local vars
    Variable Value
    current_kwargs
    {'Bucket': 'fae164ff-10c0-4014-baec-3c165e8296cc'}
    self
    <botocore.paginate.PageIterator object at 0x7f4bb9ca82b0>
  • /home/backups/backup-manager/.venv/lib/python3.10/site-packages/botocore/client.py, line 595, in _api_call
    1.             # error message than TypeError: _api_call takes exactly
    2.             # 1 argument.
    3.             if args:
    4.                 raise TypeError(
    5.                     f"{py_operation_name}() only accepts keyword arguments."
    6.                 )
    7.             # The "self" in this scope is referring to the BaseClient.
    1.             return self._make_api_call(operation_name, kwargs)
    1.         _api_call.__name__ = str(py_operation_name)
    2.         # Add the docstring to the client method
    3.         operation_model = service_model.operation_model(operation_name)
    4.         docstring = ClientMethodDocstring(
    Local vars
    Variable Value
    args
    ()
    kwargs
    {'Bucket': 'fae164ff-10c0-4014-baec-3c165e8296cc', 'EncodingType': 'url'}
    operation_name
    'ListObjects'
    py_operation_name
    'list_objects'
    self
    <botocore.client.S3 object at 0x7f4bb9cd47c0>
  • /home/backups/backup-manager/.venv/lib/python3.10/site-packages/botocore/context.py, line 123, in wrapper
    1.     def decorator(func):
    2.         @wraps(func)
    3.         def wrapper(*args, **kwargs):
    4.             with start_as_current_context():
    5.                 if hook:
    6.                     hook()
    1.                 return func(*args, **kwargs)
    1.         return wrapper
    2.     return decorator
    Local vars
    Variable Value
    args
    (<botocore.client.S3 object at 0x7f4bb9cd47c0>,
     'ListObjects',
     {'Bucket': 'fae164ff-10c0-4014-baec-3c165e8296cc', '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_call
    1.         if http.status_code >= 300:
    2.             error_info = parsed_response.get("Error", {})
    3.             error_code = error_info.get("QueryErrorCode") or error_info.get(
    4.                 "Code"
    5.             )
    6.             error_class = self.exceptions.from_code(error_code)
    1.             raise error_class(parsed_response, operation_name)
    1.         else:
    2.             return parsed_response
    3.     def _make_request(self, operation_model, request_dict, request_context):
    4.         try:
    5.             return self._endpoint.make_request(operation_model, request_dict)
    Local vars
    Variable Value
    additional_headers
    {}
    api_params
    {'Bucket': 'fae164ff-10c0-4014-baec-3c165e8296cc', 'EncodingType': 'url'}
    endpoint_url
    'https://u7b8.da.idrivee2-19.com/fae164ff-10c0-4014-baec-3c165e8296cc'
    error_class
    <class 'botocore.errorfactory.NoSuchBucket'>
    error_code
    'NoSuchBucket'
    error_info
    {'BucketName': 'fae164ff-10c0-4014-baec-3c165e8296cc',
     'Code': 'NoSuchBucket',
     'Message': 'The specified bucket does not exist',
     'Resource': '/fae164ff-10c0-4014-baec-3c165e8296cc'}
    event_response
    None
    handler
    <function inject_api_version_header_if_needed at 0x7f4bc3e545e0>
    http
    <botocore.awsrequest.AWSResponse object at 0x7f4bb9c90820>
    operation_model
    OperationModel(name=ListObjects)
    operation_name
    'ListObjects'
    parsed_response
    {'Error': {'BucketName': 'fae164ff-10c0-4014-baec-3c165e8296cc',
               'Code': 'NoSuchBucket',
               'Message': 'The specified bucket does not exist',
               'Resource': '/fae164ff-10c0-4014-baec-3c165e8296cc'},
     '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:40 GMT',
                                          'server': 'nginx',
                                          'strict-transport-security': 'max-age=31536000; '
                                                                       'includeSubDomains',
                                          'vary': 'Accept-Encoding, Origin',
                                          'x-amz-request-id': '18BEC40C98EF7431',
                                          'x-content-type-options': 'nosniff',
                                          'x-xss-protection': '1; mode=block'},
                          'HTTPStatusCode': 404,
                          'HostId': '',
                          'RequestId': '18BEC40C98EF7431',
                          '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 0x7f4bb9cd4940>,
     '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': 'fae164ff-10c0-4014-baec-3c165e8296cc'},
     'retries': {'attempt': 1,
                 'invocation-id': '63fb23ed-1d83-429f-a481-aab7515b4cd7',
                 'max': 5},
     's3_redirect': {'bucket': 'fae164ff-10c0-4014-baec-3c165e8296cc',
                     'params': {'Bucket': 'fae164ff-10c0-4014-baec-3c165e8296cc',
                                'EncodingType': 'url'},
                     'redirected': False},
     'signing': {'disableDoubleEncoding': True,
                 'region': 'us-east-1',
                 'signing_name': 's3'},
     'timestamp': '20260703T112740Z',
     'unsigned_payload': None}
    request_dict
    {'auth_path': '/fae164ff-10c0-4014-baec-3c165e8296cc/',
     'body': b'',
     'context': {'auth_type': 'v4',
                 'client_config': <botocore.config.Config object at 0x7f4bb9cd4940>,
                 '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': 'fae164ff-10c0-4014-baec-3c165e8296cc'},
                 'retries': {'attempt': 1,
                             'invocation-id': '63fb23ed-1d83-429f-a481-aab7515b4cd7',
                             'max': 5},
                 's3_redirect': {'bucket': 'fae164ff-10c0-4014-baec-3c165e8296cc',
                                 'params': {'Bucket': 'fae164ff-10c0-4014-baec-3c165e8296cc',
                                            'EncodingType': 'url'},
                                 'redirected': False},
                 'signing': {'disableDoubleEncoding': True,
                             'region': 'us-east-1',
                             'signing_name': 's3'},
                 'timestamp': '20260703T112740Z',
                 '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/fae164ff-10c0-4014-baec-3c165e8296cc?encoding-type=url',
     'url_path': ''}
    self
    <botocore.client.S3 object at 0x7f4bb9cd47c0>
    service_id
    's3'
    service_name
    's3'


Request information

USER

AnonymousUser

GET

No GET data

POST

No POST data

FILES

No FILES data

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/fae164ff-10c0-4014-baec-3c165e8296cc'
QUERY_STRING
''
RAW_URI
'/archives/callback_sync/fae164ff-10c0-4014-baec-3c165e8296cc'
REMOTE_ADDR
'127.0.0.1'
REMOTE_PORT
'36554'
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', 36554)>
wsgi.errors
<gunicorn.http.wsgi.WSGIErrorsWrapper object at 0x7f4bba73d9c0>
wsgi.file_wrapper
<class 'gunicorn.http.wsgi.FileWrapper'>
wsgi.input
<gunicorn.http.body.Body object at 0x7f4bba73d4e0>
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'