summaryrefslogtreecommitdiff
path: root/libpod
diff options
context:
space:
mode:
authorOpenShift Merge Robot <openshift-merge-robot@users.noreply.github.com>2019-04-14 03:09:41 -0700
committerGitHub <noreply@github.com>2019-04-14 03:09:41 -0700
commitf929b9e4d5a48f80810a7d0010951decbb38e47f (patch)
tree3a2029ecacea6b2da7743494a2fceef60c9e01ef /libpod
parent9acc9cd58c552c0fb20d817d3d3124610ebea01d (diff)
parent82e8453c770915d3d959b85f55b2d37a8ee5d51d (diff)
downloadpodman-f929b9e4d5a48f80810a7d0010951decbb38e47f.tar.gz
podman-f929b9e4d5a48f80810a7d0010951decbb38e47f.tar.bz2
podman-f929b9e4d5a48f80810a7d0010951decbb38e47f.zip
Merge pull request #2501 from mtrmac/fixed-hook-order
RFC: Make hooks sort order locale-independent
Diffstat (limited to 'libpod')
-rw-r--r--libpod/container_internal.go47
-rw-r--r--libpod/container_internal_test.go48
2 files changed, 2 insertions, 93 deletions
diff --git a/libpod/container_internal.go b/libpod/container_internal.go
index aa6448f4a..927b71b2b 100644
--- a/libpod/container_internal.go
+++ b/libpod/container_internal.go
@@ -25,7 +25,6 @@ import (
opentracing "github.com/opentracing/opentracing-go"
"github.com/pkg/errors"
"github.com/sirupsen/logrus"
- "golang.org/x/text/language"
kwait "k8s.io/apimachinery/pkg/util/wait"
)
@@ -34,15 +33,6 @@ const (
artifactsDir = "artifacts"
)
-var (
- // localeToLanguageMap maps from locale values to language tags.
- localeToLanguageMap = map[string]string{
- "": "und-u-va-posix",
- "c": "und-u-va-posix",
- "posix": "und-u-va-posix",
- }
-)
-
// rootFsSize gets the size of the container's root filesystem
// A container FS is split into two parts. The first is the top layer, a
// mutable layer, and the rest is the RootFS: the set of immutable layers
@@ -1285,48 +1275,15 @@ func (c *Container) saveSpec(spec *spec.Spec) error {
return nil
}
-// localeToLanguage translates POSIX locale strings to BCP 47 language tags.
-func localeToLanguage(locale string) string {
- locale = strings.Replace(strings.SplitN(locale, ".", 2)[0], "_", "-", 1)
- langString, ok := localeToLanguageMap[strings.ToLower(locale)]
- if !ok {
- langString = locale
- }
- return langString
-}
-
// Warning: precreate hooks may alter 'config' in place.
func (c *Container) setupOCIHooks(ctx context.Context, config *spec.Spec) (extensionStageHooks map[string][]spec.Hook, err error) {
- var locale string
- var ok bool
- for _, envVar := range []string{
- "LC_ALL",
- "LC_COLLATE",
- "LANG",
- } {
- locale, ok = os.LookupEnv(envVar)
- if ok {
- break
- }
- }
-
- langString := localeToLanguage(locale)
- lang, err := language.Parse(langString)
- if err != nil {
- logrus.Warnf("failed to parse language %q: %s", langString, err)
- lang, err = language.Parse("und-u-va-posix")
- if err != nil {
- return nil, err
- }
- }
-
allHooks := make(map[string][]spec.Hook)
if c.runtime.config.HooksDir == nil {
if rootless.IsRootless() {
return nil, nil
}
for _, hDir := range []string{hooks.DefaultDir, hooks.OverrideDir} {
- manager, err := hooks.New(ctx, []string{hDir}, []string{"precreate", "poststop"}, lang)
+ manager, err := hooks.New(ctx, []string{hDir}, []string{"precreate", "poststop"})
if err != nil {
if os.IsNotExist(err) {
continue
@@ -1345,7 +1302,7 @@ func (c *Container) setupOCIHooks(ctx context.Context, config *spec.Spec) (exten
}
}
} else {
- manager, err := hooks.New(ctx, c.runtime.config.HooksDir, []string{"precreate", "poststop"}, lang)
+ manager, err := hooks.New(ctx, c.runtime.config.HooksDir, []string{"precreate", "poststop"})
if err != nil {
if os.IsNotExist(err) {
logrus.Warnf("Requested OCI hooks directory %q does not exist", c.runtime.config.HooksDir)
diff --git a/libpod/container_internal_test.go b/libpod/container_internal_test.go
index 1654af929..f1e2b70a7 100644
--- a/libpod/container_internal_test.go
+++ b/libpod/container_internal_test.go
@@ -17,54 +17,6 @@ import (
// hookPath is the path to an example hook executable.
var hookPath string
-func TestLocaleToLanguage(t *testing.T) {
- for _, testCase := range []struct {
- locale string
- language string
- }{
- {
- locale: "",
- language: "und-u-va-posix",
- },
- {
- locale: "C",
- language: "und-u-va-posix",
- },
- {
- locale: "POSIX",
- language: "und-u-va-posix",
- },
- {
- locale: "c",
- language: "und-u-va-posix",
- },
- {
- locale: "en",
- language: "en",
- },
- {
- locale: "en_US",
- language: "en-US",
- },
- {
- locale: "en.UTF-8",
- language: "en",
- },
- {
- locale: "en_US.UTF-8",
- language: "en-US",
- },
- {
- locale: "does-not-exist",
- language: "does-not-exist",
- },
- } {
- t.Run(testCase.locale, func(t *testing.T) {
- assert.Equal(t, testCase.language, localeToLanguage(testCase.locale))
- })
- }
-}
-
func TestPostDeleteHooks(t *testing.T) {
ctx := context.Background()
dir, err := ioutil.TempDir("", "libpod_test_")