handle OS.SysErr _ =>
ErrorMsg.error NONE ("Delete failed for " ^ dst);
(site,
- {action = Slave.Delete,
+ {action = Slave.Delete true,
domain = dom,
dir = dir,
file = dst}))
orelse (hasPriv "mail"
andalso List.exists (fn x => x = node) Config.mailNodes_admin))
-fun rmdom doms =
+fun rmdom' delete resultRoot doms =
let
fun doNode (node, _) =
let
- val dname = OS.Path.joinDirFile {dir = Config.resultRoot,
+ val dname = OS.Path.joinDirFile {dir = resultRoot,
file = node}
fun doDom (dom, actions) =
loop (visitDom (fname ^ "." ^ dom,
fnameFull,
actions))
- else
- loop ({action = Slave.Delete,
- domain = dom,
- dir = dname,
- file = fnameFull} :: actions)
+ else
+ (print ("Kill " ^ fnameFull ^ "\n");
+ loop ({action = Slave.Delete delete,
+ domain = dom,
+ dir = dname,
+ file = fnameFull} :: actions))
end
in
loop actions
before Posix.FileSys.closedir dir
end
- handle OS.SysErr _ =>
- (print ("Warning: System error deleting domain " ^ dom ^ " on " ^ node ^ ".\n");
+ handle OS.SysErr (s, _) =>
+ (print ("Warning: System error deleting domain " ^ dom ^ " on " ^ node ^ ": " ^ s ^ "\n");
actions)
in
visitDom (dom, dname, actions)
fun doDom dom =
let
val domPath = String.concatWith "/" (rev (String.fields (fn ch => ch = #".") dom))
- val dname = OS.Path.joinDirFile {dir = Config.resultRoot,
+ val dname = OS.Path.joinDirFile {dir = resultRoot,
file = node}
val dname = OS.Path.concat (dname, domPath)
in
- ignore (OS.Process.system (Config.rm ^ " -rf " ^ dname))
+ if delete then
+ ignore (OS.Process.system (Config.rm ^ " -rf " ^ dname))
+ else
+ ()
end
in
app doDom doms
app cleanupNode Config.nodeIps
end
+val rmdom = rmdom' true Config.resultRoot
+val rmdom' = rmdom' false
+
fun homedirOf uname =
Posix.SysDB.Passwd.home (Posix.SysDB.getpwnam uname)
fun describeOne arg = String.concat (map (fn f => f arg) (rev (!describers)))
-val line = "-------------------------------\n"
-val dline = "===============================\n"
+val line = "--------------------------------------------------------------\n"
+val dline = "==============================================================\n"
fun describe dom =
String.concat (List.mapPartial