|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objecthudson.FileSystemProvisioner
public abstract class FileSystemProvisioner
Prepares and provisions workspaces for AbstractProject
s.
STILL A WORK IN PROGRESS. SUBJECT TO CHANGE! DO NOT EXTEND.
TODO: is this per Computer
? Per Job
?
-> probably per slave.
RunListener
.
So this becomes like a special SCM type.
The first piece of this is the custom SCM
, which inherits the
workspace of another job. When this executes, it picks up
WorkspaceSnapshot
from the other job and use it to obtain the workspace.
Then there's RunListener
, which creates a snapshot if
someone else is interested in using a snapshot later.
Nested Class Summary | |
---|---|
static class |
FileSystemProvisioner.Default
Default implementation that doesn't rely on any file system specific capability, and thus can be used anywhere that Hudson runs. |
Nested classes/interfaces inherited from interface hudson.ExtensionPoint |
---|
ExtensionPoint.LegacyInstancesAreScopedToHudson |
Field Summary | |
---|---|
static FileSystemProvisioner |
DEFAULT
Default implementation. |
Constructor Summary | |
---|---|
FileSystemProvisioner()
|
Method Summary | |
---|---|
static DescriptorExtensionList<FileSystemProvisioner,FileSystemProvisionerDescriptor> |
all()
Returns all the registered FileSystemProvisioner descriptors. |
abstract void |
discardWorkspace(AbstractProject<?,?> project,
FilePath ws)
When a project is deleted, this method is called to undo the effect of prepareWorkspace(AbstractBuild, FilePath, TaskListener) . |
FileSystemProvisionerDescriptor |
getDescriptor()
Gets the descriptor for this instance. |
abstract void |
prepareWorkspace(AbstractBuild<?,?> build,
FilePath ws,
TaskListener listener)
Called very early in the build (before a build places any files in the workspace, such as SCM checkout) to provision a workspace for the build. |
abstract WorkspaceSnapshot |
snapshot(AbstractBuild<?,?> build,
FilePath ws,
String glob,
TaskListener listener)
Obtains the snapshot of the workspace of the given build. |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
public static final FileSystemProvisioner DEFAULT
Constructor Detail |
---|
public FileSystemProvisioner()
Method Detail |
---|
public abstract void prepareWorkspace(AbstractBuild<?,?> build, FilePath ws, TaskListener listener) throws IOException, InterruptedException
This method can prepare the underlying file system in preparation
for the later #snapshot(AbstractBuild, FilePath, TaskListener)
.
TODO : the method needs to be able to see the snapshot would
be later needed. In fact, perhaps we should only call this method
when Hudson knows that a snapshot is later needed?
ws
- New workspace should be prepared in this location. This is the same value as
build.getProject().getWorkspace()
but passed separately for convenience.
IOException
InterruptedException
public abstract void discardWorkspace(AbstractProject<?,?> project, FilePath ws) throws IOException, InterruptedException
prepareWorkspace(AbstractBuild, FilePath, TaskListener)
.
project
- Project whose workspace is being discarded.ws
- Workspace to be discarded. This workspace is on the node
this FileSystemProvisioner
is provisioned for.
IOException
InterruptedException
public abstract WorkspaceSnapshot snapshot(AbstractBuild<?,?> build, FilePath ws, String glob, TaskListener listener) throws IOException, InterruptedException
The state of the build when this method is invoked depends on
the project type. Most would call this at the end of the build,
but for example MatrixBuild
would call this after
SCM check out so that the state of the fresh workspace
can be then propagated to elsewhere.
If the implementation of this method needs to store data in a file system,
do so under Run.getRootDir()
, since the lifecycle of
the snapshot is tied to the life cycle of a build.
ws
- New workspace should be prepared in this location. This is the same value as
build.getWorkspace()
but passed separately for convenience.glob
- Ant-style file glob for files to include in the snapshot. May not be pertinent for all
implementations.
IOException
InterruptedException
public FileSystemProvisionerDescriptor getDescriptor()
Describable
Descriptor
is a singleton for every concrete Describable
implementation, so if a.getClass()==b.getClass() then
a.getDescriptor()==b.getDescriptor() must hold.
getDescriptor
in interface Describable<FileSystemProvisioner>
public static DescriptorExtensionList<FileSystemProvisioner,FileSystemProvisionerDescriptor> all()
FileSystemProvisioner
descriptors.
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |