ruby-libvirt 0.4.0 → 0.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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/ext/libvirt/stream.h
CHANGED
data/tests/test_conn.rb
CHANGED
@@ -7,18 +7,22 @@ $: << File.dirname(__FILE__)
|
|
7
7
|
require 'libvirt'
|
8
8
|
require 'test_utils.rb'
|
9
9
|
|
10
|
+
set_test_object("connect")
|
11
|
+
|
12
|
+
conn = Libvirt::open("qemu:///system")
|
13
|
+
|
14
|
+
cleanup_test_domain(conn)
|
15
|
+
cleanup_test_network(conn)
|
16
|
+
|
10
17
|
# test setup
|
11
18
|
begin
|
12
19
|
`rm -f /etc/sysconfig/network-scripts/ifcfg-ruby-libvirt-tester`
|
13
20
|
`brctl delbr ruby-libvirt-tester >& /dev/null`
|
14
21
|
rescue
|
15
22
|
end
|
16
|
-
`
|
17
|
-
`rm -f /var/lib/libvirt/images/ruby-libvirt-test.save`
|
23
|
+
`qemu-img create -f qcow2 #{$GUEST_DISK} 5G`
|
18
24
|
`rm -rf #{$POOL_PATH}; mkdir #{$POOL_PATH} ; echo $?`
|
19
25
|
|
20
|
-
conn = Libvirt::open("qemu:///system")
|
21
|
-
|
22
26
|
cpu_xml = <<EOF
|
23
27
|
<cpu>
|
24
28
|
<arch>x86_64</arch>
|
@@ -78,35 +82,19 @@ expect_too_many_args(conn, "node_get_info", 1)
|
|
78
82
|
|
79
83
|
expect_success(conn, "no args", "node_get_info")
|
80
84
|
|
81
|
-
|
82
|
-
|
83
|
-
expect_too_many_args(conn, "node_free_memory", 1)
|
84
|
-
|
85
|
-
conn.node_free_memory
|
86
|
-
puts_ok "conn.node_free_memory no args"
|
87
|
-
rescue Libvirt::RetrieveError
|
88
|
-
puts_skipped "conn.node_free_memory not supported on this host"
|
89
|
-
rescue NoMethodError
|
90
|
-
puts_skipped "conn.node_free_memory does not exist"
|
91
|
-
end
|
85
|
+
# TESTGROUP: conn.node_free_memory
|
86
|
+
expect_too_many_args(conn, "node_free_memory", 1)
|
92
87
|
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
cell_mem = conn.node_cells_free_memory(0, 1)
|
104
|
-
puts_ok "conn.node_cells_free_memory(0, 1) = "
|
105
|
-
rescue Libvirt::RetrieveError
|
106
|
-
puts_skipped "conn.node_cells_free_memory not supported on this host"
|
107
|
-
rescue NoMethodError
|
108
|
-
puts_skipped "conn.node_cells_free_memory does not exist"
|
109
|
-
end
|
88
|
+
expect_success(conn, "no args", "node_free_memory")
|
89
|
+
|
90
|
+
# TESTGROUP: conn.node_cells_free_memory
|
91
|
+
expect_too_many_args(conn, "node_cells_free_memory", 1, 2, 3)
|
92
|
+
expect_invalid_arg_type(conn, "node_cells_free_memory", 'start')
|
93
|
+
expect_invalid_arg_type(conn, "node_cells_free_memory", 0, 'end')
|
94
|
+
|
95
|
+
expect_success(conn, "no args", "node_cells_free_memory")
|
96
|
+
expect_success(conn, "start cell", "node_cells_free_memory", 0)
|
97
|
+
expect_success(conn, "start cell and max cells", "node_cells_free_memory", 0, 1)
|
110
98
|
|
111
99
|
# TESTGROUP: conn.node_get_security_model
|
112
100
|
expect_too_many_args(conn, "node_get_security_model", 1)
|
@@ -136,7 +124,7 @@ expect_success(conn, "CPU XML", "compare_cpu", cpu_xml)
|
|
136
124
|
expect_too_many_args(conn, "baseline_cpu", 1, 2, 3)
|
137
125
|
expect_too_few_args(conn, "baseline_cpu")
|
138
126
|
expect_invalid_arg_type(conn, "baseline_cpu", 1)
|
139
|
-
expect_invalid_arg_type(conn, "baseline_cpu", [], "foo")
|
127
|
+
expect_invalid_arg_type(conn, "baseline_cpu", [cpu_xml], "foo")
|
140
128
|
expect_fail(conn, ArgumentError, "empty array", "baseline_cpu", [])
|
141
129
|
expect_success(conn, "CPU XML", "baseline_cpu", [cpu_xml])
|
142
130
|
|
@@ -144,8 +132,8 @@ expect_success(conn, "CPU XML", "baseline_cpu", [cpu_xml])
|
|
144
132
|
dom_event_callback_proc = lambda {|conn, dom, event, detail, opaque|
|
145
133
|
}
|
146
134
|
|
147
|
-
def dom_event_callback_symbol(conn, dom, event, detail, opaque)
|
148
|
-
end
|
135
|
+
# def dom_event_callback_symbol(conn, dom, event, detail, opaque)
|
136
|
+
# end
|
149
137
|
|
150
138
|
expect_too_many_args(conn, "domain_event_register_any", 1, 2, 3, 4, 5)
|
151
139
|
expect_too_few_args(conn, "domain_event_register_any")
|
@@ -155,58 +143,58 @@ expect_invalid_arg_type(conn, "domain_event_register_any", Libvirt::Connect::DOM
|
|
155
143
|
expect_invalid_arg_type(conn, "domain_event_register_any", Libvirt::Connect::DOMAIN_EVENT_ID_LIFECYCLE, dom_event_callback_proc, 1)
|
156
144
|
expect_fail(conn, ArgumentError, "invalid event ID", "domain_event_register_any", 456789, dom_event_callback_proc)
|
157
145
|
|
158
|
-
callbackID = expect_success(conn, "eventID and proc", "domain_event_register_any", Libvirt::Connect::DOMAIN_EVENT_ID_LIFECYCLE, dom_event_callback_proc)
|
159
|
-
conn.domain_event_deregister_any(callbackID)
|
146
|
+
# callbackID = expect_success(conn, "eventID and proc", "domain_event_register_any", Libvirt::Connect::DOMAIN_EVENT_ID_LIFECYCLE, dom_event_callback_proc)
|
147
|
+
# conn.domain_event_deregister_any(callbackID)
|
160
148
|
|
161
|
-
callbackID = expect_success(conn, "eventID and symbol", "domain_event_register_any", Libvirt::Connect::DOMAIN_EVENT_ID_LIFECYCLE, :dom_event_callback_symbol)
|
162
|
-
conn.domain_event_deregister_any(callbackID)
|
149
|
+
# callbackID = expect_success(conn, "eventID and symbol", "domain_event_register_any", Libvirt::Connect::DOMAIN_EVENT_ID_LIFECYCLE, :dom_event_callback_symbol)
|
150
|
+
# conn.domain_event_deregister_any(callbackID)
|
163
151
|
|
164
|
-
callbackID = expect_success(conn, "eventID, proc, nil domain", "domain_event_register_any", Libvirt::Connect::DOMAIN_EVENT_ID_LIFECYCLE, dom_event_callback_proc, nil)
|
165
|
-
conn.domain_event_deregister_any(callbackID)
|
152
|
+
# callbackID = expect_success(conn, "eventID, proc, nil domain", "domain_event_register_any", Libvirt::Connect::DOMAIN_EVENT_ID_LIFECYCLE, dom_event_callback_proc, nil)
|
153
|
+
# conn.domain_event_deregister_any(callbackID)
|
166
154
|
|
167
|
-
callbackID = expect_success(conn, "eventID, proc, nil domain, opaque", "domain_event_register_any", Libvirt::Connect::DOMAIN_EVENT_ID_LIFECYCLE, dom_event_callback_proc, nil, "opaque user data")
|
168
|
-
conn.domain_event_deregister_any(callbackID)
|
155
|
+
# callbackID = expect_success(conn, "eventID, proc, nil domain, opaque", "domain_event_register_any", Libvirt::Connect::DOMAIN_EVENT_ID_LIFECYCLE, dom_event_callback_proc, nil, "opaque user data")
|
156
|
+
# conn.domain_event_deregister_any(callbackID)
|
169
157
|
|
170
|
-
# TESTGROUP: conn.domain_event_deregister_any
|
171
|
-
dom_event_callback_proc = lambda {|conn, dom, event, detail, opaque|
|
172
|
-
}
|
158
|
+
# # TESTGROUP: conn.domain_event_deregister_any
|
159
|
+
# dom_event_callback_proc = lambda {|conn, dom, event, detail, opaque|
|
160
|
+
# }
|
173
161
|
|
174
|
-
callbackID = conn.domain_event_register_any(Libvirt::Connect::DOMAIN_EVENT_ID_LIFECYCLE, dom_event_callback_proc)
|
162
|
+
# callbackID = conn.domain_event_register_any(Libvirt::Connect::DOMAIN_EVENT_ID_LIFECYCLE, dom_event_callback_proc)
|
175
163
|
|
176
164
|
expect_too_many_args(conn, "domain_event_deregister_any", 1, 2)
|
177
165
|
expect_too_few_args(conn, "domain_event_deregister_any")
|
178
166
|
expect_invalid_arg_type(conn, "domain_event_deregister_any", "hello")
|
179
167
|
|
180
|
-
expect_success(conn, "callbackID", "domain_event_deregister_any", callbackID)
|
168
|
+
# expect_success(conn, "callbackID", "domain_event_deregister_any", callbackID)
|
181
169
|
|
182
170
|
# TESTGROUP: conn.domain_event_register
|
183
|
-
dom_event_callback_proc = lambda {|conn, dom, event, detail, opaque|
|
184
|
-
}
|
171
|
+
# dom_event_callback_proc = lambda {|conn, dom, event, detail, opaque|
|
172
|
+
# }
|
185
173
|
|
186
|
-
def dom_event_callback_symbol(conn, dom, event, detail, opaque)
|
187
|
-
end
|
174
|
+
# def dom_event_callback_symbol(conn, dom, event, detail, opaque)
|
175
|
+
# end
|
188
176
|
|
189
177
|
expect_too_many_args(conn, "domain_event_register", 1, 2, 3)
|
190
178
|
expect_too_few_args(conn, "domain_event_register")
|
191
179
|
expect_invalid_arg_type(conn, "domain_event_register", "hello")
|
192
180
|
|
193
|
-
expect_success(conn, "proc", "domain_event_register", dom_event_callback_proc)
|
194
|
-
conn.domain_event_deregister
|
181
|
+
# expect_success(conn, "proc", "domain_event_register", dom_event_callback_proc)
|
182
|
+
# conn.domain_event_deregister
|
195
183
|
|
196
|
-
expect_success(conn, "symbol", "domain_event_register", :dom_event_callback_symbol)
|
197
|
-
conn.domain_event_deregister
|
184
|
+
# expect_success(conn, "symbol", "domain_event_register", :dom_event_callback_symbol)
|
185
|
+
# conn.domain_event_deregister
|
198
186
|
|
199
|
-
expect_success(conn, "proc and opaque", "domain_event_register", dom_event_callback_proc, "opaque user data")
|
200
|
-
conn.domain_event_deregister
|
187
|
+
# expect_success(conn, "proc and opaque", "domain_event_register", dom_event_callback_proc, "opaque user data")
|
188
|
+
# conn.domain_event_deregister
|
201
189
|
|
202
|
-
# TESTGROUP: conn.domain_event_deregister
|
203
|
-
dom_event_callback_proc = lambda {|conn, dom, event, detail, opaque|
|
204
|
-
}
|
190
|
+
# # TESTGROUP: conn.domain_event_deregister
|
191
|
+
# dom_event_callback_proc = lambda {|conn, dom, event, detail, opaque|
|
192
|
+
# }
|
205
193
|
|
206
|
-
conn.domain_event_register(dom_event_callback_proc)
|
194
|
+
# conn.domain_event_register(dom_event_callback_proc)
|
207
195
|
|
208
196
|
expect_too_many_args(conn, "domain_event_deregister", 1)
|
209
|
-
expect_success(conn, "no args", "domain_event_deregister")
|
197
|
+
# expect_success(conn, "no args", "domain_event_deregister")
|
210
198
|
|
211
199
|
# TESTGROUP: conn.num_of_domains
|
212
200
|
expect_too_many_args(conn, "num_of_domains", 1)
|
@@ -216,6 +204,13 @@ expect_success(conn, "no args", "num_of_domains")
|
|
216
204
|
expect_too_many_args(conn, "list_domains", 1)
|
217
205
|
expect_success(conn, "no args", "list_domains")
|
218
206
|
|
207
|
+
newdom = conn.create_domain_xml($new_dom_xml)
|
208
|
+
sleep 1
|
209
|
+
|
210
|
+
expect_success(conn, "no args", "list_domains")
|
211
|
+
|
212
|
+
newdom.destroy
|
213
|
+
|
219
214
|
# TESTGROUP: conn.num_of_defined_domains
|
220
215
|
expect_too_many_args(conn, "num_of_defined_domains", 1)
|
221
216
|
expect_success(conn, "no args", "num_of_defined_domains")
|
@@ -372,10 +367,9 @@ expect_too_few_args(conn, "lookup_interface_by_mac")
|
|
372
367
|
expect_invalid_arg_type(conn, "lookup_interface_by_mac", 1)
|
373
368
|
expect_fail(conn, Libvirt::RetrieveError, "non-existent mac arg", "lookup_interface_by_mac", "foobarbazsucker")
|
374
369
|
|
375
|
-
|
376
|
-
|
377
|
-
|
378
|
-
end
|
370
|
+
# FIXME: we can't look up an interface by MAC address on an inactive interface,
|
371
|
+
# but we also can't start up the interface without a /etc/sysconfig file.
|
372
|
+
#expect_success(conn, "mac arg", "lookup_interface_by_mac", $NEW_INTERFACE_MAC) {|x| x.mac == $NEW_INTERFACE_MAC}
|
379
373
|
|
380
374
|
newiface.undefine
|
381
375
|
|
@@ -668,6 +662,159 @@ expect_invalid_arg_type(conn, "sys_info", "foo")
|
|
668
662
|
|
669
663
|
expect_success(conn, "system info", "sys_info")
|
670
664
|
|
665
|
+
# TESTGROUP: conn.interface_change_begin
|
666
|
+
expect_too_many_args(conn, "interface_change_begin", 1, 2)
|
667
|
+
expect_invalid_arg_type(conn, "interface_change_begin", 'hello')
|
668
|
+
|
669
|
+
expect_success(conn, "interface change begin", "interface_change_begin")
|
670
|
+
|
671
|
+
conn.interface_change_rollback
|
672
|
+
|
673
|
+
# TESTGROUP: conn.interface_change_commit
|
674
|
+
expect_too_many_args(conn, "interface_change_commit", 1, 2)
|
675
|
+
expect_invalid_arg_type(conn, "interface_change_commit", 'foo')
|
676
|
+
|
677
|
+
# FIXME: libvirt throws an error on commit with no changes. What changes can
|
678
|
+
# we do here?
|
679
|
+
#expect_success(conn, "interface change commit", "interface_change_commit")
|
680
|
+
|
681
|
+
# TESTGROUP: conn.interface_change_rollback
|
682
|
+
conn.interface_change_begin
|
683
|
+
|
684
|
+
expect_too_many_args(conn, "interface_change_rollback", 1, 2)
|
685
|
+
expect_invalid_arg_type(conn, "interface_change_rollback", 'foo')
|
686
|
+
|
687
|
+
expect_success(conn, "interface change rollback", "interface_change_rollback")
|
688
|
+
|
689
|
+
# TESTGROUP: conn.node_cpu_stats
|
690
|
+
expect_too_many_args(conn, "node_cpu_stats", 1, 2, 3)
|
691
|
+
expect_invalid_arg_type(conn, "node_cpu_stats", 'foo')
|
692
|
+
expect_invalid_arg_type(conn, "node_cpu_stats", 1, 'bar')
|
693
|
+
|
694
|
+
expect_success(conn, "node cpu stats", "node_cpu_stats")
|
695
|
+
|
696
|
+
# TESTGROUP: conn.node_memory_stats
|
697
|
+
expect_too_many_args(conn, "node_memory_stats", 1, 2, 3)
|
698
|
+
expect_invalid_arg_type(conn, "node_memory_stats", 'foo')
|
699
|
+
expect_invalid_arg_type(conn, "node_memory_stats", 1, 'bar')
|
700
|
+
|
701
|
+
expect_success(conn, "node memory status", "node_memory_stats")
|
702
|
+
|
703
|
+
# TESTGROUP: conn.save_image_xml_desc
|
704
|
+
newdom = conn.define_domain_xml($new_dom_xml)
|
705
|
+
newdom.create
|
706
|
+
sleep 1
|
707
|
+
newdom.save($GUEST_SAVE)
|
708
|
+
|
709
|
+
expect_too_many_args(conn, "save_image_xml_desc", 1, 2, 3)
|
710
|
+
expect_too_few_args(conn, "save_image_xml_desc")
|
711
|
+
expect_invalid_arg_type(conn, "save_image_xml_desc", nil)
|
712
|
+
expect_invalid_arg_type(conn, "save_image_xml_desc", 1)
|
713
|
+
expect_invalid_arg_type(conn, "save_image_xml_desc", 'foo', 'bar')
|
714
|
+
|
715
|
+
expect_success(conn, "save image path", "save_image_xml_desc", $GUEST_SAVE)
|
716
|
+
`rm -f #{$GUEST_SAVE}`
|
717
|
+
|
718
|
+
# TESTGROUP: conn.define_save_image_xml
|
719
|
+
expect_too_many_args(conn, "define_save_image_xml", 1, 2, 3, 4)
|
720
|
+
expect_too_few_args(conn, "define_save_image_xml")
|
721
|
+
expect_too_few_args(conn, "define_save_image_xml", 'foo')
|
722
|
+
expect_invalid_arg_type(conn, "define_save_image_xml", nil, 'foo')
|
723
|
+
expect_invalid_arg_type(conn, "define_save_image_xml", 1, 'foo')
|
724
|
+
expect_invalid_arg_type(conn, "define_save_image_xml", 'foo', nil)
|
725
|
+
expect_invalid_arg_type(conn, "define_save_image_xml", 'foo', 1)
|
726
|
+
expect_invalid_arg_type(conn, "define_save_image_xml", 'foo', 'bar', 'baz')
|
727
|
+
|
728
|
+
# TESTGROUP: conn.alive?
|
729
|
+
expect_too_many_args(conn, "alive?", 1)
|
730
|
+
|
731
|
+
expect_success(conn, "alive connection", "alive?") {|x| x == true}
|
732
|
+
|
733
|
+
# TESTGROUP: conn.list_all_nwfilters
|
734
|
+
expect_too_many_args(conn, "list_all_nwfilters", 1, 2)
|
735
|
+
expect_invalid_arg_type(conn, "list_all_nwfilters", "foo")
|
736
|
+
|
737
|
+
expect_success(conn, "no args", "list_all_nwfilters")
|
738
|
+
|
739
|
+
# TESTGROUP: conn.list_all_storage_pools
|
740
|
+
expect_too_many_args(conn, "list_all_storage_pools", 1, 2)
|
741
|
+
expect_invalid_arg_type(conn, "list_all_storage_pools", "foo")
|
742
|
+
|
743
|
+
expect_success(conn, "no args", "list_all_storage_pools")
|
744
|
+
|
745
|
+
# TESTGROUP: conn.list_all_nodedevices
|
746
|
+
expect_too_many_args(conn, "list_all_nodedevices", 1, 2)
|
747
|
+
expect_invalid_arg_type(conn, "list_all_nodedevices", "foo")
|
748
|
+
|
749
|
+
expect_success(conn, "no args", "list_all_nodedevices")
|
750
|
+
|
751
|
+
# TESTGROUP: conn.list_all_secrets
|
752
|
+
expect_too_many_args(conn, "list_all_secrets", 1, 2)
|
753
|
+
expect_invalid_arg_type(conn, "list_all_secrets", "foo")
|
754
|
+
|
755
|
+
expect_success(conn, "no args", "list_all_secrets")
|
756
|
+
|
757
|
+
# TESTGROUP: conn.list_all_interfaces
|
758
|
+
expect_too_many_args(conn, "list_all_interfaces", 1, 2)
|
759
|
+
expect_invalid_arg_type(conn, "list_all_interfaces", "foo")
|
760
|
+
|
761
|
+
expect_success(conn, "no args", "list_all_interfaces")
|
762
|
+
|
763
|
+
# TESTGROUP: conn.list_all_networks
|
764
|
+
expect_too_many_args(conn, "list_all_networks", 1, 2)
|
765
|
+
expect_invalid_arg_type(conn, "list_all_networks", "foo")
|
766
|
+
|
767
|
+
expect_success(conn, "no args", "list_all_networks")
|
768
|
+
|
769
|
+
# TESTGROUP: conn.list_all_domains
|
770
|
+
expect_too_many_args(conn, "list_all_domains", 1, 2)
|
771
|
+
expect_invalid_arg_type(conn, "list_all_domains", "foo")
|
772
|
+
|
773
|
+
expect_success(conn, "no args", "list_all_domains")
|
774
|
+
|
775
|
+
# TESTGROUP: conn.set_keepalive
|
776
|
+
expect_too_many_args(conn, "set_keepalive", 1, 2, 3, 4)
|
777
|
+
expect_too_few_args(conn, "set_keepalive")
|
778
|
+
expect_too_few_args(conn, "set_keepalive", 1)
|
779
|
+
expect_invalid_arg_type(conn, "set_keepalive", 'foo', 0)
|
780
|
+
expect_invalid_arg_type(conn, "set_keepalive", 0, 'foo')
|
781
|
+
|
782
|
+
# FIXME: somehow we need an event loop implementation for this to work
|
783
|
+
#expect_success(conn, "interval and count", "set_keepalive", 1, 10)
|
784
|
+
|
785
|
+
# TESTGROUP: conn.node_suspend_for_duration
|
786
|
+
expect_too_many_args(conn, "node_suspend_for_duration", 1, 2, 3, 4)
|
787
|
+
expect_too_few_args(conn, "node_suspend_for_duration")
|
788
|
+
expect_too_few_args(conn, "node_suspend_for_duration", 1)
|
789
|
+
expect_invalid_arg_type(conn, "node_suspend_for_duration", 'foo', 1)
|
790
|
+
expect_invalid_arg_type(conn, "node_suspend_for_duration", 1, 'foo')
|
791
|
+
expect_invalid_arg_type(conn, "node_suspend_for_duration", 1, 2, 'foo')
|
792
|
+
|
793
|
+
# TESTGROUP: conn.node_memory_parameters
|
794
|
+
expect_too_many_args(conn, "node_memory_parameters", 1, 2)
|
795
|
+
expect_invalid_arg_type(conn, "node_memory_parameters", 'foo')
|
796
|
+
|
797
|
+
expect_success(conn, "no args", "node_memory_parameters")
|
798
|
+
|
799
|
+
# TESTGROUP: conn.node_memory_paramters=
|
800
|
+
expect_too_many_args(conn, "node_memory_parameters=", 1, 2)
|
801
|
+
expect_invalid_arg_type(conn, "node_memory_parameters=", nil)
|
802
|
+
expect_invalid_arg_type(conn, "node_memory_parameters=", ['foo', 0])
|
803
|
+
expect_invalid_arg_type(conn, "node_memory_parameters=", [{}, 'foo'])
|
804
|
+
|
805
|
+
# TESTGROUP: conn.keepalive=
|
806
|
+
expect_too_many_args(conn, "keepalive=", 1, 2)
|
807
|
+
expect_too_few_args(conn, "keepalive=", [])
|
808
|
+
expect_too_few_args(conn, "keepalive=", [1])
|
809
|
+
expect_invalid_arg_type(conn, "keepalive=", 1)
|
810
|
+
expect_invalid_arg_type(conn, "keepalive=", ['foo', 1])
|
811
|
+
expect_invalid_arg_type(conn, "keepalive=", [1, 'foo'])
|
812
|
+
|
813
|
+
# FIXME: somehow we need an event loop implementation for this to work
|
814
|
+
#expect_success(conn, "interval and count", "keepalive=", 1, 10)
|
815
|
+
|
816
|
+
# END TESTS
|
817
|
+
|
671
818
|
conn.close
|
672
819
|
|
673
820
|
finish_tests
|
data/tests/test_domain.rb
CHANGED
@@ -11,20 +11,14 @@ $: << File.dirname(__FILE__)
|
|
11
11
|
require 'libvirt'
|
12
12
|
require 'test_utils.rb'
|
13
13
|
|
14
|
+
set_test_object("domain")
|
15
|
+
|
14
16
|
conn = Libvirt::open("qemu:///system")
|
15
17
|
|
16
|
-
|
17
|
-
begin
|
18
|
-
olddom = conn.lookup_domain_by_name("ruby-libvirt-tester")
|
19
|
-
olddom.destroy
|
20
|
-
olddom.undefine
|
21
|
-
rescue
|
22
|
-
# in case we didn't find it, don't do anything
|
23
|
-
end
|
18
|
+
cleanup_test_domain(conn)
|
24
19
|
|
25
20
|
# setup for later tests
|
26
|
-
`
|
27
|
-
`rm -f /var/lib/libvirt/images/ruby-libvirt-test.save`
|
21
|
+
`qemu-img create -f qcow2 #{$GUEST_DISK} 5G`
|
28
22
|
|
29
23
|
new_hostdev_xml = <<EOF
|
30
24
|
<hostdev mode='subsystem' type='pci' managed='yes'>
|
@@ -36,6 +30,145 @@ EOF
|
|
36
30
|
|
37
31
|
# start tests
|
38
32
|
|
33
|
+
# TESTGROUP: dom.migrate_max_speed
|
34
|
+
newdom = conn.create_domain_xml($new_dom_xml)
|
35
|
+
sleep 1
|
36
|
+
|
37
|
+
expect_too_many_args(newdom, "migrate_max_speed", 1, 2)
|
38
|
+
expect_invalid_arg_type(newdom, "migrate_max_speed", 'foo')
|
39
|
+
expect_invalid_arg_type(newdom, "migrate_max_speed", [])
|
40
|
+
expect_invalid_arg_type(newdom, "migrate_max_speed", {})
|
41
|
+
|
42
|
+
expect_success(newdom, "no args", "migrate_max_speed")
|
43
|
+
|
44
|
+
newdom.destroy
|
45
|
+
|
46
|
+
# TESTGROUP: dom.reset
|
47
|
+
newdom = conn.create_domain_xml($new_dom_xml)
|
48
|
+
sleep 1
|
49
|
+
|
50
|
+
expect_too_many_args(newdom, "reset", 1, 2)
|
51
|
+
expect_invalid_arg_type(newdom, "reset", 'foo')
|
52
|
+
expect_invalid_arg_type(newdom, "reset", [])
|
53
|
+
expect_invalid_arg_type(newdom, "reset", {})
|
54
|
+
|
55
|
+
expect_success(newdom, "no args", "reset")
|
56
|
+
|
57
|
+
newdom.destroy
|
58
|
+
|
59
|
+
# TESTGROUP: dom.hostname
|
60
|
+
newdom = conn.create_domain_xml($new_dom_xml)
|
61
|
+
sleep 1
|
62
|
+
|
63
|
+
expect_too_many_args(newdom, "hostname", 1, 2)
|
64
|
+
expect_invalid_arg_type(newdom, "hostname", 'foo')
|
65
|
+
expect_invalid_arg_type(newdom, "hostname", [])
|
66
|
+
expect_invalid_arg_type(newdom, "hostname", {})
|
67
|
+
|
68
|
+
# FIXME: spits an error "this function is not supported by the connection driver"
|
69
|
+
#expect_success(newdom, "no args", "hostname")
|
70
|
+
|
71
|
+
newdom.destroy
|
72
|
+
|
73
|
+
# TESTGROUP: dom.metadata
|
74
|
+
newdom = conn.create_domain_xml($new_dom_xml)
|
75
|
+
sleep 1
|
76
|
+
|
77
|
+
expect_too_many_args(newdom, "metadata", 1, 2, 3, 4)
|
78
|
+
expect_too_few_args(newdom, "metadata")
|
79
|
+
expect_invalid_arg_type(newdom, "metadata", 'foo')
|
80
|
+
expect_invalid_arg_type(newdom, "metadata", nil)
|
81
|
+
expect_invalid_arg_type(newdom, "metadata", [])
|
82
|
+
expect_invalid_arg_type(newdom, "metadata", {})
|
83
|
+
expect_invalid_arg_type(newdom, "metadata", 1, 1)
|
84
|
+
expect_invalid_arg_type(newdom, "metadata", 1, 'foo', 'bar')
|
85
|
+
|
86
|
+
expect_success(newdom, "no args", "metadata", Libvirt::Domain::METADATA_DESCRIPTION) {|x| x == "Ruby Libvirt Tester"}
|
87
|
+
|
88
|
+
newdom.destroy
|
89
|
+
|
90
|
+
# TESTGROUP: dom.metadata=
|
91
|
+
newdom = conn.create_domain_xml($new_dom_xml)
|
92
|
+
sleep 1
|
93
|
+
|
94
|
+
expect_too_many_args(newdom, "metadata=", 1, 2, 3, 4, 5, 6)
|
95
|
+
expect_too_few_args(newdom, "metadata=")
|
96
|
+
expect_too_few_args(newdom, "metadata=", [1])
|
97
|
+
expect_invalid_arg_type(newdom, "metadata=", 1)
|
98
|
+
expect_invalid_arg_type(newdom, "metadata=", 'foo')
|
99
|
+
expect_invalid_arg_type(newdom, "metadata=", nil)
|
100
|
+
expect_invalid_arg_type(newdom, "metadata=", {})
|
101
|
+
expect_invalid_arg_type(newdom, "metadata=", ['foo', nil])
|
102
|
+
expect_invalid_arg_type(newdom, "metadata=", [nil, nil])
|
103
|
+
expect_invalid_arg_type(newdom, "metadata=", [[], nil])
|
104
|
+
expect_invalid_arg_type(newdom, "metadata=", [{}, nil])
|
105
|
+
expect_invalid_arg_type(newdom, "metadata=", [1, 1])
|
106
|
+
expect_invalid_arg_type(newdom, "metadata=", [1, []])
|
107
|
+
expect_invalid_arg_type(newdom, "metadata=", [1, {}])
|
108
|
+
|
109
|
+
expect_success(newdom, "no args", "metadata=", [Libvirt::Domain::METADATA_DESCRIPTION, 'foo'])
|
110
|
+
expect_success(newdom, "no args", "metadata=", [Libvirt::Domain::METADATA_DESCRIPTION, 'foo', nil, nil, 0])
|
111
|
+
|
112
|
+
expect_success(newdom, "no args", "metadata", Libvirt::Domain::METADATA_DESCRIPTION) {|x| x == "foo"}
|
113
|
+
|
114
|
+
newdom.destroy
|
115
|
+
|
116
|
+
# TESTGROUP: dom.updated?
|
117
|
+
newdom = conn.create_domain_xml($new_dom_xml)
|
118
|
+
sleep 1
|
119
|
+
|
120
|
+
expect_too_many_args(newdom, "updated?", 1)
|
121
|
+
|
122
|
+
expect_success(newdom, "no args", "updated?")
|
123
|
+
|
124
|
+
newdom.destroy
|
125
|
+
|
126
|
+
# TESTGROUP: dom.inject_nmi
|
127
|
+
newdom = conn.create_domain_xml($new_dom_xml)
|
128
|
+
sleep 1
|
129
|
+
|
130
|
+
expect_too_many_args(newdom, "inject_nmi", 1, 2)
|
131
|
+
expect_invalid_arg_type(newdom, "inject_nmi", 'foo')
|
132
|
+
|
133
|
+
expect_success(newdom, "no args", "inject_nmi")
|
134
|
+
|
135
|
+
newdom.destroy
|
136
|
+
|
137
|
+
# TESTGROUP: dom.control_info
|
138
|
+
newdom = conn.create_domain_xml($new_dom_xml)
|
139
|
+
sleep 1
|
140
|
+
|
141
|
+
expect_too_many_args(newdom, "control_info", 1, 2)
|
142
|
+
expect_invalid_arg_type(newdom, "control_info", 'foo')
|
143
|
+
|
144
|
+
expect_success(newdom, "no args", "control_info")
|
145
|
+
|
146
|
+
newdom.destroy
|
147
|
+
|
148
|
+
# TESTGROUP: dom.send_key
|
149
|
+
newdom = conn.create_domain_xml($new_dom_xml)
|
150
|
+
sleep 30
|
151
|
+
|
152
|
+
expect_too_many_args(newdom, "send_key", 1, 2, 3, 4)
|
153
|
+
expect_too_few_args(newdom, "send_key")
|
154
|
+
expect_too_few_args(newdom, "send_key", 1)
|
155
|
+
expect_too_few_args(newdom, "send_key", 1, 2)
|
156
|
+
expect_invalid_arg_type(newdom, "send_key", nil, 0, [])
|
157
|
+
expect_invalid_arg_type(newdom, "send_key", nil, 0, [1])
|
158
|
+
expect_invalid_arg_type(newdom, "send_key", 'foo', 0, [])
|
159
|
+
expect_invalid_arg_type(newdom, "send_key", 0, nil, [])
|
160
|
+
expect_invalid_arg_type(newdom, "send_key", 0, 'foo', [])
|
161
|
+
expect_invalid_arg_type(newdom, "send_key", 0, 1, nil)
|
162
|
+
expect_invalid_arg_type(newdom, "send_key", 0, 1, 'foo')
|
163
|
+
expect_invalid_arg_type(newdom, "send_key", 0, 1, 2)
|
164
|
+
expect_invalid_arg_type(newdom, "send_key", nil, 0, [nil])
|
165
|
+
expect_invalid_arg_type(newdom, "send_key", nil, 0, ['foo'])
|
166
|
+
|
167
|
+
# FIXME: this fails for reasons that are unclear to me
|
168
|
+
#expect_success(newdom, "codeset, holdtime, keycodes args", "send_key", 0, 1, [])
|
169
|
+
|
170
|
+
newdom.destroy
|
171
|
+
|
39
172
|
# TESTGROUP: dom.migrate
|
40
173
|
newdom = conn.create_domain_xml($new_dom_xml)
|
41
174
|
sleep 1
|
@@ -94,11 +227,60 @@ expect_fail(newdom, Libvirt::Error, "while no migration in progress", "migrate_s
|
|
94
227
|
|
95
228
|
newdom.destroy
|
96
229
|
|
230
|
+
# TESTGROUP: dom.migrate2
|
231
|
+
newdom = conn.create_domain_xml($new_dom_xml)
|
232
|
+
sleep 1
|
233
|
+
|
234
|
+
dconn = Libvirt::open("qemu:///system")
|
235
|
+
|
236
|
+
expect_too_many_args(newdom, "migrate2", 1, 2, 3, 4, 5, 6, 7)
|
237
|
+
expect_too_few_args(newdom, "migrate2")
|
238
|
+
expect_fail(newdom, ArgumentError, "invalid connection object", "migrate2", "foo")
|
239
|
+
expect_invalid_arg_type(newdom, "migrate2", dconn, 0)
|
240
|
+
|
241
|
+
# FIXME: how can we make this work?
|
242
|
+
#expect_success(newdom, "conn arg", "migrate2", dconn)
|
243
|
+
|
244
|
+
dconn.close
|
245
|
+
|
246
|
+
newdom.destroy
|
247
|
+
|
248
|
+
# TESTGROUP: dom.migrate_to_uri2
|
249
|
+
newdom = conn.create_domain_xml($new_dom_xml)
|
250
|
+
sleep 1
|
251
|
+
|
252
|
+
expect_too_many_args(newdom, "migrate_to_uri2", 1, 2, 3, 4, 5, 6, 7)
|
253
|
+
expect_invalid_arg_type(newdom, "migrate_to_uri2", 1)
|
254
|
+
expect_invalid_arg_type(newdom, "migrate_to_uri2", "qemu:///system", 1)
|
255
|
+
expect_invalid_arg_type(newdom, "migrate_to_uri2", "qemu:///system", 'foo', 1)
|
256
|
+
expect_invalid_arg_type(newdom, "migrate_to_uri2", "qemu:///system", 'foo', 'bar', 'baz')
|
257
|
+
expect_invalid_arg_type(newdom, "migrate_to_uri2", "qemu:///system", 'foo', 'bar', 0, 1)
|
258
|
+
expect_invalid_arg_type(newdom, "migrate_to_uri2", "qemu:///system", 'foo', 'bar', 0, 'foo', 'baz')
|
259
|
+
|
260
|
+
#expect_success(newdom, "URI arg", "migrate_to_uri2", "qemu://remote/system")
|
261
|
+
|
262
|
+
dconn.close
|
263
|
+
|
264
|
+
newdom.destroy
|
265
|
+
|
266
|
+
# TESTGROUP: dom.migrate_set_max_speed
|
267
|
+
newdom = conn.create_domain_xml($new_dom_xml)
|
268
|
+
sleep 1
|
269
|
+
|
270
|
+
expect_too_many_args(newdom, "migrate_set_max_speed", 1, 2, 3)
|
271
|
+
expect_too_few_args(newdom, "migrate_set_max_speed")
|
272
|
+
expect_invalid_arg_type(newdom, "migrate_set_max_speed", 'foo')
|
273
|
+
expect_invalid_arg_type(newdom, "migrate_set_max_speed", 5, 'foo')
|
274
|
+
|
275
|
+
#expect_success(newdom, "Bandwidth arg", "migrate_set_max_speed", 5)
|
276
|
+
|
277
|
+
newdom.destroy
|
278
|
+
|
97
279
|
# TESTGROUP: dom.shutdown
|
98
280
|
newdom = conn.create_domain_xml($new_dom_xml)
|
99
281
|
sleep 1
|
100
282
|
|
101
|
-
expect_too_many_args(newdom, "shutdown", 1)
|
283
|
+
expect_too_many_args(newdom, "shutdown", 1, 2)
|
102
284
|
expect_success(newdom, "no args", "shutdown")
|
103
285
|
sleep 1
|
104
286
|
newdom.destroy
|
@@ -109,22 +291,19 @@ sleep 1
|
|
109
291
|
expect_too_many_args(newdom, "reboot", 1, 2)
|
110
292
|
expect_invalid_arg_type(newdom, "reboot", "hello")
|
111
293
|
|
112
|
-
|
113
|
-
|
114
|
-
newdom.reboot
|
115
|
-
puts_ok "dom.reboot succeeded"
|
116
|
-
rescue Libvirt::Error => e
|
117
|
-
puts_skipped "dom.reboot not supported, skipped"
|
118
|
-
end
|
294
|
+
expect_success(newdom, "no args", "reboot")
|
295
|
+
sleep 1
|
119
296
|
|
297
|
+
expect_success(newdom, "flags arg", "reboot", 0)
|
120
298
|
sleep 1
|
299
|
+
|
121
300
|
newdom.destroy
|
122
301
|
|
123
302
|
# TESTGROUP: dom.destroy
|
124
303
|
newdom = conn.create_domain_xml($new_dom_xml)
|
125
304
|
sleep 1
|
126
305
|
|
127
|
-
expect_too_many_args(newdom, "destroy", 1)
|
306
|
+
expect_too_many_args(newdom, "destroy", 1, 2)
|
128
307
|
expect_success(newdom, "no args", "destroy")
|
129
308
|
|
130
309
|
# TESTGROUP: dom.suspend
|
@@ -147,20 +326,18 @@ expect_success(newdom, "no args suspended domain", "resume")
|
|
147
326
|
newdom.destroy
|
148
327
|
|
149
328
|
# TESTGROUP: dom.save
|
150
|
-
newdom = conn.
|
151
|
-
newdom.create
|
329
|
+
newdom = conn.create_domain_xml($new_dom_xml)
|
152
330
|
sleep 1
|
153
331
|
|
154
|
-
expect_too_many_args(newdom, "save", 1, 2)
|
332
|
+
expect_too_many_args(newdom, "save", 1, 2, 3, 4)
|
155
333
|
expect_too_few_args(newdom, "save")
|
156
334
|
expect_invalid_arg_type(newdom, "save", 1)
|
157
335
|
expect_invalid_arg_type(newdom, "save", nil)
|
158
336
|
expect_fail(newdom, Libvirt::Error, "non-existent path", "save", "/this/path/does/not/exist")
|
159
337
|
|
160
|
-
expect_success(newdom, "path arg", "save",
|
338
|
+
expect_success(newdom, "path arg", "save", $GUEST_SAVE)
|
161
339
|
|
162
|
-
`rm -f
|
163
|
-
newdom.undefine
|
340
|
+
`rm -f #{$GUEST_SAVE}`
|
164
341
|
|
165
342
|
# TESTGROUP: dom.managed_save
|
166
343
|
newdom = conn.define_domain_xml($new_dom_xml)
|
@@ -170,7 +347,7 @@ sleep 1
|
|
170
347
|
expect_too_many_args(newdom, "managed_save", 1, 2)
|
171
348
|
expect_invalid_arg_type(newdom, "managed_save", "hello")
|
172
349
|
expect_success(newdom, "no args", "managed_save")
|
173
|
-
newdom.undefine
|
350
|
+
newdom.undefine(Libvirt::Domain::UNDEFINE_MANAGED_SAVE)
|
174
351
|
|
175
352
|
# TESTGROUP: dom.has_managed_save?
|
176
353
|
newdom = conn.define_domain_xml($new_dom_xml)
|
@@ -181,20 +358,20 @@ expect_too_many_args(newdom, "has_managed_save?", 1, 2)
|
|
181
358
|
expect_invalid_arg_type(newdom, "has_managed_save?", "hello")
|
182
359
|
|
183
360
|
if newdom.has_managed_save?
|
184
|
-
puts_fail "
|
361
|
+
puts_fail "domain.has_managed_save? reports true on a new domain"
|
185
362
|
else
|
186
|
-
puts_ok "
|
363
|
+
puts_ok "domain.has_managed_save? not true on new domain"
|
187
364
|
end
|
188
365
|
|
189
366
|
newdom.managed_save
|
190
367
|
|
191
368
|
if not newdom.has_managed_save?
|
192
|
-
puts_fail "
|
369
|
+
puts_fail "domain.has_managed_save? reports false after a managed save"
|
193
370
|
else
|
194
|
-
puts_ok "
|
371
|
+
puts_ok "domain.has_managed_save? reports true after a managed save"
|
195
372
|
end
|
196
373
|
|
197
|
-
newdom.undefine
|
374
|
+
newdom.undefine(Libvirt::Domain::UNDEFINE_MANAGED_SAVE)
|
198
375
|
|
199
376
|
# TESTGROUP: dom.managed_save_remove
|
200
377
|
newdom = conn.define_domain_xml($new_dom_xml)
|
@@ -206,13 +383,13 @@ expect_too_many_args(newdom, "managed_save_remove", 1, 2)
|
|
206
383
|
expect_invalid_arg_type(newdom, "managed_save_remove", "hello")
|
207
384
|
|
208
385
|
if not newdom.has_managed_save?
|
209
|
-
puts_fail "prior to
|
386
|
+
puts_fail "prior to domain.managed_save_remove, no managed save file"
|
210
387
|
end
|
211
388
|
expect_success(newdom, "no args", "managed_save_remove")
|
212
389
|
if newdom.has_managed_save?
|
213
|
-
puts_fail "after
|
390
|
+
puts_fail "after domain.managed_save_remove, managed save file still exists"
|
214
391
|
else
|
215
|
-
puts_ok "after
|
392
|
+
puts_ok "after domain.managed_save_remove, managed save file no longer exists"
|
216
393
|
end
|
217
394
|
|
218
395
|
newdom.undefine
|
@@ -244,7 +421,7 @@ newdom.undefine
|
|
244
421
|
newdom = conn.define_domain_xml($new_dom_xml)
|
245
422
|
newdom.create
|
246
423
|
sleep 1
|
247
|
-
newdom.save(
|
424
|
+
newdom.save($GUEST_SAVE)
|
248
425
|
|
249
426
|
expect_too_many_args(Libvirt::Domain, "restore", 1, 2, 3)
|
250
427
|
expect_too_few_args(Libvirt::Domain, "restore")
|
@@ -255,9 +432,9 @@ expect_fail(Libvirt::Domain, Libvirt::Error, "invalid path", "restore", conn, "/
|
|
255
432
|
expect_fail(Libvirt::Domain, Libvirt::Error, "invalid save file", "restore", conn, "/tmp/foo")
|
256
433
|
`rm -f /tmp/foo`
|
257
434
|
|
258
|
-
expect_success(Libvirt::Domain, "2 args", "restore", conn,
|
435
|
+
expect_success(Libvirt::Domain, "2 args", "restore", conn, $GUEST_SAVE)
|
259
436
|
|
260
|
-
`rm -f
|
437
|
+
`rm -f #{$GUEST_SAVE}`
|
261
438
|
|
262
439
|
newdom.destroy
|
263
440
|
newdom.undefine
|
@@ -336,12 +513,12 @@ expect_fail(newdom, Libvirt::RetrieveError, "invalid path", "block_peek", "foo",
|
|
336
513
|
|
337
514
|
blockpeek = newdom.block_peek($GUEST_DISK, 0, 512)
|
338
515
|
|
339
|
-
#
|
340
|
-
if blockpeek[0] != 0x51 or blockpeek[1]
|
341
|
-
|
342
|
-
puts_fail "
|
516
|
+
# 0x51 0x46 0x49 0xfb are the first 4 bytes of a qcow2 image
|
517
|
+
if blockpeek[0].unpack('C')[0] != 0x51 or blockpeek[1].unpack('C')[0] != 0x46 or
|
518
|
+
blockpeek[2].unpack('C')[0] != 0x49 or blockpeek[3].unpack('C')[0] != 0xfb
|
519
|
+
puts_fail "domain.block_peek read did not return valid data"
|
343
520
|
else
|
344
|
-
puts_ok "
|
521
|
+
puts_ok "domain.block_peek read valid data"
|
345
522
|
end
|
346
523
|
|
347
524
|
newdom.destroy
|
@@ -362,24 +539,22 @@ expect_success(newdom, "offset and size args", "memory_peek", 0, 512)
|
|
362
539
|
newdom.destroy
|
363
540
|
|
364
541
|
# TESTGROUP: dom.get_vcpus
|
365
|
-
newdom = conn.create_domain_xml($new_dom_xml)
|
366
|
-
sleep 1
|
367
|
-
|
368
542
|
expect_too_many_args(newdom, "get_vcpus", 1)
|
369
543
|
|
370
|
-
|
544
|
+
newdom = conn.define_domain_xml($new_dom_xml)
|
371
545
|
|
372
|
-
newdom.
|
546
|
+
expect_success(newdom, "get_vcpus on shutoff domain", "get_vcpus") {|x| x.length == 2}
|
373
547
|
|
374
|
-
|
375
|
-
newdom = conn.create_domain_xml($new_dom_xml)
|
548
|
+
newdom.create
|
376
549
|
sleep 1
|
377
550
|
|
378
|
-
|
379
|
-
|
380
|
-
expect_success(newdom, "no args", "active?") {|x| x == true}
|
551
|
+
expect_success(newdom, "no args", "get_vcpus") {|x| x.length == 2}
|
381
552
|
|
382
553
|
newdom.destroy
|
554
|
+
newdom.undefine
|
555
|
+
|
556
|
+
# TESTGROUP: dom.active?
|
557
|
+
expect_too_many_args(newdom, "active?", 1)
|
383
558
|
|
384
559
|
newdom = conn.define_domain_xml($new_dom_xml)
|
385
560
|
|
@@ -479,15 +654,7 @@ expect_too_many_args(newdom, "max_memory=", 1, 2)
|
|
479
654
|
expect_too_few_args(newdom, "max_memory=")
|
480
655
|
expect_invalid_arg_type(newdom, "max_memory=", 'foo')
|
481
656
|
|
482
|
-
|
483
|
-
newdom.max_memory = 200000
|
484
|
-
puts_ok "dom.max_memory= succeded"
|
485
|
-
rescue NoMethodError
|
486
|
-
puts_skipped "dom.max_memory does not exist"
|
487
|
-
rescue Libvirt::DefinitionError => e
|
488
|
-
# dom.max_memory is not supported by Qemu; skip
|
489
|
-
puts_skipped "dom.max_memory not supported by connection driver"
|
490
|
-
end
|
657
|
+
expect_success(newdom, "memory arg", "max_memory=", 200000)
|
491
658
|
|
492
659
|
newdom.undefine
|
493
660
|
|
@@ -495,10 +662,11 @@ newdom.undefine
|
|
495
662
|
newdom = conn.define_domain_xml($new_dom_xml)
|
496
663
|
|
497
664
|
expect_too_many_args(newdom, "memory=", 1, 2)
|
665
|
+
expect_too_many_args(newdom, "memory=", [1, 2, 3])
|
498
666
|
expect_too_few_args(newdom, "memory=")
|
667
|
+
expect_too_few_args(newdom, "memory=", [])
|
499
668
|
expect_invalid_arg_type(newdom, "memory=", 'foo')
|
500
|
-
|
501
|
-
expect_fail(newdom, Libvirt::Error, "shutoff domain", "memory=", 2)
|
669
|
+
expect_fail(newdom, Libvirt::Error, "shutoff domain", "memory=", [2, Libvirt::Domain::AFFECT_LIVE])
|
502
670
|
|
503
671
|
newdom.undefine
|
504
672
|
|
@@ -523,18 +691,18 @@ newdom.destroy
|
|
523
691
|
newdom = conn.define_domain_xml($new_dom_xml)
|
524
692
|
|
525
693
|
expect_too_many_args(newdom, "vcpus=", 1, 2)
|
694
|
+
expect_too_many_args(newdom, "vcpus=", [0, 1, 2])
|
526
695
|
expect_too_few_args(newdom, "vcpus=")
|
696
|
+
expect_too_few_args(newdom, "vcpus=", [])
|
527
697
|
expect_invalid_arg_type(newdom, "vcpus=", 'foo')
|
528
|
-
|
529
|
-
expect_fail(newdom, Libvirt::Error, "shutoff domain", "vcpus=", 2)
|
698
|
+
expect_fail(newdom, Libvirt::Error, "shutoff domain", "vcpus=", [2, Libvirt::Domain::AFFECT_LIVE])
|
530
699
|
|
531
700
|
newdom.undefine
|
532
701
|
|
533
702
|
newdom = conn.create_domain_xml($new_dom_xml)
|
534
703
|
sleep 1
|
535
704
|
|
536
|
-
|
537
|
-
#expect_success(newdom, "number arg", "vcpus=", 2)
|
705
|
+
expect_success(newdom, "number arg", "vcpus=", 2)
|
538
706
|
|
539
707
|
newdom.destroy
|
540
708
|
|
@@ -542,7 +710,7 @@ newdom.destroy
|
|
542
710
|
newdom = conn.create_domain_xml($new_dom_xml)
|
543
711
|
sleep 1
|
544
712
|
|
545
|
-
expect_too_many_args(newdom, "pin_vcpu", 1, 2, 3)
|
713
|
+
expect_too_many_args(newdom, "pin_vcpu", 1, 2, 3, 4)
|
546
714
|
expect_too_few_args(newdom, "pin_vcpu")
|
547
715
|
expect_invalid_arg_type(newdom, "pin_vcpu", 'foo', [0])
|
548
716
|
expect_invalid_arg_type(newdom, "pin_vcpu", 0, 1)
|
@@ -565,7 +733,7 @@ newdom.destroy
|
|
565
733
|
# TESTGROUP: dom.undefine
|
566
734
|
newdom = conn.define_domain_xml($new_dom_xml)
|
567
735
|
|
568
|
-
expect_too_many_args(newdom, "undefine", 1)
|
736
|
+
expect_too_many_args(newdom, "undefine", 1, 2)
|
569
737
|
|
570
738
|
expect_success(newdom, "no args", "undefine")
|
571
739
|
|
@@ -605,16 +773,16 @@ expect_invalid_arg_type(newdom, "autostart=", 1234)
|
|
605
773
|
|
606
774
|
expect_success(newdom, "true arg", "autostart=", true)
|
607
775
|
if not newdom.autostart?
|
608
|
-
puts_fail "
|
776
|
+
puts_fail "domain.autostart= did not set autostart to true"
|
609
777
|
else
|
610
|
-
puts_ok "
|
778
|
+
puts_ok "domain.autostart= set autostart to true"
|
611
779
|
end
|
612
780
|
|
613
781
|
expect_success(newdom, "false arg", "autostart=", false)
|
614
782
|
if newdom.autostart?
|
615
|
-
puts_fail "
|
783
|
+
puts_fail "domain.autostart= did not set autostart to false"
|
616
784
|
else
|
617
|
-
puts_ok "
|
785
|
+
puts_ok "domain.autostart= set autostart to false"
|
618
786
|
end
|
619
787
|
|
620
788
|
newdom.undefine
|
@@ -681,8 +849,7 @@ newdom = conn.define_domain_xml($new_dom_xml)
|
|
681
849
|
newdom.undefine
|
682
850
|
expect_too_many_args(newdom, "free", 1)
|
683
851
|
|
684
|
-
newdom
|
685
|
-
puts_ok "dom.free succeeded"
|
852
|
+
expect_success(newdom, "free", "free")
|
686
853
|
|
687
854
|
# TESTGROUP: dom.snapshot_create_xml
|
688
855
|
newdom = conn.define_domain_xml($new_dom_xml)
|
@@ -697,12 +864,12 @@ expect_success(newdom, "simple XML arg", "snapshot_create_xml", "<domainsnapshot
|
|
697
864
|
|
698
865
|
snaps = newdom.num_of_snapshots
|
699
866
|
if snaps != 1
|
700
|
-
puts_fail "
|
867
|
+
puts_fail "domain.snapshot_create_xml after one snapshot has #{snaps} snapshots"
|
701
868
|
else
|
702
|
-
puts_ok "
|
869
|
+
puts_ok "domain.snapshot_create_xml after one snapshot has 1 snapshot"
|
703
870
|
end
|
704
871
|
|
705
|
-
newdom.undefine
|
872
|
+
newdom.undefine(Libvirt::Domain::UNDEFINE_SNAPSHOTS_METADATA)
|
706
873
|
|
707
874
|
# TESTGROUP: dom.num_of_snapshots
|
708
875
|
newdom = conn.define_domain_xml($new_dom_xml)
|
@@ -716,7 +883,7 @@ newdom.snapshot_create_xml("<domainsnapshot/>")
|
|
716
883
|
|
717
884
|
expect_success(newdom, "no args", "num_of_snapshots") {|x| x == 1}
|
718
885
|
|
719
|
-
newdom.undefine
|
886
|
+
newdom.undefine(Libvirt::Domain::UNDEFINE_SNAPSHOTS_METADATA)
|
720
887
|
|
721
888
|
# TESTGROUP: dom.list_snapshots
|
722
889
|
newdom = conn.define_domain_xml($new_dom_xml)
|
@@ -730,7 +897,7 @@ newdom.snapshot_create_xml("<domainsnapshot/>")
|
|
730
897
|
|
731
898
|
expect_success(newdom, "no args", "list_snapshots") {|x| x.length == 1}
|
732
899
|
|
733
|
-
newdom.undefine
|
900
|
+
newdom.undefine(Libvirt::Domain::UNDEFINE_SNAPSHOTS_METADATA)
|
734
901
|
|
735
902
|
# TESTGROUP: dom.lookup_snapshot_by_name
|
736
903
|
newdom = conn.define_domain_xml($new_dom_xml)
|
@@ -743,7 +910,7 @@ expect_invalid_arg_type(newdom, "lookup_snapshot_by_name", 'foo', 'bar')
|
|
743
910
|
|
744
911
|
expect_success(newdom, "name arg", "lookup_snapshot_by_name", "foo")
|
745
912
|
|
746
|
-
newdom.undefine
|
913
|
+
newdom.undefine(Libvirt::Domain::UNDEFINE_SNAPSHOTS_METADATA)
|
747
914
|
|
748
915
|
# TESTGROUP: dom.has_current_snapshot?
|
749
916
|
newdom = conn.define_domain_xml($new_dom_xml)
|
@@ -757,7 +924,7 @@ newdom.snapshot_create_xml("<domainsnapshot><name>foo</name></domainsnapshot>")
|
|
757
924
|
|
758
925
|
expect_success(newdom, "no args", "has_current_snapshot?") {|x| x == true}
|
759
926
|
|
760
|
-
newdom.undefine
|
927
|
+
newdom.undefine(Libvirt::Domain::UNDEFINE_SNAPSHOTS_METADATA)
|
761
928
|
|
762
929
|
# TESTGROUP: dom.revert_to_snapshot
|
763
930
|
newdom = conn.define_domain_xml($new_dom_xml)
|
@@ -775,7 +942,7 @@ expect_invalid_arg_type(newdom, "revert_to_snapshot", snap, 'foo')
|
|
775
942
|
|
776
943
|
expect_success(newdom, "snapshot arg", "revert_to_snapshot", snap)
|
777
944
|
|
778
|
-
newdom.undefine
|
945
|
+
newdom.undefine(Libvirt::Domain::UNDEFINE_SNAPSHOTS_METADATA)
|
779
946
|
|
780
947
|
# TESTGROUP: dom.current_snapshot
|
781
948
|
newdom = conn.define_domain_xml($new_dom_xml)
|
@@ -788,36 +955,7 @@ newdom.snapshot_create_xml("<domainsnapshot><name>foo</name></domainsnapshot>")
|
|
788
955
|
|
789
956
|
expect_success(newdom, "no args", "current_snapshot")
|
790
957
|
|
791
|
-
newdom.undefine
|
792
|
-
|
793
|
-
# TESTGROUP: snapshot.xml_desc
|
794
|
-
newdom = conn.define_domain_xml($new_dom_xml)
|
795
|
-
snap = newdom.snapshot_create_xml("<domainsnapshot/>")
|
796
|
-
|
797
|
-
expect_too_many_args(snap, "xml_desc", 1, 2)
|
798
|
-
expect_invalid_arg_type(snap, "xml_desc", 'foo')
|
799
|
-
|
800
|
-
expect_success(newdom, "no args", "xml_desc")
|
801
|
-
|
802
|
-
newdom.undefine
|
803
|
-
|
804
|
-
# TESTGROUP: snapshot.delete
|
805
|
-
newdom = conn.define_domain_xml($new_dom_xml)
|
806
|
-
snap = newdom.snapshot_create_xml("<domainsnapshot/>")
|
807
|
-
|
808
|
-
expect_too_many_args(snap, "delete", 1, 2)
|
809
|
-
expect_invalid_arg_type(snap, "delete", 'foo')
|
810
|
-
|
811
|
-
expect_success(snap, "no args", "delete")
|
812
|
-
|
813
|
-
newdom.undefine
|
814
|
-
|
815
|
-
# TESTGROUP: snapshot.free
|
816
|
-
newdom = conn.define_domain_xml($new_dom_xml)
|
817
|
-
newdom.undefine
|
818
|
-
expect_too_many_args(newdom, "free", 1)
|
819
|
-
|
820
|
-
expect_success(newdom, "no args", "free")
|
958
|
+
newdom.undefine(Libvirt::Domain::UNDEFINE_SNAPSHOTS_METADATA)
|
821
959
|
|
822
960
|
# TESTGROUP: dom.job_info
|
823
961
|
newdom = conn.define_domain_xml($new_dom_xml)
|
@@ -859,32 +997,16 @@ newdom = conn.define_domain_xml($new_dom_xml)
|
|
859
997
|
|
860
998
|
expect_too_many_args(newdom, "scheduler_type", 1)
|
861
999
|
|
862
|
-
|
863
|
-
newdom.scheduler_type
|
864
|
-
puts_ok "dom.scheduler_type succeeded"
|
865
|
-
rescue NoMethodError
|
866
|
-
puts_skipped "dom.scheduler_type does not exist"
|
867
|
-
rescue Libvirt::RetrieveError
|
868
|
-
# this may not be supported (if cgroups aren't configured), so skip it
|
869
|
-
puts_skipped "dom.scheduler_type not supported"
|
870
|
-
end
|
1000
|
+
expect_success(newdom, "no args", "scheduler_type")
|
871
1001
|
|
872
1002
|
newdom.undefine
|
873
1003
|
|
874
1004
|
# TESTGROUP: dom.scheduler_parameters
|
875
1005
|
newdom = conn.define_domain_xml($new_dom_xml)
|
876
1006
|
|
877
|
-
expect_too_many_args(newdom, "scheduler_parameters", 1)
|
1007
|
+
expect_too_many_args(newdom, "scheduler_parameters", 1, 1)
|
878
1008
|
|
879
|
-
|
880
|
-
newdom.scheduler_parameters
|
881
|
-
puts_ok "dom.scheduler_parameters succeeded"
|
882
|
-
rescue NoMethodError
|
883
|
-
puts_skipped "dom.scheduler_parameters does not exist"
|
884
|
-
rescue Libvirt::RetrieveError
|
885
|
-
# this may not be supported (if cgroups aren't configured), so skip it
|
886
|
-
puts_ok "dom.scheduler_parameters not supported"
|
887
|
-
end
|
1009
|
+
expect_success(newdom, "no args", "scheduler_parameters")
|
888
1010
|
|
889
1011
|
newdom.undefine
|
890
1012
|
|
@@ -895,14 +1017,7 @@ expect_too_many_args(newdom, "scheduler_parameters=", 1, 2)
|
|
895
1017
|
expect_too_few_args(newdom, "scheduler_parameters=")
|
896
1018
|
expect_invalid_arg_type(newdom, "scheduler_parameters=", 0)
|
897
1019
|
|
898
|
-
|
899
|
-
newdom.scheduler_parameters={"cpu_shares"=>512}
|
900
|
-
rescue NoMethodError
|
901
|
-
puts_skipped "dom.scheduler_parameters= does not exist"
|
902
|
-
rescue Libvirt::RetrieveError
|
903
|
-
# this may not be supported (if cgroups aren't configured), so skip it
|
904
|
-
puts_ok "dom.scheduler_parameters= not supported"
|
905
|
-
end
|
1020
|
+
expect_success(newdom, "cpu shares arg", "scheduler_parameters=", {"cpu_shares" => 512})
|
906
1021
|
|
907
1022
|
newdom.undefine
|
908
1023
|
|
@@ -942,11 +1057,12 @@ expect_too_many_args(newdom, "qemu_monitor_command", 1, 2, 3)
|
|
942
1057
|
expect_too_few_args(newdom, "qemu_monitor_command")
|
943
1058
|
expect_invalid_arg_type(newdom, "qemu_monitor_command", 1)
|
944
1059
|
expect_invalid_arg_type(newdom, "qemu_monitor_command", "foo", "bar")
|
945
|
-
|
946
|
-
|
947
|
-
|
948
|
-
fakedom
|
949
|
-
|
1060
|
+
# FIXME: the test driver doesn't support virDomainDestroyFlags() presently
|
1061
|
+
#testconn = Libvirt::open("test:///default")
|
1062
|
+
#fakedom = testconn.create_domain_xml(new_test_xml)
|
1063
|
+
#expect_invalid_arg_type(fakedom, "qemu_monitor_command", "foo")
|
1064
|
+
#fakedom.destroy
|
1065
|
+
#testconn.close
|
950
1066
|
expect_fail(newdom, Libvirt::RetrieveError, "invalid command", "qemu_monitor_command", "foo")
|
951
1067
|
|
952
1068
|
expect_success(newdom, "monitor command", "qemu_monitor_command", '{"execute":"query-cpus"}')
|
@@ -959,7 +1075,6 @@ newdom = conn.define_domain_xml($new_dom_xml)
|
|
959
1075
|
expect_too_many_args(newdom, "num_vcpus", 1, 2)
|
960
1076
|
expect_too_few_args(newdom, "num_vcpus")
|
961
1077
|
expect_invalid_arg_type(newdom, "num_vcpus", 'foo')
|
962
|
-
expect_fail(newdom, Libvirt::Error, "zero flags", "num_vcpus", 0)
|
963
1078
|
expect_fail(newdom, Libvirt::Error, "active flag on shutoff domain", "num_vcpus", Libvirt::Domain::VCPU_LIVE)
|
964
1079
|
expect_fail(newdom, Libvirt::Error, "live and config flags", "num_vcpus", Libvirt::Domain::VCPU_LIVE | Libvirt::Domain::VCPU_CONFIG)
|
965
1080
|
expect_success(newdom, "config flag", "num_vcpus", Libvirt::Domain::VCPU_CONFIG) {|x| x == 2}
|
@@ -969,55 +1084,27 @@ newdom.undefine
|
|
969
1084
|
newdom = conn.create_domain_xml($new_dom_xml)
|
970
1085
|
sleep 1
|
971
1086
|
|
972
|
-
|
1087
|
+
expect_fail(newdom, Libvirt::RetrieveError, "config flag on transient domain", "num_vcpus", Libvirt::Domain::VCPU_CONFIG)
|
973
1088
|
expect_success(newdom, "live flag on transient domain", "num_vcpus", Libvirt::Domain::VCPU_LIVE)
|
974
1089
|
|
975
1090
|
newdom.destroy
|
976
1091
|
|
977
1092
|
# TESTGROUP: dom.vcpus_flags=
|
978
|
-
|
979
|
-
|
980
|
-
expect_too_many_args(newdom, "vcpus_flags=", 1, 2, 3)
|
981
|
-
expect_too_few_args(newdom, "vcpus_flags=")
|
982
|
-
expect_invalid_arg_type(newdom, "vcpus_flags=", 1)
|
983
|
-
expect_invalid_arg_type(newdom, "vcpus_flags=", ['foo', 2])
|
984
|
-
expect_invalid_arg_type(newdom, "vcpus_flags=", [2, 'foo'])
|
985
|
-
expect_fail(newdom, Libvirt::Error, "zero flags", "vcpus_flags=", [2, 0])
|
986
|
-
expect_fail(newdom, Libvirt::Error, "zero vcpus", "vcpus_flags=", [0, Libvirt::Domain::VCPU_CONFIG])
|
987
|
-
expect_fail(newdom, Libvirt::Error, "live vcpu on shutoff domain", "vcpus_flags=", [2, Libvirt::Domain::VCPU_LIVE])
|
988
|
-
expect_success(newdom, "2 vcpu config", "vcpus_flags=", [2, Libvirt::Domain::VCPU_CONFIG])
|
989
|
-
|
990
|
-
newdom.undefine
|
991
|
-
|
992
|
-
newdom = conn.create_domain_xml($new_dom_xml)
|
993
|
-
sleep 1
|
994
|
-
|
995
|
-
expect_fail(newdom, Libvirt::Error, "vcpu config on transient domain", "vcpus_flags=", [2, Libvirt::Domain::VCPU_CONFIG])
|
996
|
-
expect_fail(newdom, Libvirt::Error, "too many vcpus", "vcpus_flags=", [4, Libvirt::Domain::VCPU_LIVE])
|
997
|
-
|
998
|
-
# FIXME: this doesn't work for some reason
|
999
|
-
#expect_success(newdom, "vcpus to 1", "vcpus_flags=", [1, Libvirt::Domain::VCPU_LIVE])
|
1000
|
-
|
1001
|
-
newdom.destroy
|
1093
|
+
# dom.vcpus_flags= is deprecated in favor of dom.vcpus=, so we don't do any
|
1094
|
+
# tests here for it
|
1002
1095
|
|
1003
1096
|
# TESTGROUP: dom.memory_parameters=
|
1004
1097
|
newdom = conn.define_domain_xml($new_dom_xml)
|
1005
1098
|
|
1006
1099
|
expect_too_many_args(newdom, "memory_parameters=", 1, 2, 3)
|
1100
|
+
expect_too_many_args(newdom, "memory_parameters=", [1, 2, 3])
|
1007
1101
|
expect_too_few_args(newdom, "memory_parameters=")
|
1102
|
+
expect_too_few_args(newdom, "memory_parameters=", [])
|
1008
1103
|
expect_invalid_arg_type(newdom, "memory_parameters=", 0)
|
1009
|
-
expect_fail(newdom, ArgumentError, "empty array", "memory_parameters=", [])
|
1010
1104
|
expect_invalid_arg_type(newdom, "memory_parameters=", [1, 0])
|
1011
1105
|
expect_invalid_arg_type(newdom, "memory_parameters=", [{}, "foo"])
|
1012
1106
|
|
1013
|
-
|
1014
|
-
newdom.memory_parameters={"soft_limit" => 9007199254740999, "swap_hard_limit" => 9007199254740999}
|
1015
|
-
rescue NoMethodError
|
1016
|
-
puts_skipped "dom.memory_parameters= does not exist"
|
1017
|
-
rescue Libvirt::RetrieveError
|
1018
|
-
# this may not be supported (if cgroups aren't configured), so skip it
|
1019
|
-
puts_skipped "memory_parameters= not supported"
|
1020
|
-
end
|
1107
|
+
expect_success(newdom, "soft and hard limit", "memory_parameters=", {"soft_limit" => 9007199254740999, "swap_hard_limit" => 9007199254740999})
|
1021
1108
|
|
1022
1109
|
newdom.undefine
|
1023
1110
|
|
@@ -1026,15 +1113,7 @@ newdom = conn.define_domain_xml($new_dom_xml)
|
|
1026
1113
|
|
1027
1114
|
expect_too_many_args(newdom, "memory_parameters", 1, 2)
|
1028
1115
|
|
1029
|
-
|
1030
|
-
newdom.memory_parameters
|
1031
|
-
puts_ok "dom.memory_parameters succeeded"
|
1032
|
-
rescue NoMethodError
|
1033
|
-
puts_skipped "memory_parameters does not exist"
|
1034
|
-
rescue Libvirt::RetrieveError
|
1035
|
-
# this may not be supported (if cgroups aren't configured), so skip it
|
1036
|
-
puts_skipped "memory_parameters not supported"
|
1037
|
-
end
|
1116
|
+
expect_success(newdom, "no args", "memory_parameters")
|
1038
1117
|
|
1039
1118
|
newdom.undefine
|
1040
1119
|
|
@@ -1042,20 +1121,14 @@ newdom.undefine
|
|
1042
1121
|
newdom = conn.define_domain_xml($new_dom_xml)
|
1043
1122
|
|
1044
1123
|
expect_too_many_args(newdom, "blkio_parameters=", 1, 2, 3)
|
1124
|
+
expect_too_many_args(newdom, "blkio_parameters=", [1, 2, 3])
|
1045
1125
|
expect_too_few_args(newdom, "blkio_parameters=")
|
1126
|
+
expect_too_few_args(newdom, "blkio_parameters=", [])
|
1046
1127
|
expect_invalid_arg_type(newdom, "blkio_parameters=", 0)
|
1047
|
-
expect_fail(newdom, ArgumentError, "empty array", "blkio_parameters=", [])
|
1048
1128
|
expect_invalid_arg_type(newdom, "blkio_parameters=", [1, 0])
|
1049
1129
|
expect_invalid_arg_type(newdom, "blkio_parameters=", [{}, "foo"])
|
1050
1130
|
|
1051
|
-
|
1052
|
-
newdom.blkio_parameters={"weight" => 1}
|
1053
|
-
rescue NoMethodError
|
1054
|
-
puts_skipped "blkio_parameters= does not exist"
|
1055
|
-
rescue Libvirt::RetrieveError
|
1056
|
-
# this may not be supported (if cgroups aren't configured), so skip it
|
1057
|
-
puts_skipped "blkio_parameters= not supported"
|
1058
|
-
end
|
1131
|
+
expect_success(newdom, "hash", "blkio_parameters=", {"weight" => 100})
|
1059
1132
|
|
1060
1133
|
newdom.undefine
|
1061
1134
|
|
@@ -1064,20 +1137,12 @@ newdom = conn.define_domain_xml($new_dom_xml)
|
|
1064
1137
|
|
1065
1138
|
expect_too_many_args(newdom, "blkio_parameters", 1, 2)
|
1066
1139
|
|
1067
|
-
|
1068
|
-
newdom.blkio_parameters
|
1069
|
-
puts_ok "dom.blkio_parameters succeeded"
|
1070
|
-
rescue NoMethodError
|
1071
|
-
puts_skipped "blkio_parameters does not exist"
|
1072
|
-
rescue Libvirt::RetrieveError
|
1073
|
-
# this may not be supported (if cgroups aren't configured), so skip it
|
1074
|
-
puts_skipped "blkio_parameters not supported"
|
1075
|
-
end
|
1140
|
+
expect_success(newdom, "no args", "blkio_parameters")
|
1076
1141
|
|
1077
1142
|
newdom.undefine
|
1078
1143
|
|
1079
1144
|
# TESTGROUP: dom.open_console
|
1080
|
-
newdom = conn.create_domain_xml(new_dom_xml)
|
1145
|
+
newdom = conn.create_domain_xml($new_dom_xml)
|
1081
1146
|
stream = conn.stream
|
1082
1147
|
|
1083
1148
|
expect_too_many_args(newdom, "open_console", 1, 2, 3, 4)
|
@@ -1087,10 +1152,289 @@ expect_invalid_arg_type(newdom, "open_console", 1, stream)
|
|
1087
1152
|
expect_invalid_arg_type(newdom, "open_console", "pty", 1)
|
1088
1153
|
expect_invalid_arg_type(newdom, "open_console", "pty", stream, "wow")
|
1089
1154
|
|
1090
|
-
expect_success(newdom, "device and stream args", "open_console", "pty", stream)
|
1155
|
+
#expect_success(newdom, "device and stream args", "open_console", "pty", stream)
|
1156
|
+
|
1157
|
+
newdom.destroy
|
1158
|
+
|
1159
|
+
# TESTGROUP: dom.block_rebase
|
1160
|
+
newdom = conn.create_domain_xml($new_dom_xml)
|
1161
|
+
|
1162
|
+
expect_too_many_args(newdom, "block_rebase", 1, 2, 3, 4, 5)
|
1163
|
+
expect_too_few_args(newdom, "block_rebase")
|
1164
|
+
expect_invalid_arg_type(newdom, "block_rebase", 1)
|
1165
|
+
expect_invalid_arg_type(newdom, "block_rebase", "foo", 1)
|
1166
|
+
expect_invalid_arg_type(newdom, "block_rebase", "foo", "bar", "baz")
|
1167
|
+
expect_invalid_arg_type(newdom, "block_rebase", "foo", "bar", 1, "boom")
|
1168
|
+
|
1169
|
+
# FIXME: I don't know how to make block_rebase work
|
1170
|
+
#expect_success(newdom, "disk", "block_rebase", diskname)
|
1171
|
+
|
1172
|
+
newdom.destroy
|
1173
|
+
|
1174
|
+
# TESTGROUP: dom.migrate_max_downtime=
|
1175
|
+
newdom = conn.define_domain_xml($new_dom_xml)
|
1176
|
+
|
1177
|
+
expect_too_many_args(newdom, "migrate_max_downtime=", 1, 2)
|
1178
|
+
expect_too_many_args(newdom, "migrate_max_downtime=", [1, 2, 3])
|
1179
|
+
expect_too_few_args(newdom, "migrate_max_downtime=")
|
1180
|
+
expect_too_few_args(newdom, "migrate_max_downtime=", [])
|
1181
|
+
expect_invalid_arg_type(newdom, "migrate_max_downtime=", 'foo')
|
1182
|
+
expect_invalid_arg_type(newdom, "migrate_max_downtime=", nil)
|
1183
|
+
expect_fail(newdom, Libvirt::Error, "on off domain", "migrate_max_downtime=", 10)
|
1184
|
+
expect_fail(newdom, Libvirt::Error, "on off domain, two args", "migrate_max_downtime=", [10, 10])
|
1185
|
+
|
1186
|
+
newdom.undefine
|
1187
|
+
|
1188
|
+
newdom = conn.create_domain_xml($new_dom_xml)
|
1189
|
+
sleep 1
|
1190
|
+
expect_fail(newdom, Libvirt::Error, "while no migration in progress", "migrate_max_downtime=", 10)
|
1191
|
+
|
1192
|
+
# FIXME: get this working
|
1193
|
+
#newdom.migrate_to_uri("qemu://remote/system")
|
1194
|
+
#expect_success(newdom, "10 second downtime", "migrate_max_downtime=", 10)
|
1195
|
+
|
1196
|
+
newdom.destroy
|
1197
|
+
|
1198
|
+
# TESTGROUP: dom.migrate_max_speed=
|
1199
|
+
newdom = conn.create_domain_xml($new_dom_xml)
|
1200
|
+
sleep 1
|
1201
|
+
|
1202
|
+
expect_too_many_args(newdom, "migrate_max_speed=", 1, 2)
|
1203
|
+
expect_too_many_args(newdom, "migrate_max_speed=", [1, 2, 3])
|
1204
|
+
expect_too_few_args(newdom, "migrate_max_speed=")
|
1205
|
+
expect_too_few_args(newdom, "migrate_max_speed=", [])
|
1206
|
+
expect_invalid_arg_type(newdom, "migrate_max_speed=", 'foo')
|
1207
|
+
expect_invalid_arg_type(newdom, "migrate_max_speed=", nil)
|
1208
|
+
expect_invalid_arg_type(newdom, "migrate_max_speed=", ['foo', 1])
|
1209
|
+
expect_invalid_arg_type(newdom, "migrate_max_speed=", [1, 'foo'])
|
1210
|
+
|
1211
|
+
#expect_success(newdom, "Bandwidth arg", "migrate_max_speed=", 5)
|
1212
|
+
|
1213
|
+
newdom.destroy
|
1214
|
+
|
1215
|
+
# TESTGROUP: dom.state
|
1216
|
+
newdom = conn.create_domain_xml($new_dom_xml)
|
1217
|
+
sleep 1
|
1218
|
+
|
1219
|
+
expect_too_many_args(newdom, "state", 1, 2)
|
1220
|
+
expect_invalid_arg_type(newdom, "state", 'foo')
|
1221
|
+
|
1222
|
+
expect_success(newdom, "no arg", "state")
|
1091
1223
|
|
1092
1224
|
newdom.destroy
|
1093
1225
|
|
1226
|
+
# TESTGROUP: dom.screenshot
|
1227
|
+
newdom = conn.create_domain_xml($new_dom_xml)
|
1228
|
+
sleep 1
|
1229
|
+
|
1230
|
+
stream = conn.stream
|
1231
|
+
|
1232
|
+
expect_too_many_args(newdom, "screenshot", 1, 2, 3, 4)
|
1233
|
+
expect_too_few_args(newdom, "screenshot")
|
1234
|
+
expect_too_few_args(newdom, "screenshot", stream)
|
1235
|
+
expect_invalid_arg_type(newdom, "screenshot", 1, 0)
|
1236
|
+
expect_invalid_arg_type(newdom, "screenshot", nil, 0)
|
1237
|
+
expect_invalid_arg_type(newdom, "screenshot", stream, nil)
|
1238
|
+
expect_invalid_arg_type(newdom, "screenshot", stream, 'foo')
|
1239
|
+
expect_invalid_arg_type(newdom, "screenshot", stream, 0, 'foo')
|
1240
|
+
|
1241
|
+
expect_success(newdom, "stream and screen arg", "screenshot", stream, 0)
|
1242
|
+
|
1243
|
+
newdom.destroy
|
1244
|
+
|
1245
|
+
# TESTGROUP: dom.vcpus_flags=
|
1246
|
+
newdom = conn.define_domain_xml($new_dom_xml)
|
1247
|
+
|
1248
|
+
expect_too_many_args(newdom, "vcpus_flags=", 1, 2)
|
1249
|
+
expect_too_many_args(newdom, "vcpus_flags=", [0, 1, 2])
|
1250
|
+
expect_too_few_args(newdom, "vcpus_flags=")
|
1251
|
+
expect_too_few_args(newdom, "vcpus_flags=", [])
|
1252
|
+
expect_invalid_arg_type(newdom, "vcpus_flags=", 'foo')
|
1253
|
+
expect_fail(newdom, Libvirt::Error, "shutoff domain", "vcpus_flags=", [2, Libvirt::Domain::AFFECT_LIVE])
|
1254
|
+
|
1255
|
+
newdom.undefine
|
1256
|
+
|
1257
|
+
newdom = conn.create_domain_xml($new_dom_xml)
|
1258
|
+
sleep 1
|
1259
|
+
|
1260
|
+
expect_success(newdom, "number arg", "vcpus_flags=", 2)
|
1261
|
+
|
1262
|
+
newdom.destroy
|
1263
|
+
|
1264
|
+
# TESTGROUP: domain.list_all_snapshots
|
1265
|
+
newdom = conn.define_domain_xml($new_dom_xml)
|
1266
|
+
snap = newdom.snapshot_create_xml("<domainsnapshot/>")
|
1267
|
+
|
1268
|
+
expect_too_many_args(newdom, "list_all_snapshots", 1, 2)
|
1269
|
+
expect_invalid_arg_type(newdom, "list_all_snapshots", 'foo')
|
1270
|
+
|
1271
|
+
expect_success(newdom, "no args", "list_all_snapshots")
|
1272
|
+
|
1273
|
+
newdom.undefine(Libvirt::Domain::UNDEFINE_SNAPSHOTS_METADATA)
|
1274
|
+
sleep 1
|
1275
|
+
|
1276
|
+
# TESTGROUP: domain.open_graphics
|
1277
|
+
newdom = conn.create_domain_xml($new_dom_xml)
|
1278
|
+
sleep 1
|
1279
|
+
|
1280
|
+
expect_too_many_args(newdom, "open_graphics", 1, 2, 3, 4)
|
1281
|
+
expect_too_few_args(newdom, "open_graphics")
|
1282
|
+
expect_invalid_arg_type(newdom, "open_graphics", nil)
|
1283
|
+
expect_invalid_arg_type(newdom, "open_graphics", 'foo')
|
1284
|
+
expect_invalid_arg_type(newdom, "open_graphics", [])
|
1285
|
+
expect_invalid_arg_type(newdom, "open_graphics", {})
|
1286
|
+
expect_invalid_arg_type(newdom, "open_graphics", 4, 'foo')
|
1287
|
+
expect_invalid_arg_type(newdom, "open_graphics", 4, [])
|
1288
|
+
expect_invalid_arg_type(newdom, "open_graphics", 4, {})
|
1289
|
+
expect_invalid_arg_type(newdom, "open_graphics", 4, 0, 'foo')
|
1290
|
+
expect_invalid_arg_type(newdom, "open_graphics", 4, 0, [])
|
1291
|
+
expect_invalid_arg_type(newdom, "open_graphics", 4, 0, {})
|
1292
|
+
|
1293
|
+
#expect_success(newdom, "fd arg", "open_graphics", fd)
|
1294
|
+
|
1295
|
+
set_test_object("snapshot")
|
1296
|
+
|
1297
|
+
# TESTGROUP: snapshot.xml_desc
|
1298
|
+
newdom = conn.define_domain_xml($new_dom_xml)
|
1299
|
+
snap = newdom.snapshot_create_xml("<domainsnapshot/>")
|
1300
|
+
|
1301
|
+
expect_too_many_args(snap, "xml_desc", 1, 2)
|
1302
|
+
expect_invalid_arg_type(snap, "xml_desc", 'foo')
|
1303
|
+
|
1304
|
+
expect_success(newdom, "no args", "xml_desc")
|
1305
|
+
|
1306
|
+
newdom.undefine(Libvirt::Domain::UNDEFINE_SNAPSHOTS_METADATA)
|
1307
|
+
sleep 1
|
1308
|
+
|
1309
|
+
# TESTGROUP: snapshot.delete
|
1310
|
+
newdom = conn.define_domain_xml($new_dom_xml)
|
1311
|
+
snap = newdom.snapshot_create_xml("<domainsnapshot/>")
|
1312
|
+
|
1313
|
+
expect_too_many_args(snap, "delete", 1, 2)
|
1314
|
+
expect_invalid_arg_type(snap, "delete", 'foo')
|
1315
|
+
|
1316
|
+
expect_success(snap, "no args", "delete")
|
1317
|
+
|
1318
|
+
newdom.undefine(Libvirt::Domain::UNDEFINE_SNAPSHOTS_METADATA)
|
1319
|
+
sleep 1
|
1320
|
+
|
1321
|
+
# TESTGROUP: snapshot.name
|
1322
|
+
newdom = conn.define_domain_xml($new_dom_xml)
|
1323
|
+
snap = newdom.snapshot_create_xml("<domainsnapshot/>")
|
1324
|
+
|
1325
|
+
expect_too_many_args(snap, "name", 1)
|
1326
|
+
|
1327
|
+
expect_success(snap, "no args", "name")
|
1328
|
+
|
1329
|
+
newdom.undefine(Libvirt::Domain::UNDEFINE_SNAPSHOTS_METADATA)
|
1330
|
+
sleep 1
|
1331
|
+
|
1332
|
+
# TESTGROUP: snapshot.num_children
|
1333
|
+
newdom = conn.define_domain_xml($new_dom_xml)
|
1334
|
+
snap = newdom.snapshot_create_xml("<domainsnapshot/>")
|
1335
|
+
|
1336
|
+
expect_too_many_args(snap, "num_children", 1, 2)
|
1337
|
+
|
1338
|
+
expect_success(snap, "no args, no children", "num_children") {|x| x == 0}
|
1339
|
+
|
1340
|
+
newdom.undefine(Libvirt::Domain::UNDEFINE_SNAPSHOTS_METADATA)
|
1341
|
+
sleep 1
|
1342
|
+
|
1343
|
+
# TESTGROUP: snapshot.list_children_names
|
1344
|
+
newdom = conn.define_domain_xml($new_dom_xml)
|
1345
|
+
snap = newdom.snapshot_create_xml("<domainsnapshot/>")
|
1346
|
+
|
1347
|
+
expect_too_many_args(snap, "list_children_names", 1, 2)
|
1348
|
+
|
1349
|
+
expect_success(snap, "no args, no children", "num_children") {|x| x == 0}
|
1350
|
+
|
1351
|
+
newdom.undefine(Libvirt::Domain::UNDEFINE_SNAPSHOTS_METADATA)
|
1352
|
+
sleep 1
|
1353
|
+
|
1354
|
+
# TESTGROUP: snapshot.free
|
1355
|
+
newdom = conn.define_domain_xml($new_dom_xml)
|
1356
|
+
snap = newdom.snapshot_create_xml("<domainsnapshot/>")
|
1357
|
+
|
1358
|
+
expect_too_many_args(snap, "free", 1)
|
1359
|
+
|
1360
|
+
expect_success(snap, "no args", "free")
|
1361
|
+
|
1362
|
+
newdom.undefine(Libvirt::Domain::UNDEFINE_SNAPSHOTS_METADATA)
|
1363
|
+
sleep 1
|
1364
|
+
|
1365
|
+
# TESTGROUP: snapshot.has_metadata?
|
1366
|
+
newdom = conn.define_domain_xml($new_dom_xml)
|
1367
|
+
snap = newdom.snapshot_create_xml("<domainsnapshot/>")
|
1368
|
+
|
1369
|
+
expect_too_many_args(snap, "has_metadata?", 1, 2)
|
1370
|
+
expect_invalid_arg_type(snap, "has_metadata?", "foo")
|
1371
|
+
|
1372
|
+
expect_success(snap, "no args", "has_metadata?") {|x| x == true}
|
1373
|
+
|
1374
|
+
newdom.undefine(Libvirt::Domain::UNDEFINE_SNAPSHOTS_METADATA)
|
1375
|
+
sleep 1
|
1376
|
+
|
1377
|
+
# TESTGROUP: snapshot.list_children_names
|
1378
|
+
newdom = conn.define_domain_xml($new_dom_xml)
|
1379
|
+
snap = newdom.snapshot_create_xml("<domainsnapshot><name>snap</name></domainsnapshot>")
|
1380
|
+
snap2 = newdom.snapshot_create_xml("<domainsnapshot><name>snap2</name></domainsnapshot>")
|
1381
|
+
|
1382
|
+
expect_too_many_args(snap, "list_children_names", 1, 2)
|
1383
|
+
expect_invalid_arg_type(snap, "list_children_names", "foo")
|
1384
|
+
expect_invalid_arg_type(snap, "list_children_names", [])
|
1385
|
+
expect_invalid_arg_type(snap, "list_children_names", {})
|
1386
|
+
|
1387
|
+
expect_success(snap, "no args", "list_children_names")
|
1388
|
+
|
1389
|
+
newdom.undefine(Libvirt::Domain::UNDEFINE_SNAPSHOTS_METADATA)
|
1390
|
+
sleep 1
|
1391
|
+
|
1392
|
+
# TESTGROUP: snapshot.list_all_children
|
1393
|
+
newdom = conn.define_domain_xml($new_dom_xml)
|
1394
|
+
snap = newdom.snapshot_create_xml("<domainsnapshot/>")
|
1395
|
+
|
1396
|
+
expect_too_many_args(snap, "list_all_children", 1, 2)
|
1397
|
+
expect_invalid_arg_type(snap, "list_all_children", "foo")
|
1398
|
+
expect_invalid_arg_type(snap, "list_all_children", [])
|
1399
|
+
expect_invalid_arg_type(snap, "list_all_children", {})
|
1400
|
+
|
1401
|
+
expect_success(snap, "no args", "list_all_children")
|
1402
|
+
|
1403
|
+
newdom.undefine(Libvirt::Domain::UNDEFINE_SNAPSHOTS_METADATA)
|
1404
|
+
sleep 1
|
1405
|
+
|
1406
|
+
# TESTGROUP: snapshot.parent
|
1407
|
+
newdom = conn.define_domain_xml($new_dom_xml)
|
1408
|
+
snap = newdom.snapshot_create_xml("<domainsnapshot/>")
|
1409
|
+
snap2 = newdom.snapshot_create_xml("<domainsnapshot/>")
|
1410
|
+
|
1411
|
+
expect_too_many_args(snap2, "parent", 1, 2)
|
1412
|
+
expect_invalid_arg_type(snap2, "parent", "foo")
|
1413
|
+
expect_invalid_arg_type(snap2, "parent", [])
|
1414
|
+
expect_invalid_arg_type(snap2, "parent", {})
|
1415
|
+
|
1416
|
+
expect_success(snap2, "no args", "parent")
|
1417
|
+
expect_success(snap, "no args", "parent")
|
1418
|
+
|
1419
|
+
newdom.undefine(Libvirt::Domain::UNDEFINE_SNAPSHOTS_METADATA)
|
1420
|
+
sleep 1
|
1421
|
+
|
1422
|
+
# TESTGROUP: snapshot.current?
|
1423
|
+
newdom = conn.define_domain_xml($new_dom_xml)
|
1424
|
+
snap = newdom.snapshot_create_xml("<domainsnapshot/>")
|
1425
|
+
|
1426
|
+
expect_too_many_args(snap, "current?", 1, 2)
|
1427
|
+
expect_invalid_arg_type(snap, "current?", "foo")
|
1428
|
+
expect_invalid_arg_type(snap, "current?", [])
|
1429
|
+
expect_invalid_arg_type(snap, "current?", {})
|
1430
|
+
|
1431
|
+
expect_success(snap, "no args", "current?")
|
1432
|
+
|
1433
|
+
newdom.undefine(Libvirt::Domain::UNDEFINE_SNAPSHOTS_METADATA)
|
1434
|
+
sleep 1
|
1435
|
+
|
1436
|
+
# END TESTS
|
1437
|
+
|
1094
1438
|
conn.close
|
1095
1439
|
|
1096
1440
|
finish_tests
|