add Duration type to compatible toml v1 version

Signed-off-by: rongfu.leng <rongfu.leng@daocloud.io>
This commit is contained in:
rongfu.leng
2023-10-02 11:04:30 +08:00
parent 5b097a0817
commit 3ddcd6120d
5 changed files with 67 additions and 27 deletions

View File

@@ -30,6 +30,7 @@ import (
"time"
"github.com/containerd/containerd/pkg/imageverifier"
"github.com/containerd/containerd/pkg/tomlext"
"github.com/containerd/log"
ocispec "github.com/opencontainers/image-spec/specs-go/v1"
)
@@ -37,9 +38,9 @@ import (
const outputLimitBytes = 1 << 15 // 32 KiB
type Config struct {
BinDir string `toml:"bin_dir"`
MaxVerifiers int `toml:"max_verifiers"`
PerVerifierTimeout time.Duration `toml:"per_verifier_timeout"`
BinDir string `toml:"bin_dir"`
MaxVerifiers int `toml:"max_verifiers"`
PerVerifierTimeout tomlext.Duration `toml:"per_verifier_timeout"`
}
type ImageVerifier struct {
@@ -110,7 +111,7 @@ func (v *ImageVerifier) VerifyImage(ctx context.Context, name string, desc ocisp
}
func (v *ImageVerifier) runVerifier(ctx context.Context, bin string, imageName string, desc ocispec.Descriptor) (exitCode int, reason string, err error) {
ctx, cancel := context.WithTimeout(ctx, v.config.PerVerifierTimeout)
ctx, cancel := context.WithTimeout(ctx, tomlext.ToStdTime(v.config.PerVerifierTimeout))
defer cancel()
binPath := filepath.Join(v.config.BinDir, bin)

View File

@@ -29,6 +29,7 @@ import (
"text/template"
"time"
"github.com/containerd/containerd/pkg/tomlext"
"github.com/containerd/log"
ocispec "github.com/opencontainers/image-spec/specs-go/v1"
"github.com/stretchr/testify/assert"
@@ -136,7 +137,7 @@ func TestBinDirVerifyImage(t *testing.T) {
v := NewImageVerifier(&Config{
BinDir: binDir,
MaxVerifiers: -1,
PerVerifierTimeout: 5 * time.Second,
PerVerifierTimeout: tomlext.FromStdTime(5 * time.Second),
})
j, err := v.VerifyImage(ctx, "registry.example.com/image:abc", ocispec.Descriptor{
@@ -170,7 +171,7 @@ func TestBinDirVerifyImage(t *testing.T) {
v := NewImageVerifier(&Config{
BinDir: binDir,
MaxVerifiers: -1,
PerVerifierTimeout: 30 * time.Second,
PerVerifierTimeout: tomlext.FromStdTime(30 * time.Second),
})
j, err := v.VerifyImage(ctx, "registry.example.com/image:abc", ocispec.Descriptor{})
@@ -183,7 +184,7 @@ func TestBinDirVerifyImage(t *testing.T) {
v := NewImageVerifier(&Config{
BinDir: filepath.Join(t.TempDir(), "missing_directory"),
MaxVerifiers: 10,
PerVerifierTimeout: 5 * time.Second,
PerVerifierTimeout: tomlext.FromStdTime(5 * time.Second),
})
j, err := v.VerifyImage(ctx, "registry.example.com/image:abc", ocispec.Descriptor{})
@@ -196,7 +197,7 @@ func TestBinDirVerifyImage(t *testing.T) {
v := NewImageVerifier(&Config{
BinDir: t.TempDir(),
MaxVerifiers: 10,
PerVerifierTimeout: 5 * time.Second,
PerVerifierTimeout: tomlext.FromStdTime(5 * time.Second),
})
j, err := v.VerifyImage(ctx, "registry.example.com/image:abc", ocispec.Descriptor{})
@@ -213,7 +214,7 @@ func TestBinDirVerifyImage(t *testing.T) {
v := NewImageVerifier(&Config{
BinDir: binDir,
MaxVerifiers: 0,
PerVerifierTimeout: 5 * time.Second,
PerVerifierTimeout: tomlext.FromStdTime(5 * time.Second),
})
j, err := v.VerifyImage(ctx, "registry.example.com/image:abc", ocispec.Descriptor{})
@@ -231,7 +232,7 @@ func TestBinDirVerifyImage(t *testing.T) {
v := NewImageVerifier(&Config{
BinDir: binDir,
MaxVerifiers: 1,
PerVerifierTimeout: 5 * time.Second,
PerVerifierTimeout: tomlext.FromStdTime(5 * time.Second),
})
j, err := v.VerifyImage(ctx, "registry.example.com/image:abc", ocispec.Descriptor{})
@@ -250,7 +251,7 @@ func TestBinDirVerifyImage(t *testing.T) {
v := NewImageVerifier(&Config{
BinDir: binDir,
MaxVerifiers: 2,
PerVerifierTimeout: 5 * time.Second,
PerVerifierTimeout: tomlext.FromStdTime(5 * time.Second),
})
j, err := v.VerifyImage(ctx, "registry.example.com/image:abc", ocispec.Descriptor{})
@@ -268,7 +269,7 @@ func TestBinDirVerifyImage(t *testing.T) {
v := NewImageVerifier(&Config{
BinDir: binDir,
MaxVerifiers: 3,
PerVerifierTimeout: 5 * time.Second,
PerVerifierTimeout: tomlext.FromStdTime(5 * time.Second),
})
j, err := v.VerifyImage(ctx, "registry.example.com/image:abc", ocispec.Descriptor{})
@@ -287,7 +288,7 @@ func TestBinDirVerifyImage(t *testing.T) {
v := NewImageVerifier(&Config{
BinDir: binDir,
MaxVerifiers: 3,
PerVerifierTimeout: 5 * time.Second,
PerVerifierTimeout: tomlext.FromStdTime(5 * time.Second),
})
j, err := v.VerifyImage(ctx, "registry.example.com/image:abc", ocispec.Descriptor{})
@@ -306,7 +307,7 @@ func TestBinDirVerifyImage(t *testing.T) {
v := NewImageVerifier(&Config{
BinDir: binDir,
MaxVerifiers: -1,
PerVerifierTimeout: 5 * time.Second,
PerVerifierTimeout: tomlext.FromStdTime(5 * time.Second),
})
j, err := v.VerifyImage(ctx, "registry.example.com/image:abc", ocispec.Descriptor{})
@@ -325,7 +326,7 @@ func TestBinDirVerifyImage(t *testing.T) {
v := NewImageVerifier(&Config{
BinDir: binDir,
MaxVerifiers: -1,
PerVerifierTimeout: 5 * time.Second,
PerVerifierTimeout: tomlext.FromStdTime(5 * time.Second),
})
j, err := v.VerifyImage(ctx, "registry.example.com/image:abc", ocispec.Descriptor{})
@@ -344,7 +345,7 @@ func TestBinDirVerifyImage(t *testing.T) {
v := NewImageVerifier(&Config{
BinDir: binDir,
MaxVerifiers: -1,
PerVerifierTimeout: 5 * time.Second,
PerVerifierTimeout: tomlext.FromStdTime(5 * time.Second),
})
j, err := v.VerifyImage(ctx, "registry.example.com/image:abc", ocispec.Descriptor{})
@@ -379,7 +380,7 @@ func TestBinDirVerifyImage(t *testing.T) {
v := NewImageVerifier(&Config{
BinDir: binDir,
MaxVerifiers: -1,
PerVerifierTimeout: 5 * time.Second,
PerVerifierTimeout: tomlext.FromStdTime(5 * time.Second),
})
j, err := v.VerifyImage(ctx, "registry.example.com/image:abc", ocispec.Descriptor{})
@@ -395,7 +396,7 @@ func TestBinDirVerifyImage(t *testing.T) {
v := NewImageVerifier(&Config{
BinDir: binDir,
MaxVerifiers: 1,
PerVerifierTimeout: 5 * time.Second,
PerVerifierTimeout: tomlext.FromStdTime(5 * time.Second),
})
j, err := v.VerifyImage(ctx, "registry.example.com/image:abc", ocispec.Descriptor{