def get_device_info()

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")