github.com/vijayrajah/packer@v1.3.2/post-processor/vsphere-template/step_choose_datacenter.go (about) 1 package vsphere_template 2 3 import ( 4 "context" 5 6 "github.com/hashicorp/packer/helper/multistep" 7 "github.com/hashicorp/packer/packer" 8 "github.com/vmware/govmomi" 9 "github.com/vmware/govmomi/find" 10 ) 11 12 type stepChooseDatacenter struct { 13 Datacenter string 14 } 15 16 func (s *stepChooseDatacenter) Run(_ context.Context, state multistep.StateBag) multistep.StepAction { 17 ui := state.Get("ui").(packer.Ui) 18 cli := state.Get("client").(*govmomi.Client) 19 finder := find.NewFinder(cli.Client, false) 20 21 ui.Message("Choosing datacenter...") 22 23 dc, err := finder.DatacenterOrDefault(context.Background(), s.Datacenter) 24 if err != nil { 25 state.Put("error", err) 26 ui.Error(err.Error()) 27 return multistep.ActionHalt 28 } 29 30 state.Put("dcPath", dc.InventoryPath) 31 32 return multistep.ActionContinue 33 } 34 35 func (s *stepChooseDatacenter) Cleanup(multistep.StateBag) {}