|
(→AHPSCRIPTS-61)
|
(→AHPSCRIPTS-62)
|
| Line 1170: | |||
| } | } | ||
| </pre> | </pre> | ||
| + | = Script That Optionally Cleans Working Directory = | ||
| + | * Sometimes we want to clean the workflow directory, other times we don't. The determination is property drive. | ||
| + | ==== AHPSCRIPTS-34 ==== | ||
| + | <pre>import com.urbancode.anthill3.command.workdir.PathBuilder; | ||
| + | import com.urbancode.anthill3.domain.source.*; | ||
| + | import com.urbancode.anthill3.domain.workdir.*; | ||
| + | import com.urbancode.command.path.Path; | ||
| + | import com.urbancode.devilfish.services.file.*; | ||
| + | org.apache.log4j.Logger log = org.apache.log4j.Logger.getLogger("OptionallyCleanWorkingDirectory"); | ||
| + | SourceConfig source = SourceConfigLookup.getCurrent(); | ||
| + | if (source instanceof WithWorkDirScript) { | ||
| + | WorkDirScript workDirConfig = ((WithWorkDirScript) source).getWorkDirScript(); | ||
| + | Path workDirPath = PathBuilder.buildPath(workDirConfig); | ||
| + | WorkDirPath.setPath(workDirPath); | ||
| + | log.warn("Setting working directory to " + workDirPath.getPathStr()); | ||
| + | } | ||
| + | else { | ||
| + | log.warn("NOT setting working directory. Source Configuration does not support it."); | ||
| + | } | ||
| + | if (Boolean.valueOf(PropertyLookup.getValue("shouldCleanup")).booleanValue()) { | ||
| + | log.warn("Workflow property configured to clean the working directory."); | ||
| + | FileServiceClient service = new FileServiceClient(JobTraceLookup.getCurrent().getAgent().getEndpoint()); | ||
| + | File workDir = new File(WorkDirPath.get().getPathStr()); | ||
| + | FileInfo info = service.getFileInfo(workDir); | ||
| + | if (info.exists()) { | ||
| + | log.warn("Directory exists. Deleting directory \'"+info.getPath()+"\'."); | ||
| + | results = service.deleteFile(workDir); | ||
| + | log.warn("Cleanup of " + info.getPath() + " complete!"); | ||
| + | log.warn("Successfully removed " + results.filesDeleted + " files/directories."); | ||
| + | log.warn("Failed to remove " + results.getFailedDeletionCount() + " files/directories."); | ||
| + | if (results.hasFailedDeletions()) { | ||
| + | throw new Exception("Failed to clean the working directory"); | ||
| + | } | ||
| + | } | ||
| + | else { | ||
| + | log.warn("Directory does not exist. No action needed."); | ||
| + | } | ||
| + | } | ||
| + | else { | ||
| + | log.warn("Workflow property configured to NOT clean the working directory."); | ||
| + | }</pre> | ||