Source code for labtest.provider

# -*- coding: utf-8 -*-
from future.utils import iteritems
import click
from . import docker
from . import aws
from . import local


service_providers = {
    'docker': docker.service_provider,
}

state_providers = {
    'aws': aws.state_provider,
    'local': local.state_provider,
}

secret_providers = {
    'aws': aws.secret_provider
}


[docs]def check_services_config(services): """ Make sure the services are configured correctly Args: services: The services confgiuration to check Raises: ClickException: If there is an error """ for service_name, config in iteritems(services): if 'provider' not in config: raise click.ClickException('The service "{}" doesn\'t have a provider specified'.format(service_name)) if 'service' not in config: raise click.ClickException('The service "{}" doesn\'t have a service specified'.format(service_name)) if config['service'] not in service_providers[config['provider']]: raise click.ClickException('The {provider} provider doesn\'t have a registered service of "{service}".'.format(**config))
__all__ = ['secret_providers', 'service_providers', 'state_providers', 'check_services_config']