From a11b63a8b2b43221f1fd48c1e9ed0a39a9f2d9bc Mon Sep 17 00:00:00 2001 From: Thomas Schoebel-Theuer Date: Thu, 30 Jan 2014 07:09:03 +0100 Subject: [PATCH] marsadm: allow create-resource on pre-existing resource directory --- userspace/marsadm | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/userspace/marsadm b/userspace/marsadm index d764e615..3b3a77ed 100755 --- a/userspace/marsadm +++ b/userspace/marsadm @@ -980,8 +980,15 @@ sub create_res { my $resdir = "$mars/resource-$res"; if ($create) { - ldie "resource directory '$res' already exists; you may override this via --force\n" if (!$force && -d $resdir); - ldie "resource directory '$res' has some contents -- remove by hand if you are sure that you really know what you are doing, or give --force.\n" if (!$force && glob("$resdir/*.status")); + if (-d $resdir) { + lwarn "resource directory '$res' already exists\n"; + my @host_list = glob("$resdir/replay-*"); + if (@host_list) { + my $h_list = join(',', map({ $_ =~ s:.*/replay-::;} (@host_list))); + lwarn "DANGER: hosts '$h_list' are already member of resource '$res'.\n"; + ldie "REFUSING to trash your resource!\n" unless $force; + } + } lprint "creating new resource '$res'\n"; } else { if ( -e "$resdir/data-$host") { @@ -1167,7 +1174,7 @@ sub delete_res { my $basedir = "$mars/resource-$res"; # preconditions if (! -d $basedir) { - lprint "resource directory '' does no longer exist,\n"; + lprint "resource directory '$basedir' does no longer exist.\n"; return; } my @host_list = glob("$basedir/replay-*");