[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

[Libvir] [PATCH]Reprt error for a existing file



Hi, I make a patch which reports error for a existing file to prevent overwriting before the file.

# ./virsh dump 1 a.dump
error: file a.dump exists already
# echo $?
1
# ./virsh save 1 a.save
error: file a.save exists already
# echo $?
1

As you know, we need to add this message item to libvirt/po.

Signed-off-by: Kazuki Mizushima <mizushima kazuk jp fujitsu com>

Thanks,
Kazuki Mizushima

Index: src/virsh.c
===================================================================
RCS file: /data/cvs/libvirt/src/virsh.c,v
retrieving revision 1.58
diff -u -p -r1.58 virsh.c
--- src/virsh.c 2 Mar 2007 14:22:33 -0000       1.58
+++ src/virsh.c 5 Mar 2007 06:49:28 -0000
@@ -25,6 +25,7 @@
#include <getopt.h>
#include <sys/types.h>
#include <sys/time.h>
+#include <sys/stat.h>
#include <ctype.h>
#include <fcntl.h>
#include <locale.h>
@@ -860,6 +861,7 @@ cmdSave(vshControl * ctl, vshCmd * cmd)
    virDomainPtr dom;
    char *name;
    char *to;
+    struct stat st;
    int ret = TRUE;

    if (!vshConnectionUsability(ctl, ctl->conn, TRUE))
@@ -871,6 +873,11 @@ cmdSave(vshControl * ctl, vshCmd * cmd)
    if (!(dom = vshCommandOptDomain(ctl, cmd, "domain", &name)))
        return FALSE;

+    if (stat(to, &st) == 0){
+        vshError(ctl, FALSE, _("file %s exists already"), to);
+        return FALSE;
+    }
+
    if (virDomainSave(dom, to) == 0) {
        vshPrint(ctl, _("Domain %s saved to %s\n"), name, to);
    } else {
@@ -942,6 +949,7 @@ cmdDump(vshControl * ctl, vshCmd * cmd)
    virDomainPtr dom;
    char *name;
    char *to;
+    struct stat st;
    int ret = TRUE;

    if (!vshConnectionUsability(ctl, ctl->conn, TRUE))
@@ -953,6 +961,11 @@ cmdDump(vshControl * ctl, vshCmd * cmd)
    if (!(dom = vshCommandOptDomain(ctl, cmd, "domain", &name)))
        return FALSE;

+    if (stat(to, &st) == 0){
+        vshError(ctl, FALSE, _("file %s exists already"), to);
+        return FALSE;
+    }
+
    if (virDomainCoreDump(dom, to, 0) == 0) {
        vshPrint(ctl, _("Domain %s dumpd to %s\n"), name, to);
    } else {




[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]