Exemplo n.º 1
0
 def run(self):
     """Runs the master (once it is elected leader)."""
     lock = zkutils.make_lock(self.backend.zkclient,
                              z.path.election(__name__))
     _LOGGER.info('Waiting for leader lock.')
     with lock:
         self.run_loop()
Exemplo n.º 2
0
    def cleanup(interval, trace_service_events_max_count, trace_batch_size,
                trace_expire_after, trace_history_max_count,
                finished_batch_size, finished_expire_after,
                finished_history_max_count, no_lock):
        """Cleans up old traces."""
        def _cleanup():
            """Do cleanup."""
            while True:
                zk.prune_trace(context.GLOBAL.zk.conn,
                               trace_service_events_max_count)
                zk.cleanup_trace(context.GLOBAL.zk.conn, trace_batch_size,
                                 trace_expire_after)
                zk.cleanup_finished(context.GLOBAL.zk.conn,
                                    finished_batch_size, finished_expire_after)
                zk.cleanup_trace_history(context.GLOBAL.zk.conn,
                                         trace_history_max_count)
                zk.cleanup_finished_history(context.GLOBAL.zk.conn,
                                            finished_history_max_count)

                _LOGGER.info('Finished cleanup, sleep %s sec', interval)
                time.sleep(interval)

        if no_lock:
            _cleanup()
        else:
            lock = zkutils.make_lock(context.GLOBAL.zk.conn,
                                     z.path.election(__name__))
            _LOGGER.info('Waiting for leader lock.')
            with lock:
                _cleanup()
Exemplo n.º 3
0
 def run(self, once=False, has_lock=True):
     """Runs the master (once it is elected leader)."""
     if has_lock: 
         lock = zkutils.make_lock(self.backend.zkclient,
                                  z.path.election(__name__))
         _LOGGER.info('Waiting for leader lock.')
         with lock:
             self.run_loop(once)
     else:
         self.run_loop(once)
Exemplo n.º 4
0
 def top(no_lock):
     """Sync LDAP data with Zookeeper data."""
     if not no_lock:
         lock = zkutils.make_lock(context.GLOBAL.zk.conn,
                                  z.path.election(__name__))
         _LOGGER.info('Waiting for leader lock.')
         with lock:
             _run_sync()
     else:
         _LOGGER.info('Running without lock.')
         _run_sync()
Exemplo n.º 5
0
    def top(no_lock, api, approot, once):
        """Sync LDAP data with Zookeeper data."""
        tm_env = appenv.AppEnvironment(root=approot)

        if not no_lock:
            lock = zkutils.make_lock(context.GLOBAL.zk.conn,
                                     z.path.election(__name__))
            _LOGGER.info('Waiting for leader lock.')
            with lock:
                _run_sync(api, tm_env.alerts_dir, once)
        else:
            _LOGGER.info('Running without lock.')
            _run_sync(api, tm_env.alerts_dir, once)
Exemplo n.º 6
0
    def run(out_dir, interval, no_lock):
        """Export scheduler reports from ZooKeeper to disk."""
        zkclient = context.GLOBAL.zk.conn
        out_dir = out_dir or '.'
        fs.mkdir_safe(out_dir, mode=0o755)

        if interval:
            if no_lock:
                run_reactor(out_dir, interval, zkclient)
            else:
                lock = zkutils.make_lock(zkclient, z.path.election(__name__))
                _LOGGER.info('Waiting for leader lock.')
                with lock:
                    run_reactor(out_dir, interval, zkclient)
        else:
            export_reports(out_dir, zkclient)
Exemplo n.º 7
0
    def run(no_lock):
        """Run Treadmill master scheduler."""
        zkclient = context.GLOBAL.zk.conn
        zkclient.ensure_path(z.CRON_JOBS)

        if no_lock:
            _do_watch(zkclient)
            reactor.run()
        else:
            lock = zkutils.make_lock(
                zkclient, z.path.election(__name__)
            )
            _LOGGER.info('Waiting for leader lock.')
            with lock:
                _do_watch(zkclient)
                reactor.run()
Exemplo n.º 8
0
    def gmsa_sync(fs_root, partition, group_ou, group_pattern, no_lock):
        """Sync placements GMSA groups."""

        # keep sleeping until zksync ready
        zksync_utils.wait_for_ready(fs_root)

        watch = gmsa.HostGroupWatch(fs_root, partition, group_ou,
                                    group_pattern)
        if not no_lock:
            lock = zkutils.make_lock(context.GLOBAL.zk.conn,
                                     z.path.election(__name__))

            _LOGGER.info('Waiting for leader lock.')
            with lock:
                watch.run()
        else:
            _LOGGER.info('Running without lock.')
            watch.run()
Exemplo n.º 9
0
    def cleanup(interval, no_lock):
        """Cleans up old tasks."""

        def _cleanup():
            """Do cleanup."""
            while True:
                zk.cleanup(context.GLOBAL.zk.conn)
                _LOGGER.info('Finished cleanup, sleep %s sec', interval)
                time.sleep(interval)

        if no_lock:
            _cleanup()
        else:
            lock = zkutils.make_lock(context.GLOBAL.zk.conn,
                                     z.path.election(__name__))
            _LOGGER.info('Waiting for leader lock.')
            with lock:
                _cleanup()
Exemplo n.º 10
0
    def run(no_lock, proid, root):
        """Run Treadmill DNS endpoint engine.
        """
        zkclient = context.GLOBAL.zk.conn

        zkendpointpath = z.join_zookeeper_path(z.ENDPOINTS, proid)
        zkclient.ensure_path(zkendpointpath)
        zk2fs_endpointpath = '{}{}'.format(root, zkendpointpath)

        if not os.path.isabs(zk2fs_endpointpath):
            _LOGGER.error('Invalid path: %s', zk2fs_endpointpath)
            sys.exit(1)

        if no_lock:
            _do_watch(zkclient=zkclient,
                      zkfs_dir=zk2fs_endpointpath)
        else:
            lock = zkutils.make_lock(
                zkclient, z.path.election(__name__)
            )
            _LOGGER.info('Waiting for leader lock.')
            with lock:
                _do_watch(zkclient=zkclient,
                          zkfs_dir=zk2fs_endpointpath)