From 8785d492ec79fbf1c3e3f703ff872cd7202a787e Mon Sep 17 00:00:00 2001 From: Marcin Tojek Date: Tue, 16 Jan 2024 13:06:47 +0100 Subject: [PATCH] feat: add to workspace (#181) --- docs/data-sources/workspace.md | 1 + provider/workspace.go | 8 ++++++++ provider/workspace_test.go | 3 +++ 3 files changed, 12 insertions(+) diff --git a/docs/data-sources/workspace.md b/docs/data-sources/workspace.md index 5193dbe1..f5b434a9 100644 --- a/docs/data-sources/workspace.md +++ b/docs/data-sources/workspace.md @@ -33,6 +33,7 @@ resource "kubernetes_pod" "dev" { - `owner` (String) Username of the workspace owner. - `owner_email` (String) Email address of the workspace owner. - `owner_id` (String) UUID of the workspace owner. +- `owner_name` (String) Name of the workspace owner. - `owner_oidc_access_token` (String) A valid OpenID Connect access token of the workspace owner. This is only available if the workspace owner authenticated with OpenID Connect. If a valid token cannot be obtained, this value will be an empty string. - `owner_session_token` (String) Session token for authenticating with a Coder deployment. It is regenerated everytime a workspace is started. - `start_count` (Number) A computed count based on "transition" state. If "start", count will equal 1. diff --git a/provider/workspace.go b/provider/workspace.go index 4b1aa526..be7bf03c 100644 --- a/provider/workspace.go +++ b/provider/workspace.go @@ -36,6 +36,9 @@ func workspaceDataSource() *schema.Resource { ownerEmail := os.Getenv("CODER_WORKSPACE_OWNER_EMAIL") _ = rd.Set("owner_email", ownerEmail) + ownerName := os.Getenv("CODER_WORKSPACE_OWNER_NAME") + _ = rd.Set("owner_name", ownerName) + ownerID := os.Getenv("CODER_WORKSPACE_OWNER_ID") if ownerID == "" { ownerID = uuid.Nil.String() @@ -126,6 +129,11 @@ func workspaceDataSource() *schema.Resource { Computed: true, Description: "UUID of the workspace owner.", }, + "owner_name": { + Type: schema.TypeString, + Computed: true, + Description: "Name of the workspace owner.", + }, "owner_oidc_access_token": { Type: schema.TypeString, Computed: true, diff --git a/provider/workspace_test.go b/provider/workspace_test.go index b40d86fe..38f9c743 100644 --- a/provider/workspace_test.go +++ b/provider/workspace_test.go @@ -13,6 +13,7 @@ import ( func TestWorkspace(t *testing.T) { t.Setenv("CODER_WORKSPACE_OWNER", "owner123") + t.Setenv("CODER_WORKSPACE_OWNER_NAME", "Mr Owner") t.Setenv("CODER_WORKSPACE_OWNER_EMAIL", "owner123@example.com") t.Setenv("CODER_WORKSPACE_OWNER_SESSION_TOKEN", "abc123") t.Setenv("CODER_WORKSPACE_TEMPLATE_ID", "templateID") @@ -43,6 +44,7 @@ func TestWorkspace(t *testing.T) { t.Log(value) require.Equal(t, "8080", attribs["access_port"]) require.Equal(t, "owner123", attribs["owner"]) + require.Equal(t, "Mr Owner", attribs["owner_name"]) require.Equal(t, "owner123@example.com", attribs["owner_email"]) require.Equal(t, "abc123", attribs["owner_session_token"]) require.Equal(t, "templateID", attribs["template_id"]) @@ -76,6 +78,7 @@ func TestWorkspace(t *testing.T) { t.Log(value) require.Equal(t, "https://example.com:8080", attribs["access_url"]) require.Equal(t, "owner123", attribs["owner"]) + require.Equal(t, "Mr Owner", attribs["owner_name"]) require.Equal(t, "owner123@example.com", attribs["owner_email"]) require.Equal(t, "templateID", attribs["template_id"]) require.Equal(t, "template123", attribs["template_name"])