mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-22 03:11:40 +00:00
IPAddress printers
Change-Id: I60f40f4fe20b3ebd61b8ee137e55bcdefc1f2c96
This commit is contained in:
parent
53dbf1752b
commit
d06dbadd14
@ -645,6 +645,14 @@ func AddHandlers(h printers.PrintHandler) {
|
|||||||
}
|
}
|
||||||
_ = h.TableHandler(podSchedulingCtxColumnDefinitions, printPodSchedulingContext)
|
_ = h.TableHandler(podSchedulingCtxColumnDefinitions, printPodSchedulingContext)
|
||||||
_ = h.TableHandler(podSchedulingCtxColumnDefinitions, printPodSchedulingContextList)
|
_ = h.TableHandler(podSchedulingCtxColumnDefinitions, printPodSchedulingContextList)
|
||||||
|
|
||||||
|
ipAddressColumnDefinitions := []metav1.TableColumnDefinition{
|
||||||
|
{Name: "Name", Type: "string", Format: "name", Description: metav1.ObjectMeta{}.SwaggerDoc()["name"]},
|
||||||
|
{Name: "ParentRef", Type: "string", Description: networkingv1alpha1.IPAddressSpec{}.SwaggerDoc()["parentRef"]},
|
||||||
|
}
|
||||||
|
|
||||||
|
h.TableHandler(ipAddressColumnDefinitions, printIPAddress)
|
||||||
|
h.TableHandler(ipAddressColumnDefinitions, printIPAddressList)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Pass ports=nil for all ports.
|
// Pass ports=nil for all ports.
|
||||||
@ -2779,6 +2787,41 @@ func printClusterCIDRList(list *networking.ClusterCIDRList, options printers.Gen
|
|||||||
return rows, nil
|
return rows, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func printIPAddress(obj *networking.IPAddress, options printers.GenerateOptions) ([]metav1.TableRow, error) {
|
||||||
|
row := metav1.TableRow{
|
||||||
|
Object: runtime.RawExtension{Object: obj},
|
||||||
|
}
|
||||||
|
|
||||||
|
parentRefName := "<none>"
|
||||||
|
if obj.Spec.ParentRef != nil {
|
||||||
|
gr := schema.GroupResource{
|
||||||
|
Group: obj.Spec.ParentRef.Group,
|
||||||
|
Resource: obj.Spec.ParentRef.Resource,
|
||||||
|
}
|
||||||
|
parentRefName = strings.ToLower(gr.String())
|
||||||
|
if obj.Spec.ParentRef.Namespace != "" {
|
||||||
|
parentRefName += "/" + obj.Spec.ParentRef.Namespace
|
||||||
|
}
|
||||||
|
parentRefName += "/" + obj.Spec.ParentRef.Name
|
||||||
|
}
|
||||||
|
age := translateTimestampSince(obj.CreationTimestamp)
|
||||||
|
row.Cells = append(row.Cells, obj.Name, parentRefName, age)
|
||||||
|
|
||||||
|
return []metav1.TableRow{row}, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func printIPAddressList(list *networking.IPAddressList, options printers.GenerateOptions) ([]metav1.TableRow, error) {
|
||||||
|
rows := make([]metav1.TableRow, 0, len(list.Items))
|
||||||
|
for i := range list.Items {
|
||||||
|
r, err := printIPAddress(&list.Items[i], options)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
rows = append(rows, r...)
|
||||||
|
}
|
||||||
|
return rows, nil
|
||||||
|
}
|
||||||
|
|
||||||
func printScale(obj *autoscaling.Scale, options printers.GenerateOptions) ([]metav1.TableRow, error) {
|
func printScale(obj *autoscaling.Scale, options printers.GenerateOptions) ([]metav1.TableRow, error) {
|
||||||
row := metav1.TableRow{
|
row := metav1.TableRow{
|
||||||
Object: runtime.RawExtension{Object: obj},
|
Object: runtime.RawExtension{Object: obj},
|
||||||
|
@ -6482,3 +6482,83 @@ func TestPrintClusterCIDRList(t *testing.T) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestPrintIPAddress(t *testing.T) {
|
||||||
|
ip := networking.IPAddress{
|
||||||
|
ObjectMeta: metav1.ObjectMeta{
|
||||||
|
Name: "192.168.2.2",
|
||||||
|
CreationTimestamp: metav1.Time{Time: time.Now().AddDate(-10, 0, 0)},
|
||||||
|
},
|
||||||
|
Spec: networking.IPAddressSpec{
|
||||||
|
ParentRef: &networking.ParentReference{
|
||||||
|
Group: "mygroup",
|
||||||
|
Resource: "myresource",
|
||||||
|
Namespace: "mynamespace",
|
||||||
|
Name: "myname",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
// Columns: Name, ParentRef, Age
|
||||||
|
expected := []metav1.TableRow{{Cells: []interface{}{"192.168.2.2", "myresource.mygroup/mynamespace/myname", "10y"}}}
|
||||||
|
|
||||||
|
rows, err := printIPAddress(&ip, printers.GenerateOptions{})
|
||||||
|
if err != nil {
|
||||||
|
t.Fatalf("Error generating table rows for IPAddress: %#v", err)
|
||||||
|
}
|
||||||
|
rows[0].Object.Object = nil
|
||||||
|
if !reflect.DeepEqual(expected, rows) {
|
||||||
|
t.Errorf("mismatch: %s", diff.ObjectReflectDiff(expected, rows))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestPrintIPAddressList(t *testing.T) {
|
||||||
|
ipList := networking.IPAddressList{
|
||||||
|
Items: []networking.IPAddress{
|
||||||
|
{
|
||||||
|
ObjectMeta: metav1.ObjectMeta{
|
||||||
|
Name: "192.168.2.2",
|
||||||
|
CreationTimestamp: metav1.Time{Time: time.Now().AddDate(-10, 0, 0)},
|
||||||
|
},
|
||||||
|
Spec: networking.IPAddressSpec{
|
||||||
|
ParentRef: &networking.ParentReference{
|
||||||
|
Group: "mygroup",
|
||||||
|
Resource: "myresource",
|
||||||
|
Namespace: "mynamespace",
|
||||||
|
Name: "myname",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}, {
|
||||||
|
ObjectMeta: metav1.ObjectMeta{
|
||||||
|
Name: "2001:db8::2",
|
||||||
|
CreationTimestamp: metav1.Time{Time: time.Now().AddDate(-5, 0, 0)},
|
||||||
|
},
|
||||||
|
Spec: networking.IPAddressSpec{
|
||||||
|
ParentRef: &networking.ParentReference{
|
||||||
|
Group: "mygroup2",
|
||||||
|
Resource: "myresource2",
|
||||||
|
Namespace: "mynamespace2",
|
||||||
|
Name: "myname2",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
// Columns: Name, ParentRef, Age
|
||||||
|
expected := []metav1.TableRow{
|
||||||
|
{Cells: []interface{}{"192.168.2.2", "myresource.mygroup/mynamespace/myname", "10y"}},
|
||||||
|
{Cells: []interface{}{"2001:db8::2", "myresource2.mygroup2/mynamespace2/myname2", "5y1d"}},
|
||||||
|
}
|
||||||
|
|
||||||
|
rows, err := printIPAddressList(&ipList, printers.GenerateOptions{})
|
||||||
|
if err != nil {
|
||||||
|
t.Fatalf("Error generating table rows for IPAddress: %#v", err)
|
||||||
|
}
|
||||||
|
for i := range rows {
|
||||||
|
rows[i].Object.Object = nil
|
||||||
|
|
||||||
|
}
|
||||||
|
if !reflect.DeepEqual(expected, rows) {
|
||||||
|
t.Errorf("mismatch: %s", diff.ObjectReflectDiff(expected, rows))
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user