Package com.dtolabs.rundeck.core.plugins
Class BaseScriptPlugin
- java.lang.Object
-
- com.dtolabs.rundeck.core.plugins.AbstractDescribableScriptPlugin
-
- com.dtolabs.rundeck.core.plugins.BaseScriptPlugin
-
- All Implemented Interfaces:
ProxySecretBundleCreator
,Describable
- Direct Known Subclasses:
ScriptOptionValues
,ScriptPluginFileCopier
,ScriptPluginNodeExecutor
,ScriptTourLoader
,ScriptUserGroupSource
public abstract class BaseScriptPlugin extends AbstractDescribableScriptPlugin implements ProxySecretBundleCreator
BaseScriptPlugin provides common methods for running scripts, used by the script plugin implementations.
-
-
Field Summary
-
Fields inherited from class com.dtolabs.rundeck.core.plugins.AbstractDescribableScriptPlugin
CONFIG_BLANK_IF_UNEXPANDED, CONFIG_DEFAULT, CONFIG_DESCRIPTION, CONFIG_LABELS, CONFIG_NAME, CONFIG_PROP_PREFIX, CONFIG_RENDERING_OPTIONS, CONFIG_REQUIRED, CONFIG_SCOPE, CONFIG_TITLE, CONFIG_TYPE, CONFIG_VALUES, DESCRIPTION_PROP, SETTING_MERGE_ENVIRONMENT, TITLE_PROP
-
-
Constructor Summary
Constructors Modifier Constructor Description protected
BaseScriptPlugin(ScriptPluginProvider provider)
protected
BaseScriptPlugin(ScriptPluginProvider provider, Framework framework)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected java.lang.String[]
createScriptArgs(java.util.Map<java.lang.String,java.util.Map<java.lang.String,java.lang.String>> localDataContext)
Create the command array for the data context.protected ExecArgList
createScriptArgsList(java.util.Map<java.lang.String,java.util.Map<java.lang.String,java.lang.String>> dataContext)
Create the command array for the data context.protected DataContext
createScriptDataContext(Framework framework, java.lang.String project, java.util.Map<java.lang.String,java.util.Map<java.lang.String,java.lang.String>> context)
create script data contextprotected DataContext
createScriptDataContext(java.util.Map<java.lang.String,java.util.Map<java.lang.String,java.lang.String>> context)
protected java.util.Map<java.lang.String,java.util.Map<java.lang.String,java.lang.String>>
createStepItemDataContext(Framework framework, java.lang.String project, java.util.Map<java.lang.String,java.util.Map<java.lang.String,java.lang.String>> context, java.util.Map<java.lang.String,java.lang.Object> configuration)
Create a data context containing the plugin values "file","scriptfile" and "base", as well as all config values.ScriptExecHelper
getScriptExecHelper()
java.util.List<java.lang.String>
listSecretsPath(ExecutionContext context, INodeEntry node)
java.util.List<java.lang.String>
listSecretsPathWorkflowNodeStep(ExecutionContext context, INodeEntry node, java.util.Map<java.lang.String,java.lang.Object> configuration)
java.util.List<java.lang.String>
listSecretsPathWorkflowStep(ExecutionContext context, java.util.Map<java.lang.String,java.lang.Object> configuration)
SecretBundle
prepareSecretBundle(ExecutionContext context, INodeEntry node)
SecretBundle
prepareSecretBundleWorkflowNodeStep(ExecutionContext context, INodeEntry node, java.util.Map<java.lang.String,java.lang.Object> configuration)
SecretBundle
prepareSecretBundleWorkflowStep(ExecutionContext context, java.util.Map<java.lang.String,java.lang.Object> configuration)
protected int
runPluginScript(PluginStepContext executionContext, java.io.PrintStream outputStream, java.io.PrintStream errorStream, Framework framework, java.util.Map<java.lang.String,java.lang.Object> configuration)
Runs the script configured for the script plugin and channels the output to two streams.void
setScriptExecHelper(ScriptExecHelper scriptExecHelper)
-
Methods inherited from class com.dtolabs.rundeck.core.plugins.AbstractDescribableScriptPlugin
createDescription, createDescription, createPluginData, getDescription, getFramework, getProvider, isAllowCustomProperties, isUseConventionalPropertiesMapping, loadConfigData, loadContentConversionPropertyValues, loadInstanceDataFromNodeAttributes
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface com.dtolabs.rundeck.core.execution.proxy.ProxySecretBundleCreator
listSecretsPathResourceModel, prepareSecretBundleResourceModel
-
-
-
-
Constructor Detail
-
BaseScriptPlugin
protected BaseScriptPlugin(ScriptPluginProvider provider, Framework framework)
-
BaseScriptPlugin
protected BaseScriptPlugin(ScriptPluginProvider provider)
-
-
Method Detail
-
runPluginScript
protected int runPluginScript(PluginStepContext executionContext, java.io.PrintStream outputStream, java.io.PrintStream errorStream, Framework framework, java.util.Map<java.lang.String,java.lang.Object> configuration) throws java.io.IOException, java.lang.InterruptedException, ConfigurationException
Runs the script configured for the script plugin and channels the output to two streams.- Parameters:
executionContext
- contextoutputStream
- output streamerrorStream
- error streamframework
- fwlkconfiguration
- configuration- Returns:
- exit code
- Throws:
java.io.IOException
- if any IO exception occursjava.lang.InterruptedException
- if interrupted while waiting for the command to finishConfigurationException
-
createStepItemDataContext
protected java.util.Map<java.lang.String,java.util.Map<java.lang.String,java.lang.String>> createStepItemDataContext(Framework framework, java.lang.String project, java.util.Map<java.lang.String,java.util.Map<java.lang.String,java.lang.String>> context, java.util.Map<java.lang.String,java.lang.Object> configuration)
Create a data context containing the plugin values "file","scriptfile" and "base", as well as all config values.- Parameters:
framework
- fwkproject
- project namecontext
- data contextconfiguration
- configuration- Returns:
- data context
-
createScriptDataContext
protected DataContext createScriptDataContext(Framework framework, java.lang.String project, java.util.Map<java.lang.String,java.util.Map<java.lang.String,java.lang.String>> context)
create script data context- Parameters:
framework
- fwkproject
- project namecontext
- orig context- Returns:
- new data context
-
createScriptDataContext
protected DataContext createScriptDataContext(java.util.Map<java.lang.String,java.util.Map<java.lang.String,java.lang.String>> context)
-
createScriptArgs
protected java.lang.String[] createScriptArgs(java.util.Map<java.lang.String,java.util.Map<java.lang.String,java.lang.String>> localDataContext)
Create the command array for the data context.- Parameters:
localDataContext
- data- Returns:
- command array
-
createScriptArgsList
protected ExecArgList createScriptArgsList(java.util.Map<java.lang.String,java.util.Map<java.lang.String,java.lang.String>> dataContext)
Create the command array for the data context.- Parameters:
dataContext
- data- Returns:
- arglist
-
getScriptExecHelper
public ScriptExecHelper getScriptExecHelper()
-
setScriptExecHelper
public void setScriptExecHelper(ScriptExecHelper scriptExecHelper)
-
prepareSecretBundle
public SecretBundle prepareSecretBundle(ExecutionContext context, INodeEntry node)
- Specified by:
prepareSecretBundle
in interfaceProxySecretBundleCreator
-
prepareSecretBundleWorkflowStep
public SecretBundle prepareSecretBundleWorkflowStep(ExecutionContext context, java.util.Map<java.lang.String,java.lang.Object> configuration)
- Specified by:
prepareSecretBundleWorkflowStep
in interfaceProxySecretBundleCreator
-
prepareSecretBundleWorkflowNodeStep
public SecretBundle prepareSecretBundleWorkflowNodeStep(ExecutionContext context, INodeEntry node, java.util.Map<java.lang.String,java.lang.Object> configuration)
- Specified by:
prepareSecretBundleWorkflowNodeStep
in interfaceProxySecretBundleCreator
-
listSecretsPath
public java.util.List<java.lang.String> listSecretsPath(ExecutionContext context, INodeEntry node)
- Specified by:
listSecretsPath
in interfaceProxySecretBundleCreator
-
listSecretsPathWorkflowNodeStep
public java.util.List<java.lang.String> listSecretsPathWorkflowNodeStep(ExecutionContext context, INodeEntry node, java.util.Map<java.lang.String,java.lang.Object> configuration)
- Specified by:
listSecretsPathWorkflowNodeStep
in interfaceProxySecretBundleCreator
-
listSecretsPathWorkflowStep
public java.util.List<java.lang.String> listSecretsPathWorkflowStep(ExecutionContext context, java.util.Map<java.lang.String,java.lang.Object> configuration)
- Specified by:
listSecretsPathWorkflowStep
in interfaceProxySecretBundleCreator
-
-