Skip to content

Commit

Permalink
Move getDatacenter to vsphere/datacenter_helper.go, add API handling
Browse files Browse the repository at this point in the history
Moved getDatacenter to its own helper code, as a lot of other resources
use it. Also added the ability of it to detect the connected API type
(ESXi vs vCenter), and just use the default if on ESXi.
  • Loading branch information
vancluever committed Aug 30, 2017
1 parent 658941d commit 701a445
Show file tree
Hide file tree
Showing 2 changed files with 30 additions and 12 deletions.
30 changes: 30 additions & 0 deletions vsphere/datacenter_helper.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
package vsphere

import (
"fmt"

"github.com/vmware/govmomi"
"github.com/vmware/govmomi/find"
"github.com/vmware/govmomi/object"
"golang.org/x/net/context"
)

// getDatacenter gets the higher-level datacenter object for the datacenter
// name supplied by dc.
//
// The default datacenter is denoted by using an empty string. When working
// with ESXi directly, the default datacenter is always selected.
func getDatacenter(c *govmomi.Client, dc string) (*object.Datacenter, error) {
finder := find.NewFinder(c.Client, true)
t := c.ServiceContent.About.ApiType
switch t {
case "HostAgent":
return finder.DefaultDatacenter(context.TODO())
case "VirtualCenter":
if dc != "" {
return finder.Datacenter(context.TODO(), dc)
}
return finder.DefaultDatacenter(context.TODO())
}
return nil, fmt.Errorf("unsupported ApiType: %s", t)
}
12 changes: 0 additions & 12 deletions vsphere/resource_vsphere_folder.go
Original file line number Diff line number Diff line change
Expand Up @@ -223,15 +223,3 @@ func deleteFolder(client *govmomi.Client, f *folder) error {
}
return nil
}

// getDatacenter gets datacenter object
func getDatacenter(c *govmomi.Client, dc string) (*object.Datacenter, error) {
finder := find.NewFinder(c.Client, true)
if dc != "" {
d, err := finder.Datacenter(context.TODO(), dc)
return d, err
} else {
d, err := finder.DefaultDatacenter(context.TODO())
return d, err
}
}

0 comments on commit 701a445

Please # to comment.