Вопрос

Я делаю сборку Gradle / Osgi.

У меня отлично здание пучка OSGI, но хочется автоматизировать развертывание пучка. Я не думаю, что есть поставленная посадка для этого, так что это становится странным вопросом. Развернуть в контейнер OSGI, вы выполняете следующее:

  1. Telnet к контейнеру OSGI
  2. Отправить SS Command для перечисления связки
  3. Разбейте расслоение
  4. Удалите пакет через команду «Удалить [ID]»
  5. Установите комплект через «Установить файл: /// Путь для пучка» URL
  6. разбирать результаты
  7. Выйдите из сеанса 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 не является настоящим протоколом, но просто находятся на текстовые розетки, это должно быть легко выполнено для себя.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top