hudson
Class FileSystemProvisionerDescriptor

java.lang.Object
  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.

Author:
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
ExtensionPoint.LegacyInstancesAreScopedToHudson
 
Field Summary
 
Fields inherited from class hudson.model.Descriptor
clazz
 
Fields inherited from interface hudson.model.Saveable
NOOP
 
Constructor Summary
FileSystemProvisionerDescriptor()
           
 
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

FileSystemProvisionerDescriptor

public FileSystemProvisionerDescriptor()
Method Detail

discard

public abstract boolean discard(FilePath ws,
                                TaskListener listener)
                         throws IOException,
                                InterruptedException
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.

Parameters:
ws - The workspace directory to be removed.
listener - The status of the operation, error message, etc., should go here.
Returns:
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.
Throws:
IOException
InterruptedException


Copyright © 2004-2013 Hudson. All Rights Reserved.