Skip to main content

Cloud Information provider

Python tests GitHub release

The Cloud Information provider generates a representation of cloud resources following the GlueSchema representation.

The provider extracts information from a cloud deployment using public APIs and formats as a JSON.

Currently supported cloud middleware:

  • OpenStack

Installation

Use pip:

pip install cloud-info-provider

From source

Source-based installation is not recommended for production usage, but it is handy for testing or development purpose. Get the source by cloning this repository and run with uv

uv run cloud-info-provider-service

Usage

cloud-info-provider-service <openstack authentication options> <site_config>

Site configuration

The cloud-info-provider uses a YAML file describe the basic information of the cloud site to represent. This file follows the specification in the fedcloud-catchall-operations for site descriptions:

---
gocdb: "<NAME OF THE SITE IN GOCDB>"
endpoint: "https://example.com:5000/v3"
# the images is ignored by the cloud-info-provider
images:
vos:
  - name: "<VO name>"
    auth:
      project_id: "<project id for the VO>"
  - name: ...

Middleware

Dynamic information is obtained with the middleware providers. Use the --middleware option for specifying the provider to use (see the command help for exact names).

Each dynamic provider has its own command-line options for specifying how to connect to the underlying service. Use the --help option for a complete listing of options.

OpenStack

The openstack provider require a working keystone endpoint and valid credentials to access that endpoint. It uses keystoneauth so any Keystone authentication method available in that library can be used. The configured user for authentication must be a member of every project configured in your shares. Authentication options largely depend on the authentication method used, default is username/password. For example, using OpenID Connect against a EGI Check-in integrated endpoint:

cloud-info-provider-service --middleware openstack \
    --os-auth-type v3oidcaccesstoken \
    --os-identity-provider egi.eu --os-protocol oidc \
    --os-access-token $ACCESS_TOKEN \
    --os-auth-url https://<keystone-endpoint>:5000/v3

Other extra options for the providers (defaults should be OK):

  • --select-flavors {all,public,private} Select all (default), public or private flavors. For more details see OpenStack flavors documentation.

  • --all-images If set, include information about all images (including snapshots), otherwise only publish images with EGI registry metadata, ignoring the others.

Support for specialized hardware (GPU & InfiniBand) through OpenStack properties

The openstack provider is able to gather additional GPU and InfiniBand information made available through flavor's and image's metadata. To this end, this provider allows passing CLI options (--property-*) to match the metadata keys. As an example, the option --property-flavor-gpu-vendor gpu:vendor will seek for gpu-vendor key in the flavor definition (properties field), while --property-image-gpu-driver gpu:driver:version will fetch the value associated with the gpu:driver:version key in the list of images obtained.

For the InfiniBand case, there is an additional option (--property-flavor-infiniband-value) that also checks the value obtained from the metadata. Only if they match, InfiniBand is considered as supported.

Use the --help option for the whole list of available GPU and InfiniBand properties.

Checking the auditor role

The openstack provider can check whether a given user has "identity:list_users" capability (see VO auditing). For enabling the check, set the --auditor-role-cloud parameter with the name of a valid configuration on a clouds.yaml file as expected by OpenStack.

The result of the check will be added to the OtherInfo of the CloudComputingEndpoint with a boolean field named auditor_role.

CAs

The provider will use your python default CAs for checking and connecting to your endpoints and GOCDB, so please make sure those CAs include the IGTF CAs. The location of the CAs depending on how you installed the different python packages (using deb/rpm packages or pip).

For debian-based systems (e.g. Ubuntu), use the following:

cd /usr/local/share/ca-certificates
for f in /etc/grid-security/certificates/*.pem ; do
    ln -s $f $(basename $f .pem).crt
done
update-ca-certificates

For RH-based systems (e.g. CentOS), you can include the IGTF CAs with:

cd /etc/pki/ca-trust/source/anchors
ln -s /etc/grid-security/certificates/*.pem .
update-ca-trust extract

Otherwise, you need to add the IGTF CAs to the internal requests bundle:

cat /etc/grid-security/certificates/*.pem >> $(python -m requests.certs)

Creating releases

  1. Create a PR to update the changelog to reflect the changes since last version and any other needed changes for the release
    • Version should follow SemVer like 0.42.0
  2. Once merged, create a release with a tag vX.Y.Z, fill in as description of the release the changelog. As soon as the tag is pushed to the repository, packages will be available at GitHub.

Acknowledgement

This work received funding from the EOSC-hub project (Horizon 2020) under Grant number 777536.

Metadata

Release files for cloud-info-provider 1.2.0

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-info-provider 1.2.0
File Size Uploaded Provenance
cloud_info_provider-1.2.0.tar.gz 132.3 kB With provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for cloud-info-provider 1.2.0
File Interpreter ABI Platform
cloud_info_provider-1.2.0-py3-none-any.whl Python 3 none any Details

Total release size: 168.5 kB

Release files / cloud_info_provider-1.2.0.tar.gz

Download URL cloud_info_provider-1.2.0.tar.gz
Size 132.3 kB
Tags Source
SHA-256 checksum
How to use checksums
0d50bb4b10f10bfc814b4a2e7ef3d5f74e6b8bedcec79f8c8ccc2646e4bb12e2
BLAKE2b-256 checksum
How to use checksums
b17cac400118a5bad97c1bafa509c2fcf2249a3f3036ae6abaf18e890e0d1846
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 3, 2026.

Transparency log

Release files / cloud_info_provider-1.2.0-py3-none-any.whl

Download URL cloud_info_provider-1.2.0-py3-none-any.whl
Size 36.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
b698415871b11e075a3bc78770600e597d655f282f778ae30f065fd45ca8873e
BLAKE2b-256 checksum
How to use checksums
7c834d8ff10341db017976acaa207fe3c16708aa88153c1d775d6b59acf695e3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 3, 2026.

Transparency log

Security for cloud-info-provider 1.2.0

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.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for cloud_info_provider-1.2.0.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 3, 2026.

Transparency log

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.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

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