Автоматизация Telnet с Groovy
Вопрос
Я делаю сборку Gradle / Osgi.
У меня отлично здание пучка OSGI, но хочется автоматизировать развертывание пучка. Я не думаю, что есть поставленная посадка для этого, так что это становится странным вопросом. Развернуть в контейнер OSGI, вы выполняете следующее:
- Telnet к контейнеру OSGI
- Отправить SS Command для перечисления связки
- Разбейте расслоение
- Удалите пакет через команду «Удалить [ID]»
- Установите комплект через «Установить файл: /// Путь для пучка» URL
- разбирать результаты
- Выйдите из сеанса Telnet.
Есть ли способ Telnet в порт, используя команды Groovy и отправлять команды и прочитать вывод?
Спасибо за любую помощь, Фил
Решение
Я не знаю о Telnet, но я работал с Groovy и SSH, используя AntBuilder и SSHexec Task, как это:
class SshClient {
def host
def username
def password
def execute (def command) {
def ant = new AntBuilder()
ant.sshexec(host : host,
username : username,
password : password,
command : command,
trust : "true",
outputproperty : "result")
return ant.project.properties."result"
}
}
def ssh = new SshClient ( host: "myhost",
username : "myuser",
password : "secret")
println ssh.execute("ls")
Вам понадобится ant-jsch.jar и jsch-0.1.33.jar или выше в вашем классе.
Другие советы
Это должно быть просто выполнено с обычной розеткой и потоковыми читателями / писателем. Telnet - это просто интерфейс для простых сокетов ввода / вывода, которые являются текстовыми протоколами.
Итак, чтобы сделать ваши шаги:
- Создайте обычную розетку к пункту назначения хост / порт
- Написать "Ss"
- Создать входную систему
- Потреблять все доступное
- Разбираться, чтобы найти свой пункт ID
- Отправить "Удалить" + bundleid
- Потребляйте поток до прибытия командной строки / удаление завершено
- Отправить "Файл установки: // Путь /"
- Потребляйте поток до прибытия командной строки / установки завершенной
- Socket.Close ()
Да, я знаю, что это напоминает шаги, которые вы уже писали, но так как Telnet не является настоящим протоколом, но просто находятся на текстовые розетки, это должно быть легко выполнено для себя.