作者:Bosh-for-Cp
项目:bosh-260
func init() {
Describe("ReleaseApplySpec", func() {
var (
platform *fakeplatform.FakePlatform
action ReleaseApplySpecAction
)
BeforeEach(func() {
platform = fakeplatform.NewFakePlatform()
action = NewReleaseApplySpec(platform)
})
It("is synchronous", func() {
Expect(action.IsAsynchronous()).To(BeFalse())
})
It("is not persistent", func() {
Expect(action.IsPersistent()).To(BeFalse())
})
It("run", func() {
err := platform.GetFs().WriteFileString("/var/vcap/micro/apply_spec.json", `{"json":["objects"]}`)
Expect(err).ToNot(HaveOccurred())
value, err := action.Run()
Expect(err).ToNot(HaveOccurred())
Expect(value).To(Equal(map[string]interface{}{"json": []interface{}{"objects"}}))
})
})
}
作者:nkuaca
项目:bos
func init() {
Describe("Testing with Ginkgo", func() {
var (
vsphere Infrastructure
platform *fakeplatform.FakePlatform
)
BeforeEach(func() {
platform = fakeplatform.NewFakePlatform()
})
JustBeforeEach(func() {
vsphere = NewVsphereInfrastructure(platform)
})
It("vsphere get settings", func() {
platform.GetFileContentsFromCDROMContents = []byte(`{"agent_id": "123"}`)
settings, err := vsphere.GetSettings()
Expect(err).NotTo(HaveOccurred())
Expect(platform.GetFileContentsFromCDROMPath).To(Equal("env"))
Expect(settings.AgentId).To(Equal("123"))
})
It("vsphere setup networking", func() {
networks := boshsettings.Networks{"bosh": boshsettings.Network{}}
vsphere.SetupNetworking(networks)
Expect(platform.SetupManualNetworkingNetworks).To(Equal(networks))
})
It("vsphere get ephemeral disk path", func() {
platform.NormalizeDiskPathRealPath = "/dev/sdb"
platform.NormalizeDiskPathFound = true
realPath, found := vsphere.GetEphemeralDiskPath("does not matter")
Expect(found).To(Equal(true))
Expect(realPath).To(Equal("/dev/sdb"))
Expect(platform.NormalizeDiskPathPath).To(Equal("/dev/sdb"))
})
})
}
作者:velankanisy
项目:bos
func init() {
Describe("Testing with Ginkgo", func() {
var (
logger boshlog.Logger
platform *fakeplatform.FakePlatform
)
BeforeEach(func() {
platform = fakeplatform.NewFakePlatform()
logger = boshlog.NewLogger(boshlog.LEVEL_NONE)
})
It("list disk should be synchronous", func() {
settings := &fakesettings.FakeSettingsService{}
action := NewListDisk(settings, platform, logger)
Expect(action.IsAsynchronous()).To(BeFalse())
})
It("is not persistent", func() {
settings := &fakesettings.FakeSettingsService{}
action := NewListDisk(settings, platform, logger)
Expect(action.IsPersistent()).To(BeFalse())
})
It("list disk run", func() {
settings := &fakesettings.FakeSettingsService{
Disks: boshsettings.Disks{
Persistent: map[string]string{
"volume-1": "/dev/sda",
"volume-2": "/dev/sdb",
"volume-3": "/dev/sdc",
},
},
}
platform.MountedDevicePaths = []string{"/dev/sdb", "/dev/sdc"}
action := NewListDisk(settings, platform, logger)
value, err := action.Run()
Expect(err).ToNot(HaveOccurred())
boshassert.MatchesJsonString(GinkgoT(), value, `["volume-2","volume-3"]`)
})
})
}
作者:Bosh-for-Cp
项目:bosh-260
func init() {
Describe("ListDisk", func() {
var (
settingsService *fakesettings.FakeSettingsService
platform *fakeplatform.FakePlatform
logger boshlog.Logger
action ListDiskAction
)
BeforeEach(func() {
settingsService = &fakesettings.FakeSettingsService{}
platform = fakeplatform.NewFakePlatform()
logger = boshlog.NewLogger(boshlog.LevelNone)
action = NewListDisk(settingsService, platform, logger)
})
It("list disk should be synchronous", func() {
Expect(action.IsAsynchronous()).To(BeFalse())
})
It("is not persistent", func() {
Expect(action.IsPersistent()).To(BeFalse())
})
It("list disk run", func() {
platform.MountedDevicePaths = []string{"/dev/sdb", "/dev/sdc"}
settingsService.Settings.Disks = boshsettings.Disks{
Persistent: map[string]string{
"volume-1": "/dev/sda",
"volume-2": "/dev/sdb",
"volume-3": "/dev/sdc",
},
}
value, err := action.Run()
Expect(err).ToNot(HaveOccurred())
boshassert.MatchesJSONString(GinkgoT(), value, `["volume-2","volume-3"]`)
})
})
}
作者:Jane4PK
项目:bos
func init() {
Describe("concreteV1Service", func() {
var (
fs *fakesys.FakeFileSystem
platform *fakeplatform.FakePlatform
specPath = "/spec.json"
service V1Service
)
BeforeEach(func() {
fs = fakesys.NewFakeFileSystem()
platform = fakeplatform.NewFakePlatform()
service = NewConcreteV1Service(fs, platform, specPath)
})
Describe("Get", func() {
Context("when filesystem has a spec file", func() {
BeforeEach(func() {
fs.WriteFileString(specPath, `{"deployment":"fake-deployment-name"}`)
})
It("reads spec from filesystem", func() {
spec, err := service.Get()
Expect(err).ToNot(HaveOccurred())
Expect(spec).To(Equal(V1ApplySpec{Deployment: "fake-deployment-name"}))
})
It("returns error if reading spec from filesystem errs", func() {
fs.ReadFileError = errors.New("fake-read-error")
spec, err := service.Get()
Expect(err).To(HaveOccurred())
Expect(err.Error()).To(ContainSubstring("fake-read-error"))
Expect(spec).To(Equal(V1ApplySpec{}))
})
})
Context("when filesystem does not have a spec file", func() {
It("reads spec from filesystem", func() {
spec, err := service.Get()
Expect(err).ToNot(HaveOccurred())
Expect(spec).To(Equal(V1ApplySpec{}))
})
})
})
Describe("Set", func() {
newSpec := V1ApplySpec{Deployment: "fake-deployment-name"}
It("writes spec to filesystem", func() {
err := service.Set(newSpec)
Expect(err).ToNot(HaveOccurred())
specPathStats := fs.GetFileTestStat(specPath)
Expect(specPathStats).ToNot(BeNil())
boshassert.MatchesJSONBytes(GinkgoT(), newSpec, specPathStats.Content)
})
It("returns error if writing spec to filesystem errs", func() {
fs.WriteToFileError = errors.New("fake-write-error")
err := service.Set(newSpec)
Expect(err).To(HaveOccurred())
Expect(err.Error()).To(ContainSubstring("fake-write-error"))
})
})
Describe("ResolveDynamicNetworks", func() {
Context("when there is are no dynamic networks", func() {
unresolvedSpec := V1ApplySpec{
Deployment: "fake-deployment",
NetworkSpecs: map[string]NetworkSpec{
"fake-net": NetworkSpec{
Fields: map[string]interface{}{"ip": "fake-net-ip"},
},
},
}
It("returns spec without modifying any networks", func() {
spec, err := service.ResolveDynamicNetworks(unresolvedSpec)
Expect(err).ToNot(HaveOccurred())
Expect(spec).To(Equal(V1ApplySpec{
Deployment: "fake-deployment",
NetworkSpecs: map[string]NetworkSpec{
"fake-net": NetworkSpec{
Fields: map[string]interface{}{"ip": "fake-net-ip"},
},
},
}))
})
})
Context("when there is one dynamic network", func() {
unresolvedSpec := V1ApplySpec{
Deployment: "fake-deployment",
NetworkSpecs: map[string]NetworkSpec{
"fake-net1": NetworkSpec{
Fields: map[string]interface{}{
"ip": "fake-net1-ip",
"netmask": "fake-net1-netmask",
//.........这里部分代码省略.........
作者:amulya
项目:bosh-cloudstack-cp
import (
"time"
. "github.com/onsi/ginkgo"
. "github.com/onsi/gomega"
. "bosh/infrastructure"
boshdpresolv "bosh/infrastructure/devicepathresolver"
boshlog "bosh/logger"
fakeplatform "bosh/platform/fakes"
)
var _ = Describe("Provider", func() {
var (
logger boshlog.Logger
platform *fakeplatform.FakePlatform
provider Provider
)
BeforeEach(func() {
platform = fakeplatform.NewFakePlatform()
logger = boshlog.NewLogger(boshlog.LevelNone)
provider = NewProvider(logger, platform)
})
Describe("Get", func() {
It("returns aws infrastructure", func() {
metadataService := NewConcreteMetadataService(
"http://169.254.169.254",
NewDigDNSResolver(logger),
)
作者:amulya
项目:bosh-cloudstack-cp
. "github.com/onsi/ginkgo"
. "github.com/onsi/gomega"
boshlog "bosh/logger"
. "bosh/mbus"
"bosh/micro"
fakeplatform "bosh/platform/fakes"
boshdir "bosh/settings/directories"
fakesettings "bosh/settings/fakes"
)
var _ = Describe("MbusHandlerProvider", func() {
var (
settingsService *fakesettings.FakeSettingsService
platform *fakeplatform.FakePlatform
dirProvider boshdir.DirectoriesProvider
logger boshlog.Logger
provider MbusHandlerProvider
)
BeforeEach(func() {
settingsService = &fakesettings.FakeSettingsService{}
logger = boshlog.NewLogger(boshlog.LevelNone)
platform = fakeplatform.NewFakePlatform()
dirProvider = boshdir.NewDirectoriesProvider("/var/vcap")
provider = NewHandlerProvider(settingsService, logger)
})
Describe("Get", func() {
It("returns nats handler", func() {
settingsService.Settings.Mbus = "nats://lol"
作者:Jane4PK
项目:bos
func init() {
Describe("bootstrap", func() {
Describe("Run", func() {
var (
inf *fakeinf.FakeInfrastructure
platform *fakeplatform.FakePlatform
dirProvider boshdir.DirectoriesProvider
settingsServiceProvider *fakesettings.FakeSettingsServiceProvider
settingsService *fakesettings.FakeSettingsService
)
BeforeEach(func() {
inf = &fakeinf.FakeInfrastructure{
GetEphemeralDiskPathFound: true,
GetEphemeralDiskPathRealPath: "/dev/sdz",
}
platform = fakeplatform.NewFakePlatform()
dirProvider = boshdir.NewDirectoriesProvider("/var/vcap")
settingsServiceProvider = fakesettings.NewServiceProvider()
settingsService = settingsServiceProvider.NewServiceSettingsService
})
bootstrap := func() (boshsettings.Service, error) {
logger := boshlog.NewLogger(boshlog.LevelNone)
return New(inf, platform, dirProvider, settingsServiceProvider, logger).Run()
}
It("sets up runtime configuration", func() {
_, err := bootstrap()
Expect(err).NotTo(HaveOccurred())
Expect(platform.SetupRuntimeConfigurationWasInvoked).To(BeTrue())
})
It("sets up ssh", func() {
_, err := bootstrap()
Expect(err).NotTo(HaveOccurred())
Expect(inf.SetupSshUsername).To(Equal("vcap"))
})
It("sets up hostname", func() {
settingsService.Settings.AgentID = "foo-bar-baz-123"
_, err := bootstrap()
Expect(err).NotTo(HaveOccurred())
Expect(platform.SetupHostnameHostname).To(Equal("foo-bar-baz-123"))
})
It("returns the settings service", func() {
settingsService, err := bootstrap()
Expect(err).NotTo(HaveOccurred())
Expect(settingsService).To(Equal(settingsService))
Expect(settingsServiceProvider.NewServiceFs).To(Equal(platform.GetFs()))
Expect(settingsServiceProvider.NewServiceDir).To(Equal(dirProvider.BoshDir()))
fetchedSettings, err := settingsServiceProvider.NewServiceFetcher()
Expect(err).NotTo(HaveOccurred())
Expect(fetchedSettings).To(Equal(inf.Settings))
})
It("fetches initial settings", func() {
_, err := bootstrap()
Expect(err).NotTo(HaveOccurred())
Expect(settingsService.SettingsWereLoaded).To(BeTrue())
})
It("returns error from loading initial settings", func() {
settingsService.LoadSettingsError = errors.New("fake-load-error")
_, err := bootstrap()
Expect(err).To(HaveOccurred())
Expect(err.Error()).To(ContainSubstring("fake-load-error"))
})
It("sets up networking", func() {
networks := boshsettings.Networks{
"bosh": boshsettings.Network{},
}
settingsService.Settings.Networks = networks
_, err := bootstrap()
Expect(err).NotTo(HaveOccurred())
Expect(inf.SetupNetworkingNetworks).To(Equal(networks))
})
It("sets up ephemeral disk", func() {
settingsService.Disks = boshsettings.Disks{
Ephemeral: "fake-ephemeral-disk-setting",
}
inf.GetEphemeralDiskPathRealPath = "/dev/sda"
inf.GetEphemeralDiskPathFound = true
_, err := bootstrap()
Expect(err).NotTo(HaveOccurred())
Expect(platform.SetupEphemeralDiskWithPathDevicePath).To(Equal("/dev/sda"))
Expect(inf.GetEphemeralDiskPathDevicePath).To(Equal("fake-ephemeral-disk-setting"))
})
//.........这里部分代码省略.........
作者:Bosh-for-Cp
项目:bosh-260
func init() {
Describe("concreteServiceProvider", func() {
var (
platform *fakeplatform.FakePlatform
)
Describe("NewService", func() {
It("returns service with settings.json as its settings path", func() {
// Cannot compare fetcher functions since function comparison is problematic
fs := fakesys.NewFakeFileSystem()
logger := boshlog.NewLogger(boshlog.LevelNone)
service := NewServiceProvider().NewService(fs, "/setting/path", nil, platform, logger)
Expect(service).To(Equal(NewService(fs, "/setting/path/settings.json", nil, platform, logger)))
})
})
})
Describe("concreteService", func() {
var (
fs *fakesys.FakeFileSystem
platform *fakeplatform.FakePlatform
)
BeforeEach(func() {
fs = fakesys.NewFakeFileSystem()
platform = fakeplatform.NewFakePlatform()
})
buildService := func(fetcher SettingsFetcher) (Service, *fakesys.FakeFileSystem) {
logger := boshlog.NewLogger(boshlog.LevelNone)
service := NewService(fs, "/setting/path", fetcher, platform, logger)
return service, fs
}
Describe("LoadSettings", func() {
var (
fetchedSettings Settings
fetcherFuncErr error
service Service
)
BeforeEach(func() {
fetchedSettings = Settings{}
fetcherFuncErr = nil
})
JustBeforeEach(func() {
fetcherFunc := func() (Settings, error) { return fetchedSettings, fetcherFuncErr }
service, fs = buildService(fetcherFunc)
})
Context("when settings fetcher succeeds fetching settings", func() {
BeforeEach(func() {
fetchedSettings = Settings{AgentID: "some-new-agent-id"}
})
Context("when settings contain at most one dynamic network", func() {
BeforeEach(func() {
fetchedSettings.Networks = Networks{
"fake-net-1": Network{Type: NetworkTypeDynamic},
}
})
It("updates the service with settings from the fetcher", func() {
err := service.LoadSettings()
Expect(err).NotTo(HaveOccurred())
Expect(service.GetSettings().AgentID).To(Equal("some-new-agent-id"))
})
It("persists settings to the settings file", func() {
err := service.LoadSettings()
Expect(err).NotTo(HaveOccurred())
json, err := json.Marshal(fetchedSettings)
Expect(err).NotTo(HaveOccurred())
fileContent, err := fs.ReadFile("/setting/path")
Expect(err).NotTo(HaveOccurred())
Expect(fileContent).To(Equal(json))
})
It("returns any error from writing to the setting file", func() {
fs.WriteToFileError = errors.New("fs-write-file-error")
err := service.LoadSettings()
Expect(err).To(HaveOccurred())
Expect(err.Error()).To(ContainSubstring("fs-write-file-error"))
})
})
Context("when settings contain multiple dynamic networks", func() {
BeforeEach(func() {
fetchedSettings.Networks = Networks{
"fake-net-1": Network{Type: NetworkTypeDynamic},
"fake-net-2": Network{Type: NetworkTypeDynamic},
}
})
It("returns error because multiple dynamic networks are not supported", func() {
err := service.LoadSettings()
//.........这里部分代码省略.........
作者:Jane4PK
项目:bos
package blobstore_test
import (
. "github.com/onsi/ginkgo"
. "github.com/onsi/gomega"
. "bosh/blobstore"
fakeplatform "bosh/platform/fakes"
boshsettings "bosh/settings"
boshdir "bosh/settings/directories"
boshuuid "bosh/uuid"
)
var _ = Describe("Provider", func() {
var (
platform *fakeplatform.FakePlatform
provider Provider
)
BeforeEach(func() {
platform = fakeplatform.NewFakePlatform()
dirProvider := boshdir.NewDirectoriesProvider("/var/vcap")
provider = NewProvider(platform, dirProvider)
})
Describe("Get", func() {
It("get dummy", func() {
blobstore, err := provider.Get(boshsettings.Blobstore{
Type: boshsettings.BlobstoreTypeDummy,
})
Expect(err).ToNot(HaveOccurred())
Expect(blobstore).ToNot(BeNil())
作者:Bosh-for-Cp
项目:bosh-260
import (
. "github.com/onsi/ginkgo"
. "github.com/onsi/gomega"
. "bosh/infrastructure"
fakedpresolv "bosh/infrastructure/devicepathresolver/fakes"
boshlog "bosh/logger"
fakeplatform "bosh/platform/fakes"
boshsettings "bosh/settings"
)
var _ = Describe("vSphere Infrastructure", func() {
var (
logger boshlog.Logger
vsphere Infrastructure
platform *fakeplatform.FakePlatform
devicePathResolver *fakedpresolv.FakeDevicePathResolver
)
BeforeEach(func() {
platform = fakeplatform.NewFakePlatform()
devicePathResolver = fakedpresolv.NewFakeDevicePathResolver()
logger = boshlog.NewLogger(boshlog.LevelNone)
})
JustBeforeEach(func() {
vsphere = NewVsphereInfrastructure(platform, devicePathResolver, logger)
})
Describe("GetSettings", func() {
It("vsphere get settings", func() {
作者:amulya
项目:bosh-cloudstack-cp
fakejobsuper "bosh/jobsupervisor/fakes"
boshlog "bosh/logger"
fakenotif "bosh/notification/fakes"
fakeplatform "bosh/platform/fakes"
boshntp "bosh/platform/ntp"
fakesettings "bosh/settings/fakes"
)
var _ = Describe("concreteFactory", func() {
var (
settingsService *fakesettings.FakeSettingsService
platform *fakeplatform.FakePlatform
blobstore *fakeblobstore.FakeBlobstore
taskService *faketask.FakeService
notifier *fakenotif.FakeNotifier
applier *fakeappl.FakeApplier
compiler *fakecomp.FakeCompiler
jobSupervisor *fakejobsuper.FakeJobSupervisor
specService *fakeas.FakeV1Service
drainScriptProvider boshdrain.DrainScriptProvider
factory Factory
logger boshlog.Logger
)
BeforeEach(func() {
settingsService = &fakesettings.FakeSettingsService{}
platform = fakeplatform.NewFakePlatform()
blobstore = &fakeblobstore.FakeBlobstore{}
taskService = &faketask.FakeService{}
notifier = fakenotif.NewFakeNotifier()
applier = fakeappl.NewFakeApplier()
compiler = fakecomp.NewFakeCompiler()
作者:Bosh-for-Cp
项目:bosh-260
import (
"errors"
. "github.com/onsi/ginkgo"
. "github.com/onsi/gomega"
. "bosh/agent/action"
fakeplatform "bosh/platform/fakes"
fakesettings "bosh/settings/fakes"
)
var _ = Describe("prepareConfigureNetworks", func() {
var (
action PrepareConfigureNetworksAction
platform *fakeplatform.FakePlatform
settingsService *fakesettings.FakeSettingsService
)
BeforeEach(func() {
platform = fakeplatform.NewFakePlatform()
settingsService = &fakesettings.FakeSettingsService{}
action = NewPrepareConfigureNetworks(platform, settingsService)
})
It("is synchronous", func() {
Expect(action.IsAsynchronous()).To(BeFalse())
})
It("is not persistent", func() {
Expect(action.IsPersistent()).To(BeFalse())
作者:punalpate
项目:bos
func init() {
var (
platform *fakeplatform.FakePlatform
fakeDevicePathResolver *fakedpresolv.FakeDevicePathResolver
)
BeforeEach(func() {
platform = fakeplatform.NewFakePlatform()
fakeDevicePathResolver = fakedpresolv.NewFakeDevicePathResolver(
1*time.Millisecond,
platform.GetFs(),
)
})
Describe("AWS Infrastructure", func() {
Describe("SetupSsh", func() {
var (
ts *httptest.Server
aws Infrastructure
)
const expectedKey = "some public key"
BeforeEach(func() {
handler := http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
Expect(r.Method).To(Equal("GET"))
Expect(r.URL.Path).To(Equal("/latest/meta-data/public-keys/0/openssh-key"))
w.Write([]byte(expectedKey))
})
ts = httptest.NewServer(handler)
})
AfterEach(func() {
ts.Close()
})
It("gets the public key and sets up ssh via the platform", func() {
aws = NewAwsInfrastructure(ts.URL, &FakeDNSResolver{}, platform, fakeDevicePathResolver)
err := aws.SetupSsh("vcap")
Expect(err).NotTo(HaveOccurred())
Expect(platform.SetupSshPublicKey).To(Equal(expectedKey))
Expect(platform.SetupSshUsername).To(Equal("vcap"))
})
})
Describe("GetSettings", func() {
var (
settingsJSON string
expectedSettings boshsettings.Settings
)
BeforeEach(func() {
settingsJSON = `{
"agent_id": "my-agent-id",
"blobstore": {
"options": {
"bucket_name": "george",
"encryption_key": "optional encryption key",
"access_key_id": "optional access key id",
"secret_access_key": "optional secret access key"
},
"provider": "s3"
},
"disks": {
"ephemeral": "/dev/sdb",
"persistent": {
"vol-xxxxxx": "/dev/sdf"
},
"system": "/dev/sda1"
},
"env": {
"bosh": {
"password": "some encrypted password"
}
},
"networks": {
"netA": {
"default": ["dns", "gateway"],
"ip": "ww.ww.ww.ww",
"dns": [
"xx.xx.xx.xx",
"yy.yy.yy.yy"
]
},
"netB": {
"dns": [
"zz.zz.zz.zz"
]
}
},
"mbus": "https://vcap:[email protected]:6868",
"ntp": [
"0.north-america.pool.ntp.org",
"1.north-america.pool.ntp.org"
],
"vm": {
"name": "vm-abc-def"
}
}`
//.........这里部分代码省略.........
作者:punalpate
项目:bos
func init() {
Describe("vSphere Infrastructure", func() {
var (
logger boshlog.Logger
vsphere Infrastructure
platform *fakeplatform.FakePlatform
fakeDevicePathResolver *fakedpresolv.FakeDevicePathResolver
)
BeforeEach(func() {
platform = fakeplatform.NewFakePlatform()
fakeDevicePathResolver = fakedpresolv.NewFakeDevicePathResolver(1*time.Millisecond, platform.GetFs())
logger = boshlog.NewLogger(boshlog.LevelNone)
})
JustBeforeEach(func() {
vsphere = NewVsphereInfrastructure(platform, fakeDevicePathResolver, logger)
})
Describe("GetSettings", func() {
It("vsphere get settings", func() {
platform.GetFileContentsFromCDROMContents = []byte(`{"agent_id": "123"}`)
settings, err := vsphere.GetSettings()
Expect(err).NotTo(HaveOccurred())
Expect(platform.GetFileContentsFromCDROMPath).To(Equal("env"))
Expect(settings.AgentID).To(Equal("123"))
})
})
Describe("SetupNetworking", func() {
It("vsphere setup networking", func() {
networks := boshsettings.Networks{"bosh": boshsettings.Network{}}
vsphere.SetupNetworking(networks)
Expect(platform.SetupManualNetworkingNetworks).To(Equal(networks))
})
})
Describe("GetEphemeralDiskPath", func() {
It("vsphere get ephemeral disk path", func() {
realPath, found := vsphere.GetEphemeralDiskPath("does not matter")
Expect(found).To(Equal(true))
Expect(realPath).To(Equal("/dev/sdb"))
})
})
Describe("MountPersistentDisk", func() {
BeforeEach(func() {
fakeDevicePathResolver.RealDevicePath = "fake-real-device-path"
})
It("creates the mount directory with the correct permissions", func() {
vsphere.MountPersistentDisk("fake-volume-id", "/mnt/point")
mountPoint := platform.Fs.GetFileTestStat("/mnt/point")
Expect(mountPoint.FileType).To(Equal(fakesys.FakeFileTypeDir))
Expect(mountPoint.FileMode).To(Equal(os.FileMode(0700)))
})
It("partitions the disk", func() {
vsphere.MountPersistentDisk("fake-volume-id", "/mnt/point")
Expect(platform.FakeDiskManager.FakePartitioner.PartitionDevicePath).To(Equal("fake-real-device-path"))
partitions := []boshdisk.Partition{
{Type: boshdisk.PartitionTypeLinux},
}
Expect(platform.FakeDiskManager.FakePartitioner.PartitionPartitions).To(Equal(partitions))
})
It("formats the disk", func() {
vsphere.MountPersistentDisk("fake-volume-id", "/mnt/point")
Expect(platform.FakeDiskManager.FakeFormatter.FormatPartitionPaths).To(Equal([]string{"fake-real-device-path1"}))
Expect(platform.FakeDiskManager.FakeFormatter.FormatFsTypes).To(Equal([]boshdisk.FileSystemType{boshdisk.FileSystemExt4}))
})
It("mounts the disk", func() {
vsphere.MountPersistentDisk("fake-volume-id", "/mnt/point")
Expect(platform.FakeDiskManager.FakeMounter.MountPartitionPaths).To(Equal([]string{"fake-real-device-path1"}))
Expect(platform.FakeDiskManager.FakeMounter.MountMountPoints).To(Equal([]string{"/mnt/point"}))
})
})
})
}
作者:velankanisy
项目:bos
func init() {
Describe("concreteFactory", func() {
var (
settings *fakesettings.FakeSettingsService
platform *fakeplatform.FakePlatform
infrastructure *fakeinfrastructure.FakeInfrastructure
blobstore *fakeblobstore.FakeBlobstore
taskService *faketask.FakeService
notifier *fakenotif.FakeNotifier
applier *fakeappl.FakeApplier
compiler *fakecomp.FakeCompiler
jobSupervisor *fakejobsuper.FakeJobSupervisor
specService *fakeas.FakeV1Service
drainScriptProvider boshdrain.DrainScriptProvider
factory Factory
logger boshlog.Logger
)
BeforeEach(func() {
settings = &fakesettings.FakeSettingsService{}
platform = fakeplatform.NewFakePlatform()
infrastructure = fakeinfrastructure.NewFakeInfrastructure()
blobstore = &fakeblobstore.FakeBlobstore{}
taskService = &faketask.FakeService{}
notifier = fakenotif.NewFakeNotifier()
applier = fakeappl.NewFakeApplier()
compiler = fakecomp.NewFakeCompiler()
jobSupervisor = fakejobsuper.NewFakeJobSupervisor()
specService = fakeas.NewFakeV1Service()
drainScriptProvider = boshdrain.NewConcreteDrainScriptProvider(nil, nil, platform.GetDirProvider())
logger = boshlog.NewLogger(boshlog.LEVEL_NONE)
})
JustBeforeEach(func() {
factory = NewFactory(
settings,
platform,
infrastructure,
blobstore,
taskService,
notifier,
applier,
compiler,
jobSupervisor,
specService,
drainScriptProvider,
logger,
)
})
It("new factory", func() {
actions := []string{
"apply",
"drain",
"fetch_logs",
"get_task",
"get_state",
"list_disk",
"migrate_disk",
"mount_disk",
"ping",
"prepare_network_change",
"ssh",
"start",
"stop",
"unmount_disk",
"compile_package",
"release_apply_spec",
}
for _, actionName := range actions {
action, err := factory.Create(actionName)
Expect(err).NotTo(HaveOccurred())
Expect(action).ToNot(BeNil())
}
action, err := factory.Create("gobberish")
Expect(err).To(HaveOccurred())
Expect(action).To(BeNil())
})
It("apply", func() {
action, err := factory.Create("apply")
Expect(err).NotTo(HaveOccurred())
Expect(action).ToNot(BeNil())
Expect(NewApply(applier, specService)).To(Equal(action))
})
It("drain", func() {
action, err := factory.Create("drain")
Expect(err).NotTo(HaveOccurred())
Expect(action).ToNot(BeNil())
Expect(NewDrain(notifier, specService, drainScriptProvider, jobSupervisor)).To(Equal(action))
})
It("fetch_logs", func() {
action, err := factory.Create("fetch_logs")
Expect(err).NotTo(HaveOccurred())
Expect(action).ToNot(BeNil())
Expect(NewLogs(platform.GetCompressor(), platform.GetCopier(), blobstore, platform.GetDirProvider())).To(Equal(action))
//.........这里部分代码省略.........
作者:Bosh-for-Cp
项目:bosh-260
import (
"errors"
. "github.com/onsi/ginkgo"
. "github.com/onsi/gomega"
. "bosh/agent/action"
fakeplatform "bosh/platform/fakes"
boshdirs "bosh/settings/directories"
fakesettings "bosh/settings/fakes"
)
var _ = Describe("MountDiskAction", func() {
var (
settingsService *fakesettings.FakeSettingsService
platform *fakeplatform.FakePlatform
action MountDiskAction
)
BeforeEach(func() {
settingsService = &fakesettings.FakeSettingsService{}
platform = fakeplatform.NewFakePlatform()
dirProvider := boshdirs.NewDirectoriesProvider("/fake-base-dir")
action = NewMountDisk(settingsService, platform, platform, dirProvider)
})
It("is asynchronous", func() {
Expect(action.IsAsynchronous()).To(BeTrue())
})
It("is not persistent", func() {
作者:amulya
项目:bosh-cloudstack-cp
func init() {
Describe("awsInfrastructure", func() {
var (
metadataService *fakeinf.FakeMetadataService
registry *fakeinf.FakeRegistry
platform *fakeplatform.FakePlatform
devicePathResolver *fakedpresolv.FakeDevicePathResolver
aws Infrastructure
)
BeforeEach(func() {
metadataService = &fakeinf.FakeMetadataService{}
registry = &fakeinf.FakeRegistry{}
platform = fakeplatform.NewFakePlatform()
devicePathResolver = fakedpresolv.NewFakeDevicePathResolver()
logger := boshlog.NewLogger(boshlog.LevelNone)
aws = NewAwsInfrastructure(metadataService, registry, platform, devicePathResolver, logger)
})
Describe("SetupSSH", func() {
It("gets the public key and sets up ssh via the platform", func() {
metadataService.PublicKey = "fake-public-key"
err := aws.SetupSSH("vcap")
Expect(err).NotTo(HaveOccurred())
Expect(platform.SetupSSHPublicKey).To(Equal("fake-public-key"))
Expect(platform.SetupSSHUsername).To(Equal("vcap"))
})
It("returns error without configuring ssh on the platform if getting public key fails", func() {
metadataService.GetPublicKeyErr = errors.New("fake-get-public-key-err")
err := aws.SetupSSH("vcap")
Expect(err).To(HaveOccurred())
Expect(err.Error()).To(ContainSubstring("fake-get-public-key-err"))
Expect(platform.SetupSSHCalled).To(BeFalse())
})
It("returns error if configuring ssh on the platform fails", func() {
platform.SetupSSHErr = errors.New("fake-setup-ssh-err")
err := aws.SetupSSH("vcap")
Expect(err).To(HaveOccurred())
Expect(err.Error()).To(ContainSubstring("fake-setup-ssh-err"))
})
})
Describe("GetSettings", func() {
It("gets settings", func() {
settings := boshsettings.Settings{AgentID: "fake-agent-id"}
registry.Settings = settings
settings, err := aws.GetSettings()
Expect(err).ToNot(HaveOccurred())
Expect(settings).To(Equal(settings))
})
It("returns an error when registry fails to get settings", func() {
registry.GetSettingsErr = errors.New("fake-get-settings-err")
settings, err := aws.GetSettings()
Expect(err).To(HaveOccurred())
Expect(err.Error()).To(ContainSubstring("fake-get-settings-err"))
Expect(settings).To(Equal(boshsettings.Settings{}))
})
})
Describe("SetupNetworking", func() {
It("sets up DHCP on the platform", func() {
networks := boshsettings.Networks{"bosh": boshsettings.Network{}}
err := aws.SetupNetworking(networks)
Expect(err).ToNot(HaveOccurred())
Expect(platform.SetupDhcpNetworks).To(Equal(networks))
})
It("returns error if configuring DHCP fails", func() {
platform.SetupDhcpErr = errors.New("fake-setup-dhcp-err")
err := aws.SetupNetworking(boshsettings.Networks{})
Expect(err).To(HaveOccurred())
Expect(err.Error()).To(ContainSubstring("fake-setup-dhcp-err"))
})
})
Describe("GetEphemeralDiskPath", func() {
It("returns the real disk path given an AWS EBS hint", func() {
platform.NormalizeDiskPathRealPath = "/dev/xvdb"
platform.NormalizeDiskPathFound = true
realPath, found := aws.GetEphemeralDiskPath("/dev/sdb")
Expect(found).To(Equal(true))
Expect(realPath).To(Equal("/dev/xvdb"))
Expect(platform.NormalizeDiskPathPath).To(Equal("/dev/sdb"))
//.........这里部分代码省略.........
作者:Bosh-for-Cp
项目:bosh-260
import (
. "github.com/onsi/ginkgo"
. "github.com/onsi/gomega"
. "bosh/blobstore"
boshlog "bosh/logger"
fakeplatform "bosh/platform/fakes"
boshsettings "bosh/settings"
boshdir "bosh/settings/directories"
boshuuid "bosh/uuid"
)
var _ = Describe("Provider", func() {
var (
platform *fakeplatform.FakePlatform
logger boshlog.Logger
provider Provider
)
BeforeEach(func() {
platform = fakeplatform.NewFakePlatform()
dirProvider := boshdir.NewDirectoriesProvider("/var/vcap")
logger = boshlog.NewLogger(boshlog.LevelNone)
provider = NewProvider(platform, dirProvider, logger)
})
Describe("Get", func() {
It("get dummy", func() {
blobstore, err := provider.Get(boshsettings.Blobstore{
Type: boshsettings.BlobstoreTypeDummy,
})