diff --git a/.drone.yml b/.drone.yml index 3086cd7..484c325 100644 --- a/.drone.yml +++ b/.drone.yml @@ -3,7 +3,7 @@ type: kubernetes name: 'Golang Build' environment: - BINARY_VERSION: v0.5.2 + BINARY_VERSION: v0.5.1 clone: disable: true diff --git a/cmd/npp-prepper/main.go b/cmd/npp-prepper/main.go index 3036318..cf3ba5c 100644 --- a/cmd/npp-prepper/main.go +++ b/cmd/npp-prepper/main.go @@ -28,10 +28,9 @@ var Commands struct { Force bool `short:"f" long:"force"` } // `command:"datacenter" alias:"dc" description:"Define a Network Protocol Profile within a datacenter"` VirtualMachine struct { - Name string `short:"n" long:"name" description:"Name of virtual machine" required:"true"` - Datacenter string `long:"datacenter" description:"Name of datacenter" required:"true"` - Network string `long:"portgroup" description:"Name of network portgroup" required:"true"` - DisableOvfTransport bool `long:"disableovftransport" description:"Disable the OVF transport 'VMware Tools'"` + Name string `short:"n" long:"name" description:"Name of virtual machine" required:"true"` + Datacenter string `long:"datacenter" description:"Name of datacenter" required:"true"` + Network string `long:"portgroup" description:"Name of network portgroup" required:"true"` } // `command:"virtualmachine" alias:"vm" description:"Configure a virtual machine for usage of Network Protocol Profiles"` GuestOS struct { } // `command:"guestos" alias:"os" description:"Configure guest OS network with allocated IP address"` @@ -45,7 +44,6 @@ func main() { parser.AddCommand("vm", "", "", &Commands.VirtualMachine) parser.AddCommand("guestos", "Configure guest OS network with allocated IP address", "", &Commands.GuestOS) parser.AddCommand("os", "", "", &Commands.GuestOS) - _, err := parser.Parse() if err != nil { if flagsErr, ok := err.(*flags.Error); ok && flagsErr.Type == flags.ErrHelp { @@ -73,7 +71,7 @@ func main() { case "guestos", "os": // TODO case "virtualmachine", "vm": - if err := hypervisor.SetVirtualMachineProperties(ctx, clt, Commands.VirtualMachine.Datacenter, Commands.VirtualMachine.Name, Commands.VirtualMachine.Network, Commands.VirtualMachine.DisableOvfTransport); err != nil { + if err := hypervisor.SetVirtualMachineProperties(ctx, clt, Commands.VirtualMachine.Datacenter, Commands.VirtualMachine.Name, Commands.VirtualMachine.Network); err != nil { log.Fatalf("[ERROR] Could not apply vApp properties: %s", err) } diff --git a/pkg/hypervisor/virtualmachine.go b/pkg/hypervisor/virtualmachine.go index 279afa7..ace126f 100644 --- a/pkg/hypervisor/virtualmachine.go +++ b/pkg/hypervisor/virtualmachine.go @@ -16,7 +16,7 @@ type vAPPProperty struct { Value string } -func SetVirtualMachineProperties(ctx context.Context, clt *vim25.Client, datacenter, virtualmachine, network string, disableovftransport bool) error { +func SetVirtualMachineProperties(ctx context.Context, clt *vim25.Client, datacenter, virtualmachine, network string) error { finder := find.NewFinder(clt, true) dc, err := finder.Datacenter(ctx, datacenter) @@ -36,31 +36,31 @@ func SetVirtualMachineProperties(ctx context.Context, clt *vim25.Client, datacen vappconfig := &types.VmConfigSpec{ OvfEnvironmentTransport: []string{"com.vmware.guestInfo"}, } - if disableovftransport == true { - vappconfig = &types.VmConfigSpec{} - } - currentvappproperties := moref.Config.VAppConfig.GetVmConfigInfo().Property - for _, vappproperty := range currentvappproperties { - vappconfig.Property = append(vappconfig.Property, types.VAppPropertySpec{ - ArrayUpdateSpec: types.ArrayUpdateSpec{ - Operation: types.ArrayUpdateOperationAdd, - }, - Info: &types.VAppPropertyInfo{ - Key: vappproperty.Key, - ClassId: vappproperty.ClassId, - InstanceId: vappproperty.InstanceId, - Id: vappproperty.Id, - Category: vappproperty.Category, - Label: vappproperty.Label, - Type: vappproperty.Type, - TypeReference: vappproperty.TypeReference, - UserConfigurable: vappproperty.UserConfigurable, - DefaultValue: vappproperty.DefaultValue, - Value: vappproperty.Value, - Description: vappproperty.Description, - }, - }) + currentvappproperties := []types.VAppPropertyInfo{} + if moref.Config != nil { + currentvappproperties = moref.Config.VAppConfig.GetVmConfigInfo().Property + for _, vappproperty := range currentvappproperties { + vappconfig.Property = append(vappconfig.Property, types.VAppPropertySpec{ + ArrayUpdateSpec: types.ArrayUpdateSpec{ + Operation: types.ArrayUpdateOperationAdd, + }, + Info: &types.VAppPropertyInfo{ + Key: vappproperty.Key, + ClassId: vappproperty.ClassId, + InstanceId: vappproperty.InstanceId, + Id: vappproperty.Id, + Category: vappproperty.Category, + Label: vappproperty.Label, + Type: vappproperty.Type, + TypeReference: vappproperty.TypeReference, + UserConfigurable: vappproperty.UserConfigurable, + DefaultValue: vappproperty.DefaultValue, + Value: vappproperty.Value, + Description: vappproperty.Description, + }, + }) + } } newvappproperties := []vAPPProperty{