diff --git a/virtcontainers/agent.go b/virtcontainers/agent.go index 56721bf9a7..fb24cfa4b5 100644 --- a/virtcontainers/agent.go +++ b/virtcontainers/agent.go @@ -91,19 +91,19 @@ func newAgent(agentType AgentType) agent { } // newAgentConfig returns an agent config from a generic SandboxConfig interface. -func newAgentConfig(agentType AgentType, agentConfig interface{}) interface{} { +func newAgentConfig(agentType AgentType, agentConfig interface{}) (interface{}, error) { switch agentType { case NoopAgentType: - return nil + return nil, nil case KataContainersAgent: var kataAgentConfig KataAgentConfig err := mapstructure.Decode(agentConfig, &kataAgentConfig) if err != nil { - return err + return nil, err } - return kataAgentConfig + return kataAgentConfig, nil default: - return nil + return nil, nil } } diff --git a/virtcontainers/agent_test.go b/virtcontainers/agent_test.go index 4706bdaf4d..21840df61e 100644 --- a/virtcontainers/agent_test.go +++ b/virtcontainers/agent_test.go @@ -86,7 +86,12 @@ func TestNewAgentFromUnknownAgentType(t *testing.T) { } func testNewAgentConfig(t *testing.T, config SandboxConfig, expected interface{}) { - agentConfig := newAgentConfig(config.AgentType, config.AgentConfig) + agentConfig, err := newAgentConfig(config.AgentType, config.AgentConfig) + if err != nil { + t.Fatal(err) + + } + if reflect.DeepEqual(agentConfig, expected) == false { t.Fatal() } diff --git a/virtcontainers/sandbox.go b/virtcontainers/sandbox.go index 8d3046d46f..5ca4395422 100644 --- a/virtcontainers/sandbox.go +++ b/virtcontainers/sandbox.go @@ -583,7 +583,11 @@ func newSandbox(ctx context.Context, sandboxConfig SandboxConfig, factory Factor return nil, err } - agentConfig := newAgentConfig(sandboxConfig.AgentType, sandboxConfig.AgentConfig) + agentConfig, err := newAgentConfig(sandboxConfig.AgentType, sandboxConfig.AgentConfig) + if err != nil { + return nil, err + } + if err = s.agent.init(ctx, s, agentConfig); err != nil { return nil, err }