Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
易企天创
zentaoatf
提交
2125d96e
Z
zentaoatf
项目概览
易企天创
/
zentaoatf
10 个月 前同步成功
通知
11
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
3
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
Z
zentaoatf
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
3
Issue
3
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
2125d96e
编写于
5月 26, 2023
作者:
aaronchen2k2k
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
plugin communication sample
上级
2d857816
变更
5
隐藏空白更改
内联
并排
Showing
5 changed file
with
16 addition
and
13 deletion
+16
-13
internal/pkg/plugin/zap/main.go
internal/pkg/plugin/zap/main.go
+2
-1
internal/pkg/plugin/zap/plugin/grpc.go
internal/pkg/plugin/zap/plugin/grpc.go
+6
-4
internal/pkg/plugin/zap/plugin/zap.go
internal/pkg/plugin/zap/plugin/zap.go
+2
-2
internal/pkg/plugin/zap/shared/const.go
internal/pkg/plugin/zap/shared/const.go
+5
-5
internal/server/modules/v1/service/plugin.go
internal/server/modules/v1/service/plugin.go
+1
-1
未找到文件。
internal/pkg/plugin/zap/main.go
浏览文件 @
2125d96e
package
main
import
(
zapPlugin
"github.com/easysoft/zentaoatf/internal/pkg/plugin/zap/plugin"
zapService
"github.com/easysoft/zentaoatf/internal/pkg/plugin/zap/service"
"github.com/easysoft/zentaoatf/internal/pkg/plugin/zap/shared"
"github.com/hashicorp/go-plugin"
)
func
main
()
{
zapPlugin
:=
zap
Shared
.
ZapPlugin
{
zapPlugin
:=
zap
Plugin
.
ZapPlugin
{
Impl
:
&
zapService
.
ZapService
{},
}
...
...
internal/pkg/plugin/zap/
shared
/grpc.go
→
internal/pkg/plugin/zap/
plugin
/grpc.go
浏览文件 @
2125d96e
package
zap
Shared
package
zap
Plugin
import
(
"context"
...
...
@@ -7,10 +7,12 @@ import (
)
// GRPCClient is an implementation of ZapInterface that talks over RPC.
type
GRPCClient
struct
{
client
zapProto
.
ZapClient
}
type
GRPCClient
struct
{
Client
zapProto
.
ZapClient
}
func
(
m
*
GRPCClient
)
Put
(
key
string
,
value
[]
byte
)
error
{
_
,
err
:=
m
.
c
lient
.
Put
(
context
.
Background
(),
&
zapProto
.
PutRequest
{
_
,
err
:=
m
.
C
lient
.
Put
(
context
.
Background
(),
&
zapProto
.
PutRequest
{
Key
:
key
,
Value
:
value
,
})
...
...
@@ -18,7 +20,7 @@ func (m *GRPCClient) Put(key string, value []byte) error {
}
func
(
m
*
GRPCClient
)
Get
(
key
string
)
([]
byte
,
error
)
{
resp
,
err
:=
m
.
c
lient
.
Get
(
context
.
Background
(),
&
zapProto
.
GetRequest
{
resp
,
err
:=
m
.
C
lient
.
Get
(
context
.
Background
(),
&
zapProto
.
GetRequest
{
Key
:
key
,
})
if
err
!=
nil
{
...
...
internal/pkg/plugin/zap/
shared/plugin
.go
→
internal/pkg/plugin/zap/
plugin/zap
.go
浏览文件 @
2125d96e
package
zap
Shared
package
zap
Plugin
import
(
"context"
...
...
@@ -25,5 +25,5 @@ func (p *ZapPlugin) GRPCServer(broker *plugin.GRPCBroker, s *grpc.Server) error
}
func
(
p
*
ZapPlugin
)
GRPCClient
(
ctx
context
.
Context
,
broker
*
plugin
.
GRPCBroker
,
c
*
grpc
.
ClientConn
)
(
interface
{},
error
)
{
return
&
GRPCClient
{
c
lient
:
zapProto
.
NewZapClient
(
c
)},
nil
return
&
GRPCClient
{
C
lient
:
zapProto
.
NewZapClient
(
c
)},
nil
}
internal/pkg/plugin/zap/shared/const.go
浏览文件 @
2125d96e
package
zapShared
import
(
zapPlugin
"github.com/easysoft/zentaoatf/internal/pkg/plugin/zap/plugin"
"github.com/hashicorp/go-plugin"
)
...
...
@@ -8,6 +9,10 @@ const (
PluginNameZap
=
"ZAP"
)
var
PluginMap
=
map
[
string
]
plugin
.
Plugin
{
PluginNameZap
:
&
zapPlugin
.
ZapPlugin
{},
}
// Handshake is a common handshake that is shared by plugin and host.
var
Handshake
=
plugin
.
HandshakeConfig
{
// This isn't required when using VersionedPlugins
...
...
@@ -15,8 +20,3 @@ var Handshake = plugin.HandshakeConfig{
MagicCookieKey
:
"DEEPTEST_PLUGIN"
,
MagicCookieValue
:
"hello"
,
}
// PluginMap is the map of plugins we can dispense.
var
PluginMap
=
map
[
string
]
plugin
.
Plugin
{
PluginNameZap
:
&
ZapPlugin
{},
}
internal/server/modules/v1/service/plugin.go
浏览文件 @
2125d96e
...
...
@@ -19,9 +19,9 @@ type PluginService struct {
func
(
s
*
PluginService
)
Start
()
(
err
error
)
{
s
.
zapClient
=
plugin
.
NewClient
(
&
plugin
.
ClientConfig
{
HandshakeConfig
:
zapShared
.
Handshake
,
Plugins
:
zapShared
.
PluginMap
,
Cmd
:
shellUtils
.
GetCmd
(
ZapPath
),
HandshakeConfig
:
zapShared
.
Handshake
,
AllowedProtocols
:
[]
plugin
.
Protocol
{
plugin
.
ProtocolNetRPC
,
plugin
.
ProtocolGRPC
},
})
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录