)]}' { "commit": "52c2fba79e77ccd60dc4e01a66539bc3237277fb", "tree": "fd551b0b03f079b2d118395dde4faf6ab6f1cc8c", "parents": [ "5c56c8311db4ec21451ba60de47ab251bee202a3" ], "author": { "name": "xixuan", "email": "xixuan@google.com", "time": "Fri May 20 17:02:48 2016 -0700" }, "committer": { "name": "chrome-bot", "email": "chrome-bot@chromium.org", "time": "Mon Jul 25 21:02:09 2016 -0700" }, "message": "dev: add initial APIs to devserver to support cros auto-update.\n\nThis CL adds three APIs on devserver:\n1. \u0027cros_au\u0027 API: to support \u0027start cros auto-update\u0027.\n2. \u0027get_au_status\u0027 API: to check the status of cros auto-update.\n3. \u0027collect_au_log\u0027 API: to collect auto-update log from devserver.\n4. \u0027handler_cleanup\u0027 API: delete the status file for tracking the progress of\n CrOS auto-update.\n5. \u0027kill_au_proc\u0027 API: to kill unexpected auto-update process for DUT.\n\nAlso it updates the unittests and integration test.\n\nThe \u0027cros_au\u0027 API triggers a background process to support the whole\nauto-update processes for a CrOS host, includes:\n1. Transfer devserver/stateful update package.\n2. If devserver cannot run on the host, restore the stateful partition.\n3. If restore_stateful_partiton is not required, and stateful_update is\nrequired, do stateful_update.\n4. If stateful_update fails, or rootfs_update is required, do rootfs update.\n5. Final check after the whole auto-update process.\n\nBUG\u003dchromium:613765\nTEST\u003dLocally ran \u0027ds.auto_update([dut], [image_path])\u0027;\nRan \u0027repair\u0027 for dut from local autotest instance;\nRan unittest, devserver_integration_test.\n\n Changes to be committed:\n\tmodified: Makefile\n\tnew file: cros_update.py\n\tnew file: cros_update_logging.py\n\tnew file: cros_update_progress.py\n\tnew file: cros_update_unittest.py\n\tmodified: devserver.py\n\tmodified: devserver_integration_test.py\n\nChange-Id: I2e9c116bc1e0b07d37b540266fd252aee4fd6e84\nReviewed-on: https://chromium-review.googlesource.com/346199\nCommit-Ready: Xixuan Wu \u003cxixuan@chromium.org\u003e\nTested-by: Xixuan Wu \u003cxixuan@chromium.org\u003e\nReviewed-by: Xixuan Wu \u003cxixuan@chromium.org\u003e\n", "tree_diff": [ { "type": "modify", "old_id": "f05771879cf1fce898e441928e9dc5f457c4f030", "old_mode": 33188, "old_path": "Makefile", "new_id": "ee1e9f27af3f8f204ef67b9e8e8ef9f11d04d9b7", "new_mode": 33188, "new_path": "Makefile" }, { "type": "add", "old_id": "0000000000000000000000000000000000000000", "old_mode": 0, "old_path": "/dev/null", "new_id": "3239ce4db74ae9874283cde333a7c10892a63370", "new_mode": 33188, "new_path": "cros_update.py" }, { "type": "add", "old_id": "0000000000000000000000000000000000000000", "old_mode": 0, "old_path": "/dev/null", "new_id": "b1fca8cc77f8007882fbab88c5b045f1b9a862f0", "new_mode": 33188, "new_path": "cros_update_logging.py" }, { "type": "add", "old_id": "0000000000000000000000000000000000000000", "old_mode": 0, "old_path": "/dev/null", "new_id": "9ab43e3ada5d5341b720c17671516dbea0e320a2", "new_mode": 33188, "new_path": "cros_update_progress.py" }, { "type": "add", "old_id": "0000000000000000000000000000000000000000", "old_mode": 0, "old_path": "/dev/null", "new_id": "9aae81558116b1c4b4a003e20e0a8b0d8d483230", "new_mode": 33261, "new_path": "cros_update_unittest.py" }, { "type": "modify", "old_id": "936966e0f0d059c5e141115b89c68a936c97a87e", "old_mode": 33261, "old_path": "devserver.py", "new_id": "71351acd7cad23bca1d6248287b44d6cba3dfa1c", "new_mode": 33261, "new_path": "devserver.py" }, { "type": "modify", "old_id": "93b994c37dc2a62a8a5d45bef787d60081988530", "old_mode": 33261, "old_path": "devserver_integration_test.py", "new_id": "6de4cca9127891412c30951faf5ae1ede3fb58e0", "new_mode": 33261, "new_path": "devserver_integration_test.py" } ] }