From e27fc1b25c9cf1db19fa27d04fe6f1ea32a0e3f9 Mon Sep 17 00:00:00 2001 From: juanvallejo Date: Tue, 17 Oct 2017 16:49:04 -0400 Subject: [PATCH] add Limit & Limit/Request columns Adds the "Limit" and "Limit/Request" columns seen when describing a LimitRange to the "describe" output of projects. **Before** ``` $ oc describe project myproject ... Resource limits: Name: limits Type Resource Min Max Default ---- -------- --- --- --- Pod cpu 200m 2 - Pod memory 6Mi 1Gi - Container cpu 100m 2 300m Container memory 4Mi 1Gi 200Mi ``` **After** ``` $ oc describe project myproject ... Resource limits: Name: limits Type Resource Min Max Default Limit Limit/Request ---- -------- --- --- --- ----- ------------- Pod cpu 200m 2 - - - Pod memory 6Mi 1Gi - - - Container cpu 100m 2 300m 300m 10 Container memory 4Mi 1Gi 200Mi 200Mi - ``` --- pkg/oc/cli/describe/describer.go | 28 ++++++++++++++++++++++++---- 1 file changed, 24 insertions(+), 4 deletions(-) diff --git a/pkg/oc/cli/describe/describer.go b/pkg/oc/cli/describe/describer.go index 0c1a35e2f4f2..2e5f49772f04 100644 --- a/pkg/oc/cli/describe/describer.go +++ b/pkg/oc/cli/describe/describer.go @@ -1017,13 +1017,15 @@ func (d *ProjectDescriber) Describe(namespace, name string, settings kprinters.D for i := range limitRangeList.Items { limitRange := &limitRangeList.Items[i] fmt.Fprintf(out, "\tName:\t%s\n", limitRange.Name) - fmt.Fprintf(out, "\tType\tResource\tMin\tMax\tDefault\n") - fmt.Fprintf(out, "\t----\t--------\t---\t---\t---\n") + fmt.Fprintf(out, "\tType\tResource\tMin\tMax\tDefault\tLimit\tLimit/Request\n") + fmt.Fprintf(out, "\t----\t--------\t---\t---\t---\t-----\t-------------\n") for i := range limitRange.Spec.Limits { item := limitRange.Spec.Limits[i] maxResources := item.Max minResources := item.Min defaultResources := item.Default + defaultRequestResources := item.DefaultRequest + ratio := item.MaxLimitRequestRatio set := map[kapi.ResourceName]bool{} for k := range maxResources { @@ -1035,12 +1037,20 @@ func (d *ProjectDescriber) Describe(namespace, name string, settings kprinters.D for k := range defaultResources { set[k] = true } + for k := range defaultRequestResources { + set[k] = true + } + for k := range ratio { + set[k] = true + } for k := range set { // if no value is set, we output - maxValue := "-" minValue := "-" defaultValue := "-" + defaultLimitValue := "-" + ratioValue := "-" maxQuantity, maxQuantityFound := maxResources[k] if maxQuantityFound { @@ -1057,8 +1067,18 @@ func (d *ProjectDescriber) Describe(namespace, name string, settings kprinters.D defaultValue = defaultQuantity.String() } - msg := "\t%v\t%v\t%v\t%v\t%v\n" - fmt.Fprintf(out, msg, item.Type, k, minValue, maxValue, defaultValue) + defaultLimitQuantity, defaultLimitQuantityFound := defaultResources[k] + if defaultLimitQuantityFound { + defaultLimitValue = defaultLimitQuantity.String() + } + + ratioQuantity, ratioQuantityFound := ratio[k] + if ratioQuantityFound { + ratioValue = ratioQuantity.String() + } + + msg := "\t%v\t%v\t%v\t%v\t%v\t%v\t%v\n" + fmt.Fprintf(out, msg, item.Type, k, minValue, maxValue, defaultValue, defaultLimitValue, ratioValue) } } }