Remove duplicate code from kubectl describe
This commit is contained in:
parent
9b3ca2fb0d
commit
27d51f09a7
@ -212,17 +212,9 @@ func describeNamespace(namespace *api.Namespace, resourceQuotaList *api.Resource
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
// DescribeLimitRanges merges a set of limit range items into a single tabular description
|
func describeLimitRangeSpec(spec api.LimitRangeSpec, prefix string, w io.Writer) {
|
||||||
func DescribeLimitRanges(limitRanges *api.LimitRangeList, w io.Writer) {
|
for i := range spec.Limits {
|
||||||
if len(limitRanges.Items) == 0 {
|
item := spec.Limits[i]
|
||||||
fmt.Fprint(w, "No resource limits.\n")
|
|
||||||
return
|
|
||||||
}
|
|
||||||
fmt.Fprintf(w, "Resource Limits\n Type\tResource\tMin\tMax\tDefault Request\tDefault Limit\tMax Limit/Request Ratio\n")
|
|
||||||
fmt.Fprintf(w, " ----\t--------\t---\t---\t---------------\t-------------\t-----------------------\n")
|
|
||||||
for _, limitRange := range limitRanges.Items {
|
|
||||||
for i := range limitRange.Spec.Limits {
|
|
||||||
item := limitRange.Spec.Limits[i]
|
|
||||||
maxResources := item.Max
|
maxResources := item.Max
|
||||||
minResources := item.Min
|
minResources := item.Min
|
||||||
defaultLimitResources := item.Default
|
defaultLimitResources := item.Default
|
||||||
@ -279,11 +271,23 @@ func DescribeLimitRanges(limitRanges *api.LimitRangeList, w io.Writer) {
|
|||||||
ratioValue = ratioQuantity.String()
|
ratioValue = ratioQuantity.String()
|
||||||
}
|
}
|
||||||
|
|
||||||
msg := " %s\t%v\t%v\t%v\t%v\t%v\t%v\n"
|
msg := "%s%s\t%v\t%v\t%v\t%v\t%v\t%v\n"
|
||||||
fmt.Fprintf(w, msg, item.Type, k, minValue, maxValue, defaultRequestValue, defaultLimitValue, ratioValue)
|
fmt.Fprintf(w, msg, prefix, item.Type, k, minValue, maxValue, defaultRequestValue, defaultLimitValue, ratioValue)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// DescribeLimitRanges merges a set of limit range items into a single tabular description
|
||||||
|
func DescribeLimitRanges(limitRanges *api.LimitRangeList, w io.Writer) {
|
||||||
|
if len(limitRanges.Items) == 0 {
|
||||||
|
fmt.Fprint(w, "No resource limits.\n")
|
||||||
|
return
|
||||||
|
}
|
||||||
|
fmt.Fprintf(w, "Resource Limits\n Type\tResource\tMin\tMax\tDefault Request\tDefault Limit\tMax Limit/Request Ratio\n")
|
||||||
|
fmt.Fprintf(w, " ----\t--------\t---\t---\t---------------\t-------------\t-----------------------\n")
|
||||||
|
for _, limitRange := range limitRanges.Items {
|
||||||
|
describeLimitRangeSpec(limitRange.Spec, " ", w)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// DescribeResourceQuotas merges a set of quota items into a single tabular description of all quotas
|
// DescribeResourceQuotas merges a set of quota items into a single tabular description of all quotas
|
||||||
@ -350,68 +354,7 @@ func describeLimitRange(limitRange *api.LimitRange) (string, error) {
|
|||||||
fmt.Fprintf(out, "Namespace:\t%s\n", limitRange.Namespace)
|
fmt.Fprintf(out, "Namespace:\t%s\n", limitRange.Namespace)
|
||||||
fmt.Fprintf(out, "Type\tResource\tMin\tMax\tDefault Request\tDefault Limit\tMax Limit/Request Ratio\n")
|
fmt.Fprintf(out, "Type\tResource\tMin\tMax\tDefault Request\tDefault Limit\tMax Limit/Request Ratio\n")
|
||||||
fmt.Fprintf(out, "----\t--------\t---\t---\t---------------\t-------------\t-----------------------\n")
|
fmt.Fprintf(out, "----\t--------\t---\t---\t---------------\t-------------\t-----------------------\n")
|
||||||
for i := range limitRange.Spec.Limits {
|
describeLimitRangeSpec(limitRange.Spec, "", out)
|
||||||
item := limitRange.Spec.Limits[i]
|
|
||||||
maxResources := item.Max
|
|
||||||
minResources := item.Min
|
|
||||||
defaultLimitResources := item.Default
|
|
||||||
defaultRequestResources := item.DefaultRequest
|
|
||||||
ratio := item.MaxLimitRequestRatio
|
|
||||||
|
|
||||||
set := map[api.ResourceName]bool{}
|
|
||||||
for k := range maxResources {
|
|
||||||
set[k] = true
|
|
||||||
}
|
|
||||||
for k := range minResources {
|
|
||||||
set[k] = true
|
|
||||||
}
|
|
||||||
for k := range defaultLimitResources {
|
|
||||||
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 := "-"
|
|
||||||
defaultLimitValue := "-"
|
|
||||||
defaultRequestValue := "-"
|
|
||||||
ratioValue := "-"
|
|
||||||
|
|
||||||
maxQuantity, maxQuantityFound := maxResources[k]
|
|
||||||
if maxQuantityFound {
|
|
||||||
maxValue = maxQuantity.String()
|
|
||||||
}
|
|
||||||
|
|
||||||
minQuantity, minQuantityFound := minResources[k]
|
|
||||||
if minQuantityFound {
|
|
||||||
minValue = minQuantity.String()
|
|
||||||
}
|
|
||||||
|
|
||||||
defaultLimitQuantity, defaultLimitQuantityFound := defaultLimitResources[k]
|
|
||||||
if defaultLimitQuantityFound {
|
|
||||||
defaultLimitValue = defaultLimitQuantity.String()
|
|
||||||
}
|
|
||||||
|
|
||||||
defaultRequestQuantity, defaultRequestQuantityFound := defaultRequestResources[k]
|
|
||||||
if defaultRequestQuantityFound {
|
|
||||||
defaultRequestValue = defaultRequestQuantity.String()
|
|
||||||
}
|
|
||||||
|
|
||||||
ratioQuantity, ratioQuantityFound := ratio[k]
|
|
||||||
if ratioQuantityFound {
|
|
||||||
ratioValue = ratioQuantity.String()
|
|
||||||
}
|
|
||||||
|
|
||||||
msg := "%v\t%v\t%v\t%v\t%v\t%v\t%v\n"
|
|
||||||
fmt.Fprintf(out, msg, item.Type, k, minValue, maxValue, defaultRequestValue, defaultLimitValue, ratioValue)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return nil
|
return nil
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user