File: container_instance_tests.rb

package info (click to toggle)
ruby-fog-aws 3.33.1-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 8,180 kB
  • sloc: ruby: 75,405; javascript: 14; makefile: 9; sh: 4
file content (119 lines) | stat: -rw-r--r-- 4,501 bytes parent folder | download | duplicates (6)
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