{"id":26837,"library":"cloudbridge","title":"CloudBridge","description":"CloudBridge provides a unified abstraction layer over multiple cloud providers (AWS, GCP, Azure, OpenStack), enabling multi-cloud deployments with a single API. Current version 3.2.0, released 2025-03-15; releases occur every few months.","status":"active","version":"3.2.0","language":"python","source_language":"en","source_url":"https://github.com/CloudVE/cloudbridge","tags":["cloud","abstraction","multi-cloud","aws","gcp","azure","openstack"],"install":[{"cmd":"pip install cloudbridge","lang":"bash","label":"Basic install"},{"cmd":"pip install cloudbridge[aws,gcp,azure,openstack]","lang":"bash","label":"Install with all provider dependencies"}],"dependencies":[],"imports":[{"note":"CloudProvider is a module, not a top-level import.","wrong":"from cloudbridge import CloudProvider","symbol":"CloudProvider","correct":"from cloudbridge.cloud import CloudProvider"},{"note":"list_providers is a class method on CloudProvider, not a module-level function.","wrong":"import cloudbridge\ncloudbridge.list_providers()","symbol":"ProviderList","correct":"from cloudbridge.cloud import CloudProvider\nCloudProvider.list_providers()"}],"quickstart":{"code":"import os\nfrom cloudbridge.cloud import CloudProvider\n\n# Set credentials via environment variables\nos.environ['OS_AUTH_URL'] = 'your-auth-url'\nos.environ['OS_USERNAME'] = 'your-username'\nos.environ['OS_PASSWORD'] = 'your-password'\nos.environ['OS_PROJECT_NAME'] = 'your-project'\n\n# Create a provider (OpenStack here, but could be AWS, GCP, etc.)\nprovider = CloudProvider('openstack')\n\n# List instances\nfor instance in provider.compute.instances.list():\n    print(instance.id, instance.name)","lang":"python","description":"Initialises a CloudProvider using OpenStack credentials from environment variables and lists compute instances."},"warnings":[{"fix":"Update imports: use from cloudbridge.cloud import CloudProvider and instantiate with provider name.","message":"In version 3.0, the API was redesigned. Crucial changes: 'CloudProvider' now requires a provider string ('aws', 'gcp', 'azure', 'openstack'); old cloudbridge.aws.* patterns no longer work.","severity":"breaking","affected_versions":"<3.0.0"},{"fix":"Review the new resource hierarchy in the docs. For listing all instances: provider.compute.instances.all() or iterate over pages.","message":"In version 3.0, the 'compute', 'storage', 'network' services are accessed via provider.compute, provider.storage, provider.network (not provider.compute.instances? None, but resource methods changed). For example: 'instances.list()' returns paginated results; use .all() for all instances or iterate.","severity":"breaking","affected_versions":"<3.0.0"},{"fix":"Use provider.network.dns instead of provider.dns.","message":"The 'dns' service (provider.dns) has been deprecated and will be removed in a future version. Use provider.network.dns instead.","severity":"deprecated","affected_versions":">=3.0.0"},{"fix":"Set AWS_DEFAULT_REGION environment variable or pass region in config dict: CloudProvider('aws', config={'region_name': 'us-west-2'})","message":"When using AWS, the region must be set via an environment variable or explicitly in the provider configuration; CloudBridge does not default to us-east-1. If not set, operations may fail with region-related errors.","severity":"gotcha","affected_versions":"all"},{"fix":"Refer to the CloudBridge docs for the exact environment variable names per provider.","message":"For OpenStack, the credential environment variables are OS_* (e.g., OS_USERNAME). Using other cloud provider env vars (AWS_*) will not work; you must use the correct ones for each provider.","severity":"gotcha","affected_versions":"all"}],"env_vars":null,"last_verified":"2026-04-27T00:00:00.000Z","next_check":"2026-07-26T00:00:00.000Z","problems":[{"fix":"pip install cloudbridge","cause":"cloudbridge not installed or installed in a different environment.","error":"ModuleNotFoundError: No module named 'cloudbridge'"},{"fix":"Use provider.compute.instances.list() or provider.compute.instances.all()","cause":"In version 3+, instances is under provider.compute.instances, not directly on provider.","error":"AttributeError: 'CloudProvider' object has no attribute 'instances'"},{"fix":"Verify environment variables (e.g., OS_USERNAME, AWS_ACCESS_KEY_ID) are set correctly and the provider is reachable.","cause":"Invalid or missing credentials, or incorrect region/endpoint.","error":"cloudbridge.exceptions.ProviderConnectionError: Unable to connect to provider. Check credentials."}],"ecosystem":"pypi","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}