New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 827734 link

Starred by 1 user

Issue metadata

Status: Verified
Owner:
Last visit > 30 days ago
Closed: Apr 2018
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 2
Type: Bug



Sign in to add a comment

Create a command for version assignment management

Reported by jrbarnette@chromium.org, Mar 31 2018

Issue description

Because of recent changes to how firmware images are bundled
in unibuild images (see  bug 782272 ), updating firmware for a
given hardware model is now a fraught process that can't reasonbly
be done manually.  Specifically, the process requires these steps:
 A) Identify the release build containing the target firmware.
 B) Determine the version of firmware bundled _for every model in
    the build_.
 C) Run `atest stable_version modify` command for the repair build,
    and for every model with firmware in the build.

Step A) is already part of the current process, and is manageable,
but step C) is (at best) tedious. Step B is entirely too fraught:
It requires finding the build metadata.json, and reading through it
to find every model's mapping.

Moreover, this fraught process is required even if only the repair
build is to be changed, because firmware mappings must track the
current repair build.

The fix to  bug 782272  contains all the code needed to perform the
updates automatically:  We need to write a script to wrap that
existing code in a human-usable interface.

 
Project Member

Comment 1 by bugdroid1@chromium.org, Apr 3 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/autotest/+/08e487d227dac583f4bebcbf42e6ae9dcf3053ab

commit 08e487d227dac583f4bebcbf42e6ae9dcf3053ab
Author: Richard Barnette <jrbarnette@chromium.org>
Date: Tue Apr 03 19:50:34 2018

[autotest] Simplify `get_firmware_versions()`

This simplifies `assign_stable_images.get_firmware_versions()`
not to require a version_map object.

BUG= chromium:827734 
TEST=unit tests, `assign_stable_images -n`

Change-Id: I9ad5b27ebf77a3af6856587e93c1cedcf85a0f35
Reviewed-on: https://chromium-review.googlesource.com/989293
Commit-Ready: Richard Barnette <jrbarnette@chromium.org>
Tested-by: Richard Barnette <jrbarnette@chromium.org>
Reviewed-by: Ningning Xia <nxia@chromium.org>

[modify] https://crrev.com/08e487d227dac583f4bebcbf42e6ae9dcf3053ab/site_utils/stable_images/assign_stable_images.py
[modify] https://crrev.com/08e487d227dac583f4bebcbf42e6ae9dcf3053ab/site_utils/stable_images/assign_stable_images_unittest.py
[modify] https://crrev.com/08e487d227dac583f4bebcbf42e6ae9dcf3053ab/server/frontend.py
[modify] https://crrev.com/08e487d227dac583f4bebcbf42e6ae9dcf3053ab/site_utils/deployment/install.py
[modify] https://crrev.com/08e487d227dac583f4bebcbf42e6ae9dcf3053ab/server/frontend_unittest.py

Project Member

Comment 2 by bugdroid1@chromium.org, Apr 3 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/autotest/+/d1057b0b308a8fe50eb65641cf9a1f8053b7da9c

commit d1057b0b308a8fe50eb65641cf9a1f8053b7da9c
Author: Richard Barnette <jrbarnette@chromium.org>
Date: Tue Apr 03 19:50:35 2018

[autotest] Simplify reading "omaha_status.json".

This is code refactoring to create a single function for reading
the "omaha_status.json" file from google storage.  The change is
being made preparatory to extracting the code into a new module.

BUG= chromium:827734 
TEST=unit tests, `assign_stable_images -n`

Change-Id: Idde19af54f22755deee086f50d9382bd3a98ae83
Reviewed-on: https://chromium-review.googlesource.com/991153
Commit-Ready: Richard Barnette <jrbarnette@chromium.org>
Tested-by: Richard Barnette <jrbarnette@chromium.org>
Reviewed-by: Ningning Xia <nxia@chromium.org>

[modify] https://crrev.com/d1057b0b308a8fe50eb65641cf9a1f8053b7da9c/site_utils/stable_images/assign_stable_images.py
[modify] https://crrev.com/d1057b0b308a8fe50eb65641cf9a1f8053b7da9c/site_utils/stable_images/assign_stable_images_unittest.py

Project Member

Comment 3 by bugdroid1@chromium.org, Apr 3 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/autotest/+/e6640c1c6146a2f34aaa77959029aef2f740ff86

commit e6640c1c6146a2f34aaa77959029aef2f740ff86
Author: Richard Barnette <jrbarnette@chromium.org>
Date: Tue Apr 03 19:50:36 2018

[autotest] Abstract out Omaha version comparison.

This adds a new function, _get_omaha_upgrade() to provide a more
abstract interface for doing checks for whether a given CrOS version
string should be upgraded, based on Omaha mappings.

BUG= chromium:827734 
TEST=unit tests, `assign_stable_images -n`

Change-Id: I1e76ecb042fa479f2b29d553a6af430d8b352835
Reviewed-on: https://chromium-review.googlesource.com/991333
Commit-Ready: Richard Barnette <jrbarnette@chromium.org>
Tested-by: Richard Barnette <jrbarnette@chromium.org>
Reviewed-by: Ningning Xia <nxia@chromium.org>

[modify] https://crrev.com/e6640c1c6146a2f34aaa77959029aef2f740ff86/site_utils/stable_images/assign_stable_images.py
[modify] https://crrev.com/e6640c1c6146a2f34aaa77959029aef2f740ff86/site_utils/stable_images/assign_stable_images_unittest.py

Project Member

Comment 4 by bugdroid1@chromium.org, Apr 6 2018

Project Member

Comment 5 by bugdroid1@chromium.org, Apr 12 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/autotest/+/206b25f908902d8102eeb5e55f329e4a357f86d6

commit 206b25f908902d8102eeb5e55f329e4a357f86d6
Author: Richard Barnette <jrbarnette@chromium.org>
Date: Thu Apr 12 19:38:28 2018

[autotest] Fix get_all_versions for AFE version maps.

The `get_all_versions()` method for AFE version mapping RPC objects
would do the wrong thing for Android and CrOS version maps; the
returned dictionaries would include mappings of either target.

This fixes the API implementation to do the right thing for all
cases.

BUG= chromium:827734 
TEST=test against the upcoming `stable_version` command.

Change-Id: Ie8ffc0e74fc4314796f43fda782574255a5f6617
Reviewed-on: https://chromium-review.googlesource.com/993975
Commit-Ready: Richard Barnette <jrbarnette@chromium.org>
Tested-by: Richard Barnette <jrbarnette@chromium.org>
Reviewed-by: Ningning Xia <nxia@chromium.org>

[modify] https://crrev.com/206b25f908902d8102eeb5e55f329e4a357f86d6/server/frontend.py

Project Member

Comment 6 by bugdroid1@chromium.org, Apr 13 2018

The following revision refers to this bug:
  https://chrome-internal.googlesource.com/chromeos/chromeos-admin/+/8564c4c0cbbf8882aedfe9853a0ff3f3e82705d1

commit 8564c4c0cbbf8882aedfe9853a0ff3f3e82705d1
Author: Richard Barnette <jrbarnette@google.com>
Date: Fri Apr 13 22:47:46 2018

Project Member

Comment 7 by bugdroid1@chromium.org, Apr 13 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/autotest/+/59eb7b5932a766d6f12b5605791a88017f60462f

commit 59eb7b5932a766d6f12b5605791a88017f60462f
Author: Richard Barnette <jrbarnette@chromium.org>
Date: Fri Apr 13 22:47:53 2018

[autotest] Don't detect labels with `deploy servo`.

The intent of `deploy servo` is that it not require a working DUT.
However, as constructed, `deploy servo` still attempts to do automatic
label detection, which _does_ require a working DUT.

So, don't run the label detection during the `deploy servo` command.

BUG= chromium:827734 
TEST=tested by users in the lab

Change-Id: I4c079b102146e1d136c394498db85048a2095c37
Reviewed-on: https://chromium-review.googlesource.com/1005495
Commit-Ready: Richard Barnette <jrbarnette@chromium.org>
Tested-by: Richard Barnette <jrbarnette@chromium.org>
Reviewed-by: Prathmesh Prabhu <pprabhu@chromium.org>

[modify] https://crrev.com/59eb7b5932a766d6f12b5605791a88017f60462f/site_utils/deployment/install.py

Project Member

Comment 8 by bugdroid1@chromium.org, Apr 13 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/third_party/autotest/+/c0ba5f84ccb8d9ff84d8b9b1480ea49185f808f1

commit c0ba5f84ccb8d9ff84d8b9b1480ea49185f808f1
Author: Richard Barnette <jrbarnette@chromium.org>
Date: Fri Apr 13 22:47:45 2018

[autotest] Add a new stable_version command.

This adds a new stable_version command that can be used to manage
stable version assignments.

BUG= chromium:827734 
TEST=run all four usage cases

Change-Id: I34ca4d24ec687fb000099e02bd88e267ef478ecf
Reviewed-on: https://chromium-review.googlesource.com/996907
Commit-Ready: Richard Barnette <jrbarnette@chromium.org>
Tested-by: Richard Barnette <jrbarnette@chromium.org>
Reviewed-by: Ningning Xia <nxia@chromium.org>

[add] https://crrev.com/c0ba5f84ccb8d9ff84d8b9b1480ea49185f808f1/site_utils/stable_images/stable_version.py
[add] https://crrev.com/c0ba5f84ccb8d9ff84d8b9b1480ea49185f808f1/site_utils/stable_images/stable_version_unittest.py

Status: Verified (was: Started)

Sign in to add a comment