alpine-zdt-images/alpine-cloud-images/clouds/__init__.py

45 lines
1020 B
Python
Raw Normal View History

2021-11-23 06:09:18 +00:00
# vim: ts=4 et:
from . import aws # , oci, gcp, azure
2021-11-23 06:09:18 +00:00
ADAPTERS = {}
def register(*mods):
for mod in mods:
cloud = mod.__name__.split('.')[-1]
if p := mod.register(cloud):
ADAPTERS[cloud] = p
register(aws) # , oci, azure, gcp)
2021-11-23 06:09:18 +00:00
# using a credential provider is optional, set across all adapters
2021-11-28 23:04:28 +00:00
def set_credential_provider(debug=False):
2021-11-23 06:09:18 +00:00
from .identity_broker_client import IdentityBrokerClient
2021-11-28 23:04:28 +00:00
cred_provider = IdentityBrokerClient(debug=debug)
2021-11-23 06:09:18 +00:00
for adapter in ADAPTERS.values():
adapter.cred_provider = cred_provider
### forward to the correct adapter
def latest_build_image(config):
2021-11-28 23:04:28 +00:00
return ADAPTERS[config.cloud].latest_build_image(
config.project,
config.image_key
)
2021-11-23 06:09:18 +00:00
def import_image(config):
return ADAPTERS[config.cloud].import_image(config)
def delete_image(config, image_id):
return ADAPTERS[config.cloud].delete_image(image_id)
2021-11-23 06:09:18 +00:00
def publish_image(config):
return ADAPTERS[config.cloud].publish_image(config)