Skip to content
This repository was archived by the owner on Mar 1, 2023. It is now read-only.

Commit 5aa323e

Browse files
[Partner] Alexander Sokolovalexk53
authored andcommitted
laas added
1 parent fa00d8c commit 5aa323e

File tree

15 files changed

+638
-32
lines changed

15 files changed

+638
-32
lines changed
Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
---
2+
# generated by https://github.com/hashicorp/terraform-plugin-docs
3+
page_title: "gcore_laas_hosts Data Source - terraform-provider-gcorelabs"
4+
subcategory: ""
5+
description: |-
6+
Represent LaaS hosts
7+
---
8+
9+
# gcore_laas_hosts (Data Source)
10+
11+
Represent LaaS hosts
12+
13+
## Example Usage
14+
15+
```terraform
16+
provider gcore {
17+
permanent_api_token = "251$d3361.............1b35f26d8"
18+
}
19+
20+
data "gcore_project" "pr" {
21+
name = "test"
22+
}
23+
24+
data "gcore_region" "rg" {
25+
name = "ED-10 Preprod"
26+
}
27+
28+
data "gcore_laas_hosts" "hosts" {
29+
region_id = data.gcore_region.rg.id
30+
project_id = data.gcore_project.pr.id
31+
}
32+
33+
output "view" {
34+
value = data.gcore_laas_hosts.hosts
35+
}
36+
```
37+
38+
<!-- schema generated by tfplugindocs -->
39+
## Schema
40+
41+
### Optional
42+
43+
- `project_id` (Number)
44+
- `project_name` (String)
45+
- `region_id` (Number)
46+
- `region_name` (String)
47+
48+
### Read-Only
49+
50+
- `id` (String) The ID of this resource.
51+
- `kafka` (List of String)
52+
- `opensearch` (List of String)
53+
54+
Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
---
2+
# generated by https://github.com/hashicorp/terraform-plugin-docs
3+
page_title: "gcore_laas_status Data Source - terraform-provider-gcorelabs"
4+
subcategory: ""
5+
description: |-
6+
Represent LaaS hosts
7+
---
8+
9+
# gcore_laas_status (Data Source)
10+
11+
Represent LaaS hosts
12+
13+
## Example Usage
14+
15+
```terraform
16+
provider gcore {
17+
permanent_api_token = "251$d3361.............1b35f26d8"
18+
}
19+
20+
data "gcore_project" "pr" {
21+
name = "test"
22+
}
23+
24+
data "gcore_region" "rg" {
25+
name = "ED-10 Preprod"
26+
}
27+
28+
data "gcore_laas_status" "status" {
29+
region_id = data.gcore_region.rg.id
30+
project_id = data.gcore_project.pr.id
31+
}
32+
33+
output "view" {
34+
value = data.gcore_laas_status.status
35+
}
36+
```
37+
38+
<!-- schema generated by tfplugindocs -->
39+
## Schema
40+
41+
### Optional
42+
43+
- `project_id` (Number)
44+
- `project_name` (String)
45+
- `region_id` (Number)
46+
- `region_name` (String)
47+
48+
### Read-Only
49+
50+
- `id` (String) The ID of this resource.
51+
- `is_initialized` (Boolean)
52+
- `namespace` (String)
53+
54+

docs/resources/gcore_laas_topic.md

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
---
2+
# generated by https://github.com/hashicorp/terraform-plugin-docs
3+
page_title: "gcore_laas_topic Resource - terraform-provider-gcorelabs"
4+
subcategory: ""
5+
description: |-
6+
Represent LaaS topic
7+
---
8+
9+
# gcore_laas_topic (Resource)
10+
11+
Represent LaaS topic
12+
13+
## Example Usage
14+
15+
```terraform
16+
provider gcore {
17+
permanent_api_token = "251$d3361.............1b35f26d8"
18+
}
19+
20+
resource "gcore_laas_topic" "test" {
21+
region_id = 1
22+
project_id = 1
23+
24+
name = "test"
25+
}
26+
```
27+
28+
<!-- schema generated by tfplugindocs -->
29+
## Schema
30+
31+
### Required
32+
33+
- `name` (String)
34+
35+
### Optional
36+
37+
- `project_id` (Number)
38+
- `project_name` (String)
39+
- `region_id` (Number)
40+
- `region_name` (String)
41+
42+
### Read-Only
43+
44+
- `id` (String) The ID of this resource.
45+
46+
## Import
47+
48+
Import is supported using the following syntax:
49+
50+
```shell
51+
# import using <project_id>:<region_id>:<topic_name> format
52+
terraform import gcore_laas_topic.test 1:6:test_topic
53+
```
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
provider gcore {
2+
permanent_api_token = "251$d3361.............1b35f26d8"
3+
}
4+
5+
data "gcore_project" "pr" {
6+
name = "test"
7+
}
8+
9+
data "gcore_region" "rg" {
10+
name = "ED-10 Preprod"
11+
}
12+
13+
data "gcore_laas_hosts" "hosts" {
14+
region_id = data.gcore_region.rg.id
15+
project_id = data.gcore_project.pr.id
16+
}
17+
18+
output "view" {
19+
value = data.gcore_laas_hosts.hosts
20+
}
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
provider gcore {
2+
permanent_api_token = "251$d3361.............1b35f26d8"
3+
}
4+
5+
data "gcore_project" "pr" {
6+
name = "test"
7+
}
8+
9+
data "gcore_region" "rg" {
10+
name = "ED-10 Preprod"
11+
}
12+
13+
data "gcore_laas_status" "status" {
14+
region_id = data.gcore_region.rg.id
15+
project_id = data.gcore_project.pr.id
16+
}
17+
18+
output "view" {
19+
value = data.gcore_laas_status.status
20+
}
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
# import using <project_id>:<region_id>:<topic_name> format
2+
terraform import gcore_laas_topic.test 1:6:test_topic
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
provider gcore {
2+
permanent_api_token = "251$d3361.............1b35f26d8"
3+
}
4+
5+
resource "gcore_laas_topic" "test" {
6+
region_id = 1
7+
project_id = 1
8+
9+
name = "test"
10+
}
Lines changed: 99 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,99 @@
1+
package gcore
2+
3+
import (
4+
"context"
5+
"log"
6+
7+
"github.com/G-Core/gcorelabscloud-go/gcore/laas/v1/laas"
8+
"github.com/hashicorp/terraform-plugin-sdk/v2/diag"
9+
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
10+
)
11+
12+
func dataSourceLaaSHosts() *schema.Resource {
13+
return &schema.Resource{
14+
ReadContext: dataSourceLaaSHostsRead,
15+
Description: "Represent LaaS hosts",
16+
Schema: map[string]*schema.Schema{
17+
"project_id": &schema.Schema{
18+
Type: schema.TypeInt,
19+
Optional: true,
20+
ExactlyOneOf: []string{
21+
"project_id",
22+
"project_name",
23+
},
24+
},
25+
"region_id": &schema.Schema{
26+
Type: schema.TypeInt,
27+
Optional: true,
28+
ExactlyOneOf: []string{
29+
"region_id",
30+
"region_name",
31+
},
32+
},
33+
"project_name": &schema.Schema{
34+
Type: schema.TypeString,
35+
Optional: true,
36+
ExactlyOneOf: []string{
37+
"project_id",
38+
"project_name",
39+
},
40+
},
41+
"region_name": &schema.Schema{
42+
Type: schema.TypeString,
43+
Optional: true,
44+
ExactlyOneOf: []string{
45+
"region_id",
46+
"region_name",
47+
},
48+
},
49+
"opensearch": &schema.Schema{
50+
Type: schema.TypeList,
51+
Computed: true,
52+
Elem: &schema.Schema{
53+
Type: schema.TypeString,
54+
},
55+
},
56+
"kafka": &schema.Schema{
57+
Type: schema.TypeList,
58+
Computed: true,
59+
Elem: &schema.Schema{
60+
Type: schema.TypeString,
61+
},
62+
},
63+
},
64+
}
65+
}
66+
67+
func dataSourceLaaSHostsRead(ctx context.Context, d *schema.ResourceData, m interface{}) diag.Diagnostics {
68+
log.Println("[DEBUG] Start LaaS hosts reading")
69+
var diags diag.Diagnostics
70+
config := m.(*Config)
71+
provider := config.Provider
72+
73+
client, err := CreateClient(provider, d, laasPoint, versionPointV1)
74+
if err != nil {
75+
return diag.FromErr(err)
76+
}
77+
78+
kafkaHosts, err := laas.ListKafkaHosts(client).Extract()
79+
if err != nil {
80+
return diag.FromErr(err)
81+
}
82+
83+
openSearchHosts, err := laas.ListOpenSearchHosts(client).Extract()
84+
if err != nil {
85+
return diag.FromErr(err)
86+
}
87+
88+
d.SetId(getUniqueID(d))
89+
if err := d.Set("kafka", kafkaHosts); err != nil {
90+
return diag.FromErr(err)
91+
}
92+
93+
if err := d.Set("opensearch", openSearchHosts); err != nil {
94+
return diag.FromErr(err)
95+
}
96+
97+
log.Println("[DEBUG] Finish LaaS hosts reading")
98+
return diags
99+
}

0 commit comments

Comments
 (0)