[Libguestfs] [PATCHv2 2/3] New API: part_set_disk_guid_random.

Maxim Perevedentsev mperevedentsev at virtuozzo.com
Tue Jan 19 12:03:00 UTC 2016


Provides a way to set a new randomly-generated GUID to disk.
---
 daemon/parted.c      | 15 +++++++++++++++
 generator/actions.ml | 15 +++++++++++++++
 src/MAX_PROC_NR      |  2 +-
 3 files changed, 31 insertions(+), 1 deletion(-)

diff --git a/daemon/parted.c b/daemon/parted.c
index 40f9676..22cd92b 100644
--- a/daemon/parted.c
+++ b/daemon/parted.c
@@ -988,3 +988,18 @@ do_part_set_disk_guid (const char *device, const char *guid)

   return 0;
 }
+
+int
+do_part_set_disk_guid_random (const char *device)
+{
+  CLEANUP_FREE char *err = NULL;
+  int r = commandf (NULL, &err, COMMAND_FLAG_FOLD_STDOUT_ON_STDERR,
+                    str_sgdisk, device, "-U", "R", NULL);
+
+  if (r == -1) {
+    reply_with_error ("%s %s -U R: %s", str_sgdisk, device, err);
+    return -1;
+  }
+
+  return 0;
+}
diff --git a/generator/actions.ml b/generator/actions.ml
index 62c4839..d345175 100644
--- a/generator/actions.ml
+++ b/generator/actions.ml
@@ -12830,6 +12830,21 @@ or if C<guid> is not a valid GUID." };
 Return the disk identifier (GUID) of a GPT-partitioned C<device>.
 Behaviour is undefined for other partition types." };

+  { defaults with
+    name = "part_set_disk_guid_random"; added = (1, 33, 2);
+    style = RErr, [Device "device"], [];
+    proc_nr = Some 461;
+    optional = Some "gdisk";
+    tests = [
+      InitGPT, Always, TestRun (
+        [["part_set_disk_guid_random"; "/dev/sda"]]), [];
+    ];
+    shortdesc = "set the GUID of a GPT-partitioned disk to random value";
+    longdesc = "\
+Set the disk identifier (GUID) of a GPT-partitioned C<device> to
+a randomly generated value.
+Return an error if the partition table of C<device> isn't GPT." };
+
 ]

 (* Non-API meta-commands available only in guestfish.
diff --git a/src/MAX_PROC_NR b/src/MAX_PROC_NR
index ccbd68f..408b885 100644
--- a/src/MAX_PROC_NR
+++ b/src/MAX_PROC_NR
@@ -1 +1 @@
-460
+461
--
1.8.3.1




More information about the Libguestfs mailing list