ruby-libvirt 0.7.1 → 0.8.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/NEWS +13 -0
- data/README +1 -1
- data/README.rdoc +1 -1
- data/Rakefile +3 -3
- data/ext/libvirt/_libvirt.c +10 -100
- data/ext/libvirt/common.c +9 -6
- data/ext/libvirt/common.h +1 -1
- data/ext/libvirt/connect.c +122 -358
- data/ext/libvirt/domain.c +267 -961
- data/ext/libvirt/extconf.h +0 -389
- data/ext/libvirt/extconf.rb +6 -490
- data/ext/libvirt/interface.c +8 -18
- data/ext/libvirt/network.c +15 -46
- data/ext/libvirt/nodedevice.c +22 -41
- data/ext/libvirt/nwfilter.c +5 -9
- data/ext/libvirt/secret.c +9 -20
- data/ext/libvirt/storage.c +36 -129
- data/ext/libvirt/stream.c +10 -14
- data/tests/test_domain.rb +2 -0
- data/tests/test_utils.rb +18 -0
- metadata +8 -9
data/ext/libvirt/extconf.rb
CHANGED
@@ -4,502 +4,18 @@ RbConfig::MAKEFILE_CONFIG['CC'] = ENV['CC'] if ENV['CC']
|
|
4
4
|
RbConfig::MAKEFILE_CONFIG['CCDLFLAGS'] = ENV['CFLAGS'] if ENV['CFLAGS']
|
5
5
|
RbConfig::MAKEFILE_CONFIG['EXTDLDFLAGS'] = ENV['CFLAGS'] if ENV['CFLAGS']
|
6
6
|
|
7
|
-
# older mkmf does not have checking_message, so implement our own here
|
8
|
-
def libvirt_checking_message(target, place = nil, opt = nil)
|
9
|
-
[["in", place], ["with", opt]].inject("#{target}") do |msg, (pre, noun)|
|
10
|
-
if noun
|
11
|
-
[[:to_str], [:join, ","], [:to_s]].each do |meth, *args|
|
12
|
-
if noun.respond_to?(meth)
|
13
|
-
break noun = noun.send(meth, *args)
|
14
|
-
end
|
15
|
-
end
|
16
|
-
msg << " #{pre} #{noun}" unless noun.empty?
|
17
|
-
end
|
18
|
-
msg
|
19
|
-
end
|
20
|
-
end
|
21
|
-
|
22
|
-
def have_const(const, headers = nil, opt = "", &b)
|
23
|
-
checking_for libvirt_checking_message(const, headers, opt) do
|
24
|
-
headers = cpp_include(headers)
|
25
|
-
if try_compile(<<"SRC", opt, &b)
|
26
|
-
#{COMMON_HEADERS}
|
27
|
-
#{headers}
|
28
|
-
/*top*/
|
29
|
-
static int t = #{const};
|
30
|
-
SRC
|
31
|
-
$defs.push(format("-DHAVE_CONST_%s", const.strip.upcase.tr_s("^A-Z0-9_", "_")))
|
32
|
-
true
|
33
|
-
else
|
34
|
-
false
|
35
|
-
end
|
36
|
-
end
|
37
|
-
end
|
38
|
-
|
39
7
|
extension_name = '_libvirt'
|
40
8
|
|
41
|
-
|
42
|
-
|
43
|
-
# to requiring a lib/ subdirectory. Note that due to the way include files
|
44
|
-
# are done within ruby-libvirt, the libvirt header file(s) must be in a libvirt/
|
45
|
-
# subdirectory. Also note that if specifying the include directory, the
|
46
|
-
# location of the library must also be specified. Finally, note that if neither
|
47
|
-
# the include nor the library are specified, the build will attempt to use
|
48
|
-
# pkg-config to discover this information.
|
49
|
-
#
|
50
|
-
# Taking all of the above rules into account, the valid options are either:
|
51
|
-
# $ ruby extconf.rb --with-libvirt-include=/home/clalance/libvirt/include \
|
52
|
-
# --with-libvirt-lib=/home/clalance/libvirt/src/.libs
|
53
|
-
#
|
54
|
-
# To specify the location of the include files and the library, or:
|
55
|
-
# $ ruby extconf.rb
|
56
|
-
#
|
57
|
-
# to attempt to use pkg-config to do it automatically from the system files.
|
58
|
-
include = with_config("libvirt-include")
|
59
|
-
lib = with_config("libvirt-lib")
|
60
|
-
if include and lib
|
61
|
-
$LIBPATH = [lib] | $LIBPATH
|
62
|
-
$CPPFLAGS += " -I" + include
|
63
|
-
have_library("virt", "virConnectOpen", "libvirt/libvirt.h")
|
64
|
-
|
65
|
-
# if we are using custom libvirt libraries, we have to suppress the default
|
66
|
-
# library path so have_func() only picks up the custom ones, not the installed
|
67
|
-
# ones
|
68
|
-
$DEFLIBPATH = []
|
69
|
-
elsif (include and not lib) or (not include and lib)
|
70
|
-
raise "Must specify both --with-libvirt-include and --with-libvirt-lib, or neither"
|
71
|
-
else
|
72
|
-
unless pkg_config("libvirt")
|
73
|
-
raise "libvirt library not found in default locations"
|
74
|
-
end
|
9
|
+
unless pkg_config("libvirt")
|
10
|
+
raise "libvirt library not found in default locations"
|
75
11
|
end
|
76
12
|
|
77
|
-
|
78
|
-
|
79
|
-
'virStoragePoolPtr',
|
80
|
-
'virStorageVolPtr',
|
81
|
-
'virSecretPtr',
|
82
|
-
'virNWFilterPtr',
|
83
|
-
'virInterfacePtr',
|
84
|
-
'virDomainBlockInfoPtr',
|
85
|
-
'virDomainMemoryStatPtr',
|
86
|
-
'virDomainSnapshotPtr',
|
87
|
-
'virDomainJobInfoPtr',
|
88
|
-
'virNodeDevicePtr',
|
89
|
-
'virStreamPtr',
|
90
|
-
'virTypedParameterPtr',
|
91
|
-
'virDomainBlockJobInfoPtr',
|
92
|
-
]
|
93
|
-
|
94
|
-
libvirt_funcs = [ 'virStorageVolWipe',
|
95
|
-
'virStoragePoolIsActive',
|
96
|
-
'virStoragePoolIsPersistent',
|
97
|
-
'virStorageVolCreateXMLFrom',
|
98
|
-
'virConnectGetLibVersion',
|
99
|
-
'virConnectIsEncrypted',
|
100
|
-
'virConnectIsSecure',
|
101
|
-
'virNetworkIsActive',
|
102
|
-
'virNetworkIsPersistent',
|
103
|
-
'virNodeDeviceCreateXML',
|
104
|
-
'virNodeDeviceDestroy',
|
105
|
-
'virInterfaceIsActive',
|
106
|
-
'virDomainMigrateToURI',
|
107
|
-
'virDomainMigrateSetMaxDowntime',
|
108
|
-
'virDomainManagedSave',
|
109
|
-
'virDomainIsActive',
|
110
|
-
'virDomainIsPersistent',
|
111
|
-
'virConnectDomainXMLFromNative',
|
112
|
-
'virConnectDomainXMLToNative',
|
113
|
-
'virDomainCreateWithFlags',
|
114
|
-
'virDomainAttachDeviceFlags',
|
115
|
-
'virDomainDetachDeviceFlags',
|
116
|
-
'virDomainUpdateDeviceFlags',
|
117
|
-
'virNodeGetSecurityModel',
|
118
|
-
'virDomainCreateXML',
|
119
|
-
'virDomainGetSecurityLabel',
|
120
|
-
'virConnectCompareCPU',
|
121
|
-
'virConnectBaselineCPU',
|
122
|
-
'virDomainSetVcpusFlags',
|
123
|
-
'virDomainGetVcpusFlags',
|
124
|
-
'virConnectDomainEventRegisterAny',
|
125
|
-
'virConnectDomainEventRegister',
|
126
|
-
'virDomainBlockPeek',
|
127
|
-
'virDomainMemoryPeek',
|
128
|
-
'virConnectOpenAuth',
|
129
|
-
'virEventRegisterImpl',
|
130
|
-
'virDomainIsUpdated',
|
131
|
-
'virDomainSetMemoryParameters',
|
132
|
-
'virConnectGetSysinfo',
|
133
|
-
'virDomainSetBlkioParameters',
|
134
|
-
'virDomainSetMemoryFlags',
|
135
|
-
'virDomainGetState',
|
136
|
-
'virDomainOpenConsole',
|
137
|
-
'virDomainMigrate2',
|
138
|
-
'virDomainScreenshot',
|
139
|
-
'virInterfaceChangeBegin',
|
140
|
-
'virStorageVolDownload',
|
141
|
-
'virDomainInjectNMI',
|
142
|
-
'virDomainGetControlInfo',
|
143
|
-
'virDomainMigrateGetMaxSpeed',
|
144
|
-
'virNodeGetCPUStats',
|
145
|
-
'virNodeGetMemoryStats',
|
146
|
-
'virDomainDestroyFlags',
|
147
|
-
'virDomainSaveFlags',
|
148
|
-
'virDomainSaveImageGetXMLDesc',
|
149
|
-
'virDomainSendKey',
|
150
|
-
'virNetworkUpdate',
|
151
|
-
'virNodeSuspendForDuration',
|
152
|
-
'virNodeGetMemoryParameters',
|
153
|
-
'virNodeGetCPUMap',
|
154
|
-
'virDomainUndefineFlags',
|
155
|
-
'virDomainPinVcpuFlags',
|
156
|
-
'virDomainGetVcpuPinInfo',
|
157
|
-
'virDomainSnapshotGetName',
|
158
|
-
'virConnectSetKeepAlive',
|
159
|
-
'virDomainReset',
|
160
|
-
'virDomainShutdownFlags',
|
161
|
-
'virDomainGetHostname',
|
162
|
-
'virDomainGetMetadata',
|
163
|
-
'virDomainSetMetadata',
|
164
|
-
'virConnectListAllDomains',
|
165
|
-
'virConnectListAllNetworks',
|
166
|
-
'virConnectListAllInterfaces',
|
167
|
-
'virConnectListAllSecrets',
|
168
|
-
'virConnectListAllNodeDevices',
|
169
|
-
'virConnectListAllStoragePools',
|
170
|
-
'virConnectListAllNWFilters',
|
171
|
-
'virConnectIsAlive',
|
172
|
-
'virNodeDeviceDetachFlags',
|
173
|
-
'virDomainSendProcessSignal',
|
174
|
-
'virDomainListAllSnapshots',
|
175
|
-
'virDomainSnapshotNumChildren',
|
176
|
-
'virDomainSnapshotListChildrenNames',
|
177
|
-
'virDomainSnapshotListAllChildren',
|
178
|
-
'virDomainSnapshotGetParent',
|
179
|
-
'virDomainSnapshotIsCurrent',
|
180
|
-
'virDomainSnapshotHasMetadata',
|
181
|
-
'virDomainSetMemoryStatsPeriod',
|
182
|
-
'virDomainFSTrim',
|
183
|
-
'virDomainBlockRebase',
|
184
|
-
'virDomainOpenChannel',
|
185
|
-
'virNodeDeviceLookupSCSIHostByWWN',
|
186
|
-
'virStorageVolWipePattern',
|
187
|
-
'virStoragePoolListAllVolumes',
|
188
|
-
'virDomainCreateWithFiles',
|
189
|
-
'virDomainCreateXMLWithFiles',
|
190
|
-
'virDomainOpenGraphics',
|
191
|
-
'virStorageVolResize',
|
192
|
-
'virDomainPMWakeup',
|
193
|
-
'virDomainBlockResize',
|
194
|
-
'virDomainPMSuspendForDuration',
|
195
|
-
'virDomainMigrateGetCompressionCache',
|
196
|
-
'virDomainMigrateSetCompressionCache',
|
197
|
-
'virDomainGetDiskErrors',
|
198
|
-
'virDomainGetEmulatorPinInfo',
|
199
|
-
'virDomainPinEmulator',
|
200
|
-
'virDomainGetSecurityLabelList',
|
201
|
-
'virDomainGetJobStats',
|
202
|
-
'virDomainGetBlockIoTune',
|
203
|
-
'virDomainSetBlockIoTune',
|
204
|
-
'virDomainBlockCommit',
|
205
|
-
'virDomainBlockPull',
|
206
|
-
'virDomainBlockJobSetSpeed',
|
207
|
-
'virDomainGetBlockJobInfo',
|
208
|
-
'virDomainBlockJobAbort',
|
209
|
-
'virDomainGetInterfaceParameters',
|
210
|
-
'virDomainBlockStatsFlags',
|
211
|
-
'virDomainGetNumaParameters',
|
212
|
-
'virConnectGetCPUModelNames',
|
213
|
-
'virDomainMigrate3',
|
214
|
-
'virDomainGetCPUStats',
|
215
|
-
'virNetworkGetDHCPLeases',
|
216
|
-
'virNodeAllocPages',
|
217
|
-
'virDomainGetTime',
|
218
|
-
'virDomainSetTime',
|
219
|
-
'virConnectGetDomainCapabilities',
|
220
|
-
'virDomainCoreDumpWithFormat',
|
221
|
-
'virDomainFSFreeze',
|
222
|
-
'virDomainFSThaw',
|
223
|
-
'virDomainGetFSInfo',
|
224
|
-
'virNodeGetFreePages',
|
225
|
-
'virDomainDefineXMLFlags',
|
226
|
-
'virDomainRename',
|
227
|
-
'virDomainSetUserPassword',
|
228
|
-
]
|
229
|
-
|
230
|
-
libvirt_qemu_funcs = [ 'virDomainQemuMonitorCommand',
|
231
|
-
'virDomainQemuAttach',
|
232
|
-
'virDomainQemuAgentCommand'
|
233
|
-
]
|
234
|
-
|
235
|
-
libvirt_lxc_funcs = [
|
236
|
-
'virDomainLxcOpenNamespace',
|
237
|
-
'virDomainLxcEnterNamespace',
|
238
|
-
'virDomainLxcEnterSecurityLabel',
|
239
|
-
]
|
240
|
-
|
241
|
-
libvirt_consts = [ 'VIR_MIGRATE_LIVE',
|
242
|
-
'VIR_MIGRATE_PEER2PEER',
|
243
|
-
'VIR_MIGRATE_TUNNELLED',
|
244
|
-
'VIR_MIGRATE_PERSIST_DEST',
|
245
|
-
'VIR_MIGRATE_UNDEFINE_SOURCE',
|
246
|
-
'VIR_MIGRATE_PAUSED',
|
247
|
-
'VIR_MIGRATE_NON_SHARED_DISK',
|
248
|
-
'VIR_MIGRATE_NON_SHARED_INC',
|
249
|
-
'VIR_DOMAIN_XML_UPDATE_CPU',
|
250
|
-
'VIR_MEMORY_PHYSICAL',
|
251
|
-
'VIR_DOMAIN_START_PAUSED',
|
252
|
-
'VIR_DUMP_CRASH',
|
253
|
-
'VIR_DUMP_LIVE',
|
254
|
-
'VIR_DOMAIN_DEVICE_MODIFY_CURRENT',
|
255
|
-
'VIR_DOMAIN_DEVICE_MODIFY_LIVE',
|
256
|
-
'VIR_DOMAIN_DEVICE_MODIFY_CONFIG',
|
257
|
-
'VIR_DOMAIN_DEVICE_MODIFY_FORCE',
|
258
|
-
'VIR_INTERFACE_XML_INACTIVE',
|
259
|
-
'VIR_STORAGE_POOL_INACCESSIBLE',
|
260
|
-
'VIR_DOMAIN_EVENT_DEFINED',
|
261
|
-
'VIR_DOMAIN_EVENT_STARTED',
|
262
|
-
'VIR_DOMAIN_EVENT_SUSPENDED_IOERROR',
|
263
|
-
'VIR_DOMAIN_EVENT_ID_WATCHDOG',
|
264
|
-
'VIR_DOMAIN_EVENT_ID_IO_ERROR',
|
265
|
-
'VIR_DOMAIN_EVENT_ID_GRAPHICS',
|
266
|
-
'VIR_DOMAIN_EVENT_ID_REBOOT',
|
267
|
-
'VIR_DOMAIN_EVENT_ID_RTC_CHANGE',
|
268
|
-
'VIR_DOMAIN_EVENT_ID_IO_ERROR_REASON',
|
269
|
-
'VIR_DOMAIN_AFFECT_CURRENT',
|
270
|
-
'VIR_DOMAIN_MEM_CURRENT',
|
271
|
-
'VIR_DOMAIN_EVENT_ID_CONTROL_ERROR',
|
272
|
-
'VIR_DOMAIN_PAUSED_SHUTTING_DOWN',
|
273
|
-
'VIR_DOMAIN_START_AUTODESTROY',
|
274
|
-
'VIR_DOMAIN_START_BYPASS_CACHE',
|
275
|
-
'VIR_DOMAIN_START_FORCE_BOOT',
|
276
|
-
'VIR_DOMAIN_MEMORY_STAT_ACTUAL_BALLOON',
|
277
|
-
'VIR_DUMP_BYPASS_CACHE',
|
278
|
-
'VIR_MIGRATE_CHANGE_PROTECTION',
|
279
|
-
'VIR_DOMAIN_SAVE_BYPASS_CACHE',
|
280
|
-
'VIR_DOMAIN_SAVE_RUNNING',
|
281
|
-
'VIR_DOMAIN_SAVE_PAUSED',
|
282
|
-
'VIR_NETWORK_UPDATE_COMMAND_NONE',
|
283
|
-
'VIR_NETWORK_UPDATE_COMMAND_MODIFY',
|
284
|
-
'VIR_NETWORK_UPDATE_COMMAND_DELETE',
|
285
|
-
'VIR_NETWORK_UPDATE_COMMAND_ADD_LAST',
|
286
|
-
'VIR_NETWORK_UPDATE_COMMAND_ADD_FIRST',
|
287
|
-
'VIR_NETWORK_SECTION_NONE',
|
288
|
-
'VIR_NETWORK_SECTION_BRIDGE',
|
289
|
-
'VIR_NETWORK_SECTION_DOMAIN',
|
290
|
-
'VIR_NETWORK_SECTION_IP',
|
291
|
-
'VIR_NETWORK_SECTION_IP_DHCP_HOST',
|
292
|
-
'VIR_NETWORK_SECTION_IP_DHCP_RANGE',
|
293
|
-
'VIR_NETWORK_SECTION_FORWARD',
|
294
|
-
'VIR_NETWORK_SECTION_FORWARD_INTERFACE',
|
295
|
-
'VIR_NETWORK_SECTION_FORWARD_PF',
|
296
|
-
'VIR_NETWORK_SECTION_PORTGROUP',
|
297
|
-
'VIR_NETWORK_SECTION_DNS_HOST',
|
298
|
-
'VIR_NETWORK_SECTION_DNS_TXT',
|
299
|
-
'VIR_NETWORK_SECTION_DNS_SRV',
|
300
|
-
'VIR_NETWORK_UPDATE_AFFECT_CURRENT',
|
301
|
-
'VIR_NETWORK_UPDATE_AFFECT_LIVE',
|
302
|
-
'VIR_NETWORK_UPDATE_AFFECT_CONFIG',
|
303
|
-
'VIR_DOMAIN_PMSUSPENDED',
|
304
|
-
'VIR_DOMAIN_RUNNING_WAKEUP',
|
305
|
-
'VIR_DOMAIN_PMSUSPENDED_UNKNOWN',
|
306
|
-
'VIR_DOMAIN_UNDEFINE_MANAGED_SAVE',
|
307
|
-
'VIR_DOMAIN_UNDEFINE_SNAPSHOTS_METADATA',
|
308
|
-
'VIR_DOMAIN_PAUSED_SNAPSHOT',
|
309
|
-
'VIR_DOMAIN_PMSUSPENDED_DISK_UNKNOWN',
|
310
|
-
'VIR_DUMP_RESET',
|
311
|
-
'VIR_DUMP_MEMORY_ONLY',
|
312
|
-
'VIR_DOMAIN_SHUTDOWN_DEFAULT',
|
313
|
-
'VIR_DOMAIN_SHUTDOWN_ACPI_POWER_BTN',
|
314
|
-
'VIR_DOMAIN_SHUTDOWN_GUEST_AGENT',
|
315
|
-
'VIR_DOMAIN_SHUTDOWN_INITCTL',
|
316
|
-
'VIR_DOMAIN_SHUTDOWN_SIGNAL',
|
317
|
-
'VIR_DOMAIN_REBOOT_DEFAULT',
|
318
|
-
'VIR_DOMAIN_REBOOT_ACPI_POWER_BTN',
|
319
|
-
'VIR_DOMAIN_REBOOT_GUEST_AGENT',
|
320
|
-
'VIR_DOMAIN_REBOOT_INITCTL',
|
321
|
-
'VIR_DOMAIN_REBOOT_SIGNAL',
|
322
|
-
'VIR_DOMAIN_DESTROY_DEFAULT',
|
323
|
-
'VIR_DOMAIN_DESTROY_GRACEFUL',
|
324
|
-
'VIR_CONNECT_LIST_NODE_DEVICES_CAP_FC_HOST',
|
325
|
-
'VIR_DOMAIN_SNAPSHOT_LIST_INACTIVE',
|
326
|
-
'VIR_DOMAIN_SNAPSHOT_CREATE_REDEFINE',
|
327
|
-
'VIR_DOMAIN_SNAPSHOT_CREATE_LIVE',
|
328
|
-
'VIR_DOMAIN_BLOCK_REBASE_SHALLOW',
|
329
|
-
'VIR_DOMAIN_BLOCK_REBASE_REUSE_EXT',
|
330
|
-
'VIR_DOMAIN_BLOCK_REBASE_COPY_RAW',
|
331
|
-
'VIR_DOMAIN_BLOCK_REBASE_COPY',
|
332
|
-
'VIR_DOMAIN_CHANNEL_FORCE',
|
333
|
-
'VIR_DOMAIN_CONSOLE_FORCE',
|
334
|
-
'VIR_DOMAIN_CONSOLE_SAFE',
|
335
|
-
'VIR_STORAGE_VOL_WIPE_ALG_ZERO',
|
336
|
-
'VIR_STORAGE_VOL_WIPE_ALG_NNSA',
|
337
|
-
'VIR_STORAGE_VOL_WIPE_ALG_DOD',
|
338
|
-
'VIR_STORAGE_VOL_WIPE_ALG_BSI',
|
339
|
-
'VIR_STORAGE_VOL_WIPE_ALG_GUTMANN',
|
340
|
-
'VIR_STORAGE_VOL_WIPE_ALG_SCHNEIER',
|
341
|
-
'VIR_STORAGE_VOL_WIPE_ALG_PFITZNER7',
|
342
|
-
'VIR_STORAGE_VOL_WIPE_ALG_PFITZNER33',
|
343
|
-
'VIR_STORAGE_VOL_WIPE_ALG_RANDOM',
|
344
|
-
'VIR_DOMAIN_BLOCK_RESIZE_BYTES',
|
345
|
-
'VIR_DOMAIN_MEMORY_STAT_RSS',
|
346
|
-
'VIR_MIGRATE_UNSAFE',
|
347
|
-
'VIR_MIGRATE_OFFLINE',
|
348
|
-
'VIR_MIGRATE_COMPRESSED',
|
349
|
-
'VIR_MIGRATE_ABORT_ON_ERROR',
|
350
|
-
'VIR_CONNECT_NO_ALIASES',
|
351
|
-
'VIR_DOMAIN_XML_MIGRATABLE',
|
352
|
-
'VIR_NETWORK_XML_INACTIVE',
|
353
|
-
'VIR_STORAGE_VOL_DIR',
|
354
|
-
'VIR_STORAGE_VOL_NETWORK',
|
355
|
-
'VIR_STORAGE_XML_INACTIVE',
|
356
|
-
'VIR_STORAGE_VOL_CREATE_PREALLOC_METADATA',
|
357
|
-
'VIR_SECRET_USAGE_TYPE_CEPH',
|
358
|
-
'VIR_DOMAIN_SNAPSHOT_REVERT_RUNNING',
|
359
|
-
'VIR_DOMAIN_SNAPSHOT_REVERT_PAUSED',
|
360
|
-
'VIR_DOMAIN_SNAPSHOT_REVERT_FORCE',
|
361
|
-
'VIR_SECRET_USAGE_TYPE_ISCSI',
|
362
|
-
'VIR_DOMAIN_NOSTATE_UNKNOWN',
|
363
|
-
'VIR_DOMAIN_RUNNING_CRASHED',
|
364
|
-
'VIR_DOMAIN_PAUSED_CRASHED',
|
365
|
-
'VIR_DOMAIN_CRASHED_PANICKED',
|
366
|
-
'VIR_NODE_CPU_STATS_ALL_CPUS',
|
367
|
-
'VIR_NODE_MEMORY_STATS_ALL_CELLS',
|
368
|
-
'VIR_DOMAIN_VCPU_CURRENT',
|
369
|
-
'VIR_DOMAIN_VCPU_GUEST',
|
370
|
-
'VIR_NETWORK_UPDATE_COMMAND_DELETE',
|
371
|
-
'VIR_STORAGE_POOL_BUILD_NO_OVERWRITE',
|
372
|
-
'VIR_STORAGE_POOL_BUILD_OVERWRITE',
|
373
|
-
'VIR_KEYCODE_SET_LINUX',
|
374
|
-
'VIR_KEYCODE_SET_XT',
|
375
|
-
'VIR_KEYCODE_SET_ATSET1',
|
376
|
-
'VIR_KEYCODE_SET_ATSET2',
|
377
|
-
'VIR_KEYCODE_SET_ATSET3',
|
378
|
-
'VIR_KEYCODE_SET_OSX',
|
379
|
-
'VIR_KEYCODE_SET_XT_KBD',
|
380
|
-
'VIR_KEYCODE_SET_USB',
|
381
|
-
'VIR_KEYCODE_SET_WIN32',
|
382
|
-
'VIR_KEYCODE_SET_RFB',
|
383
|
-
'VIR_DOMAIN_EVENT_SHUTDOWN',
|
384
|
-
'VIR_DOMAIN_EVENT_PMSUSPENDED',
|
385
|
-
'VIR_DOMAIN_EVENT_CRASHED',
|
386
|
-
'VIR_DOMAIN_EVENT_STARTED_WAKEUP',
|
387
|
-
'VIR_DOMAIN_EVENT_SUSPENDED_RESTORED',
|
388
|
-
'VIR_DOMAIN_EVENT_SUSPENDED_FROM_SNAPSHOT',
|
389
|
-
'VIR_DOMAIN_EVENT_SUSPENDED_API_ERROR',
|
390
|
-
'VIR_DOMAIN_EVENT_RESUMED_FROM_SNAPSHOT',
|
391
|
-
'VIR_DOMAIN_EVENT_SHUTDOWN_FINISHED',
|
392
|
-
'VIR_DOMAIN_EVENT_PMSUSPENDED_MEMORY',
|
393
|
-
'VIR_DOMAIN_EVENT_PMSUSPENDED_DISK',
|
394
|
-
'VIR_DOMAIN_EVENT_CRASHED_PANICKED',
|
395
|
-
'VIR_SECRET_USAGE_TYPE_NONE',
|
396
|
-
'VIR_CONNECT_BASELINE_CPU_EXPAND_FEATURES',
|
397
|
-
'VIR_DOMAIN_SNAPSHOT_DELETE_METADATA_ONLY',
|
398
|
-
'VIR_DOMAIN_SNAPSHOT_DELETE_CHILDREN_ONLY',
|
399
|
-
'VIR_DOMAIN_EVENT_GRAPHICS_ADDRESS_UNIX',
|
400
|
-
'VIR_DOMAIN_BLOCK_COMMIT_SHALLOW',
|
401
|
-
'VIR_DOMAIN_BLOCK_COMMIT_DELETE',
|
402
|
-
'VIR_DOMAIN_BLOCK_JOB_TYPE_UNKNOWN',
|
403
|
-
'VIR_DOMAIN_BLOCK_JOB_TYPE_PULL',
|
404
|
-
'VIR_DOMAIN_BLOCK_JOB_TYPE_COPY',
|
405
|
-
'VIR_DOMAIN_BLOCK_JOB_TYPE_COMMIT',
|
406
|
-
'VIR_DOMAIN_BLOCK_JOB_ABORT_ASYNC',
|
407
|
-
'VIR_DOMAIN_BLOCK_JOB_ABORT_PIVOT',
|
408
|
-
'VIR_DOMAIN_BLOCK_JOB_COMPLETED',
|
409
|
-
'VIR_DOMAIN_BLOCK_JOB_FAILED',
|
410
|
-
'VIR_DOMAIN_BLOCK_JOB_CANCELED',
|
411
|
-
'VIR_DOMAIN_BLOCK_JOB_READY',
|
412
|
-
'VIR_NODE_MEMORY_SHARED_MERGE_ACROSS_NODES',
|
413
|
-
'VIR_CONNECT_LIST_NODE_DEVICES_CAP_SCSI_GENERIC',
|
414
|
-
'VIR_MIGRATE_PARAM_LISTEN_ADDRESS',
|
415
|
-
'VIR_DOMAIN_SCHEDULER_EMULATOR_PERIOD',
|
416
|
-
'VIR_DOMAIN_SCHEDULER_EMULATOR_QUOTA',
|
417
|
-
'VIR_DOMAIN_SNAPSHOT_CREATE_REUSE_EXT',
|
418
|
-
'VIR_DOMAIN_SNAPSHOT_CREATE_QUIESCE',
|
419
|
-
'VIR_DOMAIN_SNAPSHOT_CREATE_ATOMIC',
|
420
|
-
'VIR_CONNECT_LIST_STORAGE_POOLS_GLUSTER',
|
421
|
-
'VIR_CONNECT_LIST_STORAGE_POOLS_ZFS',
|
422
|
-
'VIR_STORAGE_VOL_NETDIR',
|
423
|
-
'VIR_IP_ADDR_TYPE_IPV4',
|
424
|
-
'VIR_IP_ADDR_TYPE_IPV6',
|
425
|
-
'VIR_CONNECT_COMPARE_CPU_FAIL_INCOMPATIBLE',
|
426
|
-
'VIR_DOMAIN_UNDEFINE_NVRAM',
|
427
|
-
'VIR_DOMAIN_BLOCK_JOB_TYPE_ACTIVE_COMMIT',
|
428
|
-
'VIR_DOMAIN_BLOCK_JOB_INFO_BANDWIDTH_BYTES',
|
429
|
-
'VIR_DOMAIN_BLOCK_JOB_SPEED_BANDWIDTH_BYTES',
|
430
|
-
'VIR_DOMAIN_BLOCK_COMMIT_ACTIVE',
|
431
|
-
'VIR_DOMAIN_BLOCK_COMMIT_RELATIVE',
|
432
|
-
'VIR_DOMAIN_BLOCK_COMMIT_BANDWIDTH_BYTES',
|
433
|
-
'VIR_DOMAIN_BLOCK_IOTUNE_SIZE_IOPS_SEC',
|
434
|
-
'VIR_STORAGE_POOL_CREATE_NORMAL',
|
435
|
-
'VIR_STORAGE_POOL_CREATE_WITH_BUILD',
|
436
|
-
'VIR_STORAGE_POOL_CREATE_WITH_BUILD_OVERWRITE',
|
437
|
-
'VIR_STORAGE_POOL_CREATE_WITH_BUILD_NO_OVERWRITE',
|
438
|
-
'VIR_STORAGE_VOL_CREATE_REFLINK',
|
439
|
-
'VIR_STORAGE_VOL_DELETE_WITH_SNAPSHOTS',
|
440
|
-
'VIR_DOMAIN_QEMU_AGENT_COMMAND_SHUTDOWN',
|
441
|
-
'VIR_DOMAIN_DEFINE_VALIDATE',
|
442
|
-
'VIR_DOMAIN_PASSWORD_ENCRYPTED',
|
443
|
-
'VIR_DOMAIN_TIME_SYNC',
|
444
|
-
]
|
445
|
-
|
446
|
-
virterror_consts = [
|
447
|
-
'VIR_FROM_VMWARE',
|
448
|
-
'VIR_FROM_AUDIT',
|
449
|
-
'VIR_FROM_SYSINFO',
|
450
|
-
'VIR_FROM_STREAMS',
|
451
|
-
'VIR_FROM_XENAPI',
|
452
|
-
'VIR_FROM_HOOK',
|
453
|
-
'VIR_ERR_HOOK_SCRIPT_FAILED',
|
454
|
-
'VIR_ERR_MIGRATE_PERSIST_FAILED',
|
455
|
-
'VIR_ERR_OPERATION_TIMEOUT',
|
456
|
-
'VIR_ERR_CONFIG_UNSUPPORTED',
|
457
|
-
'VIR_FROM_XENXM',
|
458
|
-
'VIR_ERR_OPERATION_INVALID',
|
459
|
-
'VIR_ERR_NO_SECURITY_MODEL',
|
460
|
-
'VIR_ERR_AUTH_FAILED',
|
461
|
-
'VIR_FROM_PHYP',
|
462
|
-
'VIR_FROM_ESX',
|
463
|
-
'VIR_FROM_ONE',
|
464
|
-
'VIR_FROM_VBOX',
|
465
|
-
'VIR_FROM_LXC',
|
466
|
-
'VIR_FROM_UML',
|
467
|
-
'VIR_FROM_NETWORK',
|
468
|
-
'VIR_FROM_DOMAIN',
|
469
|
-
'VIR_FROM_STATS_LINUX',
|
470
|
-
'VIR_FROM_XEN_INOTIFY',
|
471
|
-
'VIR_FROM_SECURITY',
|
472
|
-
'VIR_DOMAIN_CORE_DUMP_FORMAT_RAW',
|
473
|
-
'VIR_DOMAIN_CORE_DUMP_FORMAT_KDUMP_ZLIB',
|
474
|
-
'VIR_DOMAIN_CORE_DUMP_FORMAT_KDUMP_LZO',
|
475
|
-
'VIR_DOMAIN_CORE_DUMP_FORMAT_KDUMP_SNAPPY',
|
476
|
-
'VIR_MIGRATE_AUTO_CONVERGE',
|
477
|
-
'VIR_MIGRATE_RDMA_PIN_ALL',
|
478
|
-
'VIR_DOMAIN_SHUTDOWN_PARAVIRT',
|
479
|
-
'VIR_DOMAIN_REBOOT_PARAVIRT',
|
480
|
-
]
|
481
|
-
|
482
|
-
libvirt_qemu_consts = [
|
483
|
-
'VIR_DOMAIN_QEMU_AGENT_COMMAND_BLOCK',
|
484
|
-
'VIR_DOMAIN_QEMU_AGENT_COMMAND_DEFAULT',
|
485
|
-
'VIR_DOMAIN_QEMU_AGENT_COMMAND_NOWAIT',
|
486
|
-
'VIR_DOMAIN_QEMU_MONITOR_COMMAND_DEFAULT',
|
487
|
-
'VIR_DOMAIN_QEMU_MONITOR_COMMAND_HMP',
|
488
|
-
]
|
489
|
-
|
490
|
-
libvirt_types.each { |t| have_type(t, "libvirt/libvirt.h") }
|
491
|
-
libvirt_funcs.each { |f| have_func(f, "libvirt/libvirt.h") }
|
492
|
-
libvirt_consts.each { |c| have_const(c, ["libvirt/libvirt.h"]) }
|
493
|
-
virterror_consts.each { |c| have_const(c, ["libvirt/virterror.h"]) }
|
494
|
-
if find_header("libvirt/libvirt-qemu.h")
|
495
|
-
have_library("virt-qemu", "virDomainQemuMonitorCommand")
|
496
|
-
libvirt_qemu_funcs.each { |f| have_func(f, "libvirt/libvirt-qemu.h") }
|
497
|
-
libvirt_qemu_consts.each { |c| have_const(c, ["libvirt/libvirt-qemu.h"]) }
|
13
|
+
unless pkg_config("libvirt-qemu")
|
14
|
+
raise "libvirt library not found in default locations"
|
498
15
|
end
|
499
16
|
|
500
|
-
|
501
|
-
|
502
|
-
libvirt_lxc_funcs.each{ |f| have_func(f, "libvirt/libvirt-lxc.h") }
|
17
|
+
unless pkg_config("libvirt-lxc")
|
18
|
+
raise "libvirt library not found in default locations"
|
503
19
|
end
|
504
20
|
|
505
21
|
create_header
|
data/ext/libvirt/interface.c
CHANGED
@@ -26,7 +26,6 @@
|
|
26
26
|
#include "connect.h"
|
27
27
|
#include "extconf.h"
|
28
28
|
|
29
|
-
#if HAVE_TYPE_VIRINTERFACEPTR
|
30
29
|
static VALUE c_interface;
|
31
30
|
|
32
31
|
static void interface_free(void *i)
|
@@ -48,7 +47,7 @@ VALUE ruby_libvirt_interface_new(virInterfacePtr i, VALUE conn)
|
|
48
47
|
* call-seq:
|
49
48
|
* interface.undefine -> nil
|
50
49
|
*
|
51
|
-
* Call virInterfaceUndefine[
|
50
|
+
* Call virInterfaceUndefine[https://libvirt.org/html/libvirt-libvirt-interface.html#virInterfaceUndefine]
|
52
51
|
* to undefine this interface.
|
53
52
|
*/
|
54
53
|
static VALUE libvirt_interface_undefine(VALUE i)
|
@@ -62,7 +61,7 @@ static VALUE libvirt_interface_undefine(VALUE i)
|
|
62
61
|
* call-seq:
|
63
62
|
* interface.create(flags=0) -> nil
|
64
63
|
*
|
65
|
-
* Call virInterfaceCreate[
|
64
|
+
* Call virInterfaceCreate[https://libvirt.org/html/libvirt-libvirt-interface.html#virInterfaceCreate]
|
66
65
|
* to start this interface.
|
67
66
|
*/
|
68
67
|
static VALUE libvirt_interface_create(int argc, VALUE *argv, VALUE i)
|
@@ -81,7 +80,7 @@ static VALUE libvirt_interface_create(int argc, VALUE *argv, VALUE i)
|
|
81
80
|
* call-seq:
|
82
81
|
* interface.destroy(flags=0) -> nil
|
83
82
|
*
|
84
|
-
* Call virInterfaceDestroy[
|
83
|
+
* Call virInterfaceDestroy[https://libvirt.org/html/libvirt-libvirt-interface.html#virInterfaceDestroy]
|
85
84
|
* to shutdown this interface.
|
86
85
|
*/
|
87
86
|
static VALUE libvirt_interface_destroy(int argc, VALUE *argv, VALUE i)
|
@@ -96,12 +95,11 @@ static VALUE libvirt_interface_destroy(int argc, VALUE *argv, VALUE i)
|
|
96
95
|
ruby_libvirt_value_to_uint(flags));
|
97
96
|
}
|
98
97
|
|
99
|
-
#if HAVE_VIRINTERFACEISACTIVE
|
100
98
|
/*
|
101
99
|
* call-seq:
|
102
100
|
* interface.active? -> [true|false]
|
103
101
|
*
|
104
|
-
* Call virInterfaceIsActive[
|
102
|
+
* Call virInterfaceIsActive[https://libvirt.org/html/libvirt-libvirt-interface.html#virInterfaceIsActive]
|
105
103
|
* to determine if this interface is currently active.
|
106
104
|
*/
|
107
105
|
static VALUE libvirt_interface_active_p(VALUE p)
|
@@ -110,13 +108,12 @@ static VALUE libvirt_interface_active_p(VALUE p)
|
|
110
108
|
ruby_libvirt_connect_get(p),
|
111
109
|
interface_get(p));
|
112
110
|
}
|
113
|
-
#endif
|
114
111
|
|
115
112
|
/*
|
116
113
|
* call-seq:
|
117
114
|
* interface.name -> String
|
118
115
|
*
|
119
|
-
* Call virInterfaceGetName[
|
116
|
+
* Call virInterfaceGetName[https://libvirt.org/html/libvirt-libvirt-interface.html#virInterfaceGetName]
|
120
117
|
* to retrieve the name of this interface.
|
121
118
|
*/
|
122
119
|
static VALUE libvirt_interface_name(VALUE i)
|
@@ -130,7 +127,7 @@ static VALUE libvirt_interface_name(VALUE i)
|
|
130
127
|
* call-seq:
|
131
128
|
* interface.mac -> String
|
132
129
|
*
|
133
|
-
* Call virInterfaceGetMACString[
|
130
|
+
* Call virInterfaceGetMACString[https://libvirt.org/html/libvirt-libvirt-interface.html#virInterfaceGetMACString]
|
134
131
|
* to retrieve the MAC address of this interface.
|
135
132
|
*/
|
136
133
|
static VALUE libvirt_interface_mac(VALUE i)
|
@@ -144,7 +141,7 @@ static VALUE libvirt_interface_mac(VALUE i)
|
|
144
141
|
* call-seq:
|
145
142
|
* interface.xml_desc -> String
|
146
143
|
*
|
147
|
-
* Call virInterfaceGetXMLDesc[
|
144
|
+
* Call virInterfaceGetXMLDesc[https://libvirt.org/html/libvirt-libvirt-interface.html#virInterfaceGetXMLDesc]
|
148
145
|
* to retrieve the XML of this interface.
|
149
146
|
*/
|
150
147
|
static VALUE libvirt_interface_xml_desc(int argc, VALUE *argv, VALUE i)
|
@@ -163,26 +160,22 @@ static VALUE libvirt_interface_xml_desc(int argc, VALUE *argv, VALUE i)
|
|
163
160
|
* call-seq:
|
164
161
|
* interface.free -> nil
|
165
162
|
*
|
166
|
-
* Call virInterfaceFree[
|
163
|
+
* Call virInterfaceFree[https://libvirt.org/html/libvirt-libvirt-interface.html#virInterfaceFree]
|
167
164
|
* to free this interface. The object will no longer be valid after this call.
|
168
165
|
*/
|
169
166
|
static VALUE libvirt_interface_free(VALUE i)
|
170
167
|
{
|
171
168
|
ruby_libvirt_generate_call_free(Interface, i);
|
172
169
|
}
|
173
|
-
#endif
|
174
170
|
|
175
171
|
/*
|
176
172
|
* Class Libvirt::Interface
|
177
173
|
*/
|
178
174
|
void ruby_libvirt_interface_init(void)
|
179
175
|
{
|
180
|
-
#if HAVE_TYPE_VIRINTERFACEPTR
|
181
176
|
c_interface = rb_define_class_under(m_libvirt, "Interface", rb_cObject);
|
182
|
-
#if HAVE_CONST_VIR_INTERFACE_XML_INACTIVE
|
183
177
|
rb_define_const(c_interface, "XML_INACTIVE",
|
184
178
|
INT2NUM(VIR_INTERFACE_XML_INACTIVE));
|
185
|
-
#endif
|
186
179
|
rb_define_attr(c_interface, "connection", 1, 0);
|
187
180
|
|
188
181
|
/* Interface object methods */
|
@@ -193,8 +186,5 @@ void ruby_libvirt_interface_init(void)
|
|
193
186
|
rb_define_method(c_interface, "create", libvirt_interface_create, -1);
|
194
187
|
rb_define_method(c_interface, "destroy", libvirt_interface_destroy, -1);
|
195
188
|
rb_define_method(c_interface, "free", libvirt_interface_free, 0);
|
196
|
-
#if HAVE_VIRINTERFACEISACTIVE
|
197
189
|
rb_define_method(c_interface, "active?", libvirt_interface_active_p, 0);
|
198
|
-
#endif
|
199
|
-
#endif
|
200
190
|
}
|