Class: Torpedo::Volume::Volumes

Inherits:
Test::Unit::TestCase
  • Object
show all
Defined in:
lib/torpedo/volume/volumes.rb

Constant Summary collapse

@@volumes =
[]
@@volume =

ref to last created volume

nil
@@volsize =
1
@@volname =
"torpedo"
@@voldesc =
"T0rp3d@! F1r3$"
@@snapshot_id =
nil

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.volumeObject

public access to the volume ref



18
19
20
# File 'lib/torpedo/volume/volumes.rb', line 18

def self.volume
  @@volume
end

Instance Method Details

#check_volume(volume, check_status = "available") ⇒ Object



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
# File 'lib/torpedo/volume/volumes.rb', line 32

def check_volume(volume, check_status="available")

  volume = @conn.volumes.get(volume.id)
  assert_equal(@@volsize, volume.size)
  assert_equal(@@volname, volume.display_name)
  assert_equal(@@voldesc, volume.display_description)
  assert_equal(1, volume.size)

  begin
    timeout(VOLUME_BUILD_TIMEOUT) do
      until volume.status == check_status do
        if volume.status == "error" then
          fail('Volume ERROR status detected!')
        end
        volume = @conn.volumes.get(volume.id)
        sleep 1
      end
    end
  rescue Timeout::Error => te
    fail('Timeout creating volume.')
  end

  volume

end

#create_volume(options) ⇒ Object



26
27
28
29
30
# File 'lib/torpedo/volume/volumes.rb', line 26

def create_volume(options)
  @@volume = @conn.volumes.create(options)
  @@volumes << @@volume
  @@volume
end

#setupObject



22
23
24
# File 'lib/torpedo/volume/volumes.rb', line 22

def setup
  @conn=Helper::get_connection
end

#test_001_create_volumeObject



58
59
60
61
62
63
64
# File 'lib/torpedo/volume/volumes.rb', line 58

def test_001_create_volume
  options = {:display_name => @@volname, :display_description => @@voldesc, :size => @@volsize}
  volume = create_volume(options)

  check_volume(volume)

end

#test_002_create_volume_snapshotObject



66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
# File 'lib/torpedo/volume/volumes.rb', line 66

def test_002_create_volume_snapshot

  snapshot = @conn.create_volume_snapshot(@@volume.id, "#{@@volname} snap", "#{@@voldesc} snap", true).body['snapshot']
  assert_not_nil(snapshot['id'])
  @@snapshot_id = snapshot['id']
  assert_equal(@@volume.id, snapshot['volume_id'])

  begin
    timeout(VOLUME_BUILD_TIMEOUT) do
      until snapshot['status'] == 'available' do
        if snapshot['status'] == "error" then
          fail('Volume snapshot ERROR status detected!')
        end
        snapshot = @conn.get_snapshot_details(snapshot['id']).body['snapshot']
        sleep 1
      end
    end
  rescue Timeout::Error => te
    fail('Timeout creating snapshot.')
  end

end

#test_003_del_volume_snapshotObject



89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
# File 'lib/torpedo/volume/volumes.rb', line 89

def test_003_del_volume_snapshot

  assert(@conn.delete_snapshot(@@snapshot_id))

  begin
    snapcount = 1
    timeout(60) do
      until snapcount == 0 do
        snapcount = 0
        @conn.list_snapshots.body['snapshots'].each do |snap|
          if snap['name'] == "#{@@volname} snap" then
            snapcount += 1
            sleep 1
          end
        end
      end
    end
  rescue Timeout::Error => te
    fail('Timeout waiting for snapshot to be deleted.')
  end

end