Skip to main content

Module that determines a host's cloud provider

Project description

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/*

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

cloud_detect-0.0.15.tar.gz (8.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

cloud_detect-0.0.15-py3-none-any.whl (11.4 kB view details)

Uploaded Python 3

File details

Details for the file cloud_detect-0.0.15.tar.gz.

File metadata

  • Download URL: cloud_detect-0.0.15.tar.gz
  • Upload date:
  • Size: 8.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.6

File hashes

Hashes for cloud_detect-0.0.15.tar.gz
Algorithm Hash digest
SHA256 4777d73d96c2c07514a3ead8e236f9bdbcbafe0b3a07a5c1012dd28b36b75ef2
MD5 7e8ff19c9717b2a85fef4ca510713a9c
BLAKE2b-256 29083ad530fce24e3784d89ebc1e5bb65476313451bce57f80d9105386c5d65d

See more details on using hashes here.

File details

Details for the file cloud_detect-0.0.15-py3-none-any.whl.

File metadata

  • Download URL: cloud_detect-0.0.15-py3-none-any.whl
  • Upload date:
  • Size: 11.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.6

File hashes

Hashes for cloud_detect-0.0.15-py3-none-any.whl
Algorithm Hash digest
SHA256 d4e1778c99b28a54940a7475eae33685332956343dca5d8f7a64473d583c62a4
MD5 d4237a9f29b36e58c1ca730062c63d8d
BLAKE2b-256 d69aa9080f290d5cfe027b10b495c7d18e904dcdcd033a0c6e12ddf3b49521cc

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page