Island: Construct and register AWSService in the composition root

This commit is contained in:
Mike Salvatore 2022-05-09 10:25:13 -04:00
parent a0660f12e9
commit 2da6e023e1
1 changed files with 4 additions and 6 deletions

View File

@ -1,9 +1,8 @@
from pathlib import Path
from threading import Thread
from common import DIContainer
from common.aws import AWSInstance
from monkey_island.cc.services import DirectoryFileStorageService, IFileStorageService, aws_service
from monkey_island.cc.services import AWSService, DirectoryFileStorageService, IFileStorageService
from monkey_island.cc.services.post_breach_files import PostBreachFilesService
from monkey_island.cc.services.run_local_monkey import LocalMonkeyRunService
@ -12,13 +11,12 @@ from . import AuthenticationService, JsonFileUserDatastore
def initialize_services(data_dir: Path) -> DIContainer:
container = DIContainer()
container.register_instance(AWSInstance, AWSInstance())
container.register_instance(
IFileStorageService, DirectoryFileStorageService(data_dir / "custom_pbas")
)
container.register_instance(AWSInstance, AWSInstance())
# Takes a while so it's best to start it in the background
Thread(target=aws_service.initialize, name="AwsService initialization", daemon=True).start()
container.register_instance(AWSService, container.resolve(AWSService))
# This is temporary until we get DI all worked out.
PostBreachFilesService.initialize(container.resolve(IFileStorageService))