本文整理汇总了Golang中github.com/juju/juju/provider/ec2.StorageEC2函数的典型用法代码示例。如果您正苦于以下问题:Golang StorageEC2函数的具体用法?Golang StorageEC2怎么用?Golang StorageEC2使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了StorageEC2函数的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: assertCreateVolumes
func (s *ebsVolumeSuite) assertCreateVolumes(c *gc.C, vs storage.VolumeSource, instanceId string) {
vols, err := s.createVolumes(vs, instanceId)
c.Assert(err, jc.ErrorIsNil)
c.Assert(vols, gc.HasLen, 3)
c.Assert(vols, jc.SameContents, []storage.Volume{{
names.NewVolumeTag("0"),
storage.VolumeInfo{
Size: 10240,
VolumeId: "vol-0",
Persistent: true,
},
}, {
names.NewVolumeTag("1"),
storage.VolumeInfo{
Size: 20480,
VolumeId: "vol-1",
Persistent: true,
},
}, {
names.NewVolumeTag("2"),
storage.VolumeInfo{
Size: 30720,
VolumeId: "vol-2",
Persistent: false,
},
}})
ec2Client := ec2.StorageEC2(vs)
ec2Vols, err := ec2Client.Volumes(nil, nil)
c.Assert(err, jc.ErrorIsNil)
c.Assert(ec2Vols.Volumes, gc.HasLen, 3)
sortBySize(ec2Vols.Volumes)
c.Assert(ec2Vols.Volumes[0].Size, gc.Equals, 10)
c.Assert(ec2Vols.Volumes[1].Size, gc.Equals, 20)
c.Assert(ec2Vols.Volumes[2].Size, gc.Equals, 30)
}
示例2: TestDestroyVolumesStillAttached
func (s *ebsVolumeSuite) TestDestroyVolumesStillAttached(c *gc.C) {
vs := s.volumeSource(c, nil)
s.setupAttachVolumesTest(c, vs, ec2test.Running)
errs := vs.DestroyVolumes([]string{"vol-0"})
c.Assert(errs, jc.DeepEquals, []error{nil})
ec2Client := ec2.StorageEC2(vs)
ec2Vols, err := ec2Client.Volumes(nil, nil)
c.Assert(err, jc.ErrorIsNil)
c.Assert(ec2Vols.Volumes, gc.HasLen, 2)
sortBySize(ec2Vols.Volumes)
c.Assert(ec2Vols.Volumes[0].Size, gc.Equals, 20)
}
示例3: TestVolumeTags
func (s *ebsVolumeSuite) TestVolumeTags(c *gc.C) {
vs := s.volumeSource(c, nil)
results, err := s.createVolumes(vs, "")
c.Assert(err, jc.ErrorIsNil)
c.Assert(results, gc.HasLen, 3)
c.Assert(results[0].Error, jc.ErrorIsNil)
c.Assert(results[0].Volume, jc.DeepEquals, &storage.Volume{
names.NewVolumeTag("0"),
storage.VolumeInfo{
Size: 10240,
VolumeId: "vol-0",
Persistent: true,
},
})
c.Assert(results[1].Error, jc.ErrorIsNil)
c.Assert(results[1].Volume, jc.DeepEquals, &storage.Volume{
names.NewVolumeTag("1"),
storage.VolumeInfo{
Size: 20480,
VolumeId: "vol-1",
Persistent: true,
},
})
c.Assert(results[2].Error, jc.ErrorIsNil)
c.Assert(results[2].Volume, jc.DeepEquals, &storage.Volume{
names.NewVolumeTag("2"),
storage.VolumeInfo{
Size: 30720,
VolumeId: "vol-2",
Persistent: true,
},
})
ec2Client := ec2.StorageEC2(vs)
ec2Vols, err := ec2Client.Volumes(nil, nil)
c.Assert(err, jc.ErrorIsNil)
c.Assert(ec2Vols.Volumes, gc.HasLen, 3)
sortBySize(ec2Vols.Volumes)
c.Assert(ec2Vols.Volumes[0].Tags, jc.SameContents, []awsec2.Tag{
{"juju-env-uuid", "deadbeef-0bad-400d-8000-4b1d0d06f00d"},
{"Name", "juju-sample-volume-0"},
})
c.Assert(ec2Vols.Volumes[1].Tags, jc.SameContents, []awsec2.Tag{
{"juju-env-uuid", "something-else"},
{"Name", "juju-sample-volume-1"},
})
c.Assert(ec2Vols.Volumes[2].Tags, jc.SameContents, []awsec2.Tag{
{"Name", "juju-sample-volume-2"},
{"abc", "123"},
})
}
示例4: TestDetachVolumes
func (s *ebsVolumeSuite) TestDetachVolumes(c *gc.C) {
vs := s.volumeSource(c, nil)
params := s.setupAttachVolumesTest(c, vs, ec2test.Running)
_, err := vs.AttachVolumes(params)
c.Assert(err, jc.ErrorIsNil)
err = vs.DetachVolumes(params)
c.Assert(err, jc.ErrorIsNil)
ec2Client := ec2.StorageEC2(vs)
ec2Vols, err := ec2Client.Volumes(nil, nil)
c.Assert(err, jc.ErrorIsNil)
c.Assert(ec2Vols.Volumes, gc.HasLen, 3)
sortBySize(ec2Vols.Volumes)
c.Assert(ec2Vols.Volumes[0].Attachments, gc.HasLen, 0)
// Test idempotent
err = vs.DetachVolumes(params)
c.Assert(err, jc.ErrorIsNil)
}
示例5: TestVolumeTags
func (s *ebsVolumeSuite) TestVolumeTags(c *gc.C) {
vs := s.volumeSource(c, nil)
vols, err := s.createVolumes(vs, "")
c.Assert(err, jc.ErrorIsNil)
c.Assert(vols, gc.HasLen, 3)
c.Assert(vols, jc.SameContents, []storage.Volume{{
names.NewVolumeTag("0"),
storage.VolumeInfo{
Size: 10240,
VolumeId: "vol-0",
Persistent: true,
},
}, {
names.NewVolumeTag("1"),
storage.VolumeInfo{
Size: 20480,
VolumeId: "vol-1",
Persistent: true,
},
}, {
names.NewVolumeTag("2"),
storage.VolumeInfo{
Size: 30720,
VolumeId: "vol-2",
Persistent: false,
},
}})
ec2Client := ec2.StorageEC2(vs)
ec2Vols, err := ec2Client.Volumes(nil, nil)
c.Assert(err, jc.ErrorIsNil)
c.Assert(ec2Vols.Volumes, gc.HasLen, 3)
sortBySize(ec2Vols.Volumes)
c.Assert(ec2Vols.Volumes[0].Tags, jc.SameContents, []awsec2.Tag{
{"Name", "juju-sample-volume-0"},
})
c.Assert(ec2Vols.Volumes[1].Tags, jc.SameContents, []awsec2.Tag{
{"Name", "juju-sample-volume-1"},
})
c.Assert(ec2Vols.Volumes[2].Tags, jc.SameContents, []awsec2.Tag{
{"Name", "juju-sample-volume-2"},
{"abc", "123"},
})
}
示例6: TestAttachVolumes
func (s *ebsVolumeSuite) TestAttachVolumes(c *gc.C) {
vs := s.volumeSource(c, nil)
params := s.setupAttachVolumesTest(c, vs, ec2test.Running)
result, err := vs.AttachVolumes(params)
c.Assert(err, jc.ErrorIsNil)
c.Assert(result, gc.HasLen, 1)
c.Assert(result[0].Error, jc.ErrorIsNil)
c.Assert(result[0].VolumeAttachment, jc.DeepEquals, &storage.VolumeAttachment{
names.NewVolumeTag("0"),
names.NewMachineTag("1"),
storage.VolumeAttachmentInfo{
DeviceName: "xvdf",
ReadOnly: false,
},
})
ec2Client := ec2.StorageEC2(vs)
ec2Vols, err := ec2Client.Volumes(nil, nil)
c.Assert(err, jc.ErrorIsNil)
c.Assert(ec2Vols.Volumes, gc.HasLen, 3)
sortBySize(ec2Vols.Volumes)
c.Assert(ec2Vols.Volumes[0].Attachments, jc.DeepEquals, []awsec2.VolumeAttachment{{
VolumeId: "vol-0",
InstanceId: "i-3",
Device: "/dev/sdf",
Status: "attached",
}})
// Test idempotency.
result, err = vs.AttachVolumes(params)
c.Assert(err, jc.ErrorIsNil)
c.Assert(result, gc.HasLen, 1)
c.Assert(result[0].Error, jc.ErrorIsNil)
c.Assert(result[0].VolumeAttachment, jc.DeepEquals, &storage.VolumeAttachment{
names.NewVolumeTag("0"),
names.NewMachineTag("1"),
storage.VolumeAttachmentInfo{
DeviceName: "xvdf",
ReadOnly: false,
},
})
}
示例7: TestVolumeTypeAliases
func (s *ebsVolumeSuite) TestVolumeTypeAliases(c *gc.C) {
instanceIdRunning := s.srv.ec2srv.NewInstances(1, "m1.medium", imageId, ec2test.Running, nil)[0]
vs := s.volumeSource(c, nil)
ec2Client := ec2.StorageEC2(vs)
aliases := [][2]string{
{"magnetic", "standard"},
{"ssd", "gp2"},
{"provisioned-iops", "io1"},
}
for i, alias := range aliases {
params := []storage.VolumeParams{{
Tag: names.NewVolumeTag("0"),
Size: 10 * 1000,
Provider: ec2.EBS_ProviderType,
Attributes: map[string]interface{}{
"volume-type": alias[0],
},
Attachment: &storage.VolumeAttachmentParams{
AttachmentParams: storage.AttachmentParams{
InstanceId: instance.Id(instanceIdRunning),
},
},
}}
if alias[1] == "io1" {
params[0].Attributes["iops"] = 30
}
results, err := vs.CreateVolumes(params)
c.Assert(err, jc.ErrorIsNil)
c.Assert(results, gc.HasLen, 1)
c.Assert(results[0].Error, jc.ErrorIsNil)
c.Assert(results[0].Volume.VolumeId, gc.Equals, fmt.Sprintf("vol-%d", i))
}
ec2Vols, err := ec2Client.Volumes(nil, nil)
c.Assert(err, jc.ErrorIsNil)
c.Assert(ec2Vols.Volumes, gc.HasLen, len(aliases))
sort.Sort(volumeSorter{ec2Vols.Volumes, func(i, j awsec2.Volume) bool {
return i.Id < j.Id
}})
for i, alias := range aliases {
c.Assert(ec2Vols.Volumes[i].VolumeType, gc.Equals, alias[1])
}
}