From 5178208ecd266f8f28ef372575279a6b04f2663d Mon Sep 17 00:00:00 2001 From: Gerrit Date: Thu, 6 Jun 2024 11:45:39 +0200 Subject: [PATCH 1/7] Size reservation labels and dependency updates. --- cmd/common_test.go | 2 +- cmd/firewall.go | 2 +- cmd/size.go | 9 +++++---- cmd/size_test.go | 19 ++++++++++++++++--- cmd/tableprinters/size.go | 16 ++++++++++++++-- go.mod | 24 ++++++++++++------------ go.sum | 36 ++++++++++++++++++------------------ pkg/api/context.go | 2 +- 8 files changed, 68 insertions(+), 42 deletions(-) diff --git a/cmd/common_test.go b/cmd/common_test.go index 2563dc8e..cce6322b 100644 --- a/cmd/common_test.go +++ b/cmd/common_test.go @@ -23,7 +23,7 @@ import ( "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" "github.com/undefinedlabs/go-mpatch" - "gopkg.in/yaml.v3" + "sigs.k8s.io/yaml" ) var testTime = time.Date(2022, time.May, 19, 1, 2, 3, 4, time.UTC) diff --git a/cmd/firewall.go b/cmd/firewall.go index 1f0139e8..177ab3fc 100644 --- a/cmd/firewall.go +++ b/cmd/firewall.go @@ -14,7 +14,7 @@ import ( "github.com/metal-stack/metalctl/cmd/sorters" "github.com/spf13/cobra" "github.com/spf13/viper" - "gopkg.in/yaml.v3" + "sigs.k8s.io/yaml" ) type firewallCmd struct { diff --git a/cmd/size.go b/cmd/size.go index 69242274..bfcd7cc3 100644 --- a/cmd/size.go +++ b/cmd/size.go @@ -168,10 +168,11 @@ func sizeResponseToCreate(r *models.V1SizeResponse) *models.V1SizeCreateRequest }) } return &models.V1SizeCreateRequest{ - Constraints: constraints, - Description: r.Description, - ID: r.ID, - Name: r.Name, + Constraints: constraints, + Description: r.Description, + ID: r.ID, + Name: r.Name, + Reservations: r.Reservations, } } diff --git a/cmd/size_test.go b/cmd/size_test.go index 49745c94..aefb152a 100644 --- a/cmd/size_test.go +++ b/cmd/size_test.go @@ -47,12 +47,18 @@ var ( Description: "for testing", Partitionids: []string{*partition1.ID}, Projectid: pointer.Pointer(project1.Meta.ID), + Labels: map[string]string{ + "size.metal-stack.io/reserved-by": "admin", + }, }, { Amount: pointer.Pointer(int32(2)), Description: "for testing", Partitionids: []string{*partition2.ID}, Projectid: pointer.Pointer(project2.Meta.ID), + Labels: map[string]string{ + "size.metal-stack.io/reserved-by": "admin", + }, }, }, Labels: map[string]string{ @@ -290,6 +296,7 @@ ID NAME DESCRIPTION RESERVATIONS CPU RANGE MEMORY RANGE STORAGE RA Type: size1.Constraints[0].Type, }, } + s.Reservations = nil mock.On("CreateSize", testcommon.MatchIgnoreContext(t, size.NewCreateSizeParams().WithBody(sizeResponseToCreate(size1))), nil).Return(&size.CreateSizeCreated{ Payload: size1, }, nil) @@ -376,6 +383,9 @@ func Test_SizeReservationsCmd_MultiResult(t *testing.T) { Sizeid: pointer.Pointer("size-1"), Tenant: pointer.Pointer("tenant-1"), Usedreservations: pointer.Pointer(int32(5)), + Labels: map[string]string{ + "size.metal-stack.io/reserved-by": "admin", + }, }, { Partitionid: pointer.Pointer("b"), @@ -386,6 +396,9 @@ func Test_SizeReservationsCmd_MultiResult(t *testing.T) { Sizeid: pointer.Pointer("size-2"), Tenant: pointer.Pointer("tenant-2"), Usedreservations: pointer.Pointer(int32(1)), + Labels: map[string]string{ + "size.metal-stack.io/reserved-by": "admin", + }, }, } @@ -407,9 +420,9 @@ a size-1 tenant-1 1 project-1 5/5 10 b size-2 tenant-2 2 project-2 1/3 1 `), wantWideTable: pointer.Pointer(` -PARTITION SIZE TENANT PROJECT PROJECT NAME USED/AMOUNT PROJECT ALLOCATIONS -a size-1 tenant-1 1 project-1 5/5 10 -b size-2 tenant-2 2 project-2 1/3 1 +PARTITION SIZE TENANT PROJECT PROJECT NAME USED/AMOUNT PROJECT ALLOCATIONS LABELS +a size-1 tenant-1 1 project-1 5/5 10 size.metal-stack.io/reserved-by=admin +b size-2 tenant-2 2 project-2 1/3 1 size.metal-stack.io/reserved-by=admin `), wantMarkdown: pointer.Pointer(` | PARTITION | SIZE | TENANT | PROJECT | PROJECT NAME | USED/AMOUNT | PROJECT ALLOCATIONS | diff --git a/cmd/tableprinters/size.go b/cmd/tableprinters/size.go index cd8c34a4..6ad7e31f 100644 --- a/cmd/tableprinters/size.go +++ b/cmd/tableprinters/size.go @@ -69,10 +69,14 @@ func (t *TablePrinter) SizeReservationTable(data []*models.V1SizeReservationResp rows [][]string ) + if wide { + header = append(header, "Labels") + } + for _, d := range data { d := d - rows = append(rows, []string{ + row := []string{ pointer.SafeDeref(d.Partitionid), pointer.SafeDeref(d.Sizeid), pointer.SafeDeref(d.Tenant), @@ -80,7 +84,15 @@ func (t *TablePrinter) SizeReservationTable(data []*models.V1SizeReservationResp pointer.SafeDeref(d.Projectname), fmt.Sprintf("%d/%d", pointer.SafeDeref(d.Usedreservations), pointer.SafeDeref(d.Reservations)), strconv.Itoa(int(pointer.SafeDeref(d.Projectallocations))), - }) + } + + if wide { + labels := genericcli.MapToLabels(d.Labels) + sort.Strings(labels) + row = append(row, strings.Join(labels, "\n")) + } + + rows = append(rows, row) } return header, rows, nil diff --git a/go.mod b/go.mod index e2136df3..19ed48e1 100644 --- a/go.mod +++ b/go.mod @@ -1,28 +1,28 @@ module github.com/metal-stack/metalctl -go 1.22 +go 1.22.0 require ( github.com/Masterminds/semver/v3 v3.2.1 github.com/dustin/go-humanize v1.0.1 - github.com/fatih/color v1.16.0 + github.com/fatih/color v1.17.0 github.com/go-openapi/runtime v0.28.0 github.com/go-openapi/strfmt v0.23.0 github.com/google/go-cmp v0.6.0 github.com/google/uuid v1.6.0 - github.com/metal-stack/metal-go v0.29.0 - github.com/metal-stack/metal-lib v0.16.2 + github.com/metal-stack/metal-go v0.31.3-0.20240606094223-0e841518ba71 + github.com/metal-stack/metal-lib v0.16.3 github.com/metal-stack/updater v1.2.1 github.com/metal-stack/v v1.0.3 github.com/olekukonko/tablewriter v0.0.6-0.20230925090304-df64c4bbad77 github.com/spf13/afero v1.11.0 github.com/spf13/cobra v1.8.0 github.com/spf13/pflag v1.0.5 - github.com/spf13/viper v1.18.2 + github.com/spf13/viper v1.19.0 github.com/stretchr/testify v1.9.0 github.com/undefinedlabs/go-mpatch v1.0.7 - gopkg.in/yaml.v3 v3.0.1 - k8s.io/apimachinery v0.29.3 + k8s.io/apimachinery v0.30.1 + sigs.k8s.io/yaml v1.4.0 ) require ( @@ -57,7 +57,7 @@ require ( github.com/decred/dcrd/dcrec/secp256k1/v4 v4.2.0 // indirect github.com/digitalocean/go-smbios v0.0.0-20180907143718-390a4f403a8e // indirect github.com/emicklei/go-restful-openapi/v2 v2.9.1 // indirect - github.com/emicklei/go-restful/v3 v3.12.0 // indirect + github.com/emicklei/go-restful/v3 v3.12.1 // indirect github.com/fsnotify/fsnotify v1.7.0 // indirect github.com/fxamacker/cbor/v2 v2.6.0 // indirect github.com/go-jose/go-jose/v4 v4.0.1 // indirect @@ -118,7 +118,7 @@ require ( github.com/mitchellh/mapstructure v1.5.0 // indirect github.com/oklog/ulid v1.3.1 // indirect github.com/opentracing/opentracing-go v1.2.0 // indirect - github.com/pelletier/go-toml/v2 v2.2.0 // indirect + github.com/pelletier/go-toml/v2 v2.2.2 // indirect github.com/pierrec/lz4/v4 v4.1.21 // indirect github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect github.com/rivo/uniseg v0.4.7 // indirect @@ -151,10 +151,10 @@ require ( go.uber.org/multierr v1.11.0 // indirect go4.org/mem v0.0.0-20220726221520-4f986261bf13 // indirect go4.org/netipx v0.0.0-20231129151722-fdeea329fbba // indirect - golang.org/x/crypto v0.22.0 // indirect + golang.org/x/crypto v0.23.0 // indirect golang.org/x/exp v0.0.0-20240416160154-fe59bbe5cc7f // indirect golang.org/x/mod v0.17.0 // indirect - golang.org/x/net v0.24.0 // indirect + golang.org/x/net v0.25.0 // indirect golang.org/x/oauth2 v0.20.0 // indirect golang.org/x/sync v0.7.0 // indirect golang.org/x/sys v0.20.0 // indirect @@ -168,10 +168,10 @@ require ( google.golang.org/protobuf v1.34.0 // indirect gopkg.in/inf.v0 v0.9.1 // indirect gopkg.in/ini.v1 v1.67.0 // indirect + gopkg.in/yaml.v3 v3.0.1 // indirect gvisor.dev/gvisor v0.0.0-20230928000133-4fe30062272c // indirect inet.af/peercred v0.0.0-20210906144145-0893ea02156a // indirect nhooyr.io/websocket v1.8.10 // indirect sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd // indirect - sigs.k8s.io/yaml v1.4.0 // indirect tailscale.com v1.54.1 // indirect ) diff --git a/go.sum b/go.sum index 66e3b790..6a4d2d21 100644 --- a/go.sum +++ b/go.sum @@ -81,10 +81,10 @@ github.com/dustin/go-humanize v1.0.1/go.mod h1:Mu1zIs6XwVuF/gI1OepvI0qD18qycQx+m github.com/emicklei/go-restful-openapi/v2 v2.9.1 h1:Of8B1rXdG81il5TTiSY+9Qrh7pYOr8aLdynHIpvo7fM= github.com/emicklei/go-restful-openapi/v2 v2.9.1/go.mod h1:VKNgZyYviM1hnyrjD9RDzP2RuE94xTXxV+u6MGN4v4k= github.com/emicklei/go-restful/v3 v3.7.3/go.mod h1:6n3XBCmQQb25CM2LCACGz8ukIrRry+4bhvbpWn3mrbc= -github.com/emicklei/go-restful/v3 v3.12.0 h1:y2DdzBAURM29NFF94q6RaY4vjIH1rtwDapwQtU84iWk= -github.com/emicklei/go-restful/v3 v3.12.0/go.mod h1:6n3XBCmQQb25CM2LCACGz8ukIrRry+4bhvbpWn3mrbc= -github.com/fatih/color v1.16.0 h1:zmkK9Ngbjj+K0yRhTVONQh1p/HknKYSlNT+vZCzyokM= -github.com/fatih/color v1.16.0/go.mod h1:fL2Sau1YI5c0pdGEVCbKQbLXB6edEj1ZgiY4NijnWvE= +github.com/emicklei/go-restful/v3 v3.12.1 h1:PJMDIM/ak7btuL8Ex0iYET9hxM3CI2sjZtzpL63nKAU= +github.com/emicklei/go-restful/v3 v3.12.1/go.mod h1:6n3XBCmQQb25CM2LCACGz8ukIrRry+4bhvbpWn3mrbc= +github.com/fatih/color v1.17.0 h1:GlRw1BRJxkpqUCBKzKOw098ed57fEsKeNjpTe3cSjK4= +github.com/fatih/color v1.17.0/go.mod h1:YZ7TlrGPkiz6ku9fK3TLD/pl3CpsiFyu8N92HLgmosI= github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8= github.com/frankban/quicktest v1.14.6/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0= github.com/fsnotify/fsnotify v1.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nosvA= @@ -236,10 +236,10 @@ github.com/mdlayher/sdnotify v1.0.0 h1:Ma9XeLVN/l0qpyx1tNeMSeTjCPH6NtuD6/N9XdTlQ github.com/mdlayher/sdnotify v1.0.0/go.mod h1:HQUmpM4XgYkhDLtd+Uad8ZFK1T9D5+pNxnXQjCeJlGE= github.com/mdlayher/socket v0.5.1 h1:VZaqt6RkGkt2OE9l3GcC6nZkqD3xKeQLyfleW/uBcos= github.com/mdlayher/socket v0.5.1/go.mod h1:TjPLHI1UgwEv5J1B5q0zTZq12A/6H7nKmtTanQE37IQ= -github.com/metal-stack/metal-go v0.29.0 h1:EuJ7u/L+3lsby+kzrE0aF6gBIBDKPENqvOO2idGhMqw= -github.com/metal-stack/metal-go v0.29.0/go.mod h1:gYLZX3umsoZLWZ5d4MJdVbnR8eFXUTlLTK7tyx638As= -github.com/metal-stack/metal-lib v0.16.2 h1:RJls/Spai4h5xr3BEmQt9UdWNN4RB9+SOINoZcjYaA8= -github.com/metal-stack/metal-lib v0.16.2/go.mod h1:nyNGI4DZFOcWbSoq2Y6V3SHpFxuXBIqYBZHTb6cy//s= +github.com/metal-stack/metal-go v0.31.3-0.20240606094223-0e841518ba71 h1:FyZbtpJr7EjrC1uXHrXexqWtasKOCXGmLHzNKy/JDiU= +github.com/metal-stack/metal-go v0.31.3-0.20240606094223-0e841518ba71/go.mod h1:3MJTYCS4YJz8D8oteTKhjpaAKNMMjMKYDrIy9awHGtQ= +github.com/metal-stack/metal-lib v0.16.3 h1:xJr6P9GauQK49aoFH0bFyye5kRGmt87PomokulUm4Go= +github.com/metal-stack/metal-lib v0.16.3/go.mod h1:nyNGI4DZFOcWbSoq2Y6V3SHpFxuXBIqYBZHTb6cy//s= github.com/metal-stack/security v0.8.0 h1:tVaSDB9m5clwYrnLyaXfPy7mQlJTnmeoHscG+RUy/xo= github.com/metal-stack/security v0.8.0/go.mod h1:7GAcQb+pOgflW30ohJygxpqc3i0dQ2ahGJK1CU5tqa0= github.com/metal-stack/updater v1.2.1 h1:8wWpzx+VHw8Pv6IJ+IUEqMr7g06TrrADvcWAFMZl/ZE= @@ -261,8 +261,8 @@ github.com/olekukonko/tablewriter v0.0.6-0.20230925090304-df64c4bbad77 h1:3bMMZ1 github.com/olekukonko/tablewriter v0.0.6-0.20230925090304-df64c4bbad77/go.mod h1:8Hf+pH6thup1sPZPD+NLg7d6vbpsdilu9CPIeikvgMQ= github.com/opentracing/opentracing-go v1.2.0 h1:uEJPy/1a5RIPAJ0Ov+OIO8OxWu77jEv+1B0VhjKrZUs= github.com/opentracing/opentracing-go v1.2.0/go.mod h1:GxEUsuufX4nBwe+T+Wl9TAgYrxe9dPLANfrWvHYVTgc= -github.com/pelletier/go-toml/v2 v2.2.0 h1:QLgLl2yMN7N+ruc31VynXs1vhMZa7CeHHejIeBAsoHo= -github.com/pelletier/go-toml/v2 v2.2.0/go.mod h1:1t835xjRzz80PqgE6HHgN2JOsmgYu/h4qDAS4n929Rs= +github.com/pelletier/go-toml/v2 v2.2.2 h1:aYUidT7k73Pcl9nb2gScu7NSrKCSHIDE89b3+6Wq+LM= +github.com/pelletier/go-toml/v2 v2.2.2/go.mod h1:1t835xjRzz80PqgE6HHgN2JOsmgYu/h4qDAS4n929Rs= github.com/pierrec/lz4/v4 v4.1.14/go.mod h1:gZWDp/Ze/IJXGXf23ltt2EXimqmTUXEy0GFuRQyBid4= github.com/pierrec/lz4/v4 v4.1.21 h1:yOVMLb6qSIDP67pl/5F7RepeKYu/VmTyEXvuMI5d9mQ= github.com/pierrec/lz4/v4 v4.1.21/go.mod h1:gZWDp/Ze/IJXGXf23ltt2EXimqmTUXEy0GFuRQyBid4= @@ -297,8 +297,8 @@ github.com/spf13/cobra v1.8.0 h1:7aJaZx1B85qltLMc546zn58BxxfZdR/W22ej9CFoEf0= github.com/spf13/cobra v1.8.0/go.mod h1:WXLWApfZ71AjXPya3WOlMsY9yMs7YeiHhFVlvLyhcho= github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= -github.com/spf13/viper v1.18.2 h1:LUXCnvUvSM6FXAsj6nnfc8Q2tp1dIgUfY9Kc8GsSOiQ= -github.com/spf13/viper v1.18.2/go.mod h1:EKmWIqdnk5lOcmR72yw6hS+8OPYcwD0jteitLMVB+yk= +github.com/spf13/viper v1.19.0 h1:RWq5SEjt8o25SROyN3z2OrDB9l7RPd3lwTWU8EcEdcI= +github.com/spf13/viper v1.19.0/go.mod h1:GQUN9bilAbhU/jgc1bKs99f/suXKeUMct8Adx5+Ntkg= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= @@ -360,8 +360,8 @@ go4.org/mem v0.0.0-20220726221520-4f986261bf13 h1:CbZeCBZ0aZj8EfVgnqQcYZgf0lpZ3H go4.org/mem v0.0.0-20220726221520-4f986261bf13/go.mod h1:reUoABIJ9ikfM5sgtSF3Wushcza7+WeD01VB9Lirh3g= go4.org/netipx v0.0.0-20231129151722-fdeea329fbba h1:0b9z3AuHCjxk0x/opv64kcgZLBseWJUpBw5I82+2U4M= go4.org/netipx v0.0.0-20231129151722-fdeea329fbba/go.mod h1:PLyyIXexvUFg3Owu6p/WfdlivPbZJsZdgWZlrGope/Y= -golang.org/x/crypto v0.22.0 h1:g1v0xeRhjcugydODzvb3mEM9SQ0HGp9s/nh3COQ/C30= -golang.org/x/crypto v0.22.0/go.mod h1:vr6Su+7cTlO45qkww3VDJlzDn0ctJvRgYbC2NvXHt+M= +golang.org/x/crypto v0.23.0 h1:dIJU/v2J8Mdglj/8rJ6UUOM3Zc9zLZxVZwwxMooUSAI= +golang.org/x/crypto v0.23.0/go.mod h1:CKFgDieR+mRhux2Lsu27y0fO304Db0wZe70UKqHu0v8= golang.org/x/exp v0.0.0-20240416160154-fe59bbe5cc7f h1:99ci1mjWVBWwJiEKYY6jWa4d2nTQVIEhZIptnrVb1XY= golang.org/x/exp v0.0.0-20240416160154-fe59bbe5cc7f/go.mod h1:/lliqkxwWAhPjf5oSOIJup2XcqJaw8RGS6k3TGEc7GI= golang.org/x/exp/typeparams v0.0.0-20230905200255-921286631fa9 h1:j3D9DvWRpUfIyFfDPws7LoIZ2MAI1OJHdQXtTnYtN+k= @@ -369,8 +369,8 @@ golang.org/x/exp/typeparams v0.0.0-20230905200255-921286631fa9/go.mod h1:AbB0pIl golang.org/x/mod v0.17.0 h1:zY54UmvipHiNd+pm+m0x9KhZ9hl1/7QNMyxXbc6ICqA= golang.org/x/mod v0.17.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= golang.org/x/net v0.0.0-20210421230115-4e50805a0758/go.mod h1:72T/g9IO56b78aLF+1Kcs5dz7/ng1VjMUvfKvpfy+jM= -golang.org/x/net v0.24.0 h1:1PcaxkF854Fu3+lvBIx5SYn9wRlBzzcnHZSiaFFAb0w= -golang.org/x/net v0.24.0/go.mod h1:2Q7sJY5mzlzWjKtYUEXSlBWCdyaioyXzRB2RtU8KVE8= +golang.org/x/net v0.25.0 h1:d/OCCoBEUq33pjydKrGQhw7IlUPI2Oylr+8qLx49kac= +golang.org/x/net v0.25.0/go.mod h1:JkAGAh7GEvH74S6FOH42FLoXpXbE/aqXSrIQjXgsiwM= golang.org/x/oauth2 v0.20.0 h1:4mQdhULixXKP1rwYBW0vAijoXnkTG0BLCDRzfe1idMo= golang.org/x/oauth2 v0.20.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI= golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -437,8 +437,8 @@ inet.af/peercred v0.0.0-20210906144145-0893ea02156a h1:qdkS8Q5/i10xU2ArJMKYhVa1D inet.af/peercred v0.0.0-20210906144145-0893ea02156a/go.mod h1:FjawnflS/udxX+SvpsMgZfdqx2aykOlkISeAsADi5IU= inet.af/wf v0.0.0-20221017222439-36129f591884 h1:zg9snq3Cpy50lWuVqDYM7AIRVTtU50y5WXETMFohW/Q= inet.af/wf v0.0.0-20221017222439-36129f591884/go.mod h1:bSAQ38BYbY68uwpasXOTZo22dKGy9SNvI6PZFeKomZE= -k8s.io/apimachinery v0.29.3 h1:2tbx+5L7RNvqJjn7RIuIKu9XTsIZ9Z5wX2G22XAa5EU= -k8s.io/apimachinery v0.29.3/go.mod h1:hx/S4V2PNW4OMg3WizRrHutyB5la0iCUbZym+W0EQIU= +k8s.io/apimachinery v0.30.1 h1:ZQStsEfo4n65yAdlGTfP/uSHMQSoYzU/oeEbkmF7P2U= +k8s.io/apimachinery v0.30.1/go.mod h1:iexa2somDaxdnj7bha06bhb43Zpa6eWH8N8dbqVjTUc= nhooyr.io/websocket v1.8.10 h1:mv4p+MnGrLDcPlBoWsvPP7XCzTYMXP9F9eIGoKbgx7Q= nhooyr.io/websocket v1.8.10/go.mod h1:rN9OFWIUwuxg4fR5tELlYC04bXYowCP9GX47ivo2l+c= sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd h1:EDPBXCAspyGV4jQlpZSudPeMmr1bNJefnuqLsRAsHZo= diff --git a/pkg/api/context.go b/pkg/api/context.go index 87bf1d7f..5d9ce67a 100644 --- a/pkg/api/context.go +++ b/pkg/api/context.go @@ -6,7 +6,7 @@ import ( "github.com/fatih/color" "github.com/spf13/viper" - "gopkg.in/yaml.v3" + "sigs.k8s.io/yaml" ) // Contexts contains all configuration contexts of metalctl From b19cf641d20c57e375b7ec9b604375b643a4a7b5 Mon Sep 17 00:00:00 2001 From: Gerrit Date: Thu, 6 Jun 2024 13:12:07 +0200 Subject: [PATCH 2/7] Don't use sigs yaml. --- cmd/common_test.go | 2 +- cmd/firewall.go | 2 +- go.mod | 4 ++-- pkg/api/context.go | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/cmd/common_test.go b/cmd/common_test.go index cce6322b..2563dc8e 100644 --- a/cmd/common_test.go +++ b/cmd/common_test.go @@ -23,7 +23,7 @@ import ( "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" "github.com/undefinedlabs/go-mpatch" - "sigs.k8s.io/yaml" + "gopkg.in/yaml.v3" ) var testTime = time.Date(2022, time.May, 19, 1, 2, 3, 4, time.UTC) diff --git a/cmd/firewall.go b/cmd/firewall.go index 177ab3fc..1f0139e8 100644 --- a/cmd/firewall.go +++ b/cmd/firewall.go @@ -14,7 +14,7 @@ import ( "github.com/metal-stack/metalctl/cmd/sorters" "github.com/spf13/cobra" "github.com/spf13/viper" - "sigs.k8s.io/yaml" + "gopkg.in/yaml.v3" ) type firewallCmd struct { diff --git a/go.mod b/go.mod index 19ed48e1..55ab1bb7 100644 --- a/go.mod +++ b/go.mod @@ -21,8 +21,8 @@ require ( github.com/spf13/viper v1.19.0 github.com/stretchr/testify v1.9.0 github.com/undefinedlabs/go-mpatch v1.0.7 + gopkg.in/yaml.v3 v3.0.1 k8s.io/apimachinery v0.30.1 - sigs.k8s.io/yaml v1.4.0 ) require ( @@ -168,10 +168,10 @@ require ( google.golang.org/protobuf v1.34.0 // indirect gopkg.in/inf.v0 v0.9.1 // indirect gopkg.in/ini.v1 v1.67.0 // indirect - gopkg.in/yaml.v3 v3.0.1 // indirect gvisor.dev/gvisor v0.0.0-20230928000133-4fe30062272c // indirect inet.af/peercred v0.0.0-20210906144145-0893ea02156a // indirect nhooyr.io/websocket v1.8.10 // indirect sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd // indirect + sigs.k8s.io/yaml v1.4.0 // indirect tailscale.com v1.54.1 // indirect ) diff --git a/pkg/api/context.go b/pkg/api/context.go index 5d9ce67a..87bf1d7f 100644 --- a/pkg/api/context.go +++ b/pkg/api/context.go @@ -6,7 +6,7 @@ import ( "github.com/fatih/color" "github.com/spf13/viper" - "sigs.k8s.io/yaml" + "gopkg.in/yaml.v3" ) // Contexts contains all configuration contexts of metalctl From 17f2d0a2131de66ed89b3b7d91943246f089fa83 Mon Sep 17 00:00:00 2001 From: Gerrit Date: Thu, 6 Jun 2024 13:44:11 +0200 Subject: [PATCH 3/7] Revert apimachinery. --- go.mod | 4 ++-- go.sum | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/go.mod b/go.mod index 55ab1bb7..3ce57c22 100644 --- a/go.mod +++ b/go.mod @@ -1,6 +1,6 @@ module github.com/metal-stack/metalctl -go 1.22.0 +go 1.22 require ( github.com/Masterminds/semver/v3 v3.2.1 @@ -22,7 +22,7 @@ require ( github.com/stretchr/testify v1.9.0 github.com/undefinedlabs/go-mpatch v1.0.7 gopkg.in/yaml.v3 v3.0.1 - k8s.io/apimachinery v0.30.1 + k8s.io/apimachinery v0.29.3 ) require ( diff --git a/go.sum b/go.sum index 6a4d2d21..094c807b 100644 --- a/go.sum +++ b/go.sum @@ -437,8 +437,8 @@ inet.af/peercred v0.0.0-20210906144145-0893ea02156a h1:qdkS8Q5/i10xU2ArJMKYhVa1D inet.af/peercred v0.0.0-20210906144145-0893ea02156a/go.mod h1:FjawnflS/udxX+SvpsMgZfdqx2aykOlkISeAsADi5IU= inet.af/wf v0.0.0-20221017222439-36129f591884 h1:zg9snq3Cpy50lWuVqDYM7AIRVTtU50y5WXETMFohW/Q= inet.af/wf v0.0.0-20221017222439-36129f591884/go.mod h1:bSAQ38BYbY68uwpasXOTZo22dKGy9SNvI6PZFeKomZE= -k8s.io/apimachinery v0.30.1 h1:ZQStsEfo4n65yAdlGTfP/uSHMQSoYzU/oeEbkmF7P2U= -k8s.io/apimachinery v0.30.1/go.mod h1:iexa2somDaxdnj7bha06bhb43Zpa6eWH8N8dbqVjTUc= +k8s.io/apimachinery v0.29.3 h1:2tbx+5L7RNvqJjn7RIuIKu9XTsIZ9Z5wX2G22XAa5EU= +k8s.io/apimachinery v0.29.3/go.mod h1:hx/S4V2PNW4OMg3WizRrHutyB5la0iCUbZym+W0EQIU= nhooyr.io/websocket v1.8.10 h1:mv4p+MnGrLDcPlBoWsvPP7XCzTYMXP9F9eIGoKbgx7Q= nhooyr.io/websocket v1.8.10/go.mod h1:rN9OFWIUwuxg4fR5tELlYC04bXYowCP9GX47ivo2l+c= sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd h1:EDPBXCAspyGV4jQlpZSudPeMmr1bNJefnuqLsRAsHZo= From 9e0a7b417fa19ad642d390029774bc9009373542 Mon Sep 17 00:00:00 2001 From: Gerrit Date: Wed, 12 Jun 2024 12:35:55 +0200 Subject: [PATCH 4/7] Update. --- cmd/size.go | 10 +++++++++- cmd/size_test.go | 10 ++++++++-- docs/metalctl_size_reservations_list.md | 3 +++ go.mod | 2 +- go.sum | 4 ++-- 5 files changed, 23 insertions(+), 6 deletions(-) diff --git a/cmd/size.go b/cmd/size.go index bfcd7cc3..e9d25fa7 100644 --- a/cmd/size.go +++ b/cmd/size.go @@ -79,6 +79,10 @@ func newSizeCmd(c *config) *cobra.Command { }, } + listReservationsCmd.Flags().String("size-id", "", "the size-id to filter") + listReservationsCmd.Flags().String("project", "", "the project to filter") + listReservationsCmd.Flags().String("tenant", "", "the tenant to filter") + genericcli.AddSortFlag(listReservationsCmd, sorters.SizeReservationsSorter()) reservationsCmd.AddCommand(listReservationsCmd) @@ -199,7 +203,11 @@ func sizeResponseToUpdate(r *models.V1SizeResponse) *models.V1SizeUpdateRequest // non-generic command handling func (c sizeCmd) listReverations() error { - resp, err := c.client.Size().ListSizeReservations(size.NewListSizeReservationsParams().WithBody(emptyBody), nil) + resp, err := c.client.Size().ListSizeReservations(size.NewListSizeReservationsParams().WithBody(&models.V1SizeReservationListRequest{ + Projectid: viper.GetString("project"), + Sizeid: viper.GetString("size-id"), + Tenant: viper.GetString("tenant"), + }), nil) if err != nil { return err } diff --git a/cmd/size_test.go b/cmd/size_test.go index aefb152a..d8ffa1c9 100644 --- a/cmd/size_test.go +++ b/cmd/size_test.go @@ -406,11 +406,17 @@ func Test_SizeReservationsCmd_MultiResult(t *testing.T) { { name: "reservation list", cmd: func(want []*models.V1SizeReservationResponse) []string { - return []string{"size", "reservations", "list"} + args := []string{"size", "reservations", "list", "--project", "project-1", "--size-id", "size-1", "--tenant", "tenant-1"} + assertExhaustiveArgs(t, args, "sort-by") + return args }, mocks: &client.MetalMockFns{ Size: func(mock *mock.Mock) { - mock.On("ListSizeReservations", testcommon.MatchIgnoreContext(t, size.NewListSizeReservationsParams().WithBody(emptyBody)), nil).Return(&size.ListSizeReservationsOK{Payload: reservations}, nil) + mock.On("ListSizeReservations", testcommon.MatchIgnoreContext(t, size.NewListSizeReservationsParams().WithBody(&models.V1SizeReservationListRequest{ + Projectid: "project-1", + Sizeid: "size-1", + Tenant: "tenant-1", + })), nil).Return(&size.ListSizeReservationsOK{Payload: reservations}, nil) }, }, want: reservations, diff --git a/docs/metalctl_size_reservations_list.md b/docs/metalctl_size_reservations_list.md index 1eed6cf3..58ec5a2b 100644 --- a/docs/metalctl_size_reservations_list.md +++ b/docs/metalctl_size_reservations_list.md @@ -10,7 +10,10 @@ metalctl size reservations list [flags] ``` -h, --help help for list + --project string the project to filter + --size-id string the size-id to filter --sort-by strings sort by (comma separated) column(s), sort direction can be changed by appending :asc or :desc behind the column identifier. possible values: partition|project|size|tenant + --tenant string the tenant to filter ``` ### Options inherited from parent commands diff --git a/go.mod b/go.mod index 3ce57c22..1d1571d4 100644 --- a/go.mod +++ b/go.mod @@ -10,7 +10,7 @@ require ( github.com/go-openapi/strfmt v0.23.0 github.com/google/go-cmp v0.6.0 github.com/google/uuid v1.6.0 - github.com/metal-stack/metal-go v0.31.3-0.20240606094223-0e841518ba71 + github.com/metal-stack/metal-go v0.31.3-0.20240612065010-071d8e8d9bb2 github.com/metal-stack/metal-lib v0.16.3 github.com/metal-stack/updater v1.2.1 github.com/metal-stack/v v1.0.3 diff --git a/go.sum b/go.sum index 094c807b..ac97e508 100644 --- a/go.sum +++ b/go.sum @@ -236,8 +236,8 @@ github.com/mdlayher/sdnotify v1.0.0 h1:Ma9XeLVN/l0qpyx1tNeMSeTjCPH6NtuD6/N9XdTlQ github.com/mdlayher/sdnotify v1.0.0/go.mod h1:HQUmpM4XgYkhDLtd+Uad8ZFK1T9D5+pNxnXQjCeJlGE= github.com/mdlayher/socket v0.5.1 h1:VZaqt6RkGkt2OE9l3GcC6nZkqD3xKeQLyfleW/uBcos= github.com/mdlayher/socket v0.5.1/go.mod h1:TjPLHI1UgwEv5J1B5q0zTZq12A/6H7nKmtTanQE37IQ= -github.com/metal-stack/metal-go v0.31.3-0.20240606094223-0e841518ba71 h1:FyZbtpJr7EjrC1uXHrXexqWtasKOCXGmLHzNKy/JDiU= -github.com/metal-stack/metal-go v0.31.3-0.20240606094223-0e841518ba71/go.mod h1:3MJTYCS4YJz8D8oteTKhjpaAKNMMjMKYDrIy9awHGtQ= +github.com/metal-stack/metal-go v0.31.3-0.20240612065010-071d8e8d9bb2 h1:TWhb+IDqKK0Qb+MbbHh5rq88i9kaCc79OG8QPko5rAA= +github.com/metal-stack/metal-go v0.31.3-0.20240612065010-071d8e8d9bb2/go.mod h1:3MJTYCS4YJz8D8oteTKhjpaAKNMMjMKYDrIy9awHGtQ= github.com/metal-stack/metal-lib v0.16.3 h1:xJr6P9GauQK49aoFH0bFyye5kRGmt87PomokulUm4Go= github.com/metal-stack/metal-lib v0.16.3/go.mod h1:nyNGI4DZFOcWbSoq2Y6V3SHpFxuXBIqYBZHTb6cy//s= github.com/metal-stack/security v0.8.0 h1:tVaSDB9m5clwYrnLyaXfPy7mQlJTnmeoHscG+RUy/xo= From f5a44b00921bb95a1df30bad35b367c95f40c0bd Mon Sep 17 00:00:00 2001 From: Gerrit Date: Wed, 12 Jun 2024 14:50:50 +0200 Subject: [PATCH 5/7] Update. --- cmd/size.go | 13 ++++++++++--- go.mod | 2 +- go.sum | 4 ++-- 3 files changed, 13 insertions(+), 6 deletions(-) diff --git a/cmd/size.go b/cmd/size.go index e9d25fa7..748bb1fa 100644 --- a/cmd/size.go +++ b/cmd/size.go @@ -82,6 +82,12 @@ func newSizeCmd(c *config) *cobra.Command { listReservationsCmd.Flags().String("size-id", "", "the size-id to filter") listReservationsCmd.Flags().String("project", "", "the project to filter") listReservationsCmd.Flags().String("tenant", "", "the tenant to filter") + listReservationsCmd.Flags().String("partition", "", "the partition to filter") + + genericcli.Must(listReservationsCmd.RegisterFlagCompletionFunc("size-id", c.comp.SizeListCompletion)) + genericcli.Must(listReservationsCmd.RegisterFlagCompletionFunc("project", c.comp.ProjectListCompletion)) + genericcli.Must(listReservationsCmd.RegisterFlagCompletionFunc("tenant", c.comp.TenantListCompletion)) + genericcli.Must(listReservationsCmd.RegisterFlagCompletionFunc("partition", c.comp.PartitionListCompletion)) genericcli.AddSortFlag(listReservationsCmd, sorters.SizeReservationsSorter()) @@ -204,9 +210,10 @@ func sizeResponseToUpdate(r *models.V1SizeResponse) *models.V1SizeUpdateRequest func (c sizeCmd) listReverations() error { resp, err := c.client.Size().ListSizeReservations(size.NewListSizeReservationsParams().WithBody(&models.V1SizeReservationListRequest{ - Projectid: viper.GetString("project"), - Sizeid: viper.GetString("size-id"), - Tenant: viper.GetString("tenant"), + Projectid: viper.GetString("project"), + Sizeid: viper.GetString("size-id"), + Tenant: viper.GetString("tenant"), + Partitionid: viper.GetString("partition"), }), nil) if err != nil { return err diff --git a/go.mod b/go.mod index 1d1571d4..7f0d6b73 100644 --- a/go.mod +++ b/go.mod @@ -10,7 +10,7 @@ require ( github.com/go-openapi/strfmt v0.23.0 github.com/google/go-cmp v0.6.0 github.com/google/uuid v1.6.0 - github.com/metal-stack/metal-go v0.31.3-0.20240612065010-071d8e8d9bb2 + github.com/metal-stack/metal-go v0.31.3-0.20240612124739-3894375a5b49 github.com/metal-stack/metal-lib v0.16.3 github.com/metal-stack/updater v1.2.1 github.com/metal-stack/v v1.0.3 diff --git a/go.sum b/go.sum index ac97e508..d839b3bb 100644 --- a/go.sum +++ b/go.sum @@ -236,8 +236,8 @@ github.com/mdlayher/sdnotify v1.0.0 h1:Ma9XeLVN/l0qpyx1tNeMSeTjCPH6NtuD6/N9XdTlQ github.com/mdlayher/sdnotify v1.0.0/go.mod h1:HQUmpM4XgYkhDLtd+Uad8ZFK1T9D5+pNxnXQjCeJlGE= github.com/mdlayher/socket v0.5.1 h1:VZaqt6RkGkt2OE9l3GcC6nZkqD3xKeQLyfleW/uBcos= github.com/mdlayher/socket v0.5.1/go.mod h1:TjPLHI1UgwEv5J1B5q0zTZq12A/6H7nKmtTanQE37IQ= -github.com/metal-stack/metal-go v0.31.3-0.20240612065010-071d8e8d9bb2 h1:TWhb+IDqKK0Qb+MbbHh5rq88i9kaCc79OG8QPko5rAA= -github.com/metal-stack/metal-go v0.31.3-0.20240612065010-071d8e8d9bb2/go.mod h1:3MJTYCS4YJz8D8oteTKhjpaAKNMMjMKYDrIy9awHGtQ= +github.com/metal-stack/metal-go v0.31.3-0.20240612124739-3894375a5b49 h1:0atR0ooYG/kL4NTsh+3iYMFxG+ntoEXS54AzFYx1w3w= +github.com/metal-stack/metal-go v0.31.3-0.20240612124739-3894375a5b49/go.mod h1:3MJTYCS4YJz8D8oteTKhjpaAKNMMjMKYDrIy9awHGtQ= github.com/metal-stack/metal-lib v0.16.3 h1:xJr6P9GauQK49aoFH0bFyye5kRGmt87PomokulUm4Go= github.com/metal-stack/metal-lib v0.16.3/go.mod h1:nyNGI4DZFOcWbSoq2Y6V3SHpFxuXBIqYBZHTb6cy//s= github.com/metal-stack/security v0.8.0 h1:tVaSDB9m5clwYrnLyaXfPy7mQlJTnmeoHscG+RUy/xo= From d2ad1a4ec12eeab4fc063e5dba5cdf448969fa55 Mon Sep 17 00:00:00 2001 From: Gerrit Date: Tue, 9 Jul 2024 10:39:12 +0200 Subject: [PATCH 6/7] Fix. --- cmd/size_test.go | 9 +++++---- docs/metalctl_size_reservations_list.md | 11 ++++++----- 2 files changed, 11 insertions(+), 9 deletions(-) diff --git a/cmd/size_test.go b/cmd/size_test.go index d8ffa1c9..3bb29ec2 100644 --- a/cmd/size_test.go +++ b/cmd/size_test.go @@ -406,16 +406,17 @@ func Test_SizeReservationsCmd_MultiResult(t *testing.T) { { name: "reservation list", cmd: func(want []*models.V1SizeReservationResponse) []string { - args := []string{"size", "reservations", "list", "--project", "project-1", "--size-id", "size-1", "--tenant", "tenant-1"} + args := []string{"size", "reservations", "list", "--partition", "partition-1", "--project", "project-1", "--size-id", "size-1", "--tenant", "tenant-1"} assertExhaustiveArgs(t, args, "sort-by") return args }, mocks: &client.MetalMockFns{ Size: func(mock *mock.Mock) { mock.On("ListSizeReservations", testcommon.MatchIgnoreContext(t, size.NewListSizeReservationsParams().WithBody(&models.V1SizeReservationListRequest{ - Projectid: "project-1", - Sizeid: "size-1", - Tenant: "tenant-1", + Projectid: "project-1", + Sizeid: "size-1", + Tenant: "tenant-1", + Partitionid: "partition-1", })), nil).Return(&size.ListSizeReservationsOK{Payload: reservations}, nil) }, }, diff --git a/docs/metalctl_size_reservations_list.md b/docs/metalctl_size_reservations_list.md index 58ec5a2b..13f8c8ad 100644 --- a/docs/metalctl_size_reservations_list.md +++ b/docs/metalctl_size_reservations_list.md @@ -9,11 +9,12 @@ metalctl size reservations list [flags] ### Options ``` - -h, --help help for list - --project string the project to filter - --size-id string the size-id to filter - --sort-by strings sort by (comma separated) column(s), sort direction can be changed by appending :asc or :desc behind the column identifier. possible values: partition|project|size|tenant - --tenant string the tenant to filter + -h, --help help for list + --partition string the partition to filter + --project string the project to filter + --size-id string the size-id to filter + --sort-by strings sort by (comma separated) column(s), sort direction can be changed by appending :asc or :desc behind the column identifier. possible values: partition|project|size|tenant + --tenant string the tenant to filter ``` ### Options inherited from parent commands From 6cd4d08731dd405c3fcba018a8d19cdd623a5e2e Mon Sep 17 00:00:00 2001 From: Gerrit Date: Tue, 9 Jul 2024 11:59:20 +0200 Subject: [PATCH 7/7] Pin. --- go.mod | 4 ++-- go.sum | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/go.mod b/go.mod index 8fee7822..977b2eec 100644 --- a/go.mod +++ b/go.mod @@ -10,8 +10,8 @@ require ( github.com/go-openapi/strfmt v0.23.0 github.com/google/go-cmp v0.6.0 github.com/google/uuid v1.6.0 - github.com/metal-stack/metal-go v0.32.2-0.20240708141901-921da9f70340 - github.com/metal-stack/metal-lib v0.17.0 + github.com/metal-stack/metal-go v0.32.2 + github.com/metal-stack/metal-lib v0.17.1 github.com/metal-stack/updater v1.2.2 github.com/metal-stack/v v1.0.3 github.com/olekukonko/tablewriter v0.0.6-0.20230925090304-df64c4bbad77 diff --git a/go.sum b/go.sum index 5c175cc6..3719e854 100644 --- a/go.sum +++ b/go.sum @@ -235,10 +235,10 @@ github.com/mdlayher/sdnotify v1.0.0 h1:Ma9XeLVN/l0qpyx1tNeMSeTjCPH6NtuD6/N9XdTlQ github.com/mdlayher/sdnotify v1.0.0/go.mod h1:HQUmpM4XgYkhDLtd+Uad8ZFK1T9D5+pNxnXQjCeJlGE= github.com/mdlayher/socket v0.5.1 h1:VZaqt6RkGkt2OE9l3GcC6nZkqD3xKeQLyfleW/uBcos= github.com/mdlayher/socket v0.5.1/go.mod h1:TjPLHI1UgwEv5J1B5q0zTZq12A/6H7nKmtTanQE37IQ= -github.com/metal-stack/metal-go v0.32.2-0.20240708141901-921da9f70340 h1:3sDC2pQOsUz2c/TsnUPxMpKDj6HxUfexTuy5/V2m0Tc= -github.com/metal-stack/metal-go v0.32.2-0.20240708141901-921da9f70340/go.mod h1:3MJTYCS4YJz8D8oteTKhjpaAKNMMjMKYDrIy9awHGtQ= -github.com/metal-stack/metal-lib v0.17.0 h1:0fCRUtYweJ5wbUwiEalFGiHkEz0mZwTWQUIIo3Npzkw= -github.com/metal-stack/metal-lib v0.17.0/go.mod h1:nyNGI4DZFOcWbSoq2Y6V3SHpFxuXBIqYBZHTb6cy//s= +github.com/metal-stack/metal-go v0.32.2 h1:vD1LtGVAeLx9vrPrguPBchXYsp7/oZ5MfTnfUO/yMz0= +github.com/metal-stack/metal-go v0.32.2/go.mod h1:3MJTYCS4YJz8D8oteTKhjpaAKNMMjMKYDrIy9awHGtQ= +github.com/metal-stack/metal-lib v0.17.1 h1:JLa4wJ62dgxtY9UOLF+QDk10/i/W5vhzrv8RsundDUY= +github.com/metal-stack/metal-lib v0.17.1/go.mod h1:nyNGI4DZFOcWbSoq2Y6V3SHpFxuXBIqYBZHTb6cy//s= github.com/metal-stack/security v0.8.0 h1:tVaSDB9m5clwYrnLyaXfPy7mQlJTnmeoHscG+RUy/xo= github.com/metal-stack/security v0.8.0/go.mod h1:7GAcQb+pOgflW30ohJygxpqc3i0dQ2ahGJK1CU5tqa0= github.com/metal-stack/updater v1.2.2 h1:gnUrnQgfT20QFMDtFBY89opKoBAkdeI/8T2iwMHNdxs=