mirror of
https://github.com/aljazceru/kata-containers.git
synced 2026-01-06 16:04:26 +01:00
It's going to be used to completely clean a Store away. Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
52 lines
898 B
Go
52 lines
898 B
Go
// Copyright (c) 2019 Intel Corporation
|
|
//
|
|
// SPDX-License-Identifier: Apache-2.0
|
|
//
|
|
|
|
package store
|
|
|
|
import (
|
|
"context"
|
|
"fmt"
|
|
)
|
|
|
|
type backendType string
|
|
|
|
const (
|
|
filesystemBackend backendType = "filesystem"
|
|
)
|
|
|
|
const (
|
|
filesystemScheme string = "file"
|
|
)
|
|
|
|
func schemeToBackendType(scheme string) (backendType, error) {
|
|
switch scheme {
|
|
case filesystemScheme:
|
|
return filesystemBackend, nil
|
|
}
|
|
|
|
return "", fmt.Errorf("Unsupported scheme %s", scheme)
|
|
}
|
|
|
|
func newBackend(scheme string) (backend, error) {
|
|
t, err := schemeToBackendType(scheme)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
switch t {
|
|
case filesystemBackend:
|
|
return &filesystem{}, nil
|
|
}
|
|
|
|
return nil, fmt.Errorf("Unsupported scheme %s", scheme)
|
|
}
|
|
|
|
type backend interface {
|
|
new(ctx context.Context, path string, host string) error
|
|
delete() error
|
|
load(item Item, data interface{}) error
|
|
store(item Item, data interface{}) error
|
|
}
|