文档首页> > 开发指南> Go> EVS Go SDK用户指导

EVS Go SDK用户指导

更新时间: 2018-11-26 14:49

Service Client

为了能够与OpenStack API进行交互,首先必须将身份验证凭据传递给Provider,此后,如果要检索BlockStorage服务的任何信息,则需要调用NewBlockStorageV2方法来创建一个BlockStorage服务客户端,然后即可使用相关的SDK。

client, err := openstack.NewBlockStorageV2(provider, gophercloud.EndpointOpts{
 Region: "RegionName",
})

Volumes 卷

卷是指可卸载的块存储设备。一个卷一次只能挂载给一个实例。

Create a volume 创建卷

通过Create可以根据CreateOpts的值创建新卷。通过在CreateResult上调用Extract方法,从响应中提取Volume信息。

import (    "github.com/gophercloud/gophercloud/openstack/blockstorage/v2/volumes"   ) 

func TestVolumeCreateFromImage(t *testing.T) {
    createOpts := volumes.CreateOpts{
           ImageID: "image_id",
           AvailabilityZone: "AvailabilityZone",
           Description: "creating volume from image",
           Size:40,
           Name:"volumeName",
           VolumeType:"SATA",
    }
    volume, err := volumes.Create(client, createOpts).Extract()
}

List volumes 查询卷列表

通过List可以获取卷列表,筛选条件由ListOpts提供。

func TestVolumesListName(t *testing.T) {
    ListOps:= volumes.ListOpts{
           Name: "VolumeName",
    }
    // Retrieve a pager (i.e. a paginated collection)
    allPages, err := volumes.List(client, ListOps).AllPages()
    
    // Define an anonymous function to be executed on each page's iteration
    allVolumes, err := volumes.ExtractVolumes(allPages)

    for _, volume := range allVolumes {
           // " volume " will be a volumes.Volume
    }
}

Update a volume 更新卷

通过Update可更新卷信息。可通过在UpdateResult上调用Extract方法,从响应中提取更新后的卷信息。

func TestVolumeUpdate(t *testing.T){
    updateOpts :=volumes.UpdateOpts{
           Name: "volumeName",
           Description:"it is updating",
           Metadata:map[string]string{
                  "update": "testing",
           },
    }
    volume, err := volumes.Update(client, "volume_id",updateOpts).Extract()
}

Get details for a specific volume 获取指定卷详情

Get通过所提供的卷ID检索卷。可通过在GetResult上调用Extract方法,从响应中提取卷信息。

func TestVolumeShow(t *testing.T) {
    volume,err:= volumes.Get(client,"volume_id").Extract()
}

Delete a volume 删除卷

通过Delete可根据所提供的卷ID删除现有卷。

func TestVolumeDelete(t *testing.T){
    err := volumes.Delete(client, "volume_id").ExtractErr()
}

文档是否有解决您的问题?

提交成功!

非常感谢您的反馈,我们会继续努力做到更好!

反馈提交失败,请稍后再试!

在文档使用中是否遇到以下问题







请至少选择或填写一项反馈信息

字符长度不能超过100

反馈内容不能为空!

提交反馈 取消

如您有其它疑问,您也可以通过华为云社区问答频道来与我们联系探讨

跳转到云社区
点我,12·12惊喜等着你哦~