summaryrefslogtreecommitdiffstats
path: root/ruby
diff options
context:
space:
mode:
authorRichard W.M. Jones <rjones@redhat.com>2009-05-15 14:01:28 +0100
committerRichard W.M. Jones <rjones@redhat.com>2009-05-15 14:52:34 +0100
commit5cd39c83e23eb300d1bdfa806902a31b409ff420 (patch)
treea47e2bf9afc16cb9404ae996f512a9d3f22e553b /ruby
parentb8e5f51c79f539a740827506cc9da3ffcb6c87f8 (diff)
downloadlibguestfs-5cd39c83e23eb300d1bdfa806902a31b409ff420.tar.gz
libguestfs-5cd39c83e23eb300d1bdfa806902a31b409ff420.tar.xz
libguestfs-5cd39c83e23eb300d1bdfa806902a31b409ff420.zip
Add: pvresize, sfdisk-N, sfdisk-l, sfdisk-kernel-geomtry, sfdisk-disk-geometry commands. Pass --no-reread flag to sfdisk.
Diffstat (limited to 'ruby')
-rw-r--r--ruby/ext/guestfs/_guestfs.c129
1 files changed, 129 insertions, 0 deletions
diff --git a/ruby/ext/guestfs/_guestfs.c b/ruby/ext/guestfs/_guestfs.c
index 4fb6ce71..b5c9b53a 100644
--- a/ruby/ext/guestfs/_guestfs.c
+++ b/ruby/ext/guestfs/_guestfs.c
@@ -2906,6 +2906,125 @@ static VALUE ruby_guestfs_zerofree (VALUE gv, VALUE devicev)
return Qnil;
}
+static VALUE ruby_guestfs_pvresize (VALUE gv, VALUE devicev)
+{
+ guestfs_h *g;
+ Data_Get_Struct (gv, guestfs_h, g);
+ if (!g)
+ rb_raise (rb_eArgError, "%s: used handle after closing it", "pvresize");
+
+ const char *device = StringValueCStr (devicev);
+ if (!device)
+ rb_raise (rb_eTypeError, "expected string for parameter %s of %s",
+ "device", "pvresize");
+
+ int r;
+
+ r = guestfs_pvresize (g, device);
+ if (r == -1)
+ rb_raise (e_Error, "%s", guestfs_last_error (g));
+
+ return Qnil;
+}
+
+static VALUE ruby_guestfs_sfdisk_N (VALUE gv, VALUE devicev, VALUE nv, VALUE cylsv, VALUE headsv, VALUE sectorsv, VALUE linev)
+{
+ guestfs_h *g;
+ Data_Get_Struct (gv, guestfs_h, g);
+ if (!g)
+ rb_raise (rb_eArgError, "%s: used handle after closing it", "sfdisk_N");
+
+ const char *device = StringValueCStr (devicev);
+ if (!device)
+ rb_raise (rb_eTypeError, "expected string for parameter %s of %s",
+ "device", "sfdisk_N");
+ int n = NUM2INT (nv);
+ int cyls = NUM2INT (cylsv);
+ int heads = NUM2INT (headsv);
+ int sectors = NUM2INT (sectorsv);
+ const char *line = StringValueCStr (linev);
+ if (!line)
+ rb_raise (rb_eTypeError, "expected string for parameter %s of %s",
+ "line", "sfdisk_N");
+
+ int r;
+
+ r = guestfs_sfdisk_N (g, device, n, cyls, heads, sectors, line);
+ if (r == -1)
+ rb_raise (e_Error, "%s", guestfs_last_error (g));
+
+ return Qnil;
+}
+
+static VALUE ruby_guestfs_sfdisk_l (VALUE gv, VALUE devicev)
+{
+ guestfs_h *g;
+ Data_Get_Struct (gv, guestfs_h, g);
+ if (!g)
+ rb_raise (rb_eArgError, "%s: used handle after closing it", "sfdisk_l");
+
+ const char *device = StringValueCStr (devicev);
+ if (!device)
+ rb_raise (rb_eTypeError, "expected string for parameter %s of %s",
+ "device", "sfdisk_l");
+
+ char *r;
+
+ r = guestfs_sfdisk_l (g, device);
+ if (r == NULL)
+ rb_raise (e_Error, "%s", guestfs_last_error (g));
+
+ VALUE rv = rb_str_new2 (r);
+ free (r);
+ return rv;
+}
+
+static VALUE ruby_guestfs_sfdisk_kernel_geometry (VALUE gv, VALUE devicev)
+{
+ guestfs_h *g;
+ Data_Get_Struct (gv, guestfs_h, g);
+ if (!g)
+ rb_raise (rb_eArgError, "%s: used handle after closing it", "sfdisk_kernel_geometry");
+
+ const char *device = StringValueCStr (devicev);
+ if (!device)
+ rb_raise (rb_eTypeError, "expected string for parameter %s of %s",
+ "device", "sfdisk_kernel_geometry");
+
+ char *r;
+
+ r = guestfs_sfdisk_kernel_geometry (g, device);
+ if (r == NULL)
+ rb_raise (e_Error, "%s", guestfs_last_error (g));
+
+ VALUE rv = rb_str_new2 (r);
+ free (r);
+ return rv;
+}
+
+static VALUE ruby_guestfs_sfdisk_disk_geometry (VALUE gv, VALUE devicev)
+{
+ guestfs_h *g;
+ Data_Get_Struct (gv, guestfs_h, g);
+ if (!g)
+ rb_raise (rb_eArgError, "%s: used handle after closing it", "sfdisk_disk_geometry");
+
+ const char *device = StringValueCStr (devicev);
+ if (!device)
+ rb_raise (rb_eTypeError, "expected string for parameter %s of %s",
+ "device", "sfdisk_disk_geometry");
+
+ char *r;
+
+ r = guestfs_sfdisk_disk_geometry (g, device);
+ if (r == NULL)
+ rb_raise (e_Error, "%s", guestfs_last_error (g));
+
+ VALUE rv = rb_str_new2 (r);
+ free (r);
+ return rv;
+}
+
/* Initialize the module. */
void Init__guestfs ()
{
@@ -3158,4 +3277,14 @@ void Init__guestfs ()
ruby_guestfs_hexdump, 1);
rb_define_method (c_guestfs, "zerofree",
ruby_guestfs_zerofree, 1);
+ rb_define_method (c_guestfs, "pvresize",
+ ruby_guestfs_pvresize, 1);
+ rb_define_method (c_guestfs, "sfdisk_N",
+ ruby_guestfs_sfdisk_N, 6);
+ rb_define_method (c_guestfs, "sfdisk_l",
+ ruby_guestfs_sfdisk_l, 1);
+ rb_define_method (c_guestfs, "sfdisk_kernel_geometry",
+ ruby_guestfs_sfdisk_kernel_geometry, 1);
+ rb_define_method (c_guestfs, "sfdisk_disk_geometry",
+ ruby_guestfs_sfdisk_disk_geometry, 1);
}