Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

fix: improve log on provisioner daemon started with pk#15588

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to ourterms of service andprivacy statement. We’ll occasionally send you account related emails.

Already on GitHub?Sign in to your account

Merged
defelmnq merged 19 commits intomainfromclient-provisioners-tags
Nov 25, 2024
Merged
Show file tree
Hide file tree
Changes from1 commit
Commits
Show all changes
19 commits
Select commitHold shift + click to select a range
995a046
feat(provisioners) - add endpoint to fetch tags associated to a key u…
defelmnqNov 14, 2024
2ca6c91
rename function
defelmnqNov 14, 2024
c67d322
linter
defelmnqNov 14, 2024
911a47d
linter
defelmnqNov 14, 2024
1a019bb
generate doc
defelmnqNov 14, 2024
c629f07
changes endpoint to return all pk details
defelmnqNov 18, 2024
54437f2
generate doc
defelmnqNov 18, 2024
8eeffb1
work on tests
defelmnqNov 18, 2024
960084d
Merge remote-tracking branch 'origin/main' into api-endpoint-provisio…
defelmnqNov 19, 2024
3aa81ed
work on improving tag logs for provisioner start
defelmnqNov 19, 2024
ebcf687
merge main
defelmnqNov 20, 2024
0cff661
Work on tags for provisioner daemon
defelmnqNov 21, 2024
d4472a2
details golint
defelmnqNov 21, 2024
ee0fef6
change tags variable
defelmnqNov 25, 2024
703668b
change tags variable
defelmnqNov 25, 2024
9e0a2d3
Merge remote-tracking branch 'origin/main' into client-provisioners-tags
defelmnqNov 25, 2024
b5ff465
pre-allocate map
defelmnqNov 25, 2024
7ea193f
add missing test for failing case
defelmnqNov 25, 2024
08ab032
improve map allocation
defelmnqNov 25, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
NextNext commit
feat(provisioners) - add endpoint to fetch tags associated to a key u…
…sing its idfix: change from database.StringMap to codersdk.ProvisionerKeyTags in endpoint responseimprove annotations for endpointmove logic to enterprise partgenerate new docmove logic to enterprise partgenerate doc
  • Loading branch information
@defelmnq
defelmnq committedNov 14, 2024
commit995a04679eb42ccdf4c8b751770ce9b3535f56e0
37 changes: 37 additions & 0 deletionscoderd/apidoc/docs.go
View file
Open in desktop

Some generated files are not rendered by default. Learn more abouthow customized files appear on GitHub.

33 changes: 33 additions & 0 deletionscoderd/apidoc/swagger.json
View file
Open in desktop

Some generated files are not rendered by default. Learn more abouthow customized files appear on GitHub.

18 changes: 18 additions & 0 deletionscodersdk/provisionerdaemons.go
View file
Open in desktop
Original file line numberDiff line numberDiff line change
Expand Up@@ -368,6 +368,24 @@ func (c *Client) ListProvisionerKeys(ctx context.Context, organizationID uuid.UU
return resp, json.NewDecoder(res.Body).Decode(&resp)
}

// GetProvisionTagsByKey returns the provisioner tags associated with the provisioner key.
func (c *Client) GetProvisionTagsByKey(ctx context.Context, organizationID uuid.UUID, provisionerKey string) (ProvisionerKeyTags, error) {
res, err := c.Request(ctx, http.MethodGet,
fmt.Sprintf("/api/v2/organizations/%s/provisionerkeys/%s/tags", organizationID.String(), provisionerKey),
nil,
)
if err != nil {
return nil, xerrors.Errorf("make request: %w", err)
}
defer res.Body.Close()

if res.StatusCode != http.StatusOK {
return nil, ReadBodyAsError(res)
}
var resp ProvisionerKeyTags
return resp, json.NewDecoder(res.Body).Decode(&resp)
}

// ListProvisionerKeyDaemons lists all provisioner keys with their associated daemons for an organization.
func (c *Client) ListProvisionerKeyDaemons(ctx context.Context, organizationID uuid.UUID) ([]ProvisionerKeyDaemons, error) {
res, err := c.Request(ctx, http.MethodGet,
Expand Down
36 changes: 36 additions & 0 deletionsdocs/reference/api/enterprise.md
View file
Open in desktop

Some generated files are not rendered by default. Learn more abouthow customized files appear on GitHub.

1 change: 1 addition & 0 deletionsenterprise/coderd/coderd.go
View file
Open in desktop
Original file line numberDiff line numberDiff line change
Expand Up@@ -352,6 +352,7 @@ func New(ctx context.Context, options *Options) (_ *API, err error) {
r.Use(
httpmw.ExtractProvisionerKeyParam(options.Database),
)
r.Get("/tags", api.fetchProvisionerKeyTags)
r.Delete("/", api.deleteProvisionerKey)
})
})
Expand Down
17 changes: 17 additions & 0 deletionsenterprise/coderd/provisionerkeys.go
View file
Open in desktop
Original file line numberDiff line numberDiff line change
Expand Up@@ -200,6 +200,23 @@ func (api *API) deleteProvisionerKey(rw http.ResponseWriter, r *http.Request) {
httpapi.Write(ctx, rw, http.StatusNoContent, nil)
}

// @Summary Get provisioner key tags by ID
// @ID get-provisioner-key-tags-by-id
// @Produce json
// @Tags Enterprise
// @Param organization path string true "Organization ID"
// @Param provisionerkeyid path string true "Provisioner Key ID" format(uuid)
// @Success 200 {object} codersdk.ProvisionerKeyTags
// @Router /organizations/{organization}/provisionerkeys/{provisionerkeyid}/tags [get]
func (api *API) fetchProvisionerKeyTags(rw http.ResponseWriter, r *http.Request) {
var (
ctx = r.Context()
pk = httpmw.ProvisionerKeyParam(r)
)

httpapi.Write(ctx, rw, http.StatusOK, codersdk.ProvisionerKeyTags(pk.Tags))
}

func convertProvisionerKeys(dbKeys []database.ProvisionerKey) []codersdk.ProvisionerKey {
keys := make([]codersdk.ProvisionerKey, 0, len(dbKeys))
for _, dbKey := range dbKeys {
Expand Down
35 changes: 35 additions & 0 deletionsenterprise/coderd/provisionerkeys_test.go
View file
Open in desktop
Original file line numberDiff line numberDiff line change
Expand Up@@ -133,3 +133,38 @@ func TestProvisionerKeys(t *testing.T) {
err = orgAdmin.DeleteProvisionerKey(ctx, owner.OrganizationID, codersdk.ProvisionerKeyNamePSK)
require.ErrorContains(t, err, "reserved")
}

func TestProvisionerKeyTags(t *testing.T) {
t.Parallel()
t.Run("GetTags", func(t *testing.T) {
t.Parallel()

ctx, cancel := context.WithTimeout(context.Background(), testutil.WaitLong*10)
t.Cleanup(cancel)
dv := coderdtest.DeploymentValues(t)
client, owner := coderdenttest.New(t, &coderdenttest.Options{
Options: &coderdtest.Options{
DeploymentValues: dv,
},
LicenseOptions: &coderdenttest.LicenseOptions{
Features: license.Features{
codersdk.FeatureMultipleOrganizations: 1,
},
},
})

//nolint:gocritic // Not the purpose of this test
_, err := client.CreateProvisionerKey(ctx, owner.OrganizationID, codersdk.CreateProvisionerKeyRequest{
Name: "key",
Tags: map[string]string{"key1": "value1", "key2": "value2"},
})
require.NoError(t, err)

tags, err := client.GetProvisionTagsByKeyID(ctx, owner.OrganizationID, "key")
require.NoError(t, err)
require.Equal(t, tags, codersdk.ProvisionerKeyTags{"key1": "value1", "key2": "value2"})

err = client.DeleteProvisionerKey(ctx, owner.OrganizationID, "invalid_key")
require.ErrorContains(t, err, "Resource not found")
})
}

[8]ページ先頭

©2009-2026 Movatter.jp