diff --git a/cli/dpservice-cli/cmd/command.go b/cli/dpservice-cli/cmd/command.go index 6f0ded156..834342989 100644 --- a/cli/dpservice-cli/cmd/command.go +++ b/cli/dpservice-cli/cmd/command.go @@ -9,6 +9,8 @@ import ( ) func Command() *cobra.Command { + cobra.EnableCaseInsensitive = true + dpdkClientOptions := &DPDKClientOptions{} rendererOptions := &RendererOptions{} diff --git a/cli/dpservice-cli/cmd/create_loadbalancer_prefix.go b/cli/dpservice-cli/cmd/create_loadbalancer_prefix.go index f3af7911f..674f87e33 100644 --- a/cli/dpservice-cli/cmd/create_loadbalancer_prefix.go +++ b/cli/dpservice-cli/cmd/create_loadbalancer_prefix.go @@ -29,7 +29,7 @@ func CreateLoadBalancerPrefix( Short: "Create a loadbalancer prefix", Example: "dpservice-cli create lbprefix --prefix=10.10.10.0/24 --interface-id=vm1", Args: cobra.ExactArgs(0), - Aliases: PrefixAliases, + Aliases: LoadBalancerPrefixAliases, RunE: func(cmd *cobra.Command, args []string) error { return RunCreateLoadBalancerPrefix( diff --git a/cli/dpservice-cli/cmd/list_loadbalancer_prefixes.go b/cli/dpservice-cli/cmd/list_loadbalancer_prefixes.go index 60578bee0..8160f5d61 100644 --- a/cli/dpservice-cli/cmd/list_loadbalancer_prefixes.go +++ b/cli/dpservice-cli/cmd/list_loadbalancer_prefixes.go @@ -81,17 +81,27 @@ func RunListLoadBalancerPrefixes( } for _, iface := range ifaces.Items { - prefix, err := client.ListLoadBalancerPrefixes(ctx, iface.ID) - if err != nil && prefix.Status.Code == 0 { + prefixes, err := client.ListLoadBalancerPrefixes(ctx, iface.ID) + if err != nil && prefixes.Status.Code == 0 { return fmt.Errorf("error getting loadbalancer prefixes: %w", err) } - prefixList.Items = append(prefixList.Items, prefix.Items...) + for id := range prefixes.Items { + prefixes.Items[id].Vni = iface.Spec.VNI + } + prefixList.Items = append(prefixList.Items, prefixes.Items...) } } else { prefixList, err = client.ListLoadBalancerPrefixes(ctx, opts.InterfaceID) if err != nil { return fmt.Errorf("error listing loadbalancer prefixes: %w", err) } + iface, err := client.GetInterface(ctx, opts.InterfaceID) + if err != nil { + return fmt.Errorf("error getting interface: %w", err) + } + for id := range prefixList.Items { + prefixList.Items[id].Vni = iface.Spec.VNI + } } // sort items in list diff --git a/cli/dpservice-cli/cmd/list_prefixes.go b/cli/dpservice-cli/cmd/list_prefixes.go index e61fc6875..ea804e48a 100644 --- a/cli/dpservice-cli/cmd/list_prefixes.go +++ b/cli/dpservice-cli/cmd/list_prefixes.go @@ -80,17 +80,27 @@ func RunListPrefixes( } for _, iface := range ifaces.Items { - prefix, err := client.ListPrefixes(ctx, iface.ID) - if err != nil && prefix.Status.Code == 0 { + prefixes, err := client.ListPrefixes(ctx, iface.ID) + if err != nil && prefixes.Status.Code == 0 { return fmt.Errorf("error getting prefixes: %w", err) } - prefixList.Items = append(prefixList.Items, prefix.Items...) + for id := range prefixes.Items { + prefixes.Items[id].Vni = iface.Spec.VNI + } + prefixList.Items = append(prefixList.Items, prefixes.Items...) } } else { prefixList, err = client.ListPrefixes(ctx, opts.InterfaceID) if err != nil { return fmt.Errorf("error listing prefixes: %w", err) } + iface, err := client.GetInterface(ctx, opts.InterfaceID) + if err != nil { + return fmt.Errorf("error getting interface: %w", err) + } + for id := range prefixList.Items { + prefixList.Items[id].Vni = iface.Spec.VNI + } } // sort items in list prefixes := prefixList.Items diff --git a/cli/dpservice-cli/renderer/renderer.go b/cli/dpservice-cli/renderer/renderer.go index bfb10226d..b0f97837c 100644 --- a/cli/dpservice-cli/renderer/renderer.go +++ b/cli/dpservice-cli/renderer/renderer.go @@ -290,11 +290,11 @@ func (t defaultTableConverter) interfaceTable(ifaces []api.Interface) (*TableDat } func (t defaultTableConverter) prefixTable(prefixes []api.Prefix) (*TableData, error) { - headers := []any{"Prefix", "UnderlayRoute"} + headers := []any{"VNI", "Prefix", "UnderlayRoute", "InterfaceID"} columns := make([][]any, len(prefixes)) for i, prefix := range prefixes { - columns[i] = []any{prefix.Spec.Prefix, prefix.Spec.UnderlayRoute} + columns[i] = []any{prefix.Vni, prefix.Spec.Prefix, prefix.Spec.UnderlayRoute, prefix.InterfaceID} } return &TableData{ diff --git a/go/dpservice-go/api/types.go b/go/dpservice-go/api/types.go index ce9af6021..06fd3f2d5 100644 --- a/go/dpservice-go/api/types.go +++ b/go/dpservice-go/api/types.go @@ -128,6 +128,7 @@ type Prefix struct { type PrefixMeta struct { InterfaceID string `json:"interface_id"` + Vni uint32 `json:"vni"` } func (m *Prefix) GetName() string {