From 1f651f5072f4713e3f88e3e344967a523630e05a Mon Sep 17 00:00:00 2001 From: Travis Rhoden Date: Mon, 26 Aug 2019 13:17:32 -0600 Subject: [PATCH] copy exec file to preserve history --- pkg/util/mount/{ => exec}/exec.go | 0 pkg/util/mount/exec/fake_exec.go | 53 +++++++++++++++++++++++++++++++ 2 files changed, 53 insertions(+) rename pkg/util/mount/{ => exec}/exec.go (100%) create mode 100644 pkg/util/mount/exec/fake_exec.go diff --git a/pkg/util/mount/exec.go b/pkg/util/mount/exec/exec.go similarity index 100% rename from pkg/util/mount/exec.go rename to pkg/util/mount/exec/exec.go diff --git a/pkg/util/mount/exec/fake_exec.go b/pkg/util/mount/exec/fake_exec.go new file mode 100644 index 00000000000..30502b7028e --- /dev/null +++ b/pkg/util/mount/exec/fake_exec.go @@ -0,0 +1,53 @@ +/* +Copyright 2017 The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package mount + +import "k8s.io/utils/exec" + +// NewOSExec returns a new Exec interface implementation based on exec() +func NewOSExec() Exec { + return &osExec{} +} + +// Real implementation of Exec interface that uses simple utils.Exec +type osExec struct{} + +var _ Exec = &osExec{} + +func (e *osExec) Run(cmd string, args ...string) ([]byte, error) { + exe := exec.New() + return exe.Command(cmd, args...).CombinedOutput() +} + +// NewFakeExec returns a new FakeExec +func NewFakeExec(run runHook) *FakeExec { + return &FakeExec{runHook: run} +} + +// FakeExec for testing. +type FakeExec struct { + runHook runHook +} +type runHook func(cmd string, args ...string) ([]byte, error) + +// Run executes the command using the optional runhook, if given +func (f *FakeExec) Run(cmd string, args ...string) ([]byte, error) { + if f.runHook != nil { + return f.runHook(cmd, args...) + } + return nil, nil +}