From 296bd4226d4293b8ceda1b6646c359d38b47ecfa Mon Sep 17 00:00:00 2001 From: Mathias Fredriksson Date: Wed, 26 Feb 2025 18:31:05 +0000 Subject: [PATCH 1/2] fix: return provisioners in desc order and add limit to cli --- cli/provisioners.go | 16 +++++++++++++++- .../coder_provisioner_list_--help.golden | 3 +++ coderd/database/queries.sql.go | 2 +- coderd/database/queries/provisionerdaemons.sql | 2 +- docs/reference/cli/provisioner_list.md | 10 ++++++++++ .../coder_provisioner_list_--help.golden | 3 +++ 6 files changed, 33 insertions(+), 3 deletions(-) diff --git a/cli/provisioners.go b/cli/provisioners.go index 08d96493b87aa..5dd3a703619e5 100644 --- a/cli/provisioners.go +++ b/cli/provisioners.go @@ -39,6 +39,7 @@ func (r *RootCmd) provisionerList() *serpent.Command { cliui.TableFormat([]provisionerDaemonRow{}, []string{"name", "organization", "status", "key name", "created at", "last seen at", "version", "tags"}), cliui.JSONFormat(), ) + limit int64 ) cmd := &serpent.Command{ @@ -57,7 +58,9 @@ func (r *RootCmd) provisionerList() *serpent.Command { return xerrors.Errorf("current organization: %w", err) } - daemons, err := client.OrganizationProvisionerDaemons(ctx, org.ID, nil) + daemons, err := client.OrganizationProvisionerDaemons(ctx, org.ID, &codersdk.OrganizationProvisionerDaemonsOptions{ + Limit: int(limit), + }) if err != nil { return xerrors.Errorf("list provisioner daemons: %w", err) } @@ -86,6 +89,17 @@ func (r *RootCmd) provisionerList() *serpent.Command { }, } + cmd.Options = append(cmd.Options, []serpent.Option{ + { + Flag: "limit", + FlagShorthand: "l", + Env: "CODER_PROVISIONER_LIST_LIMIT", + Description: "Limit the number of provisioners returned.", + Default: "50", + Value: serpent.Int64Of(&limit), + }, + }...) + orgContext.AttachOptions(cmd) formatter.AttachOptions(&cmd.Options) diff --git a/cli/testdata/coder_provisioner_list_--help.golden b/cli/testdata/coder_provisioner_list_--help.golden index 111eb8315b162..ac889fb6dcf58 100644 --- a/cli/testdata/coder_provisioner_list_--help.golden +++ b/cli/testdata/coder_provisioner_list_--help.golden @@ -14,6 +14,9 @@ OPTIONS: -c, --column [id|organization id|created at|last seen at|name|version|api version|tags|key name|status|current job id|current job status|current job template name|current job template icon|current job template display name|previous job id|previous job status|previous job template name|previous job template icon|previous job template display name|organization] (default: name,organization,status,key name,created at,last seen at,version,tags) Columns to display in table output. + -l, --limit int, $CODER_PROVISIONER_LIST_LIMIT (default: 50) + Limit the number of provisioners returned. + -o, --output table|json (default: table) Output format. diff --git a/coderd/database/queries.sql.go b/coderd/database/queries.sql.go index 0e2bc0e37f375..9c9ead1b6746e 100644 --- a/coderd/database/queries.sql.go +++ b/coderd/database/queries.sql.go @@ -5845,7 +5845,7 @@ WHERE AND (COALESCE(array_length($3::uuid[], 1), 0) = 0 OR pd.id = ANY($3::uuid[])) AND ($4::tagset = 'null'::tagset OR provisioner_tagset_contains(pd.tags::tagset, $4::tagset)) ORDER BY - pd.created_at ASC + pd.created_at DESC LIMIT $5::int ` diff --git a/coderd/database/queries/provisionerdaemons.sql b/coderd/database/queries/provisionerdaemons.sql index ab1668e537d6c..4f7c7a8b2200a 100644 --- a/coderd/database/queries/provisionerdaemons.sql +++ b/coderd/database/queries/provisionerdaemons.sql @@ -111,7 +111,7 @@ WHERE AND (COALESCE(array_length(@ids::uuid[], 1), 0) = 0 OR pd.id = ANY(@ids::uuid[])) AND (@tags::tagset = 'null'::tagset OR provisioner_tagset_contains(pd.tags::tagset, @tags::tagset)) ORDER BY - pd.created_at ASC + pd.created_at DESC LIMIT sqlc.narg('limit')::int; diff --git a/docs/reference/cli/provisioner_list.md b/docs/reference/cli/provisioner_list.md index 93718ddd01ea8..4aadb22064755 100644 --- a/docs/reference/cli/provisioner_list.md +++ b/docs/reference/cli/provisioner_list.md @@ -15,6 +15,16 @@ coder provisioner list [flags] ## Options +### -l, --limit + +| | | +|-------------|--------------------------------------------| +| Type | int | +| Environment | $CODER_PROVISIONER_LIST_LIMIT | +| Default | 50 | + +Limit the number of provisioners returned. + ### -O, --org | | | diff --git a/enterprise/cli/testdata/coder_provisioner_list_--help.golden b/enterprise/cli/testdata/coder_provisioner_list_--help.golden index 111eb8315b162..ac889fb6dcf58 100644 --- a/enterprise/cli/testdata/coder_provisioner_list_--help.golden +++ b/enterprise/cli/testdata/coder_provisioner_list_--help.golden @@ -14,6 +14,9 @@ OPTIONS: -c, --column [id|organization id|created at|last seen at|name|version|api version|tags|key name|status|current job id|current job status|current job template name|current job template icon|current job template display name|previous job id|previous job status|previous job template name|previous job template icon|previous job template display name|organization] (default: name,organization,status,key name,created at,last seen at,version,tags) Columns to display in table output. + -l, --limit int, $CODER_PROVISIONER_LIST_LIMIT (default: 50) + Limit the number of provisioners returned. + -o, --output table|json (default: table) Output format. From eed93497cd44cdda9a1cc75a102b3359c7fceb2b Mon Sep 17 00:00:00 2001 From: Mathias Fredriksson Date: Wed, 26 Feb 2025 18:38:56 +0000 Subject: [PATCH 2/2] order --- coderd/database/dbmem/dbmem.go | 2 +- coderd/provisionerdaemons_test.go | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/coderd/database/dbmem/dbmem.go b/coderd/database/dbmem/dbmem.go index 058aed631887e..23913a55bf0c8 100644 --- a/coderd/database/dbmem/dbmem.go +++ b/coderd/database/dbmem/dbmem.go @@ -4073,7 +4073,7 @@ func (q *FakeQuerier) GetProvisionerDaemonsWithStatusByOrganization(ctx context. } slices.SortFunc(rows, func(a, b database.GetProvisionerDaemonsWithStatusByOrganizationRow) int { - return a.ProvisionerDaemon.CreatedAt.Compare(b.ProvisionerDaemon.CreatedAt) + return b.ProvisionerDaemon.CreatedAt.Compare(a.ProvisionerDaemon.CreatedAt) }) if arg.Limit.Valid && arg.Limit.Int32 > 0 && len(rows) > int(arg.Limit.Int32) { diff --git a/coderd/provisionerdaemons_test.go b/coderd/provisionerdaemons_test.go index d6d1138f7a912..249da9d6bc922 100644 --- a/coderd/provisionerdaemons_test.go +++ b/coderd/provisionerdaemons_test.go @@ -159,8 +159,8 @@ func TestProvisionerDaemons(t *testing.T) { }) require.NoError(t, err) require.Len(t, daemons, 2) - require.Equal(t, pd1.ID, daemons[0].ID) - require.Equal(t, pd2.ID, daemons[1].ID) + require.Equal(t, pd1.ID, daemons[1].ID) + require.Equal(t, pd2.ID, daemons[0].ID) }) t.Run("Tags", func(t *testing.T) { pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy