Skip to content

Commit 4ac9ebe

Browse files
Tanchwankvuong
authored andcommitted
fixed import path for pluginfw migrate util file, added read and create methods
1 parent 3feb120 commit 4ac9ebe

File tree

4 files changed

+62
-68
lines changed

4 files changed

+62
-68
lines changed

go.mod

Lines changed: 5 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -25,25 +25,20 @@ require (
2525
cloud.google.com/go/auth v0.4.2 // indirect
2626
cloud.google.com/go/auth/oauth2adapt v0.2.2 // indirect
2727
cloud.google.com/go/compute/metadata v0.5.2 // indirect
28-
github.com/BurntSushi/toml v1.4.1-0.20240526193622-a339e1f7089c // indirect
2928
github.com/ProtonMail/go-crypto v1.1.3 // indirect
3029
github.com/agext/levenshtein v1.2.3 // indirect
3130
github.com/apparentlymart/go-textseg/v15 v15.0.0 // indirect
32-
github.com/bitfield/gotestdox v0.2.2 // indirect
3331
github.com/cloudflare/circl v1.3.7 // indirect
3432
github.com/davecgh/go-spew v1.1.1 // indirect
35-
github.com/dnephin/pflag v1.0.7 // indirect
3633
github.com/fatih/color v1.17.0 // indirect
3734
github.com/felixge/httpsnoop v1.0.4 // indirect
38-
github.com/fsnotify/fsnotify v1.8.0 // indirect
3935
github.com/go-logr/logr v1.4.2 // indirect
4036
github.com/go-logr/stdr v1.2.2 // indirect
4137
github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect
4238
github.com/golang/protobuf v1.5.4 // indirect
4339
github.com/google/go-cmp v0.7.0 // indirect
4440
github.com/google/go-querystring v1.1.0 // indirect
4541
github.com/google/s2a-go v0.1.7 // indirect
46-
github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 // indirect
4742
github.com/google/uuid v1.6.0 // indirect
4843
github.com/googleapis/enterprise-certificate-proxy v0.3.2 // indirect
4944
github.com/hashicorp/errwrap v1.1.0 // indirect
@@ -81,13 +76,11 @@ require (
8176
go.opentelemetry.io/otel/metric v1.31.0 // indirect
8277
go.opentelemetry.io/otel/trace v1.31.0 // indirect
8378
golang.org/x/crypto v0.36.0 // indirect
84-
golang.org/x/exp/typeparams v0.0.0-20231108232855-2478ac86f678 // indirect
8579
golang.org/x/mod v0.24.0 // indirect
8680
golang.org/x/net v0.38.0 // indirect
8781
golang.org/x/oauth2 v0.23.0 // indirect
8882
golang.org/x/sync v0.12.0 // indirect
8983
golang.org/x/sys v0.31.0 // indirect
90-
golang.org/x/term v0.30.0 // indirect
9184
golang.org/x/text v0.23.0 // indirect
9285
golang.org/x/time v0.5.0 // indirect
9386
golang.org/x/tools v0.31.0 // indirect
@@ -98,12 +91,10 @@ require (
9891
google.golang.org/protobuf v1.36.3 // indirect
9992
gopkg.in/ini.v1 v1.67.0 // indirect
10093
gopkg.in/yaml.v3 v3.0.1 // indirect
101-
gotest.tools/gotestsum v1.12.1 // indirect
102-
honnef.co/go/tools v0.6.0 // indirect
10394
)
10495

105-
tool (
106-
golang.org/x/tools/cmd/goimports
107-
gotest.tools/gotestsum
108-
honnef.co/go/tools/cmd/staticcheck
109-
)
96+
//tool (
97+
//golang.org/x/tools/cmd/goimports
98+
//gotest.tools/gotestsum
99+
//honnef.co/go/tools/cmd/staticcheck
100+
//)

go.sum

Lines changed: 0 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,6 @@ cloud.google.com/go/compute/metadata v0.5.2/go.mod h1:C66sj2AluDcIqakBq/M8lw8/yb
88
dario.cat/mergo v1.0.0 h1:AGCNq9Evsj31mOgNPcLyXc+4PNABt905YmuqPYYpBWk=
99
dario.cat/mergo v1.0.0/go.mod h1:uNxQE+84aUszobStD9th8a29P2fMDhsBdgRYvZOxGmk=
1010
github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
11-
github.com/BurntSushi/toml v1.4.1-0.20240526193622-a339e1f7089c h1:pxW6RcqyfI9/kWtOwnv/G+AzdKuy2ZrqINhenH4HyNs=
12-
github.com/BurntSushi/toml v1.4.1-0.20240526193622-a339e1f7089c/go.mod h1:ukJfTF/6rtPPRCnwkur4qwRxa8vTRFBF0uk2lLoLwho=
1311
github.com/Microsoft/go-winio v0.6.1 h1:9/kr64B9VUZrLm5YYwbGtUJnMgqWVOdUAXu6Migciow=
1412
github.com/Microsoft/go-winio v0.6.1/go.mod h1:LRdKpFKfdobln8UmuiYcKPot9D2v6svN5+sAH+4kjUM=
1513
github.com/ProtonMail/go-crypto v1.1.3 h1:nRBOetoydLeUb4nHajyO2bKqMLfWQ/ZPwkXqXxPxCFk=
@@ -19,8 +17,6 @@ github.com/agext/levenshtein v1.2.3/go.mod h1:JEDfjyjHDjOF/1e4FlBE/PkbqA9OfWu2ki
1917
github.com/apparentlymart/go-textseg/v12 v12.0.0/go.mod h1:S/4uRK2UtaQttw1GenVJEynmyUenKwP++x/+DdGV/Ec=
2018
github.com/apparentlymart/go-textseg/v15 v15.0.0 h1:uYvfpb3DyLSCGWnctWKGj857c6ew1u1fNQOlOtuGxQY=
2119
github.com/apparentlymart/go-textseg/v15 v15.0.0/go.mod h1:K8XmNZdhEBkdlyDdvbmmsvpAG721bKi0joRfFdHIWJ4=
22-
github.com/bitfield/gotestdox v0.2.2 h1:x6RcPAbBbErKLnapz1QeAlf3ospg8efBsedU93CDsnE=
23-
github.com/bitfield/gotestdox v0.2.2/go.mod h1:D+gwtS0urjBrzguAkTM2wodsTQYFHdpx8eqRJ3N+9pY=
2420
github.com/bufbuild/protocompile v0.4.0 h1:LbFKd2XowZvQ/kajzguUp2DC9UEIQhIq77fZZlaQsNA=
2521
github.com/bufbuild/protocompile v0.4.0/go.mod h1:3v93+mbWn/v3xzN+31nwkJfrEpAUwp+BagBSZWx+TP8=
2622
github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU=
@@ -35,8 +31,6 @@ github.com/databricks/databricks-sdk-go v0.63.0/go.mod h1:xBtjeP9nq+6MgTewZW1Ecb
3531
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
3632
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
3733
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
38-
github.com/dnephin/pflag v1.0.7 h1:oxONGlWxhmUct0YzKTgrpQv9AUA1wtPBn7zuSjJqptk=
39-
github.com/dnephin/pflag v1.0.7/go.mod h1:uxE91IoWURlOiTUIA8Mq5ZZkAv3dPUfZNaT80Zm7OQE=
4034
github.com/emirpasic/gods v1.18.1 h1:FXtiHYKDGKCW2KzwZKx0iC0PQmdlorYgdFG9jPXJ1Bc=
4135
github.com/emirpasic/gods v1.18.1/go.mod h1:8tpGGwCnJ5H4r6BWwaV6OrWmMoPhUl5jm/FMNAnJvWQ=
4236
github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
@@ -48,8 +42,6 @@ github.com/fatih/color v1.17.0 h1:GlRw1BRJxkpqUCBKzKOw098ed57fEsKeNjpTe3cSjK4=
4842
github.com/fatih/color v1.17.0/go.mod h1:YZ7TlrGPkiz6ku9fK3TLD/pl3CpsiFyu8N92HLgmosI=
4943
github.com/felixge/httpsnoop v1.0.4 h1:NFTV2Zj1bL4mc9sqWACXbQFVBBg2W3GPvqp8/ESS2Wg=
5044
github.com/felixge/httpsnoop v1.0.4/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U=
51-
github.com/fsnotify/fsnotify v1.8.0 h1:dAwr6QBTBZIkG8roQaJjGof0pp0EeF+tNV7YBP3F/8M=
52-
github.com/fsnotify/fsnotify v1.8.0/go.mod h1:8jBTzvmWwFyi3Pb8djgCCO5IBqzKJ/Jwo8TRcHyHii0=
5345
github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376 h1:+zs/tPmkDkHx3U66DAb0lQFJrpS6731Oaa12ikc+DiI=
5446
github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376/go.mod h1:an3vInlBmSxCcxctByoQdvwPiA7DTK7jaaFDBTtu0ic=
5547
github.com/go-git/go-billy/v5 v5.6.0 h1:w2hPNtoehvJIxR00Vb4xX94qHQi/ApZfX+nBE2Cjio8=
@@ -98,8 +90,6 @@ github.com/google/go-querystring v1.1.0 h1:AnCroh3fv4ZBgVIf1Iwtovgjaw/GiKJo8M8yD
9890
github.com/google/go-querystring v1.1.0/go.mod h1:Kcdr2DB4koayq7X8pmAG4sNG59So17icRSOU623lUBU=
9991
github.com/google/s2a-go v0.1.7 h1:60BLSyTrOV4/haCDW4zb1guZItoSq8foHCXrAnjBo/o=
10092
github.com/google/s2a-go v0.1.7/go.mod h1:50CgR4k1jNlWBu4UfS4AcfhVe1r6pdZPygJ3R8F0Qdw=
101-
github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 h1:El6M4kTTCOh6aBiKaUGG7oYTSPP8MxqL4YI3kZKwcP4=
102-
github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510/go.mod h1:pupxD2MaaD3pAXIBCelhxNneeOaAeabZDe5s4K6zSpQ=
10393
github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
10494
github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0=
10595
github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
@@ -201,8 +191,6 @@ github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c/go.mod h1:7rwL4CYBLnjL
201191
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
202192
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
203193
github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
204-
github.com/rogpeppe/go-internal v1.11.0 h1:cWPaGQEPrBb5/AsnsZesgZZ9yb1OQ+GOISoDNXVBh4M=
205-
github.com/rogpeppe/go-internal v1.11.0/go.mod h1:ddIwULY96R17DhadqLgMfk9H9tvdUzkipdSkR5nkCZA=
206194
github.com/sergi/go-diff v1.3.2-0.20230802210424-5b0b94c5c0d3 h1:n661drycOFuPLCN3Uc8sB6B/s6Z4t2xvBgU1htSHuq8=
207195
github.com/sergi/go-diff v1.3.2-0.20230802210424-5b0b94c5c0d3/go.mod h1:A0bzQcvG0E7Rwjx0REVgAGH58e96+X0MeOfepqsbeW4=
208196
github.com/skeema/knownhosts v1.3.0 h1:AM+y0rI04VksttfwjkSTNQorvGqmwATnvnAHpSgc0LY=
@@ -256,8 +244,6 @@ golang.org/x/crypto v0.36.0/go.mod h1:Y4J0ReaxCR1IMaabaSMugxJES1EpwhBHhv2bDHklZv
256244
golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
257245
golang.org/x/exp v0.0.0-20240222234643-814bf88cf225 h1:LfspQV/FYTatPTr/3HzIcmiUFH7PGP+OQ6mgDYo3yuQ=
258246
golang.org/x/exp v0.0.0-20240222234643-814bf88cf225/go.mod h1:CxmFvTBINI24O/j8iY7H1xHzx2i4OsyguNBmN/uPtqc=
259-
golang.org/x/exp/typeparams v0.0.0-20231108232855-2478ac86f678 h1:1P7xPZEwZMoBoz0Yze5Nx2/4pxj6nw9ZqHWXqP0iRgQ=
260-
golang.org/x/exp/typeparams v0.0.0-20231108232855-2478ac86f678/go.mod h1:AbB0pIl9nAr9wVwH+Z2ZpaocVmF5I4GyWCDIsVjR0bk=
261247
golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
262248
golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU=
263249
golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=
@@ -366,11 +352,5 @@ gopkg.in/warnings.v0 v0.1.2/go.mod h1:jksf8JmL6Qr/oQM2OXTHunEvvTAsrWBLb6OOjuVWRN
366352
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
367353
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
368354
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
369-
gotest.tools/gotestsum v1.12.1 h1:dvcxFBTFR1QsQmrCQa4k/vDXow9altdYz4CjdW+XeBE=
370-
gotest.tools/gotestsum v1.12.1/go.mod h1:mwDmLbx9DIvr09dnAoGgQPLaSXszNpXpWo2bsQge5BE=
371-
gotest.tools/v3 v3.5.1 h1:EENdUnS3pdur5nybKYIh2Vfgc8IUNBjxDPSjtiJcOzU=
372-
gotest.tools/v3 v3.5.1/go.mod h1:isy3WKz7GK6uNw/sbHzfKBLvlvXwUyV06n6brMxxopU=
373355
honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
374356
honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
375-
honnef.co/go/tools v0.6.0 h1:TAODvD3knlq75WCp2nyGJtT4LeRV/o7NN9nYPeVJXf8=
376-
honnef.co/go/tools v0.6.0/go.mod h1:3puzxxljPCe8RGJX7BIy1plGbxEOZni5mR2aXe3/uk4=

internal/providers/pluginfw/pluginfw_rollout_utils.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ import (
2424
"github.com/databricks/terraform-provider-databricks/internal/providers/pluginfw/products/serving"
2525
"github.com/databricks/terraform-provider-databricks/internal/providers/pluginfw/products/sharing"
2626
"github.com/databricks/terraform-provider-databricks/internal/providers/pluginfw/products/volume"
27-
"github.com/databricks/terraform-provider-databricks/permission"
27+
"github.com/databricks/terraform-provider-databricks/internal/providers/pluginfw/products/permission"
2828
"github.com/hashicorp/terraform-plugin-framework/datasource"
2929
"github.com/hashicorp/terraform-plugin-framework/resource"
3030
)
@@ -47,7 +47,7 @@ var migratedDataSources = []func() datasource.DataSource{
4747
var pluginFwOnlyResources = append(
4848
[]func() resource.Resource{
4949
app.ResourceApp,
50-
permission.ResourcePermission,
50+
permission.NewPermissionResource,
5151
sharing.ResourceShare,
5252
},
5353
autoGeneratedResources...,
@@ -62,7 +62,7 @@ var pluginFwOnlyDataSources = append(
6262
catalog.DataSourceFunctions,
6363
dashboards.DataSourceDashboards,
6464
notificationdestinations.DataSourceNotificationDestinations,
65-
permission.DataSourcePermission,
65+
//permission.DataSourcePermission,
6666
registered_model.DataSourceRegisteredModel,
6767
registered_model.DataSourceRegisteredModelVersions,
6868
serving.DataSourceServingEndpoints,

internal/providers/pluginfw/products/permission/resource_permission.go

Lines changed: 54 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -42,32 +42,18 @@ func (r *permissionResource) Configure(ctx context.Context, req resource.Configu
4242
return
4343
}
4444

45-
var provider
46-
//TODO CHECK IF ACCOUNTID ATTRIBUTE IS SET IN PROVIDER CONFIG STRUCT,
47-
// SHOULD BE ABLE TO PULL IF IT'S SET OR NOT FROM THE GOLANG STRUCT ITSELF
48-
if != "" {
49-
accountClient, err := req.ProviderData.(*common.DatabricksClient).AccountClient()
50-
if err != nil {
51-
resp.Diagnostics.AddError(
52-
//TODO ADD ERROR MESSAGE IN LINE WITH PROVIDER
53-
"Unable to configure the Databricks client",
54-
fmt.Sprintf("Expected *common.DatabricksClient, got %T", req.ProviderData),
55-
)
56-
r.client = accountClient
57-
}
58-
59-
} else {
60-
workspaceClient, err := req.ProviderData.(*common.DatabricksClient).WorkspaceClient()
61-
if err != nil {
62-
resp.Diagnostics.AddError(
63-
//TODO ADD ERROR MESSAGE IN LINE WITH Provider
64-
"Unable to configure the Databricks client",
65-
fmt.Sprintf("Expected *common.DatabricksClient, got %T", req.ProviderData),
66-
)
67-
68-
r.client = workspaceClient
69-
}
45+
46+
workspaceClient, err := req.ProviderData.(*common.DatabricksClient).WorkspaceClient()
47+
if err != nil {
48+
resp.Diagnostics.AddError(
49+
//TODO ADD ERROR MESSAGE IN LINE WITH Provider
50+
"Unable to configure the Databricks client",
51+
fmt.Sprintf("Expected *common.DatabricksClient, got %T", req.ProviderData),
52+
)
53+
7054
}
55+
56+
r.client = workspaceClient
7157
}
7258

7359
func (r *permissionResource) Metadata(ctx context.Context, req resource.MetadataRequest, resp *resource.MetadataResponse) {
@@ -118,23 +104,60 @@ func (r *permissionResource) Create(ctx context.Context, req resource.CreateRequ
118104
for _, acl := range plan.AccessControlList {
119105
acls = append(acls, iam.AccessControlRequest{
120106
ServicePrincipalName: acl.ServicePrincipalName,
121-
GroupName: acl.GroupName,
122-
UserName: acl.UserName,
123-
PermissionLevel: acl.PermissionLevel,
107+
GroupName: types.StringValue(acl.GroupName),
108+
UserName: types.StringValue(acl.UserName),
109+
PermissionLevel: types.StringValue(acl.PermissionLevel),
124110
})
125111
}
126112

127113
// create the permission
128-
acl, err := r.client.Update.(plan.ObjectID, iam.PermissionsRequest{
129-
RequestObjectType: plan.ObjectID,
130-
RequestObjectType: plan.ObjectType,
114+
acl, err := r.client.Set.(plan.ObjectID, iam.PermissionsRequest{
115+
RequestObjectId: types.StringValue(plan.ObjectID),
116+
RequestObjectType: types.StringValue(plan.ObjectType),
131117
AccessControlList: acls,
132118
})
133119

120+
plan.LastUpdated = types.StringValue(time.Now().Format(time.RFC850))
121+
122+
// Set state to fully populated data
123+
diags = resp.State.Set(ctx, plan)
124+
resp.Diagnostics.Append(diags...)
125+
if resp.Diagnostics.HasError() {
126+
return
127+
}
134128
}
135129

136130
func (r *permissionResource) Read(ctx context.Context, req resource.ReadRequest, resp *resource.ReadResponse) {
137131
ctx = pluginfwcontext.SetUserAgentInResourceContext(ctx, resourceName)
132+
133+
// Get Current State
134+
var state permissionResourceModel
135+
diags := req.State.Get(ctx, &state)
136+
resp.Diagnostics.Append(diags...)
137+
if resp.Diagnostics.HasError() {
138+
return
139+
}
140+
141+
//Get refreshed acls from API
142+
acl, err := r.client.Get(ctx, state.ObjectID)
143+
if err != nil {
144+
resp.Diagnostics.AddError(
145+
"Failed to get permission",
146+
"Unable to read permission"+state.ObjectID.ValueString()": "+err.Error(),
147+
)
148+
return
149+
}
150+
151+
//Overwrite data with refreshed state
152+
state.AccessControlList = []permissionAccessControlListModel{}
153+
154+
//Set refreshed State
155+
diags = resp.State.Set(ctx, state)
156+
resp.Diagnostics.Append(diags...)
157+
if resp.Diagnostics.HasError() {
158+
return
159+
}
160+
138161
}
139162

140163
func (r *permissionResource) Update(ctx context.Context, req resource.UpdateRequest, resp *resource.UpdateResponse) {

0 commit comments

Comments
 (0)