https://docs.rundeck.com/docs/developer/12-option-values-plugins.html#configuring говорит
Чтобы настроить плагин, вы можете добавить значения конфигурации в рамки или проект.
Определение свойства области действия фреймворка в framework.properties
framework.plugin.OptionValues. [your_plugin_name]. [property] = value
Определение свойства области проекта в project.properties
project.plugin.OptionValues. [your_plugin_name]. [property] = value
Я добавил свойство проекта, которое я ожидал найти где-нибудь в config. Например, если были доступны ключи из project.properties, этот код должен создать их как опции:
@Override
public List<OptionValue> getOptionValues(Map config) {
List<OptionValue> optionValues = new ArrayList<OptionValue>();
Iterator keys = config.keySet().iterator();
while (keys.hasNext()) {
String key = keys.next().toString();
optionValues.add(new StringOptionValue(key, key));
}
optionValues.add(new StringOptionValue("stub", "stub'));
return optionValues;
}
Свойства моего проекта выглядят так
project.disable.executions=false
project.disable.schedule=false
project.execution.history.cleanup.batch=500
project.execution.history.cleanup.enabled=false
project.execution.history.cleanup.retention.days=60
project.execution.history.cleanup.retention.minimum=50
project.execution.history.cleanup.schedule=0 0 0 1/1 * ? *
project.jobs.gui.groupExpandLevel=1
project.name=Nodeless
project.output.allowUnsanitized=false
project.plugin.OptionValues.MyOptionProvider.endpoint=https\://example.com/rest
project.ssh-authentication=privateKey
project.ssh-command-timeout=0
project.ssh-connect-timeout=0
project.ssh-keypath=/home/me/.ssh/id_rsa
resources.source.1.type=local
service.FileCopier.default.provider=jsch-scp
service.NodeExecutor.default.provider=jsch-ssh
Как мне получить доступ к конфигурации плагина?
Простой ответ - использовать аннотации плагинов:
@PluginProperty(title = "Web service endpoint", description = "Server URL and path", required = true, scope=PropertyScope.Project)
private String endpoint;