fakeslclient "github.com/maximilien/softlayer-go/client/fakes" ) var _ = Describe("BaremetalFinder", func() { var ( softLayerClient *fakeslclient.FakeSoftLayerClient logger boshlog.Logger finder bm.BaremetalFinder ) BeforeEach(func() { softLayerClient = fakeslclient.NewFakeSoftLayerClient("fake-username", "fake-api-key") logger = boshlog.NewLogger(boshlog.LevelNone) finder = bm.NewBaremetalFinder( softLayerClient, logger, ) }) Describe("Find", func() { Context("succeeded", func() { BeforeEach(func() { testhelpers.SetTestFixtureForFakeSoftLayerClient(softLayerClient, "SoftLayer_Hardware_Service_getObject.json") }) It("returns a new Softlayer Hardware without an error", func() { baremetal, err := finder.Find("fake-id") Expect(err).ToNot(HaveOccurred()) Expect(baremetal.GlobalIdentifier).To(Equal("fake-id")) Expect(baremetal.BareMetalInstanceFlag).To(Equal(1)) Expect(baremetal.ProvisionDate).ToNot(BeNil())
func NewConcreteFactory(softLayerClient sl.Client, options ConcreteFactoryOptions, logger boshlog.Logger) concreteFactory { stemcellFinder := bslcstem.NewSoftLayerFinder(softLayerClient, logger) agentEnvServiceFactory := bslcvm.NewSoftLayerAgentEnvServiceFactory(softLayerClient, logger) vmCreator := bslcvm.NewSoftLayerCreator( softLayerClient, agentEnvServiceFactory, options.Agent, logger, ) vmFinder := bslcvm.NewSoftLayerFinder( softLayerClient, agentEnvServiceFactory, logger, ) bmCreator := bslcbm.NewBaremetalCreator(softLayerClient, logger) bmFinder := bslcbm.NewBaremetalFinder(softLayerClient, logger) diskCreator := bslcdisk.NewSoftLayerDiskCreator( softLayerClient, logger, ) diskFinder := bslcdisk.NewSoftLayerDiskFinder( softLayerClient, logger, ) return concreteFactory{ availableActions: map[string]Action{ // Stemcell management "create_stemcell": NewCreateStemcell(stemcellFinder), "delete_stemcell": NewDeleteStemcell(stemcellFinder), // VM management "create_vm": NewCreateVM(stemcellFinder, vmCreator), "delete_vm": NewDeleteVM(vmFinder), "has_vm": NewHasVM(vmFinder), "reboot_vm": NewRebootVM(vmFinder), "set_vm_metadata": NewSetVMMetadata(vmFinder), "configure_networks": NewConfigureNetworks(vmFinder), // Disk management "create_disk": NewCreateDisk(diskCreator), "delete_disk": NewDeleteDisk(diskFinder), "attach_disk": NewAttachDisk(vmFinder, diskFinder), "detach_disk": NewDetachDisk(vmFinder, diskFinder), "establish_bare_metal_env": NewEstablishBareMetalEnv(bmCreator, bmFinder), // Not implemented (disk related): // snapshot_disk // delete_snapshot // get_disks // Not implemented (others): // current_vm_id // ping }, } }