github.com/opentelekomcloud/gophertelekomcloud@v0.9.3/openstack/dataarts/v1.1/job/Get.go (about) 1 package job 2 3 import ( 4 "github.com/opentelekomcloud/gophertelekomcloud" 5 "github.com/opentelekomcloud/gophertelekomcloud/internal/extract" 6 "github.com/opentelekomcloud/gophertelekomcloud/pagination" 7 ) 8 9 type GetQuery struct { 10 Filter string `q:"filter"` 11 PageNo int `q:"page_no"` 12 PageSize int `q:"page_size"` 13 JobType string `q:"jobType"` 14 ClusterId string 15 JobName string 16 } 17 18 // Get returns 500 error, not usable 19 func Get(client *golangsdk.ServiceClient, opts GetQuery) ([]Job, error) { 20 url, err := golangsdk.NewURLBuilder().WithEndpoints("clusters", opts.ClusterId, "cdm", "job", opts.JobName).WithQueryParams(&opts).Build() 21 if err != nil { 22 return nil, err 23 } 24 25 pages, err := pagination.NewPager(client, client.ServiceURL(url.String()), 26 func(r pagination.PageResult) pagination.Page { 27 return JobPage{pagination.LinkedPageBase{PageResult: r}} 28 }).AllPages() 29 if err != nil { 30 return nil, err 31 } 32 33 allJobs, err := ExtractJobs(pages) 34 if err != nil { 35 return nil, err 36 } 37 38 return allJobs, err 39 } 40 41 func ExtractJobs(r pagination.Page) ([]Job, error) { 42 var res []Job 43 err := extract.IntoSlicePtr(r.(JobPage).Result.BodyReader(), &res, "jobs") 44 if err != nil { 45 return nil, err 46 } 47 return res, nil 48 } 49 50 type Job struct { 51 } 52 53 type JobPage struct { 54 pagination.LinkedPageBase 55 }