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

Issue 797645 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Closed: Aug 20
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 1
Type: Feature



Sign in to add a comment

Isolate HWID packages for AppEngine

Project Member Reported by yllin@chromium.org, Dec 26 2017

Issue description

Currently, HWID package is depending on many modules/symbols that is not supported on the App Engine. As we are trying to deploy the HWID Service on App Engine, we should clean the dependence from such modules/symbols. 

AppEngine doesn't support the following modules/symbols:
fcntl.ioctl
multiprocessing
netifaces
numpy
pexpect.pexpect
pexpect.pexpect.EOF
subprocess.Popen
subprocess.PIPE

This bug is used to track the related changes about isolating HWID packages.
 
Project Member

Comment 1 by bugdroid1@chromium.org, Dec 26 2017

The following revision refers to this bug:
  https://chrome-internal.googlesource.com/chromeos/chromeos-hwid/+/10d1b285db56598d2886e26e7159fe55718ba92c

commit 10d1b285db56598d2886e26e7159fe55718ba92c
Author: Yilun Lin <yllin@google.com>
Date: Tue Dec 26 15:08:55 2017

Project Member

Comment 2 by bugdroid1@chromium.org, Dec 27 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/platform/factory/+/a75914857de885be28e4ba9bb70d76adc28d5d7f

commit a75914857de885be28e4ba9bb70d76adc28d5d7f
Author: Yilun Lin <yllin@google.com>
Date: Wed Dec 27 14:59:06 2017

hwid/builder: Use checksum_updater by importing cros.chromeoshwid.

To prevent from HWID package using fork-like functions, we have to
import the cros.chromeoshwid.update_checksum to call the functions in the
update_checksum module directly.

TEST=make test
BUG= chromium:797645 

Change-Id: Ie22da5978612d627d77495563911a08922429011

[modify] https://crrev.com/a75914857de885be28e4ba9bb70d76adc28d5d7f/py/hwid/v3/builder_unittest.py
[add] https://crrev.com/a75914857de885be28e4ba9bb70d76adc28d5d7f/py/hwid/v3/testdata/CHECKSUM_TEST
[modify] https://crrev.com/a75914857de885be28e4ba9bb70d76adc28d5d7f/py/hwid/service/rpc_server.py
[add] https://crrev.com/a75914857de885be28e4ba9bb70d76adc28d5d7f/py/hwid/v3/testdata/CHECKSUM_TEST.golden
[add] https://crrev.com/a75914857de885be28e4ba9bb70d76adc28d5d7f/py_pkg/cros/chromeoshwid
[modify] https://crrev.com/a75914857de885be28e4ba9bb70d76adc28d5d7f/py/hwid/v3/builder.py

Project Member

Comment 3 by bugdroid1@chromium.org, Feb 6 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/platform/factory/+/f6f959e306cf438d5f86f9bfd25a048359922166

commit f6f959e306cf438d5f86f9bfd25a048359922166
Author: Yong Hong <yhong@chromium.org>
Date: Tue Feb 06 20:20:58 2018

hwid: Moves exported interfaces into `hwid_utils` module.

This CL moves exported interfaces and constants from
`cros.factory.hwid.v3.common` to `cros.factory.hwid.v3.hwid_utils`.

The module `cros.factory.hwid.v3.common` should contain only HWID
framework internal used classes, and all the exported interfaces should
be located in `cros.factory.hwid.v3.hwid_utils`.

TEST=make test
BUG= chromium:797645 

Change-Id: I4ff8376aa4f6b079431d8d173f847e22fffe085e
Reviewed-on: https://chromium-review.googlesource.com/844296
Commit-Ready: Yong Hong <yhong@google.com>
Tested-by: Yong Hong <yhong@google.com>
Reviewed-by: Yong Hong <yhong@google.com>

[modify] https://crrev.com/f6f959e306cf438d5f86f9bfd25a048359922166/py/goofy/goofy_remote.py
[modify] https://crrev.com/f6f959e306cf438d5f86f9bfd25a048359922166/py/tools/regcode.py
[modify] https://crrev.com/f6f959e306cf438d5f86f9bfd25a048359922166/py/hwid/v3/common_unittest.py
[modify] https://crrev.com/f6f959e306cf438d5f86f9bfd25a048359922166/py/hwid/v3/valid_hwid_db_unittest.py
[modify] https://crrev.com/f6f959e306cf438d5f86f9bfd25a048359922166/py/gooftool/core.py
[modify] https://crrev.com/f6f959e306cf438d5f86f9bfd25a048359922166/py/device/info.py
[modify] https://crrev.com/f6f959e306cf438d5f86f9bfd25a048359922166/py/hwid/v3/database.py
[modify] https://crrev.com/f6f959e306cf438d5f86f9bfd25a048359922166/py/gooftool/commands.py
[modify] https://crrev.com/f6f959e306cf438d5f86f9bfd25a048359922166/py/hwid/v3/hwid_utils.py
[modify] https://crrev.com/f6f959e306cf438d5f86f9bfd25a048359922166/py/hwid/v3/hwid_cmdline.py
[modify] https://crrev.com/f6f959e306cf438d5f86f9bfd25a048359922166/py/test/pytests/hwid.py
[modify] https://crrev.com/f6f959e306cf438d5f86f9bfd25a048359922166/py/hwid/v3/common.py
[modify] https://crrev.com/f6f959e306cf438d5f86f9bfd25a048359922166/py/hwid/v3/hwid_utils_unittest.py

Project Member

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

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/platform/factory/+/1f60b7de99d8a6a099e1fb300b9a414973007205

commit 1f60b7de99d8a6a099e1fb300b9a414973007205
Author: Yilun Lin <yllin@google.com>
Date: Mon Apr 16 19:21:20 2018

process_utils: Workaround for AppEngine environment.

HWID module references many packages outside `cros.factory.hwid.*`.
These packages are using process_utils either directly import
process_utils or import it in the import chain. AppEngine doesn't
support some attributes, for example, `subprocess.Popen` and `subprocess.PIPE`.
Using these attributes in the code raises exceptions.

TEST=manual on AppEngine
BUG= chromium:797645 ,  chromium:818125 

Change-Id: Ic769a7a65147d782dbd2fd04d96d94c2013af1f0
Reviewed-on: https://chromium-review.googlesource.com/963880
Commit-Ready: Yilun Lin <yllin@chromium.org>
Tested-by: Yilun Lin <yllin@chromium.org>
Reviewed-by: Yong Hong <yhong@google.com>

[modify] https://crrev.com/1f60b7de99d8a6a099e1fb300b9a414973007205/py/utils/process_utils.py

are we all done?
Status: Fixed (was: Assigned)
Done.

Sign in to add a comment