Merge pull request #21088 from derekwaynecarr/improve_helpers

Auto commit by PR queue bot
This commit is contained in:
k8s-merge-robot 2016-02-15 14:21:26 -08:00
commit 84da994d68
3 changed files with 22 additions and 14 deletions

View File

@ -30,7 +30,7 @@ func (self *ResourceList) Cpu() *resource.Quantity {
if val, ok := (*self)[ResourceCPU]; ok { if val, ok := (*self)[ResourceCPU]; ok {
return &val return &val
} }
return &resource.Quantity{} return &resource.Quantity{Format: resource.DecimalSI}
} }
// Returns the Memory limit if specified. // Returns the Memory limit if specified.
@ -38,7 +38,7 @@ func (self *ResourceList) Memory() *resource.Quantity {
if val, ok := (*self)[ResourceMemory]; ok { if val, ok := (*self)[ResourceMemory]; ok {
return &val return &val
} }
return &resource.Quantity{} return &resource.Quantity{Format: resource.BinarySI}
} }
func (self *ResourceList) Pods() *resource.Quantity { func (self *ResourceList) Pods() *resource.Quantity {

View File

@ -51,3 +51,13 @@ func TestResourceHelpers(t *testing.T) {
t.Errorf("expected memorylimit %v, got %v", memoryLimit, res) t.Errorf("expected memorylimit %v, got %v", memoryLimit, res)
} }
} }
func TestDefaultResourceHelpers(t *testing.T) {
resourceList := ResourceList{}
if resourceList.Cpu().Format != resource.DecimalSI {
t.Errorf("expected %v, actual %v", resource.DecimalSI, resourceList.Cpu().Format)
}
if resourceList.Memory().Format != resource.BinarySI {
t.Errorf("expected %v, actual %v", resource.BinarySI, resourceList.Memory().Format)
}
}

View File

@ -16,10 +16,7 @@ limitations under the License.
package util package util
import ( import "k8s.io/kubernetes/pkg/api"
"k8s.io/kubernetes/pkg/api"
"k8s.io/kubernetes/pkg/api/resource"
)
// For each of these resources, a pod that doesn't request the resource explicitly // For each of these resources, a pod that doesn't request the resource explicitly
// will be treated as having requested the amount indicated below, for the purpose // will be treated as having requested the amount indicated below, for the purpose
@ -32,21 +29,22 @@ import (
const DefaultMilliCpuRequest int64 = 100 // 0.1 core const DefaultMilliCpuRequest int64 = 100 // 0.1 core
const DefaultMemoryRequest int64 = 200 * 1024 * 1024 // 200 MB const DefaultMemoryRequest int64 = 200 * 1024 * 1024 // 200 MB
// GetNonzeroRequests returns the default resource request if none is found or what is provided on the request
// TODO: Consider setting default as a fixed fraction of machine capacity (take "capacity api.ResourceList" // TODO: Consider setting default as a fixed fraction of machine capacity (take "capacity api.ResourceList"
// as an additional argument here) rather than using constants // as an additional argument here) rather than using constants
func GetNonzeroRequests(requests *api.ResourceList) (int64, int64) { func GetNonzeroRequests(requests *api.ResourceList) (int64, int64) {
var out_millicpu, out_memory int64 var outMilliCPU, outMemory int64
// Override if un-set, but not if explicitly set to zero // Override if un-set, but not if explicitly set to zero
if (*requests.Cpu() == resource.Quantity{}) { if _, found := (*requests)[api.ResourceCPU]; !found {
out_millicpu = DefaultMilliCpuRequest outMilliCPU = DefaultMilliCpuRequest
} else { } else {
out_millicpu = requests.Cpu().MilliValue() outMilliCPU = requests.Cpu().MilliValue()
} }
// Override if un-set, but not if explicitly set to zero // Override if un-set, but not if explicitly set to zero
if (*requests.Memory() == resource.Quantity{}) { if _, found := (*requests)[api.ResourceMemory]; !found {
out_memory = DefaultMemoryRequest outMemory = DefaultMemoryRequest
} else { } else {
out_memory = requests.Memory().Value() outMemory = requests.Memory().Value()
} }
return out_millicpu, out_memory return outMilliCPU, outMemory
} }