Remove duplicate code from kubectl describe
This commit is contained in:
		@@ -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,10 +271,22 @@ 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)
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -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
 | 
				
			||||||
	})
 | 
						})
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user