From 6fe48329b5563071fdbd6004147ee8925cdfa4ee Mon Sep 17 00:00:00 2001 From: bin Date: Thu, 1 Apr 2021 13:44:45 +0800 Subject: [PATCH] runtime: use concrete KataAgentConfig instead of interface type Kata Containers 2.0 only have one type of agent, so there is no need to use interface as config's type Fixes: #1610 Signed-off-by: bin --- src/runtime/virtcontainers/agent.go | 4 ++-- src/runtime/virtcontainers/kata_agent.go | 19 ++++++------------- src/runtime/virtcontainers/mock_agent.go | 6 +++--- 3 files changed, 11 insertions(+), 18 deletions(-) diff --git a/src/runtime/virtcontainers/agent.go b/src/runtime/virtcontainers/agent.go index 87e061204d..1f0b8577a3 100644 --- a/src/runtime/virtcontainers/agent.go +++ b/src/runtime/virtcontainers/agent.go @@ -163,10 +163,10 @@ type agent interface { resumeContainer(ctx context.Context, sandbox *Sandbox, c Container) error // configure will update agent settings based on provided arguments - configure(ctx context.Context, h hypervisor, id, sharePath string, config interface{}) error + configure(ctx context.Context, h hypervisor, id, sharePath string, config KataAgentConfig) error // configureFromGrpc will update agent settings based on provided arguments which from Grpc - configureFromGrpc(h hypervisor, id string, config interface{}) error + configureFromGrpc(h hypervisor, id string, config KataAgentConfig) error // reseedRNG will reseed the guest random number generator reseedRNG(ctx context.Context, data []byte) error diff --git a/src/runtime/virtcontainers/kata_agent.go b/src/runtime/virtcontainers/kata_agent.go index 33001a0350..44fb46b768 100644 --- a/src/runtime/virtcontainers/kata_agent.go +++ b/src/runtime/virtcontainers/kata_agent.go @@ -368,19 +368,12 @@ func (k *kataAgent) capabilities() types.Capabilities { return caps } -func (k *kataAgent) internalConfigure(h hypervisor, id string, config interface{}) error { +func (k *kataAgent) internalConfigure(h hypervisor, id string, config KataAgentConfig) error { var err error - if config != nil { - switch c := config.(type) { - case KataAgentConfig: - if k.vmSocket, err = h.generateSocket(id); err != nil { - return err - } - k.keepConn = c.LongLiveConn - default: - return vcTypes.ErrInvalidConfigType - } + if k.vmSocket, err = h.generateSocket(id); err != nil { + return err } + k.keepConn = config.LongLiveConn return nil } @@ -429,7 +422,7 @@ func cleanupSandboxBindMounts(sandbox *Sandbox) error { return nil } -func (k *kataAgent) configure(ctx context.Context, h hypervisor, id, sharePath string, config interface{}) error { +func (k *kataAgent) configure(ctx context.Context, h hypervisor, id, sharePath string, config KataAgentConfig) error { err := k.internalConfigure(h, id, config) if err != nil { return err @@ -471,7 +464,7 @@ func (k *kataAgent) configure(ctx context.Context, h hypervisor, id, sharePath s return h.addDevice(ctx, sharedVolume, fsDev) } -func (k *kataAgent) configureFromGrpc(h hypervisor, id string, config interface{}) error { +func (k *kataAgent) configureFromGrpc(h hypervisor, id string, config KataAgentConfig) error { return k.internalConfigure(h, id, config) } diff --git a/src/runtime/virtcontainers/mock_agent.go b/src/runtime/virtcontainers/mock_agent.go index 6807ac72a5..c1aa920386 100644 --- a/src/runtime/virtcontainers/mock_agent.go +++ b/src/runtime/virtcontainers/mock_agent.go @@ -176,12 +176,12 @@ func (n *mockAgent) resumeContainer(ctx context.Context, sandbox *Sandbox, c Con return nil } -// configHypervisor is the Noop agent hypervisor configuration implementation. It does nothing. -func (n *mockAgent) configure(ctx context.Context, h hypervisor, id, sharePath string, config interface{}) error { +// configure is the Noop agent configuration implementation. It does nothing. +func (n *mockAgent) configure(ctx context.Context, h hypervisor, id, sharePath string, config KataAgentConfig) error { return nil } -func (n *mockAgent) configureFromGrpc(h hypervisor, id string, config interface{}) error { +func (n *mockAgent) configureFromGrpc(h hypervisor, id string, config KataAgentConfig) error { return nil }