Skip to content

Commit d8a6533

Browse files
committed
Move pagerdutyplugin to protocol version 6
1 parent 695c6cc commit d8a6533

34 files changed

+1784
-222
lines changed

main.go

Lines changed: 19 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,13 @@ import (
44
"context"
55
"log"
66

7+
pd "github.com/PagerDuty/terraform-provider-pagerduty/pagerduty"
8+
pdp "github.com/PagerDuty/terraform-provider-pagerduty/pagerdutyplugin"
79
"github.com/hashicorp/terraform-plugin-framework/providerserver"
8-
"github.com/hashicorp/terraform-plugin-go/tfprotov5/tf5server"
9-
"github.com/hashicorp/terraform-plugin-mux/tf5muxserver"
10-
11-
"github.com/PagerDuty/terraform-provider-pagerduty/pagerduty"
12-
pagerdutyplugin "github.com/PagerDuty/terraform-provider-pagerduty/pagerdutyplugin"
10+
"github.com/hashicorp/terraform-plugin-go/tfprotov6"
11+
"github.com/hashicorp/terraform-plugin-go/tfprotov6/tf6server"
12+
"github.com/hashicorp/terraform-plugin-mux/tf5to6server"
13+
"github.com/hashicorp/terraform-plugin-mux/tf6muxserver"
1314
)
1415

1516
func main() {
@@ -19,21 +20,26 @@ func main() {
1920
func Serve() {
2021
ctx := context.Background()
2122

22-
muxServer, err := tf5muxserver.NewMuxServer(
23+
upgradedSdkServer, err := tf5to6server.UpgradeServer(ctx, pd.Provider(pd.IsMuxed).GRPCProvider)
24+
if err != nil {
25+
log.Fatal(err)
26+
}
27+
28+
muxServer, err := tf6muxserver.NewMuxServer(
2329
ctx,
24-
// terraform-plugin-framework
25-
providerserver.NewProtocol5(pagerdutyplugin.New()),
26-
// terraform-plugin-sdk
27-
pagerduty.Provider(pagerduty.IsMuxed).GRPCProvider,
30+
providerserver.NewProtocol6(pdp.New()),
31+
func() tfprotov6.ProviderServer { return upgradedSdkServer },
2832
)
2933
if err != nil {
3034
log.Fatal(err)
3135
}
3236

33-
var serveOpts []tf5server.ServeOpt
34-
3537
address := "registry.terraform.io/pagerduty/pagerduty"
36-
err = tf5server.Serve(address, muxServer.ProviderServer, serveOpts...)
38+
if err != nil {
39+
log.Fatal(err)
40+
}
41+
42+
err = tf6server.Serve(address, muxServer.ProviderServer)
3743
if err != nil {
3844
log.Fatal(err)
3945
}

pagerdutyplugin/data_source_pagerduty_business_service_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ func TestAccDataSourcePagerDutyBusinessService_Basic(t *testing.T) {
1414

1515
resource.Test(t, resource.TestCase{
1616
PreCheck: func() { testAccPreCheck(t) },
17-
ProtoV5ProviderFactories: testAccProtoV5ProviderFactories(),
17+
ProtoV6ProviderFactories: testAccProtoV6ProviderFactories(),
1818
Steps: []resource.TestStep{
1919
{
2020
Config: testAccDataSourcePagerDutyBusinessServiceConfig(name),

pagerdutyplugin/data_source_pagerduty_service_test.go

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ func TestAccDataSourcePagerDutyService_Basic(t *testing.T) {
1818

1919
resource.Test(t, resource.TestCase{
2020
PreCheck: func() { testAccPreCheck(t) },
21-
ProtoV5ProviderFactories: testAccProtoV5ProviderFactories(),
21+
ProtoV6ProviderFactories: testAccProtoV6ProviderFactories(),
2222
Steps: []resource.TestStep{
2323
{
2424
Config: testAccDataSourcePagerDutyServiceConfig(username, email, service, escalationPolicy, teamname),
@@ -39,7 +39,7 @@ func TestAccDataSourcePagerDutyService_HasNoTeam(t *testing.T) {
3939

4040
resource.Test(t, resource.TestCase{
4141
PreCheck: func() { testAccPreCheck(t) },
42-
ProtoV5ProviderFactories: testAccProtoV5ProviderFactories(),
42+
ProtoV6ProviderFactories: testAccProtoV6ProviderFactories(),
4343
Steps: []resource.TestStep{
4444
{
4545
Config: testAccDataSourcePagerDutyServiceConfig(username, email, service, escalationPolicy, teamname),
@@ -60,7 +60,7 @@ func TestAccDataSourcePagerDutyService_HasOneTeam(t *testing.T) {
6060

6161
resource.Test(t, resource.TestCase{
6262
PreCheck: func() { testAccPreCheck(t) },
63-
ProtoV5ProviderFactories: testAccProtoV5ProviderFactories(),
63+
ProtoV6ProviderFactories: testAccProtoV6ProviderFactories(),
6464
Steps: []resource.TestStep{
6565
{
6666
Config: testAccDataSourcePagerDutyServiceConfig(username, email, service, escalationPolicy, teamname),
@@ -98,6 +98,8 @@ func testAccDataSourcePagerDutyService(src, n string) resource.TestCheckFunc {
9898
}
9999

100100
func testAccDataSourcePagerDutyServiceConfig(username, email, service, escalationPolicy, teamname string) string {
101+
noTeamEsc := fmt.Sprintf("tf-%s", acctest.RandString(5))
102+
noTeamServ := fmt.Sprintf("tf-%s", acctest.RandString(5))
101103
return fmt.Sprintf(`
102104
resource "pagerduty_team" "team_one" {
103105
name = "%s"
@@ -115,7 +117,7 @@ resource "pagerduty_team_membership" "team_membership_one" {
115117
}
116118
117119
resource "pagerduty_escalation_policy" "no_team_ep" {
118-
name = "no_team_ep"
120+
name = "%s"
119121
num_loops = 2
120122
rule {
121123
escalation_delay_in_minutes = 10
@@ -127,7 +129,6 @@ resource "pagerduty_escalation_policy" "no_team_ep" {
127129
}
128130
129131
resource "pagerduty_escalation_policy" "one_team_ep" {
130-
131132
depends_on = [pagerduty_team_membership.team_membership_one]
132133
name = "%s"
133134
num_loops = 2
@@ -142,14 +143,13 @@ resource "pagerduty_escalation_policy" "one_team_ep" {
142143
}
143144
144145
resource "pagerduty_service" "no_team_service" {
145-
name = "no_team_service"
146+
name = "%s"
146147
auto_resolve_timeout = 14400
147148
acknowledgement_timeout = 600
148149
escalation_policy = pagerduty_escalation_policy.no_team_ep.id
149150
alert_creation = "create_incidents"
150151
}
151152
152-
153153
resource "pagerduty_service" "one_team_service" {
154154
name = "%s"
155155
auto_resolve_timeout = 14400
@@ -166,5 +166,5 @@ data "pagerduty_service" "one_team_service" {
166166
name = pagerduty_service.one_team_service.name
167167
}
168168
169-
`, teamname, username, email, service, escalationPolicy)
169+
`, teamname, username, email, noTeamEsc, escalationPolicy, noTeamServ, service)
170170
}

pagerdutyplugin/data_source_pagerduty_standards_resource_scores_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ func TestAccDataSourcePagerDutyStandardsResourceScores_Basic(t *testing.T) {
1313

1414
resource.Test(t, resource.TestCase{
1515
PreCheck: func() { testAccPreCheck(t) },
16-
ProtoV5ProviderFactories: testAccProtoV5ProviderFactories(),
16+
ProtoV6ProviderFactories: testAccProtoV6ProviderFactories(),
1717
Steps: []resource.TestStep{
1818
{
1919
Config: testAccDataSourcePagerDutyStandardsResourceScoresConfig(name),

pagerdutyplugin/data_source_pagerduty_standards_resources_scores_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ func TestAccDataSourcePagerDutyStandardsResourcesScores_Basic(t *testing.T) {
1313

1414
resource.Test(t, resource.TestCase{
1515
PreCheck: func() { testAccPreCheck(t) },
16-
ProtoV5ProviderFactories: testAccProtoV5ProviderFactories(),
16+
ProtoV6ProviderFactories: testAccProtoV6ProviderFactories(),
1717
Steps: []resource.TestStep{
1818
{
1919
Config: testAccDataSourcePagerDutyStandardsResourcesScoresConfig(name),

pagerdutyplugin/data_source_pagerduty_standards_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ func TestAccDataSourcePagerDutyStandards_Basic(t *testing.T) {
1414

1515
resource.Test(t, resource.TestCase{
1616
PreCheck: func() { testAccPreCheck(t) },
17-
ProtoV5ProviderFactories: testAccProtoV5ProviderFactories(),
17+
ProtoV6ProviderFactories: testAccProtoV6ProviderFactories(),
1818
Steps: []resource.TestStep{
1919
{
2020
Config: testAccDataSourcePagerDutyStandardsConfig(name),
@@ -34,7 +34,7 @@ func TestAccDataSourcePagerDutyStandards_WithResourceType(t *testing.T) {
3434

3535
resource.Test(t, resource.TestCase{
3636
PreCheck: func() { testAccPreCheck(t) },
37-
ProtoV5ProviderFactories: testAccProtoV5ProviderFactories(),
37+
ProtoV6ProviderFactories: testAccProtoV6ProviderFactories(),
3838
Steps: []resource.TestStep{
3939
{
4040
Config: testAccDataSourcePagerDutyStandardsConfigWithResourceType(name, resourceType),

pagerdutyplugin/import_pagerduty_business_service_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ func TestAccPagerDutyBusinessService_import(t *testing.T) {
1515

1616
resource.Test(t, resource.TestCase{
1717
PreCheck: func() { testAccPreCheck(t) },
18-
ProtoV5ProviderFactories: testAccProtoV5ProviderFactories(),
18+
ProtoV6ProviderFactories: testAccProtoV6ProviderFactories(),
1919
CheckDestroy: testAccCheckPagerDutyBusinessServiceDestroy,
2020
Steps: []resource.TestStep{
2121
{

pagerdutyplugin/provider_test.go

Lines changed: 16 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,13 @@ import (
55
"os"
66
"testing"
77

8+
pd "github.com/PagerDuty/terraform-provider-pagerduty/pagerduty"
89
"github.com/hashicorp/terraform-plugin-framework/providerserver"
9-
"github.com/hashicorp/terraform-plugin-go/tfprotov5"
10-
"github.com/hashicorp/terraform-plugin-mux/tf5muxserver"
10+
"github.com/hashicorp/terraform-plugin-go/tfprotov6"
11+
"github.com/hashicorp/terraform-plugin-mux/tf5to6server"
12+
"github.com/hashicorp/terraform-plugin-mux/tf6muxserver"
1113
"github.com/hashicorp/terraform-plugin-testing/helper/resource"
1214
"github.com/hashicorp/terraform-plugin-testing/terraform"
13-
14-
pd "github.com/PagerDuty/terraform-provider-pagerduty/pagerduty"
1515
)
1616

1717
var testAccProvider = New()
@@ -51,16 +51,21 @@ func testAccExternalProviders() map[string]resource.ExternalProvider {
5151
return m
5252
}
5353

54-
func testAccProtoV5ProviderFactories() map[string]func() (tfprotov5.ProviderServer, error) {
55-
return map[string]func() (tfprotov5.ProviderServer, error){
56-
"pagerduty": func() (tfprotov5.ProviderServer, error) {
54+
func testAccProtoV6ProviderFactories() map[string]func() (tfprotov6.ProviderServer, error) {
55+
return map[string]func() (tfprotov6.ProviderServer, error){
56+
"pagerduty": func() (tfprotov6.ProviderServer, error) {
5757
ctx := context.Background()
58-
providers := []func() tfprotov5.ProviderServer{
59-
pd.Provider(pd.IsMuxed).GRPCProvider,
60-
providerserver.NewProtocol5(testAccProvider),
58+
59+
upgradedSdkServer, err := tf5to6server.UpgradeServer(ctx, pd.Provider(pd.IsMuxed).GRPCProvider)
60+
if err != nil {
61+
return nil, err
6162
}
6263

63-
muxServer, err := tf5muxserver.NewMuxServer(ctx, providers...)
64+
muxServer, err := tf6muxserver.NewMuxServer(
65+
ctx,
66+
providerserver.NewProtocol6(testAccProvider),
67+
func() tfprotov6.ProviderServer { return upgradedSdkServer },
68+
)
6469
if err != nil {
6570
return nil, err
6671
}

pagerdutyplugin/resource_pagerduty_business_service_test.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ func TestAccPagerDutyBusinessService_Basic(t *testing.T) {
2222

2323
resource.Test(t, resource.TestCase{
2424
PreCheck: func() { testAccPreCheck(t) },
25-
ProtoV5ProviderFactories: testAccProtoV5ProviderFactories(),
25+
ProtoV6ProviderFactories: testAccProtoV6ProviderFactories(),
2626
CheckDestroy: testAccCheckPagerDutyBusinessServiceDestroy,
2727
Steps: []resource.TestStep{
2828
{
@@ -58,7 +58,7 @@ func TestAccPagerDutyBusinessService_WithTeam(t *testing.T) {
5858

5959
resource.Test(t, resource.TestCase{
6060
PreCheck: func() { testAccPreCheck(t) },
61-
ProtoV5ProviderFactories: testAccProtoV5ProviderFactories(),
61+
ProtoV6ProviderFactories: testAccProtoV6ProviderFactories(),
6262
CheckDestroy: testAccCheckPagerDutyBusinessServiceDestroy,
6363
Steps: []resource.TestStep{
6464
{
@@ -98,7 +98,7 @@ func TestAccPagerDutyBusinessService_SDKv2Compatibility(t *testing.T) {
9898
),
9999
},
100100
{
101-
ProtoV5ProviderFactories: testAccProtoV5ProviderFactories(),
101+
ProtoV6ProviderFactories: testAccProtoV6ProviderFactories(),
102102
Config: commonConfig,
103103
ConfigPlanChecks: resource.ConfigPlanChecks{PreApply: []plancheck.PlanCheck{plancheck.ExpectEmptyPlan()}},
104104
},

0 commit comments

Comments
 (0)