Skip to content
This repository has been archived by the owner on May 12, 2021. It is now read-only.

Commit

Permalink
virtcontainers: storage: Add a noop version of filesystem
Browse files Browse the repository at this point in the history
This noop implementation of resourceStorage will allow for easier
unit testing of some sandbox functions.

Fixes #632

Signed-off-by: Sebastien Boeuf <[email protected]>
  • Loading branch information
Sebastien Boeuf committed Aug 23, 2018
1 parent 3f45818 commit 26f0430
Show file tree
Hide file tree
Showing 2 changed files with 300 additions and 0 deletions.
112 changes: 112 additions & 0 deletions virtcontainers/noop_resource_storage.go
Original file line number Diff line number Diff line change
@@ -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
}
188 changes: 188 additions & 0 deletions virtcontainers/noop_resource_storage_test.go
Original file line number Diff line number Diff line change
@@ -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)
}

0 comments on commit 26f0430

Please sign in to comment.