Skip to content

Commit ab5dc63

Browse files
PriyankaMeharwadeDivya
authored andcommitted
Bug fix - Reverted oci_marketplace_listing_package_agreement back to resource from data source
1 parent c29885d commit ab5dc63

10 files changed

+77
-65
lines changed

examples/marketplace/main.tf

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -30,14 +30,14 @@ provider "oci" {
3030

3131
resource "oci_marketplace_accepted_agreement" "test_accepted_agreement" {
3232
#Required
33-
agreement_id = data.oci_marketplace_listing_package_agreement.test_listing_package_agreement.agreement_id
33+
agreement_id = oci_marketplace_listing_package_agreement.test_listing_package_agreement.agreement_id
3434
compartment_id = var.compartment_ocid
3535
listing_id = data.oci_marketplace_listing.test_listing.id
3636
package_version = data.oci_marketplace_listing.test_listing.default_package_version
37-
signature = data.oci_marketplace_listing_package_agreement.test_listing_package_agreement.signature
37+
signature = oci_marketplace_listing_package_agreement.test_listing_package_agreement.signature
3838
}
3939

40-
data "oci_marketplace_listing_package_agreement" "test_listing_package_agreement" {
40+
resource "oci_marketplace_listing_package_agreement" "test_listing_package_agreement" {
4141
#Required
4242
agreement_id = data.oci_marketplace_listing_package_agreements.test_listing_package_agreements.agreements[0].id
4343
listing_id = data.oci_marketplace_listing.test_listing.id

internal/integrationtest/marketplace_accepted_agreement_test.go

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -47,25 +47,21 @@ var (
4747
}
4848

4949
MarketplaceAcceptedAgreementRepresentation = map[string]interface{}{
50-
"agreement_id": acctest.Representation{RepType: acctest.Required, Create: `${data.oci_marketplace_listing_package_agreement.test_listing_package_agreement.agreement_id}`},
50+
"agreement_id": acctest.Representation{RepType: acctest.Required, Create: `${oci_marketplace_listing_package_agreement.test_listing_package_agreement.agreement_id}`},
5151
"compartment_id": acctest.Representation{RepType: acctest.Required, Create: `${var.compartment_id}`},
5252
"listing_id": acctest.Representation{RepType: acctest.Required, Create: `${data.oci_marketplace_listing.test_listing.id}`},
5353
"package_version": acctest.Representation{RepType: acctest.Required, Create: `${data.oci_marketplace_listing.test_listing.default_package_version}`},
54+
"defined_tags": acctest.Representation{RepType: acctest.Optional, Create: `${map("${oci_identity_tag_namespace.tag-namespace1.name}.${oci_identity_tag.tag1.name}", "value")}`, Update: `${map("${oci_identity_tag_namespace.tag-namespace1.name}.${oci_identity_tag.tag1.name}", "updatedValue")}`},
5455
"display_name": acctest.Representation{RepType: acctest.Optional, Create: `displayName`, Update: `displayName2`},
5556
"freeform_tags": acctest.Representation{RepType: acctest.Optional, Create: map[string]string{"Department": "Finance"}, Update: map[string]string{"Department": "Accounting"}},
56-
"signature": acctest.Representation{RepType: acctest.Required, Create: `${data.oci_marketplace_listing_package_agreement.test_listing_package_agreement.signature}`},
57-
"lifecycle": acctest.RepresentationGroup{RepType: acctest.Required, Group: MarketplaceAcceptedAgreementIgnoreChangesRepresentation},
58-
}
59-
60-
MarketplaceAcceptedAgreementIgnoreChangesRepresentation = map[string]interface{}{
61-
"ignore_changes": acctest.Representation{RepType: acctest.Required, Create: []string{`signature`}},
57+
"signature": acctest.Representation{RepType: acctest.Required, Create: `${oci_marketplace_listing_package_agreement.test_listing_package_agreement.signature}`},
6258
}
6359

6460
MarketplaceAcceptedAgreementResourceDependencies = DefinedTagsDependencies +
6561
acctest.GenerateDataSourceFromRepresentationMap("oci_marketplace_listings", "test_listings", acctest.Required, acctest.Create, MarketplaceMarketplaceListingDataSourceRepresentation) +
6662
acctest.GenerateDataSourceFromRepresentationMap("oci_marketplace_listing", "test_listing", acctest.Required, acctest.Create, MarketplaceMarketplaceListingSingularDataSourceRepresentation) +
67-
acctest.GenerateDataSourceFromRepresentationMap("oci_marketplace_listing_package_agreements", "test_listing_package_agreements", acctest.Required, acctest.Create, MarketplaceMarketplaceListingPackageAgreementsDataSourceRepresentation) +
68-
acctest.GenerateDataSourceFromRepresentationMap("oci_marketplace_listing_package_agreement", "test_listing_package_agreement", acctest.Required, acctest.Create, MarketplaceMarketplaceListingPackageAgreementDataSourceRepresentation)
63+
acctest.GenerateDataSourceFromRepresentationMap("oci_marketplace_listing_package_agreements", "test_listing_package_agreements", acctest.Required, acctest.Create, MarketplaceMarketplaceListingPackageAgreementDataSourceRepresentation) +
64+
acctest.GenerateResourceFromRepresentationMap("oci_marketplace_listing_package_agreement", "test_listing_package_agreement", acctest.Required, acctest.Create, MarketplaceListingPackageAgreementManagementRepresentation)
6965
)
7066

7167
// issue-routing-tag: marketplace/default

internal/integrationtest/marketplace_listing_package_agreement_test.go

Lines changed: 22 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -15,14 +15,14 @@ import (
1515
)
1616

1717
var (
18-
MarketplaceMarketplaceListingPackageAgreementDataSourceRepresentation = map[string]interface{}{
18+
MarketplaceListingPackageAgreementManagementRepresentation = map[string]interface{}{
1919
"agreement_id": acctest.Representation{RepType: acctest.Required, Create: `${data.oci_marketplace_listing_package_agreements.test_listing_package_agreements.agreements.0.id}`},
2020
"listing_id": acctest.Representation{RepType: acctest.Required, Create: `${data.oci_marketplace_listing.test_listing.id}`},
2121
"package_version": acctest.Representation{RepType: acctest.Required, Create: `${data.oci_marketplace_listing.test_listing.default_package_version}`},
2222
"compartment_id": acctest.Representation{RepType: acctest.Optional, Create: `${var.compartment_id}`},
2323
}
2424

25-
MarketplaceMarketplaceListingPackageAgreementsDataSourceRepresentation = map[string]interface{}{
25+
MarketplaceMarketplaceListingPackageAgreementDataSourceRepresentation = map[string]interface{}{
2626
"listing_id": acctest.Representation{RepType: acctest.Required, Create: `${data.oci_marketplace_listing.test_listing.id}`},
2727
"package_version": acctest.Representation{RepType: acctest.Required, Create: `${data.oci_marketplace_listing.test_listing.default_package_version}`},
2828
"compartment_id": acctest.Representation{RepType: acctest.Optional, Create: `${var.compartment_id}`},
@@ -42,42 +42,42 @@ func TestMarketplaceListingPackageAgreementResource_basic(t *testing.T) {
4242
compartmentId := utils.GetEnvSettingWithBlankDefault("compartment_ocid")
4343
compartmentIdVariableStr := fmt.Sprintf("variable \"compartment_id\" { default = \"%s\" }\n", compartmentId)
4444

45-
listDatasourceName := "data.oci_marketplace_listing_package_agreements.test_listing_package_agreements"
46-
getDatasourceName := "data.oci_marketplace_listing_package_agreement.test_listing_package_agreement"
45+
datasourceName := "data.oci_marketplace_listing_package_agreements.test_listing_package_agreements"
46+
resourceName := "oci_marketplace_listing_package_agreement.test_listing_package_agreement"
4747

4848
acctest.SaveConfigContent("", "", "", t)
4949

5050
acctest.ResourceTest(t, nil, []resource.TestStep{
51-
// verify get datasource
51+
// verify resource
5252
{
5353
Config: config +
54-
acctest.GenerateDataSourceFromRepresentationMap("oci_marketplace_listing_package_agreement", "test_listing_package_agreement", acctest.Required, acctest.Create, MarketplaceMarketplaceListingPackageAgreementDataSourceRepresentation) +
55-
acctest.GenerateDataSourceFromRepresentationMap("oci_marketplace_listing_package_agreements", "test_listing_package_agreements", acctest.Required, acctest.Create, MarketplaceMarketplaceListingPackageAgreementsDataSourceRepresentation) +
54+
acctest.GenerateResourceFromRepresentationMap("oci_marketplace_listing_package_agreement", "test_listing_package_agreement", acctest.Required, acctest.Create, MarketplaceListingPackageAgreementManagementRepresentation) +
55+
acctest.GenerateDataSourceFromRepresentationMap("oci_marketplace_listing_package_agreements", "test_listing_package_agreements", acctest.Required, acctest.Create, MarketplaceMarketplaceListingPackageAgreementDataSourceRepresentation) +
5656
compartmentIdVariableStr + MarketplaceListingPackageAgreementResourceConfig,
5757
Check: acctest.ComposeAggregateTestCheckFuncWrapper(
58-
resource.TestCheckResourceAttrSet(getDatasourceName, "agreement_id"),
59-
resource.TestCheckResourceAttrSet(getDatasourceName, "listing_id"),
60-
resource.TestCheckResourceAttrSet(getDatasourceName, "package_version"),
58+
resource.TestCheckResourceAttrSet(resourceName, "agreement_id"),
59+
resource.TestCheckResourceAttrSet(resourceName, "listing_id"),
60+
resource.TestCheckResourceAttrSet(resourceName, "package_version"),
6161

62-
resource.TestCheckResourceAttrSet(getDatasourceName, "content_url"),
63-
resource.TestCheckResourceAttrSet(getDatasourceName, "id"),
64-
resource.TestCheckResourceAttrSet(getDatasourceName, "prompt"),
65-
resource.TestCheckResourceAttrSet(getDatasourceName, "signature"),
62+
resource.TestCheckResourceAttrSet(resourceName, "content_url"),
63+
resource.TestCheckResourceAttrSet(resourceName, "id"),
64+
resource.TestCheckResourceAttrSet(resourceName, "prompt"),
65+
resource.TestCheckResourceAttrSet(resourceName, "signature"),
6666
),
6767
},
68-
// verify list datasource
68+
// verify datasource
6969
{
7070
Config: config +
71-
acctest.GenerateDataSourceFromRepresentationMap("oci_marketplace_listing_package_agreements", "test_listing_package_agreements", acctest.Required, acctest.Create, MarketplaceMarketplaceListingPackageAgreementsDataSourceRepresentation) +
71+
acctest.GenerateDataSourceFromRepresentationMap("oci_marketplace_listing_package_agreements", "test_listing_package_agreements", acctest.Required, acctest.Create, MarketplaceMarketplaceListingPackageAgreementDataSourceRepresentation) +
7272
compartmentIdVariableStr + MarketplaceListingPackageAgreementResourceConfig,
7373
Check: acctest.ComposeAggregateTestCheckFuncWrapper(
74-
resource.TestCheckResourceAttrSet(listDatasourceName, "listing_id"),
74+
resource.TestCheckResourceAttrSet(datasourceName, "listing_id"),
7575

76-
resource.TestCheckResourceAttrSet(listDatasourceName, "agreements.#"),
77-
resource.TestCheckResourceAttrSet(listDatasourceName, "agreements.0.author"),
78-
resource.TestCheckResourceAttrSet(listDatasourceName, "agreements.0.content_url"),
79-
resource.TestCheckResourceAttrSet(listDatasourceName, "agreements.0.id"),
80-
resource.TestCheckResourceAttrSet(listDatasourceName, "agreements.0.prompt"),
76+
resource.TestCheckResourceAttrSet(datasourceName, "agreements.#"),
77+
resource.TestCheckResourceAttrSet(datasourceName, "agreements.0.author"),
78+
resource.TestCheckResourceAttrSet(datasourceName, "agreements.0.content_url"),
79+
resource.TestCheckResourceAttrSet(datasourceName, "agreements.0.id"),
80+
resource.TestCheckResourceAttrSet(datasourceName, "agreements.0.prompt"),
8181
),
8282
},
8383
})

internal/service/marketplace/marketplace_export.go

Lines changed: 1 addition & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,11 @@ package marketplace
22

33
import (
44
oci_marketplace "github.com/oracle/oci-go-sdk/v65/marketplace"
5+
56
tf_export "github.com/oracle/terraform-provider-oci/internal/commonexport"
67
)
78

89
func init() {
9-
exportMarketplacePublicationHints.FindResourcesOverrideFn = findPublications
1010
tf_export.RegisterCompartmentGraphs("marketplace", marketplaceResourceGraph)
1111
}
1212

@@ -28,25 +28,12 @@ var exportMarketplacePublicationHints = &tf_export.TerraformResourceHints{
2828
ResourceAbbreviation: "publication",
2929
RequireResourceRefresh: true,
3030
DiscoverableLifecycleStates: []string{
31-
string(oci_marketplace.PublicationLifecycleStateCreating),
3231
string(oci_marketplace.PublicationLifecycleStateActive),
3332
},
3433
}
3534

3635
var marketplaceResourceGraph = tf_export.TerraformResourceGraph{
3736
"oci_identity_compartment": {
3837
{TerraformResourceHints: exportMarketplaceAcceptedAgreementHints},
39-
{TerraformResourceHints: exportMarketplacePublicationHints},
4038
},
4139
}
42-
43-
func findPublications(ctx *tf_export.ResourceDiscoveryContext, tfMeta *tf_export.TerraformResourceAssociation, parent *tf_export.OCIResource, resourceGraph *tf_export.TerraformResourceGraph) (resources []*tf_export.OCIResource, err error) {
44-
if tfMeta.DatasourceQueryParams == nil {
45-
tfMeta.DatasourceQueryParams = map[string]string{}
46-
}
47-
// Setting the "listing_type" field to the special value "COMMUNITY" will
48-
// result in terraform fetching community listings (i.e. publications)
49-
// when populating the "oci_marketplace_publications" data source
50-
tfMeta.DatasourceQueryParams["listing_type"] = "'COMMUNITY'"
51-
return tf_export.FindResourcesGeneric(ctx, tfMeta, parent, resourceGraph)
52-
}

internal/service/marketplace/marketplace_listing_package_agreement_data_source.go renamed to internal/service/marketplace/marketplace_listing_package_agreement_resource.go

Lines changed: 40 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -13,27 +13,33 @@ import (
1313
"github.com/oracle/terraform-provider-oci/internal/tfresource"
1414
)
1515

16-
func MarketplaceListingPackageAgreementDataSource() *schema.Resource {
16+
func MarketplaceListingPackageAgreementResource() *schema.Resource {
1717
return &schema.Resource{
18-
Read: readMarketplaceListingPackageAgreement,
18+
Create: createMarketplaceListingPackageAgreement,
19+
Read: readMarketplaceListingPackageAgreement,
20+
Delete: deleteMarketplaceListingPackageAgreement,
1921
Schema: map[string]*schema.Schema{
2022
"agreement_id": {
2123
Type: schema.TypeString,
2224
Required: true,
25+
ForceNew: true,
2326
},
2427
"listing_id": {
2528
Type: schema.TypeString,
2629
Required: true,
30+
ForceNew: true,
2731
},
2832
"package_version": {
2933
Type: schema.TypeString,
3034
Required: true,
35+
ForceNew: true,
3136
},
3237
// Optional
3338
"compartment_id": {
3439
Type: schema.TypeString,
3540
Optional: true,
3641
Computed: true,
42+
ForceNew: true,
3743
},
3844
// Computed
3945
"author": {
@@ -56,24 +62,39 @@ func MarketplaceListingPackageAgreementDataSource() *schema.Resource {
5662
}
5763
}
5864

65+
func createMarketplaceListingPackageAgreement(d *schema.ResourceData, m interface{}) error {
66+
sync := &MarketplaceListingPackageAgreementResourceCrud{}
67+
sync.D = d
68+
sync.Client = m.(*client.OracleClients).MarketplaceClient()
69+
return tfresource.CreateResource(d, sync)
70+
}
71+
5972
func readMarketplaceListingPackageAgreement(d *schema.ResourceData, m interface{}) error {
60-
sync := &MarketplaceListingPackageAgreementDataSourceCrud{}
73+
sync := &MarketplaceListingPackageAgreementResourceCrud{}
6174
sync.D = d
6275
sync.Client = m.(*client.OracleClients).MarketplaceClient()
6376
return tfresource.ReadResource(sync)
6477
}
6578

66-
type MarketplaceListingPackageAgreementDataSourceCrud struct {
67-
D *schema.ResourceData
68-
Client *oci_marketplace.MarketplaceClient
69-
Res *oci_marketplace.GetAgreementResponse
79+
func deleteMarketplaceListingPackageAgreement(d *schema.ResourceData, m interface{}) error {
80+
sync := &MarketplaceListingPackageAgreementResourceCrud{}
81+
sync.D = d
82+
sync.Client = m.(*client.OracleClients).MarketplaceClient()
83+
return tfresource.DeleteResource(d, sync)
84+
}
85+
86+
type MarketplaceListingPackageAgreementResourceCrud struct {
87+
tfresource.BaseCrud
88+
Client *oci_marketplace.MarketplaceClient
89+
Res *oci_marketplace.GetAgreementResponse
90+
DisableNotFoundRetries bool
7091
}
7192

72-
func (s *MarketplaceListingPackageAgreementDataSourceCrud) VoidState() {
73-
s.D.SetId("")
93+
func (s *MarketplaceListingPackageAgreementResourceCrud) ID() string {
94+
return *s.Res.Id
7495
}
7596

76-
func (s *MarketplaceListingPackageAgreementDataSourceCrud) Get() error {
97+
func (s *MarketplaceListingPackageAgreementResourceCrud) Create() error {
7798
request := oci_marketplace.GetAgreementRequest{}
7899

79100
if agreementId, ok := s.D.GetOkExists("agreement_id"); ok {
@@ -107,7 +128,15 @@ func (s *MarketplaceListingPackageAgreementDataSourceCrud) Get() error {
107128
return nil
108129
}
109130

110-
func (s *MarketplaceListingPackageAgreementDataSourceCrud) SetData() error {
131+
func (s *MarketplaceListingPackageAgreementResourceCrud) Get() error {
132+
return nil
133+
}
134+
135+
func (s *MarketplaceListingPackageAgreementResourceCrud) Delete() error {
136+
return nil
137+
}
138+
139+
func (s *MarketplaceListingPackageAgreementResourceCrud) SetData() error {
111140
if s.Res == nil {
112141
return nil
113142
}

internal/service/marketplace/register_datasource.go

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@ func RegisterDatasource() {
1212
tfresource.RegisterDatasource("oci_marketplace_listing", MarketplaceListingDataSource())
1313
tfresource.RegisterDatasource("oci_marketplace_listing_package", MarketplaceListingPackageDataSource())
1414
tfresource.RegisterDatasource("oci_marketplace_listing_package_agreements", MarketplaceListingPackageAgreementsDataSource())
15-
tfresource.RegisterDatasource("oci_marketplace_listing_package_agreement", MarketplaceListingPackageAgreementDataSource())
1615
tfresource.RegisterDatasource("oci_marketplace_listing_packages", MarketplaceListingPackagesDataSource())
1716
tfresource.RegisterDatasource("oci_marketplace_listing_taxes", MarketplaceListingTaxesDataSource())
1817
tfresource.RegisterDatasource("oci_marketplace_listings", MarketplaceListingsDataSource())

internal/service/marketplace/register_resource.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,4 +8,5 @@ import "github.com/oracle/terraform-provider-oci/internal/tfresource"
88
func RegisterResource() {
99
tfresource.RegisterResource("oci_marketplace_accepted_agreement", MarketplaceAcceptedAgreementResource())
1010
tfresource.RegisterResource("oci_marketplace_publication", MarketplacePublicationResource())
11+
tfresource.RegisterResource("oci_marketplace_listing_package_agreement", MarketplaceListingPackageAgreementResource())
1112
}

website/docs/d/marketplace_listing.html.markdown

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ data "oci_marketplace_listing" "test_listing" {
4343

4444
The following arguments are supported:
4545

46-
* `compartment_id` - (Optional) The unique identifier for the compartment. It is mandatory when using in government realms.
46+
* `compartment_id` - (Optional) The unique identifier for the compartment.
4747
* `listing_id` - (Required) The unique identifier for the listing.
4848

4949

website/docs/d/marketplace_listings.html.markdown

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ data "oci_marketplace_listings" "test_listings" {
5252
The following arguments are supported:
5353

5454
* `category` - (Optional) Name of the product category or categories. If you specify multiple categories, then Marketplace returns any listing with one or more matching categories.
55-
* `compartment_id` - (Optional) The unique identifier for the compartment. It is mandatory when using in government realms.
55+
* `compartment_id` - (Optional) The unique identifier for the compartment.
5656
* `image_id` - (Optional) The image identifier of the listing.
5757
* `is_featured` - (Optional) Indicates whether to show only featured listings. If this is set to `false` or is omitted, then all listings will be returned.
5858
* `listing_id` - (Optional) The unique identifier for the listing.

website/docs/d/marketplace_listing_package_agreement.html.markdown renamed to website/docs/r/marketplace_listing_package_agreement.html.markdown

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,16 +8,16 @@ description: |-
88
---
99

1010
# Data Source: oci_marketplace_listing_package_agreement_management
11-
This data source provides details about a specific Listing Package Agreement resource in Oracle Cloud Infrastructure Marketplace service.
11+
This resource provides details about a specific Listing Package Agreement resource in Oracle Cloud Infrastructure Marketplace service.
1212

13-
It can be used to retrieve the time-based signature of terms of use agreement for a package that can be used to
13+
This resource can be used to retrieve the time-based signature of terms of use agreement for a package that can be used to
1414
accept the agreement.
1515

1616

1717
## Example Usage
1818

1919
```hcl
20-
data "oci_marketplace_listing_package_agreement" "test_listing_package_agreement" {
20+
resource "oci_marketplace_listing_package_agreement" "test_listing_package_agreement" {
2121
#Required
2222
agreement_id = oci_marketplace_agreement.test_agreement.id
2323
listing_id = oci_marketplace_listing.test_listing.id

0 commit comments

Comments
 (0)