From 987a5ac55e08763976dcdb6167a6ef8566426dc4 Mon Sep 17 00:00:00 2001 From: Cheng Sun Date: Thu, 18 Dec 2014 17:10:17 +0000 Subject: [PATCH] Rename root_disk_size to disk_size CreateVdi now takes an integer size Note that disk_size is now in MB; root_disk_size was in bytes Fixed example --- builder/xenserver/builder.go | 12 +++++------- builder/xenserver/client.go | 4 ++-- builder/xenserver/step_create_instance.go | 2 +- builder/xenserver/step_upload_vdi.go | 2 +- examples/centos-6.4.conf | 2 +- 5 files changed, 10 insertions(+), 12 deletions(-) diff --git a/builder/xenserver/builder.go b/builder/xenserver/builder.go index c3ba993..79a4ca1 100644 --- a/builder/xenserver/builder.go +++ b/builder/xenserver/builder.go @@ -26,7 +26,7 @@ type config struct { InstanceName string `mapstructure:"instance_name"` InstanceMemory string `mapstructure:"instance_memory"` - RootDiskSize string `mapstructure:"root_disk_size"` + DiskSize uint `mapstructure:"disk_size"` CloneTemplate string `mapstructure:"clone_template"` SrName string `mapstructure:"sr_name"` FloppyFiles []string `mapstructure:"floppy_files"` @@ -130,6 +130,10 @@ func (self *Builder) Prepare(raws ...interface{}) (params []string, retErr error self.config.RawSSHWaitTimeout = "200m" } + if self.config.DiskSize == 0 { + self.config.DiskSize = 40000 + } + if self.config.InstanceMemory == "" { self.config.InstanceMemory = "1024000000" } @@ -173,7 +177,6 @@ func (self *Builder) Prepare(raws ...interface{}) (params []string, retErr error "host_ip": &self.config.HostIp, "instance_name": &self.config.InstanceName, "instance_memory": &self.config.InstanceMemory, - "root_disk_size": &self.config.RootDiskSize, "clone_template": &self.config.CloneTemplate, "sr_name": &self.config.SrName, "network_name": &self.config.NetworkName, @@ -272,11 +275,6 @@ func (self *Builder) Prepare(raws ...interface{}) (params []string, retErr error errs, errors.New("An instance name must be specified.")) } - if self.config.RootDiskSize == "" { - errs = packer.MultiErrorAppend( - errs, errors.New("A root disk size must be specified.")) - } - switch self.config.ExportFormat { case "xva", "vdi_raw": default: diff --git a/builder/xenserver/client.go b/builder/xenserver/client.go index dcf8a1a..c5bfe11 100644 --- a/builder/xenserver/client.go +++ b/builder/xenserver/client.go @@ -689,13 +689,13 @@ func (self *VM) SetIsATemplate(is_a_template bool) (err error) { // SR associated functions -func (self *SR) CreateVdi(name_label, size string) (vdi *VDI, err error) { +func (self *SR) CreateVdi(name_label string, size int64) (vdi *VDI, err error) { vdi = new(VDI) vdi_rec := make(xmlrpc.Struct) vdi_rec["name_label"] = name_label vdi_rec["SR"] = self.Ref - vdi_rec["virtual_size"] = size + vdi_rec["virtual_size"] = fmt.Sprintf("%d", size) vdi_rec["type"] = "user" vdi_rec["sharable"] = false vdi_rec["read_only"] = false diff --git a/builder/xenserver/step_create_instance.go b/builder/xenserver/step_create_instance.go index e39e7cb..2aed3a1 100644 --- a/builder/xenserver/step_create_instance.go +++ b/builder/xenserver/step_create_instance.go @@ -68,7 +68,7 @@ func (self *stepCreateInstance) Run(state multistep.StateBag) multistep.StepActi return multistep.ActionHalt } - vdi, err := sr.CreateVdi("Packer-disk", config.RootDiskSize) + vdi, err := sr.CreateVdi("Packer-disk", int64(config.DiskSize*1024*1024)) if err != nil { ui.Error(fmt.Sprintf("Unable to create packer disk VDI: %s", err.Error())) return multistep.ActionHalt diff --git a/builder/xenserver/step_upload_vdi.go b/builder/xenserver/step_upload_vdi.go index 254feb0..fe3e57f 100644 --- a/builder/xenserver/step_upload_vdi.go +++ b/builder/xenserver/step_upload_vdi.go @@ -53,7 +53,7 @@ func (self *stepUploadVdi) Run(state multistep.StateBag) multistep.StepAction { fileLength := fstat.Size() // Create the VDI - vdi, err := sr.CreateVdi(self.VdiName, fmt.Sprintf("%d", fileLength)) + vdi, err := sr.CreateVdi(self.VdiName, fileLength) if err != nil { ui.Error(fmt.Sprintf("Unable to create VDI '%s': %s", self.VdiName, err.Error())) return multistep.ActionHalt diff --git a/examples/centos-6.4.conf b/examples/centos-6.4.conf index 18af4cb..893c07c 100644 --- a/examples/centos-6.4.conf +++ b/examples/centos-6.4.conf @@ -6,7 +6,7 @@ "host_ip": "10.81.2.105", "instance_name": "packer-centos-6-4", "instance_memory": "2048000000", - "root_disk_size": "40000000000", + "disk_size": 40000, "iso_name": "CentOS-6.4-x86_64-minimal.iso", "http_directory": "http", "local_ip": "10.80.3.223",