Пример #1
0
 def on_pending(self, when, instanceid, why):
     """Invoked when task is pending."""
     if why:
         print('%s - %s pending: %s' %
               (utils.strftime_utc(when), instanceid, why))
     else:
         print('%s - %s pending' % (utils.strftime_utc(when), instanceid))
Пример #2
0
 def on_finished(self, when, instanceid, server, signal, exitcode):
     """Invoked when task is finished."""
     if exitcode > 255:
         print '%s - %s killed, signal: %s' % (
             utils.strftime_utc(when),
             instanceid,
             utils.signal2name(signal)
         )
         self.ctx.update(
             {
                 'signal': signal,
                 'when': when,
                 'server': server
             }
         )
     else:
         print '%s - %s exited, return code: %s' % (
             utils.strftime_utc(when),
             instanceid,
             exitcode
         )
         self.ctx.update(
             {
                 'exitcode': exitcode,
                 'when': when,
                 'server': server
             }
         )
Пример #3
0
 def on_killed(self, when, instanceid, server, is_oom):
     """Default task-finished handler."""
     if is_oom:
         print('%s - %s killed, out of memory' %
               (utils.strftime_utc(when), instanceid))
     else:
         print('%s - %s killed' % (utils.strftime_utc(when), instanceid))
Пример #4
0
 def on_scheduled(self, when, instanceid, server, why):
     """Invoked when task is scheduled."""
     if why:
         print('%s - %s scheduled on %s: %s' %
               (utils.strftime_utc(when), instanceid, server, why))
     else:
         print('%s - %s scheduled on %s' %
               (utils.strftime_utc(when), instanceid, server))
Пример #5
0
 def on_pending_delete(self, when, instanceid, why):
     """Invoked when task is about to be deleted.
     """
     if why:
         print('%s - %s pending delete: %s' % (
             utils.strftime_utc(when), instanceid, why))
     else:
         print('%s - %s pending delete' % (
             utils.strftime_utc(when), instanceid))
Пример #6
0
 def on_service_exited(self, when, instanceid, server, uniqueid, service,
                       exitcode, signal):
     """Suppress stdout/err info."""
     if exitcode > 255:
         print('%s - %s/%s/service/%s killed, signal: %s' %
               (utils.strftime_utc(when), instanceid, uniqueid, service,
                utils.signal2name(signal)))
     else:
         print('%s - %s/%s/service/%s exited, return code: %s' %
               (utils.strftime_utc(when), instanceid, uniqueid, service,
                exitcode))
Пример #7
0
def _show_finished(apis, match=None, partition=None):
    state = _get_state(apis, match=match, finished=True, partition=partition)

    result = []
    for item in state:
        if item['state'] not in _FINISHED_STATES:
            continue

        details = None
        if item.get('exitcode') is not None:
            details = 'return code: {}'.format(item['exitcode'])
        if item.get('signal') is not None:
            details = 'signal: {}'.format(utils.signal2name(item['signal']))
        if item.get('aborted_reason'):
            details = 'reason: {}'.format(item['aborted_reason'])
        if item.get('terminated_reason'):
            details = 'reason: {}'.format(item['terminated_reason'])
        if item.get('oom'):
            details = 'out of memory'

        result.append({
            'name': item['name'],
            'state': item['state'],
            'host': item['host'],
            'when': utils.strftime_utc(item['when']),
            'details': details,
        })

    cli.out(_FINISHED_STATE_FORMATTER(result))
Пример #8
0
 def on_service_running(self, when, instanceid, server, uniqueid, service):
     """Invoked when service is running."""
     print('%s - %s/%s/service/%s running' % (
         utils.strftime_utc(when),
         instanceid,
         uniqueid,
         service,
     ))
Пример #9
0
    def on_aborted(self, when, instanceid, server, why):
        """Invoked when task is aborted.
        """
        try:
            why = app_abort.AbortedReason(why)
        except ValueError:
            why = app_abort.AbortedReason.UNKNOWN

        print('%s - %s aborted on %s [reason: %s]' % (
            utils.strftime_utc(when), instanceid, server, why.description()))
Пример #10
0
 def on_service_exited(self, when, instanceid, server,
                       uniqueid, service, exitcode, signal):
     """Invoked when service exits."""
     if exitcode > 255:
         print '%s - %s/%s/service/%s killed, signal: %s' % (
             utils.strftime_utc(when),
             instanceid,
             uniqueid,
             service,
             utils.signal2name(signal)
         )
     else:
         print '%s - %s/%s/service/%s exited, return code: %s' % (
             utils.strftime_utc(when),
             instanceid,
             uniqueid,
             service,
             exitcode
         )
Пример #11
0
    def app_cmd(app, reason, clear):
        """Manage app blackouts."""
        zkclient = context.GLOBAL.zk.conn

        blacklist = zkutils.get_default(zkclient, z.BLACKEDOUT_APPS)
        if not blacklist:
            blacklist = {}

        if app:
            if clear:
                blacklist.pop(app, None)
            else:
                if not reason:
                    raise click.UsageError('--reason is required.')
                blacklist[app] = {'reason': reason, 'when': time.time()}
            zkutils.put(zkclient, z.BLACKEDOUT_APPS, data=blacklist)
            masterapi.create_event(zkclient, 0, 'apps_blacklist', None)

        for blacklisted, details in sorted(blacklist.items()):
            when = utils.strftime_utc(details['when'])
            cli.out('[%s] %s %s', when, blacklisted, details['reason'])
Пример #12
0
def _list_server_blackouts(zkclient, fmt):
    """List server blackouts."""
    # List currently blacked out nodes.
    blacked_out = []
    try:
        blacked_out_nodes = zkclient.get_children(z.BLACKEDOUT_SERVERS)
        for server in blacked_out_nodes:
            node_path = z.path.blackedout_server(server)
            data, metadata = zkutils.get_with_metadata(zkclient, node_path)
            blacked_out.append((metadata.created, server, data))

    except kazoo.client.NoNodeError:
        pass

    # [%t] %h %r will be printed as below
    # [Thu, 05 May 2016 02:59:58 +0000] <hostname> -
    mapping = {'t': 0, 'h': 1, 'r': 2}
    formatter = _gen_formatter(mapping, fmt)

    for when, server, reason in reversed(sorted(blacked_out)):
        reason = '-' if reason is None else reason
        print(formatter.format(utils.strftime_utc(when), server, reason))
Пример #13
0
def _list_server_blackouts(zkclient, fmt):
    """List server blackouts."""

    with_partition = '%p' in fmt
    with_version = '%v' in fmt

    blackouts = []
    for node in zkclient.get_children(z.BLACKEDOUT_SERVERS):
        try:
            node_path = z.path.blackedout_server(node)
            data, metadata = zkutils.get_with_metadata(zkclient, node_path)
        except kazoo.client.NoNodeError:
            continue

        partition, version = None, None

        if with_partition:
            server_data = zkutils.get_default(zkclient, z.path.server(node))
            if server_data and server_data.get('partition'):
                partition = server_data['partition']

        if with_version:
            version_data = zkutils.get_default(zkclient, z.path.version(node))
            if version_data and version_data.get('codepath'):
                version = version_data['codepath']

        blackouts.append((metadata.created, node, partition, version, data))

    # [%t] %h %r will be printed as below
    # [Thu, 05 May 2016 02:59:58 +0000] <hostname> -
    fields = ('t', 'h', 'p', 'v', 'r')
    formatter = _gen_formatter(fields, fmt)

    for when, node, partition, version, reason in reversed(sorted(blackouts)):
        cli.out(
            formatter.format(utils.strftime_utc(when), node, partition or '-',
                             version or '-', reason or '-'))
Пример #14
0
 def on_server_blackout_cleared(self, when, servername):
     """Invoked when server blackout is cleared.
     """
     print('%s - %s cleared' % (utils.strftime_utc(when), servername))
Пример #15
0
 def on_server_blackout(self, when, servername):
     """Invoked when server is blackedout.
     """
     print('%s - %s blackout' % (utils.strftime_utc(when), servername))
Пример #16
0
 def on_server_state(self, when, servername, state):
     """Invoked when server state changes.
     """
     print('%s - %s %s' % (utils.strftime_utc(when), servername, state))
Пример #17
0
 def on_pending(self, when, instanceid):
     """Invoked when task is pending."""
     print('%s - %s pending' % (utils.strftime_utc(when), instanceid))
Пример #18
0
 def on_finished(self, when, instanceid, server, signal, exitcode):
     """Invoked when task is finished.
     """
     print('%s - %s finished on %s' % (
         utils.strftime_utc(when), instanceid, server))
Пример #19
0
 def on_deleted(self, when, instanceid):
     """Invoked when task is deleted.
     """
     print('%s - %s deleted' % (utils.strftime_utc(when), instanceid))
Пример #20
0
 def on_aborted(self, when, instanceid, server, why):
     """Invoked when task is aborted"""
     print('%s - %s aborted on %s [reason: %s]' %
           (utils.strftime_utc(when), instanceid, server, why))
Пример #21
0
 def on_configured(self, when, instanceid, server, uniqueid):
     """Invoked when task is configured
     """
     print('%s - %s/%s configured on %s' % (
         utils.strftime_utc(when), instanceid, uniqueid, server
     ))
Пример #22
0
 def on_scheduled(self, when, instanceid, server):
     """Invoked when task is scheduled."""
     print '%s - %s scheduled on %s' % (
         utils.strftime_utc(when), instanceid, server)