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