Machine: ドライバーRPCインターフェース仕様

作成日 2016年01月01日  ·  7コメント  ·  ソース: docker/machine

ドライバープラグインのRPCインターフェイスを説明するドキュメント/ pr / issueはありますか? 関連する問題#1626と#1902をいくつか見つけましたが、もっと「具体的なもの」を見つけるのに苦労しています。ドキュメントに表示できるものはありませんか?

driveall

最も参考になるコメント

@prologic https://golang.org/pkg/net/rpc/を使用して構築されており、トランスポートコーデックはgob 、これはネイティブのGoblobエンコーディング形式です。 他の言語でgobを使用して通信することは可能かもしれませんが(たとえばhttps://groups.google.com/forum/#!topic/golang-nuts/xtXh0yWOensを参照)、それよりも問題が多い可能性がありますそれは価値があります。

真に言語に依存しないためには、JSON-RPCやそのために特別に設計されたprotobufsのようなものを使用する必要があります。 これは間違いなく私が将来考慮していることですが、プラグインAPIのバージョンバンプが必要になります(下位互換性または上位互換性はありません)。

全てのコメント7件

ねえ@prologic。 これまでのところ正式な仕様はありません(残念ながら:()が、基本的には、 Driverインターフェイスを実装してから、プラグインバイナリのmain Driverに対してplugin.RegisterDriver()を呼び出す必要があります。 mainメソッド。リンクされたサードパーティのプラグインをいくつか見てきましたか?

@nathanleclaire返信ありがとうございます! さまざまなサードパーティ(_ docker-machine _でパッケージ化されていない)を見てきましたが、さまざまな問題やプルリクエストから、Docker-マシンドライバープラグインの動作は言語に依存しないという印象を受けましたか? (_または少なくともそうするつもりですか?_)

そうではありませんか?

@prologicいいえ、Golang net/rpcかなり緊密に結合されています。

しかし、それはRPCであり、ソケットを介して話します。 :)私が欠けているもの:P

@prologic https://golang.org/pkg/net/rpc/を使用して構築されており、トランスポートコーデックはgob 、これはネイティブのGoblobエンコーディング形式です。 他の言語でgobを使用して通信することは可能かもしれませんが(たとえばhttps://groups.google.com/forum/#!topic/golang-nuts/xtXh0yWOensを参照)、それよりも問題が多い可能性がありますそれは価値があります。

真に言語に依存しないためには、JSON-RPCやそのために特別に設計されたprotobufsのようなものを使用する必要があります。 これは間違いなく私が将来考慮していることですが、プラグインAPIのバージョンバンプが必要になります(下位互換性または上位互換性はありません)。

FWIW; Proxmox VEのドライバーを作成し、Proxmox VEAPI9との通信方法をすでに知っている既存のライブラリを再利用したいと思います。 例: proxmoxerまたはpyproxmox

バンプ!

このページは役に立ちましたか?
0 / 5 - 0 評価