def _fix_uri(explanations, uri):
    old_uri = uri
    uri = phlsys_conduit.make_conduit_uri(uri)
    if uri != old_uri:
        diff = list(difflib.Differ().compare([old_uri], [uri]))
        diff = ['  ' + s.strip() for s in diff]
        diff = '\n'.join(diff)
        explanations.append("changed uri:\n{0}".format(diff))
    return uri
Beispiel #2
0
def _fix_uri(explanations, uri):
    old_uri = uri
    uri = phlsys_conduit.make_conduit_uri(uri)
    if uri != old_uri:
        diff = list(difflib.Differ().compare([old_uri], [uri]))
        diff = ['  ' + s.strip() for s in diff]
        diff = '\n'.join(diff)
        explanations.append("assumed uri to conduit:\n{0}".format(diff))
    return uri
def get_host(arcrc, host):
    normalised = phlsys_conduit.make_conduit_uri(host)
    return arcrc["hosts"].get(normalised, None)
def main():
    parser = argparse.ArgumentParser(
        formatter_class=argparse.RawDescriptionHelpFormatter,
        description=__doc__,
        epilog=_USAGE_EXAMPLES)

    parser.add_argument(
        'destination',
        metavar="destination",
        type=str,
        help="address of the Phabricator instance, e.g. "
        "https://secure.phabricator.com")

    parser.add_argument(
        '--count', '-c',
        metavar="TIMES",
        type=int,
        help="number of times to ping, default is unlimited")

    parser.add_argument(
        '--interval', '-i',
        metavar="SECONDS",
        type=float,
        default=1.0,
        help="wait interval seconds between sending each request, default is "
             "to wait one second. Minimum wait is 0.2 seconds.")

    args = parser.parse_args()

    if args.interval < 0.2:
        print "interval must be at least 0.2 seconds"
        sys.exit(2)

    # perform the ping and display the time taken and result
    uri = phlsys_conduit.make_conduit_uri(args.destination)
    print "conduit.ping " + str(uri)

    if args.count is not None:
        sequence = xrange(args.count)
    else:
        sequence = itertools.count()

    is_first = True

    Stats = collections.namedtuple(
        "phabping__Stats", ['min', 'max', 'sum', 'count'])
    stats = None

    try:
        for i in sequence:
            # pause between requests
            if not is_first:
                time.sleep(args.interval)

            print "request " + str(i + 1) + " :",

            conduit = phlsys_conduit.Conduit(uri)
            start = time.time()
            result = conduit.ping()
            end = time.time()

            msecs = (end - start) * 1000
            print result, ":", str(int(msecs)), "ms"

            # atomically update the 'stats' object
            # (we may receive KeyboardInterrupt during update)
            if stats is None:
                stats = Stats(min=msecs, max=msecs, sum=msecs, count=i + 1)
            else:
                stats = Stats(
                    min=min(stats.min, msecs),
                    max=max(stats.max, msecs),
                    sum=stats.sum + msecs,
                    count=i + 1)

            is_first = False
    except KeyboardInterrupt:
        # print a newline to separate the ^C
        print

    if not stats:
        print "no requests processed."
    else:
        print "---", uri, "conduit.ping statistics", "---"
        print stats.count, "requests processed"
        print "min / mean / max =",
        mean = stats.sum / stats.count
        vals = [stats.min, mean, stats.max]
        print ' / '.join(["{0:0.2f}".format(i) for i in vals]), 'ms'
def main():
    parser = argparse.ArgumentParser(
        formatter_class=argparse.RawDescriptionHelpFormatter,
        description=__doc__,
        epilog=_USAGE_EXAMPLES)

    parser.add_argument(
        'destination',
        metavar="destination",
        type=str,
        help="address of the Phabricator instance, e.g. "
        "https://secure.phabricator.com")

    parser.add_argument(
        '--count', '-c',
        metavar="TIMES",
        type=int,
        help="number of times to ping, default is unlimited")

    parser.add_argument(
        '--interval', '-i',
        metavar="SECONDS",
        type=float,
        default=1.0,
        help="wait interval seconds between sending each request, default is "
             "to wait one second. Minimum wait is 0.2 seconds.")

    args = parser.parse_args()

    if args.interval < 0.2:
        print("interval must be at least 0.2 seconds")
        sys.exit(2)

    # perform the ping and display the time taken and result
    uri = phlsys_conduit.make_conduit_uri(args.destination)
    print("conduit.ping " + str(uri))

    if args.count is not None:
        # pychecker requires sequence to be of same type so we have to wrap
        # xrange() in iter() to make it an iterator.
        sequence = iter(xrange(args.count))
    else:
        sequence = itertools.count()

    is_first = True

    Stats = collections.namedtuple(
        "phabping__Stats", ['min', 'max', 'sum', 'count'])
    stats = None

    try:
        for i in sequence:
            # pause between requests
            if not is_first:
                time.sleep(args.interval)

            print("request " + str(i + 1) + " :", end=' ')

            conduit = phlsys_conduit.Conduit(uri)
            start = time.time()
            result = conduit.ping()
            end = time.time()

            msecs = (end - start) * 1000
            print(result, ":", str(int(msecs)), "ms")

            # atomically update the 'stats' object
            # (we may receive KeyboardInterrupt during update)
            if stats is None:
                stats = Stats(min=msecs, max=msecs, sum=msecs, count=i + 1)
            else:
                stats = Stats(
                    min=min(stats.min, msecs),
                    max=max(stats.max, msecs),
                    sum=stats.sum + msecs,
                    count=i + 1)

            is_first = False
    except KeyboardInterrupt:
        # print a newline to separate the ^C
        print()

    if not stats:
        print("no requests processed.")
    else:
        print("---", uri, "conduit.ping statistics", "---")
        print(stats.count, "requests processed")
        print("min / mean / max =", end=' ')
        mean = stats.sum / stats.count
        vals = [stats.min, mean, stats.max]
        vals_str = ' / '.join(["{0:0.2f}".format(i) for i in vals])
        print(vals_str, 'ms')
def get_host(arcrc, host):
    normalised = phlsys_conduit.make_conduit_uri(host)
    return arcrc["hosts"].get(normalised, None)