Merge pull request #2009 from rn/disksize

cmd: Default disk "size" parameter to GB
This commit is contained in:
Rolf Neugebauer 2017-06-09 13:43:28 +01:00 committed by GitHub
commit 2674c999b1
2 changed files with 8 additions and 7 deletions

View File

@ -9,7 +9,7 @@ In order to make the disk available, you need to tell `linuxkit` where the disk
All local `linuxkit run` methods (currently `hyperkit`, `qemu`, and `vmware`) take a `-disk` argument: All local `linuxkit run` methods (currently `hyperkit`, `qemu`, and `vmware`) take a `-disk` argument:
* `-disk path,size=100M,format=qcow2`. For size the default is in MB but `G` can be aspecified for GB. The format can be omitted for the platform default, and is only useful on `qemu` at present. * `-disk path,size=100M,format=qcow2`. For size the default is in GB but an `M` can be appended to specify sizes in MB. The format can be omitted for the platform default, and is only useful on `qemu` at present.
If the _path` is specified it will use the disk at location _path_, if you do not provide `-disk `_path_, `linuxkit` assumes a default, which is _prefix_`-state/disk.img` for `hyperkit` and `vmware` and _prefix_`-disk.img` for `qemu`. If the _path` is specified it will use the disk at location _path_, if you do not provide `-disk `_path_, `linuxkit` assumes a default, which is _prefix_`-state/disk.img` for `hyperkit` and `vmware` and _prefix_`-disk.img` for `qemu`.

View File

@ -99,22 +99,23 @@ func stringToIntArray(l string, sep string) ([]int, error) {
return i, nil return i, nil
} }
// Parse a string which is either a number in MB, or a number with // This function parses the "size" parameter of a disk specification
// either M (for Megabytes) or G (for GigaBytes) as a suffix and // and returns the size in MB. The "size" paramter defaults to GB, but
// returns the number in MB. Return 0 if string is empty. // the unit can be explicitly set with either a G (for GB) or M (for
// MB). It returns the disk size in MB.
func getDiskSizeMB(s string) (int, error) { func getDiskSizeMB(s string) (int, error) {
if s == "" { if s == "" {
return 0, nil return 0, nil
} }
sz := len(s) sz := len(s)
if strings.HasSuffix(s, "G") { if strings.HasSuffix(s, "M") {
i, err := strconv.Atoi(s[:sz-1]) i, err := strconv.Atoi(s[:sz-1])
if err != nil { if err != nil {
return 0, err return 0, err
} }
return i * 1024, nil return i, nil
} }
if strings.HasSuffix(s, "M") { if strings.HasSuffix(s, "G") {
s = s[:sz-1] s = s[:sz-1]
} }
return strconv.Atoi(s) return strconv.Atoi(s)