Migrate current TOML code to github.com/pelletier/go-toml
Signed-off-by: Maksym Pavlenko <pavlenko.maksym@gmail.com>
This commit is contained in:
parent
499c2f7d4a
commit
ddd4298a10
@ -22,20 +22,20 @@ import (
|
|||||||
"os"
|
"os"
|
||||||
"path/filepath"
|
"path/filepath"
|
||||||
|
|
||||||
"github.com/BurntSushi/toml"
|
|
||||||
"github.com/containerd/containerd/defaults"
|
"github.com/containerd/containerd/defaults"
|
||||||
"github.com/containerd/containerd/images"
|
"github.com/containerd/containerd/images"
|
||||||
"github.com/containerd/containerd/pkg/timeout"
|
"github.com/containerd/containerd/pkg/timeout"
|
||||||
"github.com/containerd/containerd/services/server"
|
"github.com/containerd/containerd/services/server"
|
||||||
srvconfig "github.com/containerd/containerd/services/server/config"
|
srvconfig "github.com/containerd/containerd/services/server/config"
|
||||||
ocispec "github.com/opencontainers/image-spec/specs-go/v1"
|
ocispec "github.com/opencontainers/image-spec/specs-go/v1"
|
||||||
|
"github.com/pelletier/go-toml"
|
||||||
"github.com/urfave/cli"
|
"github.com/urfave/cli"
|
||||||
)
|
)
|
||||||
|
|
||||||
// Config is a wrapper of server config for printing out.
|
// Config is a wrapper of server config for printing out.
|
||||||
type Config struct {
|
type Config struct {
|
||||||
*srvconfig.Config
|
*srvconfig.Config
|
||||||
// Plugins overrides `Plugins map[string]toml.Primitive` in server config.
|
// Plugins overrides `Plugins map[string]toml.Tree` in server config.
|
||||||
Plugins map[string]interface{} `toml:"plugins"`
|
Plugins map[string]interface{} `toml:"plugins"`
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -21,9 +21,9 @@ import (
|
|||||||
"net/url"
|
"net/url"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/BurntSushi/toml"
|
|
||||||
"github.com/containerd/containerd/log"
|
"github.com/containerd/containerd/log"
|
||||||
"github.com/containerd/containerd/plugin"
|
"github.com/containerd/containerd/plugin"
|
||||||
|
"github.com/pelletier/go-toml"
|
||||||
"github.com/pkg/errors"
|
"github.com/pkg/errors"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -49,7 +49,7 @@ type Runtime struct {
|
|||||||
Root string `toml:"runtime_root" json:"runtimeRoot"`
|
Root string `toml:"runtime_root" json:"runtimeRoot"`
|
||||||
// Options are config options for the runtime. If options is loaded
|
// Options are config options for the runtime. If options is loaded
|
||||||
// from toml config, it will be toml.Primitive.
|
// from toml config, it will be toml.Primitive.
|
||||||
Options *toml.Primitive `toml:"options" json:"options"`
|
Options *toml.Tree `toml:"options" json:"options"`
|
||||||
// PrivilegedWithoutHostDevices overloads the default behaviour for adding host devices to the
|
// PrivilegedWithoutHostDevices overloads the default behaviour for adding host devices to the
|
||||||
// runtime spec when the container is privileged. Defaults to false.
|
// runtime spec when the container is privileged. Defaults to false.
|
||||||
PrivilegedWithoutHostDevices bool `toml:"privileged_without_host_devices" json:"privileged_without_host_devices"`
|
PrivilegedWithoutHostDevices bool `toml:"privileged_without_host_devices" json:"privileged_without_host_devices"`
|
||||||
|
@ -19,7 +19,6 @@
|
|||||||
package config
|
package config
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"github.com/BurntSushi/toml"
|
|
||||||
"github.com/containerd/containerd"
|
"github.com/containerd/containerd"
|
||||||
"github.com/containerd/containerd/pkg/cri/streaming"
|
"github.com/containerd/containerd/pkg/cri/streaming"
|
||||||
)
|
)
|
||||||
@ -40,7 +39,6 @@ func DefaultConfig() PluginConfig {
|
|||||||
Runtimes: map[string]Runtime{
|
Runtimes: map[string]Runtime{
|
||||||
"runc": {
|
"runc": {
|
||||||
Type: "io.containerd.runc.v2",
|
Type: "io.containerd.runc.v2",
|
||||||
Options: new(toml.Primitive),
|
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
DisableSnapshotAnnotations: true,
|
DisableSnapshotAnnotations: true,
|
||||||
|
@ -23,7 +23,6 @@ import (
|
|||||||
"strconv"
|
"strconv"
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
"github.com/BurntSushi/toml"
|
|
||||||
runhcsoptions "github.com/Microsoft/hcsshim/cmd/containerd-shim-runhcs-v1/options"
|
runhcsoptions "github.com/Microsoft/hcsshim/cmd/containerd-shim-runhcs-v1/options"
|
||||||
"github.com/containerd/containerd"
|
"github.com/containerd/containerd"
|
||||||
"github.com/containerd/containerd/containers"
|
"github.com/containerd/containerd/containers"
|
||||||
@ -310,7 +309,7 @@ func generateRuntimeOptions(r criconfig.Runtime, c criconfig.Config) (interface{
|
|||||||
}, nil
|
}, nil
|
||||||
}
|
}
|
||||||
options := getRuntimeOptionsType(r.Type)
|
options := getRuntimeOptionsType(r.Type)
|
||||||
if err := toml.PrimitiveDecode(*r.Options, options); err != nil {
|
if err := r.Options.Unmarshal(options); err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
return options, nil
|
return options, nil
|
||||||
|
@ -21,7 +21,6 @@ import (
|
|||||||
"io/ioutil"
|
"io/ioutil"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
"github.com/BurntSushi/toml"
|
|
||||||
"github.com/containerd/containerd/oci"
|
"github.com/containerd/containerd/oci"
|
||||||
"github.com/containerd/containerd/plugin"
|
"github.com/containerd/containerd/plugin"
|
||||||
"github.com/containerd/containerd/reference/docker"
|
"github.com/containerd/containerd/reference/docker"
|
||||||
@ -29,6 +28,7 @@ import (
|
|||||||
runcoptions "github.com/containerd/containerd/runtime/v2/runc/options"
|
runcoptions "github.com/containerd/containerd/runtime/v2/runc/options"
|
||||||
imagedigest "github.com/opencontainers/go-digest"
|
imagedigest "github.com/opencontainers/go-digest"
|
||||||
runtimespec "github.com/opencontainers/runtime-spec/specs-go"
|
runtimespec "github.com/opencontainers/runtime-spec/specs-go"
|
||||||
|
"github.com/pelletier/go-toml"
|
||||||
"github.com/stretchr/testify/assert"
|
"github.com/stretchr/testify/assert"
|
||||||
"github.com/stretchr/testify/require"
|
"github.com/stretchr/testify/require"
|
||||||
|
|
||||||
@ -223,11 +223,16 @@ systemd_cgroup = true
|
|||||||
NoNewKeyring = true
|
NoNewKeyring = true
|
||||||
`
|
`
|
||||||
var nilOptsConfig, nonNilOptsConfig criconfig.Config
|
var nilOptsConfig, nonNilOptsConfig criconfig.Config
|
||||||
_, err := toml.Decode(nilOpts, &nilOptsConfig)
|
tree, err := toml.Load(nilOpts)
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
_, err = toml.Decode(nonNilOpts, &nonNilOptsConfig)
|
err = tree.Unmarshal(&nilOptsConfig)
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
require.Len(t, nilOptsConfig.Runtimes, 3)
|
require.Len(t, nilOptsConfig.Runtimes, 3)
|
||||||
|
|
||||||
|
tree, err = toml.Load(nonNilOpts)
|
||||||
|
require.NoError(t, err)
|
||||||
|
err = tree.Unmarshal(&nonNilOptsConfig)
|
||||||
|
require.NoError(t, err)
|
||||||
require.Len(t, nonNilOptsConfig.Runtimes, 3)
|
require.Len(t, nonNilOptsConfig.Runtimes, 3)
|
||||||
|
|
||||||
for desc, test := range map[string]struct {
|
for desc, test := range map[string]struct {
|
||||||
|
@ -20,8 +20,8 @@ import (
|
|||||||
"path/filepath"
|
"path/filepath"
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
"github.com/BurntSushi/toml"
|
|
||||||
"github.com/imdario/mergo"
|
"github.com/imdario/mergo"
|
||||||
|
"github.com/pelletier/go-toml"
|
||||||
"github.com/pkg/errors"
|
"github.com/pkg/errors"
|
||||||
|
|
||||||
"github.com/containerd/containerd/errdefs"
|
"github.com/containerd/containerd/errdefs"
|
||||||
@ -55,7 +55,7 @@ type Config struct {
|
|||||||
// required plugin doesn't exist or fails to be initialized or started.
|
// required plugin doesn't exist or fails to be initialized or started.
|
||||||
RequiredPlugins []string `toml:"required_plugins"`
|
RequiredPlugins []string `toml:"required_plugins"`
|
||||||
// Plugins provides plugin specific configuration for the initialization of a plugin
|
// Plugins provides plugin specific configuration for the initialization of a plugin
|
||||||
Plugins map[string]toml.Primitive `toml:"plugins"`
|
Plugins map[string]toml.Tree `toml:"plugins"`
|
||||||
// OOMScore adjust the containerd's oom score
|
// OOMScore adjust the containerd's oom score
|
||||||
OOMScore int `toml:"oom_score"`
|
OOMScore int `toml:"oom_score"`
|
||||||
// Cgroup specifies cgroup information for the containerd daemon process
|
// Cgroup specifies cgroup information for the containerd daemon process
|
||||||
@ -209,7 +209,7 @@ func (c *Config) Decode(p *plugin.Registration) (interface{}, error) {
|
|||||||
if !ok {
|
if !ok {
|
||||||
return p.Config, nil
|
return p.Config, nil
|
||||||
}
|
}
|
||||||
if err := toml.PrimitiveDecode(data, p.Config); err != nil {
|
if err := data.Unmarshal(p.Config); err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
return p.Config, nil
|
return p.Config, nil
|
||||||
@ -264,10 +264,16 @@ func LoadConfig(path string, out *Config) error {
|
|||||||
// loadConfigFile decodes a TOML file at the given path
|
// loadConfigFile decodes a TOML file at the given path
|
||||||
func loadConfigFile(path string) (*Config, error) {
|
func loadConfigFile(path string) (*Config, error) {
|
||||||
config := &Config{}
|
config := &Config{}
|
||||||
_, err := toml.DecodeFile(path, &config)
|
|
||||||
|
file, err := toml.LoadFile(path)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, errors.Wrapf(err, "failed to load TOML: %s", path)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if err := file.Unmarshal(config); err != nil {
|
||||||
|
return nil, errors.Wrap(err, "failed to unmarshal TOML")
|
||||||
|
}
|
||||||
|
|
||||||
return config, nil
|
return config, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -22,9 +22,9 @@ import (
|
|||||||
"fmt"
|
"fmt"
|
||||||
"os"
|
"os"
|
||||||
|
|
||||||
"github.com/BurntSushi/toml"
|
|
||||||
"github.com/docker/go-units"
|
"github.com/docker/go-units"
|
||||||
"github.com/hashicorp/go-multierror"
|
"github.com/hashicorp/go-multierror"
|
||||||
|
"github.com/pelletier/go-toml"
|
||||||
"github.com/pkg/errors"
|
"github.com/pkg/errors"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -56,8 +56,13 @@ func LoadConfig(path string) (*Config, error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
config := Config{}
|
config := Config{}
|
||||||
if _, err := toml.DecodeFile(path, &config); err != nil {
|
file, err := toml.LoadFile(path)
|
||||||
return nil, errors.Wrapf(err, "failed to unmarshal data at '%s'", path)
|
if err != nil {
|
||||||
|
return nil, errors.Wrapf(err, "failed to open devmapepr TOML: %s", path)
|
||||||
|
}
|
||||||
|
|
||||||
|
if err := file.Unmarshal(&config); err != nil {
|
||||||
|
return nil, errors.Wrap(err, "failed to unmarshal devmapper TOML")
|
||||||
}
|
}
|
||||||
|
|
||||||
if err := config.parse(); err != nil {
|
if err := config.parse(); err != nil {
|
||||||
|
@ -23,8 +23,8 @@ import (
|
|||||||
"os"
|
"os"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
"github.com/BurntSushi/toml"
|
|
||||||
"github.com/hashicorp/go-multierror"
|
"github.com/hashicorp/go-multierror"
|
||||||
|
"github.com/pelletier/go-toml"
|
||||||
"gotest.tools/v3/assert"
|
"gotest.tools/v3/assert"
|
||||||
is "gotest.tools/v3/assert/cmp"
|
is "gotest.tools/v3/assert/cmp"
|
||||||
)
|
)
|
||||||
|
Loading…
Reference in New Issue
Block a user