bitbake: bitbake-hashclient: Add ping command

Adds a ping subcommand to bitbake-hashclient which can be useful to
measure connection latency

(Bitbake rev: 337487fdffae92091fc33b2346d46c39db5a130f)

Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Joshua Watt
2024-05-22 10:29:43 -06:00
committed by Richard Purdie
parent 7812f104db
commit 76421d5742

View File

@@ -16,6 +16,7 @@ import time
import warnings
import netrc
import json
import statistics
warnings.simplefilter("default")
try:
@@ -225,6 +226,26 @@ def main():
print("true" if result else "false")
return 0
def handle_ping(args, client):
times = []
for i in range(1, args.count + 1):
print(f"Ping {i} of {args.count}... ", end="")
start_time = time.perf_counter()
client.ping()
elapsed = time.perf_counter() - start_time
times.append(elapsed)
print(f"{elapsed:.3f}s")
mean = statistics.mean(times)
std_dev = statistics.pstdev(times)
print("------------------------")
print(f"Average round trip time: {mean:.3f}s")
print(f"Round trip time std dev: {std_dev:.3f}s")
print(f"Min time is: {min(times):.3f}s")
print(f"Max time is: {max(times):.3f}s")
return 0
parser = argparse.ArgumentParser(description='Hash Equivalence Client')
parser.add_argument('--address', default=DEFAULT_ADDRESS, help='Server address (default "%(default)s")')
parser.add_argument('--log', default='WARNING', help='Set logging level')
@@ -322,6 +343,10 @@ def main():
unihash_exists_parser.add_argument("unihash", help="Unihash to check")
unihash_exists_parser.set_defaults(func=handle_unihash_exists)
ping_parser = subparsers.add_parser('ping', help="Ping server")
ping_parser.add_argument("-n", "--count", type=int, help="Number of pings. Default is %(default)s", default=10)
ping_parser.set_defaults(func=handle_ping)
args = parser.parse_args()
logger = logging.getLogger('hashserv')