Skip to content

Commit

Permalink
Merge pull request #13177 from deads2k/debug-01-scopes
Browse files Browse the repository at this point in the history
Merged by openshift-bot
  • Loading branch information
OpenShift Bot authored Mar 3, 2017
2 parents 1a03d2f + 93874a5 commit 79264a2
Showing 1 changed file with 66 additions and 5 deletions.
71 changes: 66 additions & 5 deletions pkg/quota/api/validation/validation_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,14 +4,15 @@ import (
"k8s.io/kubernetes/pkg/api"
"k8s.io/kubernetes/pkg/api/resource"
"k8s.io/kubernetes/pkg/api/unversioned"
"k8s.io/kubernetes/pkg/api/validation"
"k8s.io/kubernetes/pkg/util/validation/field"
"testing"

quotaapi "github.com/openshift/origin/pkg/quota/api"
)

func TestValidationClusterQuota(t *testing.T) {
spec := api.ResourceQuotaSpec{
func spec(scopes ...api.ResourceQuotaScope) api.ResourceQuotaSpec {
return api.ResourceQuotaSpec{
Hard: api.ResourceList{
api.ResourceCPU: resource.MustParse("100"),
api.ResourceMemory: resource.MustParse("10000"),
Expand All @@ -26,8 +27,25 @@ func TestValidationClusterQuota(t *testing.T) {
api.ResourceConfigMaps: resource.MustParse("10"),
api.ResourceSecrets: resource.MustParse("10"),
},
Scopes: scopes,
}
}

func scopeableSpec(scopes ...api.ResourceQuotaScope) api.ResourceQuotaSpec {
return api.ResourceQuotaSpec{
Hard: api.ResourceList{
api.ResourceCPU: resource.MustParse("100"),
api.ResourceMemory: resource.MustParse("10000"),
api.ResourceRequestsCPU: resource.MustParse("100"),
api.ResourceRequestsMemory: resource.MustParse("10000"),
api.ResourceLimitsCPU: resource.MustParse("100"),
api.ResourceLimitsMemory: resource.MustParse("10000"),
},
Scopes: scopes,
}
}

func TestValidationClusterQuota(t *testing.T) {
// storage is not yet supported as a quota tracked resource
invalidQuotaResourceSpec := api.ResourceQuotaSpec{
Hard: api.ResourceList{
Expand All @@ -41,7 +59,7 @@ func TestValidationClusterQuota(t *testing.T) {
ObjectMeta: api.ObjectMeta{Name: "good"},
Spec: quotaapi.ClusterResourceQuotaSpec{
Selector: quotaapi.ClusterResourceQuotaSelector{LabelSelector: &unversioned.LabelSelector{MatchLabels: validLabels}},
Quota: spec,
Quota: spec(),
},
},
)
Expand All @@ -59,7 +77,7 @@ func TestValidationClusterQuota(t *testing.T) {
ObjectMeta: api.ObjectMeta{Namespace: "bad", Name: "good"},
Spec: quotaapi.ClusterResourceQuotaSpec{
Selector: quotaapi.ClusterResourceQuotaSelector{LabelSelector: &unversioned.LabelSelector{MatchLabels: validLabels}},
Quota: spec,
Quota: spec(),
},
},
T: field.ErrorTypeForbidden,
Expand All @@ -69,12 +87,33 @@ func TestValidationClusterQuota(t *testing.T) {
A: quotaapi.ClusterResourceQuota{
ObjectMeta: api.ObjectMeta{Name: "good"},
Spec: quotaapi.ClusterResourceQuotaSpec{
Quota: spec,
Quota: spec(),
},
},
T: field.ErrorTypeRequired,
F: "spec.selector",
},
"ok scope": {
A: quotaapi.ClusterResourceQuota{
ObjectMeta: api.ObjectMeta{Name: "good"},
Spec: quotaapi.ClusterResourceQuotaSpec{
Quota: scopeableSpec(api.ResourceQuotaScopeNotTerminating),
},
},
T: field.ErrorTypeRequired,
F: "spec.selector",
},
"bad scope": {
A: quotaapi.ClusterResourceQuota{
ObjectMeta: api.ObjectMeta{Name: "good"},
Spec: quotaapi.ClusterResourceQuotaSpec{
Selector: quotaapi.ClusterResourceQuotaSelector{LabelSelector: &unversioned.LabelSelector{MatchLabels: validLabels}},
Quota: spec(api.ResourceQuotaScopeNotTerminating),
},
},
T: field.ErrorTypeInvalid,
F: "spec.quota.scopes",
},
"bad quota spec": {
A: quotaapi.ClusterResourceQuota{
ObjectMeta: api.ObjectMeta{Name: "good"},
Expand Down Expand Up @@ -103,3 +142,25 @@ func TestValidationClusterQuota(t *testing.T) {
}
}
}

func TestValidationQuota(t *testing.T) {
tests := map[string]struct {
A api.ResourceQuota
T field.ErrorType
F string
}{
"scope": {
A: api.ResourceQuota{
ObjectMeta: api.ObjectMeta{Namespace: "ns", Name: "good"},
Spec: scopeableSpec(api.ResourceQuotaScopeNotTerminating),
},
},
}
for k, v := range tests {
errs := validation.ValidateResourceQuota(&v.A)
if len(errs) != 0 {
t.Errorf("%s: %v", k, errs)
continue
}
}
}

0 comments on commit 79264a2

Please sign in to comment.