Package com.xebialabs.xlrelease.domain
Class CustomScriptTask
- java.lang.Object
-
- com.xebialabs.deployit.plugin.api.udm.base.BaseConfigurationItem
-
- com.xebialabs.xlrelease.domain.PlanItem
-
- com.xebialabs.xlrelease.domain.Task
-
- com.xebialabs.xlrelease.domain.BaseScriptTask
-
- com.xebialabs.xlrelease.domain.CustomScriptTask
-
- All Implemented Interfaces:
ConfigurationItem
,Lockable
,VisitableItem
,java.io.Serializable
,java.lang.Comparable<BaseConfigurationItem>
@Metadata(label="Python Script", versioned=false) public class CustomScriptTask extends BaseScriptTask
- See Also:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description static java.lang.String
IGNORE_SCRIPT_VARIABLE_INTERPOLATION
static java.lang.String
PYTHON_SCRIPT_PREFIX
static java.lang.String
SCRIPT_PROPERTY_NAME
static Type
UNKNOWN_TYPE
static java.lang.String
WAIT_FOR_SIGNAL_PROPERTY_NAME
-
Fields inherited from class com.xebialabs.xlrelease.domain.Task
CATEGORY_INPUT, CATEGORY_OUTPUT, delayDuringBlackout, DUE_SOON_THRESHOLD, executionId, failureHandler, failuresCount, hasBeenDelayed, hasBeenFlagged, IS_AUTOMATED_AND_IN_PROGRESS, maxCommentSize, originalScheduledStartDate, postponedDueToBlackout, postponedUntilEnvironmentsAreReserved, precondition, status, tags, taskFailureHandlerEnabled, taskRecoverOp, team, variableMapping, waitForScheduledStartDate
-
Fields inherited from class com.xebialabs.xlrelease.domain.PlanItem
BY_TITLE, description, dueDate, endDate, flagComment, flagStatus, overdueNotified, owner, plannedDuration, scheduledStartDate, startDate, title
-
Fields inherited from class com.xebialabs.deployit.plugin.api.udm.base.BaseConfigurationItem
id, syntheticProperties, type
-
Fields inherited from interface com.xebialabs.deployit.plugin.api.udm.ConfigurationItem
SYNTHETIC_PROPERTIES_FIELD, TYPE_FIELD
-
-
Constructor Summary
Constructors Constructor Description CustomScriptTask()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected Changes
execute(java.lang.String targetId, TaskStartOrRetryOperation operation)
Changes
fail(java.lang.String targetId, java.lang.String failReason, User user, boolean fromAbort)
java.util.Set<java.lang.String>
freezeVariablesInCustomFields(java.util.Map<java.lang.String,ValueWithInterpolation> variables, java.util.Map<java.lang.String,java.lang.String> passwordVariables, Changes changes, boolean freezeEvenIfUnresolved)
To be overridden in child classes with custom fields that can contain variables.java.lang.String
getAbortScript()
java.lang.String
getAbortScriptPath()
java.lang.String
getEngine()
java.lang.Integer
getInterval()
java.lang.String
getNextScriptPath()
PythonScript
getPythonScript()
java.lang.String
getScriptPath()
java.lang.String
getStatusLine()
java.util.List<UsagePoint>
getVariableUsages()
boolean
hasAbortScript()
boolean
hasNextScriptToExecute()
boolean
isFailureHandlerEnabled()
boolean
isKeepPreviousOutputPropertiesOnRetry()
boolean
isPreconditionEnabled()
boolean
isPropertyVariableInterpolationOff(PythonScript pythonScript)
boolean
isUnknown()
boolean
isWaitingForSignal()
void
resetSchedule()
Changes
retry(java.lang.String targetId)
void
schedule(java.lang.String scriptPath)
Tells the custom script task that the next script needs to be scheduled after this Jython script is finished.void
schedule(java.lang.String scriptPath, java.lang.Integer interval)
Tells the custom script task that the next script needs to be scheduled after this Jython script is finished with specified delay in seconds.void
setInterval(java.lang.Integer interval)
void
setKeepPreviousOutputPropertiesOnRetry(boolean keepPreviousOutputPropertiesOnRetry)
void
setNextScriptPath(java.lang.String nextScriptPath)
void
setPythonScript(PythonScript pythonScript)
void
setStatusLine(java.lang.String statusLine)
protected boolean
shouldFreezeVariableMapping(CiProperty property)
-
Methods inherited from class com.xebialabs.xlrelease.domain.BaseScriptTask
executeScript
-
Methods inherited from class com.xebialabs.xlrelease.domain.Task
abort, accept, addWatcher, applyDefaults, canBeBackup, canScheduleTaskStart, canStartNow, checkDatesValidity, clearComments, delayDuringBlackoutHasChanged, deleteAttachment, deleteTask, fail, fail, fail, failureHandlerHasChanged, findComment, freezeVariables, fromType, fromType, generateExecutionId, getAllTasks, getAttachments, getChildren, getCiUid, getComments, getConfigurationUri, getContainer, getDelayedCount, getDisplayPath, getElapsedDurationFraction, getExecutionId, getFacets, getFailureHandler, getFailuresCount, getFlaggedCount, getInputVariables, getMaxCommentSize, getOriginalScheduledStartDate, getPhase, getPrecondition, getReferencedVariables, getRelease, getReleaseOwner, getReleaseUid, getStatus, getTags, getTaskRecoverOp, getTaskType, getTeam, getUnboundRequiredVariables, getUrl, getVariableMapping, getWatchers, hasBeenDelayed, hasBeenFlagged, hasBeenStarted, hasFailureHandlerScript, hasTaskRecoverOp, hasTeam, hasVariableMapping, isAborted, isAbortScriptInProgress, isActive, isAssignedTo, isAutomated, isCheckAttributes, isCompletedInAdvance, isDefaultTaskType, isDefunct, isDelayDuringBlackout, isDone, isDoneInAdvance, isDueSoon, isDueSoonNotified, isFacetInProgress, isFailed, isFailing, isFailureHandlerInProgress, isGate, isInProgress, isLocked, isMovable, isNotYetReached, isParallelGroup, isPending, isPlanned, isPostponedDueToBlackout, isPostponedUntilEnvironmentsAreReserved, isPreconditionInProgress, isSkipped, isSkippedInAdvance, isStillExecutingScript, isTaskFailureHandlerEnabled, isTaskGroup, isUpdatable, isWaitForScheduledStartDate, isWaitingForInput, lock, markAsDone, ownerHasBeenReassigned, postponeUntilEnvironmentsAreReserved, preconditionHasChanged, removeWatcher, reopen, replaceTask, resetToPlanned, setAttachments, setCheckAttributes, setCiUid, setConfigurationUri, setContainer, setDelayDuringBlackout, setDueSoonNotified, setExecutionId, setFacets, setFailureHandler, setFailuresCount, setFlagStatus, setHasBeenDelayed, setHasBeenFlagged, setLocked, setMaxCommentSize, setOriginalScheduledStartDate, setPostponedDueToBlackout, setPostponedUntilEnvironmentsAreReserved, setPrecondition, setReleaseUid, setScheduledStartDate, setStatus, setTags, setTaskFailureHandlerEnabled, setTaskRecoverOp, setTeam, setVariableMapping, setWaitForScheduledStartDate, setWatchers, shouldFacetBeChecked, shouldNotifyDueSoon, shouldPreconditionBeChecked, start, startNow, startPending, startWithInput, teamHasBeenReassigned, unlock, updateComment
-
Methods inherited from class com.xebialabs.xlrelease.domain.PlanItem
calculateDueDate, checkDatesValidity, getActualDuration, getComputedPlannedDuration, getDescription, getDueDate, getEndDate, getEndOrDueDate, getFlagComment, getFlagStatus, getOrCalculateDueDate, getOwner, getPlannedDuration, getScheduledStartDate, getStartDate, getStartOrScheduledDate, getTitle, hasDueDate, hasEndDate, hasEndOrDueDate, hasOwner, hasOwner, hasPlannedDuration, hasScheduledStartDate, hasStartDate, hasStartOrScheduledDate, hasTitle, hasTitle, hasValidStartDates, isFlagged, isOverdue, isOverdueNotified, isTitleContaining, moveChildren, setDates, setDescription, setDueDate, setEndDate, setFlagComment, setOverdueNotified, setOwner, setPlannedDuration, setStartAndEndDatesIfEmpty, setStartDate, setTitle, shouldNotifyOverdue, updateDates, updateDuration
-
Methods inherited from class com.xebialabs.deployit.plugin.api.udm.base.BaseConfigurationItem
compareTo, equals, get$ciAttributes, get$directoryReference, get$externalProperties, get$internalId, get$referenceId, get$securedCi, get$securedDirectoryReference, get$token, get$validationMessages, getId, getName, getProperty, getPropertyDescriptor, getType, hashCode, hasProperty, set$ciAttributes, set$directoryReference, set$externalProperties, set$internalId, set$referenceId, set$securedCi, set$securedDirectoryReference, set$token, set$validationMessages, setId, setProperty, setType, toString
-
-
-
-
Field Detail
-
UNKNOWN_TYPE
public static final Type UNKNOWN_TYPE
-
PYTHON_SCRIPT_PREFIX
public static final java.lang.String PYTHON_SCRIPT_PREFIX
- See Also:
- Constant Field Values
-
IGNORE_SCRIPT_VARIABLE_INTERPOLATION
public static final java.lang.String IGNORE_SCRIPT_VARIABLE_INTERPOLATION
- See Also:
- Constant Field Values
-
SCRIPT_PROPERTY_NAME
public static final java.lang.String SCRIPT_PROPERTY_NAME
- See Also:
- Constant Field Values
-
WAIT_FOR_SIGNAL_PROPERTY_NAME
public static final java.lang.String WAIT_FOR_SIGNAL_PROPERTY_NAME
- See Also:
- Constant Field Values
-
-
Method Detail
-
freezeVariablesInCustomFields
public java.util.Set<java.lang.String> freezeVariablesInCustomFields(java.util.Map<java.lang.String,ValueWithInterpolation> variables, java.util.Map<java.lang.String,java.lang.String> passwordVariables, Changes changes, boolean freezeEvenIfUnresolved)
Description copied from class:Task
To be overridden in child classes with custom fields that can contain variables.
ApplyVariableHelper.replaceAll(Object, Map, Set, boolean)
to each field; if child entities are modified, add them tochanges
.- Overrides:
freezeVariablesInCustomFields
in classTask
-
shouldFreezeVariableMapping
protected boolean shouldFreezeVariableMapping(CiProperty property)
- Overrides:
shouldFreezeVariableMapping
in classTask
-
isPreconditionEnabled
public boolean isPreconditionEnabled()
- Overrides:
isPreconditionEnabled
in classTask
-
isFailureHandlerEnabled
public boolean isFailureHandlerEnabled()
- Overrides:
isFailureHandlerEnabled
in classTask
-
execute
protected Changes execute(java.lang.String targetId, TaskStartOrRetryOperation operation)
-
getPythonScript
public PythonScript getPythonScript()
-
setPythonScript
public void setPythonScript(PythonScript pythonScript)
-
getEngine
public java.lang.String getEngine()
- Specified by:
getEngine
in classBaseScriptTask
-
getStatusLine
public java.lang.String getStatusLine()
-
setStatusLine
public void setStatusLine(java.lang.String statusLine)
-
getVariableUsages
public java.util.List<UsagePoint> getVariableUsages()
- Overrides:
getVariableUsages
in classTask
-
setNextScriptPath
public void setNextScriptPath(java.lang.String nextScriptPath)
-
getNextScriptPath
public java.lang.String getNextScriptPath()
-
getInterval
public java.lang.Integer getInterval()
-
setInterval
public void setInterval(java.lang.Integer interval)
-
hasNextScriptToExecute
public boolean hasNextScriptToExecute()
-
schedule
public void schedule(java.lang.String scriptPath)
Tells the custom script task that the next script needs to be scheduled after this Jython script is finished. The passed script path must be a valid Jython script on the classpath.
-
schedule
public void schedule(java.lang.String scriptPath, java.lang.Integer interval)
Tells the custom script task that the next script needs to be scheduled after this Jython script is finished with specified delay in seconds. The passed script path must be a valid Jython script on the classpath. The passed interval must be any value between 1 and 231-1.
-
resetSchedule
public void resetSchedule()
-
fail
public Changes fail(java.lang.String targetId, java.lang.String failReason, User user, boolean fromAbort)
-
isWaitingForSignal
public boolean isWaitingForSignal()
-
getScriptPath
public java.lang.String getScriptPath()
-
hasAbortScript
public boolean hasAbortScript()
- Overrides:
hasAbortScript
in classTask
-
getAbortScriptPath
public java.lang.String getAbortScriptPath()
-
getAbortScript
public java.lang.String getAbortScript() throws java.io.IOException
- Overrides:
getAbortScript
in classTask
- Throws:
java.io.IOException
-
isPropertyVariableInterpolationOff
public boolean isPropertyVariableInterpolationOff(PythonScript pythonScript)
-
isUnknown
public boolean isUnknown()
-
isKeepPreviousOutputPropertiesOnRetry
public boolean isKeepPreviousOutputPropertiesOnRetry()
-
setKeepPreviousOutputPropertiesOnRetry
public void setKeepPreviousOutputPropertiesOnRetry(boolean keepPreviousOutputPropertiesOnRetry)
-
-