Skip to content

Add WebDAV support to storage-cli client and improve test quality#4974

Open
kathap wants to merge 2 commits into
mainfrom
storage-cli-webdav-support
Open

Add WebDAV support to storage-cli client and improve test quality#4974
kathap wants to merge 2 commits into
mainfrom
storage-cli-webdav-support

Conversation

@kathap
Copy link
Copy Markdown
Contributor

@kathap kathap commented Mar 26, 2026

Enable WebDAV/DAV provider support in StorageCliClient by adding 'dav' to STORAGE_CLI_TYPES and mapping legacy 'webdav' provider name to 'dav'.
Needs cloudfoundry/capi-release#634 to be merged first.

Test improvements:

  • Add comprehensive tests for all legacy provider mappings (AzureRM, AWS, Google, aliyun, webdav)
  • Add test for native 'dav' storage-cli type
  • Use begin/ensure blocks to prevent tempfile leaks on test failures
  • Add helper methods (write_config_file, stub_config_for_droplets) to reduce repetition
  • Stub additional_flags in #run_cli tests for stability
  • Fix test descriptions for accuracy

Thanks for contributing to cloud_controller_ng. To speed up the process of reviewing your pull request please provide us with:

  • A short explanation of the proposed change:
    Add 'dav' to the list of supported storage-cli types and map the legacy 'webdav' provider name to 'dav', enabling CCNG to use storage-cli with WebDAV blobstores.

  • An explanation of the use cases your change solves
    Enable WebDAV blobstore support:
    Allows Cloud Controller to use storage-cli with WebDAV blobstores (previously only Azure, AWS, Google, and Aliyun were supported). This completes the set of supported providers for CAPI's
    storage-cli adoption.

    Support legacy fog configurations:
    Enables operators to migrate existing CAPI deployments that use fog with 'webdav' provider to storage-cli without changing their manifest configuration. The legacy 'webdav' provider name is
    automatically mapped to the native 'dav' storage-cli type.

    Unblock CAPI migration from fog:
    Removes the last blocker for migrating CAPI blobstore operations from the fog gem to storage-cli

  • Links to any other associated PRs
    Refactor DAV client, add missing operations storage-cli#70
    Enhance storage-cli webdav config capi-release#634

  • I have reviewed the contributing guide

  • I have viewed, signed, and submitted the Contributor License Agreement

  • I have made this pull request to the main branch

  • I have run all the unit tests using bundle exec rake

  • I have run CF Acceptance Tests

@kathap kathap marked this pull request as draft March 26, 2026 17:03
@kathap kathap marked this pull request as ready for review March 27, 2026 11:54
@kathap kathap marked this pull request as draft April 24, 2026 15:18
@kathap kathap marked this pull request as ready for review April 25, 2026 07:18
 Enable WebDAV/DAV provider support in StorageCliClient by adding 'dav'
  to STORAGE_CLI_TYPES and mapping legacy 'webdav' provider name to 'dav'.

  Test improvements:
  - Add comprehensive tests for all legacy provider mappings (AzureRM,
    AWS, Google, aliyun, webdav)
  - Add test for native 'dav' storage-cli type
  - Use begin/ensure blocks to prevent tempfile leaks on test failures
  - Add helper methods (write_config_file, stub_config_for_droplets) to
    reduce repetition
  - Stub additional_flags in #run_cli tests for stability
  - Fix test descriptions for accuracy
@kathap kathap force-pushed the storage-cli-webdav-support branch from e486441 to 0c5419f Compare May 11, 2026 07:12
 Implements on-demand URL signing for WebDAV blobstore to support
  dual endpoints (internal for Diego, public for external users).

  - Add supports_lazy_signing? method to detect DAV provider
  - Add sign_internal_url and sign_public_url methods for DAV
  - StorageCliBlob generates URLs on-demand when lazy signing enabled
  - Non-DAV providers continue using eager signing (pre-generated URLs)
  - Add comprehensive test coverage for lazy signing functionality

  This maintains backward compatibility with existing fog/webdav behavior
  where internal and public signed URLs are generated on-demand with
  different endpoints.
@kathap kathap force-pushed the storage-cli-webdav-support branch from 362e95e to 40ca610 Compare May 11, 2026 11:38
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.

1 participant