diff options
author | Richard W.M. Jones <rjones@redhat.com> | 2009-05-15 14:01:28 +0100 |
---|---|---|
committer | Richard W.M. Jones <rjones@redhat.com> | 2009-05-15 14:52:34 +0100 |
commit | 5cd39c83e23eb300d1bdfa806902a31b409ff420 (patch) | |
tree | a47e2bf9afc16cb9404ae996f512a9d3f22e553b /java | |
parent | b8e5f51c79f539a740827506cc9da3ffcb6c87f8 (diff) | |
download | libguestfs-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 'java')
-rw-r--r-- | java/com/redhat/et/libguestfs/GuestFS.java | 109 | ||||
-rw-r--r-- | java/com_redhat_et_libguestfs_GuestFS.c | 108 |
2 files changed, 217 insertions, 0 deletions
diff --git a/java/com/redhat/et/libguestfs/GuestFS.java b/java/com/redhat/et/libguestfs/GuestFS.java index 76ada908..7eafce0f 100644 --- a/java/com/redhat/et/libguestfs/GuestFS.java +++ b/java/com/redhat/et/libguestfs/GuestFS.java @@ -1518,6 +1518,8 @@ public class GuestFS { * you would pass "lines" as a single element list, when * the single element being the string "," (comma). * + * See also: "g.sfdisk_l", "g.sfdisk_N" + * * This command is dangerous. Without careful use you can * easily destroy all your data. * @@ -2755,4 +2757,111 @@ public class GuestFS { private native void _zerofree (long g, String device) throws LibGuestFSException; + /** + * resize an LVM physical volume + * + * This resizes (expands or shrinks) an existing LVM + * physical volume to match the new size of the underlying + * device. + * + * @throws LibGuestFSException + */ + public void pvresize (String device) + throws LibGuestFSException + { + if (g == 0) + throw new LibGuestFSException ("pvresize: handle is closed"); + _pvresize (g, device); + } + private native void _pvresize (long g, String device) + throws LibGuestFSException; + + /** + * modify a single partition on a block device + * + * This runs sfdisk(8) option to modify just the single + * partition "n" (note: "n" counts from 1). + * + * For other parameters, see "g.sfdisk". You should usually + * pass 0 for the cyls/heads/sectors parameters. + * + * This command is dangerous. Without careful use you can + * easily destroy all your data. + * + * @throws LibGuestFSException + */ + public void sfdisk_N (String device, int n, int cyls, int heads, int sectors, String line) + throws LibGuestFSException + { + if (g == 0) + throw new LibGuestFSException ("sfdisk_N: handle is closed"); + _sfdisk_N (g, device, n, cyls, heads, sectors, line); + } + private native void _sfdisk_N (long g, String device, int n, int cyls, int heads, int sectors, String line) + throws LibGuestFSException; + + /** + * display the partition table + * + * This displays the partition table on "device", in the + * human-readable output of the sfdisk(8) command. It is + * not intended to be parsed. + * + * @throws LibGuestFSException + */ + public String sfdisk_l (String device) + throws LibGuestFSException + { + if (g == 0) + throw new LibGuestFSException ("sfdisk_l: handle is closed"); + return _sfdisk_l (g, device); + } + private native String _sfdisk_l (long g, String device) + throws LibGuestFSException; + + /** + * display the kernel geometry + * + * This displays the kernel's idea of the geometry of + * "device". + * + * The result is in human-readable format, and not designed + * to be parsed. + * + * @throws LibGuestFSException + */ + public String sfdisk_kernel_geometry (String device) + throws LibGuestFSException + { + if (g == 0) + throw new LibGuestFSException ("sfdisk_kernel_geometry: handle is closed"); + return _sfdisk_kernel_geometry (g, device); + } + private native String _sfdisk_kernel_geometry (long g, String device) + throws LibGuestFSException; + + /** + * display the disk geometry from the partition table + * + * This displays the disk geometry of "device" read from + * the partition table. Especially in the case where the + * underlying block device has been resized, this can be + * different from the kernel's idea of the geometry (see + * "g.sfdisk_kernel_geometry"). + * + * The result is in human-readable format, and not designed + * to be parsed. + * + * @throws LibGuestFSException + */ + public String sfdisk_disk_geometry (String device) + throws LibGuestFSException + { + if (g == 0) + throw new LibGuestFSException ("sfdisk_disk_geometry: handle is closed"); + return _sfdisk_disk_geometry (g, device); + } + private native String _sfdisk_disk_geometry (long g, String device) + throws LibGuestFSException; + } diff --git a/java/com_redhat_et_libguestfs_GuestFS.c b/java/com_redhat_et_libguestfs_GuestFS.c index a823d84e..be7ea9f2 100644 --- a/java/com_redhat_et_libguestfs_GuestFS.c +++ b/java/com_redhat_et_libguestfs_GuestFS.c @@ -2739,3 +2739,111 @@ Java_com_redhat_et_libguestfs_GuestFS__1zerofree } } +JNIEXPORT void JNICALL +Java_com_redhat_et_libguestfs_GuestFS__1pvresize + (JNIEnv *env, jobject obj, jlong jg, jstring jdevice) +{ + guestfs_h *g = (guestfs_h *) (long) jg; + int r; + const char *device; + + device = (*env)->GetStringUTFChars (env, jdevice, NULL); + r = guestfs_pvresize (g, device); + (*env)->ReleaseStringUTFChars (env, jdevice, device); + if (r == -1) { + throw_exception (env, guestfs_last_error (g)); + return ; + } +} + +JNIEXPORT void JNICALL +Java_com_redhat_et_libguestfs_GuestFS__1sfdisk_1N + (JNIEnv *env, jobject obj, jlong jg, jstring jdevice, jint jn, jint jcyls, jint jheads, jint jsectors, jstring jline) +{ + guestfs_h *g = (guestfs_h *) (long) jg; + int r; + const char *device; + int n; + int cyls; + int heads; + int sectors; + const char *line; + + device = (*env)->GetStringUTFChars (env, jdevice, NULL); + n = jn; + cyls = jcyls; + heads = jheads; + sectors = jsectors; + line = (*env)->GetStringUTFChars (env, jline, NULL); + r = guestfs_sfdisk_N (g, device, n, cyls, heads, sectors, line); + (*env)->ReleaseStringUTFChars (env, jdevice, device); + (*env)->ReleaseStringUTFChars (env, jline, line); + if (r == -1) { + throw_exception (env, guestfs_last_error (g)); + return ; + } +} + +JNIEXPORT jstring JNICALL +Java_com_redhat_et_libguestfs_GuestFS__1sfdisk_1l + (JNIEnv *env, jobject obj, jlong jg, jstring jdevice) +{ + guestfs_h *g = (guestfs_h *) (long) jg; + jstring jr; + char *r; + const char *device; + + device = (*env)->GetStringUTFChars (env, jdevice, NULL); + r = guestfs_sfdisk_l (g, device); + (*env)->ReleaseStringUTFChars (env, jdevice, device); + if (r == NULL) { + throw_exception (env, guestfs_last_error (g)); + return NULL; + } + jr = (*env)->NewStringUTF (env, r); + free (r); + return jr; +} + +JNIEXPORT jstring JNICALL +Java_com_redhat_et_libguestfs_GuestFS__1sfdisk_1kernel_1geometry + (JNIEnv *env, jobject obj, jlong jg, jstring jdevice) +{ + guestfs_h *g = (guestfs_h *) (long) jg; + jstring jr; + char *r; + const char *device; + + device = (*env)->GetStringUTFChars (env, jdevice, NULL); + r = guestfs_sfdisk_kernel_geometry (g, device); + (*env)->ReleaseStringUTFChars (env, jdevice, device); + if (r == NULL) { + throw_exception (env, guestfs_last_error (g)); + return NULL; + } + jr = (*env)->NewStringUTF (env, r); + free (r); + return jr; +} + +JNIEXPORT jstring JNICALL +Java_com_redhat_et_libguestfs_GuestFS__1sfdisk_1disk_1geometry + (JNIEnv *env, jobject obj, jlong jg, jstring jdevice) +{ + guestfs_h *g = (guestfs_h *) (long) jg; + jstring jr; + char *r; + const char *device; + + device = (*env)->GetStringUTFChars (env, jdevice, NULL); + r = guestfs_sfdisk_disk_geometry (g, device); + (*env)->ReleaseStringUTFChars (env, jdevice, device); + if (r == NULL) { + throw_exception (env, guestfs_last_error (g)); + return NULL; + } + jr = (*env)->NewStringUTF (env, r); + free (r); + return jr; +} + |