in webserver_pkg/webserver_pkg/device_info_api.py [0:0]
def get_device_info():
"""API to call the service to get the current hardware version of the
DeepRacer vehicle and the software version of aws-deepracer-core package.
Returns:
dict: Execution status if the API call was successful, hardware and
software version details and error reason if call fails.
"""
webserver_node = webserver_publisher_node.get_webserver_node()
webserver_node.get_logger().info("Providing hardware and software revision "
"details as response")
try:
get_revision_info_req = GetDeviceInfoSrv.Request()
get_revision_info_res = call_service_sync(webserver_node.get_revision_info_cli,
get_revision_info_req)
if get_revision_info_res and get_revision_info_res.error == 0:
data = {
"hardware_version": get_revision_info_res.hardware_version,
"software_version": get_revision_info_res.software_version,
"success": True
}
webserver_node.get_logger().info(f"Hardware version: {data['hardware_version']}, "
f"Software version: {data['software_version']}")
else:
webserver_node.get_logger().error("Get device info service call failed")
data = {
"reason": "Error",
"success": False
}
return jsonify(data)
except Exception as ex:
webserver_node.get_logger().error(f"Unable to reach revision info server: {ex}")
return jsonify(success=False, reason="Error")