When you say many things I assume you are referring to docker-compose, bootloader and os-image…
No not exactly. Say you are doing a docker-compose update. Aktualizr is downloading dozens of other metadata and other information that is not the docker-compose file. That goes for any update performed. That is why I’m saying you probably don’t care about that other stuff, you just want to know about the docker-compose file that was downloaded. Am I correct?
Okay, so there is no ideal mechanism to get you what you want at the moment. If you want a detailed installation result, the best we have at the moment is to parse the journalctl
logs of Aktualizr. If you turn the logs up to trace level like so: Aktualizr - Modifying the Settings of Torizon Update Client | Toradex Developer Center
Then there is a detailed installation report that gets produced and sent to the server after each update. The full installation report is printed in the logs as well at trace level.
Example:
Installation report
Sep 13 17:41:45 apalis-imx8-06738453 aktualizr-torizon[1361]: put request body:{
Sep 13 17:41:45 apalis-imx8-06738453 aktualizr-torizon[1361]: "signatures" :
Sep 13 17:41:45 apalis-imx8-06738453 aktualizr-torizon[1361]: [
Sep 13 17:41:45 apalis-imx8-06738453 aktualizr-torizon[1361]: {
Sep 13 17:41:45 apalis-imx8-06738453 aktualizr-torizon[1361]: "keyid" : "171cda6f3a6abe24441f07b95221e2378a8bf034d5223621557d4e03418eb1f3",
Sep 13 17:41:45 apalis-imx8-06738453 aktualizr-torizon[1361]: "method" : "rsassa-pss",
Sep 13 17:41:45 apalis-imx8-06738453 aktualizr-torizon[1361]: "sig" : "YJLYOhZpC/RCjHKu03xVFUwnN9sLj9YHmbSrKXNA7da6m+JjiJhxhLOtvp+f5y7+9yijPolI7TS68GoRgec7kHF4Nb8iGMVFvC7uqMTxUljmGChcCwyO2yKA54DPj8IO5zXSxvrSQMeVeqAeiX0RRSg1Jt7un2H7l33R1hUBsUo9nGeScqOWOR2EkWcERYjYAH+X02iiOE0L/xsNZjTEoqPDFbGJ4Fo75F4UwL1k8lZNa7DDWNMRdSf3jagDtkt5xKZ793aDcjE/2RQjJs18zPLVWhnPfc9E9RrUMSRQNX45ucx9M9Wd7iBwMmoSMDdCYf/6B6tCp44BhbPmijOfdw=="
Sep 13 17:41:45 apalis-imx8-06738453 aktualizr-torizon[1361]: }
Sep 13 17:41:45 apalis-imx8-06738453 aktualizr-torizon[1361]: ],
Sep 13 17:41:45 apalis-imx8-06738453 aktualizr-torizon[1361]: "signed" :
Sep 13 17:41:45 apalis-imx8-06738453 aktualizr-torizon[1361]: {
Sep 13 17:41:45 apalis-imx8-06738453 aktualizr-torizon[1361]: "ecu_version_manifests" :
Sep 13 17:41:45 apalis-imx8-06738453 aktualizr-torizon[1361]: {
Sep 13 17:41:45 apalis-imx8-06738453 aktualizr-torizon[1361]: "0a6c653c0d341f62863d317282c62348e1fb904bcb93e45e195dfe6b8671dd28" :
Sep 13 17:41:45 apalis-imx8-06738453 aktualizr-torizon[1361]: {
Sep 13 17:41:45 apalis-imx8-06738453 aktualizr-torizon[1361]: "signatures" :
Sep 13 17:41:45 apalis-imx8-06738453 aktualizr-torizon[1361]: [
Sep 13 17:41:45 apalis-imx8-06738453 aktualizr-torizon[1361]: {
Sep 13 17:41:45 apalis-imx8-06738453 aktualizr-torizon[1361]: "keyid" : "0a6c653c0d341f62863d317282c62348e1fb904bcb93e45e195dfe6b8671dd28",
Sep 13 17:41:45 apalis-imx8-06738453 aktualizr-torizon[1361]: "method" : "rsassa-pss",
Sep 13 17:41:45 apalis-imx8-06738453 aktualizr-torizon[1361]: "sig" : "I5g7FI7M2Tz++/Xdcc6PWyGS/p1koaqG6cvcqfzDyZqiDrt1WaZ/bENtx7hpNcAhVYOAxNmWqqbEP2mb3QZp3YFr8Q/+/TeeO7/j5qfAa70Pz9MSTwukmFhI2If3PKoDu0Y5icvW8A3cCTC6e7aL1pJrPpRDDMQ7juc+wRFVEYZKbXeLDWeVdGfXb3dG/f098F4CaM0nyfnQwl/0FUHZQCafoumh+xJYWZs3nSCnK6c8A6yMeVqglxZCqRpthvhe1DX/Hcn9IvD/bvw/s5OBY61dyXCeG0OWAmavA3y4Oi3Q1ZmCEuoQyHUBYmOC3vX8EBUpG6QI+pilDOBfU9cc8w=="
Sep 13 17:41:45 apalis-imx8-06738453 aktualizr-torizon[1361]: }
Sep 13 17:41:45 apalis-imx8-06738453 aktualizr-torizon[1361]: ],
Sep 13 17:41:45 apalis-imx8-06738453 aktualizr-torizon[1361]: "signed" :
Sep 13 17:41:45 apalis-imx8-06738453 aktualizr-torizon[1361]: {
Sep 13 17:41:45 apalis-imx8-06738453 aktualizr-torizon[1361]: "attacks_detected" : "",
Sep 13 17:41:45 apalis-imx8-06738453 aktualizr-torizon[1361]: "ecu_serial" : "0a6c653c0d341f62863d317282c62348e1fb904bcb93e45e195dfe6b8671dd28",
Sep 13 17:41:45 apalis-imx8-06738453 aktualizr-torizon[1361]: "installed_image" :
Sep 13 17:41:45 apalis-imx8-06738453 aktualizr-torizon[1361]: {
Sep 13 17:41:45 apalis-imx8-06738453 aktualizr-torizon[1361]: "fileinfo" :
Sep 13 17:41:45 apalis-imx8-06738453 aktualizr-torizon[1361]: {
Sep 13 17:41:45 apalis-imx8-06738453 aktualizr-torizon[1361]: "hashes" :
Sep 13 17:41:45 apalis-imx8-06738453 aktualizr-torizon[1361]: {
Sep 13 17:41:45 apalis-imx8-06738453 aktualizr-torizon[1361]: "sha256" : "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
Sep 13 17:41:45 apalis-imx8-06738453 aktualizr-torizon[1361]: },
Sep 13 17:41:45 apalis-imx8-06738453 aktualizr-torizon[1361]: "length" : 0
Sep 13 17:41:45 apalis-imx8-06738453 aktualizr-torizon[1361]: },
Sep 13 17:41:45 apalis-imx8-06738453 aktualizr-torizon[1361]: "filepath" : "noimage"
Sep 13 17:41:45 apalis-imx8-06738453 aktualizr-torizon[1361]: },
Sep 13 17:41:45 apalis-imx8-06738453 aktualizr-torizon[1361]: "previous_timeserver_time" : "1970-01-01T00:00:00Z",
Sep 13 17:41:45 apalis-imx8-06738453 aktualizr-torizon[1361]: "timeserver_time" : "1970-01-01T00:00:00Z"
Sep 13 17:41:45 apalis-imx8-06738453 aktualizr-torizon[1361]: }
Sep 13 17:41:45 apalis-imx8-06738453 aktualizr-torizon[1361]: },
Sep 13 17:41:45 apalis-imx8-06738453 aktualizr-torizon[1361]: "171cda6f3a6abe24441f07b95221e2378a8bf034d5223621557d4e03418eb1f3" :
Sep 13 17:41:45 apalis-imx8-06738453 aktualizr-torizon[1361]: {
Sep 13 17:41:45 apalis-imx8-06738453 aktualizr-torizon[1361]: "signatures" :
Sep 13 17:41:45 apalis-imx8-06738453 aktualizr-torizon[1361]: [
Sep 13 17:41:45 apalis-imx8-06738453 aktualizr-torizon[1361]: {
Sep 13 17:41:45 apalis-imx8-06738453 aktualizr-torizon[1361]: "keyid" : "171cda6f3a6abe24441f07b95221e2378a8bf034d5223621557d4e03418eb1f3",
Sep 13 17:41:45 apalis-imx8-06738453 aktualizr-torizon[1361]: "method" : "rsassa-pss",
Sep 13 17:41:45 apalis-imx8-06738453 aktualizr-torizon[1361]: "sig" : "HZ94pj4Op3M8KKmaSqU49dou/QGQ8jMOHL4U7ghA43vYc77IvgOzi9NZFCSnQSVyTrQq400MFHpNMOCAwzgdCYr8JfDt7DCt5zQGSy0OAWZe6g4vfvjB5cz1IG6hOTuYOCCIiY4F3Mf2ESQicT9Z8uS9JNzKsrm6TCMUYtBMdecFkUYPtVImRaSKEjE2ZiYMtU/3oHFU2r/ZvT5+I+fzeRkh40L2dHMTVTaBUWcoJKgxF7OIucHDcvft/W2GV3ts2f5h9z0d3XrW8YAN29Kl9hIneuf2I8+kiAvqa+uBfeGUFGw8YSTNrABv4toVm7SjucNe1sGakvZUpHgd1BokUA=="
Sep 13 17:41:45 apalis-imx8-06738453 aktualizr-torizon[1361]: }
Sep 13 17:41:45 apalis-imx8-06738453 aktualizr-torizon[1361]: ],
Sep 13 17:41:45 apalis-imx8-06738453 aktualizr-torizon[1361]: "signed" :
Sep 13 17:41:45 apalis-imx8-06738453 aktualizr-torizon[1361]: {
Sep 13 17:41:45 apalis-imx8-06738453 aktualizr-torizon[1361]: "attacks_detected" : "",
Sep 13 17:41:45 apalis-imx8-06738453 aktualizr-torizon[1361]: "ecu_serial" : "171cda6f3a6abe24441f07b95221e2378a8bf034d5223621557d4e03418eb1f3",
Sep 13 17:41:45 apalis-imx8-06738453 aktualizr-torizon[1361]: "installed_image" :
Sep 13 17:41:45 apalis-imx8-06738453 aktualizr-torizon[1361]: {
Sep 13 17:41:45 apalis-imx8-06738453 aktualizr-torizon[1361]: "fileinfo" :
Sep 13 17:41:45 apalis-imx8-06738453 aktualizr-torizon[1361]: {
Sep 13 17:41:45 apalis-imx8-06738453 aktualizr-torizon[1361]: "hashes" :
Sep 13 17:41:45 apalis-imx8-06738453 aktualizr-torizon[1361]: {
Sep 13 17:41:45 apalis-imx8-06738453 aktualizr-torizon[1361]: "sha256" : "86648d68fec30477fa8b89b222e1fddc74711a1a90b4b0240183ddff88b7cdb4"
Sep 13 17:41:45 apalis-imx8-06738453 aktualizr-torizon[1361]: },
Sep 13 17:41:45 apalis-imx8-06738453 aktualizr-torizon[1361]: "length" : 0
Sep 13 17:41:45 apalis-imx8-06738453 aktualizr-torizon[1361]: },
Sep 13 17:41:45 apalis-imx8-06738453 aktualizr-torizon[1361]: "filepath" : "unknown"
Sep 13 17:41:45 apalis-imx8-06738453 aktualizr-torizon[1361]: },
Sep 13 17:41:45 apalis-imx8-06738453 aktualizr-torizon[1361]: "previous_timeserver_time" : "1970-01-01T00:00:00Z",
Sep 13 17:41:45 apalis-imx8-06738453 aktualizr-torizon[1361]: "report_counter" : "7",
Sep 13 17:41:45 apalis-imx8-06738453 aktualizr-torizon[1361]: "timeserver_time" : "1970-01-01T00:00:00Z"
Sep 13 17:41:45 apalis-imx8-06738453 aktualizr-torizon[1361]: }
Sep 13 17:41:45 apalis-imx8-06738453 aktualizr-torizon[1361]: },
Sep 13 17:41:45 apalis-imx8-06738453 aktualizr-torizon[1361]: "c524d5f96d1a87cbf89565e1c62bba2bc73c34c56001e3bcca0e6fdc0f397399" :
Sep 13 17:41:45 apalis-imx8-06738453 aktualizr-torizon[1361]: {
Sep 13 17:41:45 apalis-imx8-06738453 aktualizr-torizon[1361]: "signatures" :
Sep 13 17:41:45 apalis-imx8-06738453 aktualizr-torizon[1361]: [
Sep 13 17:41:45 apalis-imx8-06738453 aktualizr-torizon[1361]: {
Sep 13 17:41:45 apalis-imx8-06738453 aktualizr-torizon[1361]: "keyid" : "c524d5f96d1a87cbf89565e1c62bba2bc73c34c56001e3bcca0e6fdc0f397399",
Sep 13 17:41:45 apalis-imx8-06738453 aktualizr-torizon[1361]: "method" : "rsassa-pss",
Sep 13 17:41:45 apalis-imx8-06738453 aktualizr-torizon[1361]: "sig" : "NJp1exbCV6UQ0HTDVYlx9+wxE5yuf7UCpOAG/2LvI4gRZYdNX6Ri8A8135RYCvP2M1XOQOtpWANN9wLixHZG78mL8nHWb9bZn94TdHkQAIkrHyjWUIzR3iQ/IA1hW/lJrlOionUeMTycF4uy9i6JfedbANPXCglH/5JyGwMh2xRHAGHRxviCdJfbI5L9KUuy/sq++LsySkq3ZOJRy2X55JsoPsNkjVZ8i0GlkBJcDgLLFz4H6ZHzmJDgwJ5KIfAf2U2DkQDhcdSs7a6bQk4YIAJB/4BRTaWFabfJh04ggGg+0ioT6AuqN3UVs5X5NBdbPRjlY7PyJ2r5QxQRHqs72g=="
Sep 13 17:41:45 apalis-imx8-06738453 aktualizr-torizon[1361]: }
Sep 13 17:41:45 apalis-imx8-06738453 aktualizr-torizon[1361]: ],
Sep 13 17:41:45 apalis-imx8-06738453 aktualizr-torizon[1361]: "signed" :
Sep 13 17:41:45 apalis-imx8-06738453 aktualizr-torizon[1361]: {
Sep 13 17:41:45 apalis-imx8-06738453 aktualizr-torizon[1361]: "attacks_detected" : "",
Sep 13 17:41:45 apalis-imx8-06738453 aktualizr-torizon[1361]: "ecu_serial" : "c524d5f96d1a87cbf89565e1c62bba2bc73c34c56001e3bcca0e6fdc0f397399",
Sep 13 17:41:45 apalis-imx8-06738453 aktualizr-torizon[1361]: "installed_image" :
Sep 13 17:41:45 apalis-imx8-06738453 aktualizr-torizon[1361]: {
Sep 13 17:41:45 apalis-imx8-06738453 aktualizr-torizon[1361]: "fileinfo" :
Sep 13 17:41:45 apalis-imx8-06738453 aktualizr-torizon[1361]: {
Sep 13 17:41:45 apalis-imx8-06738453 aktualizr-torizon[1361]: "hashes" :
Sep 13 17:41:45 apalis-imx8-06738453 aktualizr-torizon[1361]: {
Sep 13 17:41:45 apalis-imx8-06738453 aktualizr-torizon[1361]: "sha256" : "37d9a8b49d8160d3fba70349598f92ffb476a2aa89cb9edc446818c26ae63a8f"
Sep 13 17:41:45 apalis-imx8-06738453 aktualizr-torizon[1361]: },
Sep 13 17:41:45 apalis-imx8-06738453 aktualizr-torizon[1361]: "length" : 99
Sep 13 17:41:45 apalis-imx8-06738453 aktualizr-torizon[1361]: },
Sep 13 17:41:45 apalis-imx8-06738453 aktualizr-torizon[1361]: "filepath" : "update-tests-1.0"
Sep 13 17:41:45 apalis-imx8-06738453 aktualizr-torizon[1361]: },
Sep 13 17:41:45 apalis-imx8-06738453 aktualizr-torizon[1361]: "previous_timeserver_time" : "1970-01-01T00:00:00Z",
Sep 13 17:41:45 apalis-imx8-06738453 aktualizr-torizon[1361]: "timeserver_time" : "1970-01-01T00:00:00Z"
Sep 13 17:41:45 apalis-imx8-06738453 aktualizr-torizon[1361]: }
Sep 13 17:41:45 apalis-imx8-06738453 aktualizr-torizon[1361]: }
Sep 13 17:41:45 apalis-imx8-06738453 aktualizr-torizon[1361]: },
Sep 13 17:41:45 apalis-imx8-06738453 aktualizr-torizon[1361]: "installation_report" :
Sep 13 17:41:45 apalis-imx8-06738453 aktualizr-torizon[1361]: {
Sep 13 17:41:45 apalis-imx8-06738453 aktualizr-torizon[1361]: "content_type" : "application/vnd.com.here.otac.installationReport.v1",
Sep 13 17:41:45 apalis-imx8-06738453 aktualizr-torizon[1361]: "report" :
Sep 13 17:41:45 apalis-imx8-06738453 aktualizr-torizon[1361]: {
Sep 13 17:41:45 apalis-imx8-06738453 aktualizr-torizon[1361]: "correlation_id" : "urn:here-ota:mtu:36c702a9-05d4-4242-b640-0a187f42ae64",
Sep 13 17:41:45 apalis-imx8-06738453 aktualizr-torizon[1361]: "items" :
Sep 13 17:41:45 apalis-imx8-06738453 aktualizr-torizon[1361]: [
Sep 13 17:41:45 apalis-imx8-06738453 aktualizr-torizon[1361]: {
Sep 13 17:41:45 apalis-imx8-06738453 aktualizr-torizon[1361]: "ecu" : "c524d5f96d1a87cbf89565e1c62bba2bc73c34c56001e3bcca0e6fdc0f397399",
Sep 13 17:41:45 apalis-imx8-06738453 aktualizr-torizon[1361]: "result" :
Sep 13 17:41:45 apalis-imx8-06738453 aktualizr-torizon[1361]: {
Sep 13 17:41:45 apalis-imx8-06738453 aktualizr-torizon[1361]: "code" : "OK",
Sep 13 17:41:45 apalis-imx8-06738453 aktualizr-torizon[1361]: "description" : "",
Sep 13 17:41:45 apalis-imx8-06738453 aktualizr-torizon[1361]: "success" : true
Sep 13 17:41:45 apalis-imx8-06738453 aktualizr-torizon[1361]: }
Sep 13 17:41:45 apalis-imx8-06738453 aktualizr-torizon[1361]: }
Sep 13 17:41:45 apalis-imx8-06738453 aktualizr-torizon[1361]: ],
Sep 13 17:41:45 apalis-imx8-06738453 aktualizr-torizon[1361]: "raw_report" : "Installation succesful",
Sep 13 17:41:45 apalis-imx8-06738453 aktualizr-torizon[1361]: "result" :
Sep 13 17:41:45 apalis-imx8-06738453 aktualizr-torizon[1361]: {
Sep 13 17:41:45 apalis-imx8-06738453 aktualizr-torizon[1361]: "code" : "OK",
Sep 13 17:41:45 apalis-imx8-06738453 aktualizr-torizon[1361]: "description" : "Device has been successfully installed",
Sep 13 17:41:45 apalis-imx8-06738453 aktualizr-torizon[1361]: "success" : true
Sep 13 17:41:45 apalis-imx8-06738453 aktualizr-torizon[1361]: }
Sep 13 17:41:45 apalis-imx8-06738453 aktualizr-torizon[1361]: }
Sep 13 17:41:45 apalis-imx8-06738453 aktualizr-torizon[1361]: },
Sep 13 17:41:45 apalis-imx8-06738453 aktualizr-torizon[1361]: "primary_ecu_serial" : "171cda6f3a6abe24441f07b95221e2378a8bf034d5223621557d4e03418eb1f3"
Sep 13 17:41:45 apalis-imx8-06738453 aktualizr-torizon[1361]: }
Sep 13 17:41:45 apalis-imx8-06738453 aktualizr-torizon[1361]: }
These logs should have what you want. They’re timestamped, have the package-name and version, the hash, and the result of the update. The only thing you need to know is which ECU serial corresponds to what component.
With my example, you can see the ECU with the serial c524d5f96d1a87cbf89565e1c62bba2bc73c34c56001e3bcca0e6fdc0f397399
was updated. On my device this corresponds to the docker-compose component, this is unique per device but it should be apparent via the logs. So, this component was updated successfully, the hash of the installed component (docker-compose file) is 37d9a8b49d8160d3fba70349598f92ffb476a2aa89cb9edc446818c26ae63a8f
. The file name of the update is update-tests-1.0
meaning the package name was update-tests
and the version was 1.0
.
This is as detailed of an installation report as is available. Of course you’ll need to have a way to parse and filter the logs you want. Fluent-bit could be helpful as a parser for systemd, and it can output the filtered information to a file.
Best Regards,
Jeremias