Skip to content

Commit ef47cfa

Browse files
authored
acc: fix permissions empty-list test that never exercised permissions: [] (#6021)
The "Set permissions: []" step never tested an empty list, due to two independent bugs. The `# permissions: []` line was indented one level too deep, so uncommenting it attached `permissions: []` as a field inside an ACL entry rather than as a top-level key (`unknown field: permissions`). And `grep -v '(PERMISSIONS|DELETE_ONE)'` used a basic regex that matched the alternation literally and stripped nothing, so the original permissions were never removed. ## Why Confirms that `permissions: []` produces the same plan and requests as removing the permissions block entirely, for both engines.
1 parent 04eca4d commit ef47cfa

9 files changed

Lines changed: 26 additions & 39 deletions

File tree

acceptance/bundle/resources/permissions/jobs/update/databricks.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,4 +15,4 @@ resources:
1515
user_name: viewer@example.com # PERMISSIONS
1616
- level: CAN_MANAGE # DELETE_ONE
1717
group_name: data-team # DELETE_ONE
18-
# permissions: [] # EXPLICIT_EMPTY
18+
# permissions: [] # EXPLICIT_EMPTY

acceptance/bundle/resources/permissions/jobs/update/out.plan_set_empty.direct.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@
7878
"label": "${resources.jobs.job_with_permissions.id}"
7979
}
8080
],
81-
"action": "skip",
81+
"action": "delete",
8282
"remote_state": {
8383
"object_id": "/jobs/[JOB_WITH_PERMISSIONS_ID]",
8484
"__embed__": [

acceptance/bundle/resources/permissions/jobs/update/out.plan_set_empty.terraform.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
"action": "skip"
66
},
77
"resources.jobs.job_with_permissions.permissions": {
8-
"action": "skip"
8+
"action": "delete"
99
}
1010
}
1111
}

acceptance/bundle/resources/permissions/jobs/update/out.requests_destroy.terraform.json

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,3 @@
1-
{
2-
"method": "PUT",
3-
"path": "/api/2.0/permissions/jobs/[JOB_WITH_PERMISSIONS_ID]",
4-
"body": {
5-
"access_control_list": [
6-
{
7-
"permission_level": "IS_OWNER",
8-
"user_name": "[USERNAME]"
9-
}
10-
]
11-
}
12-
}
131
{
142
"method": "POST",
153
"path": "/api/2.2/jobs/delete",
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
{
2+
"method": "PUT",
3+
"path": "/api/2.0/permissions/jobs/[JOB_WITH_PERMISSIONS_ID]",
4+
"body": {
5+
"access_control_list": [
6+
{
7+
"permission_level": "IS_OWNER",
8+
"user_name": "[USERNAME]"
9+
}
10+
]
11+
}
12+
}

acceptance/bundle/resources/permissions/jobs/update/output.txt

Lines changed: 1 addition & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -127,7 +127,7 @@ Plan: 0 to add, 0 to change, 0 to delete, 1 unchanged
127127
- user_name: viewer@example.com # PERMISSIONS
128128
- - level: CAN_MANAGE # DELETE_ONE
129129
- group_name: data-team # DELETE_ONE
130-
# permissions: [] # EXPLICIT_EMPTY
130+
# permissions: [] # EXPLICIT_EMPTY
131131

132132
>>> [CLI] bundle plan -o json
133133

@@ -145,16 +145,8 @@ Plan: 0 to add, 0 to change, 0 to delete, 2 unchanged
145145
=== Set permissions: []
146146

147147
>>> [CLI] bundle plan -o json
148-
Warning: unknown field: permissions
149-
at resources.jobs.job_with_permissions.permissions[1]
150-
in databricks.yml:18:11
151-
152148

153149
>>> [CLI] bundle deploy
154-
Warning: unknown field: permissions
155-
at resources.jobs.job_with_permissions.permissions[1]
156-
in databricks.yml:18:11
157-
158150
Uploading bundle files to /Workspace/Users/[USERNAME]/.bundle/jobs-permissions-test/default/files...
159151
Deploying resources...
160152
Updating deployment state...
@@ -163,10 +155,6 @@ Deployment complete!
163155
>>> print_requests.py //jobs/
164156

165157
>>> [CLI] bundle destroy --auto-approve
166-
Warning: unknown field: permissions
167-
at resources.jobs.job_with_permissions.permissions[1]
168-
in databricks.yml:18:11
169-
170158
The following resources will be deleted:
171159
delete resources.jobs.job_with_permissions
172160

acceptance/bundle/resources/permissions/jobs/update/script

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ trace print_requests.py //jobs/ > out.requests_restore_original.json
4242
trace $CLI bundle plan
4343

4444
title "Set permissions: []\n"
45-
grep -v '(PERMISSIONS|DELETE_ONE)' databricks.yml > tmp.yml && mv tmp.yml databricks.yml
45+
grep -vE '(PERMISSIONS|DELETE_ONE)' databricks.yml > tmp.yml && mv tmp.yml databricks.yml
4646
update_file.py databricks.yml '# permissions: [] # EXPLICIT_EMPTY' 'permissions: [] # EXPLICIT_EMPTY'
4747
trace $CLI bundle plan -o json > out.plan_set_empty.$DATABRICKS_BUNDLE_ENGINE.json
4848
trace $CLI bundle deploy

acceptance/bundle/resources/permissions/output.txt

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -257,11 +257,12 @@ DIFF jobs/update/out.requests_delete_all.direct.json
257257
+ "path": "/api/2.0/permissions/jobs/[JOB_WITH_PERMISSIONS_ID]"
258258
+ }
259259
+]
260-
DIFF jobs/update/out.requests_destroy.direct.json
261-
--- jobs/update/out.requests_destroy.direct.json
262-
+++ jobs/update/out.requests_destroy.terraform.json
263-
@@ -1,4 +1,16 @@
264-
[
260+
EXACT jobs/update/out.requests_destroy.direct.json
261+
DIFF jobs/update/out.requests_set_empty.direct.json
262+
--- jobs/update/out.requests_set_empty.direct.json
263+
+++ jobs/update/out.requests_set_empty.terraform.json
264+
@@ -1 +1,14 @@
265+
-[]+[
265266
+ {
266267
+ "body": {
267268
+ "access_control_list": [
@@ -273,11 +274,8 @@ DIFF jobs/update/out.requests_destroy.direct.json
273274
+ },
274275
+ "method": "PUT",
275276
+ "path": "/api/2.0/permissions/jobs/[JOB_WITH_PERMISSIONS_ID]"
276-
+ },
277-
{
278-
"body": {
279-
"job_id": "[JOB_WITH_PERMISSIONS_ID]"
280-
EXACT jobs/update/out.requests_set_empty.direct.json
277+
+ }
278+
+]
281279
MATCH jobs/viewers/out.requests.deploy.direct.json
282280
DIFF jobs/viewers/out.requests.destroy.direct.json
283281
--- jobs/viewers/out.requests.destroy.direct.json

yamlfmt.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ exclude:
33
- acceptance/selftest/bundleconfig # https://github.com/google/yamlfmt/issues/254
44
- acceptance/bundle/artifacts/nil_artifacts/databricks.yml # https://github.com/google/yamlfmt/issues/253
55
- bundle/direct/dresources/apitypes.yml # remove comments
6+
- acceptance/bundle/resources/permissions/jobs/update/databricks.yml # comment indentation is significant: it is uncommented into a top-level permissions: [] key
67
formatter:
78
type: basic
89
retain_line_breaks_single: true

0 commit comments

Comments
 (0)