Skip to content

Commit bd938ad

Browse files
Self-contained grafana package (#1420)
Last one This moves the mapping of resources and client validation to the SM package. This will make it easier to support TF code generation + upgrade to the new TF plugin framework
1 parent 272030b commit bd938ad

Some content is hidden

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

44 files changed

+153
-180
lines changed

internal/provider/legacy_provider.go

Lines changed: 2 additions & 60 deletions
Original file line numberDiff line numberDiff line change
@@ -34,64 +34,6 @@ func init() {
3434
// Provider returns a terraform-provider-sdk2 provider.
3535
// This is the deprecated way of creating a provider, and should only be used for legacy resources.
3636
func Provider(version string) *schema.Provider {
37-
var (
38-
// Resources that require the Grafana client to exist.
39-
grafanaClientResources = addCreateReadResourcesMetadataValidation(
40-
readGrafanaClientValidation,
41-
createGrafanaClientValidation,
42-
map[string]*schema.Resource{
43-
// Grafana
44-
"grafana_annotation": grafana.ResourceAnnotation(),
45-
"grafana_api_key": grafana.ResourceAPIKey(),
46-
"grafana_contact_point": grafana.ResourceContactPoint(),
47-
"grafana_dashboard": grafana.ResourceDashboard(),
48-
"grafana_dashboard_public": grafana.ResourcePublicDashboard(),
49-
"grafana_dashboard_permission": grafana.ResourceDashboardPermission(),
50-
"grafana_data_source": grafana.ResourceDataSource(),
51-
"grafana_data_source_permission": grafana.ResourceDatasourcePermission(),
52-
"grafana_folder": grafana.ResourceFolder(),
53-
"grafana_folder_permission": grafana.ResourceFolderPermission(),
54-
"grafana_library_panel": grafana.ResourceLibraryPanel(),
55-
"grafana_message_template": grafana.ResourceMessageTemplate(),
56-
"grafana_mute_timing": grafana.ResourceMuteTiming(),
57-
"grafana_notification_policy": grafana.ResourceNotificationPolicy(),
58-
"grafana_organization": grafana.ResourceOrganization(),
59-
"grafana_organization_preferences": grafana.ResourceOrganizationPreferences(),
60-
"grafana_playlist": grafana.ResourcePlaylist(),
61-
"grafana_report": grafana.ResourceReport(),
62-
"grafana_role": grafana.ResourceRole(),
63-
"grafana_role_assignment": grafana.ResourceRoleAssignment(),
64-
"grafana_rule_group": grafana.ResourceRuleGroup(),
65-
"grafana_team": grafana.ResourceTeam(),
66-
"grafana_team_external_group": grafana.ResourceTeamExternalGroup(),
67-
"grafana_service_account_token": grafana.ResourceServiceAccountToken(),
68-
"grafana_service_account": grafana.ResourceServiceAccount(),
69-
"grafana_service_account_permission": grafana.ResourceServiceAccountPermission(),
70-
"grafana_sso_settings": grafana.ResourceSSOSettings(),
71-
"grafana_user": grafana.ResourceUser(),
72-
})
73-
74-
// Datasources that require the Grafana client to exist.
75-
grafanaClientDatasources = addCreateReadResourcesMetadataValidation(
76-
readGrafanaClientValidation,
77-
createGrafanaClientValidation,
78-
map[string]*schema.Resource{
79-
"grafana_dashboard": grafana.DatasourceDashboard(),
80-
"grafana_dashboards": grafana.DatasourceDashboards(),
81-
"grafana_data_source": grafana.DatasourceDatasource(),
82-
"grafana_folder": grafana.DatasourceFolder(),
83-
"grafana_folders": grafana.DatasourceFolders(),
84-
"grafana_library_panel": grafana.DatasourceLibraryPanel(),
85-
"grafana_user": grafana.DatasourceUser(),
86-
"grafana_users": grafana.DatasourceUsers(),
87-
"grafana_role": grafana.DatasourceRole(),
88-
"grafana_service_account": grafana.DatasourceServiceAccount(),
89-
"grafana_team": grafana.DatasourceTeam(),
90-
"grafana_organization": grafana.DatasourceOrganization(),
91-
"grafana_organization_preferences": grafana.DatasourceOrganizationPreferences(),
92-
})
93-
)
94-
9537
p := &schema.Provider{
9638
Schema: map[string]*schema.Schema{
9739
"url": {
@@ -210,7 +152,7 @@ func Provider(version string) *schema.Provider {
210152
},
211153

212154
ResourcesMap: mergeResourceMaps(
213-
grafanaClientResources,
155+
grafana.ResourcesMap,
214156
machinelearning.ResourcesMap,
215157
slo.ResourcesMap,
216158
syntheticmonitoring.ResourcesMap,
@@ -219,7 +161,7 @@ func Provider(version string) *schema.Provider {
219161
),
220162

221163
DataSourcesMap: mergeResourceMaps(
222-
grafanaClientDatasources,
164+
grafana.DatasourcesMap,
223165
machinelearning.DatasourcesMap,
224166
slo.DatasourcesMap,
225167
syntheticmonitoring.DatasourcesMap,

internal/provider/legacy_provider_validation.go

Lines changed: 0 additions & 70 deletions
This file was deleted.

internal/resources/grafana/data_source_dashboard.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ import (
1111
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
1212
)
1313

14-
func DatasourceDashboard() *schema.Resource {
14+
func datasourceDashboard() *schema.Resource {
1515
return &schema.Resource{
1616
Description: `
1717
* [Official documentation](https://grafana.com/docs/grafana/latest/dashboards/)

internal/resources/grafana/data_source_dashboards.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ import (
1111
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
1212
)
1313

14-
func DatasourceDashboards() *schema.Resource {
14+
func datasourceDashboards() *schema.Resource {
1515
return &schema.Resource{
1616
Description: `
1717
Datasource for retrieving all dashboards. Specify list of folder IDs to search in for dashboards.

internal/resources/grafana/data_source_data_source.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,11 @@ import (
99
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
1010
)
1111

12-
func DatasourceDatasource() *schema.Resource {
12+
func datasourceDatasource() *schema.Resource {
1313
return &schema.Resource{
1414
Description: "Get details about a Grafana Datasource querying by either name, uid or ID",
1515
ReadContext: datasourceDatasourceRead,
16-
Schema: common.CloneResourceSchemaForDatasource(ResourceDataSource(), map[string]*schema.Schema{
16+
Schema: common.CloneResourceSchemaForDatasource(resourceDataSource(), map[string]*schema.Schema{
1717
"org_id": orgIDAttribute(),
1818
"id": {
1919
Type: schema.TypeString,

internal/resources/grafana/data_source_folder.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,14 +11,14 @@ import (
1111
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
1212
)
1313

14-
func DatasourceFolder() *schema.Resource {
14+
func datasourceFolder() *schema.Resource {
1515
return &schema.Resource{
1616
Description: `
1717
* [Official documentation](https://grafana.com/docs/grafana/latest/dashboards/manage-dashboards/)
1818
* [HTTP API](https://grafana.com/docs/grafana/latest/developers/http_api/folder/)
1919
`,
2020
ReadContext: dataSourceFolderRead,
21-
Schema: common.CloneResourceSchemaForDatasource(ResourceFolder(), map[string]*schema.Schema{
21+
Schema: common.CloneResourceSchemaForDatasource(resourceFolder(), map[string]*schema.Schema{
2222
"org_id": orgIDAttribute(),
2323
"title": {
2424
Type: schema.TypeString,

internal/resources/grafana/data_source_folders.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ import (
1010
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
1111
)
1212

13-
func DatasourceFolders() *schema.Resource {
13+
func datasourceFolders() *schema.Resource {
1414
return &schema.Resource{
1515
ReadContext: readFolders,
1616
Importer: &schema.ResourceImporter{

internal/resources/grafana/data_source_library_panel.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,11 @@ import (
88
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
99
)
1010

11-
func DatasourceLibraryPanel() *schema.Resource {
11+
func datasourceLibraryPanel() *schema.Resource {
1212
return &schema.Resource{
1313
Description: "Data source for retrieving a single library panel by name or uid.",
1414
ReadContext: dataSourceLibraryPanelRead,
15-
Schema: common.CloneResourceSchemaForDatasource(ResourceLibraryPanel(), map[string]*schema.Schema{
15+
Schema: common.CloneResourceSchemaForDatasource(resourceLibraryPanel(), map[string]*schema.Schema{
1616
"org_id": orgIDAttribute(),
1717
"name": {
1818
Type: schema.TypeString,

internal/resources/grafana/data_source_organization.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ import (
1010
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
1111
)
1212

13-
func DatasourceOrganization() *schema.Resource {
13+
func datasourceOrganization() *schema.Resource {
1414
return &schema.Resource{
1515
Description: `
1616
* [Official documentation](https://grafana.com/docs/grafana/latest/administration/organization-management/)

internal/resources/grafana/data_source_organization_preferences.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,14 +9,14 @@ import (
99
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
1010
)
1111

12-
func DatasourceOrganizationPreferences() *schema.Resource {
12+
func datasourceOrganizationPreferences() *schema.Resource {
1313
return &schema.Resource{
1414
Description: `
1515
* [Official documentation](https://grafana.com/docs/grafana/latest/administration/organization-management/)
1616
* [HTTP API](https://grafana.com/docs/grafana/latest/developers/http_api/preferences/#get-current-org-prefs)
1717
`,
1818
ReadContext: dataSourceOrganizationPreferencesRead,
19-
Schema: common.CloneResourceSchemaForDatasource(ResourceOrganizationPreferences(), map[string]*schema.Schema{
19+
Schema: common.CloneResourceSchemaForDatasource(resourceOrganizationPreferences(), map[string]*schema.Schema{
2020
"org_id": orgIDAttribute(),
2121
}),
2222
}

0 commit comments

Comments
 (0)