mirror of
https://git.yoctoproject.org/poky
synced 2026-02-26 19:39:40 +01:00
bitbake: bitbake-hashclient: Add commands to get hashes
Adds subcommands to query the server for equivalent hashes and for output hashes. (Bitbake rev: 36ba202232399738670c9fb11169ead5590a3e82) Signed-off-by: Joshua Watt <JPEWhacker@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
committed by
Richard Purdie
parent
5b18ff6d6b
commit
6b6374c336
@@ -52,6 +52,22 @@ def print_user(u):
|
||||
|
||||
|
||||
def main():
|
||||
def handle_get(args, client):
|
||||
result = client.get_taskhash(args.method, args.taskhash, all_properties=True)
|
||||
if not result:
|
||||
return 0
|
||||
|
||||
print(json.dumps(result, sort_keys=True, indent=4))
|
||||
return 0
|
||||
|
||||
def handle_get_outhash(args, client):
|
||||
result = client.get_outhash(args.method, args.outhash, args.taskhash)
|
||||
if not result:
|
||||
return 0
|
||||
|
||||
print(json.dumps(result, sort_keys=True, indent=4))
|
||||
return 0
|
||||
|
||||
def handle_stats(args, client):
|
||||
if args.reset:
|
||||
s = client.reset_stats()
|
||||
@@ -189,6 +205,17 @@ def main():
|
||||
|
||||
subparsers = parser.add_subparsers()
|
||||
|
||||
get_parser = subparsers.add_parser('get', help="Get the unihash for a taskhash")
|
||||
get_parser.add_argument("method", help="Method to query")
|
||||
get_parser.add_argument("taskhash", help="Task hash to query")
|
||||
get_parser.set_defaults(func=handle_get)
|
||||
|
||||
get_outhash_parser = subparsers.add_parser('get-outhash', help="Get output hash information")
|
||||
get_outhash_parser.add_argument("method", help="Method to query")
|
||||
get_outhash_parser.add_argument("outhash", help="Output hash to query")
|
||||
get_outhash_parser.add_argument("taskhash", help="Task hash to query")
|
||||
get_outhash_parser.set_defaults(func=handle_get_outhash)
|
||||
|
||||
stats_parser = subparsers.add_parser('stats', help='Show server stats')
|
||||
stats_parser.add_argument('--reset', action='store_true',
|
||||
help='Reset server stats')
|
||||
|
||||
@@ -842,6 +842,26 @@ class TestHashEquivalenceClient(HashEquivalenceTestSetup, unittest.TestCase):
|
||||
def get_server_addr(self, server_idx):
|
||||
return "unix://" + os.path.join(self.temp_dir.name, 'sock%d' % server_idx)
|
||||
|
||||
def test_get(self):
|
||||
taskhash, outhash, unihash = self.create_test_hash(self.client)
|
||||
|
||||
p = self.run_hashclient(["--address", self.server_address, "get", self.METHOD, taskhash])
|
||||
data = json.loads(p.stdout)
|
||||
self.assertEqual(data["unihash"], unihash)
|
||||
self.assertEqual(data["outhash"], outhash)
|
||||
self.assertEqual(data["taskhash"], taskhash)
|
||||
self.assertEqual(data["method"], self.METHOD)
|
||||
|
||||
def test_get_outhash(self):
|
||||
taskhash, outhash, unihash = self.create_test_hash(self.client)
|
||||
|
||||
p = self.run_hashclient(["--address", self.server_address, "get-outhash", self.METHOD, outhash, taskhash])
|
||||
data = json.loads(p.stdout)
|
||||
self.assertEqual(data["unihash"], unihash)
|
||||
self.assertEqual(data["outhash"], outhash)
|
||||
self.assertEqual(data["taskhash"], taskhash)
|
||||
self.assertEqual(data["method"], self.METHOD)
|
||||
|
||||
def test_stats(self):
|
||||
p = self.run_hashclient(["--address", self.server_address, "stats"], check=True)
|
||||
json.loads(p.stdout)
|
||||
|
||||
Reference in New Issue
Block a user