@Override public boolean processWorkspaceBeforeDeletion( AbstractProject<?, ?> project, FilePath workspace, Node node) throws IOException, InterruptedException { if (node == null) { // HUDSON-7663 : deleting a job that has never run return true; } StreamTaskListener listener = StreamTaskListener.fromStdout(); Launcher launcher = node.createLauncher(listener); ClearTool ct = createClearTool( null, createClearToolLauncher( listener, project.getSomeWorkspace().getParent().getParent(), launcher)); try { if (isUseDynamicView() && !isCreateDynView()) { return true; } AbstractBuild<?, ?> latestBuildOnNode = null; for (AbstractBuild<?, ?> build : project.getBuilds()) { if (node.equals(build.getBuiltOn())) { latestBuildOnNode = build; break; } } if (latestBuildOnNode == null) { latestBuildOnNode = project.getLastBuild(); } BuildVariableResolver buildVariableResolver = new BuildVariableResolver(latestBuildOnNode); ct.rmviewtag(generateNormalizedViewName(buildVariableResolver)); } catch (Exception e) { Logger.getLogger(AbstractClearCaseScm.class.getName()) .log(Level.WARNING, "Failed to remove ClearCase view", e); } return true; }
protected void setExtendedViewPath( VariableResolver<String> variableResolver, ClearTool ct, AbstractHistoryAction action) { try { String viewPath = getViewPath(variableResolver); String pwv = ct.pwv(viewPath); if (pwv != null) { if (pwv.contains("/")) { pwv += "/"; } else { pwv += "\\"; } action.setExtendedViewPath(pwv); } } catch (Exception e) { Logger.getLogger(AbstractClearCaseScm.class.getName()) .log(Level.WARNING, "Exception when running 'cleartool pwv'", e); } }