1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119
|
Shindo.tests('AWS::ECS | container instance requests', ['aws', 'ecs']) do
Fog::AWS[:ecs].reset_data
container_instance_arn = 'arn:aws:ecs:us-west-2:738152598183:container-instance/eff1068d-5fcb-4804-89f0-7d18ffc6879c'
ec2_instance_id = 'i-58f4b4ae'
Fog::AWS[:ecs].data[:container_instances] << {
'remainingResources' => [
{
'longValue' => 0,
'name' => 'CPU',
'integerValue' => 1004,
'doubleValue' => 0.0,
'type' => 'INTEGER'
},
{
'longValue' => 0,
'name' => 'MEMORY',
'integerValue' => 496,
'doubleValue' => 0.0,
'type' => 'INTEGER'
},
{
'stringSetValue' => [2376, 22, 80, 51678, 2375],
'longValue' => 0,
'name' => 'PORTS',
'integerValue' => 0,
'doubleValue' => 0.0,
'type' => 'STRINGSET'
}
],
'agentConnected' => true,
'runningTasksCount' => 1,
'status' => 'ACTIVE',
'registeredResources' => [
{
'longValue' => 0,
'name' => 'CPU',
'integerValue' => 1024,
'doubleValue' => 0.0,
'type' => 'INTEGER'
},
{
'longValue' => 0,
'name' => 'MEMORY',
'integerValue' => 996,
'doubleValue' => 0.0,
'type' => 'INTEGER'
},
{
'stringSetValue' => [2376, 22, 80, 51678, 2375],
'longValue' => 0,
'name' => 'PORTS',
'integerValue' => 0,
'doubleValue' => 0.0,
'type' => 'STRINGSET'
}
],
'containerInstanceArn' => container_instance_arn,
'pendingTasksCount' => 0,
'ec2InstanceId' => ec2_instance_id
}
tests('success') do
tests("#list_container_instances").formats(AWS::ECS::Formats::LIST_CONTAINER_INSTANCES) do
result = Fog::AWS[:ecs].list_container_instances.body
list_instances_arns = result['ListContainerInstancesResult']['containerInstanceArns']
returns(false) { list_instances_arns.empty? }
returns(true) { list_instances_arns.first.eql?(container_instance_arn) }
result
end
tests("#describe_container_instances").formats(AWS::ECS::Formats::DESCRIBE_CONTAINER_INSTANCES) do
result = Fog::AWS[:ecs].describe_container_instances('containerInstances' => container_instance_arn).body
instance = result['DescribeContainerInstancesResult']['containerInstances'].first
returns(true) { instance['containerInstanceArn'].eql?(container_instance_arn) }
returns(true) { instance['ec2InstanceId'].eql?(ec2_instance_id) }
returns(true) { instance['status'].eql?('ACTIVE') }
result
end
tests("#deregister_container_instance").formats(AWS::ECS::Formats::DEREGISTER_CONTAINER_INSTANCE) do
result = Fog::AWS[:ecs].deregister_container_instance('containerInstance' => container_instance_arn).body
instance = result['DeregisterContainerInstanceResult']['containerInstance']
returns(true) { instance['containerInstanceArn'].eql?(container_instance_arn) }
returns(true) { instance['ec2InstanceId'].eql?(ec2_instance_id) }
returns(true) { instance['pendingTasksCount'].eql?(0) }
result
end
tests("#list_container_instances again").formats(AWS::ECS::Formats::LIST_CONTAINER_INSTANCES) do
result = Fog::AWS[:ecs].list_container_instances.body
list_instances_arns = result['ListContainerInstancesResult']['containerInstanceArns']
returns(true) { list_instances_arns.empty? }
result
end
end
tests('failures') do
tests('#describe_container_instances without params').raises(Fog::AWS::ECS::Error) do
response = Fog::AWS[:ecs].describe_container_instances.body
end
tests('#deregister_container_instance without params').raises(Fog::AWS::ECS::Error) do
response = Fog::AWS[:ecs].deregister_container_instance.body
end
tests('#deregister_container_instance nonexistent').raises(Fog::AWS::ECS::Error) do
instance_uuid = 'ffffffff-ffff-0000-ffff-deadbeefff'
response = Fog::AWS[:ecs].deregister_container_instance('containerInstance' => instance_uuid).body
end
end
end
|