def test_should_retrigger_lambda_after_starting_draining(): operations = get_draining_operations( get_lambda_event(), "clusterName", "arn:aws:ecs:us-east-1:12345:container-instance/" "71d70fc9-3235-4490-a475-cfbbfeb1f4e3", "ACTIVE", 1) assert 2 == len(operations) assert isinstance(operations[1], RetriggerLambdaOperation) assert operations[ 1].queue_name == "ecs-asg-drain-container-instances-lambda-events-queue-dev" assert operations[1].lambda_event == get_lambda_event( )["Records"][0]["body"]
def test_should_start_instance_draining_when_instance_in_not_in_draining_state( ): operations = get_draining_operations( get_lambda_event(), "clusterName", "arn:aws:ecs:us-east-1:12345:container-instance/" "71d70fc9-3235-4490-a475-cfbbfeb1f4e3", "ACTIVE", 1) assert 2 == len(operations) assert isinstance(operations[0], InstanceDrainingOperation) assert operations[0].cluster_name == "clusterName" assert operations[ 0].container_instance_id == "71d70fc9-3235-4490-a475-cfbbfeb1f4e3"
def test_should_retrigger_lambda_when_instance_in_draining_but_has_running_tasks( ): operations = get_draining_operations( get_lambda_event(), "clusterName", "arn:aws:ecs:us-east-1:12345:container-instance/" "71d70fc9-3235-4490-a475-cfbbfeb1f4e3", "DRAINING", 1) assert 1 == len(operations) assert isinstance(operations[0], RetriggerLambdaOperation) assert operations[ 0].queue_name == "ecs-asg-drain-container-instances-lambda-events-queue-dev" assert operations[0].lambda_event == get_lambda_event( )["Records"][0]["body"]
def test_should_terminate_instance_when_instance_is_drained(): operations = get_draining_operations( get_lambda_event(), "clusterName", "arn:aws:ecs:us-east-1:12345:container-instance/" "71d70fc9-3235-4490-a475-cfbbfeb1f4e3", "DRAINING", 0) assert 1 == len(operations) assert isinstance(operations[0], TerminateInstanceOperation) assert operations[0].complete_lifecyle_request == { "AutoScalingGroupName": "ecs-cluster-asg", "LifecycleActionResult": "CONTINUE", "LifecycleActionToken": "ac194dfe-b074-4f1c-937b-0002ae8177e3", "LifecycleHookName": "asg-drain-before-terminate-hook-dev", "InstanceId": "i-0d431729225fba8ce" }
def test_should_perform_some_operations_when_instance_exists(): assert 0 != len( get_draining_operations(get_lambda_event(), None, "Container/ArnExists", None, 1))
def test_should_do_nothing_when_instance_does_not_exists(): assert 0 == len( get_draining_operations(get_lambda_event(), None, None, None, 1))