Skip to main content

cloud-detect

PyPI - Python Version PyPI PyPI - License CI

About

cloud-detect is a Python module that determines a host's cloud provider. Highly inspired by the Go based Satellite, cloud-detect uses the same techniques (file systems and provider metadata) to properly identify cloud providers.

Features

  • Supports identification of Alibaba, AWS, Azure, Digital Ocean, GCP, Oracle Cloud and Vultr hosts.
  • Fast and supports asyncio
  • Logging integration.
  • Small and extensible.

Usage

>>> from cloud_detect import provider
>>> provider()
'aws'

>>> provider() # when tested in local/non-supported cloud env
'unknown'

Right now the only possible responses are: 'alibaba', 'aws', 'azure', 'do', 'gcp', 'oci', 'vultr' or 'unknown'

You can get the list of supported providers using

>>> from cloud_detect import SUPPORTED_PROVIDERS

Installation

Via pip:

pip install cloud-detect

Examples

Termination-handler uses cloud-detect to keep the handling of termination notices on spot/preemptible instances cloud-agnostic, making easier to operate the same tooling in various distinct environments.

How to contribute

  1. Check for open issues or open a fresh issue to start a discussion around a feature idea or a bug.
  2. Fork the repository on GitHub to start making your changes to the master branch (or branch off of it).
  3. Set up a local dev environment: python -m venv .venv && source .venv/bin/activate && pip install -U pip && pip install -e '.[dev]', then run tests with pytest and lint with ruff check ..
  4. Write a test which shows that the bug was fixed or that the feature works as expected.
  5. Send a pull request and bug me until it gets merged and published.

Some things that would be great to have:

  • Add more cloud providers
  • Add codecov

Publishing a release

Requires maintainer access to the project on PyPI (authenticate with an API token: username __token__, password pypi-...).

  1. Bump version in pyproject.toml.
  2. Build and upload from the dev virtualenv (see "How to contribute" above), so nothing is installed into the system Python:
source .venv/bin/activate
rm -rf dist
pip install -U build twine
python -m build
twine upload dist/*

Metadata

Release files for cloud-detect 0.0.15

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for cloud-detect 0.0.15
File Size Uploaded Provenance
cloud_detect-0.0.15.tar.gz 8.8 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for cloud-detect 0.0.15
File Interpreter ABI Platform
cloud_detect-0.0.15-py3-none-any.whl Python 3 none any Details

Total release size: 20.2 kB

Release files / cloud_detect-0.0.15.tar.gz

Download URL cloud_detect-0.0.15.tar.gz
Size 8.8 kB
Tags Source
SHA-256 checksum
How to use checksums
4777d73d96c2c07514a3ead8e236f9bdbcbafe0b3a07a5c1012dd28b36b75ef2
BLAKE2b-256 checksum
How to use checksums
29083ad530fce24e3784d89ebc1e5bb65476313451bce57f80d9105386c5d65d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.9.6

Release files / cloud_detect-0.0.15-py3-none-any.whl

Download URL cloud_detect-0.0.15-py3-none-any.whl
Size 11.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
d4e1778c99b28a54940a7475eae33685332956343dca5d8f7a64473d583c62a4
BLAKE2b-256 checksum
How to use checksums
d69aa9080f290d5cfe027b10b495c7d18e904dcdcd033a0c6e12ddf3b49521cc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.9.6

Security for cloud-detect 0.0.15

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page