本文整理汇总了Golang中github.com/juju/juju/state.VolumeInfo类的典型用法代码示例。如果您正苦于以下问题:Golang VolumeInfo类的具体用法?Golang VolumeInfo怎么用?Golang VolumeInfo使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了VolumeInfo类的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: TestSetVolumeInfo
func (s *VolumeStateSuite) TestSetVolumeInfo(c *gc.C) {
_, u, storageTag := s.setupSingleStorage(c, "block", "loop-pool")
err := s.State.AssignUnit(u, state.AssignCleanEmpty)
c.Assert(err, jc.ErrorIsNil)
volume := s.storageInstanceVolume(c, storageTag)
volumeTag := volume.VolumeTag()
s.assertVolumeUnprovisioned(c, volumeTag)
volumeInfoSet := state.VolumeInfo{Size: 123, Persistent: true, VolumeId: "vol-ume"}
err = s.State.SetVolumeInfo(volume.VolumeTag(), volumeInfoSet)
c.Assert(err, jc.ErrorIsNil)
volumeInfoSet.Pool = "loop-pool" // taken from params
s.assertVolumeInfo(c, volumeTag, volumeInfoSet)
}
示例2: TestSetVolumeInfoNoStorageAssigned
func (s *VolumeStateSuite) TestSetVolumeInfoNoStorageAssigned(c *gc.C) {
oneJob := []state.MachineJob{state.JobHostUnits}
cons := constraints.MustParse("mem=4G")
hc := instance.MustParseHardware("mem=2G")
volumeParams := state.VolumeParams{
Pool: "loop-pool",
Size: 123,
}
machineTemplate := state.MachineTemplate{
Series: "precise",
Constraints: cons,
HardwareCharacteristics: hc,
InstanceId: "inst-id",
Nonce: "nonce",
Jobs: oneJob,
Volumes: []state.MachineVolumeParams{{
Volume: volumeParams,
}},
}
machines, err := s.State.AddMachines(machineTemplate)
c.Assert(err, jc.ErrorIsNil)
c.Assert(machines, gc.HasLen, 1)
m, err := s.State.Machine(machines[0].Id())
c.Assert(err, jc.ErrorIsNil)
volumeAttachments, err := s.State.MachineVolumeAttachments(m.MachineTag())
c.Assert(err, jc.ErrorIsNil)
c.Assert(volumeAttachments, gc.HasLen, 1)
volumeTag := volumeAttachments[0].Volume()
volume := s.volume(c, volumeTag)
_, err = volume.StorageInstance()
c.Assert(err, jc.Satisfies, errors.IsNotAssigned)
s.assertVolumeUnprovisioned(c, volumeTag)
volumeInfoSet := state.VolumeInfo{Size: 123, VolumeId: "vol-ume"}
err = s.State.SetVolumeInfo(volume.VolumeTag(), volumeInfoSet)
c.Assert(err, jc.ErrorIsNil)
volumeInfoSet.Pool = "loop-pool" // taken from params
s.assertVolumeInfo(c, volumeTag, volumeInfoSet)
}
示例3: TestSetVolumeInfoImmutable
func (s *VolumeStateSuite) TestSetVolumeInfoImmutable(c *gc.C) {
_, u, storageTag := s.setupSingleStorage(c, "block", "loop-pool")
err := s.State.AssignUnit(u, state.AssignCleanEmpty)
c.Assert(err, jc.ErrorIsNil)
volume := s.storageInstanceVolume(c, storageTag)
volumeTag := volume.VolumeTag()
volumeInfoSet := state.VolumeInfo{Size: 123, VolumeId: "vol-ume"}
err = s.State.SetVolumeInfo(volume.VolumeTag(), volumeInfoSet)
c.Assert(err, jc.ErrorIsNil)
// The first call to SetVolumeInfo takes the pool name from
// the params; the second does not, but it must not change
// either. Callers are expected to get the existing info and
// update it, leaving immutable values intact.
err = s.State.SetVolumeInfo(volume.VolumeTag(), volumeInfoSet)
c.Assert(err, gc.ErrorMatches, `cannot set info for volume "0/0": cannot change pool from "loop-pool" to ""`)
volumeInfoSet.Pool = "loop-pool"
s.assertVolumeInfo(c, volumeTag, volumeInfoSet)
}