Skip to content

Commit

Permalink
Merge pull request #21030 from openshift-cherrypick-robot/cherry-pick…
Browse files Browse the repository at this point in the history
…-21024-to-release-3.11

[release-3.11] Fix image quota evaluators to support both internal and external resources
  • Loading branch information
derekwaynecarr authored Sep 19, 2018
2 parents e3ff49a + 2a97d4a commit 4b0752f
Show file tree
Hide file tree
Showing 3 changed files with 23 additions and 2 deletions.
12 changes: 11 additions & 1 deletion pkg/quota/image/imagestreamimport_evaluator.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ import (
imagev1 "github.com/openshift/api/image/v1"
imagev1lister "github.com/openshift/client-go/image/listers/image/v1"
imageapi "github.com/openshift/origin/pkg/image/apis/image"
imagev1conversions "github.com/openshift/origin/pkg/image/apis/image/v1"
)

var imageStreamImportResources = []kapi.ResourceName{
Expand All @@ -38,7 +39,9 @@ func NewImageStreamImportEvaluator(store imagev1lister.ImageStreamLister) kquota

// Constraints checks that given object is an image stream import.
func (i *imageStreamImportEvaluator) Constraints(required []kapi.ResourceName, object runtime.Object) error {
if _, ok := object.(*imagev1.ImageStreamImport); !ok {
_, okInt := object.(*imageapi.ImageStreamImport)
_, okExt := object.(*imagev1.ImageStreamImport)
if !okInt && !okExt {
return fmt.Errorf("unexpected input object %v", object)
}
return nil
Expand Down Expand Up @@ -70,6 +73,13 @@ func (i *imageStreamImportEvaluator) MatchingResources(input []kapi.ResourceName
}

func (i *imageStreamImportEvaluator) Usage(item runtime.Object) (kapi.ResourceList, error) {
if isiInternal, ok := item.(*imageapi.ImageStreamImport); ok {
out := &imagev1.ImageStreamImport{}
if err := imagev1conversions.Convert_image_ImageStreamImport_To_v1_ImageStreamImport(isiInternal, out, nil); err != nil {
return kapi.ResourceList{}, fmt.Errorf("error converting ImageStreamImport: %v", err)
}
item = out
}
isi, ok := item.(*imagev1.ImageStreamImport)
if !ok {
return kapi.ResourceList{}, fmt.Errorf("item is not an ImageStreamImport: %T", item)
Expand Down
12 changes: 11 additions & 1 deletion pkg/quota/image/imagestreamtag_evaluator.go
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ import (
imagev1typedclient "github.com/openshift/client-go/image/clientset/versioned/typed/image/v1"
imagev1lister "github.com/openshift/client-go/image/listers/image/v1"
imageapi "github.com/openshift/origin/pkg/image/apis/image"
imagev1conversions "github.com/openshift/origin/pkg/image/apis/image/v1"
)

var imageStreamTagResources = []kapi.ResourceName{
Expand All @@ -40,7 +41,9 @@ func NewImageStreamTagEvaluator(store imagev1lister.ImageStreamLister, istGetter

// Constraints checks that given object is an image stream tag
func (i *imageStreamTagEvaluator) Constraints(required []kapi.ResourceName, object runtime.Object) error {
if _, ok := object.(*imagev1.ImageStreamTag); !ok {
_, okInt := object.(*imageapi.ImageStreamTag)
_, okExt := object.(*imagev1.ImageStreamTag)
if !okInt && !okExt {
return fmt.Errorf("unexpected input object %v", object)
}
return nil
Expand Down Expand Up @@ -73,6 +76,13 @@ func (i *imageStreamTagEvaluator) MatchingResources(input []kapi.ResourceName) [
}

func (i *imageStreamTagEvaluator) Usage(item runtime.Object) (kapi.ResourceList, error) {
if istInternal, ok := item.(*imageapi.ImageStreamTag); ok {
out := &imagev1.ImageStreamTag{}
if err := imagev1conversions.Convert_image_ImageStreamTag_To_v1_ImageStreamTag(istInternal, out, nil); err != nil {
return kapi.ResourceList{}, fmt.Errorf("error converting ImageStreamImport: %v", err)
}
item = out
}
ist, ok := item.(*imagev1.ImageStreamTag)
if !ok {
return kapi.ResourceList{}, nil
Expand Down
1 change: 1 addition & 0 deletions test/cmd/quota.sh
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,7 @@ os::cmd::expect_success 'oc new-project quota-images --as=deads --as-group=syst
os::cmd::expect_success 'oc create quota -n quota-images is-quota --hard openshift.io/imagestreams=1'
os::cmd::try_until_success 'oc tag -n quota-images openshift/hello-openshift myis2:v2'
os::cmd::expect_failure_and_text 'oc tag -n quota-images busybox mybox:v1' "exceeded quota"
os::cmd::expect_failure_and_text 'oc import-image centos -n quota-images --from=docker.io/centos:latest --confirm=true' "exceeded quota"
os::cmd::expect_success 'oc delete project quota-images'

echo "imagestreams: ok"
Expand Down

0 comments on commit 4b0752f

Please sign in to comment.