本文整理匯總了Golang中github.com/cloudfoundry/bosh-init/internal/github.com/cloudfoundry/bosh-utils/system.FileSystem類的典型用法代碼示例。如果您正苦於以下問題:Golang FileSystem類的具體用法?Golang FileSystem怎麽用?Golang FileSystem使用的例子?那麽, 這裏精選的類代碼示例或許可以為您提供幫助。
在下文中一共展示了FileSystem類的15個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Golang代碼示例。
示例1: countFiles
func countFiles(fs system.FileSystem, dir string) (count int) {
fs.Walk(dir, func(path string, info os.FileInfo, err error) error {
count++
return nil
})
return
}
示例2: AbsolutifyPath
func AbsolutifyPath(pathToManifest string, pathToFile string, fs boshsys.FileSystem) (string, error) {
if strings.HasPrefix(pathToFile, "http") {
return pathToFile, nil
}
if strings.HasPrefix(pathToFile, "file:///") || strings.HasPrefix(pathToFile, "/") {
return pathToFile, nil
}
if strings.HasPrefix(pathToFile, "file://~") {
return pathToFile, nil
}
if strings.HasPrefix(pathToFile, "~") {
return fs.ExpandPath(pathToFile)
}
var absPath string
if !strings.HasPrefix(pathToFile, "file://") {
absPath = filepath.Join(filepath.Dir(pathToManifest), pathToFile)
} else {
pathToFile = strings.Replace(pathToFile, "file://", "", 1)
absPath = filepath.Join(filepath.Dir(pathToManifest), pathToFile)
absPath = "file://" + absPath
}
return absPath, nil
}
示例3: New
// New returns a new logger (that writes to the specified file) & the open file handle
// All log levels >= the specified level are written to the specified file.
// User is responsible for closing the returned file handle, unless an error is returned.
func New(level boshlog.LogLevel, filePath string, fileMode os.FileMode, fs boshsys.FileSystem) (boshlog.Logger, boshsys.File, error) {
file, err := fs.OpenFile(filePath, os.O_CREATE|os.O_WRONLY|os.O_APPEND, fileMode)
if err != nil {
return nil, file, bosherr.WrapErrorf(err, "Failed to open log file '%s'", filePath)
}
return boshlog.NewWriterLogger(level, file, file), file, nil
}
示例4: describeDummyPlatform
func describeDummyPlatform() {
var (
platform Platform
collector boshstats.Collector
fs boshsys.FileSystem
cmdRunner boshsys.CmdRunner
dirProvider boshdirs.Provider
devicePathResolver boshdpresolv.DevicePathResolver
logger boshlog.Logger
)
BeforeEach(func() {
collector = &fakestats.FakeCollector{}
fs = fakesys.NewFakeFileSystem()
cmdRunner = fakesys.NewFakeCmdRunner()
dirProvider = boshdirs.NewProvider("/fake-dir")
devicePathResolver = fakedpresolv.NewFakeDevicePathResolver()
logger = boshlog.NewLogger(boshlog.LevelNone)
})
JustBeforeEach(func() {
platform = NewDummyPlatform(
collector,
fs,
cmdRunner,
dirProvider,
devicePathResolver,
logger,
)
})
Describe("GetDefaultNetwork", func() {
It("returns the contents of dummy-defaults-network-settings.json since that's what the dummy cpi writes", func() {
settingsFilePath := "/fake-dir/bosh/dummy-default-network-settings.json"
fs.WriteFileString(settingsFilePath, `{"IP": "1.2.3.4"}`)
network, err := platform.GetDefaultNetwork()
Expect(err).NotTo(HaveOccurred())
Expect(network.IP).To(Equal("1.2.3.4"))
})
})
Describe("GetCertManager", func() {
It("returs a dummy cert manager", func() {
certManager := platform.GetCertManager()
Expect(certManager.UpdateCertificates("")).Should(BeNil())
})
})
}
示例5: deleteFiles
func deleteFiles(fs boshsys.FileSystem, path string, filenamePrefix string) (int, error) {
var deletedFilesCount int
files, err := fs.Glob(fmt.Sprintf("%s%s*", path, filenamePrefix))
if err != nil {
return deletedFilesCount, bosherr.WrapError(err, "Glob command failed")
}
for _, file := range files {
err = fs.RemoveAll(file)
if err != nil {
return deletedFilesCount, bosherr.WrapErrorf(err, "deleting %s failed", file)
}
deletedFilesCount++
}
return deletedFilesCount, err
}
示例6: NewConfig
func NewConfig(fs boshsys.FileSystem) (*Config, error) {
path := os.Getenv("BOSH_INIT_CONFIG_PATH")
if path == "" {
return &Config{}, errors.New("Must provide config file via BOSH_INIT_CONFIG_PATH environment variable")
}
configContents, err := fs.ReadFile(path)
if err != nil {
return &Config{}, err
}
var config Config
err = json.Unmarshal(configContents, &config)
if err != nil {
return &Config{}, err
}
return &config, nil
}
示例7: FailureMessage
return dirInfo.IsDir(), nil
}
func (m beDirMatcher) FailureMessage(actual interface{}) string {
return fmt.Sprintf("Expected `%s' to be a directory", actual)
}
func (m beDirMatcher) NegatedFailureMessage(actual interface{}) string {
return fmt.Sprintf("Expected `%s' to not be a directory", actual)
}
var _ = Describe("tarballCompressor", func() {
var (
dstDir string
cmdRunner boshsys.CmdRunner
fs boshsys.FileSystem
compressor Compressor
)
BeforeEach(func() {
logger := boshlog.NewLogger(boshlog.LevelNone)
cmdRunner = boshsys.NewExecCmdRunner(logger)
fs = boshsys.NewOsFileSystem(logger)
tmpDir, err := fs.TempDir("tarballCompressor-test")
Expect(err).NotTo(HaveOccurred())
dstDir = filepath.Join(tmpDir, "TestCompressor")
compressor = NewTarballCompressor(cmdRunner, fs)
})
BeforeEach(func() {
fs.MkdirAll(dstDir, os.ModePerm)
示例8:
package index_test
import (
. "github.com/cloudfoundry/bosh-init/index"
boshlog "github.com/cloudfoundry/bosh-init/internal/github.com/cloudfoundry/bosh-utils/logger"
boshsys "github.com/cloudfoundry/bosh-init/internal/github.com/cloudfoundry/bosh-utils/system"
. "github.com/cloudfoundry/bosh-init/internal/github.com/onsi/ginkgo"
. "github.com/cloudfoundry/bosh-init/internal/github.com/onsi/gomega"
)
var _ = Describe("FileIndex", func() {
var (
fs boshsys.FileSystem
indexFilePath string
index FileIndex
)
BeforeEach(func() {
logger := boshlog.NewLogger(boshlog.LevelNone)
fs = boshsys.NewOsFileSystem(logger)
file, err := fs.TempFile("file-index")
Expect(err).ToNot(HaveOccurred())
indexFilePath = file.Name()
err = file.Close()
Expect(err).ToNot(HaveOccurred())
err = fs.RemoveAll(indexFilePath)
Expect(err).ToNot(HaveOccurred())
示例9:
bitestutils "github.com/cloudfoundry/bosh-init/testutils"
)
const (
stageTimePattern = "\\(\\d{2}:\\d{2}:\\d{2}\\)"
stageFinishedPattern = "\\.\\.\\. Finished " + stageTimePattern + "$"
)
var _ = Describe("bosh-init", func() {
var (
logger boshlog.Logger
fileSystem boshsys.FileSystem
sshCmdRunner CmdRunner
cmdEnv map[string]string
quietCmdEnv map[string]string
testEnv Environment
config *Config
instanceSSH InstanceSSH
instanceUsername = "vcap"
instancePassword = "sshpassword" // encrypted value must be in the manifest: resource_pool.env.bosh.password
instanceIP = "10.244.0.42"
)
var readLogFile = func(logPath string) (stdout string) {
stdout, _, exitCode, err := sshCmdRunner.RunCommand(cmdEnv, "cat", logPath)
Expect(err).ToNot(HaveOccurred())
Expect(exitCode).To(Equal(0))
return stdout
}
var deleteLogFile = func(logPath string) {
示例10:
"io/ioutil"
"os"
"path/filepath"
"github.com/cloudfoundry/bosh-init/cmd"
boshlog "github.com/cloudfoundry/bosh-init/internal/github.com/cloudfoundry/bosh-utils/logger"
boshsys "github.com/cloudfoundry/bosh-init/internal/github.com/cloudfoundry/bosh-utils/system"
. "github.com/cloudfoundry/bosh-init/internal/github.com/onsi/ginkgo"
. "github.com/cloudfoundry/bosh-init/internal/github.com/onsi/gomega"
)
var _ = Describe("TempRootConfigurator", func() {
Describe("PrepareAndSetUpTempRoot", func() {
var fs boshsys.FileSystem
var testTempDir string
var tempRoot string
var logger boshlog.Logger
BeforeEach(func() {
var err error
testTempDir, err = ioutil.TempDir("", "temp_root_configurator_test")
Expect(err).ToNot(HaveOccurred())
tempRoot = filepath.Join(testTempDir, "my-temp-root")
logger = boshlog.NewLogger(boshlog.LevelNone)
fs = boshsys.NewOsFileSystem(logger)
})
AfterEach(func() {
示例11:
BeforeEach(func() {
outBuffer = bytes.NewBufferString("")
errBuffer = bytes.NewBufferString("")
logger = boshlog.NewWriterLogger(boshlog.LevelDebug, outBuffer, errBuffer)
fakeSHA1Calculator = fakebicrypto.NewFakeSha1Calculator()
renderedJobList = NewRenderedJobList()
})
Describe("Compress", func() {
Context("with a real fs & compressor", func() {
var (
fs boshsys.FileSystem
cmdRunner boshsys.CmdRunner
compressor boshcmd.Compressor
)
BeforeEach(func() {
fs = boshsys.NewOsFileSystem(logger)
cmdRunner = boshsys.NewExecCmdRunner(logger)
compressor = boshcmd.NewTarballCompressor(cmdRunner, fs)
renderedJobListCompressor = NewRenderedJobListCompressor(fs, compressor, fakeSHA1Calculator, logger)
})
It("copies rendered jobs into a new temp dir, compresses the temp dir, and wraps it in a RenderedJobListArchive", func() {
// create rendered job with 2 rendered scripts
renderedJobDir0, err := fs.TempDir("RenderedJobListCompressorTest")
示例12:
import (
"time"
. "github.com/cloudfoundry/bosh-init/internal/github.com/onsi/ginkgo"
. "github.com/cloudfoundry/bosh-init/internal/github.com/onsi/gomega"
. "github.com/cloudfoundry/bosh-init/internal/github.com/cloudfoundry/bosh-agent/infrastructure/devicepathresolver"
boshsettings "github.com/cloudfoundry/bosh-init/internal/github.com/cloudfoundry/bosh-agent/settings"
boshsys "github.com/cloudfoundry/bosh-init/internal/github.com/cloudfoundry/bosh-utils/system"
fakesys "github.com/cloudfoundry/bosh-init/internal/github.com/cloudfoundry/bosh-utils/system/fakes"
)
var _ = Describe("mappedDevicePathResolver", func() {
var (
fs boshsys.FileSystem
diskSettings boshsettings.DiskSettings
resolver DevicePathResolver
)
BeforeEach(func() {
fs = fakesys.NewFakeFileSystem()
resolver = NewMappedDevicePathResolver(time.Second, fs)
diskSettings = boshsettings.DiskSettings{
Path: "/dev/sda",
}
})
Context("when a matching /dev/xvdX device is found", func() {
BeforeEach(func() {
fs.WriteFile("/dev/xvda", []byte{})
fs.WriteFile("/dev/vda", []byte{})
示例13:
"os"
"path/filepath"
. "github.com/cloudfoundry/bosh-init/internal/github.com/onsi/ginkgo"
. "github.com/cloudfoundry/bosh-init/internal/github.com/onsi/gomega"
"github.com/cloudfoundry/bosh-init/internal/github.com/stretchr/testify/assert"
. "github.com/cloudfoundry/bosh-init/internal/github.com/cloudfoundry/bosh-utils/fileutil"
boshlog "github.com/cloudfoundry/bosh-init/internal/github.com/cloudfoundry/bosh-utils/logger"
boshsys "github.com/cloudfoundry/bosh-init/internal/github.com/cloudfoundry/bosh-utils/system"
)
var _ = Describe("cpCopier", func() {
var (
fs boshsys.FileSystem
cmdRunner boshsys.CmdRunner
cpCopier Copier
)
BeforeEach(func() {
logger := boshlog.NewLogger(boshlog.LevelNone)
fs = boshsys.NewOsFileSystem(logger)
cmdRunner = boshsys.NewExecCmdRunner(logger)
cpCopier = NewCpCopier(cmdRunner, fs, logger)
})
Describe("FilteredCopyToTemp", func() {
copierFixtureSrcDir := func() string {
pwd, err := os.Getwd()
Expect(err).ToNot(HaveOccurred())
return filepath.Join(pwd, "test_assets", "test_filtered_copy_to_temp")
示例14: GenerateDeploymentManifest
func GenerateDeploymentManifest(deploymentManifestFilePath string, fs boshsys.FileSystem, manifestContents string) error {
return fs.WriteFileString(deploymentManifestFilePath, manifestContents)
}
示例15:
package util_test
import (
"github.com/cloudfoundry/bosh-init/common/util"
boshlog "github.com/cloudfoundry/bosh-init/internal/github.com/cloudfoundry/bosh-utils/logger"
boshsys "github.com/cloudfoundry/bosh-init/internal/github.com/cloudfoundry/bosh-utils/system"
. "github.com/cloudfoundry/bosh-init/internal/github.com/onsi/ginkgo"
. "github.com/cloudfoundry/bosh-init/internal/github.com/onsi/gomega"
)
var _ = Describe("AbsolutifyPath", func() {
var realfs boshsys.FileSystem
var fakeManifestPath, fakeFilePath string
BeforeEach(func() {
logger := boshlog.NewLogger(boshlog.LevelNone)
realfs = boshsys.NewOsFileSystem(logger)
fakeManifestPath = "/fake/manifest/path/manifest.yml"
})
Context("File path is not a url", func() {
Context("File path is relative", func() {
Context("File path begins with a series of ../", func() {
It("joins file path to the manifest directory", func() {
fakeFilePath = "../fake/relative/path/file.tgz"
Expect(util.AbsolutifyPath(fakeManifestPath, fakeFilePath, realfs)).To(
Equal("/fake/manifest/fake/relative/path/file.tgz"))
})
})
Context("File is located in same directory as manifest or subdirectory", func() {
It("makes the file path relative to the manifest directory", func() {