def __init__(self, services, **kwargs): """ :param services: iterable of services to provision. Provisioning happens in the same order as they are defined """ super(PostgresProvisioner, self).__init__(scripts=None, shell=True) self.processes = OrderedDict() services = [services] if isinstance(services, basestring) else services if set(services).difference(self._KNOWN_SERVICES): raise UnknownServiceError( 'services: {}, known: {}, difference: {}'.format( services, self._KNOWN_SERVICES, set(services).difference(self._KNOWN_SERVICES))) self.services = OrderedDict() engine = create_jinja2() template = engine.get_template('postgres/base.psql.template') self.directory = os.path.dirname(template.filename) for s in services: self.services[s] = template.render( database=s, user=s, psql_args='--username postgres --port {} --host {}'.format( kwargs['container'].running_port, kwargs['container'].running_host)) self.scripts = self.services.values()
def __init__(self, services, **kwargs): super(SolrProvisioner, self).__init__(scripts=None, shell=True) self.processes = OrderedDict() services = [services] if isinstance(services, basestring) else services self.services = OrderedDict() engine = create_jinja2() template = engine.get_template('{}/base.solr.template'.format( self.name)) self.directory = os.path.dirname(template.filename) for s in services: if s not in self.known_services(): self.logger.warning( '[{}] service "{}" is unknown. Skipping provisioning.'. format(self.name, s)) continue self.services[s] = template.render( service=s, host=kwargs['container'].running_host, port=kwargs['container'].running_port, ) self.scripts = self.services.values() self.logger.debug('Solr provisioning: {}'.format(self.scripts))
def __init__(self, services, **kwargs): """ :param services: iterable of services to provision. Provisioning happens in the same order as they are defined """ super(PostgresProvisioner, self).__init__(scripts=None, shell=True) self.processes = OrderedDict() services = [services] if isinstance(services, basestring) else services if set(services).difference(self._KNOWN_SERVICES): raise UnknownServiceError( 'services: {}, known: {}, difference: {}'.format( services, self._KNOWN_SERVICES, set(services).difference(self._KNOWN_SERVICES))) self.services = OrderedDict() engine = create_jinja2() template = engine.get_template('postgres/base.psql.template') self.directory = os.path.dirname(template.filename) for s in services: self.services[s] = template.render( database=s, user=s, psql_args='--username postgres --port {} --host {}' .format( kwargs['container'].running_port, kwargs['container'].running_host ) ) self.scripts = self.services.values()
def __init__(self, services, **kwargs): self.requirements = kwargs.get('requirements', {}) super(ConsulProvisioner, self).__init__(scripts=None, shell=True) self._KNOWN_SERVICES = self.known_services() self.processes = OrderedDict() services = [services] if isinstance(services, basestring) else services if set(services).difference(self._KNOWN_SERVICES): raise UnknownServiceError("{}".format( set(services).difference(self._KNOWN_SERVICES))) self.services = OrderedDict() engine = create_jinja2() template = engine.get_template('{}/base.consul.template'.format( self.name)) self.directory = os.path.dirname(template.filename) for s in services: self.services[s] = template.render( service=s, port=kwargs['container'].running_port, db_host=self.get_db_params()['HOST'], db_port=self.get_db_params()['PORT'], cache_host=self.get_cache_params()['HOST'], cache_port=self.get_cache_params()['PORT'], solr_host=self.get_solr_params()['HOST'], solr_port=self.get_solr_params()['PORT']) self.scripts = self.services.values() print self.scripts
def __init__(self, services, **kwargs): super(SolrProvisioner, self).__init__(scripts=None, shell=True) self.processes = OrderedDict() services = [services] if isinstance(services, basestring) else services self.services = OrderedDict() engine = create_jinja2() template = engine.get_template('{}/base.solr.template'.format(self.name)) self.directory = os.path.dirname(template.filename) for s in services: if s not in self.known_services(): self.logger.warning('[{}] service "{}" is unknown. Skipping provisioning.'.format(self.name, s)) continue self.services[s] = template.render( service=s, host=kwargs['container'].running_host, port=kwargs['container'].running_port, ) self.scripts = self.services.values() self.logger.debug('Solr provisioning: {}'.format(self.scripts))
def __init__(self, services, **kwargs): self.requirements = kwargs.get('requirements', {}) super(ConsulProvisioner, self).__init__(scripts=None, shell=True) self._KNOWN_SERVICES = self.known_services() self.processes = OrderedDict() services = [services] if isinstance(services, basestring) else services if set(services).difference(self._KNOWN_SERVICES): raise UnknownServiceError( "{}".format( set(services).difference(self._KNOWN_SERVICES))) self.services = OrderedDict() engine = create_jinja2() template = engine.get_template('{}/base.consul.template'.format(self.name)) self.directory = os.path.dirname(template.filename) for s in services: self.services[s] = template.render( service=s, port=kwargs['container'].running_port, db_host=self.get_db_params()['HOST'], db_port=self.get_db_params()['PORT'], cache_host=self.get_cache_params()['HOST'], cache_port=self.get_cache_params()['PORT'], solr_host=self.get_solr_params()['HOST'], solr_port=self.get_solr_params()['PORT'] ) self.scripts = self.services.values() print self.scripts
def __init__(self, containers, family): """ :param containers: list of ECSBuilder.DockerContainer instances :param family: ECS-required "family" field """ self.containers = containers self.templates = create_jinja2() self.family = family
def __init__(self, commit, namespace="adsabs"): self.commit = commit self.repo = commit.repository self.templates = create_jinja2() self.tag = "{}/{}:{}".format( namespace, self.repo, self.commit.tag if self.commit.tag else self.commit.commit_hash ) self.files = [] self.tarfile = None self.built = False self.pushed = False
def __init__(self, services=['adsrex'], **kwargs): super(TestProvisioner, self).__init__(scripts=None, shell=True) self.api_name = kwargs.get('api_name', 'adsws') self.api_port = kwargs.get('api_port', 80) self.services = OrderedDict() self.directories = OrderedDict() self.configs = OrderedDict() engine = create_jinja2() for s in services: template = engine.get_template('{}/base.{}.template'.format(self.name, s)) self.directories[s] = os.path.dirname(template.filename) self.configs[s] = self.get_properties(s) self.services[s] = template.render(**self.configs.get(s, {})) self.scripts = self.services.values()
def __init__(self, services=['adsrex'], **kwargs): super(TestProvisioner, self).__init__(scripts=None, shell=True) self.api_name = kwargs.get('api_name', 'adsws') self.api_port = kwargs.get('api_port', 80) self.services = OrderedDict() self.directories = OrderedDict() self.configs = OrderedDict() engine = create_jinja2() for s in services: template = engine.get_template('{}/base.{}.template'.format( self.name, s)) self.directories[s] = os.path.dirname(template.filename) self.configs[s] = self.get_properties(s) self.services[s] = template.render(**self.configs.get(s, {})) self.scripts = self.services.values()
def __init__(self, services): """ :param services: iterable of services to provision. Provisioning happens in the same order as they are defined """ self.processes = OrderedDict() self.shell = True services = [services] if isinstance(services, basestring) else services if set(services).difference(self._KNOWN_SERVICES): raise UnknownServiceError( "{}".format( set(services).difference(self._KNOWN_SERVICES))) self.services = OrderedDict() engine = create_jinja2() template = engine.get_template('postgres/base.psql.template') self.directory = os.path.dirname(template.filename) for s in services: self.services[s] = template.render( database=s, user=s, psql_args=PostgresProvisioner.get_cli_params() ) self.scripts = self.services.values()
def __init__(self, services): self._KNOWN_SERVICES = self.known_services() self.processes = OrderedDict() self.shell = True services = [services] if isinstance(services, basestring) else services if set(services).difference(self._KNOWN_SERVICES): raise UnknownServiceError( "{}".format( set(services).difference(self._KNOWN_SERVICES))) self.services = OrderedDict() engine = create_jinja2() template = engine.get_template('{}/base.consul.template'.format(self.name)) self.directory = os.path.dirname(template.filename) for s in services: self.services[s] = template.render( service=s, port=ConsulProvisioner.get_cli_params(), db_host=ConsulProvisioner.get_db_params()['HOST'], db_port=ConsulProvisioner.get_db_params()['PORT'] ) self.scripts = self.services.values()
def test_create_jinja2(self): e = app.create_jinja2() self.assertIsInstance(e, jinja2.Environment) self.assertIsInstance(e.loader, jinja2.FileSystemLoader)