diff --git a/pkg/daemon/fsclient.go b/pkg/daemon/fsclient.go index 11368c5238..2b802e9093 100644 --- a/pkg/daemon/fsclient.go +++ b/pkg/daemon/fsclient.go @@ -1,6 +1,7 @@ package daemon import ( + "io/ioutil" "os" ) @@ -14,6 +15,7 @@ type FileSystemClient interface { Symlink(string, string) error Chmod(string, os.FileMode) error Chown(string, int, int) error + WriteFile(filename string, data []byte, perm os.FileMode) error } // FsClient is used to hang the FileSystemClient functions on. @@ -59,6 +61,11 @@ func (f FsClient) Chown(name string, uid, gid int) error { return os.Chown(name, uid, gid) } +// WriteFile implements ioutil.WriteFile +func (f FsClient) WriteFile(filename string, data []byte, perm os.FileMode) error { + return ioutil.WriteFile(filename, data, perm) +} + // NewFileSystemClient creates a new file system client using the default // implementations provided by the os package. func NewFileSystemClient() FileSystemClient { diff --git a/pkg/daemon/fsclient_test.go b/pkg/daemon/fsclient_test.go index 2699be5d6d..ee79108dac 100644 --- a/pkg/daemon/fsclient_test.go +++ b/pkg/daemon/fsclient_test.go @@ -26,6 +26,7 @@ type FsClientMock struct { SymlinkReturns []error ChmodReturns []error ChownReturns []error + WriteFileReturns []error } // updateErrorReturns is a shortcut to pop out the error and shift @@ -86,3 +87,8 @@ func (f FsClientMock) Chmod(name string, mode os.FileMode) error { func (f FsClientMock) Chown(name string, uid, gid int) error { return updateErrorReturns(&f.ChownReturns) } + +// WriteFile provides a mocked implemention +func (f FsClientMock) WriteFile(filename string, data []byte, perm os.FileMode) error { + return updateErrorReturns(&f.WriteFileReturns) +}