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) {}