■ ■ ■ ■ ■ ■
pkg/cloud_provider/client/vsphere.go
| skipped 33 lines |
34 | 34 | | } |
35 | 35 | | } |
36 | 36 | | |
37 | | - | func (v *vSphereClient) ListDatacenter() ([]string, error) { |
| 37 | + | func (v *vSphereClient) ListDatacenter() ([]string, string, error) { |
38 | 38 | | err := v.GetConnect() |
| 39 | + | version := "" |
39 | 40 | | if err != nil { |
40 | | - | return nil, err |
| 41 | + | return nil, version, err |
41 | 42 | | } |
42 | 43 | | client := v.Client.Client |
43 | 44 | | var result []string |
44 | | - | |
| 45 | + | version = v.Client.ServiceContent.About.Version |
45 | 46 | | var datacenters []*object.Datacenter |
46 | 47 | | f := find.NewFinder(client, true) |
47 | 48 | | datacenters, err = f.DatacenterList(context.TODO(), "*") |
48 | 49 | | if err != nil { |
49 | | - | return nil, err |
| 50 | + | return nil, version, err |
50 | 51 | | } |
51 | | - | |
52 | 52 | | for _, d := range datacenters { |
53 | 53 | | datacenterPath := d.Common.InventoryPath |
54 | 54 | | result = append(result, strings.Replace(datacenterPath, "/", "", 1)) |
55 | 55 | | } |
56 | | - | return result, nil |
| 56 | + | return result, version, nil |
57 | 57 | | } |
58 | 58 | | |
59 | 59 | | func (v *vSphereClient) ListClusters() ([]interface{}, error) { |
| skipped 502 lines |
562 | 562 | | return result, nil |
563 | 563 | | } |
564 | 564 | | |
| 565 | + | func (v *vSphereClient) ListFolders() ([]string, error) { |
| 566 | + | result := []string{} |
| 567 | + | if err := v.GetConnect(); err != nil { |
| 568 | + | return result, err |
| 569 | + | } |
| 570 | + | client := v.Client.Client |
| 571 | + | ctx := context.TODO() |
| 572 | + | f := find.NewFinder(client, true) |
| 573 | + | dc, err := f.Datacenter(ctx, v.Vars["datacenter"].(string)) |
| 574 | + | if err != nil { |
| 575 | + | return nil, err |
| 576 | + | } |
| 577 | + | f.SetDatacenter(dc) |
| 578 | + | folders, err := f.FolderList(ctx, "*") |
| 579 | + | if err != nil { |
| 580 | + | return nil, err |
| 581 | + | } |
| 582 | + | for _, fold := range folders { |
| 583 | + | result = append(result, fold.Name()) |
| 584 | + | } |
| 585 | + | return result, nil |
| 586 | + | } |
| 587 | + | |