func (vm *vm) Disks() ([]bidisk.Disk, error) { result := []bidisk.Disk{} disks, err := vm.agentClient.ListDisk() if err != nil { return result, bosherr.WrapError(err, "Listing vm disks") } for _, diskCID := range disks { disk := bidisk.NewDisk(biconfig.DiskRecord{CID: diskCID}, nil, nil) result = append(result, disk) } return result, nil }
err := vm.UnmountDisk(disk) Expect(err).To(HaveOccurred()) Expect(err.Error()).To(ContainSubstring("fake-unmount-error")) }) }) }) Describe("Disks", func() { BeforeEach(func() { fakeAgentClient.SetListDiskBehavior([]string{"fake-disk-cid-1", "fake-disk-cid-2"}, nil) }) It("returns disks that are reported by the agent", func() { disks, err := vm.Disks() Expect(err).ToNot(HaveOccurred()) expectedFirstDisk := bidisk.NewDisk(biconfig.DiskRecord{CID: "fake-disk-cid-1"}, nil, nil) expectedSecondDisk := bidisk.NewDisk(biconfig.DiskRecord{CID: "fake-disk-cid-2"}, nil, nil) Expect(disks).To(Equal([]bidisk.Disk{expectedFirstDisk, expectedSecondDisk})) }) Context("when listing disks fails", func() { BeforeEach(func() { fakeAgentClient.SetListDiskBehavior([]string{}, errors.New("fake-list-disk-error")) }) It("returns an error", func() { _, err := vm.Disks() Expect(err).To(HaveOccurred()) Expect(err.Error()).To(ContainSubstring("fake-list-disk-error")) }) })