Bash / Shell - Вложенные переменные для свойства Dynamic UDeploy - PullRequest
0 голосов
/ 25 января 2019

Мне нужна небольшая помощь с процессом, который мы пытаемся построить, который должен быть способен динамически реагировать.

Процесс идет примерно так.Пользователь отправит запрос процесса в среду, отправив массив строковых значений в качестве значения времени выполнения.Процесс примет их в качестве массива в bash и перебирает их, проверяя их на соответствие заранее заданному списку строк на достоверность.После обнаружения они действительны, реагируя по-разному, исходя из того, какие значения находятся в строке.

Пример: пользователь отправляет запрос процесса со значениями "abc", "bcd", "cde", "def" Значения "abc", "bcd", and "def" действительны.

Мы делаем небольшую манипуляцию, чтобы сделать их пригодными для использования:

echo ${p:inputArray}
inputArray="${p:inputArray}"
inputArray=${inputArray//]/}
inputArray=${inputArray//[/}
inputArray=${inputArray//,/}
inputArray=( "${inputArray[@],,}" )

Затем перебираем каждое значение и реагируем:

for inputValue in $inputArray; do
    if [[ "${validInputArray[@]}" =~ "${inputValue}" ]]; then
         // Check if value is the outlier case "A"
         // Or if the value is normal (but multiple) case "B"
         // If case "B" then we'll build a variable for it
         // It should be something like ${p:environment/$inputValue.action}

В идеале это дало бы мнеНапример, значение $ {p: environment / abc.action}.Но это не так.Это дает мне строку.У меня нет возможности оценить динамически созданный запрос свойства, так как все свойства оцениваются при инициализации, а не на лету.

Мы можем справиться с этим методом "case" - но это немного уродливо и будет только уродливее, когда число наших допустимых входных данных будет расти.

1 Ответ

0 голосов
/ 01 февраля 2019

Вместо того, чтобы отправлять ему массив значений, вы можете настроить UCD для запроса их конкретных значений. Вы можете сделать это в процессе подачи заявки. Таким образом, когда пользователь запускает развертывание, нет сомнений в правильности ввода.

На странице процесса приложения щелкните ссылку Свойства процесса приложения

enter image description here

Оттуда вы можете настроить его так, чтобы он требовал определенного шаблона (проверяется с помощью регулярных выражений) или явных значений из выпадающего списка, необработанного текста, даты и времени и т. Д. Здесь я настроил свойство с множественным выбором для разрешить определенные максимальные значения кучи JVM. Ограничивая это конкретными значениями, вы можете избежать опечаток и неудачных развертываний.

После настройки при запуске процесса вам предоставляется свойство в интерфейсе:

enter image description here

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