Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Use filer.Filer to write template instantiation #1911

Merged
merged 4 commits into from
Nov 20, 2024
Merged

Conversation

pietern
Copy link
Contributor

@pietern pietern commented Nov 18, 2024

Changes

Prior to this change, the output directory was part of the renderer type and passed down to every file it produced. Every file knew its absolute destination path. This is incompatible with the use of a filer, where all operations are automatically anchored to some base path.

To make this compatible, this change updates:

  • the file type to only know its own path relative to the instantiation root,
  • the renderer type to no longer require or pass along the output directory,
  • the persistToDisk function to take a context and filer argument,
  • the filer.WriteMode to represent permission bits

Tests

  • Existing tests pass.
  • Manually confirmed template initialization works as expected.

@pietern pietern changed the title Template write filer Use filer.Filer to write template instantiation Nov 18, 2024
Copy link
Contributor

@shreyas-goenka shreyas-goenka left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks!

libs/filer/filer.go Show resolved Hide resolved
Base automatically changed from template-readfs to main November 20, 2024 09:37
@pietern pietern force-pushed the template-write-filer branch from cf84dec to ce5df8f Compare November 20, 2024 09:52
Copy link

If integration tests don't run automatically, an authorized user can run them manually by following the instructions below:

Trigger:
go/deco-tests-run/cli

Inputs:

  • PR number: 1911
  • Commit SHA: ce5df8f12e08605f82ce2fa6e22ce972a9dd7d71

Checks will be approved automatically on success.

@eng-dev-ecosystem-bot
Copy link
Collaborator

Test Details: go/deco-tests/11930891078

@pietern pietern merged commit 75b09ff into main Nov 20, 2024
9 checks passed
@pietern pietern deleted the template-write-filer branch November 20, 2024 10:11
@pietern
Copy link
Contributor Author

pietern commented Nov 20, 2024

The integration tests passed before the rebase, so skipping them now.

github-merge-queue bot pushed a commit that referenced this pull request Nov 20, 2024
## Changes

When running the CLI on Databricks Runtime (DBR), use the
extension-aware filer to write an instantiated template if the instance
path is located in the workspace filesystem.

Notebooks cannot be written through the workspace filesystem's FUSE
mount. As a result, this is the only method for initializing templates
that contain notebooks when running the CLI on DBR and writing to the
workspace filesystem.

Depends on #1910 and #1911.

Supersedes #1744.

## Tests

* Manually confirmed I can initialize a template with notebooks when
running the CLI from the web terminal.
pietern added a commit that referenced this pull request Nov 20, 2024
**Note:** the `bundle generate` command now uses the `.<resource-type>.yml`
sub-extension for the configuration files it writes. Existing configuration
files that do not use this sub-extension are renamed to include it.

Bundles:
 * Make `TableName` field part of quality monitor schema ([#1903](#1903)).
 * Do not prepend paths starting with ~ or variable reference ([#1905](#1905)).
 * Fix workspace extensions filer accidentally reading notebooks ([#1891](#1891)).
 * Fix template initialization when running on Databricks ([#1912](#1912)).
 * Source-linked deployments for bundles in the workspace ([#1884](#1884)).
 * Added integration test to deploy bundle to /Shared root path ([#1914](#1914)).
 * Update filenames used by bundle generate to use `.<resource-type>.yml` ([#1901](#1901)).

Internal:
 * Extract functionality to detect if the CLI is running on DBR ([#1889](#1889)).
 * Consolidate test helpers for `io/fs` ([#1906](#1906)).
 * Use `fs.FS` interface to read template ([#1910](#1910)).
 * Use `filer.Filer` to write template instantiation ([#1911](#1911)).
github-merge-queue bot pushed a commit that referenced this pull request Nov 20, 2024
**Note:** the `bundle generate` command now uses the
`.<resource-type>.yml`
sub-extension for the configuration files it writes. Existing
configuration
files that do not use this sub-extension are renamed to include it.

Bundles:
* Make `TableName` field part of quality monitor schema
([#1903](#1903)).
* Do not prepend paths starting with ~ or variable reference
([#1905](#1905)).
* Fix workspace extensions filer accidentally reading notebooks
([#1891](#1891)).
* Fix template initialization when running on Databricks
([#1912](#1912)).
* Source-linked deployments for bundles in the workspace
([#1884](#1884)).
* Added integration test to deploy bundle to /Shared root path
([#1914](#1914)).
* Update filenames used by bundle generate to use `.<resource-type>.yml`
([#1901](#1901)).

Internal:
* Extract functionality to detect if the CLI is running on DBR
([#1889](#1889)).
* Consolidate test helpers for `io/fs`
([#1906](#1906)).
* Use `fs.FS` interface to read template
([#1910](#1910)).
* Use `filer.Filer` to write template instantiation
([#1911](#1911)).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants