Ejemplo n.º 1
0
    def __init__(self, name, db_password, db_local='fr_FR.UTF8',
                 is_free=False, chaos_database=None, rt_topics=[],
                 zmq_socket_port=None, db_name=None, db_user=None, source_dir=None,
                 enable_realtime=False, realtime_proxies=[], street_network=None, cache_raptor=None, zmq_server=None,
                 kraken_threads=None):
        self.name = name
        self.db_password = db_password
        self.is_free = is_free
        if env.use_zmq_socket_file:
            self.kraken_zmq_socket = 'ipc://{kraken_dir}/{instance}/kraken.sock'.format(
                kraken_dir=env.kraken_basedir, instance=self.name)
            self.jormungandr_zmq_socket_for_instance = self.kraken_zmq_socket
            self.zmq_server, self.kraken_engines = None, list(env.roledefs['eng'])
        elif zmq_socket_port:
            env_zmq_server = getattr(env, 'zmq_server', None)
            if zmq_server:
                if isinstance(zmq_server, basestring):
                    if zmq_server == 'localhost':
                        self.zmq_server = zmq_server
                        self.kraken_engines = list(env.roledefs['ws'])
                    else:
                        self.kraken_engines = [env.make_ssh_url(zmq_server)]
                        self.zmq_server = env_zmq_server or zmq_server
                elif env_zmq_server:  # zmq_server is a list
                    self.zmq_server, self.kraken_engines = env_zmq_server, env.make_ssh_url(zmq_server)
                else:
                    abort('Platform configuration file must include a env.zmq_server specification '
                          '(see fabfile.env.platforms for some instructions)')
            elif env_zmq_server:
                self.zmq_server, self.kraken_engines = env_zmq_server, list(env.roledefs['eng'])
            else:
                abort('Platform configuration file must include a env.zmq_server specification '
                      '(see fabfile.env.platforms for some instructions)')
            self.kraken_zmq_socket = 'tcp://*:{port}'.format(port=zmq_socket_port)
            self.jormungandr_zmq_socket_for_instance = 'tcp://{server}:{port}'.format(
                server=self.zmq_server, port=zmq_socket_port)
        else:
            abort('Instance configuration must include a zmq_socket_port, aborting '
                  '(see fabfile.env.platforms for some instructions)')

        if not kraken_threads:
            self.kraken_nb_threads = env.KRAKEN_NB_THREADS
        else:
            self.kraken_nb_threads = kraken_threads
        self.db_local = db_local
        self.chaos_database = chaos_database
        self.rt_topics = rt_topics
        # postgres doesn't like dash, replace them by underscore
        self.db_name = db_name if db_name else 'ed_' + self.name.replace('-', '_')
        self.db_user = db_user if db_user else 'ed_' + self.name.replace('-', '_')
        self._source_dir = source_dir if source_dir != 'auto' else '/srv/ed/source/{}/{}/FUSIO/EXPORT/'.\
            format(self.name.upper(), (getattr(env, 'fusio_name', None) or env.name).upper())
        self.enable_realtime = enable_realtime
        self.realtime_proxies = realtime_proxies
        self.cache_raptor = cache_raptor
        self.street_network = street_network
Ejemplo n.º 2
0
    def __init__(self, name, db_password, db_local='fr_FR.UTF8',
                 is_free=False, chaos_database=None, rt_topics=[],
                 zmq_socket_port=None, db_name=None, db_user=None, source_dir=None,
                 enable_realtime=False, realtime_proxies=[], cache_raptor=None, zmq_server=None):
        self.name = name
        self.db_password = db_password
        self.is_free = is_free
        if env.use_zmq_socket_file:
            self.kraken_zmq_socket = 'ipc://{kraken_dir}/{instance}/kraken.sock'.format(
                kraken_dir=env.kraken_basedir, instance=self.name)
            self.jormungandr_zmq_socket_for_instance = self.kraken_zmq_socket
            self.zmq_server, self.kraken_engines = None, list(env.roledefs['eng'])
        elif zmq_socket_port:
            env_zmq_server = getattr(env, 'zmq_server', None)
            if zmq_server:
                if isinstance(zmq_server, basestring):
                    if zmq_server == 'localhost':
                        self.zmq_server = zmq_server
                        self.kraken_engines = list(env.roledefs['ws'])
                    else:
                        self.kraken_engines = [env.make_ssh_url(zmq_server)]
                        self.zmq_server = env_zmq_server or zmq_server
                elif env_zmq_server:  # zmq_server is a list
                    self.zmq_server, self.kraken_engines = env_zmq_server, env.make_ssh_url(zmq_server)
                else:
                    abort('Platform configuration file must include a env.zmq_server specification '
                          '(see fabfile.env.platforms for some instructions)')
            elif env_zmq_server:
                self.zmq_server, self.kraken_engines = env_zmq_server, list(env.roledefs['eng'])
            else:
                abort('Platform configuration file must include a env.zmq_server specification '
                      '(see fabfile.env.platforms for some instructions)')
            self.kraken_zmq_socket = 'tcp://*:{port}'.format(port=zmq_socket_port)
            self.jormungandr_zmq_socket_for_instance = 'tcp://{server}:{port}'.format(
                server=self.zmq_server, port=zmq_socket_port)
        else:
            abort('Instance configuration must include a zmq_socket_port, aborting '
                  '(see fabfile.env.platforms for some instructions)')

        self.kraken_nb_threads = env.KRAKEN_NB_THREADS
        self.db_local = db_local
        self.chaos_database = chaos_database
        self.rt_topics = rt_topics
        # postgres doesn't like dash, replace them by underscore
        self.db_name = db_name if db_name else 'ed_' + self.name.replace('-', '_')
        self.db_user = db_user if db_user else 'ed_' + self.name.replace('-', '_')
        self._source_dir = source_dir if source_dir != 'auto' else '/srv/ed/source/{}/{}/FUSIO/EXPORT/'.\
            format(self.name.upper(), (getattr(env, 'fusio_name', None) or env.name).upper())
        self.enable_realtime = enable_realtime
        self.realtime_proxies = realtime_proxies
        self.cache_raptor = cache_raptor
Ejemplo n.º 3
0
def get_kraken_config(server, instance):
    """Get kraken configuration of a given instance"""
    # TODO this task is never used and it looks like a function (inconsistent)

    instance = get_real_instance(instance)
    
    with settings(host_string=env.make_ssh_url(server)):
        config_path = "%s/%s/kraken.ini" % (env.kraken_basedir, instance.name)

        # first get the configfile here
        temp_file = StringIO.StringIO()
        if exists(config_path):
            get(config_path, temp_file)
        else:
            print(red("ERROR: can't find %s" % config_path))
            exit(1)

        config = ConfigParser.RawConfigParser(allow_no_value=True)
        config_text = temp_file.getvalue()
        config.readfp(BytesIO(config_text))

        if 'GENERAL' in config.sections():
            return config
        else:
            return None
Ejemplo n.º 4
0
def get_kraken_config(server, instance):
    """Get kraken configuration of a given instance"""
    # TODO this task is never used and it looks like a function (inconsistent)

    instance = get_real_instance(instance)

    with settings(host_string=env.make_ssh_url(server)):
        config_path = "%s/%s/kraken.ini" % (env.kraken_basedir, instance.name)

        # first get the configfile here
        temp_file = StringIO.StringIO()
        if exists(config_path):
            get(config_path, temp_file)
        else:
            print(red("ERROR: can't find %s" % config_path))
            exit(1)

        config = ConfigParser.RawConfigParser(allow_no_value=True)
        config_text = temp_file.getvalue()
        config.readfp(BytesIO(config_text))

        if 'GENERAL' in config.sections():
            return config
        else:
            return None
Ejemplo n.º 5
0
def env_common(tyr, ed, kraken, jormun):
    env.hosts_tyr, env.hosts_ed, env.hosts_kraken, env.hosts_jormun = tyr, ed, kraken, jormun
    tyr_ssh, ed_ssh, kraken_ssh, jormun_ssh = env.make_ssh_url(
        tyr, ed, kraken, jormun)
    env.key_filename = SSH_KEY_FILE
    env.use_ssh_config = True
    env.use_syslog = False
    env.use_load_balancer = False

    env.roledefs = {
        'tyr': tyr_ssh,
        'tyr_master': tyr_ssh[:1],
        'db': ed_ssh,
        'eng': kraken_ssh,
        'ws': jormun_ssh
    }

    env.excluded_instances = []
    env.manual_package_deploy = True
    env.setup_apache = True

    env.kraken_monitor_listen_port = 85
    env.jormungandr_save_stats = False
    env.jormungandr_is_public = True
    env.tyr_url = '{}/tyr'.format(env.hosts_tyr[0])

    env.tyr_backup_dir_template = '/srv/ed/data/{instance}/backup/'
    env.tyr_source_dir_template = '/srv/ed/data/{instance}'
    env.tyr_base_destination_dir = '/srv/ed/data/'

    env.KRAKEN_RESTART_DELAY = 15
    env.nb_thread_for_bina = 4
    # env.jormungandr_url = jormun

    env.jormungandr_url_prefix = '/navitia'

    base_apache_conf = '/etc/apache2/conf.d' if env.distrib == 'debian7' else '/etc/apache2/conf-enabled'
    env.jormungandr_apache_config_file = os.path.join(base_apache_conf,
                                                      'jormungandr.conf')
    env.kraken_monitor_apache_config_file = os.path.join(
        base_apache_conf, 'monitor-kraken.conf')
def env_common(tyr, ed, kraken, jormun):
    env.hosts_tyr, env.hosts_ed, env.hosts_kraken, env.hosts_jormun = tyr, ed, kraken, jormun
    tyr_ssh, ed_ssh, kraken_ssh, jormun_ssh = env.make_ssh_url(tyr, ed, kraken, jormun)
    env.key_filename = SSH_KEY_FILE
    env.use_ssh_config = True
    env.use_syslog = False
    env.use_load_balancer = False

    env.roledefs = {
        'tyr':  tyr_ssh,
        'tyr_master': tyr_ssh[:1],
        'db':   ed_ssh,
        'eng':  kraken_ssh,
        'ws':   jormun_ssh
    }

    env.excluded_instances = []
    env.manual_package_deploy = True
    env.setup_apache = True

    env.kraken_monitor_listen_port = 85
    env.jormungandr_save_stats = False
    env.jormungandr_is_public = True
    env.tyr_url = '{}/tyr'.format(env.hosts_tyr[0])

    env.tyr_backup_dir_template = '/srv/ed/data/{instance}/backup/'
    env.tyr_source_dir_template = '/srv/ed/data/{instance}'
    env.tyr_base_destination_dir = '/srv/ed/data/'

    # env.jormungandr_url = jormun

    env.jormungandr_url_prefix = '/navitia'

    base_apache_conf = '/etc/apache2/conf.d' if env.distrib == 'debian7' else '/etc/apache2/conf-enabled'
    env.jormungandr_apache_config_file = os.path.join(base_apache_conf, 'jormungandr.conf')
    env.kraken_monitor_apache_config_file = os.path.join(base_apache_conf, 'monitor-kraken.conf')