Skip to content

v2.0a17

Choose a tag to compare

@KarthikSKumar98 KarthikSKumar98 released this 24 Mar 20:27
· 6 commits to v2(pre-release) since this release
3f63012

This release introduces transient error retry with exponential backoff in the HTTP layer, refactors device attribute initialization, expands the known cluster URL registry, and updates getting-started documentation to clarify authentication prerequisites.

New Features

  • Retry with Exponential Backoff
    • request_url now automatically retries on transient transport failures (DNS errors, connection failures, timeouts, proxy errors) with exponential backoff up to 3 attempts
    • Added RETRY_MAX_RETRIES, RETRY_INITIAL_BACKOFF, RETRY_BACKOFF_MULTIPLIER, and TRANSIENT_TRANSPORT_ERRORS constants to base.py
    • All other exceptions are raised immediately as ResponseError without retrying
  • Unknown Base URL Warning
    • _resolve_base_url now validates the resolved URL against known cluster URLs
    • Issues a non-fatal UserWarning if the URL is not a recognized Central cluster, expected for Central-On Prem & other non-production environments

Improvements

  • Added explicit self.materialized = False initialization at the top of Device.__init__ for clarity
  • from_api branch in Device.__init__ now raises ValueError if device_attributes is None, preventing silent failures
  • Replaced manual key-rename loop and setattr calls in Device.__init__ with new _apply_api_attributes() helper method
  • Device inventory fetch in Device.get() now uses filter_str="serialNumber eq {serial}" instead of the search= parameter to match updated API behavior
  • Expanded CLUSTER_BASE_URLS in constants.py with changes to API Gateway Base URLs
  • Removed unused _return_client_credentials method from base.py
  • Updates to Authentication & Quickstart guide