in instance.go [671:693]
func (ib *InstanceBase) validateDisks(ii InstanceInterface, s *Step) (errs DError) {
computeDisks := ii.getComputeDisks()
if len(computeDisks) == 0 && ii.getSourceMachineImage() == "" {
errs = addErrs(errs, Errf("cannot create instance: no disks nor source machine image provided"))
}
if len(computeDisks) > 0 && ii.getSourceMachineImage() != "" {
errs = addErrs(errs, Errf("cannot create instance: can't provide disks when SourceMachineImage provided"))
}
for _, d := range computeDisks {
if !checkDiskMode(d.mode) {
errs = addErrs(errs, Errf("cannot create instance: bad disk mode: %q", d.mode))
}
if d.source != "" && d.hasInitializeParams {
errs = addErrs(errs, Errf("cannot create instance: disk.source and disk.initializeParams are mutually exclusive"))
}
if d.hasInitializeParams {
errs = addErrs(errs, ib.validateDiskInitializeParams(d, ii, s))
} else {
errs = addErrs(errs, ib.validateDiskSource(d.source, ii, s))
}
}
return
}