Island: Rename FileSystemStorage to LocalStorageFileRepository

This commit is contained in:
vakarisz 2022-05-31 15:57:38 +03:00
parent 6c1fa80f42
commit 7caba8e399
5 changed files with 20 additions and 18 deletions

View File

@ -1,2 +1,2 @@
from .file_storage.file_system_storage import FileSystemStorage from .file_storage.local_storage_file_repository import LocalStorageFileRepository
from .file_storage.i_file_repository import IFileRepository, FileRetrievalError from .file_storage.i_file_repository import IFileRepository, FileRetrievalError

View File

@ -11,7 +11,7 @@ from .i_file_repository import FileRetrievalError, IFileRepository
logger = logging.getLogger(__name__) logger = logging.getLogger(__name__)
class FileSystemStorage(IFileRepository): class LocalStorageFileRepository(IFileRepository):
""" """
A implementation of IFileStorageService that reads and writes files from/to the local A implementation of IFileStorageService that reads and writes files from/to the local
filesystem. filesystem.

View File

@ -2,7 +2,7 @@ from pathlib import Path
from common import DIContainer from common import DIContainer
from common.aws import AWSInstance from common.aws import AWSInstance
from monkey_island.cc.repository import FileSystemStorage, IFileRepository from monkey_island.cc.repository import IFileRepository, LocalStorageFileRepository
from monkey_island.cc.services import AWSService from monkey_island.cc.services import AWSService
from monkey_island.cc.services.post_breach_files import PostBreachFilesService from monkey_island.cc.services.post_breach_files import PostBreachFilesService
from monkey_island.cc.services.run_local_monkey import LocalMonkeyRunService from monkey_island.cc.services.run_local_monkey import LocalMonkeyRunService
@ -15,7 +15,9 @@ def initialize_services(data_dir: Path) -> DIContainer:
container = DIContainer() container = DIContainer()
container.register_instance(AWSInstance, AWSInstance()) container.register_instance(AWSInstance, AWSInstance())
container.register_instance(IFileRepository, FileSystemStorage(data_dir / "custom_pbas")) container.register_instance(
IFileRepository, LocalStorageFileRepository(data_dir / "custom_pbas")
)
container.register_instance(AWSService, container.resolve(AWSService)) container.register_instance(AWSService, container.resolve(AWSService))
# This is temporary until we get DI all worked out. # This is temporary until we get DI all worked out.

View File

@ -4,7 +4,7 @@ from pathlib import Path
import pytest import pytest
from tests.monkey_island.utils import assert_linux_permissions, assert_windows_permissions from tests.monkey_island.utils import assert_linux_permissions, assert_windows_permissions
from monkey_island.cc.repository import FileRetrievalError, FileSystemStorage from monkey_island.cc.repository import FileRetrievalError, LocalStorageFileRepository
from monkey_island.cc.server_utils.file_utils import is_windows_os from monkey_island.cc.server_utils.file_utils import is_windows_os
@ -13,13 +13,13 @@ def test_error_if_storage_directory_is_file(tmp_path):
new_file.write_text("HelloWorld!") new_file.write_text("HelloWorld!")
with pytest.raises(ValueError): with pytest.raises(ValueError):
FileSystemStorage(new_file) LocalStorageFileRepository(new_file)
def test_directory_created(tmp_path): def test_directory_created(tmp_path):
new_dir = tmp_path / "new_dir" new_dir = tmp_path / "new_dir"
FileSystemStorage(new_dir) LocalStorageFileRepository(new_dir)
assert new_dir.exists() and new_dir.is_dir() assert new_dir.exists() and new_dir.is_dir()
@ -28,7 +28,7 @@ def test_directory_created(tmp_path):
def test_directory_permissions__linux(tmp_path): def test_directory_permissions__linux(tmp_path):
new_dir = tmp_path / "new_dir" new_dir = tmp_path / "new_dir"
FileSystemStorage(new_dir) LocalStorageFileRepository(new_dir)
assert_linux_permissions(new_dir) assert_linux_permissions(new_dir)
@ -37,7 +37,7 @@ def test_directory_permissions__linux(tmp_path):
def test_directory_permissions__windows(tmp_path): def test_directory_permissions__windows(tmp_path):
new_dir = tmp_path / "new_dir" new_dir = tmp_path / "new_dir"
FileSystemStorage(new_dir) LocalStorageFileRepository(new_dir)
assert_windows_permissions(new_dir) assert_windows_permissions(new_dir)
@ -47,7 +47,7 @@ def save_file(tmp_path, file_path_prefix=""):
file_contents = "Hello World!" file_contents = "Hello World!"
expected_file_path = tmp_path / file_name expected_file_path = tmp_path / file_name
fss = FileSystemStorage(tmp_path) fss = LocalStorageFileRepository(tmp_path)
fss.save_file(Path(file_path_prefix) / file_name, io.BytesIO(file_contents.encode())) fss.save_file(Path(file_path_prefix) / file_name, io.BytesIO(file_contents.encode()))
assert expected_file_path.is_file() assert expected_file_path.is_file()
@ -60,7 +60,7 @@ def delete_file(tmp_path, file_path_prefix=""):
file.touch() file.touch()
assert file.is_file() assert file.is_file()
fss = FileSystemStorage(tmp_path) fss = LocalStorageFileRepository(tmp_path)
fss.delete_file(Path(file_path_prefix) / file_name) fss.delete_file(Path(file_path_prefix) / file_name)
assert not file.exists() assert not file.exists()
@ -72,7 +72,7 @@ def open_file(tmp_path, file_path_prefix=""):
expected_file_path = tmp_path / file_name expected_file_path = tmp_path / file_name
expected_file_path.write_text(expected_file_contents) expected_file_path.write_text(expected_file_contents)
fss = FileSystemStorage(tmp_path) fss = LocalStorageFileRepository(tmp_path)
with fss.open_file(Path(file_path_prefix) / file_name) as f: with fss.open_file(Path(file_path_prefix) / file_name) as f:
actual_file_contents = f.read() actual_file_contents = f.read()
@ -101,7 +101,7 @@ def test_remove_all_files(tmp_path):
for filename in ["1.txt", "2.txt", "3.txt"]: for filename in ["1.txt", "2.txt", "3.txt"]:
(tmp_path / filename).touch() (tmp_path / filename).touch()
fss = FileSystemStorage(tmp_path) fss = LocalStorageFileRepository(tmp_path)
fss.delete_all_files() fss.delete_all_files()
for file in tmp_path.iterdir(): for file in tmp_path.iterdir():
@ -114,7 +114,7 @@ def test_remove_all_files__skip_directories(tmp_path):
for filename in ["1.txt", "2.txt", "3.txt"]: for filename in ["1.txt", "2.txt", "3.txt"]:
(tmp_path / filename).touch() (tmp_path / filename).touch()
fss = FileSystemStorage(tmp_path) fss = LocalStorageFileRepository(tmp_path)
fss.delete_all_files() fss.delete_all_files()
for file in tmp_path.iterdir(): for file in tmp_path.iterdir():
@ -122,14 +122,14 @@ def test_remove_all_files__skip_directories(tmp_path):
def test_remove_nonexistant_file(tmp_path): def test_remove_nonexistant_file(tmp_path):
fss = FileSystemStorage(tmp_path) fss = LocalStorageFileRepository(tmp_path)
# This test will fail if this call raises an exception. # This test will fail if this call raises an exception.
fss.delete_file("nonexistant_file.txt") fss.delete_file("nonexistant_file.txt")
def test_open_nonexistant_file(tmp_path): def test_open_nonexistant_file(tmp_path):
fss = FileSystemStorage(tmp_path) fss = LocalStorageFileRepository(tmp_path)
with pytest.raises(FileRetrievalError): with pytest.raises(FileRetrievalError):
fss.open_file("nonexistant_file.txt") fss.open_file("nonexistant_file.txt")

View File

@ -4,13 +4,13 @@ import os
import pytest import pytest
from tests.utils import raise_ from tests.utils import raise_
from monkey_island.cc.repository import FileSystemStorage from monkey_island.cc.repository import LocalStorageFileRepository
from monkey_island.cc.services.post_breach_files import PostBreachFilesService from monkey_island.cc.services.post_breach_files import PostBreachFilesService
@pytest.fixture @pytest.fixture
def file_storage_service(tmp_path): def file_storage_service(tmp_path):
return FileSystemStorage(tmp_path) return LocalStorageFileRepository(tmp_path)
@pytest.fixture(autouse=True) @pytest.fixture(autouse=True)