Skip to content

Commit 261c107

Browse files
authored
Merge pull request #5278 from mxpv/toml
Migrate TOML to github.com/pelletier/go-toml
2 parents 251e3d1 + 5ada2f7 commit 261c107

59 files changed

Lines changed: 5413 additions & 3590 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

cmd/containerd/command/config.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,20 +22,20 @@ import (
2222
"os"
2323
"path/filepath"
2424

25-
"github.com/BurntSushi/toml"
2625
"github.com/containerd/containerd/defaults"
2726
"github.com/containerd/containerd/images"
2827
"github.com/containerd/containerd/pkg/timeout"
2928
"github.com/containerd/containerd/services/server"
3029
srvconfig "github.com/containerd/containerd/services/server/config"
3130
ocispec "github.com/opencontainers/image-spec/specs-go/v1"
31+
"github.com/pelletier/go-toml"
3232
"github.com/urfave/cli"
3333
)
3434

3535
// Config is a wrapper of server config for printing out.
3636
type Config struct {
3737
*srvconfig.Config
38-
// Plugins overrides `Plugins map[string]toml.Primitive` in server config.
38+
// Plugins overrides `Plugins map[string]toml.Tree` in server config.
3939
Plugins map[string]interface{} `toml:"plugins"`
4040
}
4141

go.mod

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ module github.com/containerd/containerd
33
go 1.16
44

55
require (
6-
github.com/BurntSushi/toml v0.3.1
76
github.com/Microsoft/go-winio v0.4.17-0.20210324224401-5516f17a5958
87
github.com/Microsoft/hcsshim v0.8.15
98
github.com/containerd/aufs v0.0.0-20210316121734-20793ff83c97
@@ -43,6 +42,7 @@ require (
4342
github.com/opencontainers/runc v1.0.0-rc93
4443
github.com/opencontainers/runtime-spec v1.0.3-0.20200929063507-e6143ca7d51d
4544
github.com/opencontainers/selinux v1.8.0
45+
github.com/pelletier/go-toml v1.8.1
4646
github.com/pkg/errors v0.9.1
4747
github.com/prometheus/client_golang v1.7.1
4848
github.com/sirupsen/logrus v1.7.0

go.sum

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,6 @@ github.com/Azure/go-autorest/autorest/mocks v0.4.0/go.mod h1:LTp+uSrOhSkaKrUy935
3333
github.com/Azure/go-autorest/autorest/mocks v0.4.1/go.mod h1:LTp+uSrOhSkaKrUy935gNZuuIPPVsHlr9DSOxSayd+k=
3434
github.com/Azure/go-autorest/logger v0.2.0/go.mod h1:T9E3cAhj2VqvPOtCYAvby9aBXkZmbF5NWuPV8+WeEW8=
3535
github.com/Azure/go-autorest/tracing v0.6.0/go.mod h1:+vhtPC754Xsa23ID7GlGsrdKBpUA79WCAKPPZVC2DeU=
36-
github.com/BurntSushi/toml v0.3.1 h1:WXkYYl6Yr3qBf1K79EBnL4mak0OimBfB0XUf9Vl28OQ=
3736
github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
3837
github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo=
3938
github.com/Microsoft/go-winio v0.4.11/go.mod h1:VhR8bwka0BXejwEJY73c50VrPtXAaKcyvVC4A4RozmA=
@@ -437,6 +436,8 @@ github.com/opencontainers/runtime-tools v0.0.0-20181011054405-1d69bd0f9c39/go.mo
437436
github.com/opencontainers/selinux v1.6.0/go.mod h1:VVGKuOLlE7v4PJyT6h7mNWvq1rzqiriPsEqVhc+svHE=
438437
github.com/opencontainers/selinux v1.8.0 h1:+77ba4ar4jsCbL1GLbFL8fFM57w6suPfSS9PDLDY7KM=
439438
github.com/opencontainers/selinux v1.8.0/go.mod h1:RScLhm78qiWa2gbVCcGkC7tCGdgk3ogry1nUQF8Evvo=
439+
github.com/pelletier/go-toml v1.8.1 h1:1Nf83orprkJyknT6h7zbuEGUEjcyVlCxSUGTENmNCRM=
440+
github.com/pelletier/go-toml v1.8.1/go.mod h1:T2/BmBdy8dvIRq1a/8aqjN41wvWlN4lrapLU/GW4pbc=
440441
github.com/peterbourgon/diskv v2.0.1+incompatible/go.mod h1:uqqh8zWWbv1HBMNONnaR/tNboyR3/BZd58JJSHlUSCU=
441442
github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
442443
github.com/pkg/errors v0.8.1-0.20171018195549-f15c970de5b7/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=

pkg/cri/config/config.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,9 @@ import (
2121
"net/url"
2222
"time"
2323

24-
"github.com/BurntSushi/toml"
2524
"github.com/containerd/containerd/log"
2625
"github.com/containerd/containerd/plugin"
26+
"github.com/pelletier/go-toml"
2727
"github.com/pkg/errors"
2828
)
2929

@@ -48,8 +48,8 @@ type Runtime struct {
4848
// This only works for runtime type "io.containerd.runtime.v1.linux".
4949
Root string `toml:"runtime_root" json:"runtimeRoot"`
5050
// Options are config options for the runtime. If options is loaded
51-
// from toml config, it will be toml.Primitive.
52-
Options *toml.Primitive `toml:"options" json:"options"`
51+
// from toml config, it will be toml.Tree.
52+
Options *toml.Tree `toml:"options" json:"options"`
5353
// PrivilegedWithoutHostDevices overloads the default behaviour for adding host devices to the
5454
// runtime spec when the container is privileged. Defaults to false.
5555
PrivilegedWithoutHostDevices bool `toml:"privileged_without_host_devices" json:"privileged_without_host_devices"`

pkg/cri/config/config_unix.go

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@
1919
package config
2020

2121
import (
22-
"github.com/BurntSushi/toml"
2322
"github.com/containerd/containerd"
2423
"github.com/containerd/containerd/pkg/cri/streaming"
2524
)
@@ -39,8 +38,7 @@ func DefaultConfig() PluginConfig {
3938
NoPivot: false,
4039
Runtimes: map[string]Runtime{
4140
"runc": {
42-
Type: "io.containerd.runc.v2",
43-
Options: new(toml.Primitive),
41+
Type: "io.containerd.runc.v2",
4442
},
4543
},
4644
DisableSnapshotAnnotations: true,

pkg/cri/server/helpers.go

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@ import (
2323
"strconv"
2424
"strings"
2525

26-
"github.com/BurntSushi/toml"
2726
runhcsoptions "github.com/Microsoft/hcsshim/cmd/containerd-shim-runhcs-v1/options"
2827
"github.com/containerd/containerd"
2928
"github.com/containerd/containerd/containers"
@@ -310,7 +309,7 @@ func generateRuntimeOptions(r criconfig.Runtime, c criconfig.Config) (interface{
310309
}, nil
311310
}
312311
options := getRuntimeOptionsType(r.Type)
313-
if err := toml.PrimitiveDecode(*r.Options, options); err != nil {
312+
if err := r.Options.Unmarshal(options); err != nil {
314313
return nil, err
315314
}
316315
return options, nil

pkg/cri/server/helpers_test.go

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,14 +21,14 @@ import (
2121
"io/ioutil"
2222
"testing"
2323

24-
"github.com/BurntSushi/toml"
2524
"github.com/containerd/containerd/oci"
2625
"github.com/containerd/containerd/plugin"
2726
"github.com/containerd/containerd/reference/docker"
2827
"github.com/containerd/containerd/runtime/linux/runctypes"
2928
runcoptions "github.com/containerd/containerd/runtime/v2/runc/options"
3029
imagedigest "github.com/opencontainers/go-digest"
3130
runtimespec "github.com/opencontainers/runtime-spec/specs-go"
31+
"github.com/pelletier/go-toml"
3232
"github.com/stretchr/testify/assert"
3333
"github.com/stretchr/testify/require"
3434

@@ -223,11 +223,16 @@ systemd_cgroup = true
223223
NoNewKeyring = true
224224
`
225225
var nilOptsConfig, nonNilOptsConfig criconfig.Config
226-
_, err := toml.Decode(nilOpts, &nilOptsConfig)
226+
tree, err := toml.Load(nilOpts)
227227
require.NoError(t, err)
228-
_, err = toml.Decode(nonNilOpts, &nonNilOptsConfig)
228+
err = tree.Unmarshal(&nilOptsConfig)
229229
require.NoError(t, err)
230230
require.Len(t, nilOptsConfig.Runtimes, 3)
231+
232+
tree, err = toml.Load(nonNilOpts)
233+
require.NoError(t, err)
234+
err = tree.Unmarshal(&nonNilOptsConfig)
235+
require.NoError(t, err)
231236
require.Len(t, nonNilOptsConfig.Runtimes, 3)
232237

233238
for desc, test := range map[string]struct {

0 commit comments

Comments
 (0)