Add tmpfs IOFS (#1212)

* Define an interface for IOFS handling. Add no-op and temporary directory implementations.

* Move IOFS stuff out into separate file, add basic tmpfs implementation for linux only

* Switch between directory and tmpfs based on platform and config

* Respect FN_IOFS_OPTS

* Make directory iofs default on all platforms

* At least try to clean up a bit on failure

* Add backout if IOFS creation fails

* Add comment about iofs.Close
This commit is contained in:
Richard Connon
2018-09-17 19:50:43 +01:00
committed by Reed Allman
parent 822fa71fd2
commit 493790dbd2
7 changed files with 188 additions and 101 deletions

View File

@@ -0,0 +1,22 @@
// +build !linux
package agent
import (
"context"
"errors"
)
type tmpfsIOFS struct {
directoryIOFS
}
func (t *tmpfsIOFS) Close() error {
return t.directoryIOFS.Close()
}
func newTmpfsIOFS(ctx context.Context, cfg *Config) (*tmpfsIOFS, error) {
return nil, errors.New("tmpfs IOFS not supported on macOS")
}
var _ iofs = &tmpfsIOFS{}