Added a destroy method for each object. Based upon the code for VM.destroy
authorEwan Mellor <ewan@xensource.com>
Thu, 9 Nov 2006 11:37:35 +0000 (11:37 +0000)
committerEwan Mellor <ewan@xensource.com>
Thu, 9 Nov 2006 11:37:35 +0000 (11:37 +0000)
by Jim Fehlig.

Signed-off-by: Ewan Mellor <ewan@xensource.com>
22 files changed:
tools/libxen/include/xen_host.h
tools/libxen/include/xen_host_cpu.h
tools/libxen/include/xen_network.h
tools/libxen/include/xen_pif.h
tools/libxen/include/xen_sr.h
tools/libxen/include/xen_user.h
tools/libxen/include/xen_vbd.h
tools/libxen/include/xen_vdi.h
tools/libxen/include/xen_vif.h
tools/libxen/include/xen_vm.h
tools/libxen/include/xen_vtpm.h
tools/libxen/src/xen_host.c
tools/libxen/src/xen_host_cpu.c
tools/libxen/src/xen_network.c
tools/libxen/src/xen_pif.c
tools/libxen/src/xen_sr.c
tools/libxen/src/xen_user.c
tools/libxen/src/xen_vbd.c
tools/libxen/src/xen_vdi.c
tools/libxen/src/xen_vif.c
tools/libxen/src/xen_vm.c
tools/libxen/src/xen_vtpm.c

index 69581574a05de809072d51ad0a31605faa93aca3..2264b603e4c8266c599abf7b9037cd1f89b48ccf 100644 (file)
@@ -174,6 +174,13 @@ extern bool
 xen_host_create(xen_session *session, xen_host *result, xen_host_record *record);
 
 
+/**
+ * Destroy the specified host instance.
+ */
+extern bool
+xen_host_destroy(xen_session *session, xen_host host);
+
+
 /**
  * Get all the host instances with the given label.
  */
index 24913a858671c0ea7e7509d8910b1e808c18384f..e0d4ee0c4b9eac697fdbbf4be79947b7cc618dc2 100644 (file)
@@ -173,6 +173,13 @@ extern bool
 xen_host_cpu_create(xen_session *session, xen_host_cpu *result, xen_host_cpu_record *record);
 
 
+/**
+ * Destroy the specified host_cpu instance.
+ */
+extern bool
+xen_host_cpu_destroy(xen_session *session, xen_host_cpu host_cpu);
+
+
 /**
  * Get the uuid field of the given host_cpu.
  */
index 98a63d5f9a042a130e0b917abbcf913fb19daa0a..a25babe4922d86acbf581306c5f68b0d5307050c 100644 (file)
@@ -172,6 +172,13 @@ extern bool
 xen_network_create(xen_session *session, xen_network *result, xen_network_record *record);
 
 
+/**
+ * Destroy the specified network instance.
+ */
+extern bool
+xen_network_destroy(xen_session *session, xen_network network);
+
+
 /**
  * Get all the network instances with the given label.
  */
index 8e7e1989cb03aa0d5c00226c07d5fd8549c89b85..143ba5709a0dea53f87d0c0dc32a2ad1eb4f3010 100644 (file)
@@ -175,6 +175,13 @@ extern bool
 xen_pif_create(xen_session *session, xen_pif *result, xen_pif_record *record);
 
 
+/**
+ * Destroy the specified PIF instance.
+ */
+extern bool
+xen_pif_destroy(xen_session *session, xen_pif pif);
+
+
 /**
  * Get the uuid field of the given PIF.
  */
index c99f43f922df505b50a3af44c66e10097eeb1345..8359b5737b44a4be8b009a33c18294be95a2e2dc 100644 (file)
@@ -173,6 +173,13 @@ extern bool
 xen_sr_create(xen_session *session, xen_sr *result, xen_sr_record *record);
 
 
+/**
+ * Destroy the specified SR instance.
+ */
+extern bool
+xen_sr_destroy(xen_session *session, xen_sr sr);
+
+
 /**
  * Get all the SR instances with the given label.
  */
index 67cfe0caa4edb3463b7c48de544749854ce38ae8..b42682558571938a49f1c2ea9619cc4526b19bae 100644 (file)
@@ -166,6 +166,13 @@ extern bool
 xen_user_create(xen_session *session, xen_user *result, xen_user_record *record);
 
 
+/**
+ * Destroy the specified user instance.
+ */
+extern bool
+xen_user_destroy(xen_session *session, xen_user user);
+
+
 /**
  * Get the uuid field of the given user.
  */
index 67f9c870666c372a118a553f13845480cb19033e..2b9d8b05eb3a6faea94ef9cc1fcf3b096c40c1e7 100644 (file)
@@ -176,6 +176,13 @@ extern bool
 xen_vbd_create(xen_session *session, xen_vbd *result, xen_vbd_record *record);
 
 
+/**
+ * Destroy the specified VBD instance.
+ */
+extern bool
+xen_vbd_destroy(xen_session *session, xen_vbd vbd);
+
+
 /**
  * Get the uuid field of the given VBD.
  */
index 92298c9ef64f96ba5a618bb2ed48acc98643f761..ba20f755c6924e611ca084c98f44c40e0bfcee6d 100644 (file)
@@ -179,6 +179,13 @@ extern bool
 xen_vdi_create(xen_session *session, xen_vdi *result, xen_vdi_record *record);
 
 
+/**
+ * Destroy the specified VDI instance.
+ */
+extern bool
+xen_vdi_destroy(xen_session *session, xen_vdi vdi);
+
+
 /**
  * Get all the VDI instances with the given label.
  */
index d6022fa201635b68426206f97c436a2daac39819..8930a7849fc93d003d9d99c05983f764e2a129cb 100644 (file)
@@ -176,6 +176,13 @@ extern bool
 xen_vif_create(xen_session *session, xen_vif *result, xen_vif_record *record);
 
 
+/**
+ * Destroy the specified VIF instance.
+ */
+extern bool
+xen_vif_destroy(xen_session *session, xen_vif vif);
+
+
 /**
  * Get the uuid field of the given VIF.
  */
index 1ff893b86fd92f7361f7834906c4f2307801680f..f589a3eea5f258befbd6ddef9276dee35eda1243 100644 (file)
@@ -216,6 +216,15 @@ extern bool
 xen_vm_create(xen_session *session, xen_vm *result, xen_vm_record *record);
 
 
+/**
+ * Destroy the specified VM.  The VM is completely removed from the
+ * system.  This function can only be called when the VM is in the Halted
+ * State.
+ */
+extern bool
+xen_vm_destroy(xen_session *session, xen_vm vm);
+
+
 /**
  * Get all the VM instances with the given label.
  */
index e752fa9e8dec78b086a023b228555c43722a19bd..f55d74217b96a39be8c217de114e969a6e67ff08 100644 (file)
@@ -171,6 +171,13 @@ extern bool
 xen_vtpm_create(xen_session *session, xen_vtpm *result, xen_vtpm_record *record);
 
 
+/**
+ * Destroy the specified VTPM instance.
+ */
+extern bool
+xen_vtpm_destroy(xen_session *session, xen_vtpm vtpm);
+
+
 /**
  * Get the uuid field of the given VTPM.
  */
index 99c619164967eb4d6641140df691455c19729dec..931a0c44ce8aafbfe84edff88339f1866834ada1 100644 (file)
@@ -149,6 +149,20 @@ xen_host_create(xen_session *session, xen_host *result, xen_host_record *record)
 }
 
 
+bool
+xen_host_destroy(xen_session *session, xen_host host)
+{
+    abstract_value param_values[] =
+        {
+            { .type = &abstract_type_string,
+              .u.string_val = host }
+        };
+
+    xen_call_(session, "host.destroy", param_values, 1, NULL, NULL);
+    return session->ok;
+}
+
+
 bool
 xen_host_get_by_name_label(xen_session *session, struct xen_host_set **result, char *label)
 {
index 678137071c4841cbdc136e2f01903d2c17185bef..ff73dcd9b90132da91ffdaf0ac6ed8f34502ac25 100644 (file)
@@ -149,6 +149,20 @@ xen_host_cpu_create(xen_session *session, xen_host_cpu *result, xen_host_cpu_rec
 }
 
 
+bool
+xen_host_cpu_destroy(xen_session *session, xen_host_cpu host_cpu)
+{
+    abstract_value param_values[] =
+        {
+            { .type = &abstract_type_string,
+              .u.string_val = host_cpu }
+        };
+
+    xen_call_(session, "host_cpu.destroy", param_values, 1, NULL, NULL);
+    return session->ok;
+}
+
+
 bool
 xen_host_cpu_get_host(xen_session *session, xen_host *result, xen_host_cpu host_cpu)
 {
index 771d8e2cd450bb7fb139d37d9042c2ce2a5b37bc..4c56e6e41d16465a4a4c16af8ad80223d1161ef6 100644 (file)
@@ -147,6 +147,20 @@ xen_network_create(xen_session *session, xen_network *result, xen_network_record
 }
 
 
+bool
+xen_network_destroy(xen_session *session, xen_network network)
+{
+    abstract_value param_values[] =
+        {
+            { .type = &abstract_type_string,
+              .u.string_val = network }
+        };
+
+    xen_call_(session, "network.destroy", param_values, 1, NULL, NULL);
+    return session->ok;
+}
+
+
 bool
 xen_network_get_by_name_label(xen_session *session, struct xen_network_set **result, char *label)
 {
index 3c12ab472ae15d29781794beb4730f293b28ca8d..b3edd91e6d0dad46fa32dc5d54affd9c2bdf45b3 100644 (file)
@@ -152,6 +152,20 @@ xen_pif_create(xen_session *session, xen_pif *result, xen_pif_record *record)
 }
 
 
+bool
+xen_pif_destroy(xen_session *session, xen_pif pif)
+{
+    abstract_value param_values[] =
+        {
+            { .type = &abstract_type_string,
+              .u.string_val = pif }
+        };
+
+    xen_call_(session, "PIF.destroy", param_values, 1, NULL, NULL);
+    return session->ok;
+}
+
+
 bool
 xen_pif_get_name(xen_session *session, char **result, xen_pif pif)
 {
index 3f4c2f946f053caa380fbc6898a4b6072023ba11..3c4ffb16deb6a3df18c5e4d8f8f2e10c806c7010 100644 (file)
@@ -151,6 +151,20 @@ xen_sr_create(xen_session *session, xen_sr *result, xen_sr_record *record)
 }
 
 
+bool
+xen_sr_destroy(xen_session *session, xen_sr sr)
+{
+    abstract_value param_values[] =
+        {
+            { .type = &abstract_type_string,
+              .u.string_val = sr }
+        };
+
+    xen_call_(session, "SR.destroy", param_values, 1, NULL, NULL);
+    return session->ok;
+}
+
+
 bool
 xen_sr_get_by_name_label(xen_session *session, struct xen_sr_set **result, char *label)
 {
index da31391f83cdecd7a724ae795634d840af24f1c0..35b80e2f66384701556cc51415a455234f5b31f6 100644 (file)
@@ -129,6 +129,20 @@ xen_user_create(xen_session *session, xen_user *result, xen_user_record *record)
 }
 
 
+bool
+xen_user_destroy(xen_session *session, xen_user user)
+{
+    abstract_value param_values[] =
+        {
+            { .type = &abstract_type_string,
+              .u.string_val = user }
+        };
+
+    xen_call_(session, "user.destroy", param_values, 1, NULL, NULL);
+    return session->ok;
+}
+
+
 bool
 xen_user_get_short_name(xen_session *session, char **result, xen_user user)
 {
index 20353cb28c8fcdb2dd5f9244cd402607b8370f80..c49ecf236a779e3cebe22c60732d10adbb6e3492 100644 (file)
@@ -152,6 +152,20 @@ xen_vbd_create(xen_session *session, xen_vbd *result, xen_vbd_record *record)
 }
 
 
+bool
+xen_vbd_destroy(xen_session *session, xen_vbd vbd)
+{
+    abstract_value param_values[] =
+        {
+            { .type = &abstract_type_string,
+              .u.string_val = vbd }
+        };
+
+    xen_call_(session, "VBD.destroy", param_values, 1, NULL, NULL);
+    return session->ok;
+}
+
+
 bool
 xen_vbd_get_vm(xen_session *session, xen_vm *result, xen_vbd vbd)
 {
index 15f4608911c8ac3e59b620f6d600f09679913939..a8d157d23220545078238c9e0761d04f359a7709 100644 (file)
@@ -166,6 +166,20 @@ xen_vdi_create(xen_session *session, xen_vdi *result, xen_vdi_record *record)
 }
 
 
+bool
+xen_vdi_destroy(xen_session *session, xen_vdi vdi)
+{
+    abstract_value param_values[] =
+        {
+            { .type = &abstract_type_string,
+              .u.string_val = vdi }
+        };
+
+    xen_call_(session, "VDI.destroy", param_values, 1, NULL, NULL);
+    return session->ok;
+}
+
+
 bool
 xen_vdi_get_by_name_label(xen_session *session, struct xen_vdi_set **result, char *label)
 {
index c639e4ab1ff6dc2440fa8f584bf21a1bfefe94b1..ce286261504745b864c8b6459f20348838c1e952 100644 (file)
@@ -156,6 +156,20 @@ xen_vif_create(xen_session *session, xen_vif *result, xen_vif_record *record)
 }
 
 
+bool
+xen_vif_destroy(xen_session *session, xen_vif vif)
+{
+    abstract_value param_values[] =
+        {
+            { .type = &abstract_type_string,
+              .u.string_val = vif }
+        };
+
+    xen_call_(session, "VIF.destroy", param_values, 1, NULL, NULL);
+    return session->ok;
+}
+
+
 bool
 xen_vif_get_name(xen_session *session, char **result, xen_vif vif)
 {
index 2e5400207332cf349d2a4109cb34e8d8685085eb..cd0271c71c2c1d64ccff4176a395ae5851f9ffcb 100644 (file)
@@ -279,6 +279,20 @@ xen_vm_create(xen_session *session, xen_vm *result, xen_vm_record *record)
 }
 
 
+bool
+xen_vm_destroy(xen_session *session, xen_vm vm)
+{
+    abstract_value param_values[] =
+        {
+            { .type = &abstract_type_string,
+              .u.string_val = vm }
+        };
+
+    xen_call_(session, "VM.destroy", param_values, 1, NULL, NULL);
+    return session->ok;
+}
+
+
 bool
 xen_vm_get_by_name_label(xen_session *session, struct xen_vm_set **result, char *label)
 {
@@ -1580,17 +1594,3 @@ xen_vm_get_uuid(xen_session *session, char **result, xen_vm vm)
     *result = session->ok ? xen_strdup_((char *)vm) : NULL;
     return session->ok;
 }
-
-
-bool
-xen_vm_destroy(xen_session *session, xen_vm vm)
-{
-    abstract_value param_values[] =
-        {
-            { .type = &abstract_type_string,
-              .u.string_val = vm }
-        };
-
-    xen_call_(session, "VM.destroy", param_values, 1, NULL, NULL);
-    return session->ok;
-}
index 12a811d8d70373a00ab453b153d827b7a65fdf39..eb8156a0a3cc8ea1abf2ff3a9fa2021feb901f3f 100644 (file)
@@ -138,6 +138,20 @@ xen_vtpm_create(xen_session *session, xen_vtpm *result, xen_vtpm_record *record)
 }
 
 
+bool
+xen_vtpm_destroy(xen_session *session, xen_vtpm vtpm)
+{
+    abstract_value param_values[] =
+        {
+            { .type = &abstract_type_string,
+              .u.string_val = vtpm }
+        };
+
+    xen_call_(session, "VTPM.destroy", param_values, 1, NULL, NULL);
+    return session->ok;
+}
+
+
 bool
 xen_vtpm_get_vm(xen_session *session, xen_vm *result, xen_vtpm vtpm)
 {