Skip to content

Commit 96453bf

Browse files
Split up resources into multiple folders (#811)
`cloud`, `grafana`, `machinelearning`, `oncall` and `syntheticmonitoring` `grafana` may be split again in the future but it'll do for now
1 parent 21d3319 commit 96453bf

File tree

144 files changed

+456
-405
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

144 files changed

+456
-405
lines changed

internal/provider/provider.go

Lines changed: 36 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,11 @@ import (
2121
"github.com/grafana/machine-learning-go-client/mlapi"
2222
SMAPI "github.com/grafana/synthetic-monitoring-api-go-client"
2323
"github.com/grafana/terraform-provider-grafana/internal/common"
24-
"github.com/grafana/terraform-provider-grafana/internal/grafana"
24+
"github.com/grafana/terraform-provider-grafana/internal/resources/cloud"
25+
"github.com/grafana/terraform-provider-grafana/internal/resources/grafana"
26+
"github.com/grafana/terraform-provider-grafana/internal/resources/machinelearning"
27+
"github.com/grafana/terraform-provider-grafana/internal/resources/oncall"
28+
"github.com/grafana/terraform-provider-grafana/internal/resources/syntheticmonitoring"
2529
)
2630

2731
func init() {
@@ -70,35 +74,35 @@ func Provider(version string) func() *schema.Provider {
7074
"grafana_user": grafana.ResourceUser(),
7175

7276
// Machine Learning
73-
"grafana_machine_learning_job": grafana.ResourceMachineLearningJob(),
74-
"grafana_machine_learning_holiday": grafana.ResourceMachineLearningHoliday(),
75-
"grafana_machine_learning_outlier_detector": grafana.ResourceMachineLearningOutlierDetector(),
77+
"grafana_machine_learning_job": machinelearning.ResourceJob(),
78+
"grafana_machine_learning_holiday": machinelearning.ResourceHoliday(),
79+
"grafana_machine_learning_outlier_detector": machinelearning.ResourceOutlierDetector(),
7680
})
7781

7882
// Resources that require the Synthetic Monitoring client to exist.
7983
smClientResources = addResourcesMetadataValidation(smClientPresent, map[string]*schema.Resource{
80-
"grafana_synthetic_monitoring_check": grafana.ResourceSyntheticMonitoringCheck(),
81-
"grafana_synthetic_monitoring_probe": grafana.ResourceSyntheticMonitoringProbe(),
84+
"grafana_synthetic_monitoring_check": syntheticmonitoring.ResourceCheck(),
85+
"grafana_synthetic_monitoring_probe": syntheticmonitoring.ResourceProbe(),
8286
})
8387

8488
// Resources that require the Cloud client to exist.
8589
cloudClientResources = addResourcesMetadataValidation(cloudClientPresent, map[string]*schema.Resource{
86-
"grafana_cloud_access_policy": grafana.ResourceCloudAccessPolicy(),
87-
"grafana_cloud_access_policy_token": grafana.ResourceCloudAccessPolicyToken(),
88-
"grafana_cloud_api_key": grafana.ResourceCloudAPIKey(),
89-
"grafana_cloud_plugin_installation": grafana.ResourceCloudPluginInstallation(),
90-
"grafana_cloud_stack": grafana.ResourceCloudStack(),
90+
"grafana_cloud_access_policy": cloud.ResourceAccessPolicy(),
91+
"grafana_cloud_access_policy_token": cloud.ResourceAccessPolicyToken(),
92+
"grafana_cloud_api_key": cloud.ResourceAPIKey(),
93+
"grafana_cloud_plugin_installation": cloud.ResourcePluginInstallation(),
94+
"grafana_cloud_stack": cloud.ResourceStack(),
9195
})
9296

9397
// Resources that require the OnCall client to exist.
9498
onCallClientResources = addResourcesMetadataValidation(onCallClientPresent, map[string]*schema.Resource{
95-
"grafana_oncall_integration": grafana.ResourceOnCallIntegration(),
96-
"grafana_oncall_route": grafana.ResourceOnCallRoute(),
97-
"grafana_oncall_escalation_chain": grafana.ResourceOnCallEscalationChain(),
98-
"grafana_oncall_escalation": grafana.ResourceOnCallEscalation(),
99-
"grafana_oncall_on_call_shift": grafana.ResourceOnCallOnCallShift(),
100-
"grafana_oncall_schedule": grafana.ResourceOnCallSchedule(),
101-
"grafana_oncall_outgoing_webhook": grafana.ResourceOnCallOutgoingWebhook(),
99+
"grafana_oncall_integration": oncall.ResourceIntegration(),
100+
"grafana_oncall_route": oncall.ResourceRoute(),
101+
"grafana_oncall_escalation_chain": oncall.ResourceEscalationChain(),
102+
"grafana_oncall_escalation": oncall.ResourceEscalation(),
103+
"grafana_oncall_on_call_shift": oncall.ResourceOnCallShift(),
104+
"grafana_oncall_schedule": oncall.ResourceSchedule(),
105+
"grafana_oncall_outgoing_webhook": oncall.ResourceOutgoingWebhook(),
102106
})
103107

104108
// Datasources that require the Grafana client to exist.
@@ -118,27 +122,27 @@ func Provider(version string) func() *schema.Provider {
118122

119123
// Datasources that require the Synthetic Monitoring client to exist.
120124
smClientDatasources = addResourcesMetadataValidation(smClientPresent, map[string]*schema.Resource{
121-
"grafana_synthetic_monitoring_probe": grafana.DatasourceSyntheticMonitoringProbe(),
122-
"grafana_synthetic_monitoring_probes": grafana.DatasourceSyntheticMonitoringProbes(),
125+
"grafana_synthetic_monitoring_probe": syntheticmonitoring.DataSourceProbe(),
126+
"grafana_synthetic_monitoring_probes": syntheticmonitoring.DataSourceProbes(),
123127
})
124128

125129
// Datasources that require the Cloud client to exist.
126130
cloudClientDatasources = addResourcesMetadataValidation(cloudClientPresent, map[string]*schema.Resource{
127-
"grafana_cloud_ips": grafana.DatasourceCloudIPs(),
128-
"grafana_cloud_organization": grafana.DatasourceCloudOrganization(),
129-
"grafana_cloud_stack": grafana.DatasourceCloudStack(),
131+
"grafana_cloud_ips": cloud.DataSourceIPs(),
132+
"grafana_cloud_organization": cloud.DataSourceOrganization(),
133+
"grafana_cloud_stack": cloud.DataSourceStack(),
130134
})
131135

132136
// Datasources that require the OnCall client to exist.
133137
onCallClientDatasources = addResourcesMetadataValidation(onCallClientPresent, map[string]*schema.Resource{
134-
"grafana_oncall_user": grafana.DataSourceOnCallUser(),
135-
"grafana_oncall_escalation_chain": grafana.DataSourceOnCallEscalationChain(),
136-
"grafana_oncall_schedule": grafana.DataSourceOnCallSchedule(),
137-
"grafana_oncall_slack_channel": grafana.DataSourceOnCallSlackChannel(),
138-
"grafana_oncall_action": grafana.DataSourceOnCallAction(), // deprecated
139-
"grafana_oncall_outgoing_webhook": grafana.DataSourceOnCallOutgoingWebhook(),
140-
"grafana_oncall_user_group": grafana.DataSourceOnCallUserGroup(),
141-
"grafana_oncall_team": grafana.DataSourceOnCallTeam(),
138+
"grafana_oncall_user": oncall.DataSourceUser(),
139+
"grafana_oncall_escalation_chain": oncall.DataSourceEscalationChain(),
140+
"grafana_oncall_schedule": oncall.DataSourceSchedule(),
141+
"grafana_oncall_slack_channel": oncall.DataSourceSlackChannel(),
142+
"grafana_oncall_action": oncall.DataSourceAction(), // deprecated
143+
"grafana_oncall_outgoing_webhook": oncall.DataSourceOutgoingWebhook(),
144+
"grafana_oncall_user_group": oncall.DataSourceUserGroup(),
145+
"grafana_oncall_team": oncall.DataSourceTeam(),
142146
})
143147
)
144148

@@ -262,7 +266,7 @@ func Provider(version string) func() *schema.Provider {
262266
// Special case, this resource supports both Grafana and Cloud (depending on context)
263267
"grafana_api_key": grafana.ResourceAPIKey(),
264268
// This one installs SM on a cloud instance, everything it needs is in its attributes
265-
"grafana_synthetic_monitoring_installation": grafana.ResourceSyntheticMonitoringInstallation(),
269+
"grafana_synthetic_monitoring_installation": cloud.ResourceInstallation(),
266270
},
267271
grafanaClientResources,
268272
smClientResources,

internal/grafana/data_source_cloud_ips.go renamed to internal/resources/cloud/data_source_cloud_ips.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package grafana
1+
package cloud
22

33
import (
44
"context"
@@ -10,10 +10,10 @@ import (
1010
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
1111
)
1212

13-
func DatasourceCloudIPs() *schema.Resource {
13+
func DataSourceIPs() *schema.Resource {
1414
return &schema.Resource{
1515
Description: "Data source for retrieving sets of cloud IPs. See https://grafana.com/docs/grafana-cloud/reference/allow-list/ for more info",
16-
ReadContext: dataSourceCloudIPsRead,
16+
ReadContext: DataSourceIPsRead,
1717
Schema: map[string]*schema.Schema{
1818
"hosted_alerts": {
1919
Description: "Set of IP addresses that are used for hosted alerts.",
@@ -59,7 +59,7 @@ func DatasourceCloudIPs() *schema.Resource {
5959
}
6060
}
6161

62-
func dataSourceCloudIPsRead(ctx context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics {
62+
func DataSourceIPsRead(ctx context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics {
6363
d.SetId("cloud_ips")
6464
for attr, dataURL := range map[string]string{
6565
"hosted_alerts": "https://grafana.com/api/hosted-alerts/source-ips.txt",

internal/grafana/data_source_cloud_ips_test.go renamed to internal/resources/cloud/data_source_cloud_ips_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package grafana_test
1+
package cloud_test
22

33
import (
44
"fmt"
@@ -12,7 +12,7 @@ import (
1212
"github.com/hashicorp/terraform-plugin-sdk/v2/terraform"
1313
)
1414

15-
func TestAccDataSourceCloudIPsRead(t *testing.T) {
15+
func TestAccDataSourceIPsRead(t *testing.T) {
1616
testutils.CheckCloudAPITestsEnabled(t)
1717

1818
resource.ParallelTest(t, resource.TestCase{

internal/grafana/data_source_cloud_organization.go renamed to internal/resources/cloud/data_source_cloud_organization.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package grafana
1+
package cloud
22

33
import (
44
"context"
@@ -10,13 +10,13 @@ import (
1010
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
1111
)
1212

13-
func DatasourceCloudOrganization() *schema.Resource {
13+
func DataSourceOrganization() *schema.Resource {
1414
return &schema.Resource{
1515
Description: `
1616
* [Official documentation](https://grafana.com/docs/grafana/latest/administration/manage-organizations/)
1717
* [HTTP API](https://grafana.com/docs/grafana/latest/http_api/org/)
1818
`,
19-
ReadContext: datasourceCloudOrganizationRead,
19+
ReadContext: DataSourceOrganizationRead,
2020
Schema: map[string]*schema.Schema{
2121
"id": {
2222
Type: schema.TypeString,
@@ -48,7 +48,7 @@ func DatasourceCloudOrganization() *schema.Resource {
4848
}
4949
}
5050

51-
func datasourceCloudOrganizationRead(ctx context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics {
51+
func DataSourceOrganizationRead(ctx context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics {
5252
client := meta.(*common.Client).GrafanaCloudAPI
5353

5454
id := d.Get("id").(string)

internal/grafana/data_source_cloud_organization_test.go renamed to internal/resources/cloud/data_source_cloud_organization_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package grafana_test
1+
package cloud_test
22

33
import (
44
"fmt"
@@ -10,7 +10,7 @@ import (
1010
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
1111
)
1212

13-
func TestAccDatasourceCloudOrganization_Basic(t *testing.T) {
13+
func TestAccDataSourceOrganization_Basic(t *testing.T) {
1414
testutils.CheckCloudAPITestsEnabled(t)
1515

1616
config := fmt.Sprintf(`

internal/grafana/data_source_cloud_stack.go renamed to internal/resources/cloud/data_source_cloud_stack.go

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package grafana
1+
package cloud
22

33
import (
44
"context"
@@ -8,11 +8,11 @@ import (
88
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
99
)
1010

11-
func DatasourceCloudStack() *schema.Resource {
11+
func DataSourceStack() *schema.Resource {
1212
return &schema.Resource{
1313
Description: "Data source for Grafana Stack",
14-
ReadContext: datasourceCloudStackRead,
15-
Schema: common.CloneResourceSchemaForDatasource(ResourceCloudStack(), map[string]*schema.Schema{
14+
ReadContext: DataSourceStackRead,
15+
Schema: common.CloneResourceSchemaForDatasource(ResourceStack(), map[string]*schema.Schema{
1616
"slug": {
1717
Type: schema.TypeString,
1818
Required: true,
@@ -31,7 +31,7 @@ available at “https://<stack_slug>.grafana.net".`,
3131
}
3232
}
3333

34-
func datasourceCloudStackRead(ctx context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics {
34+
func DataSourceStackRead(ctx context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics {
3535
client := meta.(*common.Client).GrafanaCloudAPI
3636

3737
slug := d.Get("slug").(string)

internal/grafana/data_source_cloud_stack_test.go renamed to internal/resources/cloud/data_source_cloud_stack_test.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package grafana_test
1+
package cloud_test
22

33
import (
44
"fmt"
@@ -9,7 +9,7 @@ import (
99
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
1010
)
1111

12-
func TestAccDatasourceCloudStack_Basic(t *testing.T) {
12+
func TestAccDataSourceStack_Basic(t *testing.T) {
1313
testutils.CheckCloudAPITestsEnabled(t)
1414

1515
prefix := "tfdatatest"
@@ -24,7 +24,7 @@ func TestAccDatasourceCloudStack_Basic(t *testing.T) {
2424
CheckDestroy: testAccStackCheckDestroy(&stack),
2525
Steps: []resource.TestStep{
2626
{
27-
Config: testAccDatasourceCloudStackConfig(resourceName),
27+
Config: testAccDataSourceStackConfig(resourceName),
2828
Check: resource.ComposeTestCheckFunc(
2929
testAccStackCheckExists("grafana_cloud_stack.test", &stack),
3030
resource.TestCheckResourceAttrSet("data.grafana_cloud_stack.test", "id"),
@@ -41,7 +41,7 @@ func TestAccDatasourceCloudStack_Basic(t *testing.T) {
4141
})
4242
}
4343

44-
func testAccDatasourceCloudStackConfig(resourceName string) string {
44+
func testAccDataSourceStackConfig(resourceName string) string {
4545
return fmt.Sprintf(`
4646
resource "grafana_cloud_stack" "test" {
4747
name = "%s"

internal/grafana/resource_cloud_access_policy.go renamed to internal/resources/cloud/resource_cloud_access_policy.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package grafana
1+
package cloud
22

33
import (
44
"context"
@@ -15,7 +15,7 @@ import (
1515
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/validation"
1616
)
1717

18-
func ResourceCloudAccessPolicy() *schema.Resource {
18+
func ResourceAccessPolicy() *schema.Resource {
1919
return &schema.Resource{
2020

2121
Description: `

internal/grafana/resource_cloud_access_policy_token.go renamed to internal/resources/cloud/resource_cloud_access_policy_token.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package grafana
1+
package cloud
22

33
import (
44
"context"
@@ -14,7 +14,7 @@ import (
1414
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/validation"
1515
)
1616

17-
func ResourceCloudAccessPolicyToken() *schema.Resource {
17+
func ResourceAccessPolicyToken() *schema.Resource {
1818
return &schema.Resource{
1919

2020
Description: `

internal/grafana/resource_cloud_access_policy_token_test.go renamed to internal/resources/cloud/resource_cloud_access_policy_token_test.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package grafana_test
1+
package cloud_test
22

33
import (
44
"fmt"
@@ -16,7 +16,7 @@ import (
1616
)
1717

1818
// This test covers both the cloud_access_policy and cloud_access_policy_token resources.
19-
func TestResourceCloudAccessPolicyToken_Basic(t *testing.T) {
19+
func TestResourceAccessPolicyToken_Basic(t *testing.T) {
2020
t.Parallel()
2121
testutils.CheckCloudAPITestsEnabled(t)
2222

@@ -112,7 +112,7 @@ func TestResourceCloudAccessPolicyToken_Basic(t *testing.T) {
112112
})
113113
}
114114

115-
func TestResourceCloudAccessPolicyToken_NoExpiration(t *testing.T) {
115+
func TestResourceAccessPolicyToken_NoExpiration(t *testing.T) {
116116
t.Parallel()
117117
testutils.CheckCloudAPITestsEnabled(t)
118118

0 commit comments

Comments
 (0)