ruby-libvirt 0.4.0 → 0.5.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/NEWS +10 -0
- data/README +188 -21
- data/Rakefile +11 -7
- data/ext/libvirt/_libvirt.c +252 -234
- data/ext/libvirt/common.c +346 -71
- data/ext/libvirt/common.h +171 -111
- data/ext/libvirt/connect.c +1851 -798
- data/ext/libvirt/connect.h +6 -5
- data/ext/libvirt/domain.c +3903 -1060
- data/ext/libvirt/domain.h +5 -3
- data/ext/libvirt/extconf.rb +275 -41
- data/ext/libvirt/interface.c +60 -41
- data/ext/libvirt/interface.h +3 -1
- data/ext/libvirt/network.c +291 -72
- data/ext/libvirt/network.h +3 -2
- data/ext/libvirt/nodedevice.c +138 -59
- data/ext/libvirt/nodedevice.h +3 -1
- data/ext/libvirt/nwfilter.c +39 -34
- data/ext/libvirt/nwfilter.h +3 -1
- data/ext/libvirt/secret.c +122 -64
- data/ext/libvirt/secret.h +3 -1
- data/ext/libvirt/storage.c +451 -233
- data/ext/libvirt/storage.h +1 -1
- data/ext/libvirt/stream.c +120 -122
- data/ext/libvirt/stream.h +4 -2
- data/tests/test_conn.rb +214 -67
- data/tests/test_domain.rb +553 -209
- data/tests/test_interface.rb +4 -10
- data/tests/test_network.rb +21 -12
- data/tests/test_nodedevice.rb +11 -1
- data/tests/test_nwfilter.rb +4 -0
- data/tests/test_open.rb +59 -6
- data/tests/test_secret.rb +25 -0
- data/tests/test_storage.rb +132 -28
- data/tests/test_stream.rb +171 -0
- data/tests/test_utils.rb +86 -15
- metadata +43 -66
data/tests/test_interface.rb
CHANGED
@@ -7,15 +7,7 @@ $: << File.dirname(__FILE__)
|
|
7
7
|
require 'libvirt'
|
8
8
|
require 'test_utils.rb'
|
9
9
|
|
10
|
-
|
11
|
-
conn.list_interfaces.each do |ifname|
|
12
|
-
iface = conn.lookup_interface_by_name(ifname)
|
13
|
-
if iface.mac == "00:00:00:00:00:00"
|
14
|
-
next
|
15
|
-
end
|
16
|
-
return iface
|
17
|
-
end
|
18
|
-
end
|
10
|
+
set_test_object("interface")
|
19
11
|
|
20
12
|
conn = Libvirt::open("qemu:///system")
|
21
13
|
|
@@ -83,7 +75,7 @@ testiface = find_valid_iface(conn)
|
|
83
75
|
if not testiface.nil?
|
84
76
|
expect_too_many_args(testiface, "mac", 1)
|
85
77
|
|
86
|
-
expect_success(testiface, "no args", "mac")
|
78
|
+
expect_success(testiface, "no args", "mac")
|
87
79
|
end
|
88
80
|
|
89
81
|
# TESTGROUP: iface.xml_desc
|
@@ -101,6 +93,8 @@ expect_too_many_args(newiface, "free", 1)
|
|
101
93
|
|
102
94
|
expect_success(newiface, "no args", "free")
|
103
95
|
|
96
|
+
# END TESTS
|
97
|
+
|
104
98
|
conn.close
|
105
99
|
|
106
100
|
finish_tests
|
data/tests/test_network.rb
CHANGED
@@ -7,16 +7,11 @@ $: << File.dirname(__FILE__)
|
|
7
7
|
require 'libvirt'
|
8
8
|
require 'test_utils.rb'
|
9
9
|
|
10
|
+
set_test_object("network")
|
11
|
+
|
10
12
|
conn = Libvirt::open("qemu:///system")
|
11
13
|
|
12
|
-
|
13
|
-
begin
|
14
|
-
oldnet = conn.lookup_network_by_name("ruby-libvirt-tester")
|
15
|
-
oldnet.destroy
|
16
|
-
oldnet.undefine
|
17
|
-
rescue
|
18
|
-
# in case we didn't find it, don't do anything
|
19
|
-
end
|
14
|
+
cleanup_test_network(conn)
|
20
15
|
|
21
16
|
# TESTGROUP: net.undefine
|
22
17
|
newnet = conn.define_network_xml($new_net_xml)
|
@@ -37,6 +32,19 @@ expect_fail(newnet, Libvirt::Error, "on already running network", "create")
|
|
37
32
|
newnet.destroy
|
38
33
|
newnet.undefine
|
39
34
|
|
35
|
+
# TESTGROUP: net.update
|
36
|
+
newnet = conn.create_network_xml($new_net_xml)
|
37
|
+
|
38
|
+
expect_too_few_args(newnet, "update", 1)
|
39
|
+
|
40
|
+
command = Libvirt::Network::NETWORK_UPDATE_COMMAND_ADD_LAST
|
41
|
+
section = Libvirt::Network::NETWORK_SECTION_IP_DHCP_HOST
|
42
|
+
flags = Libvirt::Network::NETWORK_UPDATE_AFFECT_CURRENT
|
43
|
+
expect_success(newnet, "dhcp ip", "update",
|
44
|
+
command, section, -1, $new_network_dhcp_ip, flags)
|
45
|
+
|
46
|
+
newnet.destroy
|
47
|
+
|
40
48
|
# TESTGROUP: net.destroy
|
41
49
|
newnet = conn.create_network_xml($new_net_xml)
|
42
50
|
|
@@ -104,16 +112,16 @@ expect_invalid_arg_type(newnet, "autostart=", 1234)
|
|
104
112
|
|
105
113
|
expect_success(newnet, "boolean arg", "autostart=", true)
|
106
114
|
if not newnet.autostart?
|
107
|
-
puts_fail "
|
115
|
+
puts_fail "network.autostart= did not set autostart to true"
|
108
116
|
else
|
109
|
-
puts_ok "
|
117
|
+
puts_ok "network.autostart= set autostart to true"
|
110
118
|
end
|
111
119
|
|
112
120
|
expect_success(newnet, "boolean arg", "autostart=", false)
|
113
121
|
if newnet.autostart?
|
114
|
-
puts_fail "
|
122
|
+
puts_fail "network.autostart= did not set autostart to false"
|
115
123
|
else
|
116
|
-
puts_ok "
|
124
|
+
puts_ok "network.autostart= set autostart to false"
|
117
125
|
end
|
118
126
|
|
119
127
|
newnet.undefine
|
@@ -160,6 +168,7 @@ expect_success(newnet, "no args", "persistent?") {|x| x == true}
|
|
160
168
|
|
161
169
|
newnet.undefine
|
162
170
|
|
171
|
+
# END TESTS
|
163
172
|
|
164
173
|
conn.close
|
165
174
|
|
data/tests/test_nodedevice.rb
CHANGED
@@ -7,6 +7,8 @@ $: << File.dirname(__FILE__)
|
|
7
7
|
require 'libvirt'
|
8
8
|
require 'test_utils.rb'
|
9
9
|
|
10
|
+
set_test_object("nodedevice")
|
11
|
+
|
10
12
|
conn = Libvirt::open("qemu:///system")
|
11
13
|
|
12
14
|
# TESTGROUP: nodedevice.name
|
@@ -43,7 +45,13 @@ expect_success(testnode, "no args", "xml_desc")
|
|
43
45
|
# TESTGROUP: nodedevice.detach
|
44
46
|
testnode = conn.lookup_nodedevice_by_name(conn.list_nodedevices[0])
|
45
47
|
|
46
|
-
expect_too_many_args(testnode, "detach", 1)
|
48
|
+
expect_too_many_args(testnode, "detach", 1, 2, 3)
|
49
|
+
expect_invalid_arg_type(testnode, "detach", 1)
|
50
|
+
expect_invalid_arg_type(testnode, "detach", [])
|
51
|
+
expect_invalid_arg_type(testnode, "detach", {})
|
52
|
+
expect_invalid_arg_type(testnode, "detach", nil, 'foo')
|
53
|
+
expect_invalid_arg_type(testnode, "detach", nil, [])
|
54
|
+
expect_invalid_arg_type(testnode, "detach", nil, {})
|
47
55
|
|
48
56
|
#expect_success(testnode, "no args", "detach")
|
49
57
|
|
@@ -75,6 +83,8 @@ expect_too_many_args(testnode, "free", 1)
|
|
75
83
|
|
76
84
|
expect_success(testnode, "no args", "free")
|
77
85
|
|
86
|
+
# END TESTS
|
87
|
+
|
78
88
|
conn.close
|
79
89
|
|
80
90
|
finish_tests
|
data/tests/test_nwfilter.rb
CHANGED
@@ -7,6 +7,8 @@ $: << File.dirname(__FILE__)
|
|
7
7
|
require 'libvirt'
|
8
8
|
require 'test_utils.rb'
|
9
9
|
|
10
|
+
set_test_object("nwfilter")
|
11
|
+
|
10
12
|
conn = Libvirt::open("qemu:///system")
|
11
13
|
|
12
14
|
# TESTGROUP: nwfilter.undefine
|
@@ -51,6 +53,8 @@ expect_too_many_args(newnw, "free", 1)
|
|
51
53
|
|
52
54
|
expect_success(newnw, "no args", "free")
|
53
55
|
|
56
|
+
# END TESTS
|
57
|
+
|
54
58
|
conn.close
|
55
59
|
|
56
60
|
finish_tests
|
data/tests/test_open.rb
CHANGED
@@ -7,6 +7,8 @@ $: << File.dirname(__FILE__)
|
|
7
7
|
require 'libvirt'
|
8
8
|
require 'test_utils.rb'
|
9
9
|
|
10
|
+
set_test_object("Libvirt")
|
11
|
+
|
10
12
|
def expect_connect_error(func, args)
|
11
13
|
expect_fail(Libvirt, Libvirt::ConnectionError, "invalid driver", func, *args)
|
12
14
|
end
|
@@ -59,6 +61,36 @@ conn.close
|
|
59
61
|
conn = expect_success(Libvirt, "uri, full cred, and user args", "open_auth", "qemu:///system", [Libvirt::CRED_AUTHNAME, Libvirt::CRED_PASSPHRASE], "hello") {|x| x.class == Libvirt::Connect }
|
60
62
|
conn.close
|
61
63
|
|
64
|
+
# equivalent to expect_invalid_arg_type
|
65
|
+
begin
|
66
|
+
conn = Libvirt::open_auth("qemu:///system", {}) do |cred|
|
67
|
+
end
|
68
|
+
rescue TypeError => e
|
69
|
+
puts_ok "#{$test_object}.open_auth invalid arg type threw #{TypeError.to_s}"
|
70
|
+
else
|
71
|
+
puts_fail "#{$test_object}.open_auth invalid arg type expected to throw #{TypeError.to_s}, but threw nothing"
|
72
|
+
end
|
73
|
+
|
74
|
+
# equivalent to expect_invalid_arg_type
|
75
|
+
begin
|
76
|
+
conn = Libvirt::open_auth("qemu:///system", 1) do |cred|
|
77
|
+
end
|
78
|
+
rescue TypeError => e
|
79
|
+
puts_ok "#{$test_object}.open_auth invalid arg type threw #{TypeError.to_s}"
|
80
|
+
else
|
81
|
+
puts_fail "#{$test_object}.open_auth invalid arg type expected to throw #{TypeError.to_s}, but threw nothing"
|
82
|
+
end
|
83
|
+
|
84
|
+
# equivalent to expect_invalid_arg_type
|
85
|
+
begin
|
86
|
+
conn = Libvirt::open_auth("qemu:///system", 'foo') do |cred|
|
87
|
+
end
|
88
|
+
rescue TypeError => e
|
89
|
+
puts_ok "#{$test_object}.open_auth invalid arg type threw #{TypeError.to_s}"
|
90
|
+
else
|
91
|
+
puts_fail "#{$test_object}.open_auth invalid arg type expected to throw #{TypeError.to_s}, but threw nothing"
|
92
|
+
end
|
93
|
+
|
62
94
|
# equivalent to "expect_success"
|
63
95
|
begin
|
64
96
|
conn = Libvirt::open_auth("qemu:///system", [Libvirt::CRED_AUTHNAME, Libvirt::CRED_PASSPHRASE], "hello") do |cred|
|
@@ -80,12 +112,25 @@ begin
|
|
80
112
|
res
|
81
113
|
end
|
82
114
|
|
83
|
-
puts_ok "open_auth uri, creds, userdata, auth block succeeded"
|
115
|
+
puts_ok "Libvirt.open_auth uri, creds, userdata, auth block succeeded"
|
84
116
|
conn.close
|
85
117
|
rescue NoMethodError
|
86
|
-
puts_skipped "open_auth does not exist"
|
118
|
+
puts_skipped "Libvirt.open_auth does not exist"
|
87
119
|
rescue => e
|
88
|
-
puts_fail "open_auth uri, creds, userdata, auth block expected to succeed, threw #{e.class.to_s}: #{e.to_s}"
|
120
|
+
puts_fail "Libvirt.open_auth uri, creds, userdata, auth block expected to succeed, threw #{e.class.to_s}: #{e.to_s}"
|
121
|
+
end
|
122
|
+
|
123
|
+
# equivalent to "expect_success"
|
124
|
+
begin
|
125
|
+
conn = Libvirt::open_auth("qemu:///system") do |cred|
|
126
|
+
end
|
127
|
+
|
128
|
+
puts_ok "Libvirt.open_auth uri, succeeded"
|
129
|
+
conn.close
|
130
|
+
rescue NoMethodError
|
131
|
+
puts_skipped "Libvirt.open_auth does not exist"
|
132
|
+
rescue => e
|
133
|
+
puts_fail "Libvirt.open_auth uri expected to succeed, threw #{e.class.to_s}: #{e.to_s}"
|
89
134
|
end
|
90
135
|
|
91
136
|
# equivalent to "expect_success"
|
@@ -109,12 +154,12 @@ begin
|
|
109
154
|
res
|
110
155
|
end
|
111
156
|
|
112
|
-
puts_ok "open_auth uri, creds, userdata, R/O flag, auth block succeeded"
|
157
|
+
puts_ok "Libvirt.open_auth uri, creds, userdata, R/O flag, auth block succeeded"
|
113
158
|
conn.close
|
114
159
|
rescue NoMethodError
|
115
|
-
puts_skipped "open_auth does not exist"
|
160
|
+
puts_skipped "Libvirt.open_auth does not exist"
|
116
161
|
rescue => e
|
117
|
-
puts_fail "open_auth uri, creds, userdata, R/O flag, auth block expected to succeed, threw #{e.class.to_s}: #{e.to_s}"
|
162
|
+
puts_fail "Libvirt.open_auth uri, creds, userdata, R/O flag, auth block expected to succeed, threw #{e.class.to_s}: #{e.to_s}"
|
118
163
|
end
|
119
164
|
|
120
165
|
# TESTGROUP: Libvirt::event_invoke_handle_callback
|
@@ -125,6 +170,9 @@ expect_too_few_args(Libvirt, "event_invoke_handle_callback")
|
|
125
170
|
expect_too_few_args(Libvirt, "event_invoke_handle_callback", 1)
|
126
171
|
expect_too_few_args(Libvirt, "event_invoke_handle_callback", 1, 2)
|
127
172
|
expect_too_few_args(Libvirt, "event_invoke_handle_callback", 1, 2, 3)
|
173
|
+
expect_invalid_arg_type(Libvirt, "event_invoke_handle_callback", "hello", 1, 1, 1)
|
174
|
+
expect_invalid_arg_type(Libvirt, "event_invoke_handle_callback", "hello", 1, 1, [])
|
175
|
+
expect_invalid_arg_type(Libvirt, "event_invoke_handle_callback", "hello", 1, 1, nil)
|
128
176
|
# this is a bit bizarre; I am constructing a bogus hash to pass as the 4th
|
129
177
|
# parameter to event_invoke_handle_callback. In a real situation, I would
|
130
178
|
# have been given this hash from libvirt earlier, and just pass it on. I
|
@@ -145,6 +193,9 @@ conn = Libvirt::open("qemu:///system")
|
|
145
193
|
expect_too_many_args(Libvirt, "event_invoke_timeout_callback", 1, 2, 3)
|
146
194
|
expect_too_few_args(Libvirt, "event_invoke_timeout_callback")
|
147
195
|
expect_too_few_args(Libvirt, "event_invoke_timeout_callback", 1)
|
196
|
+
expect_invalid_arg_type(Libvirt, "event_invoke_timeout_callback", "hello", 1)
|
197
|
+
expect_invalid_arg_type(Libvirt, "event_invoke_timeout_callback", "hello", [])
|
198
|
+
expect_invalid_arg_type(Libvirt, "event_invoke_timeout_callback", "hello", nil)
|
148
199
|
# this is a bit bizarre; I am constructing a bogus hash to pass as the 4th
|
149
200
|
# parameter to event_invoke_handle_callback. In a real situation, I would
|
150
201
|
# have been given this hash from libvirt earlier, and just pass it on. I
|
@@ -194,4 +245,6 @@ expect_success(Libvirt, "unregister all callbacks", "event_register_impl", nil,
|
|
194
245
|
expect_success(Libvirt, "all Proc callbacks", "event_register_impl", virEventAddHandleProc, virEventUpdateHandleProc, virEventRemoveHandleProc, virEventAddTimerProc, virEventUpdateTimerProc, virEventRemoveTimerProc)
|
195
246
|
expect_success(Libvirt, "unregister all callbacks", "event_register_impl")
|
196
247
|
|
248
|
+
# END TESTS
|
249
|
+
|
197
250
|
finish_tests
|
data/tests/test_secret.rb
CHANGED
@@ -7,6 +7,8 @@ $: << File.dirname(__FILE__)
|
|
7
7
|
require 'libvirt'
|
8
8
|
require 'test_utils.rb'
|
9
9
|
|
10
|
+
set_test_object("secret")
|
11
|
+
|
10
12
|
conn = Libvirt::open("qemu:///system")
|
11
13
|
|
12
14
|
# TESTGROUP: secret.uuid
|
@@ -58,6 +60,27 @@ expect_success(newsecret, "value arg", "set_value", "foo")
|
|
58
60
|
|
59
61
|
newsecret.undefine
|
60
62
|
|
63
|
+
# TESTGROUP: secret.value=
|
64
|
+
newsecret = conn.define_secret_xml($new_secret_xml)
|
65
|
+
|
66
|
+
expect_too_many_args(newsecret, "value=", 1, 2)
|
67
|
+
expect_too_few_args(newsecret, "value=")
|
68
|
+
expect_invalid_arg_type(newsecret, "value=", {})
|
69
|
+
expect_invalid_arg_type(newsecret, "value=", nil)
|
70
|
+
expect_invalid_arg_type(newsecret, "value=", 1)
|
71
|
+
expect_invalid_arg_type(newsecret, "value=", [1, 1])
|
72
|
+
expect_invalid_arg_type(newsecret, "value=", [nil, 1])
|
73
|
+
expect_invalid_arg_type(newsecret, "value=", [[], 1])
|
74
|
+
expect_invalid_arg_type(newsecret, "value=", [{}, 1])
|
75
|
+
expect_invalid_arg_type(newsecret, "value=", ['foo', nil])
|
76
|
+
expect_invalid_arg_type(newsecret, "value=", ['foo', 'foo'])
|
77
|
+
expect_invalid_arg_type(newsecret, "value=", ['foo', []])
|
78
|
+
expect_invalid_arg_type(newsecret, "value=", ['foo', {}])
|
79
|
+
|
80
|
+
expect_success(newsecret, "value arg", "value=", "foo")
|
81
|
+
|
82
|
+
newsecret.undefine
|
83
|
+
|
61
84
|
# TESTGROUP: secret.get_value
|
62
85
|
newsecret = conn.define_secret_xml($new_secret_xml)
|
63
86
|
newsecret.set_value("foo")
|
@@ -84,6 +107,8 @@ expect_too_many_args(newsecret, "free", 1)
|
|
84
107
|
|
85
108
|
expect_success(newsecret, "no args", "free")
|
86
109
|
|
110
|
+
# END TESTS
|
111
|
+
|
87
112
|
conn.close
|
88
113
|
|
89
114
|
finish_tests
|
data/tests/test_storage.rb
CHANGED
@@ -7,6 +7,8 @@ $: << File.dirname(__FILE__)
|
|
7
7
|
require 'libvirt'
|
8
8
|
require 'test_utils.rb'
|
9
9
|
|
10
|
+
set_test_object("storage_pool")
|
11
|
+
|
10
12
|
conn = Libvirt::open("qemu:///system")
|
11
13
|
|
12
14
|
begin
|
@@ -18,7 +20,7 @@ rescue
|
|
18
20
|
end
|
19
21
|
|
20
22
|
# test setup
|
21
|
-
`rm -rf #{$POOL_PATH}; mkdir #{$POOL_PATH} ; echo $?`
|
23
|
+
`rm -rf #{$POOL_PATH}; mkdir -p #{$POOL_PATH} ; echo $?`
|
22
24
|
|
23
25
|
new_storage_vol_xml = <<EOF
|
24
26
|
<volume>
|
@@ -98,9 +100,10 @@ expect_invalid_arg_type(newpool, "delete", 'foo')
|
|
98
100
|
|
99
101
|
expect_success(newpool, "no args", "delete")
|
100
102
|
|
101
|
-
`mkdir /tmp/ruby-libvirt-tester`
|
103
|
+
`mkdir -p /tmp/ruby-libvirt-tester`
|
102
104
|
|
103
105
|
newpool.undefine
|
106
|
+
`mkdir -p #{$POOL_PATH}`
|
104
107
|
|
105
108
|
# TESTGROUP: pool.refresh
|
106
109
|
newpool = conn.create_storage_pool_xml($new_storage_pool_xml)
|
@@ -172,16 +175,16 @@ expect_invalid_arg_type(newpool, "autostart=", 1234)
|
|
172
175
|
|
173
176
|
expect_success(newpool, "no args", "autostart=", true)
|
174
177
|
if not newpool.autostart?
|
175
|
-
puts_fail "
|
178
|
+
puts_fail "storage_pool.autostart= did not set autostart to true"
|
176
179
|
else
|
177
|
-
puts_ok "
|
180
|
+
puts_ok "storage_pool.autostart= set autostart to true"
|
178
181
|
end
|
179
182
|
|
180
183
|
expect_success(newpool, "no args", "autostart=", false)
|
181
184
|
if newpool.autostart?
|
182
|
-
puts_fail "
|
185
|
+
puts_fail "storage_pool.autostart= did not set autostart to false"
|
183
186
|
else
|
184
|
-
puts_ok "
|
187
|
+
puts_ok "storage_pool.autostart= set autostart to false"
|
185
188
|
end
|
186
189
|
|
187
190
|
newpool.undefine
|
@@ -200,8 +203,11 @@ newpool = conn.create_storage_pool_xml($new_storage_pool_xml)
|
|
200
203
|
|
201
204
|
expect_too_many_args(newpool, "list_volumes", 1)
|
202
205
|
|
206
|
+
expect_success(newpool, "no args", "list_volumes")
|
207
|
+
newvol = newpool.create_volume_xml(new_storage_vol_xml)
|
203
208
|
expect_success(newpool, "no args", "list_volumes")
|
204
209
|
|
210
|
+
newvol.delete
|
205
211
|
newpool.destroy
|
206
212
|
|
207
213
|
# TESTGROUP: pool.free
|
@@ -256,28 +262,6 @@ expect_success(newpool, "name arg", "lookup_volume_by_path", newvol.path)
|
|
256
262
|
newvol.delete
|
257
263
|
newpool.destroy
|
258
264
|
|
259
|
-
# TESTGROUP: vol.name
|
260
|
-
newpool = conn.create_storage_pool_xml($new_storage_pool_xml)
|
261
|
-
newvol = newpool.create_volume_xml(new_storage_vol_xml)
|
262
|
-
|
263
|
-
expect_too_many_args(newvol, "name", 1)
|
264
|
-
|
265
|
-
expect_success(newvol, "no args", "name")
|
266
|
-
|
267
|
-
newvol.delete
|
268
|
-
newpool.destroy
|
269
|
-
|
270
|
-
# TESTGROUP: vol.key
|
271
|
-
newpool = conn.create_storage_pool_xml($new_storage_pool_xml)
|
272
|
-
newvol = newpool.create_volume_xml(new_storage_vol_xml)
|
273
|
-
|
274
|
-
expect_too_many_args(newvol, "key", 1)
|
275
|
-
|
276
|
-
expect_success(newvol, "no args", "key")
|
277
|
-
|
278
|
-
newvol.delete
|
279
|
-
newpool.destroy
|
280
|
-
|
281
265
|
# TESTGROUP: pool.create_volume_xml
|
282
266
|
newpool = conn.create_storage_pool_xml($new_storage_pool_xml)
|
283
267
|
|
@@ -350,6 +334,43 @@ expect_success(newpool, "no args", "persistent?") {|x| x == true}
|
|
350
334
|
|
351
335
|
newpool.undefine
|
352
336
|
|
337
|
+
# TESTGROUP:
|
338
|
+
newpool = conn.create_storage_pool_xml($new_storage_pool_xml)
|
339
|
+
sleep 1
|
340
|
+
|
341
|
+
expect_too_many_args(newpool, "list_all_volumes", 1, 2)
|
342
|
+
expect_invalid_arg_type(newpool, "list_all_volumes", 'foo')
|
343
|
+
expect_invalid_arg_type(newpool, "list_all_volumes", [])
|
344
|
+
expect_invalid_arg_type(newpool, "list_all_volumes", {})
|
345
|
+
|
346
|
+
expect_success(newpool, "no args", "list_all_volumes")
|
347
|
+
|
348
|
+
newpool.destroy
|
349
|
+
|
350
|
+
set_test_object("storage_volume")
|
351
|
+
|
352
|
+
# TESTGROUP: vol.name
|
353
|
+
newpool = conn.create_storage_pool_xml($new_storage_pool_xml)
|
354
|
+
newvol = newpool.create_volume_xml(new_storage_vol_xml)
|
355
|
+
|
356
|
+
expect_too_many_args(newvol, "name", 1)
|
357
|
+
|
358
|
+
expect_success(newvol, "no args", "name")
|
359
|
+
|
360
|
+
newvol.delete
|
361
|
+
newpool.destroy
|
362
|
+
|
363
|
+
# TESTGROUP: vol.key
|
364
|
+
newpool = conn.create_storage_pool_xml($new_storage_pool_xml)
|
365
|
+
newvol = newpool.create_volume_xml(new_storage_vol_xml)
|
366
|
+
|
367
|
+
expect_too_many_args(newvol, "key", 1)
|
368
|
+
|
369
|
+
expect_success(newvol, "no args", "key")
|
370
|
+
|
371
|
+
newvol.delete
|
372
|
+
newpool.destroy
|
373
|
+
|
353
374
|
# TESTGROUP: vol.delete
|
354
375
|
newpool = conn.create_storage_pool_xml($new_storage_pool_xml)
|
355
376
|
newvol = newpool.create_volume_xml(new_storage_vol_xml)
|
@@ -418,6 +439,89 @@ expect_success(newvol, "no args", "free")
|
|
418
439
|
|
419
440
|
newpool.destroy
|
420
441
|
|
442
|
+
# TESTGROUP: vol.download
|
443
|
+
newpool = conn.create_storage_pool_xml($new_storage_pool_xml)
|
444
|
+
newvol = newpool.create_volume_xml(new_storage_vol_xml)
|
445
|
+
stream = conn.stream
|
446
|
+
|
447
|
+
expect_too_many_args(newvol, "download", 1, 2, 3, 4, 5)
|
448
|
+
expect_too_few_args(newvol, "download")
|
449
|
+
expect_too_few_args(newvol, "download", 1)
|
450
|
+
expect_too_few_args(newvol, "download", 1, 2)
|
451
|
+
expect_invalid_arg_type(newvol, "download", nil, 1, 1)
|
452
|
+
expect_invalid_arg_type(newvol, "download", 'foo', 1, 1)
|
453
|
+
expect_invalid_arg_type(newvol, "download", 1, 1, 1)
|
454
|
+
expect_invalid_arg_type(newvol, "download", [], 1, 1)
|
455
|
+
expect_invalid_arg_type(newvol, "download", {}, 1, 1)
|
456
|
+
expect_invalid_arg_type(newvol, "download", stream, nil, 1)
|
457
|
+
expect_invalid_arg_type(newvol, "download", stream, 'foo', 1)
|
458
|
+
expect_invalid_arg_type(newvol, "download", stream, [], 1)
|
459
|
+
expect_invalid_arg_type(newvol, "download", stream, {}, 1)
|
460
|
+
expect_invalid_arg_type(newvol, "download", stream, 1, nil)
|
461
|
+
expect_invalid_arg_type(newvol, "download", stream, 1, 'foo')
|
462
|
+
expect_invalid_arg_type(newvol, "download", stream, 1, [])
|
463
|
+
expect_invalid_arg_type(newvol, "download", stream, 1, {})
|
464
|
+
expect_invalid_arg_type(newvol, "download", stream, 1, 1, 'foo')
|
465
|
+
expect_invalid_arg_type(newvol, "download", stream, 1, 1, [])
|
466
|
+
expect_invalid_arg_type(newvol, "download", stream, 1, 1, {})
|
467
|
+
|
468
|
+
expect_success(newvol, "stream, offset, and length args", "download", stream, 0, 10)
|
469
|
+
|
470
|
+
newvol.delete
|
471
|
+
newpool.destroy
|
472
|
+
|
473
|
+
# TESTGROUP: vol.upload
|
474
|
+
newpool = conn.create_storage_pool_xml($new_storage_pool_xml)
|
475
|
+
newvol = newpool.create_volume_xml(new_storage_vol_xml)
|
476
|
+
stream = conn.stream
|
477
|
+
|
478
|
+
expect_too_many_args(newvol, "upload", 1, 2, 3, 4, 5)
|
479
|
+
expect_too_few_args(newvol, "upload")
|
480
|
+
expect_too_few_args(newvol, "upload", 1)
|
481
|
+
expect_too_few_args(newvol, "upload", 1, 2)
|
482
|
+
expect_invalid_arg_type(newvol, "upload", nil, 1, 1)
|
483
|
+
expect_invalid_arg_type(newvol, "upload", 'foo', 1, 1)
|
484
|
+
expect_invalid_arg_type(newvol, "upload", 1, 1, 1)
|
485
|
+
expect_invalid_arg_type(newvol, "upload", [], 1, 1)
|
486
|
+
expect_invalid_arg_type(newvol, "upload", {}, 1, 1)
|
487
|
+
expect_invalid_arg_type(newvol, "upload", stream, nil, 1)
|
488
|
+
expect_invalid_arg_type(newvol, "upload", stream, 'foo', 1)
|
489
|
+
expect_invalid_arg_type(newvol, "upload", stream, [], 1)
|
490
|
+
expect_invalid_arg_type(newvol, "upload", stream, {}, 1)
|
491
|
+
expect_invalid_arg_type(newvol, "upload", stream, 1, nil)
|
492
|
+
expect_invalid_arg_type(newvol, "upload", stream, 1, 'foo')
|
493
|
+
expect_invalid_arg_type(newvol, "upload", stream, 1, [])
|
494
|
+
expect_invalid_arg_type(newvol, "upload", stream, 1, {})
|
495
|
+
expect_invalid_arg_type(newvol, "upload", stream, 1, 1, 'foo')
|
496
|
+
expect_invalid_arg_type(newvol, "upload", stream, 1, 1, [])
|
497
|
+
expect_invalid_arg_type(newvol, "upload", stream, 1, 1, {})
|
498
|
+
|
499
|
+
expect_success(newvol, "stream, offset, and length args", "upload", stream, 0, 10)
|
500
|
+
|
501
|
+
newvol.delete
|
502
|
+
newpool.destroy
|
503
|
+
|
504
|
+
# TESTGROUP: vol.upload
|
505
|
+
newpool = conn.create_storage_pool_xml($new_storage_pool_xml)
|
506
|
+
newvol = newpool.create_volume_xml(new_storage_vol_xml)
|
507
|
+
|
508
|
+
expect_too_many_args(newvol, "wipe_pattern", 1, 2, 3)
|
509
|
+
expect_too_few_args(newvol, "wipe_pattern")
|
510
|
+
expect_invalid_arg_type(newvol, "wipe_pattern", nil)
|
511
|
+
expect_invalid_arg_type(newvol, "wipe_pattern", 'foo')
|
512
|
+
expect_invalid_arg_type(newvol, "wipe_pattern", [])
|
513
|
+
expect_invalid_arg_type(newvol, "wipe_pattern", {})
|
514
|
+
expect_invalid_arg_type(newvol, "wipe_pattern", 0, 'foo')
|
515
|
+
expect_invalid_arg_type(newvol, "wipe_pattern", 0, [])
|
516
|
+
expect_invalid_arg_type(newvol, "wipe_pattern", 0, {})
|
517
|
+
|
518
|
+
expect_success(newvol, "alg arg", "wipe_pattern", Libvirt::StorageVol::WIPE_ALG_ZERO)
|
519
|
+
|
520
|
+
newvol.delete
|
521
|
+
newpool.destroy
|
522
|
+
|
523
|
+
# END TESTS
|
524
|
+
|
421
525
|
conn.close
|
422
526
|
|
423
527
|
finish_tests
|