#!/usr/bin/env python2.7 ''' Shows the last access time of clients. $Author: lester_cheung $ $Id: //guest/lester_cheung/p4util/p4util/support/clients_atime.py#3 $ ''' from __future__ import print_function __version__ = '0.{0}'.format('$Change: 9166 $'.split()[-2]) import argparse import logging import os logging.basicConfig(format='%(asctime)-15s %(funcName)s.%(levelname)s %(message)s', level=logging.DEBUG) import P4 def parse_args(): '''parse command-line options''' ap = argparse.ArgumentParser(description=__doc__) p4 = P4.P4() ap.add_argument('-p', '--port', metavar=p4.env('P4PORT'), default=p4.env('P4PORT')) ap.add_argument('-u', '--user', metavar=p4.env('P4USER'), default=p4.env('P4USER')) ap.add_argument('-c', '--client', metavar=p4.env('P4CLIENT'), default=p4.env('P4CLIENT')) ap.add_argument('-C', '--charset', metavar=p4.env('P4CHARSET'), default=p4.env('P4CHARSET')) return ap.parse_args() def main(): log = logging.getLogger(__name__) cfg = parse_args() log.debug(cfg) p4 = P4.P4() p4.prog = os.path.basename(__file__) if cfg.user: p4.user = cfg.user if cfg.port: p4.port = cfg.port if cfg.client: p4.client = cfg.client if cfg.charset: p4.charset = cfg.charset p4.connect() clients = [] for c in p4.iterate_clients(): clients.append( dict(atime=c.get('Access', ''), client=c.get('Client', ''), owner=c.get('Owner', ''))) p4.disconnect() clients.sort(key=lambda x: x.get('atime'), reverse=True) print('{:<20} {:<40} {}'.format('ACCESSED', 'CLIENT', 'OWNER')) for c in clients: print('{atime} {client:<40} {owner}'.format(atime=c.get('atime'), client=c.get('client'), owner=c.get('owner'))) if __name__ == '__main__': main()