diff --git a/builder/cloudstack/config.go b/builder/cloudstack/config.go index 5be4c58b1..f74a89502 100644 --- a/builder/cloudstack/config.go +++ b/builder/cloudstack/config.go @@ -37,7 +37,7 @@ type Config struct { Network string `mapstructure:"network"` Project string `mapstructure:"project"` PublicIPAddress string `mapstructure:"public_ip_address"` - PublicPort uint `mapstructure:"public_port"` + PublicPort int `mapstructure:"public_port"` SecurityGroups []string `mapstructure:"security_groups"` ServiceOffering string `mapstructure:"service_offering"` PreventFirewallChanges bool `mapstructure:"prevent_firewall_changes"` diff --git a/builder/cloudstack/ssh.go b/builder/cloudstack/ssh.go index f50c7e77d..ec9fbe123 100644 --- a/builder/cloudstack/ssh.go +++ b/builder/cloudstack/ssh.go @@ -15,8 +15,8 @@ func commHost(state multistep.StateBag) (string, error) { return ip, nil } -func commPort(state multistep.StateBag) (uint, error) { - commPort, hasPort := state.Get("commPort").(uint) +func commPort(state multistep.StateBag) (int, error) { + commPort, hasPort := state.Get("commPort").(int) if !hasPort { return 0, fmt.Errorf("Failed to retrieve communication port") } diff --git a/builder/cloudstack/step_configure_networking.go b/builder/cloudstack/step_configure_networking.go index a08280f9c..39636b54f 100644 --- a/builder/cloudstack/step_configure_networking.go +++ b/builder/cloudstack/step_configure_networking.go @@ -13,8 +13,8 @@ import ( ) type stepSetupNetworking struct { - privatePort uint - publicPort uint + privatePort int + publicPort int } func (s *stepSetupNetworking) Run(_ context.Context, state multistep.StateBag) multistep.StepAction { @@ -36,7 +36,7 @@ func (s *stepSetupNetworking) Run(_ context.Context, state multistep.StateBag) m } else { // Generate a random public port used to configure our port forward. rand.Seed(time.Now().UnixNano()) - s.publicPort = uint(50000 + rand.Intn(10000)) + s.publicPort = 50000 + rand.Intn(10000) } state.Put("commPort", s.publicPort) @@ -99,9 +99,9 @@ func (s *stepSetupNetworking) Run(_ context.Context, state multistep.StateBag) m ui.Message("Creating port forward...") p := client.Firewall.NewCreatePortForwardingRuleParams( config.PublicIPAddress, - int(s.privatePort), + s.privatePort, "TCP", - int(s.publicPort), + s.publicPort, instanceID, ) @@ -143,8 +143,8 @@ func (s *stepSetupNetworking) Run(_ context.Context, state multistep.StateBag) m p.SetAclid(network.Aclid) p.SetAction("allow") p.SetCidrlist(config.CIDRList) - p.SetStartport(int(s.privatePort)) - p.SetEndport(int(s.privatePort)) + p.SetStartport(s.privatePort) + p.SetEndport(s.privatePort) p.SetTraffictype("ingress") // Create the network ACL rule. @@ -166,8 +166,8 @@ func (s *stepSetupNetworking) Run(_ context.Context, state multistep.StateBag) m // Configure the firewall rule. p.SetCidrlist(config.CIDRList) - p.SetStartport(int(s.publicPort)) - p.SetEndport(int(s.publicPort)) + p.SetStartport(s.publicPort) + p.SetEndport(s.publicPort) fwRule, err := client.Firewall.CreateFirewallRule(p) if err != nil { diff --git a/builder/cloudstack/step_create_instance.go b/builder/cloudstack/step_create_instance.go index 11303f46e..6cc97ae0a 100644 --- a/builder/cloudstack/step_create_instance.go +++ b/builder/cloudstack/step_create_instance.go @@ -18,7 +18,7 @@ import ( // userDataTemplateData represents variables for user_data interpolation type userDataTemplateData struct { HTTPIP string - HTTPPort uint + HTTPPort int } // stepCreateInstance represents a Packer build step that creates CloudStack instances. @@ -86,7 +86,7 @@ func (s *stepCreateInstance) Run(_ context.Context, state multistep.StateBag) mu } if config.UserData != "" { - httpPort := state.Get("http_port").(uint) + httpPort := state.Get("http_port").(int) httpIP, err := hostIP() if err != nil { err := fmt.Errorf("Failed to determine host IP: %s", err) diff --git a/builder/cloudstack/step_create_security_group.go b/builder/cloudstack/step_create_security_group.go index 1e3e251bc..c42eec5d5 100644 --- a/builder/cloudstack/step_create_security_group.go +++ b/builder/cloudstack/step_create_security_group.go @@ -54,8 +54,8 @@ func (s *stepCreateSecurityGroup) Run(_ context.Context, state multistep.StateBa i.SetCidrlist(config.CIDRList) i.SetProtocol("TCP") i.SetSecuritygroupid(sg.Id) - i.SetStartport(int(config.Comm.Port())) - i.SetEndport(int(config.Comm.Port())) + i.SetStartport(config.Comm.Port()) + i.SetEndport(config.Comm.Port()) if config.Project != "" { i.SetProjectid(config.Project) } diff --git a/builder/hyperv/common/step_type_boot_command.go b/builder/hyperv/common/step_type_boot_command.go index dc4b27c85..0d296ce8c 100644 --- a/builder/hyperv/common/step_type_boot_command.go +++ b/builder/hyperv/common/step_type_boot_command.go @@ -15,7 +15,7 @@ import ( type bootCommandTemplateData struct { HTTPIP string - HTTPPort uint + HTTPPort int Name string } @@ -29,7 +29,7 @@ type StepTypeBootCommand struct { } func (s *StepTypeBootCommand) Run(ctx context.Context, state multistep.StateBag) multistep.StepAction { - httpPort := state.Get("http_port").(uint) + httpPort := state.Get("http_port").(int) ui := state.Get("ui").(packer.Ui) driver := state.Get("driver").(Driver) vmName := state.Get("vmName").(string) diff --git a/builder/hyperv/iso/builder_test.go b/builder/hyperv/iso/builder_test.go index a79ae4d87..a07ab38bd 100644 --- a/builder/hyperv/iso/builder_test.go +++ b/builder/hyperv/iso/builder_test.go @@ -610,7 +610,7 @@ func TestUserVariablesInBootCommand(t *testing.T) { state.Put("config", &b.config) state.Put("driver", driver) state.Put("hook", hook) - state.Put("http_port", uint(0)) + state.Put("http_port", 0) state.Put("ui", ui) state.Put("vmName", "packer-foo") diff --git a/builder/hyperv/vmcx/builder_test.go b/builder/hyperv/vmcx/builder_test.go index 60c36735b..735d1be8a 100644 --- a/builder/hyperv/vmcx/builder_test.go +++ b/builder/hyperv/vmcx/builder_test.go @@ -511,7 +511,7 @@ func TestUserVariablesInBootCommand(t *testing.T) { state.Put("config", &b.config) state.Put("driver", driver) state.Put("hook", hook) - state.Put("http_port", uint(0)) + state.Put("http_port", 0) state.Put("ui", ui) state.Put("vmName", "packer-foo") diff --git a/builder/parallels/common/step_type_boot_command.go b/builder/parallels/common/step_type_boot_command.go index 4e1e47b20..83abd28c2 100644 --- a/builder/parallels/common/step_type_boot_command.go +++ b/builder/parallels/common/step_type_boot_command.go @@ -14,7 +14,7 @@ import ( type bootCommandTemplateData struct { HTTPIP string - HTTPPort uint + HTTPPort int Name string } @@ -32,7 +32,7 @@ type StepTypeBootCommand struct { // Run types the boot command by sending key scancodes into the VM. func (s *StepTypeBootCommand) Run(ctx context.Context, state multistep.StateBag) multistep.StepAction { debug := state.Get("debug").(bool) - httpPort := state.Get("http_port").(uint) + httpPort := state.Get("http_port").(int) ui := state.Get("ui").(packer.Ui) driver := state.Get("driver").(Driver) diff --git a/builder/parallels/pvm/builder.go b/builder/parallels/pvm/builder.go index 72af59f5c..001801849 100644 --- a/builder/parallels/pvm/builder.go +++ b/builder/parallels/pvm/builder.go @@ -46,7 +46,7 @@ func (b *Builder) Run(ui packer.Ui, hook packer.Hook) (packer.Artifact, error) { state.Put("driver", driver) state.Put("hook", hook) state.Put("ui", ui) - state.Put("http_port", uint(0)) + state.Put("http_port", 0) // Build the steps. steps := []multistep.Step{ diff --git a/builder/qemu/builder.go b/builder/qemu/builder.go index c30f22f3e..7d42939a4 100644 --- a/builder/qemu/builder.go +++ b/builder/qemu/builder.go @@ -116,12 +116,12 @@ type Config struct { QemuArgs [][]string `mapstructure:"qemuargs"` QemuBinary string `mapstructure:"qemu_binary"` ShutdownCommand string `mapstructure:"shutdown_command"` - SSHHostPortMin uint `mapstructure:"ssh_host_port_min"` - SSHHostPortMax uint `mapstructure:"ssh_host_port_max"` + SSHHostPortMin int `mapstructure:"ssh_host_port_min"` + SSHHostPortMax int `mapstructure:"ssh_host_port_max"` UseDefaultDisplay bool `mapstructure:"use_default_display"` VNCBindAddress string `mapstructure:"vnc_bind_address"` - VNCPortMin uint `mapstructure:"vnc_port_min"` - VNCPortMax uint `mapstructure:"vnc_port_max"` + VNCPortMin int `mapstructure:"vnc_port_min"` + VNCPortMax int `mapstructure:"vnc_port_max"` VMName string `mapstructure:"vm_name"` // These are deprecated, but we keep them around for BC diff --git a/builder/qemu/ssh.go b/builder/qemu/ssh.go index b2f6ed150..1fe4537bd 100644 --- a/builder/qemu/ssh.go +++ b/builder/qemu/ssh.go @@ -8,7 +8,7 @@ func commHost(state multistep.StateBag) (string, error) { return "127.0.0.1", nil } -func commPort(state multistep.StateBag) (uint, error) { - sshHostPort := state.Get("sshHostPort").(uint) - return sshHostPort, nil +func commPort(state multistep.StateBag) (int, error) { + sshHostPort := state.Get("sshHostPort").(int) + return int(sshHostPort), nil } diff --git a/builder/qemu/step_configure_vnc.go b/builder/qemu/step_configure_vnc.go index 9e0f2b97a..465288e7f 100644 --- a/builder/qemu/step_configure_vnc.go +++ b/builder/qemu/step_configure_vnc.go @@ -17,7 +17,7 @@ import ( // ui packer.Ui // // Produces: -// vnc_port uint - The port that VNC is configured to listen on. +// vnc_port int - The port that VNC is configured to listen on. type stepConfigureVNC struct { l *net.Listener } diff --git a/builder/qemu/step_run.go b/builder/qemu/step_run.go index c806e10dd..aea087795 100644 --- a/builder/qemu/step_run.go +++ b/builder/qemu/step_run.go @@ -21,11 +21,11 @@ type stepRun struct { type qemuArgsTemplateData struct { HTTPIP string - HTTPPort uint + HTTPPort int HTTPDir string OutputDir string Name string - SSHHostPort uint + SSHHostPort int } func (s *stepRun) Run(_ context.Context, state multistep.StateBag) multistep.StepAction { @@ -63,7 +63,7 @@ func getCommandArgs(bootDrive string, state multistep.StateBag) ([]string, error config := state.Get("config").(*Config) isoPath := state.Get("iso_path").(string) vncIP := state.Get("vnc_ip").(string) - vncPort := state.Get("vnc_port").(uint) + vncPort := state.Get("vnc_port").(int) ui := state.Get("ui").(packer.Ui) driver := state.Get("driver").(Driver) @@ -74,12 +74,12 @@ func getCommandArgs(bootDrive string, state multistep.StateBag) ([]string, error defaultArgs := make(map[string]interface{}) var deviceArgs []string var driveArgs []string - var sshHostPort uint + var sshHostPort int defaultArgs["-name"] = vmName defaultArgs["-machine"] = fmt.Sprintf("type=%s", config.MachineType) if config.Comm.Type != "none" { - sshHostPort = state.Get("sshHostPort").(uint) + sshHostPort = state.Get("sshHostPort").(int) defaultArgs["-netdev"] = fmt.Sprintf("user,id=user.0,hostfwd=tcp::%v-:%d", sshHostPort, config.Comm.Port()) } else { defaultArgs["-netdev"] = fmt.Sprintf("user,id=user.0") @@ -121,7 +121,7 @@ func getCommandArgs(bootDrive string, state multistep.StateBag) ([]string, error if vncIpOk && vncPortOk { vncIp := vncIpRaw.(string) - vncPort := vncPortRaw.(uint) + vncPort := vncPortRaw.(int) ui.Message(fmt.Sprintf( "The VM will be run headless, without a GUI. If you want to\n"+ @@ -175,7 +175,7 @@ func getCommandArgs(bootDrive string, state multistep.StateBag) ([]string, error if len(config.QemuArgs) > 0 { ui.Say("Overriding defaults Qemu arguments with QemuArgs...") - httpPort := state.Get("http_port").(uint) + httpPort := state.Get("http_port").(int) ctx := config.ctx if config.Comm.Type != "none" { ctx.Data = qemuArgsTemplateData{ diff --git a/builder/qemu/step_type_boot_command.go b/builder/qemu/step_type_boot_command.go index 86e838d25..b524967cb 100644 --- a/builder/qemu/step_type_boot_command.go +++ b/builder/qemu/step_type_boot_command.go @@ -19,7 +19,7 @@ const KeyLeftShift uint32 = 0xFFE1 type bootCommandTemplateData struct { HTTPIP string - HTTPPort uint + HTTPPort int Name string } @@ -29,7 +29,7 @@ type bootCommandTemplateData struct { // config *config // http_port int // ui packer.Ui -// vnc_port uint +// vnc_port int // // Produces: // @@ -38,9 +38,9 @@ type stepTypeBootCommand struct{} func (s *stepTypeBootCommand) Run(ctx context.Context, state multistep.StateBag) multistep.StepAction { config := state.Get("config").(*Config) debug := state.Get("debug").(bool) - httpPort := state.Get("http_port").(uint) + httpPort := state.Get("http_port").(int) ui := state.Get("ui").(packer.Ui) - vncPort := state.Get("vnc_port").(uint) + vncPort := state.Get("vnc_port").(int) vncIP := state.Get("vnc_ip").(string) if config.VNCConfig.DisableVNC { diff --git a/builder/vagrant/ssh.go b/builder/vagrant/ssh.go index 4b4f23650..d4a56cb17 100644 --- a/builder/vagrant/ssh.go +++ b/builder/vagrant/ssh.go @@ -11,8 +11,8 @@ func CommHost() func(multistep.StateBag) (string, error) { } } -func SSHPort() func(multistep.StateBag) (uint, error) { - return func(state multistep.StateBag) (uint, error) { +func SSHPort() func(multistep.StateBag) (int, error) { + return func(state multistep.StateBag) (int, error) { config := state.Get("config").(*Config) return config.Comm.SSHPort, nil } diff --git a/builder/vagrant/step_ssh_config.go b/builder/vagrant/step_ssh_config.go index 2a5a878e2..68fc13aa3 100644 --- a/builder/vagrant/step_ssh_config.go +++ b/builder/vagrant/step_ssh_config.go @@ -44,7 +44,7 @@ func (s *StepSSHConfig) Run(_ context.Context, state multistep.StateBag) multist state.Put("error", err) return multistep.ActionHalt } - config.Comm.SSHPort = uint(port) + config.Comm.SSHPort = port return multistep.ActionContinue } diff --git a/builder/virtualbox/common/run_config.go b/builder/virtualbox/common/run_config.go index cf94c306b..e5cae02a6 100644 --- a/builder/virtualbox/common/run_config.go +++ b/builder/virtualbox/common/run_config.go @@ -10,8 +10,8 @@ type RunConfig struct { Headless bool `mapstructure:"headless"` VRDPBindAddress string `mapstructure:"vrdp_bind_address"` - VRDPPortMin uint `mapstructure:"vrdp_port_min"` - VRDPPortMax uint `mapstructure:"vrdp_port_max"` + VRDPPortMin int `mapstructure:"vrdp_port_min"` + VRDPPortMax int `mapstructure:"vrdp_port_max"` } func (c *RunConfig) Prepare(ctx *interpolate.Context) (errs []error) { diff --git a/builder/virtualbox/common/ssh.go b/builder/virtualbox/common/ssh.go index 494274e15..7734dc6b2 100644 --- a/builder/virtualbox/common/ssh.go +++ b/builder/virtualbox/common/ssh.go @@ -10,7 +10,7 @@ func CommHost(host string) func(multistep.StateBag) (string, error) { } } -func SSHPort(state multistep.StateBag) (uint, error) { - sshHostPort := state.Get("sshHostPort").(uint) +func SSHPort(state multistep.StateBag) (int, error) { + sshHostPort := state.Get("sshHostPort").(int) return sshHostPort, nil } diff --git a/builder/virtualbox/common/ssh_config.go b/builder/virtualbox/common/ssh_config.go index 3136bca98..10159cc86 100644 --- a/builder/virtualbox/common/ssh_config.go +++ b/builder/virtualbox/common/ssh_config.go @@ -11,8 +11,8 @@ import ( type SSHConfig struct { Comm communicator.Config `mapstructure:",squash"` - SSHHostPortMin uint `mapstructure:"ssh_host_port_min"` - SSHHostPortMax uint `mapstructure:"ssh_host_port_max"` + SSHHostPortMin int `mapstructure:"ssh_host_port_min"` + SSHHostPortMax int `mapstructure:"ssh_host_port_max"` SSHSkipNatMapping bool `mapstructure:"ssh_skip_nat_mapping"` // These are deprecated, but we keep them around for BC diff --git a/builder/virtualbox/common/step_configure_vrdp.go b/builder/virtualbox/common/step_configure_vrdp.go index ea14723d3..54bde727b 100644 --- a/builder/virtualbox/common/step_configure_vrdp.go +++ b/builder/virtualbox/common/step_configure_vrdp.go @@ -22,8 +22,8 @@ import ( // vrdp_port unit - The port that VRDP is configured to listen on. type StepConfigureVRDP struct { VRDPBindAddress string - VRDPPortMin uint - VRDPPortMax uint + VRDPPortMin int + VRDPPortMax int l *net.Listener } diff --git a/builder/virtualbox/common/step_forward_ssh.go b/builder/virtualbox/common/step_forward_ssh.go index 5f5c6fd62..345b9c55f 100644 --- a/builder/virtualbox/common/step_forward_ssh.go +++ b/builder/virtualbox/common/step_forward_ssh.go @@ -22,8 +22,8 @@ import ( // Produces: type StepForwardSSH struct { CommConfig *communicator.Config - HostPortMin uint - HostPortMax uint + HostPortMin int + HostPortMax int SkipNatMapping bool l *net.Listener @@ -40,7 +40,7 @@ func (s *StepForwardSSH) Run(ctx context.Context, state multistep.StateBag) mult return multistep.ActionContinue } - guestPort := uint(s.CommConfig.Port()) + guestPort := s.CommConfig.Port() sshHostPort := guestPort if !s.SkipNatMapping { log.Printf("Looking for available communicator (SSH, WinRM, etc) port between %d and %d", diff --git a/builder/virtualbox/common/step_run.go b/builder/virtualbox/common/step_run.go index 689b58602..d3a3fb66b 100644 --- a/builder/virtualbox/common/step_run.go +++ b/builder/virtualbox/common/step_run.go @@ -35,7 +35,7 @@ func (s *StepRun) Run(_ context.Context, state multistep.StateBag) multistep.Ste if vrdpIpOk && vrdpPortOk { vrdpIp := vrdpIpRaw.(string) - vrdpPort := vrdpPortRaw.(uint) + vrdpPort := vrdpPortRaw.(int) ui.Message(fmt.Sprintf( "The VM will be run headless, without a GUI. If you want to\n"+ diff --git a/builder/virtualbox/common/step_type_boot_command.go b/builder/virtualbox/common/step_type_boot_command.go index fb596cc82..88d92f321 100644 --- a/builder/virtualbox/common/step_type_boot_command.go +++ b/builder/virtualbox/common/step_type_boot_command.go @@ -22,7 +22,7 @@ type bootCommandTemplateData struct { HTTPIP string // HTTPPort is the HTTP server port. - HTTPPort uint + HTTPPort int // Name is the VM's name. Name string @@ -43,7 +43,7 @@ type StepTypeBootCommand struct { func (s *StepTypeBootCommand) Run(ctx context.Context, state multistep.StateBag) multistep.StepAction { debug := state.Get("debug").(bool) driver := state.Get("driver").(Driver) - httpPort := state.Get("http_port").(uint) + httpPort := state.Get("http_port").(int) ui := state.Get("ui").(packer.Ui) vmName := state.Get("vmName").(string) diff --git a/builder/vmware/common/driver_config.go b/builder/vmware/common/driver_config.go index b600ae237..1add0bb10 100644 --- a/builder/vmware/common/driver_config.go +++ b/builder/vmware/common/driver_config.go @@ -20,7 +20,7 @@ type DriverConfig struct { RemoteCacheDatastore string `mapstructure:"remote_cache_datastore"` RemoteCacheDirectory string `mapstructure:"remote_cache_directory"` RemoteHost string `mapstructure:"remote_host"` - RemotePort uint `mapstructure:"remote_port"` + RemotePort int `mapstructure:"remote_port"` RemoteUser string `mapstructure:"remote_username"` RemotePassword string `mapstructure:"remote_password"` RemotePrivateKey string `mapstructure:"remote_private_key_file"` diff --git a/builder/vmware/common/driver_esx5.go b/builder/vmware/common/driver_esx5.go index 903203496..5d8ef49cd 100644 --- a/builder/vmware/common/driver_esx5.go +++ b/builder/vmware/common/driver_esx5.go @@ -31,7 +31,7 @@ type ESX5Driver struct { base VmwareDriver Host string - Port uint + Port int Username string Password string PrivateKeyFile string @@ -360,8 +360,8 @@ func (d *ESX5Driver) GuestAddress(multistep.StateBag) (string, error) { return result, nil } -func (d *ESX5Driver) VNCAddress(ctx context.Context, _ string, portMin, portMax uint) (string, uint, error) { - var vncPort uint +func (d *ESX5Driver) VNCAddress(ctx context.Context, _ string, portMin, portMax int) (string, int, error) { + var vncPort int //Process ports ESXi is listening on to determine which are available //This process does best effort to detect ports that are unavailable, @@ -427,7 +427,7 @@ func (d *ESX5Driver) VNCAddress(ctx context.Context, _ string, portMin, portMax } // UpdateVMX, adds the VNC port to the VMX data. -func (ESX5Driver) UpdateVMX(_, password string, port uint, data map[string]string) { +func (ESX5Driver) UpdateVMX(_, password string, port int, data map[string]string) { // Do not set remotedisplay.vnc.ip - this breaks ESXi. data["remotedisplay.vnc.enabled"] = "TRUE" data["remotedisplay.vnc.port"] = fmt.Sprintf("%d", port) diff --git a/builder/vmware/common/driver_esx5_test.go b/builder/vmware/common/driver_esx5_test.go index 38232bbe7..67b18ee8a 100644 --- a/builder/vmware/common/driver_esx5_test.go +++ b/builder/vmware/common/driver_esx5_test.go @@ -50,7 +50,7 @@ func TestESX5Driver_HostIP(t *testing.T) { port := listen.Addr().(*net.TCPAddr).Port defer listen.Close() - driver := ESX5Driver{Host: "localhost", Port: uint(port)} + driver := ESX5Driver{Host: "localhost", Port: port} state := new(multistep.BasicStateBag) if host, _ := driver.HostIP(state); host != expected_host { diff --git a/builder/vmware/common/run_config.go b/builder/vmware/common/run_config.go index c4bfc3413..e8b6a3d37 100644 --- a/builder/vmware/common/run_config.go +++ b/builder/vmware/common/run_config.go @@ -10,8 +10,8 @@ type RunConfig struct { Headless bool `mapstructure:"headless"` VNCBindAddress string `mapstructure:"vnc_bind_address"` - VNCPortMin uint `mapstructure:"vnc_port_min"` - VNCPortMax uint `mapstructure:"vnc_port_max"` + VNCPortMin int `mapstructure:"vnc_port_min"` + VNCPortMax int `mapstructure:"vnc_port_max"` VNCDisablePassword bool `mapstructure:"vnc_disable_password"` } diff --git a/builder/vmware/common/step_configure_vnc.go b/builder/vmware/common/step_configure_vnc.go index 7e5e0c3a2..9fbf3ba1f 100644 --- a/builder/vmware/common/step_configure_vnc.go +++ b/builder/vmware/common/step_configure_vnc.go @@ -18,25 +18,25 @@ import ( // vmx_path string // // Produces: -// vnc_port uint - The port that VNC is configured to listen on. +// vnc_port int - The port that VNC is configured to listen on. type StepConfigureVNC struct { Enabled bool VNCBindAddress string - VNCPortMin uint - VNCPortMax uint + VNCPortMin int + VNCPortMax int VNCDisablePassword bool l *net.Listener } type VNCAddressFinder interface { - VNCAddress(context.Context, string, uint, uint) (string, uint, error) + VNCAddress(context.Context, string, int, int) (string, int, error) // UpdateVMX, sets driver specific VNC values to VMX data. - UpdateVMX(vncAddress, vncPassword string, vncPort uint, vmxData map[string]string) + UpdateVMX(vncAddress, vncPassword string, vncPort int, vmxData map[string]string) } -func (s *StepConfigureVNC) VNCAddress(ctx context.Context, vncBindAddress string, portMin, portMax uint) (string, uint, error) { +func (s *StepConfigureVNC) VNCAddress(ctx context.Context, vncBindAddress string, portMin, portMax int) (string, int, error) { var err error s.l, err = net.ListenRangeConfig{ Addr: s.VNCBindAddress, @@ -125,7 +125,7 @@ func (s *StepConfigureVNC) Run(ctx context.Context, state multistep.StateBag) mu return multistep.ActionContinue } -func (StepConfigureVNC) UpdateVMX(address, password string, port uint, data map[string]string) { +func (*StepConfigureVNC) UpdateVMX(address, password string, port int, data map[string]string) { data["remotedisplay.vnc.enabled"] = "TRUE" data["remotedisplay.vnc.port"] = fmt.Sprintf("%d", port) data["remotedisplay.vnc.ip"] = address diff --git a/builder/vmware/common/step_run.go b/builder/vmware/common/step_run.go index 2dad6faed..953d8ea5a 100644 --- a/builder/vmware/common/step_run.go +++ b/builder/vmware/common/step_run.go @@ -43,7 +43,7 @@ func (s *StepRun) Run(_ context.Context, state multistep.StateBag) multistep.Ste if vncIpOk && vncPortOk && vncPasswordOk { vncIp := vncIpRaw.(string) - vncPort := vncPortRaw.(uint) + vncPort := vncPortRaw.(int) vncPassword := vncPasswordRaw.(string) ui.Message(fmt.Sprintf( diff --git a/builder/vmware/common/step_type_boot_command.go b/builder/vmware/common/step_type_boot_command.go index b241d57ba..ad615f6a4 100644 --- a/builder/vmware/common/step_type_boot_command.go +++ b/builder/vmware/common/step_type_boot_command.go @@ -20,7 +20,7 @@ import ( // Uses: // http_port int // ui packer.Ui -// vnc_port uint +// vnc_port int // // Produces: // @@ -34,7 +34,7 @@ type StepTypeBootCommand struct { } type bootCommandTemplateData struct { HTTPIP string - HTTPPort uint + HTTPPort int Name string } @@ -46,10 +46,10 @@ func (s *StepTypeBootCommand) Run(ctx context.Context, state multistep.StateBag) debug := state.Get("debug").(bool) driver := state.Get("driver").(Driver) - httpPort := state.Get("http_port").(uint) + httpPort := state.Get("http_port").(int) ui := state.Get("ui").(packer.Ui) vncIp := state.Get("vnc_ip").(string) - vncPort := state.Get("vnc_port").(uint) + vncPort := state.Get("vnc_port").(int) vncPassword := state.Get("vnc_password") // Wait the for the vm to boot. diff --git a/common/http_config.go b/common/http_config.go index bb9b46b26..8a6809ac4 100644 --- a/common/http_config.go +++ b/common/http_config.go @@ -9,8 +9,8 @@ import ( // HTTPConfig contains configuration for the local HTTP Server type HTTPConfig struct { HTTPDir string `mapstructure:"http_directory"` - HTTPPortMin uint `mapstructure:"http_port_min"` - HTTPPortMax uint `mapstructure:"http_port_max"` + HTTPPortMin int `mapstructure:"http_port_min"` + HTTPPortMax int `mapstructure:"http_port_max"` } func (c *HTTPConfig) Prepare(ctx *interpolate.Context) []error { diff --git a/common/http_config_test.go b/common/http_config_test.go index eb42148b8..02b800845 100644 --- a/common/http_config_test.go +++ b/common/http_config_test.go @@ -24,11 +24,11 @@ func TestHTTPConfigPrepare_Bounds(t *testing.T) { if err != nil { t.Fatalf("should not have error: %s", err) } - portMin := uint(8000) + portMin := 8000 if h.HTTPPortMin != portMin { t.Fatalf("HTTPPortMin: expected %d got %d", portMin, h.HTTPPortMin) } - portMax := uint(9000) + portMax := 9000 if h.HTTPPortMax != portMax { t.Fatalf("HTTPPortMax: expected %d got %d", portMax, h.HTTPPortMax) } diff --git a/common/net/configure_port.go b/common/net/configure_port.go index 91fbf5f17..cb1fe66bf 100644 --- a/common/net/configure_port.go +++ b/common/net/configure_port.go @@ -7,6 +7,7 @@ import ( "log" "math/rand" "net" + "strconv" "github.com/gofrs/flock" @@ -24,7 +25,7 @@ type Listener struct { // Listener can be closed but Port will be file locked by packer until // Close is called. net.Listener - Port uint + Port int Address string lock *flock.Flock } @@ -43,7 +44,7 @@ type ListenRangeConfig struct { // tcp", "udp" Network string Addr string - Min, Max uint + Min, Max int net.ListenConfig } @@ -64,9 +65,9 @@ func (lc ListenRangeConfig) Listen(ctx context.Context) (*Listener, error) { return nil, err } - port := uint(rand.Intn(portRange)) + lc.Min + port := rand.Intn(portRange) + lc.Min - lockFilePath, err := packer.CachePath("port", fmt.Sprintf("%d", port)) + lockFilePath, err := packer.CachePath("port", strconv.Itoa(port)) if err != nil { return nil, err } diff --git a/common/step_http_server.go b/common/step_http_server.go index 282d4f969..b78abc657 100644 --- a/common/step_http_server.go +++ b/common/step_http_server.go @@ -23,8 +23,8 @@ import ( // http_port int - The port the HTTP server started on. type StepHTTPServer struct { HTTPDir string - HTTPPortMin uint - HTTPPortMax uint + HTTPPortMin int + HTTPPortMax int l *net.Listener } @@ -33,7 +33,7 @@ func (s *StepHTTPServer) Run(ctx context.Context, state multistep.StateBag) mult ui := state.Get("ui").(packer.Ui) if s.HTTPDir == "" { - state.Put("http_port", uint(0)) + state.Put("http_port", 0) return multistep.ActionContinue } diff --git a/communicator/winrm/communicator.go b/communicator/winrm/communicator.go index 09f125508..fc639ccb0 100644 --- a/communicator/winrm/communicator.go +++ b/communicator/winrm/communicator.go @@ -27,7 +27,7 @@ type Communicator struct { func New(config *Config) (*Communicator, error) { endpoint := &winrm.Endpoint{ Host: config.Host, - Port: int(config.Port), // it's a uint + Port: config.Port, HTTPS: config.Https, Insecure: config.Insecure, diff --git a/communicator/winrm/config.go b/communicator/winrm/config.go index 44ec989c0..728336734 100644 --- a/communicator/winrm/config.go +++ b/communicator/winrm/config.go @@ -9,7 +9,7 @@ import ( // Config is used to configure the WinRM connection type Config struct { Host string - Port uint + Port int Username string Password string Timeout time.Duration diff --git a/config.go b/config.go index 409b8f12d..1b7946b24 100644 --- a/config.go +++ b/config.go @@ -24,8 +24,8 @@ const PACKERSPACE = "-PACKERSPACE-" type config struct { DisableCheckpoint bool `json:"disable_checkpoint"` DisableCheckpointSignature bool `json:"disable_checkpoint_signature"` - PluginMinPort uint - PluginMaxPort uint + PluginMinPort int + PluginMaxPort int Builders map[string]string PostProcessors map[string]string `json:"post-processors"` diff --git a/helper/communicator/config.go b/helper/communicator/config.go index 80d148e63..fa02810d7 100644 --- a/helper/communicator/config.go +++ b/helper/communicator/config.go @@ -25,7 +25,7 @@ type Config struct { // SSH SSHHost string `mapstructure:"ssh_host"` - SSHPort uint `mapstructure:"ssh_port"` + SSHPort int `mapstructure:"ssh_port"` SSHUsername string `mapstructure:"ssh_username"` SSHPassword string `mapstructure:"ssh_password"` SSHKeyPairName string `mapstructure:"ssh_keypair_name"` @@ -60,7 +60,7 @@ type Config struct { WinRMUser string `mapstructure:"winrm_username"` WinRMPassword string `mapstructure:"winrm_password"` WinRMHost string `mapstructure:"winrm_host"` - WinRMPort uint `mapstructure:"winrm_port"` + WinRMPort int `mapstructure:"winrm_port"` WinRMTimeout time.Duration `mapstructure:"winrm_timeout"` WinRMUseSSL bool `mapstructure:"winrm_use_ssl"` WinRMInsecure bool `mapstructure:"winrm_insecure"` @@ -150,7 +150,7 @@ func (c *Config) SSHConfigFunc() func(multistep.StateBag) (*ssh.ClientConfig, er } // Port returns the port that will be used for access based on config. -func (c *Config) Port() uint { +func (c *Config) Port() int { switch c.Type { case "ssh": return c.SSHPort diff --git a/helper/communicator/step_connect.go b/helper/communicator/step_connect.go index eed1fe7b4..6bb062f80 100644 --- a/helper/communicator/step_connect.go +++ b/helper/communicator/step_connect.go @@ -28,14 +28,14 @@ type StepConnect struct { // SSHConfig should return the default configuration for // connecting via SSH. SSHConfig func(multistep.StateBag) (*gossh.ClientConfig, error) - SSHPort func(multistep.StateBag) (uint, error) + SSHPort func(multistep.StateBag) (int, error) // The fields below are callbacks to assist with connecting to WinRM. // // WinRMConfig should return the default configuration for // connecting via WinRM. WinRMConfig func(multistep.StateBag) (*WinRMConfig, error) - WinRMPort func(multistep.StateBag) (uint, error) + WinRMPort func(multistep.StateBag) (int, error) // CustomConnect can be set to have custom connectors for specific // types. These take highest precedence so you can also override diff --git a/helper/communicator/step_connect_ssh.go b/helper/communicator/step_connect_ssh.go index 032768dd0..b17fd5424 100644 --- a/helper/communicator/step_connect_ssh.go +++ b/helper/communicator/step_connect_ssh.go @@ -27,7 +27,7 @@ type StepConnectSSH struct { Config *Config Host func(multistep.StateBag) (string, error) SSHConfig func(multistep.StateBag) (*gossh.ClientConfig, error) - SSHPort func(multistep.StateBag) (uint, error) + SSHPort func(multistep.StateBag) (int, error) } func (s *StepConnectSSH) Run(_ context.Context, state multistep.StateBag) multistep.StepAction { diff --git a/helper/communicator/step_connect_winrm.go b/helper/communicator/step_connect_winrm.go index 6c7e5d456..06e6236f8 100644 --- a/helper/communicator/step_connect_winrm.go +++ b/helper/communicator/step_connect_winrm.go @@ -30,7 +30,7 @@ type StepConnectWinRM struct { Config *Config Host func(multistep.StateBag) (string, error) WinRMConfig func(multistep.StateBag) (*WinRMConfig, error) - WinRMPort func(multistep.StateBag) (uint, error) + WinRMPort func(multistep.StateBag) (int, error) } func (s *StepConnectWinRM) Run(_ context.Context, state multistep.StateBag) multistep.StepAction { diff --git a/packer/plugin/client.go b/packer/plugin/client.go index edcab1d7a..7cfcb8e21 100644 --- a/packer/plugin/client.go +++ b/packer/plugin/client.go @@ -56,7 +56,7 @@ type ClientConfig struct { // The minimum and maximum port to use for communicating with // the subprocess. If not set, this defaults to 10,000 and 25,000 // respectively. - MinPort, MaxPort uint + MinPort, MaxPort int // StartTimeout is the timeout to wait for the plugin to say it // has started successfully. diff --git a/provisioner/ansible/provisioner.go b/provisioner/ansible/provisioner.go index e836eb894..9b28c2bbb 100644 --- a/provisioner/ansible/provisioner.go +++ b/provisioner/ansible/provisioner.go @@ -52,7 +52,7 @@ type Config struct { EmptyGroups []string `mapstructure:"empty_groups"` HostAlias string `mapstructure:"host_alias"` User string `mapstructure:"user"` - LocalPort uint `mapstructure:"local_port"` + LocalPort int `mapstructure:"local_port"` SSHHostKeyFile string `mapstructure:"ssh_host_key_file"` SSHAuthorizedKeyFile string `mapstructure:"ssh_authorized_key_file"` SFTPCmd string `mapstructure:"sftp_command"` @@ -271,12 +271,11 @@ func (p *Provisioner) Provision(ui packer.Ui, comm packer.Communicator) error { ui.Say(err.Error()) continue } - portUint64, err := strconv.ParseUint(portStr, 10, 0) + p.config.LocalPort, err = strconv.Atoi(portStr) if err != nil { ui.Say(err.Error()) continue } - p.config.LocalPort = uint(portUint64) return l, nil } return nil, errors.New("Error setting up SSH proxy connection") diff --git a/provisioner/ansible/provisioner_test.go b/provisioner/ansible/provisioner_test.go index 099f72bcc..7905f5600 100644 --- a/provisioner/ansible/provisioner_test.go +++ b/provisioner/ansible/provisioner_test.go @@ -245,13 +245,13 @@ func TestProvisionerPrepare_LocalPort(t *testing.T) { config["ssh_authorized_key_file"] = publickey_file.Name() config["playbook_file"] = playbook_file.Name() - config["local_port"] = uint(65537) + config["local_port"] = 65537 err = p.Prepare(config) if err == nil { t.Fatal("should have error") } - config["local_port"] = uint(22222) + config["local_port"] = 22222 err = p.Prepare(config) if err != nil { t.Fatalf("err: %s", err) diff --git a/provisioner/inspec/provisioner.go b/provisioner/inspec/provisioner.go index fab92ee49..ae8048f05 100644 --- a/provisioner/inspec/provisioner.go +++ b/provisioner/inspec/provisioner.go @@ -52,7 +52,7 @@ type Config struct { Backend string `mapstructure:"backend"` User string `mapstructure:"user"` Host string `mapstructure:"host"` - LocalPort uint `mapstructure:"local_port"` + LocalPort int `mapstructure:"local_port"` SSHHostKeyFile string `mapstructure:"ssh_host_key_file"` SSHAuthorizedKeyFile string `mapstructure:"ssh_authorized_key_file"` } @@ -264,12 +264,11 @@ func (p *Provisioner) Provision(ui packer.Ui, comm packer.Communicator) error { ui.Say(err.Error()) continue } - portUint64, err := strconv.ParseUint(portStr, 10, 0) + p.config.LocalPort, err = strconv.Atoi(portStr) if err != nil { ui.Say(err.Error()) continue } - p.config.LocalPort = uint(portUint64) return l, nil } return nil, errors.New("Error setting up SSH proxy connection") @@ -338,7 +337,7 @@ func (p *Provisioner) executeInspec(ui packer.Ui, comm packer.Communicator, priv args = append(args, "--key-files", privKeyFile) } args = append(args, "--user", p.config.User) - args = append(args, "--port", strconv.FormatUint(uint64(p.config.LocalPort), 10)) + args = append(args, "--port", strconv.Itoa(p.config.LocalPort)) } args = append(args, "--attrs") diff --git a/provisioner/inspec/provisioner_test.go b/provisioner/inspec/provisioner_test.go index 6857f7004..f814768a9 100644 --- a/provisioner/inspec/provisioner_test.go +++ b/provisioner/inspec/provisioner_test.go @@ -254,13 +254,13 @@ func TestProvisionerPrepare_LocalPort(t *testing.T) { config["ssh_authorized_key_file"] = publickey_file.Name() config["profile"] = profile_file.Name() - config["local_port"] = uint(65537) + config["local_port"] = 65537 err = p.Prepare(config) if err == nil { t.Fatal("should have error") } - config["local_port"] = uint(22222) + config["local_port"] = 22222 err = p.Prepare(config) if err != nil { t.Fatalf("err: %s", err)