Skip to content

Commit 441eb42

Browse files
committed
add default project_id
1 parent b3de141 commit 441eb42

File tree

4 files changed

+551
-22
lines changed

4 files changed

+551
-22
lines changed

internal/services/tem/helpers.go

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,17 @@
11
package tem
22

33
import (
4+
"context"
45
"time"
56

67
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
8+
accountSDK "github.com/scaleway/scaleway-sdk-go/api/account/v3"
79
tem "github.com/scaleway/scaleway-sdk-go/api/tem/v1alpha1"
810
"github.com/scaleway/scaleway-sdk-go/scw"
911
"github.com/scaleway/terraform-provider-scaleway/v2/internal/locality/regional"
1012
"github.com/scaleway/terraform-provider-scaleway/v2/internal/meta"
13+
"github.com/scaleway/terraform-provider-scaleway/v2/internal/services/account"
14+
"github.com/scaleway/terraform-provider-scaleway/v2/internal/types"
1115
)
1216

1317
const (
@@ -39,3 +43,16 @@ func NewAPIWithRegionAndID(m interface{}, id string) (*tem.API, scw.Region, stri
3943

4044
return api, region, id, nil
4145
}
46+
47+
func getDefaultProjectID(ctx context.Context, m interface{}) (string, error) {
48+
accountAPI := account.NewProjectAPI(m)
49+
50+
res, err := accountAPI.ListProjects(&accountSDK.ProjectAPIListProjectsRequest{
51+
Name: types.ExpandStringPtr("default"),
52+
}, scw.WithContext(ctx))
53+
if err != nil {
54+
return "", err
55+
}
56+
57+
return res.Projects[0].ID, nil
58+
}

internal/services/tem/offer_subscription_data_source.go

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,16 @@ func DataSourceOfferSubscriptionRead(ctx context.Context, d *schema.ResourceData
7474
return diag.FromErr(err)
7575
}
7676

77-
projectID := d.Get("project_id").(string)
77+
var projectID string
78+
79+
if _, ok := d.GetOk("project_id"); !ok {
80+
projectID, err = getDefaultProjectID(ctx, m)
81+
if err != nil {
82+
return diag.FromErr(err)
83+
}
84+
} else {
85+
projectID = d.Get("project_id").(string)
86+
}
7887

7988
offer, err := api.ListOfferSubscriptions(&tem.ListOfferSubscriptionsRequest{
8089
Region: region,

internal/services/tem/offer_subscription_data_source_test.go

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package tem_test
22

33
import (
4+
"fmt"
45
"testing"
56

67
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
@@ -10,16 +11,28 @@ import (
1011
func TestAccDataSourceOfferSubscription_Basic(t *testing.T) {
1112
tt := acctest.NewTestTools(t)
1213
defer tt.Cleanup()
14+
orgID, orgIDExists := tt.Meta.ScwClient().GetDefaultOrganizationID()
15+
16+
if !orgIDExists {
17+
orgID = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
18+
}
1319

1420
resource.ParallelTest(t, resource.TestCase{
1521
PreCheck: func() { acctest.PreCheck(t) },
1622
ProviderFactories: tt.ProviderFactories,
1723
Steps: []resource.TestStep{
1824
{
19-
Config: `
25+
Config: fmt.Sprintf(`
26+
27+
data scaleway_account_project "project" {
28+
name = "default"
29+
organization_id = "%s"
30+
}
31+
2032
data "scaleway_tem_offer_subscription" "test" {
33+
project_id = data.scaleway_account_project.project.id
2134
}
22-
`,
35+
`, orgID),
2336
Check: resource.ComposeTestCheckFunc(
2437
resource.TestCheckResourceAttrSet("data.scaleway_tem_offer_subscription.test", "project_id"),
2538
resource.TestCheckResourceAttr("data.scaleway_tem_offer_subscription.test", "offer_name", "scale"),

0 commit comments

Comments
 (0)