virtcontainers: storage: Add a noop version of filesystem

This noop implementation of resourceStorage will allow for easier
unit testing of some sandbox functions.

Fixes #632

Signed-off-by: Sebastien Boeuf <sebastien.boeuf@intel.com>
This commit is contained in:
Sebastien Boeuf 2018-08-16 16:07:10 -07:00
parent 3f458187a4
commit 26f0430a7c
2 changed files with 300 additions and 0 deletions

View File

@ -0,0 +1,112 @@
// Copyright (c) 2018 Intel Corporation
//
// SPDX-License-Identifier: Apache-2.0
//
package virtcontainers
import (
"github.com/kata-containers/runtime/virtcontainers/device/api"
)
type noopResourceStorage struct{}
func (n *noopResourceStorage) createAllResources(sandbox *Sandbox) error {
return nil
}
func (n *noopResourceStorage) containerURI(sandboxID, containerID string, resource sandboxResource) (string, string, error) {
return "", "", nil
}
func (n *noopResourceStorage) sandboxURI(sandboxID string, resource sandboxResource) (string, string, error) {
return "", "", nil
}
func (n *noopResourceStorage) storeSandboxResource(sandboxID string, resource sandboxResource, data interface{}) error {
return nil
}
func (n *noopResourceStorage) deleteSandboxResources(sandboxID string, resources []sandboxResource) error {
return nil
}
func (n *noopResourceStorage) fetchSandboxConfig(sandboxID string) (SandboxConfig, error) {
return SandboxConfig{}, nil
}
func (n *noopResourceStorage) fetchSandboxState(sandboxID string) (State, error) {
return State{}, nil
}
func (n *noopResourceStorage) fetchSandboxNetwork(sandboxID string) (NetworkNamespace, error) {
return NetworkNamespace{}, nil
}
func (n *noopResourceStorage) storeSandboxNetwork(sandboxID string, networkNS NetworkNamespace) error {
return nil
}
func (n *noopResourceStorage) fetchSandboxDevices(sandboxID string) ([]api.Device, error) {
return []api.Device{}, nil
}
func (n *noopResourceStorage) storeSandboxDevices(sandboxID string, devices []api.Device) error {
return nil
}
func (n *noopResourceStorage) fetchHypervisorState(sandboxID string, state interface{}) error {
return nil
}
func (n *noopResourceStorage) storeHypervisorState(sandboxID string, state interface{}) error {
return nil
}
func (n *noopResourceStorage) fetchAgentState(sandboxID string, state interface{}) error {
return nil
}
func (n *noopResourceStorage) storeAgentState(sandboxID string, state interface{}) error {
return nil
}
func (n *noopResourceStorage) storeContainerResource(sandboxID, containerID string, resource sandboxResource, data interface{}) error {
return nil
}
func (n *noopResourceStorage) deleteContainerResources(sandboxID, containerID string, resources []sandboxResource) error {
return nil
}
func (n *noopResourceStorage) fetchContainerConfig(sandboxID, containerID string) (ContainerConfig, error) {
return ContainerConfig{}, nil
}
func (n *noopResourceStorage) fetchContainerState(sandboxID, containerID string) (State, error) {
return State{}, nil
}
func (n *noopResourceStorage) fetchContainerProcess(sandboxID, containerID string) (Process, error) {
return Process{}, nil
}
func (n *noopResourceStorage) storeContainerProcess(sandboxID, containerID string, process Process) error {
return nil
}
func (n *noopResourceStorage) fetchContainerMounts(sandboxID, containerID string) ([]Mount, error) {
return []Mount{}, nil
}
func (n *noopResourceStorage) storeContainerMounts(sandboxID, containerID string, mounts []Mount) error {
return nil
}
func (n *noopResourceStorage) fetchContainerDevices(sandboxID, containerID string) ([]ContainerDevice, error) {
return []ContainerDevice{}, nil
}
func (n *noopResourceStorage) storeContainerDevices(sandboxID, containerID string, devices []ContainerDevice) error {
return nil
}

View File

@ -0,0 +1,188 @@
// Copyright (c) 2018 Intel Corporation
//
// SPDX-License-Identifier: Apache-2.0
//
package virtcontainers
import (
"testing"
"github.com/kata-containers/runtime/virtcontainers/device/api"
"github.com/stretchr/testify/assert"
)
func TestNoopCreateAllResources(t *testing.T) {
n := &noopResourceStorage{}
err := n.createAllResources(nil)
assert.Nil(t, err)
}
func TestNoopContainerURI(t *testing.T) {
n := &noopResourceStorage{}
_, _, err := n.containerURI("", "", 0)
assert.Nil(t, err)
}
func TestNoopSandboxURI(t *testing.T) {
n := &noopResourceStorage{}
_, _, err := n.sandboxURI("", 0)
assert.Nil(t, err)
}
func TestNoopStoreSandboxResource(t *testing.T) {
n := &noopResourceStorage{}
err := n.storeSandboxResource("", 0, nil)
assert.Nil(t, err)
}
func TestNoopDeleteSandboxResources(t *testing.T) {
n := &noopResourceStorage{}
err := n.deleteSandboxResources("", []sandboxResource{0})
assert.Nil(t, err)
}
func TestNoopFetchSandboxConfig(t *testing.T) {
n := &noopResourceStorage{}
_, err := n.fetchSandboxConfig("")
assert.Nil(t, err)
}
func TestNoopFetchSandboxState(t *testing.T) {
n := &noopResourceStorage{}
_, err := n.fetchSandboxState("")
assert.Nil(t, err)
}
func TestNoopFetchSandboxNetwork(t *testing.T) {
n := &noopResourceStorage{}
_, err := n.fetchSandboxNetwork("")
assert.Nil(t, err)
}
func TestNoopStoreSandboxNetwork(t *testing.T) {
n := &noopResourceStorage{}
err := n.storeSandboxNetwork("", NetworkNamespace{})
assert.Nil(t, err)
}
func TestNoopFetchSandboxDevices(t *testing.T) {
n := &noopResourceStorage{}
_, err := n.fetchSandboxDevices("")
assert.Nil(t, err)
}
func TestNoopStoreSandboxDevices(t *testing.T) {
n := &noopResourceStorage{}
err := n.storeSandboxDevices("", []api.Device{})
assert.Nil(t, err)
}
func TestNoopFetchHypervisorState(t *testing.T) {
n := &noopResourceStorage{}
err := n.fetchHypervisorState("", nil)
assert.Nil(t, err)
}
func TestNoopStoreHypervisorState(t *testing.T) {
n := &noopResourceStorage{}
err := n.storeHypervisorState("", nil)
assert.Nil(t, err)
}
func TestNoopFetchAgentState(t *testing.T) {
n := &noopResourceStorage{}
err := n.fetchAgentState("", nil)
assert.Nil(t, err)
}
func TestNoopStoreAgentState(t *testing.T) {
n := &noopResourceStorage{}
err := n.storeAgentState("", nil)
assert.Nil(t, err)
}
func TestNoopStoreContainerResource(t *testing.T) {
n := &noopResourceStorage{}
err := n.storeContainerResource("", "", 0, nil)
assert.Nil(t, err)
}
func TestNoopDeleteContainerResources(t *testing.T) {
n := &noopResourceStorage{}
err := n.deleteContainerResources("", "", []sandboxResource{0})
assert.Nil(t, err)
}
func TestNoopFetchContainerConfig(t *testing.T) {
n := &noopResourceStorage{}
_, err := n.fetchContainerConfig("", "")
assert.Nil(t, err)
}
func TestNoopFetchContainerState(t *testing.T) {
n := &noopResourceStorage{}
_, err := n.fetchContainerState("", "")
assert.Nil(t, err)
}
func TestNoopFetchContainerProcess(t *testing.T) {
n := &noopResourceStorage{}
_, err := n.fetchContainerProcess("", "")
assert.Nil(t, err)
}
func TestNoopStoreContainerProcess(t *testing.T) {
n := &noopResourceStorage{}
err := n.storeContainerProcess("", "", Process{})
assert.Nil(t, err)
}
func TestNoopFetchContainerMounts(t *testing.T) {
n := &noopResourceStorage{}
_, err := n.fetchContainerMounts("", "")
assert.Nil(t, err)
}
func TestNoopStoreContainerMounts(t *testing.T) {
n := &noopResourceStorage{}
err := n.storeContainerMounts("", "", []Mount{})
assert.Nil(t, err)
}
func TestNoopFetchContainerDevices(t *testing.T) {
n := &noopResourceStorage{}
_, err := n.fetchContainerDevices("", "")
assert.Nil(t, err)
}
func TestNoopStoreContainerDevices(t *testing.T) {
n := &noopResourceStorage{}
err := n.storeContainerDevices("", "", []ContainerDevice{})
assert.Nil(t, err)
}