databricks-cli/bundle
shreyas-goenka 7beb0fb8b5
Add validation mutator for volume `artifact_path` (#2050)
## Changes
This PR:
1. Incrementally improves the error messages shown to the user when the
volume they are referring to in `workspace.artifact_path` does not
exist.
2. Performs this validation in both `bundle validate` and `bundle
deploy` compared to before on just deployments.
3. It runs "fast" validations on `bundle deploy`, which earlier were
only run on `bundle validate`.


## Tests
Unit tests and manually. Also, existing integration tests provide
coverage (`TestUploadArtifactToVolumeNotYetDeployed`,
`TestUploadArtifactFileToVolumeThatDoesNotExist`)

Examples:
```
.venv➜  bundle-playground git:(master) ✗ cli bundle validate
Error: cannot access volume capital.whatever.my_volume: User does not have READ VOLUME on Volume 'capital.whatever.my_volume'.
  at workspace.artifact_path
  in databricks.yml:7:18
```

and

```
.venv➜  bundle-playground git:(master) ✗ cli bundle validate
Error: volume capital.whatever.foobar does not exist
  at workspace.artifact_path
     resources.volumes.foo
  in databricks.yml:7:18
     databricks.yml:12:7

You are using a volume in your artifact_path that is managed by
this bundle but which has not been deployed yet. Please first deploy
the volume using 'bundle deploy' and then switch over to using it in
the artifact_path.
```
2025-01-02 17:23:15 +05:30
..
artifacts Fix lost diags across different mutators (#2057) 2024-12-31 14:01:45 +00:00
config Add validation mutator for volume `artifact_path` (#2050) 2025-01-02 17:23:15 +05:30
deploy Enable testifylint and fix the issues (#2065) 2025-01-02 12:03:41 +01:00
env Remove support for DATABRICKS_BUNDLE_INCLUDES (#1317) 2024-03-27 10:13:54 +00:00
internal Enable testifylint and fix the issues (#2065) 2025-01-02 12:03:41 +01:00
libraries Add validation mutator for volume `artifact_path` (#2050) 2025-01-02 17:23:15 +05:30
metadata Make `file_path` and `artifact_path` fields consistent with json tag (#987) 2023-11-15 13:37:26 +00:00
paths Fixed adding /Workspace prefix for resource paths (#1866) 2024-10-30 17:34:11 +00:00
permissions Enable testifylint and fix the issues (#2065) 2025-01-02 12:03:41 +01:00
phases Enable gofumpt and goimports in golangci-lint (#1999) 2024-12-12 10:28:42 +01:00
render Enable gofumpt and goimports in golangci-lint (#1999) 2024-12-12 10:28:42 +01:00
resources Fix segfault in bundle summary command (#1937) 2024-11-28 12:27:24 +00:00
run Enable testifylint and fix the issues (#2065) 2025-01-02 12:03:41 +01:00
schema fix: Empty schema fields in OpenAPI spec (#2045) 2024-12-23 12:08:01 +00:00
scripts Rename `RootPath` -> `BundleRootPath` (#1792) 2024-09-27 10:03:05 +00:00
tests Enable testifylint and fix the issues (#2065) 2025-01-02 12:03:41 +01:00
trampoline Enable gofumpt and goimports in golangci-lint (#1999) 2024-12-12 10:28:42 +01:00
bundle.go Enable gofumpt and goimports in golangci-lint (#1999) 2024-12-12 10:28:42 +01:00
bundle_read_only.go Properly read Git metadata when running inside workspace (#1945) 2024-12-05 10:13:13 +00:00
bundle_test.go Enable testifylint and fix the issues (#2065) 2025-01-02 12:03:41 +01:00
context.go Rename variable `bundle -> b` (#989) 2023-11-15 14:03:36 +00:00
context_test.go Enable testifylint and fix the issues (#2065) 2025-01-02 12:03:41 +01:00
deferred.go Enable gofumpt and goimports in golangci-lint (#1999) 2024-12-12 10:28:42 +01:00
deferred_test.go Enable 'govet' linter; expand log/diag with non-f functions (#1996) 2024-12-11 16:42:03 +00:00
if.go Return early in bundle destroy if no deployment exists (#1581) 2024-07-09 15:08:38 +00:00
if_test.go Return early in bundle destroy if no deployment exists (#1581) 2024-07-09 15:08:38 +00:00
log_string.go Return `diag.Diagnostics` from mutators (#1305) 2024-03-25 14:18:47 +00:00
mutator.go Return `diag.Diagnostics` from mutators (#1305) 2024-03-25 14:18:47 +00:00
mutator_read_only.go Added validate mutator to surface additional bundle warnings (#1352) 2024-04-18 15:13:16 +00:00
mutator_test.go Return `diag.Diagnostics` from mutators (#1305) 2024-03-25 14:18:47 +00:00
parallel.go Added validate mutator to surface additional bundle warnings (#1352) 2024-04-18 15:13:16 +00:00
parallel_test.go Fix flaky tests for the parallel mutator (#1426) 2024-05-13 12:16:43 +00:00
root.go Move folders package into libs (#1184) 2024-02-07 16:33:18 +00:00
root_test.go Enable gofumpt and goimports in golangci-lint (#1999) 2024-12-12 10:28:42 +01:00
seq.go Return `diag.Diagnostics` from mutators (#1305) 2024-03-25 14:18:47 +00:00
seq_test.go Return `diag.Diagnostics` from mutators (#1305) 2024-03-25 14:18:47 +00:00