本文整理汇总了Golang中github.com/codedellemc/libstorage/api/types.Store.GetStore方法的典型用法代码示例。如果您正苦于以下问题:Golang Store.GetStore方法的具体用法?Golang Store.GetStore怎么用?Golang Store.GetStore使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类github.com/codedellemc/libstorage/api/types.Store
的用法示例。
在下文中一共展示了Store.GetStore方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: VolumeSnapshot
func (d *driver) VolumeSnapshot(
ctx types.Context,
volumeID, snapshotName string,
opts types.Store) (*types.Snapshot, error) {
context.MustSession(ctx)
v, err := d.getVolumeByID(volumeID)
if err != nil {
return nil, err
}
s := &types.Snapshot{
ID: d.newSnapshotID(v.ID),
VolumeID: v.ID,
VolumeSize: v.Size,
Name: snapshotName,
Status: "online",
StartTime: time.Now().Unix(),
Fields: v.Fields,
}
if customFields := opts.GetStore("opts"); customFields != nil {
for _, k := range customFields.Keys() {
s.Fields[k] = customFields.GetString(k)
}
}
if err := d.writeSnapshot(s); err != nil {
return nil, err
}
return s, nil
}
示例2: SnapshotCopy
func (d *driver) SnapshotCopy(
ctx types.Context,
snapshotID, snapshotName, destinationID string,
opts types.Store) (*types.Snapshot, error) {
context.MustSession(ctx)
ogSnap, err := d.getSnapshotByID(snapshotID)
if err != nil {
return nil, err
}
newSnap := &types.Snapshot{
ID: d.newSnapshotID(ogSnap.VolumeID),
VolumeID: ogSnap.VolumeID,
VolumeSize: ogSnap.VolumeSize,
Name: snapshotName,
Status: "online",
StartTime: time.Now().Unix(),
Fields: ogSnap.Fields,
}
if customFields := opts.GetStore("opts"); customFields != nil {
for _, k := range customFields.Keys() {
newSnap.Fields[k] = customFields.GetString(k)
}
}
if err := d.writeSnapshot(newSnap); err != nil {
return nil, err
}
return newSnap, nil
}
示例3: VolumeCopy
func (d *driver) VolumeCopy(
ctx types.Context,
volumeID, volumeName string,
opts types.Store) (*types.Volume, error) {
context.MustSession(ctx)
ogVol, err := d.getVolumeByID(volumeID)
if err != nil {
return nil, err
}
newVol := &types.Volume{
ID: d.newVolumeID(),
Name: volumeName,
AvailabilityZone: ogVol.AvailabilityZone,
IOPS: ogVol.IOPS,
Size: ogVol.Size,
Type: ogVol.Type,
Fields: ogVol.Fields,
}
if customFields := opts.GetStore("opts"); customFields != nil {
for _, k := range customFields.Keys() {
newVol.Fields[k] = customFields.GetString(k)
}
}
if err := d.writeVolume(newVol); err != nil {
return nil, err
}
return newVol, nil
}