Commit 96c81368 authored by Seth Vargo's avatar Seth Vargo

Merge pull request #1645 from vtolstov/qemu_disk

Allow none checksumtype for qemu builder
parents a60039e7 4762075d
...@@ -122,6 +122,7 @@ func (b *Builder) Prepare(raws ...interface{}) ([]string, error) { ...@@ -122,6 +122,7 @@ func (b *Builder) Prepare(raws ...interface{}) ([]string, error) {
if err != nil { if err != nil {
return nil, err return nil, err
} }
warnings := make([]string, 0)
b.config.tpl, err = packer.NewConfigTemplate() b.config.tpl, err = packer.NewConfigTemplate()
if err != nil { if err != nil {
...@@ -304,6 +305,12 @@ func (b *Builder) Prepare(raws ...interface{}) ([]string, error) { ...@@ -304,6 +305,12 @@ func (b *Builder) Prepare(raws ...interface{}) ([]string, error) {
errs, errors.New("http_port_min must be less than http_port_max")) errs, errors.New("http_port_min must be less than http_port_max"))
} }
if b.config.ISOChecksumType == "" {
errs = packer.MultiErrorAppend(
errs, errors.New("The iso_checksum_type must be specified."))
} else {
b.config.ISOChecksumType = strings.ToLower(b.config.ISOChecksumType)
if b.config.ISOChecksumType != "none" {
if b.config.ISOChecksum == "" { if b.config.ISOChecksum == "" {
errs = packer.MultiErrorAppend( errs = packer.MultiErrorAppend(
errs, errors.New("Due to large file sizes, an iso_checksum is required")) errs, errors.New("Due to large file sizes, an iso_checksum is required"))
...@@ -311,17 +318,13 @@ func (b *Builder) Prepare(raws ...interface{}) ([]string, error) { ...@@ -311,17 +318,13 @@ func (b *Builder) Prepare(raws ...interface{}) ([]string, error) {
b.config.ISOChecksum = strings.ToLower(b.config.ISOChecksum) b.config.ISOChecksum = strings.ToLower(b.config.ISOChecksum)
} }
if b.config.ISOChecksumType == "" {
errs = packer.MultiErrorAppend(
errs, errors.New("The iso_checksum_type must be specified."))
} else {
b.config.ISOChecksumType = strings.ToLower(b.config.ISOChecksumType)
if h := common.HashForType(b.config.ISOChecksumType); h == nil { if h := common.HashForType(b.config.ISOChecksumType); h == nil {
errs = packer.MultiErrorAppend( errs = packer.MultiErrorAppend(
errs, errs,
fmt.Errorf("Unsupported checksum type: %s", b.config.ISOChecksumType)) fmt.Errorf("Unsupported checksum type: %s", b.config.ISOChecksumType))
} }
} }
}
if b.config.RawSingleISOUrl == "" && len(b.config.ISOUrls) == 0 { if b.config.RawSingleISOUrl == "" && len(b.config.ISOUrls) == 0 {
errs = packer.MultiErrorAppend( errs = packer.MultiErrorAppend(
...@@ -404,11 +407,17 @@ func (b *Builder) Prepare(raws ...interface{}) ([]string, error) { ...@@ -404,11 +407,17 @@ func (b *Builder) Prepare(raws ...interface{}) ([]string, error) {
b.config.QemuArgs = make([][]string, 0) b.config.QemuArgs = make([][]string, 0)
} }
if b.config.ISOChecksumType == "none" {
warnings = append(warnings,
"A checksum type of 'none' was specified. Since ISO files are so big,\n"+
"a checksum is highly recommended.")
}
if errs != nil && len(errs.Errors) > 0 { if errs != nil && len(errs.Errors) > 0 {
return nil, errs return warnings, errs
} }
return nil, nil return warnings, nil
} }
func (b *Builder) Run(ui packer.Ui, hook packer.Hook, cache packer.Cache) (packer.Artifact, error) { func (b *Builder) Run(ui packer.Ui, hook packer.Hook, cache packer.Cache) (packer.Artifact, error) {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment