Fix test regexp.
[arvados.git] / lib / dispatchcloud / node_size.go
index 2fac799f40e30ae99e0b496cbe7e1e343d759a4b..7e8ce0bf4206834c80a176a7411ea614c2e1e3f7 100644 (file)
@@ -6,12 +6,11 @@ package dispatchcloud
 
 import (
        "errors"
-       "log"
        "regexp"
        "sort"
        "strconv"
 
-       "git.curoverse.com/arvados.git/sdk/go/arvados"
+       "git.arvados.org/arvados.git/sdk/go/arvados"
 )
 
 var ErrInstanceTypesNotConfigured = errors.New("site configuration does not list any instance types")
@@ -34,12 +33,10 @@ var pdhRegexp = regexp.MustCompile(`^[0-9a-f]{32}\+(\d+)$`)
 func estimateDockerImageSize(collectionPDH string) int64 {
        m := pdhRegexp.FindStringSubmatch(collectionPDH)
        if m == nil {
-               log.Printf("estimateDockerImageSize: '%v' did not match pdhRegexp, returning 0", collectionPDH)
                return 0
        }
        n, err := strconv.ParseInt(m[1], 10, 64)
        if err != nil || n < 122 {
-               log.Printf("estimateDockerImageSize: short manifest %v or error (%v), returning 0", n, err)
                return 0
        }
        // To avoid having to fetch the collection, take advantage of
@@ -49,7 +46,7 @@ func estimateDockerImageSize(collectionPDH string) int64 {
        // the size of the manifest.
        //
        // Use the following heuristic:
-       // - Start with the length of the mainfest (n)
+       // - Start with the length of the manifest (n)
        // - Subtract 80 characters for the filename and file segment
        // - Divide by 42 to get the number of block identifiers ('hash\+size\ ' is 32+1+8+1)
        // - Assume each block is full, multiply by 64 MiB
@@ -99,6 +96,7 @@ func ChooseInstanceType(cc *arvados.Cluster, ctr *arvados.Container) (best arvad
        needVCPUs := ctr.RuntimeConstraints.VCPUs
 
        needRAM := ctr.RuntimeConstraints.RAM + ctr.RuntimeConstraints.KeepCacheRAM
+       needRAM += int64(cc.Containers.ReserveExtraRAM)
        needRAM = (needRAM * 100) / int64(100-discountConfiguredRAMPercent)
 
        ok := false