本文整理汇总了Golang中github.com/cloudfoundry/bosh-init/deployment/disk.Disk类的典型用法代码示例。如果您正苦于以下问题:Golang Disk类的具体用法?Golang Disk怎么用?Golang Disk使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了Disk类的10个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: DetachDisk
func (vm *FakeVM) DetachDisk(disk bidisk.Disk) error {
vm.DetachDiskInputs = append(vm.DetachDiskInputs, DetachDiskInput{
Disk: disk,
})
return vm.detachDiskBehavior[disk.CID()]
}
示例2: attachDisk
func (d *diskDeployer) attachDisk(disk bidisk.Disk, vm VM, stage biui.Stage) error {
stageName := fmt.Sprintf("Attaching disk '%s' to VM '%s'", disk.CID(), vm.CID())
err := stage.Perform(stageName, func() error {
return vm.AttachDisk(disk)
})
return err
}
示例3: DetachDisk
func (vm *vm) DetachDisk(disk bidisk.Disk) error {
err := vm.cloud.DetachDisk(vm.cid, disk.CID())
if err != nil {
return bosherr.WrapError(err, "Detaching disk in the cloud")
}
return nil
}
示例4: migrateDisk
func (d *diskDeployer) migrateDisk(
originalDisk bidisk.Disk,
diskPool bideplmanifest.DiskPool,
vm VM,
stage biui.Stage,
) (newDisk bidisk.Disk, err error) {
d.logger.Debug(d.logTag, "Migrating disk '%s'", originalDisk.CID())
err = stage.Perform("Creating disk", func() error {
newDisk, err = d.diskManager.Create(diskPool, vm.CID())
return err
})
if err != nil {
return newDisk, err
}
stageName := fmt.Sprintf("Attaching disk '%s' to VM '%s'", newDisk.CID(), vm.CID())
err = stage.Perform(stageName, func() error {
return vm.AttachDisk(newDisk)
})
if err != nil {
return newDisk, err
}
stageName = fmt.Sprintf("Migrating disk content from '%s' to '%s'", originalDisk.CID(), newDisk.CID())
err = stage.Perform(stageName, func() error {
return vm.MigrateDisk()
})
if err != nil {
return newDisk, err
}
err = d.updateCurrentDiskRecord(newDisk)
if err != nil {
return newDisk, err
}
stageName = fmt.Sprintf("Detaching disk '%s'", originalDisk.CID())
err = stage.Perform(stageName, func() error {
return vm.DetachDisk(originalDisk)
})
if err != nil {
return newDisk, err
}
stageName = fmt.Sprintf("Deleting disk '%s'", originalDisk.CID())
err = stage.Perform(stageName, func() error {
return originalDisk.Delete()
})
if err != nil {
return newDisk, err
}
return newDisk, nil
}
示例5: deleteDisk
func (d *deployment) deleteDisk(deleteStage biui.Stage, disk bidisk.Disk) error {
stepName := fmt.Sprintf("Deleting disk '%s'", disk.CID())
return deleteStage.Perform(stepName, func() error {
err := disk.Delete()
cloudErr, ok := err.(bicloud.Error)
if ok && cloudErr.Type() == bicloud.DiskNotFoundError {
return biui.NewSkipStageError(cloudErr, "Disk not found")
}
return err
})
}
示例6: AttachDisk
func (vm *vm) AttachDisk(disk bidisk.Disk) error {
err := vm.cloud.AttachDisk(vm.cid, disk.CID())
if err != nil {
return bosherr.WrapError(err, "Attaching disk in the cloud")
}
err = vm.agentClient.MountDisk(disk.CID())
if err != nil {
return bosherr.WrapError(err, "Mounting disk")
}
return nil
}
示例7: updateCurrentDiskRecord
func (d *diskDeployer) updateCurrentDiskRecord(disk bidisk.Disk) error {
savedDiskRecord, found, err := d.diskRepo.Find(disk.CID())
if err != nil {
return bosherr.WrapError(err, "Finding disk record")
}
if !found {
return bosherr.Error("Failed to find disk record for new disk")
}
err = d.diskRepo.UpdateCurrent(savedDiskRecord.ID)
if err != nil {
return bosherr.WrapError(err, "Updating current disk record")
}
return nil
}
示例8: deployExistingDisk
func (d *diskDeployer) deployExistingDisk(disk bidisk.Disk, diskPool bideplmanifest.DiskPool, vm VM, stage biui.Stage) ([]bidisk.Disk, error) {
disks := []bidisk.Disk{}
// the disk is already part of the deployment, and should already be attached
disks = append(disks, disk)
// attach is idempotent
err := d.attachDisk(disk, vm, stage)
if err != nil {
return disks, err
}
if disk.NeedsMigration(diskPool.DiskSize, diskPool.CloudProperties) {
disk, err = d.migrateDisk(disk, diskPool, vm, stage)
if err != nil {
return disks, err
}
// after migration, only the new disk is part of the deployment
disks[0] = disk
}
return disks, nil
}
示例9: UnmountDisk
func (vm *vm) UnmountDisk(disk bidisk.Disk) error {
return vm.agentClient.UnmountDisk(disk.CID())
}
示例10: SetDetachDiskBehavior
func (vm *FakeVM) SetDetachDiskBehavior(disk bidisk.Disk, err error) {
vm.detachDiskBehavior[disk.CID()] = err
}