Как использовать optiontype как ФАЙЛ в опциях Rundeck - PullRequest
0 голосов
/ 10 июля 2020

Мой Python Код отлично работает для запроса API, где тип параметра - Текст, разделенный запятыми (,) для некоторого набора входных значений.

Я хочу использовать тот же подход, где тип параметра - ФАЙЛ , где каждое входное значение содержит новые строки.

При использовании я вижу параметры ниже, дайте мне знать, какой из приведенных ниже параметров будет использоваться в моем коде, когда я пытаюсь загрузить файл во время выполнения?

Commandline Arguments: ${file.Serial_Number}
Script Content: @file.Serial_Number@
The original file name:
Bash: $RD_FILE_SERIAL_NUMBER_FILENAME
Commandline Arguments: ${file.Serial_Number.fileName}
Script Content: @file.Serial_Number.fileName@
The file content SHA-256 value:
Bash: $RD_FILE_SERIAL_NUMBER_SHA
Commandline Arguments: ${file.Serial_Number.sha}
Script Content: @file.Serial_Number.sha@```

1 Ответ

0 голосов
/ 10 июля 2020

Я оставляю пример определения задания, вы можете проверить, как получить содержимое, имя файла и путь:

Python сценарий:

import os

# content
os.system('cat @file.myfile@')

print("\n")

print("file name:")
print ("@file.myfile.fileName@\n")

print("file path:")
print("@file.myfile@")

Определение задания:

<joblist>
  <job>
    <context>
      <options preserveOrder='true'>
        <option name='myfile' type='file' />
      </options>
    </context>
    <defaultTab>nodes</defaultTab>
    <description></description>
    <executionEnabled>true</executionEnabled>
    <id>b1d6e1e1-15e9-40c6-b6a9-317f31910fd0</id>
    <loglevel>INFO</loglevel>
    <name>PythonTEST</name>
    <nodeFilterEditable>false</nodeFilterEditable>
    <plugins />
    <scheduleEnabled>true</scheduleEnabled>
    <sequence keepgoing='false' strategy='node-first'>
      <command>
        <fileExtension>.py</fileExtension>
        <script><![CDATA[import os

# content
os.system('cat @file.myfile@')

print("\n")

print("file name:")
print ("@file.myfile.fileName@\n")

print("file path:")
print("@file.myfile@")
]]></script>
        <scriptargs />
        <scriptinterpreter>/usr/bin/python3</scriptinterpreter>
      </command>
    </sequence>
    <uuid>b1d6e1e1-15e9-40c6-b6a9-317f31910fd0</uuid>
  </job>
</joblist>

Пример файла «lipsum»:

Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.

И здесь результат.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...