本文整理匯總了Golang中github.com/cloudfoundry/bosh-agent/settings/directories.NewProvider函數的典型用法代碼示例。如果您正苦於以下問題:Golang NewProvider函數的具體用法?Golang NewProvider怎麽用?Golang NewProvider使用的例子?那麽, 這裏精選的函數代碼示例或許可以為您提供幫助。
在下文中一共展示了NewProvider函數的15個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Golang代碼示例。
示例1: buildSSHAction
func buildSSHAction(settingsService boshsettings.Service) (*fakeplatform.FakePlatform, SSHAction) {
platform := fakeplatform.NewFakePlatform()
dirProvider := boshdirs.NewProvider("/foo")
logger := boshlog.NewLogger(boshlog.LevelNone)
action := NewSSH(settingsService, platform, dirProvider, logger)
return platform, action
}
示例2: 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())
})
})
}
示例3: init
func init() {
Describe("GenericScriptProvider", func() {
It("produces script paths relative to the base directory", func() {
runner := fakesys.NewFakeCmdRunner()
fs := fakesys.NewFakeFileSystem()
dirProvider := boshdir.NewProvider("/the/base/dir")
scriptProvider := scriptrunner.NewJobScriptProvider(runner, fs, dirProvider)
script := scriptProvider.Get("myjob", "the-best-hook-ever")
Expect(script.Path()).To(Equal("/the/base/dir/jobs/myjob/bin/the-best-hook-ever"))
})
})
}
示例4: init
func init() {
Describe("Testing with Ginkgo", func() {
It("new drain script", func() {
runner := fakesys.NewFakeCmdRunner()
fs := fakesys.NewFakeFileSystem()
dirProvider := boshdir.NewProvider("/var/vcap")
scriptProvider := NewConcreteScriptProvider(runner, fs, dirProvider)
script := scriptProvider.NewScript("foo")
Expect(script.Path()).To(Equal("/var/vcap/jobs/foo/bin/drain"))
})
})
}
示例5: buildVitalsService
func buildVitalsService() (statsCollector *fakestats.FakeCollector, service Service) {
dirProvider := boshdirs.NewProvider("/fake/base/dir")
statsCollector = &fakestats.FakeCollector{
CPULoad: boshstats.CPULoad{
One: 0.2,
Five: 4.55,
Fifteen: 1.123,
},
StartCollectingCPUStats: boshstats.CPUStats{
User: 56,
Sys: 10,
Wait: 1,
Total: 100,
},
MemStats: boshstats.Usage{
Used: 700 * 1024,
Total: 1000 * 1024,
},
SwapStats: boshstats.Usage{
Used: 600 * 1024,
Total: 1000 * 1024,
},
DiskStats: map[string]boshstats.DiskStats{
"/": boshstats.DiskStats{
DiskUsage: boshstats.Usage{Used: 100, Total: 200},
InodeUsage: boshstats.Usage{Used: 50, Total: 500},
},
dirProvider.DataDir(): boshstats.DiskStats{
DiskUsage: boshstats.Usage{Used: 15, Total: 20},
InodeUsage: boshstats.Usage{Used: 10, Total: 50},
},
dirProvider.StoreDir(): boshstats.DiskStats{
DiskUsage: boshstats.Usage{Used: 2, Total: 2},
InodeUsage: boshstats.Usage{Used: 3, Total: 4},
},
},
}
service = NewService(statsCollector, dirProvider)
statsCollector.StartCollecting(1*time.Millisecond, nil)
return
}
示例6: GetDirProvider
func (p *FakePlatform) GetDirProvider() (dirProvider boshdir.Provider) {
return boshdir.NewProvider("/var/vcap")
}
示例7: describeDrbd
func describeDrbd() {
var (
dualDCSupport *DualDCSupport
cmdRunner *fakesys.FakeCmdRunner
fs *fakesys.FakeFileSystem
dirProvider boshdir.Provider
specService *fakeas.FakeV1Service
settingsService *fakesettings.FakeSettingsService
logger boshlog.Logger
spec boshas.V1ApplySpec
)
BeforeEach(func() {
fs = fakesys.NewFakeFileSystem()
cmdRunner = fakesys.NewFakeCmdRunner()
specService = fakeas.NewFakeV1Service()
settingsService = &fakesettings.FakeSettingsService{}
dirProvider = boshdir.NewProvider("/var/vcap")
logger = boshlog.NewLogger(boshlog.LevelNone)
dualDCSupport = NewDualDCSupport(
cmdRunner,
fs,
dirProvider,
specService,
settingsService,
logger,
)
spec = boshas.V1ApplySpec{}
spec.DrbdEnabled = true
spec.Passive = "enabled"
specService.Spec = spec
})
Context("DNS updates", func() {
It("", func() {
s, e := specService.Get()
fmt.Printf("spec: %#v, err: %v", s, e)
})
})
Describe("Drbd", func() {
It("renders config file", func() {
expectedOutput := `
resource r0 {
net {
protocol A;
shared-secret OIUncfjJsbhInuic1243d;
verify-alg sha1;
}
disk {
resync-rate 24M;
}
handlers {
before-resync-target "/lib/drbd/snapshot-resync-target-lvm.sh";
after-resync-target "/lib/drbd/unsnapshot-resync-target-lvm.sh";
}
startup {
wfc-timeout 3;
degr-wfc-timeout 3;
outdated-wfc-timeout 2;
}
on dff85535-580a-4bfb-bf49-5efbc017b5bb {
device drbd1;
disk /dev/mapper/vgStoreData-StoreData;
address 10.76.245.71:7789;
meta-disk internal;
}
on host2 {
device drbd1;
disk /dev/mapper/vgStoreData-StoreData;
address 10.92.245.71:7789;
meta-disk internal;
}
}
`
// TODO: fix the test - sort out the fakes
// out := drbdConfig("A", "OIUncfjJsbhInuic1243d", "dff85535-580a-4bfb-bf49-5efbc017b5bb", "10.76.245.71", "10.92.245.71")
Expect("").NotTo(Equal(expectedOutput))
})
})
}
示例8: 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())
})
})
Describe("UnmountPersistentDisk", func() {
Context("when there are two mounted persistent disks in the mounts json", func() {
BeforeEach(func() {
var mounts []mount
mounts = append(mounts, mount{MountDir: "dir1", DiskCid: "cid1"})
mounts = append(mounts, mount{MountDir: "dir2", DiskCid: "cid2"})
mountsJSON, _ := json.Marshal(mounts)
mountsPath := path.Join(dirProvider.BoshDir(), "mounts.json")
fs.WriteFile(mountsPath, mountsJSON)
})
It("removes one of the disks from the mounts json", func() {
unmounted, err := platform.UnmountPersistentDisk(settings.DiskSettings{ID: "cid1"})
Expect(err).NotTo(HaveOccurred())
Expect(unmounted).To(Equal(true))
Expect(platform.IsMountPoint("dir1")).To(Equal(false))
Expect(platform.IsMountPoint("dir2")).To(Equal(true))
})
})
})
}
示例9: init
func init() {
Describe("provider", func() {
var (
platform *fakeplatform.FakePlatform
client *fakemonit.FakeMonitClient
logger boshlog.Logger
dirProvider boshdir.Provider
jobFailuresServerPort int
handler *fakembus.FakeHandler
provider Provider
timeService clock.Clock
)
BeforeEach(func() {
platform = fakeplatform.NewFakePlatform()
client = fakemonit.NewFakeMonitClient()
logger = boshlog.NewLogger(boshlog.LevelNone)
dirProvider = boshdir.NewProvider("/fake-base-dir")
jobFailuresServerPort = 2825
handler = &fakembus.FakeHandler{}
timeService = clock.NewClock()
provider = NewProvider(
platform,
client,
logger,
dirProvider,
handler,
)
})
It("provides a monit job supervisor", func() {
actualSupervisor, err := provider.Get("monit")
Expect(err).ToNot(HaveOccurred())
expectedSupervisor := NewMonitJobSupervisor(
platform.Fs,
platform.Runner,
client,
logger,
dirProvider,
jobFailuresServerPort,
MonitReloadOptions{
MaxTries: 3,
MaxCheckTries: 6,
DelayBetweenCheckTries: 5 * time.Second,
},
timeService,
)
Expect(actualSupervisor).To(Equal(expectedSupervisor))
})
It("provides a dummy job supervisor", func() {
actualSupervisor, err := provider.Get("dummy")
Expect(err).ToNot(HaveOccurred())
expectedSupervisor := NewDummyJobSupervisor()
Expect(actualSupervisor).To(Equal(expectedSupervisor))
})
It("provides a dummy nats job supervisor", func() {
actualSupervisor, err := provider.Get("dummy-nats")
Expect(err).NotTo(HaveOccurred())
expectedSupervisor := NewDummyNatsJobSupervisor(handler)
Expect(actualSupervisor).To(Equal(expectedSupervisor))
})
It("returns an error when the supervisor is not found", func() {
_, err := provider.Get("does-not-exist")
Expect(err).To(HaveOccurred())
Expect(err.Error()).To(ContainSubstring("does-not-exist could not be found"))
})
})
}
示例10:
)
var _ = Describe("HandlerProvider", func() {
var (
settingsService *fakesettings.FakeSettingsService
platform *fakeplatform.FakePlatform
dirProvider boshdir.Provider
logger boshlog.Logger
provider HandlerProvider
)
BeforeEach(func() {
settingsService = &fakesettings.FakeSettingsService{}
logger = boshlog.NewLogger(boshlog.LevelNone)
platform = fakeplatform.NewFakePlatform()
dirProvider = boshdir.NewProvider("/var/vcap")
provider = NewHandlerProvider(settingsService, logger)
})
Describe("Get", func() {
It("returns nats handler", func() {
settingsService.Settings.Mbus = "nats://lol"
handler, err := provider.Get(platform, dirProvider)
Expect(err).ToNot(HaveOccurred())
// yagnats.NewClient returns new object every time
expectedHandler := NewNatsHandler(settingsService, yagnats.NewClient(), logger)
Expect(reflect.TypeOf(handler)).To(Equal(reflect.TypeOf(expectedHandler)))
})
It("returns https handler", func() {
示例11: init
func init() {
Describe("ApplyAction", func() {
var (
applier *fakeappl.FakeApplier
specService *fakeas.FakeV1Service
settingsService *fakesettings.FakeSettingsService
dirProvider boshdir.Provider
action ApplyAction
fs boshsys.FileSystem
)
BeforeEach(func() {
applier = fakeappl.NewFakeApplier()
specService = fakeas.NewFakeV1Service()
settingsService = &fakesettings.FakeSettingsService{}
dirProvider = boshdir.NewProvider("/var/vcap")
fs = fakesys.NewFakeFileSystem()
action = NewApply(applier, specService, settingsService, dirProvider.InstanceDir(), fs)
})
It("apply should be asynchronous", func() {
Expect(action.IsAsynchronous()).To(BeTrue())
})
It("is not persistent", func() {
Expect(action.IsPersistent()).To(BeFalse())
})
Describe("Run", func() {
settings := boshsettings.Settings{AgentID: "fake-agent-id"}
BeforeEach(func() {
settingsService.Settings = settings
})
Context("when desired spec has configuration hash", func() {
currentApplySpec := boshas.V1ApplySpec{ConfigurationHash: "fake-current-config-hash"}
desiredApplySpec := boshas.V1ApplySpec{ConfigurationHash: "fake-desired-config-hash"}
populatedDesiredApplySpec := boshas.V1ApplySpec{
ConfigurationHash: "fake-populated-desired-config-hash",
}
Context("when current spec can be retrieved", func() {
BeforeEach(func() {
specService.Spec = currentApplySpec
})
It("populates dynamic networks in desired spec", func() {
_, err := action.Run(desiredApplySpec)
Expect(err).ToNot(HaveOccurred())
Expect(specService.PopulateDHCPNetworksSpec).To(Equal(desiredApplySpec))
Expect(specService.PopulateDHCPNetworksSettings).To(Equal(settings))
})
Context("when resolving dynamic networks succeeds", func() {
BeforeEach(func() {
specService.PopulateDHCPNetworksResultSpec = populatedDesiredApplySpec
})
It("runs applier with populated desired spec", func() {
_, err := action.Run(desiredApplySpec)
Expect(err).ToNot(HaveOccurred())
Expect(applier.Applied).To(BeTrue())
Expect(applier.ApplyCurrentApplySpec).To(Equal(currentApplySpec))
Expect(applier.ApplyDesiredApplySpec).To(Equal(populatedDesiredApplySpec))
})
Context("when applier succeeds applying desired spec", func() {
Context("when saving desires spec as current spec succeeds", func() {
It("returns 'applied' after setting populated desired spec as current spec", func() {
value, err := action.Run(desiredApplySpec)
Expect(err).ToNot(HaveOccurred())
Expect(value).To(Equal("applied"))
Expect(specService.Spec).To(Equal(populatedDesiredApplySpec))
})
Context("desired spec has id, instance name, deployment name, and az", func() {
BeforeEach(func() {
desiredApplySpec = boshas.V1ApplySpec{ConfigurationHash: "fake-desired-config-hash", NodeID: "node-id01-123f-r2344", AvailabilityZone: "ex-az", Deployment: "deployment-name", Name: "instance-name"}
specService.PopulateDHCPNetworksResultSpec = desiredApplySpec
})
It("returns 'applied' and writes the id, instance name, deployment name, and az to files in the instance directory", func() {
value, err := action.Run(desiredApplySpec)
Expect(err).ToNot(HaveOccurred())
Expect(value).To(Equal("applied"))
instanceDir := dirProvider.InstanceDir()
id, err := fs.ReadFileString(path.Join(instanceDir, "id"))
Expect(err).ToNot(HaveOccurred())
Expect(id).To(Equal(desiredApplySpec.NodeID))
az, err := fs.ReadFileString(path.Join(instanceDir, "az"))
Expect(err).ToNot(HaveOccurred())
Expect(az).To(Equal(desiredApplySpec.AvailabilityZone))
instanceName, err := fs.ReadFileString(path.Join(instanceDir, "name"))
//.........這裏部分代碼省略.........
示例12:
binPath := filepath.Join(basePath, "bosh", "bin")
fs.MkdirAll(binPath, 0755)
logDir = path.Join(basePath, "sys", "log")
fs.MkdirAll(binPath, 0755)
exePath = filepath.Join(binPath, "job-service-wrapper.exe")
err = fs.CopyFile(testExtPath, exePath)
Expect(err).ToNot(HaveOccurred())
logDir = path.Join(basePath, "sys", "log")
})
WriteJobConfig := func(configContents WindowsProcessConfig) (string, error) {
dirProvider := boshdirs.NewProvider(basePath)
runner = boshsys.NewExecCmdRunner(logger)
jobSupervisor = NewWindowsJobSupervisor(runner, dirProvider, fs, logger, jobFailuresServerPort,
make(chan bool), DefaultMachineIP)
if err := jobSupervisor.RemoveAllJobs(); err != nil {
return "", err
}
processConfigContents, err := json.Marshal(configContents)
if err != nil {
return "", err
}
jobDir, err = fs.TempDir("testWindowsJobSupervisor")
processConfigPath = filepath.Join(jobDir, "monit")
err = fs.WriteFile(processConfigPath, processConfigContents)
示例13:
fakescript "github.com/cloudfoundry/bosh-agent/agent/script/fakes"
boshdir "github.com/cloudfoundry/bosh-agent/settings/directories"
boshlog "github.com/cloudfoundry/bosh-utils/logger"
fakesys "github.com/cloudfoundry/bosh-utils/system/fakes"
)
var _ = Describe("ConcreteJobScriptProvider", func() {
var (
logger boshlog.Logger
scriptProvider boshscript.ConcreteJobScriptProvider
)
BeforeEach(func() {
runner := fakesys.NewFakeCmdRunner()
fs := fakesys.NewFakeFileSystem()
dirProvider := boshdir.NewProvider("/the/base/dir")
logger = boshlog.NewLogger(boshlog.LevelNone)
scriptProvider = boshscript.NewConcreteJobScriptProvider(
runner,
fs,
dirProvider,
&fakesys.FakeCommandFactory{},
&fakeaction.FakeClock{},
logger,
)
})
Describe("NewScript", func() {
It("returns script with relative job paths to the base directory", func() {
script := scriptProvider.NewScript("myjob", "the-best-hook-ever")
Expect(script.Tag()).To(Equal("myjob"))
示例14: describeDummyPlatform
func describeDummyPlatform() {
var (
platform Platform
collector boshstats.Collector
fs *fakesys.FakeFileSystem
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("returns a dummy cert manager", func() {
certManager := platform.GetCertManager()
Expect(certManager.UpdateCertificates("")).Should(BeNil())
})
})
Describe("MountPersistentDisk", func() {
var diskSettings boshsettings.DiskSettings
var mountsPath, managedSettingsPath, formattedDisksPath string
BeforeEach(func() {
diskSettings = boshsettings.DiskSettings{ID: "somediskid"}
mountsPath = filepath.Join(dirProvider.BoshDir(), "mounts.json")
managedSettingsPath = filepath.Join(dirProvider.BoshDir(), "managed_disk_settings.json")
formattedDisksPath = filepath.Join(dirProvider.BoshDir(), "formatted_disks.json")
})
It("Mounts a persistent disk", func() {
mountsContent, _ := fs.ReadFileString(mountsPath)
Expect(mountsContent).To(Equal(""))
err := platform.MountPersistentDisk(diskSettings, "/dev/potato")
Expect(err).NotTo(HaveOccurred())
mountsContent, _ = fs.ReadFileString(mountsPath)
Expect(mountsContent).To(Equal(`[{"MountDir":"/dev/potato","DiskCid":"somediskid"}]`))
})
It("Updates the managed disk settings", func() {
lastMountedCid, _ := fs.ReadFileString(managedSettingsPath)
Expect(lastMountedCid).To(Equal(""))
err := platform.MountPersistentDisk(diskSettings, "/dev/potato")
Expect(err).NotTo(HaveOccurred())
lastMountedCid, _ = fs.ReadFileString(managedSettingsPath)
Expect(lastMountedCid).To(Equal("somediskid"))
})
It("Updates the formatted disks", func() {
formattedDisks, _ := fs.ReadFileString(formattedDisksPath)
Expect(formattedDisks).To(Equal(""))
err := platform.MountPersistentDisk(diskSettings, "/dev/potato")
Expect(err).NotTo(HaveOccurred())
formattedDisks, _ = fs.ReadFileString(formattedDisksPath)
Expect(formattedDisks).To(Equal(`[{"DiskCid":"somediskid"}]`))
})
Context("Device has already been mounted as expected", func() {
BeforeEach(func() {
fs.WriteFileString(managedSettingsPath, "somediskid")
fs.WriteFileString(mountsPath, `[{"MountDir":"/dev/potato","DiskCid":"somediskid"}]`)
})
//.........這裏部分代碼省略.........
示例15: init
func init() {
Describe("concreteApplier", func() {
var (
jobApplier *fakejobs.FakeApplier
packageApplier *fakepackages.FakeApplier
logRotateDelegate *FakeLogRotateDelegate
jobSupervisor *fakejobsuper.FakeJobSupervisor
applier Applier
)
BeforeEach(func() {
jobApplier = fakejobs.NewFakeApplier()
packageApplier = fakepackages.NewFakeApplier()
logRotateDelegate = &FakeLogRotateDelegate{}
jobSupervisor = fakejobsuper.NewFakeJobSupervisor()
applier = NewConcreteApplier(
jobApplier,
packageApplier,
logRotateDelegate,
jobSupervisor,
boshdirs.NewProvider("/fake-base-dir"),
)
})
Describe("Prepare", func() {
It("prepares each jobs", func() {
job := buildJob()
err := applier.Prepare(
&fakeas.FakeApplySpec{JobResults: []models.Job{job}},
)
Expect(err).ToNot(HaveOccurred())
Expect(jobApplier.PreparedJobs).To(Equal([]models.Job{job}))
})
It("returns error when preparing jobs fails", func() {
job := buildJob()
jobApplier.PrepareError = errors.New("fake-prepare-job-error")
err := applier.Prepare(
&fakeas.FakeApplySpec{JobResults: []models.Job{job}},
)
Expect(err).To(HaveOccurred())
Expect(err.Error()).To(ContainSubstring("fake-prepare-job-error"))
})
It("prepares each packages", func() {
pkg1 := buildPackage()
pkg2 := buildPackage()
err := applier.Prepare(
&fakeas.FakeApplySpec{PackageResults: []models.Package{pkg1, pkg2}},
)
Expect(err).ToNot(HaveOccurred())
Expect(packageApplier.PreparedPackages).To(Equal([]models.Package{pkg1, pkg2}))
})
It("returns error when preparing packages fails", func() {
pkg := buildPackage()
packageApplier.PrepareError = errors.New("fake-prepare-package-error")
err := applier.Prepare(
&fakeas.FakeApplySpec{PackageResults: []models.Package{pkg}},
)
Expect(err).To(HaveOccurred())
Expect(err.Error()).To(ContainSubstring("fake-prepare-package-error"))
})
})
Describe("Configure jobs", func() {
It("reloads job supervisor", func() {
job1 := models.Job{Name: "fake-job-name-1", Version: "fake-version-name-1"}
job2 := models.Job{Name: "fake-job-name-2", Version: "fake-version-name-2"}
jobs := []models.Job{job1, job2}
err := applier.ConfigureJobs(&fakeas.FakeApplySpec{JobResults: jobs})
Expect(err).ToNot(HaveOccurred())
Expect(jobSupervisor.Reloaded).To(BeTrue())
})
It("configures jobs", func() {
job1 := models.Job{Name: "fake-job-name-1", Version: "fake-version-name-1"}
job2 := models.Job{Name: "fake-job-name-2", Version: "fake-version-name-2"}
jobs := []models.Job{job1, job2}
err := applier.ConfigureJobs(&fakeas.FakeApplySpec{JobResults: jobs})
Expect(err).ToNot(HaveOccurred())
Expect(jobApplier.ConfiguredJobs).To(ConsistOf(job1, job2))
})
})
Describe("Apply", func() {
It("removes all jobs from job supervisor", func() {
err := applier.Apply(&fakeas.FakeApplySpec{}, &fakeas.FakeApplySpec{})
Expect(err).ToNot(HaveOccurred())
//.........這裏部分代碼省略.........