Skip to content

Commit

Permalink
Change get escaped path method
Browse files Browse the repository at this point in the history
  • Loading branch information
kirillgarbar committed Jul 19, 2024
1 parent 1fd5fc1 commit 431a29f
Showing 1 changed file with 17 additions and 17 deletions.
34 changes: 17 additions & 17 deletions ch_backup/backup/layout.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

import os
from pathlib import Path
from typing import Any, Callable, List, Optional, Sequence
from typing import Callable, List, Optional, Sequence
from urllib.parse import quote

from ch_backup import logging
Expand Down Expand Up @@ -246,9 +246,8 @@ def get_udf_create_statement(
"""
Download user defined function create statement.
"""
remote_path = self._try_get_escaped_path(
_udf_data_path, backup_meta.path, filename
)
remote_path = _udf_data_path(backup_meta.path, filename, escape_names=False)
remote_path = self._get_escaped_if_exists(remote_path)
return self._storage_loader.download_data(remote_path, encryption=True)

def get_local_nc_create_statement(self, nc_name: str) -> Optional[str]:
Expand Down Expand Up @@ -421,13 +420,14 @@ def download_data_part(

os.makedirs(fs_part_path, exist_ok=True)

remote_dir_path = self._try_get_escaped_path(
_part_path,
remote_dir_path = _part_path(
part.link or backup_meta.path,
part.database,
part.table,
part.name,
escape_names=False,
)
remote_dir_path = self._get_escaped_if_exists(remote_dir_path)

if part.tarball:
remote_path = os.path.join(remote_dir_path, f"{part.name}.tar")
Expand Down Expand Up @@ -463,13 +463,14 @@ def check_data_part(self, backup_path: str, part: PartMetadata) -> bool:
Check availability of part data in storage.
"""
try:
remote_dir_path = self._try_get_escaped_path(
_part_path,
remote_dir_path = _part_path(
part.link or backup_path,
part.database,
part.table,
part.name,
escape_names=False,
)
remote_dir_path = self._get_escaped_if_exists(remote_dir_path)
remote_files = self._storage_loader.list_dir(remote_dir_path)

if remote_files == [f"{part.name}.tar"]:
Expand Down Expand Up @@ -553,13 +554,14 @@ def delete_data_parts(

deleting_files: List[str] = []
for part in parts:
part_path = self._try_get_escaped_path(
_part_path,
part_path = _part_path(
part.link or backup_meta.path,
part.database,
part.table,
part.name,
escape_names=False,
)
part_path = self._get_escaped_if_exists(part_path)
logging.debug("Deleting data part {}", part_path)
if part.tarball:
deleting_files.append(os.path.join(part_path, f"{part.name}.tar"))
Expand Down Expand Up @@ -612,16 +614,14 @@ def _target_part_size(self, part: PartMetadata) -> int:
tar_size, self._encryption_chunk_size, self._encryption_metadata_size
)

def _try_get_escaped_path(
self, path_function: Callable, *args: Any, **kwargs: Any
) -> str:
def _get_escaped_if_exists(self, unescaped_path: str) -> str:
"""
Return escaped path if it exists. Otherwise return regular path.
"""
path = path_function(*args, escape_names=True, **kwargs)
if self._storage_loader.path_exists(path, is_dir=True):
return path
return path_function(*args, escape_names=False, **kwargs)
escaped_path = _quote(unescaped_path)
if self._storage_loader.path_exists(escaped_path, is_dir=True):
return escaped_path
return unescaped_path


def _access_control_data_path(backup_path: str, file_name: str) -> str:
Expand Down

0 comments on commit 431a29f

Please sign in to comment.