Expect(err).To(HaveOccurred()) }) }) Context("CentOS", func() { BeforeEach(func() { fakeFs = fakesys.NewFakeFileSystem() fakeCmdRunner = fakesys.NewFakeCmdRunner() fakeCmdRunner.AddCmdResult("/usr/bin/update-ca-trust", fakesys.FakeCmdResult{ Stdout: "", Stderr: "", ExitStatus: 0, Sticky: true, }) certManager = cert.NewCentOSCertManager(fakeFs, fakeCmdRunner, 0, log) }) SharedLinuxCertManagerExamples("/etc/pki/ca-trust/source/anchors", "/usr/bin/update-ca-trust") It("executes update cert command", func() { fakeCmdRunner = fakesys.NewFakeCmdRunner() fakeCmdRunner.AddCmdResult("/usr/bin/update-ca-trust", fakesys.FakeCmdResult{ Stdout: "", Stderr: "", ExitStatus: 2, Error: errors.New("command failed"), }) certManager = cert.NewCentOSCertManager(fakeFs, fakeCmdRunner, 0, log) err := certManager.UpdateCertificates(cert1)
err := certManager.UpdateCertificates(cert1) Expect(err).To(HaveOccurred()) }) }) Context("CentOS", func() { BeforeEach(func() { fakeFs = fakesys.NewFakeFileSystem() fakeCmd = fakesys.NewFakeCmdRunner() fakeCmd.AddCmdResult("/usr/bin/update-ca-trust", fakesys.FakeCmdResult{ Stdout: "", Stderr: "", ExitStatus: 0, Sticky: true, }) certManager = cert.NewCentOSCertManager(fakeFs, fakeCmd, log) }) SharedLinuxCertManagerExamples("/etc/pki/ca-trust/source/anchors", "/usr/bin/update-ca-trust") // see message above about the shareability of this test It("executes update cert command", func() { fakeCmd = fakesys.NewFakeCmdRunner() fakeCmd.AddCmdResult("/usr/bin/update-ca-trust", fakesys.FakeCmdResult{ Stdout: "", Stderr: "", ExitStatus: 2, Error: errors.New("command failed"), }) certManager = cert.NewCentOSCertManager(fakeFs, fakeCmd, log)
func NewProvider(logger boshlog.Logger, dirProvider boshdirs.Provider, statsCollector boshstats.Collector, fs boshsys.FileSystem, options Options, bootstrapState *BootstrapState, clock clock.Clock) Provider { runner := boshsys.NewExecCmdRunner(logger) linuxDiskManager := boshdisk.NewLinuxDiskManager(logger, runner, fs, options.Linux.BindMountPersistentDisk) udev := boshudev.NewConcreteUdevDevice(runner, logger) linuxCdrom := boshcdrom.NewLinuxCdrom("/dev/sr0", udev, runner) linuxCdutil := boshcdrom.NewCdUtil(dirProvider.SettingsDir(), fs, linuxCdrom, logger) compressor := boshcmd.NewTarballCompressor(runner, fs) copier := boshcmd.NewCpCopier(runner, fs, logger) // Kick of stats collection as soon as possible statsCollector.StartCollecting(SigarStatsCollectionInterval, nil) vitalsService := boshvitals.NewService(statsCollector, dirProvider) ipResolver := boship.NewResolver(boship.NetworkInterfaceToAddrsFunc) arping := bosharp.NewArping(runner, fs, logger, ArpIterations, ArpIterationDelay, ArpInterfaceCheckDelay) interfaceConfigurationCreator := boshnet.NewInterfaceConfigurationCreator(logger) interfaceAddressesProvider := boship.NewSystemInterfaceAddressesProvider() interfaceAddressesValidator := boship.NewInterfaceAddressesValidator(interfaceAddressesProvider) dnsValidator := boshnet.NewDNSValidator(fs) centosNetManager := boshnet.NewCentosNetManager(fs, runner, ipResolver, interfaceConfigurationCreator, interfaceAddressesValidator, dnsValidator, arping, logger) ubuntuNetManager := boshnet.NewUbuntuNetManager(fs, runner, ipResolver, interfaceConfigurationCreator, interfaceAddressesValidator, dnsValidator, arping, logger) windowsNetManager := boshnet.NewWindowsNetManager(runner, interfaceConfigurationCreator, boshnet.NewMACAddressDetector(), logger, clock) centosCertManager := boshcert.NewCentOSCertManager(fs, runner, 0, logger) ubuntuCertManager := boshcert.NewUbuntuCertManager(fs, runner, 60, logger) routesSearcher := boshnet.NewRoutesSearcher(runner) defaultNetworkResolver := boshnet.NewDefaultNetworkResolver(routesSearcher, ipResolver) monitRetryable := NewMonitRetryable(runner) monitRetryStrategy := boshretry.NewAttemptRetryStrategy(10, 1*time.Second, monitRetryable, logger) var devicePathResolver devicepathresolver.DevicePathResolver switch options.Linux.DevicePathResolutionType { case "virtio": udev := boshudev.NewConcreteUdevDevice(runner, logger) idDevicePathResolver := devicepathresolver.NewIDDevicePathResolver(500*time.Millisecond, options.Linux.VirtioDevicePrefix, udev, fs) mappedDevicePathResolver := devicepathresolver.NewMappedDevicePathResolver(30000*time.Millisecond, fs) devicePathResolver = devicepathresolver.NewVirtioDevicePathResolver(idDevicePathResolver, mappedDevicePathResolver, logger) case "scsi": scsiIDPathResolver := devicepathresolver.NewSCSIIDDevicePathResolver(50000*time.Millisecond, fs, logger) scsiVolumeIDPathResolver := devicepathresolver.NewSCSIVolumeIDDevicePathResolver(500*time.Millisecond, fs) scsiLunPathResolver := devicepathresolver.NewSCSILunDevicePathResolver(50000*time.Millisecond, fs, logger) devicePathResolver = devicepathresolver.NewScsiDevicePathResolver(scsiVolumeIDPathResolver, scsiIDPathResolver, scsiLunPathResolver) default: devicePathResolver = devicepathresolver.NewIdentityDevicePathResolver() } uuidGenerator := boshuuid.NewGenerator() centos := NewLinuxPlatform( fs, runner, statsCollector, compressor, copier, dirProvider, vitalsService, linuxCdutil, linuxDiskManager, centosNetManager, centosCertManager, monitRetryStrategy, devicePathResolver, bootstrapState, options.Linux, logger, defaultNetworkResolver, uuidGenerator, ) ubuntu := NewLinuxPlatform( fs, runner, statsCollector, compressor, copier, dirProvider, vitalsService, linuxCdutil, linuxDiskManager, ubuntuNetManager, ubuntuCertManager, monitRetryStrategy, devicePathResolver, bootstrapState, options.Linux, logger, defaultNetworkResolver, uuidGenerator, ) windows := NewWindowsPlatform( statsCollector, fs, runner, dirProvider, windowsNetManager, devicePathResolver, logger, defaultNetworkResolver, ) return provider{ platforms: map[string]Platform{ "ubuntu": ubuntu, "centos": centos, "dummy": NewDummyPlatform(statsCollector, fs, runner, dirProvider, devicePathResolver, logger), "windows": windows, }, } }