File: spot_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 (55 lines) | stat: -rw-r--r-- 2,154 bytes parent folder | download | duplicates (5)
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
Shindo.tests('Fog::Compute[:aws] | spot instance requests', ['aws']) do

  @spot_instance_requests_format = {
    'spotInstanceRequestSet' => [{
      'createTime'                => Time,
      'instanceId'                => Fog::Nullable::String,
      'launchedAvailabilityZone'  => Fog::Nullable::String,
      'launchSpecification'       => {
        'blockDeviceMapping'  => [],
        'groupSet'            => [String],
        'keyName'             => Fog::Nullable::String,
        'imageId'             => String,
        'instanceType'        => String,
        'monitoring'          => Fog::Boolean,
        'ebsOptimized'        => Fog::Boolean,
        'subnetId'            => Fog::Nullable::String,
        'iamInstanceProfile'  => Fog::Nullable::Hash,
      },
      'productDescription'        => String,
      'spotInstanceRequestId'     => String,
      'spotPrice'                 => Float,
      'state'                     => String,
      'type'                      => String,
      'fault'                     => Fog::Nullable::Hash,
    }],
    'requestId' => String
  }

  @cancel_spot_instance_request_format = {
    'spotInstanceRequestSet' => [{
      'spotInstanceRequestId' => String,
      'state'                 => String
    }],
    'requestId' => String
  }

  tests('success') do

    tests("#request_spot_instances('ami-3202f25b', 't1.micro', '0.001')").formats(@spot_instance_requests_format) do
      data = Fog::Compute[:aws].request_spot_instances('ami-3202f25b', 't1.micro', '0.001',{'LaunchSpecification.EbsOptimized' => false}).body
      @spot_instance_request_id = data['spotInstanceRequestSet'].first['spotInstanceRequestId']
      data
    end

    tests("#describe_spot_instance_requests").formats(@spot_instance_requests_format) do
      data = Fog::Compute[:aws].describe_spot_instance_requests('spot-instance-request-id' => [@spot_instance_request_id]).body
    end

    tests("#cancel_spot_instance_requests('#{@spot_instance_request_id}')").formats(@cancel_spot_instance_request_format) do
      Fog::Compute[:aws].cancel_spot_instance_requests(@spot_instance_request_id).body
    end

  end

end