Move to autogeneration of many C bindings.
[virt-top.git] / libvirt / libvirt.ml
old mode 100755 (executable)
new mode 100644 (file)
index 6582874..598cd7d
@@ -32,6 +32,8 @@ let uuid_string_length = 36
 type rw = [`R|`W]
 type ro = [`R]
 
+type ('a, 'b) job_t
+
 module Connect =
 struct
   type 'rw t
@@ -64,6 +66,11 @@ struct
   external list_networks : [>`R] t -> int -> string array = "ocaml_libvirt_connect_list_networks"
   external num_of_defined_networks : [>`R] t -> int = "ocaml_libvirt_connect_num_of_defined_networks"
   external list_defined_networks : [>`R] t -> int -> string array = "ocaml_libvirt_connect_list_defined_networks"
+  external num_of_pools : [>`R] t -> int = "ocaml_libvirt_connect_num_of_storage_pools"
+  external list_pools : [>`R] t -> int -> string array = "ocaml_libvirt_connect_list_storage_pools"
+  external num_of_defined_pools : [>`R] t -> int = "ocaml_libvirt_connect_num_of_defined_storage_pools"
+  external list_defined_pools : [>`R] t -> int -> string array = "ocaml_libvirt_connect_list_defined_storage_pools"
+
   external get_node_info : [>`R] t -> node_info = "ocaml_libvirt_connect_get_node_info"
   external node_get_free_memory : [> `R] t -> int64 = "ocaml_libvirt_connect_node_get_free_memory"
   external node_get_cells_free_memory : [> `R] t -> int -> int -> int64 array = "ocaml_libvirt_connect_node_get_cells_free_memory"
@@ -92,8 +99,7 @@ end
 
 module Domain =
 struct
-  type 'rw dom
-  type 'rw t = 'rw dom * 'rw Connect.t
+  type 'rw t
 
   type state =
     | InfoNoState | InfoRunning | InfoBlocked | InfoPaused
@@ -144,6 +150,7 @@ struct
   }
 
   external create_linux : [>`W] Connect.t -> xml -> rw t = "ocaml_libvirt_domain_create_linux"
+  external create_linux_job : [>`W] Connect.t -> xml -> ([`Domain], rw) job_t = "ocaml_libvirt_connect_create_linux_job"
   external lookup_by_id : 'a Connect.t -> int -> 'a t = "ocaml_libvirt_domain_lookup_by_id"
   external lookup_by_uuid : 'a Connect.t -> uuid -> 'a t = "ocaml_libvirt_domain_lookup_by_uuid"
   external lookup_by_uuid_string : 'a Connect.t -> string -> 'a t = "ocaml_libvirt_domain_lookup_by_uuid_string"
@@ -153,8 +160,11 @@ struct
   external suspend : [>`W] t -> unit = "ocaml_libvirt_domain_suspend"
   external resume : [>`W] t -> unit = "ocaml_libvirt_domain_resume"
   external save : [>`W] t -> filename -> unit = "ocaml_libvirt_domain_save"
+  external save_job : [>`W] t -> filename -> ([`Domain_nocreate], rw) job_t = "ocaml_libvirt_domain_save_job"
   external restore : [>`W] Connect.t -> filename -> unit = "ocaml_libvirt_domain_restore"
+  external restore_job : [>`W] Connect.t -> filename -> ([`Domain_nocreate], rw) job_t = "ocaml_libvirt_domain_restore_job"
   external core_dump : [>`W] t -> filename -> unit = "ocaml_libvirt_domain_core_dump"
+  external core_dump_job : [>`W] t -> filename -> ([`Domain_nocreate], rw) job_t = "ocaml_libvirt_domain_core_dump_job"
   external shutdown : [>`W] t -> unit = "ocaml_libvirt_domain_shutdown"
   external reboot : [>`W] t -> unit = "ocaml_libvirt_domain_reboot"
   external get_name : [>`R] t -> string = "ocaml_libvirt_domain_get_name"
@@ -173,6 +183,7 @@ struct
   external define_xml : [>`W] Connect.t -> xml -> rw t = "ocaml_libvirt_domain_define_xml"
   external undefine : [>`W] t -> unit = "ocaml_libvirt_domain_undefine"
   external create : [>`W] t -> unit = "ocaml_libvirt_domain_create"
+  external create_job : [>`W] t -> ([`Domain_nocreate], rw) job_t = "ocaml_libvirt_domain_create_job"
   external get_autostart : [>`R] t -> bool = "ocaml_libvirt_domain_get_autostart"
   external set_autostart : [>`W] t -> bool -> unit = "ocaml_libvirt_domain_set_autostart"
   external set_vcpus : [>`W] t -> int -> unit = "ocaml_libvirt_domain_set_vcpus"
@@ -190,16 +201,17 @@ end
 
 module Network =
 struct
-  type 'rw net
-  type 'rw t = 'rw net * 'rw Connect.t
+  type 'rw t
 
   external lookup_by_name : 'a Connect.t -> string -> 'a t = "ocaml_libvirt_network_lookup_by_name"
   external lookup_by_uuid : 'a Connect.t -> uuid -> 'a t = "ocaml_libvirt_network_lookup_by_uuid"
   external lookup_by_uuid_string : 'a Connect.t -> string -> 'a t = "ocaml_libvirt_network_lookup_by_uuid_string"
   external create_xml : [>`W] Connect.t -> xml -> rw t = "ocaml_libvirt_network_create_xml"
+  external create_xml_job : [>`W] Connect.t -> xml -> ([`Network], rw) job_t = "ocaml_libvirt_network_create_xml_job"
   external define_xml : [>`W] Connect.t -> xml -> rw t = "ocaml_libvirt_network_define_xml"
   external undefine : [>`W] t -> unit = "ocaml_libvirt_network_undefine"
   external create : [>`W] t -> unit = "ocaml_libvirt_network_create"
+  external create_job : [>`W] t -> ([`Network_nocreate], rw) job_t = "ocaml_libvirt_network_create_job"
   external destroy : [>`W] t -> unit = "ocaml_libvirt_network_destroy"
   external free : [>`R] t -> unit = "ocaml_libvirt_network_free"
   external get_name : [>`R] t -> string = "ocaml_libvirt_network_get_name"
@@ -213,6 +225,80 @@ struct
   external const : [>`R] t -> ro t = "%identity"
 end
 
+module Pool =
+struct
+  type 'rw t
+  type pool_state = Inactive | Active
+  type pool_info = {
+    capacity : int64;
+    allocation : int64;
+  }
+
+  external lookup_by_name : 'a Connect.t -> string -> 'a t = "ocaml_libvirt_storage_pool_lookup_by_name"
+  external lookup_by_uuid : 'a Connect.t -> uuid -> 'a t = "ocaml_libvirt_storage_pool_lookup_by_uuid"
+  external lookup_by_uuid_string : 'a Connect.t -> string -> 'a t = "ocaml_libvirt_storage_pool_lookup_by_uuid_string"
+  external create_xml : [>`W] Connect.t -> xml -> rw t = "ocaml_libvirt_storage_pool_create_xml"
+  external define_xml : [>`W] Connect.t -> xml -> rw t = "ocaml_libvirt_storage_pool_define_xml"
+  external undefine : [>`W] t -> unit = "ocaml_libvirt_storage_pool_undefine"
+  external create : [>`W] t -> unit = "ocaml_libvirt_storage_pool_create"
+  external destroy : [>`W] t -> unit = "ocaml_libvirt_storage_pool_destroy"
+  external shutdown : [>`W] t -> unit = "ocaml_libvirt_storage_pool_shutdown"
+  external free : [>`R] t -> unit = "ocaml_libvirt_storage_pool_free"
+  external refresh : [`R] t -> unit = "ocaml_libvirt_storage_pool_refresh"
+  external get_name : [`R] t -> string = "ocaml_libvirt_storage_pool_get_name"
+  external get_uuid : [`R] t -> uuid = "ocaml_libvirt_storage_pool_get_uuid"
+  external get_uuid_string : [`R] t -> string = "ocaml_libvirt_storage_pool_get_uuid_string"
+  external get_info : [`R] t -> pool_info = "ocaml_libvirt_storage_pool_get_info"
+  external get_xml_desc : [`R] t -> xml = "ocaml_libvirt_storage_pool_get_xml_desc"
+  external get_autostart : [`R] t -> bool = "ocaml_libvirt_storage_pool_get_autostart"
+  external set_autostart : [`W] t -> bool -> unit = "ocaml_libvirt_storage_pool_set_autostart"
+  external const : [>`R] t -> ro t = "%identity"
+end
+
+module Volume =
+struct
+  type 'rw t
+  type vol_type = File | Block | Virtual
+  type vol_info = {
+    typ : vol_type;
+    capacity : int64;
+    allocation : int64;
+  }
+
+  external lookup_by_name : 'a Pool.t -> string -> 'a t = "ocaml_libvirt_storage_vol_lookup_by_name"
+  external lookup_by_key : 'a Pool.t -> string -> 'a t = "ocaml_libvirt_storage_vol_lookup_by_key"
+  external lookup_by_path : 'a Pool.t -> string -> 'a t = "ocaml_libvirt_storage_vol_lookup_by_path"
+  external pool_of_volume : 'a t -> 'a Pool.t = "ocaml_libvirt_pool_of_volume"
+  external get_name : [`R] t -> string = "ocaml_libvirt_storage_vol_get_name"
+  external get_key : [`R] t -> string = "ocaml_libvirt_storage_vol_get_key"
+  external get_path : [`R] t -> string = "ocaml_libvirt_storage_vol_get_path"
+  external get_info : [`R] t -> vol_info = "ocaml_libvirt_storage_vol_get_info"
+  external get_xml_desc : [`R] t -> xml = "ocaml_libvirt_storage_vol_get_xml_desc"
+  external create_xml : [`W] Pool.t -> xml -> unit = "ocaml_libvirt_storage_vol_create_xml"
+  external destroy : [`W] t -> unit = "ocaml_libvirt_storage_vol_destroy"
+  external free : [>`R] t -> unit = "ocaml_libvirt_storage_vol_free"
+  external const : [>`R] t -> ro t = "%identity"
+end
+
+module Job =
+struct
+  type ('jobclass, 'rw) t = ('jobclass, 'rw) job_t
+  type job_type = Bounded | Unbounded
+  type job_state = Running | Complete | Failed | Cancelled
+  type job_info = {
+    typ : job_type;
+    state : job_state;
+    running_time : int;
+    remaining_time : int;
+    percent_complete : int
+  }
+  external get_info : ('a,'b) t -> job_info = "ocaml_libvirt_job_get_info"
+  external get_domain : ([`Domain], 'a) t -> 'a Domain.t = "ocaml_libvirt_job_get_domain"
+  external get_network : ([`Network], 'a) t -> 'a Network.t = "ocaml_libvirt_job_get_network"
+  external cancel : ('a,'b) t -> unit = "ocaml_libvirt_job_cancel"
+  external const : ('a, [>`R]) t -> ('a, ro) t = "%identity"
+end
+
 module Virterror =
 struct
   type code =