Machine: Спецификация интерфейса RPC драйвера

Созданный на 1 янв. 2016  ·  7Комментарии  ·  Источник: docker/machine

Есть ли документ / pr / issue, в котором описывается интерфейс RPC для подключаемых модулей драйверов? Я обнаружил несколько связанных проблем # 1626 и # 1902, но я изо всех сил пытаюсь найти что-то более "конкретное; в документах нет ничего, что я мог бы увидеть?"

driveall

Самый полезный комментарий

@prologic Он построен с использованием https://golang.org/pkg/net/rpc/, а транспортный кодек - gob , который является собственным форматом кодирования blob Go. _Может_ быть возможным общаться с помощью gob на других языках (см., Например, https://groups.google.com/forum/#!topic/golang-nuts/xtXh0yWOens), но это может быть больше проблем, чем его ценность.

Чтобы быть по-настоящему независимым от языка, нам нужно было бы использовать что-то вроде JSON-RPC или protobufs, которые специально разработаны для этого. Это определенно то, что я принимаю во внимание в будущем, но для этого потребуется повышение версии API плагина (он не будет ни обратно, ни вперед совместим).

Все 7 Комментарий

Привет @prologic. Пока нет формальной спецификации (к сожалению :(), но, по сути, идея состоит в том, что вам нужно реализовать интерфейс Driver а затем вызвать plugin.RegisterDriver() для Driver в двоичном файле вашего плагина main Метод

@nathanleclaire Спасибо за ответ! Я смотрел на различные сторонние (_не упакованные с docker-machine _), однако из-за различных проблем и запросов на вытягивание у меня сложилось впечатление, что способ работы подключаемых модулей драйвера докер-машины не зависит от языка? (_или, по крайней мере, должно быть? _)

Разве это не так?

@prologic Нет, он довольно тесно связан с Golang net/rpc .

Но это RPC и разговоров через сокет нет? :) Что мне не хватает: P

@prologic Он построен с использованием https://golang.org/pkg/net/rpc/, а транспортный кодек - gob , который является собственным форматом кодирования blob Go. _Может_ быть возможным общаться с помощью gob на других языках (см., Например, https://groups.google.com/forum/#!topic/golang-nuts/xtXh0yWOens), но это может быть больше проблем, чем его ценность.

Чтобы быть по-настоящему независимым от языка, нам нужно было бы использовать что-то вроде JSON-RPC или protobufs, которые специально разработаны для этого. Это определенно то, что я принимаю во внимание в будущем, но для этого потребуется повышение версии API плагина (он не будет ни обратно, ни вперед совместим).

FWIW; Я _ хочу_ написать драйвер для Proxmox VE и повторно использовать существующие библиотеки, которые уже умеют общаться с Proxmox VE API9); например: proxmoxer или pyproxmox

Удар!

Была ли эта страница полезной?
0 / 5 - 0 рейтинги