1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515
|
2019-08-21 Richard W.M. Jones <rjones@redhat.com>
Version 0.6.1.5.
Use gitlog-to-changelog to generate Changelog, instead of hg.
Package aclocal.m4 and config.h.in.
Update MANIFEST.
Update dependencies file.
2019-08-20 Pino Toscano <ptoscano@redhat.com>
Fix shebang in perl scripts
Instead of hardcoding the location of perl (assuming it is installed in
/usr), use /usr/bin/env to run it, and thus picking it from $PATH.
This makes it possible to run these scripts also on installations with
perl in a different prefix than /usr.
Also, given that we want enable warnings on scripts, turn the -w
previously in shebang to explicit "use warnings;" in scripts which
didn't have it before.
Update config.guess and config.sub
Synchronize Virterror with libvirt 5.6.0
2019-05-28 Pino Toscano <ptoscano@redhat.com>
build: build with CAML_NAME_SPACE
This way no non-namespaced OCaml C symbols are used, reducing the risk
of clashes with other code.
2019-04-08 Pino Toscano <ptoscano@redhat.com>
Synchronize Virterror with libvirt 5.2.0
Implement Connect.get_domain_capabilities
Wrap the virConnectGetDomainCapabilities C API.
build: bump required libvirt to 1.2.8
virConnectGetAllDomainStats, used unconditionally, was introduced in
libvirt 1.2.8.
2018-11-16 Pino Toscano <ptoscano@redhat.com>
example: fix self-dependency
The bytecode list_secrets must depend on the .cmo file of its .ml
source, instead on itself.
Fixes commit be5973f65bfdb51bf409a31af0d046931c6d5789.
2018-11-14 Pino Toscano <ptoscano@redhat.com>
Cast virError* enums to int for comparisons with 0
The actual type of an enum in C is implementation defined when there are
no negative values, and thus it can be int, or uint. This is the case
of the virError* enums in libvirt, as they do not have negative values.
Hence, to avoid hitting tautological comparison errors when checking
their range, temporarly cast the enum values to int when checking they
are not negative. The check is there to ensure the value is within the
range of the OCaml type used to represent it.
Reviewed-by: Andrea Bolognani <abologna@redhat.com>
Reviewed-by: Richard W.M. Jones <rjones@redhat.com>
2018-10-15 Pino Toscano <ptoscano@redhat.com>
doc: invoke ocamldoc with -colorize-code
This way, the OCaml snippets are colorized.
The OCaml version required is higher than the first version shipping
ocamldoc with this option, so that can be done unconditionally.
build: use pkg-config to find libvirt
Rely on pkg-config to detect libvirt, and use its variables to locate
it. The version required is taken from the API documentation.
build: remove config.h.in
It is generated by autoheader, no need to keep it in the sources.
build: sync OCaml macros from libguestfs
Less old version, and work better with newer versions of autoconf.
Adapt configure.ac to it:
- use the different variable names set by AC_CHECK_OCAML_PKG
- remove the comment about using ocamlfind, as it is what the new macros
do already
build: move OCaml macros to a m4 subdir
This way they will not be overwritten when aclocal.m4 is changed.
2018-10-10 Pino Toscano <ptoscano@redhat.com>
Reorganize .gitignore
- move all the general patterns to the top
- tie all the entries specific to the top-level to the current
directory
- remove old/obsolete entries
- add a missing example
- sort all the entries
build: do not set LIBRARY_PATH & LD_LIBRARY_PATH
They do not actually help, and rather get in the way when using them to
point to a custom location of libvirt.
Various small API doc improvements
Synchronize few states/types with libvirt 4.6.0
Add states/types that do not require using enum values in newer libvirt
versions.
Fix broken libvirt links
Split a single broken link into 3 sections that replaced the old page.
Switch all the links to https
This does not fix broken links.
Libvirt_version: fix license comment
Do not use the ocamldoc comment for it, since there is no need to put
the copyright/license block in the generated API documentation.
Expose Secret API
Add a new Secret submodule to expose most of the virSecret* APIs, so it
is possible to interact with libvirt secrets.
Add the needed glue in the generator, in the helper macros/functions,
and in the Libvirt module itself.
Include a simple example, list_secrets.ml.
examples: switch from C.connect_readonly to connect_auth_readonly
This way it is possible to connect to URIs that require some kind of
authentication.
Implement Connect.get_auth_default ()
Add a function to return the default libvirt authentication handler,
in case it is needed.
Followup of commit 948dd7af4581493dfc3945f0f1762dc5d6c2bd95.
Make Optstring_val return const char *
The users just read the result, never changing it.
This also fixes the build in case CAML_SAFE_STRING is defined (which
makes String_val() return const char *).
Update config.guess and config.sub
Update config.guess and config.sub from their canonical upstream
location, after 12 years.
Remove note from the TODO file
Authentication was implemented with
commit 948dd7af4581493dfc3945f0f1762dc5d6c2bd95.
2018-10-10 Richard W.M. Jones <rjones@redhat.com>
Update MANIFEST
2018-10-10 Pino Toscano <ptoscano@redhat.com>
Drop the generated libvirt_c.c from the sources
Let it be autogenerated from the generator.pl script during build, with
no need to keep a copy of it in the sources.
This also makes Perl an hard requirement, checking for its presence at
configure time.
Disable -Wmissing-prototypes for GCC
We do not provide prototypes for all the C implementations of OCaml
APIs, so just make GCC not warn about that for now.
Register a custom exception printer
This way all the users of ocaml-libvirt can use Printexc.to_string to
print a Virterror exception, even in case they do not catch it
explicitly.
Avoid VLAs with size depending on user input
Do not use var-length arrays with sizes from user input (like
parameters), since they may grow the stack too much.
Instead, allocate the memory on the heap.
Workaround lack of constness in custom_operations::identifier
Sadly the custom_operations struct of the OCaml C API uses char* for the
'identifier' member, even though it does not change it.
To avoid getting warnings when building with stricter CFLAGS, apply ugly
casts.
Add an helper CHECK_ERROR_CLEANUP macro
Extend the existing CHECK_ERROR macro to allow some code to be executed
right before raising Virterror. Rework CHECK_ERROR to use
CHECK_ERROR_CLEANUP.
Add Domain.get_xml_desc_flags
Much like Domain.get_xml_desc with the possibility to specify flags for
the XML description. The function is marked with a [`W] phantom because
some of the flags (e.g. XmlSecure) require a read/write connection.
Synchronize Virterror with libvirt 4.6.0
In particular, add all the various error codes, and error domains.
Also, add an older domain that was previously skipped.
Connect: add auth/credential handling for connect
Add OCaml versions of virConnectCredential & virConnectAuth structs,
using them to implement proper connect_auth & connect_auth_readonly.
This makes it possible to properly supply credentials when opening a
connection.
Add Val_opt_const & Val_const_ptr_t
Counterparts of Val_opt & Val_ptr_t, but with constness for the pointer.
2018-10-10 Richard W.M. Jones <rjones@redhat.com>
Use -safe-string and fix the library.
Note this changes the type of the cpumap from string to bytes,
since (by the design of the API) it must be mutated.
Change binding of virConnectGetAllDomainStats to return dom UUID.
The virDomainPtr object returned by this binding isn't a reliable
virDomainPtr object. The only thing we can safely do with it is to
get its UUID. Modify the API correspondingly.
Updates commit 652f883f365d8caa7b841b7a3b19a4719402a92f.
examples: Print more stats in the get_all_domain_stats.ml example.
Updates commit 652f883f365d8caa7b841b7a3b19a4719402a92f.
Add a binding for virConnectGetAllDomainStats (RHBZ#1390171).
Update dependencies.
Use -g -warn-error.
Use -g for ocamlopt. ocamlopt has supported generating DWARF
information for quite a long time.
Also use -warn-error with the same set of warnings as is used
by libguestfs.
Fix a warning in examples/get_cpu_stats.ml found by enabling
-warn-error.
Remove unused 'not_supported' function.
Found by compiling under GCC 6. The warning was:
In file included from libvirt_c.c:2058:0:
libvirt_c_epilogue.c:89:1: error: 'not_supported' defined but not used [-Werror=unused-function]
not_supported (const char *fn)
^~~~~~~~~~~~~
Don't bother checking return from virInitialize.
The Perl bindings don't do this, and it seems that the call can never
fail, or if it does we don't care.
Suppress errors to stderr and use thread-local virErrorPtr
This allows us to capture errors that happen during virConnectOpen,
without spewing error messages on stderr.
The patch is rather large, only because we don't need to pass the
virConnectPtr argument to CHECK_ERROR/_raise_virterror any longer.
Add a binding for virDomainCreateXML.
This is more modern than the ancient virDomainCreateLinux API,
and crucially allows you to pass flags such as AUTODESTROY.
Use C99 standard int64_t instead of OCaml defined (and soon to go) int64.
Kill broken NSIS support.
Version 0.6.1.4.
Update MANIFEST.
Version 0.6.1.3.
Update dependencies.
2018-10-10 David Scott <scott.dj@gmail.com>
Add a simple example to show how to receive event callbacks
Add event callback implementation based on virConnectDomainEventRegisterAny
A client may register a callback as follows:
E.register_default_impl ();
let conn = C.connect_readonly ?name () in
let id = E.register_any conn (E.Lifecycle (fun dom e ->
printd dom "Lifecycle %s" (E.Lifecycle.to_string e)
)) in
Internally this will:
1. generate a unique int64 used to identify the specific callback
2. add the callback to an OCaml hashtable based on the signature
(there is a distinct hashtable per callback signature)
3. call virConnectDomainEventRegisterAny which registers a
generic C callback in the stubs (one distinct callback per
signature) and supply the int64 as the "opaque" data
The client must enter the event loop with:
while true do
E.run_default_impl ()
done
When an event is triggered, the C callback will upcall into an OCaml
function (having re-acquired the heap lock) supplying the int64 value.
The OCaml function can then find the right callback in the Hashtbl
and call it.
The client can deregister the callback with:
E.deregister_any conn id;
Add binding for virConnectSetKeepAlive
This one is a 'one-off' but it ought to be possible to use the generator
to create the function (it has signature 'conn, int, int : int')
This function first appeared in libvirt version 0.9.8.
Remove backwards compatability logic to simplify the bindings
Rather than compile against old versions of libvirt and resort
to throwing 'not supported' exceptions at runtime, we instead
require all symbols and definitions to be available at compile-time
i.e. we require a much more recent libvirt.
Fix typo in ocaml_libvirt_storage_vol_get_info
The info.capacity was being overwritten with the info.allocation.
2018-10-10 Richard W.M. Jones <rjones@redhat.com>
Update dependencies.
2018-10-10 David Scott <scott.dj@gmail.com>
Functions returning "unit" correspond to C fns which use -1 for failure
This affects the following functions:
virStoragePoolBuild
virStoragePoolDelete
virStorageVolDelete
Previously a call to virStorageVolDelete would succeed returning 0, which
was interpreted as false, causing us to raise an exception with
VIR_ERR_NONE.
Volume.delete takes a flags parameter
This corrects a mismatch between the generated C stubs and the .ml
interface.
Correct typos in the storage interface's phantom types
A connection is either read/write (type rw = [`R|`W]) or read/only
(type ro = [`R]). A function which requires the ability to write
needs to take a parameter [> `W] rather than [`W] (which would
correspond to a write-only connection).
We can now use a read/write connection to call:
Pool.set_autostart
Volume.create_xml
Volume.delete
2018-10-10 Richard W.M. Jones <rjones@redhat.com>
Add contrib directory, and non-upstream patch to add Domain.get_cpu_stats_total.
This patch needs more thorough review.
2018-10-10 Hu Tao <hutao@cn.fujitsu.com>
remove parameter nr_pcpus of Libvirt.Domain.get_cpu_stats
remove the value because we can get it from the libvirt API
2018-10-10 Richard W.M. Jones <rjones@redhat.com>
Version 0.6.1.2.
Domain.get_cpu_stats: get number of params correctly (thanks Eric Blake).
See:
https://www.redhat.com/archives/libvir-list/2012-March/msg00306.html
This fixes commit da9feb9e52c6edb90bf3b6869cff3b3992225757.
2012-03-06 Richard W.M. Jones <rjones@redhat.com>
Version 0.6.1.1.
2012-03-06 Lai Jiangshan <laijs@cn.fujitsu.com>
ocaml-libvirt: add D.get_cpu_stats() API to ocaml-libvirt
Changed from V3:
use new virDomainGetCPUStats() libvirt-API.
use C code to construct the typed_param list array
2012-03-06 Richard W.M. Jones <rjones@redhat.com>
Remove virConnectListAllDomains.
This was never in a released libvirt.
Add header to Make.rules.in.
Remove obsolete: mlvirsh, gettext support, Windows installer.
2012-03-05 Richard W.M. Jones <rjones@redhat.com>
Remove .hgignore.
Remove jobs API.
This was never in a released libvirt.
2009-11-16 Richard Jones <rjones@redhat.com>
Add .gitignore file.
2009-03-10 Richard W.M. Jones <rjones@redhat.com>
Correct to-do list.
Version 0.6.1.0 for release.
Correct mlvirsh for new read-write connection.
virDomainBlockPeek and virDomainMemoryPeek need a read/write connection (CVE-2008-5086) (found by David Lutterkort).
2008-09-03 Richard W.M. Jones <rjones@redhat.com>
D.get_id returns -1 for inactive domains instead of throwing an error.
Don't duplicate unnecessary call to D.get_info.
Implement version 3 of virConnectListAllDomains.
2008-09-01 Richard W.M. Jones <rjones@redhat.com>
Add support for virConnectListAllDomains call.
2008-08-29 Richard W.M. Jones <rjones@redhat.com>
Revert previous change.
Use CAMLreturn0 to avoid a warning.
2008-08-14 Richard W.M. Jones <rjones@redhat.com>
Allow destdir options to be passed to 'make install' (Guillaume Rousse).
2008-07-09 Richard W.M. Jones <rjones@redhat.com>
Split peek requests into maximum-sized chunks.
Add Domain.max_peek function to determine maximum size of peek requests.
Don't pass -destdir parameter to ocamlfind. Version 0.4.4.2.
2008-07-07 Richard W.M. Jones <rjones@redhat.com>
Version 0.4.4.1 for release.
Changed INRIA to Red Hat (for Debian)
Files missed by 'make distclean' (for Debian)
Removed old ChangeLog file.
Clarify the license again for Debian.
Revert previous commit.
Reference the license from LGPL files (for Debian).
Clarify the license for Debian.
2008-07-04 Richard W.M. Jones <rjones@redhat.com>
Split 'make install' into separate 'make install-opt' and 'make install-byte' (Sylvain Le Gall, via Debian)
2008-06-10 Richard W.M. Jones <rjones@redhat.com>
Remove some old virt-top stuff.
Auto-generate ChangeLog.
Deprecate ChangeLog file.
Version 0.4.2.4 for release.
Missing dependencies.
List* functions throw exceptions if maxids = 0, so bypass this case.
2008-06-09 Richard W.M. Jones <rjones@redhat.com>
Version 0.4.2.3.
2008-06-05 Richard W.M. Jones <rjones@redhat.com>
Fix some bugs in the implementation of virDomainMemoryPeek
Updated MANIFEST
Add domblkpeek, dommempeek commands and add per-argument help.
Add support for virDomainBlockPeek, virDomainMemoryPeek and remove the deprecated conn/dom/net fields in virterror.
Remove Windows cruft from when it was lacking ocamlfind.
2008-05-27 Richard W.M. Jones <rjones@redhat.com>
Brazilian Portuguese translation by Herli Joaquim de Menezes and revised by Igor Pires Soares.
2008-04-16 Richard W.M. Jones <rjones@redhat.com>
Just the OCaml bindings (C library).
Initial import from old virt-top repository.
|