コード例 #1
0
    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()
コード例 #2
0
    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))
コード例 #3
0
    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()
コード例 #4
0
    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
コード例 #5
0
    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))
コード例 #6
0
    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
コード例 #7
0
ファイル: builders.py プロジェクト: ehenneken/mission-control
 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
コード例 #8
0
 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
コード例 #9
0
ファイル: builders.py プロジェクト: ehenneken/mission-control
 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
コード例 #10
0
 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
コード例 #11
0
    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()
コード例 #12
0
    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()
コード例 #13
0
    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()
コード例 #14
0
    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()
コード例 #15
0
 def test_create_jinja2(self):
     e = app.create_jinja2()
     self.assertIsInstance(e, jinja2.Environment)
     self.assertIsInstance(e.loader, jinja2.FileSystemLoader)
コード例 #16
0
 def test_create_jinja2(self):
     e = app.create_jinja2()
     self.assertIsInstance(e, jinja2.Environment)
     self.assertIsInstance(e.loader, jinja2.FileSystemLoader)