/
50_disk_tryouts.rb
117 lines (94 loc) · 2.88 KB
/
50_disk_tryouts.rb
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
group "Metadata"
library :rudy, 'lib'
tryout "Disk API" do
set :test_domain, Rudy::DEFAULT_DOMAIN #'test_' << Rudy::Utils.strand(4)
set :test_env, 'stage' #'env_' << Rudy::Utils.strand(4)
setup do
#Rudy.enable_debug
Rudy::Huxtable.global.offline = true
Rudy::Huxtable.update_config # Read config files
global = Rudy::Huxtable.global
global.environment = test_env
akey, skey, region = global.accesskey, global.secretkey, global.region
Rudy::Metadata.connect akey, skey, region
Rudy::AWS::EC2.connect akey, skey, region
end
clean do
if Rudy.debug?
puts $/, "Rudy Debugging:"
Rudy::Huxtable.logger.rewind
puts Rudy::Huxtable.logger.read unless Rudy::Huxtable.logger.closed_read?
end
end
xdrill "can create test domain", test_domain do
Rudy::Metadata.create_domain test_domain
end
dream :class, Rudy::Disk
dream :name do
tmp = [Rudy::Huxtable.global.zone, Rudy::Huxtable.global.environment]
tmp += [Rudy::Huxtable.global.role, '01']
# disk-us-east-1b-env_xxxxxx-app-01-rudy-disk
['disk', tmp].join(Rudy::DELIM)
end
drill "can create disk object for root path" do
Rudy::Disk.new('/')
end
dream :name do
tmp = [Rudy::Huxtable.global.zone, Rudy::Huxtable.global.environment]
tmp += [Rudy::Huxtable.global.role, '01']
# disk-us-east-1b-env_xxxxxx-app-01-any-path
['disk', tmp, 'any', 'path'].join(Rudy::DELIM)
end
drill "can create disk object for an arbitrary path" do
Rudy::Disk.new('/any/path')
end
dream :size, 1
dream :device, '/dev/sdh'
dream :path, '/'
drill "has a default size and device" do
Rudy::Disk.new('/')
end
dream :path, '/anything'
dream :position, '09'
drill "can specify a position" do
Rudy::Disk.new '09', '/anything'
end
drill "save disk metadata", true do
ret = Rudy::Disk.new('/any/path').save
sleep 1 # eventual consistency
ret
end
drill "knows when an object exists", true do
Rudy::Disk.new('/any/path').exists?
end
drill "knows when an object doesn't exist", false do
Rudy::Disk.new('/no/such/disk').exists?
end
dream :exception, Rudy::Metadata::DuplicateRecord
drill "won't save over a disk with the same name" do
Rudy::Disk.new('/any/path').save
end
drill "will save over a disk with the same name if forced", true do
Rudy::Disk.new('/any/path').save(:replace)
end
dream :class, Rudy::Disk
drill "get disk metadata" do
Rudy::Disks.get '/any/path'
end
dream :class, Rudy::Disk
dream :mounted, false
drill "refresh disk metadata" do
d = Rudy::Disk.new('/any/path')
d.mounted = true
d.refresh!
d
end
dream true
drill "destroy disk metadata" do
d = Rudy::Disk.new('/any/path')
d.destroy
end
xdrill "destroy a domain (#{test_domain})" do
Rudy::Metadata.destroy_domain test_domain
end
end