in benchmarking/platforms/device_manager.py [0:0]
def run(self):
reboot = self.args.reboot and (
self.force_reboot
or self.device["reboot_time"] + REBOOT_INTERVAL < datetime.datetime.now()
)
success = True
# reboot mobile devices if required
if reboot:
raw_args = []
raw_args.extend(["--platform", self.args.platform])
raw_args.extend(["--device", self.device["hash"]])
raw_args.extend(["--android_dir", self.args.android_dir])
self.device["rebooting"] = True
if reboot_device(raw_args=raw_args):
getLogger().info("Device {} was rebooted.".format(self.device))
self.device["reboot_time"] = datetime.datetime.now()
else:
self.device.pop("rebooting")
getLogger().critical(f"Device {self.device} could not be rebooted.")
success = False
# sleep for device cooldown
if self.args.platform.startswith("ios") or self.args.platform.startswith(
"android"
):
getLogger().info("Sleep 180 seconds")
time.sleep(180)
else:
getLogger().info("Sleep 20 seconds")
time.sleep(20)
# device should be available again, remove rebooting flag.
if "rebooting" in self.device:
del self.device["rebooting"]
if success:
self.device["available"] = True
device_str = getDevicesString([self.device])
self.db.updateDevices(self.args.claimer_id, device_str, False)
getLogger().info(
"Device {}({}) available".format(
self.device["kind"], self.device["hash"]
)
)
else:
self.device["live"] = False
getLogger().info("CoolDownDevice lock released")