1"""Util functions to help manage dut configurations. 2 3See proto definitions for descriptions of arguments. 4""" 5 6# Needed to load from @proto. Add @unused to silence lint. 7load("//config/util/bindings/proto.star", "protos") 8load( 9 "@proto//chromiumos/test/lab/api/dut.proto", 10 lab_pb = "chromiumos.test.lab.api", 11) 12load( 13 "@proto//chromiumos/test/lab/api/ip_endpoint.proto", 14 ip_pb = "chromiumos.test.lab.api", 15) 16 17def _create_dut(address, port = 22): 18 return lab_pb.Dut( 19 id = lab_pb.Dut.Id(value = address), 20 chromeos = lab_pb.Dut.ChromeOS( 21 ssh = ip_pb.IpEndpoint( 22 address = address, 23 port = port, 24 ), 25 ), 26 ) 27 28def _create_dut_topology(duts): 29 return lab_pb.DutTopology( 30 # Make the overall id the first dut id since this is mostly 31 # used for fakes setup/testing 32 id = lab_pb.DutTopology.Id(value = duts[0].id.value), 33 duts = duts, 34 ) 35 36dut = struct( 37 create_dut = _create_dut, 38 create_dut_topology = _create_dut_topology, 39) 40