github.com/chnsz/golangsdk@v0.0.0-20240506093406-85a3fbfa605b/openstack/sms/v3/sources/requests.go (about)

     1  package sources
     2  
     3  import (
     4  	"github.com/chnsz/golangsdk"
     5  	"github.com/chnsz/golangsdk/pagination"
     6  )
     7  
     8  // ListOpts 查询源端服务器列表
     9  type ListOpts struct {
    10  	// 源端服务器名称
    11  	Name string `q:"name"`
    12  	// 源端服务器ID
    13  	Id string `q:"id"`
    14  	// 源端服务器IP地址
    15  	Ip string `q:"ip"`
    16  	// 源端服务器状态
    17  	State string `q:"state"`
    18  	// 是否查询失去连接的源端
    19  	Connected bool `q:"connected"`
    20  	// 根据迁移周期查询
    21  	MigrationCycle string `q:"migration_cycle"`
    22  	// 迁移项目id,填写该参数将查询迁移项目下的所有虚拟机
    23  	MigateProjectId string `q:"migproject"`
    24  	// 需要查询的企业项目id
    25  	EnterpriseProjectId string `q:"enterprise_project_id"`
    26  
    27  	// 每一页记录的源端服务器数量,0表示用默认值 200
    28  	Limit int `q:"limit"`
    29  	// 偏移量,默认值0
    30  	Offset int `q:"offset"`
    31  }
    32  
    33  // List is a method to query the list of the source servers using given opts.
    34  func List(c *golangsdk.ServiceClient, opts ListOpts) ([]SourceServer, error) {
    35  	url := listURL(c)
    36  	query, err := golangsdk.BuildQueryString(opts)
    37  	if err != nil {
    38  		return nil, err
    39  	}
    40  	url += query.String()
    41  
    42  	pages, err := pagination.NewPager(c, url, func(r pagination.PageResult) pagination.Page {
    43  		p := SourceServerPage{pagination.OffsetPageBase{PageResult: r}}
    44  		return p
    45  	}).AllPages()
    46  
    47  	if err != nil {
    48  		return nil, err
    49  	}
    50  	return ExtractSourceServers(pages)
    51  }
    52  
    53  // Get 查询指定ID的源端服务器
    54  func Get(c *golangsdk.ServiceClient, id string) (*SourceServer, error) {
    55  	var rst golangsdk.Result
    56  	_, rst.Err = c.Get(getURL(c, id), &rst.Body, nil)
    57  
    58  	var r SourceServer
    59  	err := rst.ExtractInto(&r)
    60  	if err != nil {
    61  		return nil, err
    62  	}
    63  
    64  	return &r, nil
    65  }