n8n-nodes-base
Version:
Base nodes of n8n
193 lines • 7.12 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.Rundeck = void 0;
const n8n_workflow_1 = require("n8n-workflow");
const RundeckApi_1 = require("./RundeckApi");
class Rundeck {
description = {
displayName: 'Rundeck',
name: 'rundeck',
// eslint-disable-next-line n8n-nodes-base/node-class-description-icon-not-svg
icon: 'file:rundeck.png',
group: ['transform'],
version: 1,
subtitle: '={{$parameter["operation"] + ": " + $parameter["resource"]}}',
description: 'Manage Rundeck API',
defaults: {
name: 'Rundeck',
},
usableAsTool: true,
inputs: [n8n_workflow_1.NodeConnectionTypes.Main],
outputs: [n8n_workflow_1.NodeConnectionTypes.Main],
credentials: [
{
name: 'rundeckApi',
required: true,
},
],
properties: [
{
displayName: 'Resource',
name: 'resource',
type: 'options',
noDataExpression: true,
options: [
{
name: 'Job',
value: 'job',
},
],
default: 'job',
},
{
displayName: 'Operation',
name: 'operation',
type: 'options',
noDataExpression: true,
options: [
{
name: 'Execute',
value: 'execute',
description: 'Execute a job',
action: 'Execute a job',
},
{
name: 'Get Metadata',
value: 'getMetadata',
description: 'Get metadata of a job',
action: 'Get metadata of a job',
},
],
default: 'execute',
},
// ----------------------------------
// job:execute
// ----------------------------------
{
displayName: 'Job ID',
name: 'jobid',
type: 'string',
displayOptions: {
show: {
operation: ['execute'],
resource: ['job'],
},
},
default: '',
placeholder: 'Rundeck Job ID',
required: true,
description: 'The job ID to execute',
},
{
displayName: 'Arguments',
name: 'arguments',
placeholder: 'Add Argument',
type: 'fixedCollection',
typeOptions: {
multipleValues: true,
},
displayOptions: {
show: {
operation: ['execute'],
resource: ['job'],
},
},
default: {},
options: [
{
name: 'arguments',
displayName: 'Arguments',
values: [
{
displayName: 'Name',
name: 'name',
type: 'string',
default: '',
},
{
displayName: 'Value',
name: 'value',
type: 'string',
default: '',
},
],
},
],
},
{
displayName: 'Filter',
name: 'filter',
type: 'string',
displayOptions: {
show: {
operation: ['execute'],
resource: ['job'],
},
},
default: '',
placeholder: 'Add Filters',
description: 'Filter Rundeck nodes by name',
},
// ----------------------------------
// job:getMetadata
// ----------------------------------
{
displayName: 'Job ID',
name: 'jobid',
type: 'string',
displayOptions: {
show: {
operation: ['getMetadata'],
resource: ['job'],
},
},
default: '',
placeholder: 'Rundeck Job ID',
required: true,
description: 'The job ID to get metadata off',
},
],
};
async execute() {
// Input data
const items = this.getInputData();
const returnData = [];
const length = items.length;
const operation = this.getNodeParameter('operation', 0);
const resource = this.getNodeParameter('resource', 0);
const rundeckApi = new RundeckApi_1.RundeckApi(this);
await rundeckApi.init();
for (let i = 0; i < length; i++) {
if (resource === 'job') {
if (operation === 'execute') {
// ----------------------------------
// job: execute
// ----------------------------------
const jobid = this.getNodeParameter('jobid', i);
const rundeckArguments = this.getNodeParameter('arguments', i)
.arguments;
const filter = this.getNodeParameter('filter', i);
const response = await rundeckApi.executeJob(jobid, rundeckArguments, filter);
returnData.push(response);
}
else if (operation === 'getMetadata') {
// ----------------------------------
// job: getMetadata
// ----------------------------------
const jobid = this.getNodeParameter('jobid', i);
const response = await rundeckApi.getJobMetadata(jobid);
returnData.push(response);
}
else {
throw new n8n_workflow_1.NodeOperationError(this.getNode(), `The operation "${operation}" is not supported!`, { itemIndex: i });
}
}
else {
throw new n8n_workflow_1.NodeOperationError(this.getNode(), `The resource "${resource}" is not supported!`, { itemIndex: i });
}
}
return [this.helpers.returnJsonArray(returnData)];
}
}
exports.Rundeck = Rundeck;
//# sourceMappingURL=Rundeck.node.js.map