libvirt 0.1.0 → 0.2.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.
- data/CHANGELOG.md +5 -0
- data/Gemfile.lock +6 -6
- data/Rakefile +21 -0
- data/lib/libvirt/connection.rb +1 -1
- data/lib/libvirt/domain.rb +8 -0
- data/lib/libvirt/exception.rb +9 -0
- data/lib/libvirt/spec.rb +1 -0
- data/lib/libvirt/spec/device.rb +27 -0
- data/lib/libvirt/spec/device/disk.rb +25 -5
- data/lib/libvirt/spec/device/graphics.rb +39 -0
- data/lib/libvirt/spec/device/input.rb +40 -0
- data/lib/libvirt/spec/device/interface.rb +47 -0
- data/lib/libvirt/spec/device/sound.rb +32 -0
- data/lib/libvirt/spec/device/video.rb +47 -0
- data/lib/libvirt/spec/device/video_model.rb +53 -0
- data/lib/libvirt/spec/domain.rb +80 -5
- data/lib/libvirt/spec/domain/clock.rb +35 -0
- data/lib/libvirt/spec/domain/memtune.rb +29 -0
- data/lib/libvirt/spec/domain/os_booting.rb +27 -1
- data/lib/libvirt/spec/util.rb +43 -0
- data/lib/libvirt/version.rb +1 -1
- data/libvirt.gemspec +3 -4
- data/test/libvirt/domain_test.rb +6 -0
- data/test/libvirt/spec/device_test.rb +21 -0
- data/test/libvirt/spec/devices/disk_test.rb +21 -87
- data/test/libvirt/spec/devices/graphics_test.rb +25 -0
- data/test/libvirt/spec/devices/input_test.rb +25 -0
- data/test/libvirt/spec/devices/interface_test.rb +35 -0
- data/test/libvirt/spec/devices/sound_test.rb +20 -0
- data/test/libvirt/spec/devices/video_model_test.rb +36 -0
- data/test/libvirt/spec/domain/clock_test.rb +20 -0
- data/test/libvirt/spec/domain/os_booting_test.rb +31 -0
- data/test/libvirt/spec/domain_test.rb +123 -1
- metadata +32 -7
@@ -0,0 +1,25 @@
|
|
1
|
+
require "test_helper"
|
2
|
+
|
3
|
+
Protest.describe("Graphics device spec") do
|
4
|
+
setup do
|
5
|
+
@klass = Libvirt::Spec::Device::Graphics
|
6
|
+
end
|
7
|
+
|
8
|
+
context "initialization and parsing XML" do
|
9
|
+
should "parse the type" do
|
10
|
+
@instance = @klass.new("<graphics type='sdl'/>")
|
11
|
+
assert_equal :sdl, @instance.type
|
12
|
+
end
|
13
|
+
|
14
|
+
should "parse the display" do
|
15
|
+
@instance = @klass.new("<graphics display='foo'/>")
|
16
|
+
assert_equal 'foo', @instance.display
|
17
|
+
end
|
18
|
+
|
19
|
+
should "raise an exception if unsupported tags exist" do
|
20
|
+
assert_raises(Libvirt::Exception::UnparseableSpec) {
|
21
|
+
@klass.new("<graphics><foo/></graphics>")
|
22
|
+
}
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
require "test_helper"
|
2
|
+
|
3
|
+
Protest.describe("Input device spec") do
|
4
|
+
setup do
|
5
|
+
@klass = Libvirt::Spec::Device::Input
|
6
|
+
end
|
7
|
+
|
8
|
+
context "initialization and parsing XML" do
|
9
|
+
should "parse the type" do
|
10
|
+
@instance = @klass.new("<input type='mouse'>")
|
11
|
+
assert_equal :mouse, @instance.type
|
12
|
+
end
|
13
|
+
|
14
|
+
should "parse the bus" do
|
15
|
+
@instance = @klass.new("<input bus='usb'>")
|
16
|
+
assert_equal :usb, @instance.bus
|
17
|
+
end
|
18
|
+
|
19
|
+
should "raise an exception if unsupported tags exist" do
|
20
|
+
assert_raises(Libvirt::Exception::UnparseableSpec) {
|
21
|
+
@klass.new("<input><foo/></input>")
|
22
|
+
}
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
@@ -0,0 +1,35 @@
|
|
1
|
+
require "test_helper"
|
2
|
+
|
3
|
+
Protest.describe("Interface device spec") do
|
4
|
+
setup do
|
5
|
+
@klass = Libvirt::Spec::Device::Interface
|
6
|
+
end
|
7
|
+
|
8
|
+
context "initialization and parsing XML" do
|
9
|
+
should "parse the type" do
|
10
|
+
@instance = @klass.new("<interface type='user'></interface>")
|
11
|
+
assert_equal :user, @instance.type
|
12
|
+
end
|
13
|
+
|
14
|
+
should "parse the MAC address" do
|
15
|
+
@instance = @klass.new("<interface><mac address='foo'/></interface>")
|
16
|
+
assert_equal 'foo', @instance.mac_address
|
17
|
+
end
|
18
|
+
|
19
|
+
should "parse the model type" do
|
20
|
+
@instance = @klass.new("<interface><model type='foo'/></interface>")
|
21
|
+
assert_equal 'foo', @instance.model_type
|
22
|
+
end
|
23
|
+
|
24
|
+
should "parse the source from a network" do
|
25
|
+
@instance = @klass.new("<interface><source network='foo'/></interface>")
|
26
|
+
assert_equal 'foo', @instance.source_network
|
27
|
+
end
|
28
|
+
|
29
|
+
should "raise an exception if unsupported tags exist" do
|
30
|
+
assert_raises(Libvirt::Exception::UnparseableSpec) {
|
31
|
+
@klass.new("<interface><foo/></interface>")
|
32
|
+
}
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
require "test_helper"
|
2
|
+
|
3
|
+
Protest.describe("Sound device spec") do
|
4
|
+
setup do
|
5
|
+
@klass = Libvirt::Spec::Device::Sound
|
6
|
+
end
|
7
|
+
|
8
|
+
context "initialization and parsing XML" do
|
9
|
+
should "parse the model" do
|
10
|
+
@instance = @klass.new("<sound model='ac97'/>")
|
11
|
+
assert_equal :ac97, @instance.model
|
12
|
+
end
|
13
|
+
|
14
|
+
should "raise an exception if unsupported tags exist" do
|
15
|
+
assert_raises(Libvirt::Exception::UnparseableSpec) {
|
16
|
+
@klass.new("<sound><foo/></sound>")
|
17
|
+
}
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
@@ -0,0 +1,36 @@
|
|
1
|
+
require "test_helper"
|
2
|
+
|
3
|
+
Protest.describe("Video model device spec") do
|
4
|
+
setup do
|
5
|
+
@klass = Libvirt::Spec::Device::VideoModel
|
6
|
+
end
|
7
|
+
|
8
|
+
context "initialization and parsing XML" do
|
9
|
+
should "parse the type" do
|
10
|
+
@instance = @klass.new("<model type='vga'/>")
|
11
|
+
assert_equal :vga, @instance.type
|
12
|
+
end
|
13
|
+
|
14
|
+
should "parse the vram" do
|
15
|
+
@instance = @klass.new("<model vram='12'/>")
|
16
|
+
assert_equal '12', @instance.vram
|
17
|
+
end
|
18
|
+
|
19
|
+
should "parse the type" do
|
20
|
+
@instance = @klass.new("<model heads='2'/>")
|
21
|
+
assert_equal '2', @instance.heads
|
22
|
+
end
|
23
|
+
|
24
|
+
should "parse the acceleration" do
|
25
|
+
@instance = @klass.new("<model><acceleration accel3d='yes' accel2d='no'/></model>")
|
26
|
+
assert @instance.accel3d
|
27
|
+
assert !@instance.accel2d
|
28
|
+
end
|
29
|
+
|
30
|
+
should "raise an exception if unsupported tags exist" do
|
31
|
+
assert_raises(Libvirt::Exception::UnparseableSpec) {
|
32
|
+
@klass.new("<model><foo/></model>")
|
33
|
+
}
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
Protest.describe("Domain clock spec") do
|
4
|
+
setup do
|
5
|
+
@klass = Libvirt::Spec::Domain::Clock
|
6
|
+
end
|
7
|
+
|
8
|
+
context "initialization and parsing XML" do
|
9
|
+
should "parse the offset" do
|
10
|
+
@instance = @klass.new("<clock offset='foo'/>")
|
11
|
+
assert_equal :foo, @instance.offset
|
12
|
+
end
|
13
|
+
|
14
|
+
should "raise an exception if unsupported tags exist" do
|
15
|
+
assert_raises(Libvirt::Exception::UnparseableSpec) {
|
16
|
+
@klass.new("<clock offset='foo'><foo/></clock>")
|
17
|
+
}
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
Protest.describe("Domain OS booting spec") do
|
4
|
+
setup do
|
5
|
+
@klass = Libvirt::Spec::Domain::OSBooting
|
6
|
+
end
|
7
|
+
|
8
|
+
context "initialization and parsing XML" do
|
9
|
+
should "parse the type" do
|
10
|
+
@instance = @klass.new("<os><type>hvm</type></os>")
|
11
|
+
assert_equal :hvm, @instance.type
|
12
|
+
end
|
13
|
+
|
14
|
+
should "parse the architecture" do
|
15
|
+
@instance = @klass.new("<os><type arch='i386'>hvm</type></os>")
|
16
|
+
assert_equal :i386, @instance.arch
|
17
|
+
end
|
18
|
+
|
19
|
+
should "parse the boot device order" do
|
20
|
+
@instance = @klass.new(<<-XML)
|
21
|
+
<os>
|
22
|
+
<boot dev='fd'/>
|
23
|
+
<boot dev='cdrom'/>
|
24
|
+
<boot dev='hd'/>
|
25
|
+
</os>
|
26
|
+
XML
|
27
|
+
|
28
|
+
assert_equal [:fd, :cdrom, :hd], @instance.boot
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
@@ -7,11 +7,133 @@ Protest.describe("Domain spec") do
|
|
7
7
|
|
8
8
|
context "initialization" do
|
9
9
|
setup do
|
10
|
-
@instance= @klass.new
|
10
|
+
@instance = @klass.new
|
11
|
+
end
|
12
|
+
|
13
|
+
should "initialize an OS booting object" do
|
14
|
+
assert @instance.os.is_a?(Libvirt::Spec::Domain::OSBooting)
|
11
15
|
end
|
12
16
|
|
13
17
|
should "not have any devices" do
|
14
18
|
assert @instance.devices.empty?
|
15
19
|
end
|
20
|
+
|
21
|
+
should "initialize a memtune object" do
|
22
|
+
assert @instance.memtune.is_a?(Libvirt::Spec::Domain::Memtune)
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
context "initialization with spec parsing" do
|
27
|
+
should "raise an exception if an invalid tag is found" do
|
28
|
+
assert_raises(Libvirt::Exception::UnparseableSpec) {
|
29
|
+
@klass.new("<domain><foo></foo></domain>")
|
30
|
+
}
|
31
|
+
end
|
32
|
+
|
33
|
+
should "parse the hypervisor" do
|
34
|
+
@instance = @klass.new("<domain type='vbox'></domain>")
|
35
|
+
assert_equal :vbox, @instance.hypervisor
|
36
|
+
end
|
37
|
+
|
38
|
+
should "parse the name" do
|
39
|
+
@instance = @klass.new(<<-XML)
|
40
|
+
<domain type='vbox'>
|
41
|
+
<name>test_vm_A</name>
|
42
|
+
</domain>
|
43
|
+
XML
|
44
|
+
|
45
|
+
assert_equal "test_vm_A", @instance.name
|
46
|
+
end
|
47
|
+
|
48
|
+
should "parse the UUID" do
|
49
|
+
@instance = @klass.new(<<-XML)
|
50
|
+
<domain>
|
51
|
+
<uuid>foo</uuid>
|
52
|
+
</domain>
|
53
|
+
XML
|
54
|
+
|
55
|
+
assert_equal "foo", @instance.uuid
|
56
|
+
end
|
57
|
+
|
58
|
+
should "parse the memory" do
|
59
|
+
@instance = @klass.new(<<-XML)
|
60
|
+
<domain>
|
61
|
+
<memory>123456</memory>
|
62
|
+
</domain>
|
63
|
+
XML
|
64
|
+
|
65
|
+
assert_equal "123456", @instance.memory
|
66
|
+
end
|
67
|
+
|
68
|
+
should "parse the UUID" do
|
69
|
+
@instance = @klass.new(<<-XML)
|
70
|
+
<domain>
|
71
|
+
<currentMemory>1234</currentMemory>
|
72
|
+
</domain>
|
73
|
+
XML
|
74
|
+
|
75
|
+
assert_equal "1234", @instance.current_memory
|
76
|
+
end
|
77
|
+
|
78
|
+
should "parse the VCPU count" do
|
79
|
+
@instance = @klass.new(<<-XML)
|
80
|
+
<domain>
|
81
|
+
<vcpu>4</vcpu>
|
82
|
+
</domain>
|
83
|
+
XML
|
84
|
+
|
85
|
+
assert_equal "4", @instance.vcpu
|
86
|
+
end
|
87
|
+
|
88
|
+
should "parse on_poweroff" do
|
89
|
+
@instance = @klass.new(<<-XML)
|
90
|
+
<domain>
|
91
|
+
<on_poweroff>foo</on_poweroff>
|
92
|
+
</domain>
|
93
|
+
XML
|
94
|
+
|
95
|
+
assert_equal :foo, @instance.on_poweroff
|
96
|
+
end
|
97
|
+
|
98
|
+
should "parse on_reboot" do
|
99
|
+
@instance = @klass.new(<<-XML)
|
100
|
+
<domain>
|
101
|
+
<on_reboot>foo</on_reboot>
|
102
|
+
</domain>
|
103
|
+
XML
|
104
|
+
|
105
|
+
assert_equal :foo, @instance.on_reboot
|
106
|
+
end
|
107
|
+
|
108
|
+
should "parse on_crash" do
|
109
|
+
@instance = @klass.new(<<-XML)
|
110
|
+
<domain>
|
111
|
+
<on_crash>foo</on_crash>
|
112
|
+
</domain>
|
113
|
+
XML
|
114
|
+
|
115
|
+
assert_equal :foo, @instance.on_crash
|
116
|
+
end
|
117
|
+
|
118
|
+
should "parse the clock" do
|
119
|
+
@instance = @klass.new("<domain><clock offset='foo'/></domain>")
|
120
|
+
assert_equal :foo, @instance.clock.offset
|
121
|
+
end
|
122
|
+
|
123
|
+
should "parse the OS booting information" do
|
124
|
+
@instance = @klass.new("<domain><os><type>hvm</type></domain>")
|
125
|
+
assert_equal :hvm, @instance.os.type
|
126
|
+
end
|
127
|
+
|
128
|
+
should "parse the devices" do
|
129
|
+
@instance = @klass.new("<domain><devices><disk type='file'></disk></devices></domain>")
|
130
|
+
assert_equal 1, @instance.devices.length
|
131
|
+
assert_equal :file, @instance.devices.first.type
|
132
|
+
end
|
133
|
+
|
134
|
+
should "parse the features" do
|
135
|
+
@instance = @klass.new("<domain><features><pae/><acpi/></features></domain>")
|
136
|
+
assert_equal [:pae, :acpi], @instance.features
|
137
|
+
end
|
16
138
|
end
|
17
139
|
end
|
metadata
CHANGED
@@ -4,9 +4,9 @@ version: !ruby/object:Gem::Version
|
|
4
4
|
prerelease: false
|
5
5
|
segments:
|
6
6
|
- 0
|
7
|
-
-
|
7
|
+
- 2
|
8
8
|
- 0
|
9
|
-
version: 0.
|
9
|
+
version: 0.2.0
|
10
10
|
platform: ruby
|
11
11
|
authors:
|
12
12
|
- Mitchell Hashimoto
|
@@ -14,7 +14,7 @@ autorequire:
|
|
14
14
|
bindir: bin
|
15
15
|
cert_chain: []
|
16
16
|
|
17
|
-
date: 2010-
|
17
|
+
date: 2010-12-07 00:00:00 -08:00
|
18
18
|
default_executable:
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|
@@ -77,7 +77,7 @@ dependencies:
|
|
77
77
|
type: :development
|
78
78
|
prerelease: false
|
79
79
|
version_requirements: *id004
|
80
|
-
description: A ruby client library providing
|
80
|
+
description: A ruby client library providing an interface to libvirt via FFI.
|
81
81
|
email:
|
82
82
|
- mitchell.hashimoto@gmail.com
|
83
83
|
executables: []
|
@@ -132,8 +132,17 @@ files:
|
|
132
132
|
- lib/libvirt/spec/device.rb
|
133
133
|
- lib/libvirt/spec/device/disk.rb
|
134
134
|
- lib/libvirt/spec/device/emulator.rb
|
135
|
+
- lib/libvirt/spec/device/graphics.rb
|
136
|
+
- lib/libvirt/spec/device/input.rb
|
137
|
+
- lib/libvirt/spec/device/interface.rb
|
138
|
+
- lib/libvirt/spec/device/sound.rb
|
139
|
+
- lib/libvirt/spec/device/video.rb
|
140
|
+
- lib/libvirt/spec/device/video_model.rb
|
135
141
|
- lib/libvirt/spec/domain.rb
|
142
|
+
- lib/libvirt/spec/domain/clock.rb
|
143
|
+
- lib/libvirt/spec/domain/memtune.rb
|
136
144
|
- lib/libvirt/spec/domain/os_booting.rb
|
145
|
+
- lib/libvirt/spec/util.rb
|
137
146
|
- lib/libvirt/storage_pool.rb
|
138
147
|
- lib/libvirt/storage_volume.rb
|
139
148
|
- lib/libvirt/version.rb
|
@@ -153,8 +162,16 @@ files:
|
|
153
162
|
- test/libvirt/network_test.rb
|
154
163
|
- test/libvirt/node_device_test.rb
|
155
164
|
- test/libvirt/node_test.rb
|
165
|
+
- test/libvirt/spec/device_test.rb
|
156
166
|
- test/libvirt/spec/devices/disk_test.rb
|
157
167
|
- test/libvirt/spec/devices/emulator_test.rb
|
168
|
+
- test/libvirt/spec/devices/graphics_test.rb
|
169
|
+
- test/libvirt/spec/devices/input_test.rb
|
170
|
+
- test/libvirt/spec/devices/interface_test.rb
|
171
|
+
- test/libvirt/spec/devices/sound_test.rb
|
172
|
+
- test/libvirt/spec/devices/video_model_test.rb
|
173
|
+
- test/libvirt/spec/domain/clock_test.rb
|
174
|
+
- test/libvirt/spec/domain/os_booting_test.rb
|
158
175
|
- test/libvirt/spec/domain_test.rb
|
159
176
|
- test/libvirt/storage_pool_test.rb
|
160
177
|
- test/libvirt/storage_volume_test.rb
|
@@ -174,7 +191,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
174
191
|
requirements:
|
175
192
|
- - ">="
|
176
193
|
- !ruby/object:Gem::Version
|
177
|
-
hash:
|
194
|
+
hash: 2073983143037302112
|
178
195
|
segments:
|
179
196
|
- 0
|
180
197
|
version: "0"
|
@@ -183,7 +200,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
183
200
|
requirements:
|
184
201
|
- - ">="
|
185
202
|
- !ruby/object:Gem::Version
|
186
|
-
hash:
|
203
|
+
hash: 2073983143037302112
|
187
204
|
segments:
|
188
205
|
- 0
|
189
206
|
version: "0"
|
@@ -193,7 +210,7 @@ rubyforge_project: libvirt
|
|
193
210
|
rubygems_version: 1.3.7
|
194
211
|
signing_key:
|
195
212
|
specification_version: 3
|
196
|
-
summary: A ruby client library providing
|
213
|
+
summary: A ruby client library providing an interface to libvirt via FFI.
|
197
214
|
test_files:
|
198
215
|
- test/libvirt/collection/abstract_collection_test.rb
|
199
216
|
- test/libvirt/collection/domain_collection_test.rb
|
@@ -210,8 +227,16 @@ test_files:
|
|
210
227
|
- test/libvirt/network_test.rb
|
211
228
|
- test/libvirt/node_device_test.rb
|
212
229
|
- test/libvirt/node_test.rb
|
230
|
+
- test/libvirt/spec/device_test.rb
|
213
231
|
- test/libvirt/spec/devices/disk_test.rb
|
214
232
|
- test/libvirt/spec/devices/emulator_test.rb
|
233
|
+
- test/libvirt/spec/devices/graphics_test.rb
|
234
|
+
- test/libvirt/spec/devices/input_test.rb
|
235
|
+
- test/libvirt/spec/devices/interface_test.rb
|
236
|
+
- test/libvirt/spec/devices/sound_test.rb
|
237
|
+
- test/libvirt/spec/devices/video_model_test.rb
|
238
|
+
- test/libvirt/spec/domain/clock_test.rb
|
239
|
+
- test/libvirt/spec/domain/os_booting_test.rb
|
215
240
|
- test/libvirt/spec/domain_test.rb
|
216
241
|
- test/libvirt/storage_pool_test.rb
|
217
242
|
- test/libvirt/storage_volume_test.rb
|