feat: Show custom resource icons in the UI (#4020)

This commit is contained in:
Bruno Quaresma
2022-09-13 11:32:59 -03:00
committed by GitHub
parent 83c35bb916
commit 214e59452f
60 changed files with 282 additions and 220 deletions
+4
View File
@@ -37,6 +37,7 @@ type agentAppAttributes struct {
type metadataAttributes struct {
ResourceID string `mapstructure:"resource_id"`
Hide bool `mapstructure:"hide"`
Icon string `mapstructure:"icon"`
Items []metadataItem `mapstructure:"item"`
}
@@ -237,6 +238,7 @@ func ConvertResources(module *tfjson.StateModule, rawGraph string) ([]*proto.Res
// Associate metadata blocks with resources.
resourceMetadata := map[string][]*proto.Resource_Metadata{}
resourceHidden := map[string]bool{}
resourceIcon := map[string]string{}
for _, resource := range tfResourceByLabel {
if resource.Type != "coder_metadata" {
continue
@@ -295,6 +297,7 @@ func ConvertResources(module *tfjson.StateModule, rawGraph string) ([]*proto.Res
}
resourceHidden[targetLabel] = attrs.Hide
resourceIcon[targetLabel] = attrs.Icon
for _, item := range attrs.Items {
resourceMetadata[targetLabel] = append(resourceMetadata[targetLabel],
&proto.Resource_Metadata{
@@ -325,6 +328,7 @@ func ConvertResources(module *tfjson.StateModule, rawGraph string) ([]*proto.Res
Type: resource.Type,
Agents: agents,
Hide: resourceHidden[label],
Icon: resourceIcon[label],
Metadata: resourceMetadata[label],
})
}
+1
View File
@@ -121,6 +121,7 @@ func TestConvertResources(t *testing.T) {
Name: "about",
Type: "null_resource",
Hide: true,
Icon: "/icon/server.svg",
Metadata: []*proto.Resource_Metadata{{
Key: "hello",
Value: "world",
@@ -2,7 +2,7 @@ terraform {
required_providers {
coder = {
source = "coder/coder"
version = "0.4.10"
version = "0.4.11"
}
}
}
+1 -1
View File
@@ -147,7 +147,7 @@
"coder": {
"name": "coder",
"full_name": "registry.terraform.io/coder/coder",
"version_constraint": "0.4.10"
"version_constraint": "0.4.11"
},
"module.module:null": {
"name": "null",
+4 -4
View File
@@ -16,11 +16,11 @@
"auth": "token",
"dir": null,
"env": null,
"id": "ee0b689a-9785-4d72-923f-e2acf88d709b",
"id": "f05ddf9e-106a-4669-bba8-5e2289bd891d",
"init_script": "",
"os": "linux",
"startup_script": null,
"token": "a295c68a-27af-4dc8-92cd-db154084cf30"
"token": "ed4655b9-e917-44af-8706-a1215384a35f"
},
"sensitive_values": {}
}
@@ -44,7 +44,7 @@
"outputs": {
"script": ""
},
"random": "410687191584620713"
"random": "7640853885488752810"
},
"sensitive_values": {
"inputs": {},
@@ -59,7 +59,7 @@
"provider_name": "registry.terraform.io/hashicorp/null",
"schema_version": 0,
"values": {
"id": "7780508472225873711",
"id": "6481148597794195898",
"triggers": null
},
"sensitive_values": {},
@@ -2,7 +2,7 @@ terraform {
required_providers {
coder = {
source = "coder/coder"
version = "0.4.10"
version = "0.4.11"
}
}
}
@@ -125,7 +125,7 @@
"coder": {
"name": "coder",
"full_name": "registry.terraform.io/coder/coder",
"version_constraint": "0.4.10"
"version_constraint": "0.4.11"
},
"null": {
"name": "null",
@@ -16,11 +16,11 @@
"auth": "token",
"dir": null,
"env": null,
"id": "97baf22d-c3fc-4570-a025-58dd5235366f",
"id": "fcd8018c-7e4a-4e92-855b-e02319ab051e",
"init_script": "",
"os": "linux",
"startup_script": null,
"token": "ae325f47-8fe4-436c-9787-7295eef26604"
"token": "ad906408-0eb0-4844-83f7-0f5070427e1c"
},
"sensitive_values": {}
},
@@ -32,7 +32,7 @@
"provider_name": "registry.terraform.io/hashicorp/null",
"schema_version": 0,
"values": {
"id": "8957171845319631256",
"id": "2672857180605476162",
"triggers": null
},
"sensitive_values": {},
@@ -49,7 +49,7 @@
"provider_name": "registry.terraform.io/hashicorp/null",
"schema_version": 0,
"values": {
"id": "7521770950111838137",
"id": "264584188140644760",
"triggers": null
},
"sensitive_values": {},
@@ -2,7 +2,7 @@ terraform {
required_providers {
coder = {
source = "coder/coder"
version = "0.4.10"
version = "0.4.11"
}
}
}
@@ -125,7 +125,7 @@
"coder": {
"name": "coder",
"full_name": "registry.terraform.io/coder/coder",
"version_constraint": "0.4.10"
"version_constraint": "0.4.11"
},
"null": {
"name": "null",
@@ -16,11 +16,11 @@
"auth": "token",
"dir": null,
"env": null,
"id": "75c43b92-2812-4a6b-9a40-16c124c3c2ff",
"id": "e3df7d56-17ce-4d8a-9d4e-30ea41cc8a93",
"init_script": "",
"os": "linux",
"startup_script": null,
"token": "bf14e82d-7e8f-49b5-8e2a-fb84da4b6afa"
"token": "1717f79d-2c72-440e-a5c6-e4b8c3fef084"
},
"sensitive_values": {}
},
@@ -32,7 +32,7 @@
"provider_name": "registry.terraform.io/hashicorp/null",
"schema_version": 0,
"values": {
"id": "5082348601033637104",
"id": "2957375211969224115",
"triggers": null
},
"sensitive_values": {},
@@ -48,7 +48,7 @@
"provider_name": "registry.terraform.io/hashicorp/null",
"schema_version": 0,
"values": {
"id": "135765900644760615",
"id": "6924176854496195292",
"triggers": null
},
"sensitive_values": {},
+1 -1
View File
@@ -2,7 +2,7 @@ terraform {
required_providers {
coder = {
source = "coder/coder"
version = "0.4.10"
version = "0.4.11"
}
}
}
+1 -1
View File
@@ -126,7 +126,7 @@
"coder": {
"name": "coder",
"full_name": "registry.terraform.io/coder/coder",
"version_constraint": "0.4.10"
"version_constraint": "0.4.11"
},
"null": {
"name": "null",
+5 -5
View File
@@ -16,11 +16,11 @@
"auth": "google-instance-identity",
"dir": null,
"env": null,
"id": "9112719f-1e11-41d0-8baf-7f92e94fb510",
"id": "9a37096a-7f01-42cd-93d8-9f4572c94489",
"init_script": "",
"os": "linux",
"startup_script": null,
"token": "8d556c96-9010-4ae9-8993-69c01de97d24"
"token": "7784ea1f-7fe5-463f-af8d-255c32d12992"
},
"sensitive_values": {}
},
@@ -32,8 +32,8 @@
"provider_name": "registry.terraform.io/coder/coder",
"schema_version": 0,
"values": {
"agent_id": "9112719f-1e11-41d0-8baf-7f92e94fb510",
"id": "35efb5bc-da00-45e8-b38c-df4899417842",
"agent_id": "9a37096a-7f01-42cd-93d8-9f4572c94489",
"id": "8ed448e2-51d7-4cc7-9e26-a3a77f252b1d",
"instance_id": "example"
},
"sensitive_values": {},
@@ -49,7 +49,7 @@
"provider_name": "registry.terraform.io/hashicorp/null",
"schema_version": 0,
"values": {
"id": "6105197068461821872",
"id": "771742387122791362",
"triggers": null
},
"sensitive_values": {},
@@ -2,7 +2,7 @@ terraform {
required_providers {
coder = {
source = "coder/coder"
version = "0.4.10"
version = "0.4.11"
}
}
}
@@ -182,7 +182,7 @@
"coder": {
"name": "coder",
"full_name": "registry.terraform.io/coder/coder",
"version_constraint": "0.4.10"
"version_constraint": "0.4.11"
},
"null": {
"name": "null",
@@ -16,11 +16,11 @@
"auth": "token",
"dir": null,
"env": null,
"id": "0a714220-de27-4721-a6ab-d5c21c8e99b8",
"id": "0c3c20d8-8a1d-4fc9-bc73-ed45ddad9a9d",
"init_script": "",
"os": "linux",
"startup_script": null,
"token": "d241aebd-6d75-4c06-a02e-74b41607345c"
"token": "48b3f4c4-4bb9-477c-8d32-d1e14188e5f8"
},
"sensitive_values": {}
},
@@ -36,11 +36,11 @@
"auth": "token",
"dir": null,
"env": null,
"id": "27567c6b-c52a-4c01-a6ad-368fddb36c9a",
"id": "08e8ebc8-4660-47f0-acb5-6ca46747919d",
"init_script": "",
"os": "darwin",
"startup_script": null,
"token": "eb5f4e5e-eb57-434c-a444-274b811afa30"
"token": "827a1f01-a2d7-4794-ab73-8fd8442010d5"
},
"sensitive_values": {}
},
@@ -56,11 +56,11 @@
"auth": "token",
"dir": null,
"env": null,
"id": "b689c633-e666-43e1-ac77-9522f187a098",
"id": "50f52bd4-a52b-4c73-bf99-fe956913bca4",
"init_script": "",
"os": "windows",
"startup_script": null,
"token": "90a9c42e-df1f-4656-ac4c-c7f4ab06a269"
"token": "159d6407-a913-4e05-8ba7-786d47a7e34b"
},
"sensitive_values": {}
},
@@ -72,7 +72,7 @@
"provider_name": "registry.terraform.io/hashicorp/null",
"schema_version": 0,
"values": {
"id": "7866048965316331550",
"id": "2529387636030139440",
"triggers": null
},
"sensitive_values": {},
@@ -2,7 +2,7 @@ terraform {
required_providers {
coder = {
source = "coder/coder"
version = "0.4.10"
version = "0.4.11"
}
}
}
+1 -1
View File
@@ -176,7 +176,7 @@
"coder": {
"name": "coder",
"full_name": "registry.terraform.io/coder/coder",
"version_constraint": "0.4.10"
"version_constraint": "0.4.11"
},
"null": {
"name": "null",
+7 -7
View File
@@ -16,11 +16,11 @@
"auth": "token",
"dir": null,
"env": null,
"id": "04d74496-49a6-4757-b1b2-47e21840067e",
"id": "3d4ee1d5-6413-4dc7-baec-2fa9dbd870ba",
"init_script": "",
"os": "linux",
"startup_script": null,
"token": "1417b29e-da8c-45fb-998d-fbec32069e8d"
"token": "32e082d7-af02-42f1-a5bd-f6adc34220a1"
},
"sensitive_values": {}
},
@@ -32,10 +32,10 @@
"provider_name": "registry.terraform.io/coder/coder",
"schema_version": 0,
"values": {
"agent_id": "04d74496-49a6-4757-b1b2-47e21840067e",
"agent_id": "3d4ee1d5-6413-4dc7-baec-2fa9dbd870ba",
"command": null,
"icon": null,
"id": "0a5869ef-00d9-4a37-9f72-e0b2bf0d266b",
"id": "90e045f9-19f1-4d8a-8021-be61c44ee54f",
"name": null,
"relative_path": null,
"url": null
@@ -53,10 +53,10 @@
"provider_name": "registry.terraform.io/coder/coder",
"schema_version": 0,
"values": {
"agent_id": "04d74496-49a6-4757-b1b2-47e21840067e",
"agent_id": "3d4ee1d5-6413-4dc7-baec-2fa9dbd870ba",
"command": null,
"icon": null,
"id": "d525e0c1-b494-4911-8b17-8cfb2d248fbf",
"id": "873026f8-3050-4b0b-bebf-41e13e5949bb",
"name": null,
"relative_path": null,
"url": null
@@ -74,7 +74,7 @@
"provider_name": "registry.terraform.io/hashicorp/null",
"schema_version": 0,
"values": {
"id": "5711218402680555438",
"id": "4447693752005094678",
"triggers": null
},
"sensitive_values": {},
@@ -2,7 +2,7 @@ terraform {
required_providers {
coder = {
source = "coder/coder"
version = "0.4.10"
version = "0.4.11"
}
}
}
@@ -16,21 +16,22 @@ resource "null_resource" "about" {}
resource "coder_metadata" "about_info" {
resource_id = null_resource.about.id
hide = true
hide = true
icon = "/icon/server.svg"
item {
key = "hello"
key = "hello"
value = "world"
}
item {
key = "null"
}
item {
key = "empty"
key = "empty"
value = ""
}
item {
key = "secret"
value = "squirrel"
key = "secret"
value = "squirrel"
sensitive = true
}
}
@@ -30,6 +30,7 @@
"schema_version": 0,
"values": {
"hide": true,
"icon": "/icon/server.svg",
"item": [
{
"key": "hello",
@@ -119,6 +120,7 @@
"before": null,
"after": {
"hide": true,
"icon": "/icon/server.svg",
"item": [
{
"key": "hello",
@@ -198,7 +200,7 @@
"coder": {
"name": "coder",
"full_name": "registry.terraform.io/coder/coder",
"version_constraint": "0.4.10"
"version_constraint": "0.4.11"
},
"null": {
"name": "null",
@@ -233,6 +235,9 @@
"hide": {
"constant_value": true
},
"icon": {
"constant_value": "/icon/server.svg"
},
"item": [
{
"key": {
@@ -16,11 +16,11 @@
"auth": "token",
"dir": null,
"env": null,
"id": "bf761056-4c83-4f36-98e9-fb15c4f3818f",
"id": "09aac2a4-9d8e-43ef-83cb-34657db199f4",
"init_script": "",
"os": "linux",
"startup_script": null,
"token": "fcc945d1-ad27-47e5-9c31-aeb4ffd2dd67"
"token": "a0f6b8af-8edc-447f-b6d2-67a60ecd2a77"
},
"sensitive_values": {}
},
@@ -33,7 +33,8 @@
"schema_version": 0,
"values": {
"hide": true,
"id": "6f981e35-73a3-4478-8227-fed4643afd71",
"icon": "/icon/server.svg",
"id": "a7f9cf03-de78-4d17-bcbb-21dc34c2d86a",
"item": [
{
"is_null": false,
@@ -60,7 +61,7 @@
"value": "squirrel"
}
],
"resource_id": "3184975245680216434"
"resource_id": "6209384655473556868"
},
"sensitive_values": {
"item": [
@@ -82,7 +83,7 @@
"provider_name": "registry.terraform.io/hashicorp/null",
"schema_version": 0,
"values": {
"id": "3184975245680216434",
"id": "6209384655473556868",
"triggers": null
},
"sensitive_values": {}