Class FileSystemProvisionerDescriptor

  extended by hudson.model.Descriptor<FileSystemProvisioner>
      extended by hudson.FileSystemProvisionerDescriptor
All Implemented Interfaces:
ExtensionPoint, Saveable
Direct Known Subclasses:
FileSystemProvisioner.Default.DescriptorImpl, ZFSProvisioner.DescriptorImpl

public abstract class FileSystemProvisionerDescriptor
extends Descriptor<FileSystemProvisioner>
implements ExtensionPoint

Descriptor for FileSystemProvisioner.

Kohsuke Kawaguchi

Nested Class Summary
Nested classes/interfaces inherited from class hudson.model.Descriptor
Descriptor.FormException, Descriptor.PropertyType
Nested classes/interfaces inherited from interface hudson.ExtensionPoint
Field Summary
Fields inherited from class hudson.model.Descriptor
Fields inherited from interface hudson.model.Saveable
Constructor Summary
Method Summary
abstract  boolean discard(FilePath ws, TaskListener listener)
          Called to clean up a workspace that may potentially belong to this FileSystemProvisioner.
Methods inherited from class hudson.model.Descriptor
calcAutoCompleteSettings, calcFillSettings, configure, configure, doHelp, find, find, getCheckUrl, getConfigFile, getConfigPage, getDescriptorUrl, getDisplayName, getGlobalConfigPage, getGlobalPropertyType, getHelpFile, getHelpFile, getId, getJsonSafeClassName, getPropertyType, getPropertyType, isInstance, isSubTypeOf, load, newInstance, newInstance, newInstancesFromHeteroList, newInstancesFromHeteroList, save, toArray, toList, toMap
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Constructor Detail


public FileSystemProvisionerDescriptor()
Method Detail


public abstract boolean discard(FilePath ws,
                                TaskListener listener)
                         throws IOException,
Called to clean up a workspace that may potentially belong to this FileSystemProvisioner.

Because users may modify the file system behind Hudson, and slaves may come and go when configuration changes hapen, in general case Hudson is unable to keep track of which jobs have workspaces in which slaves.

So instead we rey on a garbage collection mechanism, to look at workspaces left in the file system without the contextual information of the owner project, and try to clean that up.

This method is called to do this, after Hudson determines that the workspace should be deleted to reclaim disk space. The implementation of this method is expected to sniff the contents of the workspace, and if it looks like the one created by FileSystemProvisioner.prepareWorkspace(AbstractBuild, FilePath, TaskListener), perform the necessary deletion operation, and return true.

If the workspace isn't the one created by this FileSystemProvisioner, or if the workspace can be simply deleted by FilePath.deleteRecursive(), then simply return false to give other FileSystemProvisionerDescriptors a chance to discard them.

ws - The workspace directory to be removed.
listener - The status of the operation, error message, etc., should go here.
true if this FileSystemProvisionerDescriptor is responsible for de-alocating the workspace. false otherwise, in which case the other FileSystemProvisionerDescriptors are asked to clean up the workspace.

Copyright © 2004-2013 Hudson. All Rights Reserved.