Machine: 驱动程序 RPC 接口规范

创建于 2016-01-01  ·  7评论  ·  资料来源: docker/machine

是否有文档/pr/issue 描述了驱动程序插件的 RPC 接口? 我发现了一些相关的问题 #1626 和 #1902,但我正在努力寻找更“具体的东西;文档中没有任何我能看到的东西?

driveall

最有用的评论

@prologic它是使用https://golang.org/pkg/net/rpc/构建的,传输编解码器是gob ,这是本机 Go blob 编码格式。 _可能_使用其他语言的gob进行交流(例如,参见 https://groups.google.com/forum/#!topic/golang-nuts/xtXh0yWOens),但这可能比这是值得的。

为了真正与语言无关,我们必须使用专门为此设计的 JSON-RPC 或 protobufs 之类的东西。 这绝对是我未来考虑的事情,但需要插件 API 的版本提升(它不会向后或向前兼容)。

所有7条评论

嘿@prologic。 到目前为止还没有正式的规范(不幸的是 :( )但本质上的想法是你需要实现Driver接口,然后在你的插件二进制文件的main为你的Driver调用plugin.RegisterDriver() main方法。你看过一些链接的第 3 方插件吗?

@nathanleclaire感谢您的回复! 我看过各种 3rd-party(_not 与docker-machine一起打包),但是我从各种问题和拉取请求中得出的印象是,docker-machine 驱动程序插件的工作方式与语言无关? (_或至少应该是?_)

不是这样吗?

@prologic不,它与 Golang net/rpc紧密耦合。

但它是一个 RPC 并通过套接字进行对话,不是吗? :) 我错过了什么:P

@prologic它是使用https://golang.org/pkg/net/rpc/构建的,传输编解码器是gob ,这是本机 Go blob 编码格式。 _可能_使用其他语言的gob进行交流(例如,参见 https://groups.google.com/forum/#!topic/golang-nuts/xtXh0yWOens),但这可能比这是值得的。

为了真正与语言无关,我们必须使用专门为此设计的 JSON-RPC 或 protobufs 之类的东西。 这绝对是我未来考虑的事情,但需要插件 API 的版本提升(它不会向后或向前兼容)。

FWIW; 我_想_为 Proxmox VE 编写驱动程序并重新使用已经知道如何与 Proxmox VE API9s 通信的现有库); 例如: proxmoxerpyproxmox

撞!

此页面是否有帮助?
0 / 5 - 0 等级