Skip to content

Commit 579c529

Browse files
Haley Gaovsin12
authored andcommitted
BugFix - fix container repository RD
1 parent 4fb469a commit 579c529

File tree

8 files changed

+82
-12
lines changed

8 files changed

+82
-12
lines changed

examples/artifacts/Repositories/repository.tf

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ variable "user_ocid" {}
66
variable "fingerprint" {}
77
variable "private_key_path" {}
88
variable "region" {}
9-
variable "compartment_id" {}
9+
variable "compartment_ocid" {}
1010

1111
provider "oci" {
1212
tenancy_ocid = var.tenancy_ocid
@@ -18,7 +18,7 @@ provider "oci" {
1818

1919
resource "oci_artifacts_repository" "test_repository" {
2020
#Required
21-
compartment_id = var.compartment_id
21+
compartment_id = var.compartment_ocid
2222
is_immutable = false
2323
repository_type = "GENERIC"
2424
}
@@ -48,7 +48,7 @@ resource "oci_artifacts_generic_artifact" "test_artifact_by_source" {
4848

4949
data "oci_artifacts_repositories" "test_repositories" {
5050
#Required
51-
compartment_id = var.compartment_id
51+
compartment_id = var.compartment_ocid
5252
state = "AVAILABLE"
5353
}
5454

internal/integrationtest/artifacts_container_configuration_test.go

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,8 @@ import (
1818
)
1919

2020
var (
21+
ArtifactsContainerConfigurationRequiredOnlyResource = ArtifactsContainerConfigurationResourceDependencies + acctest.GenerateResourceFromRepresentationMap("oci_artifacts_container_configuration", "test_container_configuration", acctest.Required, acctest.Create, ArtifactscontainerConfigurationRepresentation)
22+
2123
ArtifactsContainerConfigurationResourceConfig = ArtifactsContainerConfigurationResourceDependencies +
2224
acctest.GenerateResourceFromRepresentationMap("oci_artifacts_container_configuration", "test_container_configuration", acctest.Optional, acctest.Update, ArtifactscontainerConfigurationRepresentation)
2325

@@ -104,5 +106,15 @@ func TestArtifactsContainerConfigurationResource_basic(t *testing.T) {
104106
resource.TestCheckResourceAttrSet(singularDatasourceName, "namespace"),
105107
),
106108
},
109+
// verify resource import
110+
{
111+
Config: config + ArtifactsContainerConfigurationRequiredOnlyResource,
112+
ImportState: true,
113+
ImportStateVerify: true,
114+
ImportStateVerifyIgnore: []string{
115+
"compartment_id",
116+
},
117+
ResourceName: resourceName,
118+
},
107119
})
108120
}

internal/integrationtest/artifacts_generic_artifact_test.go

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,8 @@ import (
2525
)
2626

2727
var (
28+
ArtifactsGenericArtifactRequiredOnlyResource = ArtifactsGenericArtifactResourceDependencies + acctest.GenerateResourceFromRepresentationMap("oci_artifacts_generic_artifact", "test_generic_artifact", acctest.Required, acctest.Create, ArtifactsGenericArtifactRepresentation)
29+
2830
ArtifactsGenericArtifactResourceConfig = ArtifactsGenericArtifactResourceDependencies +
2931
acctest.GenerateResourceFromRepresentationMap("oci_artifacts_generic_artifact", "test_generic_artifact", acctest.Optional, acctest.Update, ArtifactsGenericArtifactRepresentation)
3032

@@ -159,6 +161,14 @@ func TestArtifactsGenericArtifactResource_basic(t *testing.T) {
159161
resource.TestCheckResourceAttrSet(singularDatasourceName, "version"),
160162
),
161163
},
164+
// verify resource import
165+
{
166+
Config: config + ArtifactsGenericArtifactRequiredOnlyResource,
167+
ImportState: true,
168+
ImportStateVerify: true,
169+
ImportStateVerifyIgnore: []string{"artifact_id"},
170+
ResourceName: resourceName,
171+
},
162172
})
163173
}
164174

internal/service/artifacts/artifacts_container_configuration_resource.go

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@ package artifacts
55

66
import (
77
"context"
8-
98
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
109

1110
oci_artifacts "github.com/oracle/oci-go-sdk/v65/artifacts"
@@ -16,6 +15,9 @@ import (
1615

1716
func ArtifactsContainerConfigurationResource() *schema.Resource {
1817
return &schema.Resource{
18+
Importer: &schema.ResourceImporter{
19+
State: schema.ImportStatePassthrough,
20+
},
1921
Timeouts: tfresource.DefaultTimeout,
2022
Create: createArtifactsContainerConfiguration,
2123
Read: readArtifactsContainerConfiguration,
@@ -80,6 +82,7 @@ type ArtifactsContainerConfigurationResourceCrud struct {
8082

8183
func (s *ArtifactsContainerConfigurationResourceCrud) ID() string {
8284
return s.D.Get("compartment_id").(string)
85+
//return GetContainerConfigurationCompositeId(s.D.Get("compartment_id").(string))
8386
}
8487

8588
func (s *ArtifactsContainerConfigurationResourceCrud) Create() error {
@@ -112,6 +115,9 @@ func (s *ArtifactsContainerConfigurationResourceCrud) Get() error {
112115
if compartmentId, ok := s.D.GetOkExists("compartment_id"); ok {
113116
tmp := compartmentId.(string)
114117
request.CompartmentId = &tmp
118+
} else {
119+
tmp := s.D.Id()
120+
request.CompartmentId = &tmp
115121
}
116122

117123
request.RequestMetadata.RetryPolicy = tfresource.GetRetryPolicy(s.DisableNotFoundRetries, "artifacts")

internal/service/artifacts/artifacts_export.go

Lines changed: 33 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import (
1111
func init() {
1212
exportArtifactsContainerRepositoryHints.GetIdFn = getArtifactsContainerRepositoryId
1313
exportArtifactsContainerImageSignatureHints.GetIdFn = getArtifactsContainerImageSignatureId
14+
exportArtifactsGenericArtifactHints.GetIdFn = getArtifactsGenericArtifactId
1415
exportArtifactsRepositoryHints.GetIdFn = getArtifactsRepositoryId
1516
tf_export.RegisterCompartmentGraphs("artifacts", artifactsResourceGraph)
1617
}
@@ -26,8 +27,7 @@ func getArtifactsRepositoryId(resource *tf_export.OCIResource) (string, error) {
2627
}
2728

2829
func getArtifactsContainerRepositoryId(resource *tf_export.OCIResource) (string, error) {
29-
30-
repositoryId, ok := resource.SourceAttributes["repository_id"].(string)
30+
repositoryId, ok := resource.SourceAttributes["id"].(string)
3131
if !ok {
3232
return "", fmt.Errorf("[ERROR] unable to find repositoryId for Artifacts ContainerRepository")
3333
}
@@ -43,13 +43,22 @@ func getArtifactsContainerImageSignatureId(resource *tf_export.OCIResource) (str
4343
return imageSignatureId, nil
4444
}
4545

46+
func getArtifactsGenericArtifactId(resource *tf_export.OCIResource) (string, error) {
47+
48+
artifactId, ok := resource.SourceAttributes["id"].(string)
49+
if !ok {
50+
return "", fmt.Errorf("[ERROR] unable to find artifactId for Artifacts GenericArtifact")
51+
}
52+
return artifactId, nil
53+
}
54+
55+
// Hints for discovering and exporting this resource to configuration and state files
4656
var exportArtifactsContainerConfigurationHints = &tf_export.TerraformResourceHints{
4757
ResourceClass: "oci_artifacts_container_configuration",
4858
DatasourceClass: "oci_artifacts_container_configuration",
4959
ResourceAbbreviation: "container_configuration",
5060
}
5161

52-
// Hints for discovering and exporting this resource to configuration and state files
5362
var exportArtifactsContainerRepositoryHints = &tf_export.TerraformResourceHints{
5463
ResourceClass: "oci_artifacts_container_repository",
5564
DatasourceClass: "oci_artifacts_container_repositories",
@@ -83,10 +92,31 @@ var exportArtifactsRepositoryHints = &tf_export.TerraformResourceHints{
8392
},
8493
}
8594

95+
var exportArtifactsGenericArtifactHints = &tf_export.TerraformResourceHints{
96+
ResourceClass: "oci_artifacts_generic_artifact",
97+
DatasourceClass: "oci_artifacts_generic_artifacts",
98+
DatasourceItemsAttr: "generic_artifact_collection",
99+
IsDatasourceCollection: true,
100+
ResourceAbbreviation: "generic_artifact",
101+
RequireResourceRefresh: true,
102+
DiscoverableLifecycleStates: []string{
103+
string(oci_artifacts.GenericArtifactLifecycleStateAvailable),
104+
},
105+
}
106+
86107
var artifactsResourceGraph = tf_export.TerraformResourceGraph{
87108
"oci_identity_compartment": {
109+
{TerraformResourceHints: exportArtifactsContainerConfigurationHints},
88110
{TerraformResourceHints: exportArtifactsContainerRepositoryHints},
89111
{TerraformResourceHints: exportArtifactsContainerImageSignatureHints},
90112
{TerraformResourceHints: exportArtifactsRepositoryHints},
91113
},
114+
"oci_artifacts_repository": {
115+
{
116+
TerraformResourceHints: exportArtifactsGenericArtifactHints,
117+
DatasourceQueryParams: map[string]string{
118+
"repository_id": "id",
119+
},
120+
},
121+
},
92122
}

internal/service/artifacts/artifacts_generic_artifact_resource.go

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,9 @@ import (
1717

1818
func ArtifactsGenericArtifactResource() *schema.Resource {
1919
return &schema.Resource{
20+
Importer: &schema.ResourceImporter{
21+
State: schema.ImportStatePassthrough,
22+
},
2023
Timeouts: tfresource.DefaultTimeout,
2124
Create: createArtifactsGenericArtifact,
2225
Read: readArtifactsGenericArtifact,
@@ -189,6 +192,9 @@ func (s *ArtifactsGenericArtifactResourceCrud) Get() error {
189192
if artifactId, ok := s.D.GetOkExists("artifact_id"); ok {
190193
tmp := artifactId.(string)
191194
request.ArtifactId = &tmp
195+
} else {
196+
tmp := s.D.Id()
197+
request.ArtifactId = &tmp
192198
}
193199

194200
request.RequestMetadata.RetryPolicy = tfresource.GetRetryPolicy(s.DisableNotFoundRetries, "artifacts")
@@ -248,6 +254,9 @@ func (s *ArtifactsGenericArtifactResourceCrud) Delete() error {
248254
}
249255

250256
func (s *ArtifactsGenericArtifactResourceCrud) SetData() error {
257+
if s.Res.Id != nil {
258+
s.D.Set("artifact_id", *s.Res.Id)
259+
}
251260

252261
if s.Res.ArtifactPath != nil {
253262
s.D.Set("artifact_path", *s.Res.ArtifactPath)
@@ -291,7 +300,6 @@ func (s *ArtifactsGenericArtifactResourceCrud) SetData() error {
291300

292301
return nil
293302
}
294-
295303
func GenericArtifactSummaryToMap(obj oci_artifacts.GenericArtifactSummary) map[string]interface{} {
296304
result := map[string]interface{}{}
297305

website/docs/guides/resource_discovery.html.markdown

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -385,9 +385,11 @@ apm_synthetics
385385

386386
artifacts
387387

388+
* oci\_artifacts\_container\_configuration
388389
* oci\_artifacts\_container\_repository
389390
* oci\_artifacts\_container\_image\_signature
390391
* oci\_artifacts\_repository
392+
* oci\_artifacts\_generic\_artifact
391393

392394
auto_scaling
393395

@@ -601,10 +603,8 @@ dataflow
601603
* oci\_dataflow\_run\_statement
602604

603605
dataintegration
604-
606+
605607
* oci\_dataintegration\_workspace
606-
* oci\_dataintegration\_workspace\_project
607-
* oci\_dataintegration\_workspace\_folder
608608

609609
datascience
610610

website/docs/r/artifacts_generic_artifact.html.markdown

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,4 +64,8 @@ The `timeouts` block allows you to specify [timeouts](https://registry.terraform
6464

6565
## Import
6666

67-
Import is not supported for this resource.
67+
GenericArtifacts can be imported using the `id`, e.g.
68+
69+
```
70+
$ terraform import oci_artifacts_generic_artifact.test_generic_artifact "generic/artifacts/{artifactId}"
71+
```

0 commit comments

Comments
 (0)