moto/moto/dms/responses.py

68 lines
2.8 KiB
Python
Raw Normal View History

from moto.core.responses import BaseResponse
2022-12-18 20:16:46 -01:00
from .models import dms_backends, DatabaseMigrationServiceBackend
import json
class DatabaseMigrationServiceResponse(BaseResponse):
2022-12-18 20:16:46 -01:00
def __init__(self) -> None:
2022-08-13 09:49:43 +00:00
super().__init__(service_name="dms")
@property
2022-12-18 20:16:46 -01:00
def dms_backend(self) -> DatabaseMigrationServiceBackend:
2022-08-13 09:49:43 +00:00
return dms_backends[self.current_account][self.region]
2022-12-18 20:16:46 -01:00
def create_replication_task(self) -> str:
replication_task_identifier = self._get_param("ReplicationTaskIdentifier")
source_endpoint_arn = self._get_param("SourceEndpointArn")
target_endpoint_arn = self._get_param("TargetEndpointArn")
replication_instance_arn = self._get_param("ReplicationInstanceArn")
migration_type = self._get_param("MigrationType")
table_mappings = self._get_param("TableMappings")
replication_task_settings = self._get_param("ReplicationTaskSettings")
replication_task = self.dms_backend.create_replication_task(
replication_task_identifier=replication_task_identifier,
source_endpoint_arn=source_endpoint_arn,
target_endpoint_arn=target_endpoint_arn,
replication_instance_arn=replication_instance_arn,
migration_type=migration_type,
table_mappings=table_mappings,
replication_task_settings=replication_task_settings,
)
return json.dumps({"ReplicationTask": replication_task.to_dict()})
2022-12-18 20:16:46 -01:00
def start_replication_task(self) -> str:
replication_task_arn = self._get_param("ReplicationTaskArn")
replication_task = self.dms_backend.start_replication_task(
replication_task_arn=replication_task_arn
)
return json.dumps({"ReplicationTask": replication_task.to_dict()})
2022-12-18 20:16:46 -01:00
def stop_replication_task(self) -> str:
replication_task_arn = self._get_param("ReplicationTaskArn")
replication_task = self.dms_backend.stop_replication_task(
2022-03-10 13:39:59 -01:00
replication_task_arn=replication_task_arn
)
return json.dumps({"ReplicationTask": replication_task.to_dict()})
2022-12-18 20:16:46 -01:00
def delete_replication_task(self) -> str:
replication_task_arn = self._get_param("ReplicationTaskArn")
replication_task = self.dms_backend.delete_replication_task(
2022-03-10 13:39:59 -01:00
replication_task_arn=replication_task_arn
)
return json.dumps({"ReplicationTask": replication_task.to_dict()})
2022-12-18 20:16:46 -01:00
def describe_replication_tasks(self) -> str:
filters = self._get_list_prefix("Filters.member")
max_records = self._get_int_param("MaxRecords")
replication_tasks = self.dms_backend.describe_replication_tasks(
filters=filters, max_records=max_records
)
return json.dumps(
dict(ReplicationTasks=[t.to_dict() for t in replication_tasks])
)