commit | 25eed5555894121309bd1f85feb90a370038c452 | [log] [tgz] |
---|---|---|
author | Mathieu Binette <mbinette@google.com> | Wed Mar 27 18:30:36 2019 |
committer | Mathieu Binette <mbinette@google.com> | Thu Mar 28 17:18:44 2019 |
tree | 01a44e67d58447e354f4d4eab088836f537c3db3 | |
parent | dafc03e8ab5d6290edb048063af19d62ae55dc29 [diff] |
Retry setRuntimeConfigVariable on errNoSuchHost. This is a very intermittent failure that has high impact. Failing to set the runtime config variable means that cel_ctl will keep seeing the asset as "in-progress", even if it's been failed, or worse, succeeded. It will eventually timeout and fail (even if it should have succeeded!!!), but only after ~1h. Some tests even set a bigger timeout (ad tree), which is worse. Example: In cel_agent: ``` remote_desktop.go:28: Remote Desktop Host config finished deployer.go:403: Error updating config variable asset/windows_machine/win2012-client/status: Put https://runtimeconfig.googleapis.com/v1beta1/projects/celab-try-003/configs/cel-config/variables/asset/windows_machine/win2012-client/status?alt=json: dial tcp: lookup runtimeconfig.googleapis.com: no such host. deployer.go:318: Everything is OK. ``` In cel_ctl: ``` watcher.go:68: 1 assets still deploying: map[ready:[...] in-progress:[windows_machine/win2012-client]] logged_action.go:53: [ FAIL] WaitForAllAssetsReady: OnHost configuration timed out See instance console logs for more info: * https://console.cloud.google.com/compute/instances?project=celab-try-003 WaitForAllAssetsReady OnHost configuration timed out ``` Change-Id: I468d35013c238f17cf23dc2a117773f2315ffcdd Reviewed-on: https://chromium-review.googlesource.com/c/enterprise/cel/+/1541823 Reviewed-by: Fei Ling <feiling@chromium.org>
Chrome Enterprise Lab is an inaccurately named set of tools for building enterprise labs quickly and easily. The labs so built can be used for system level end-to-end testing of Google Chrome/Chromium.
Have a peek at the Design document.
Also have a peek at the Code of Conduct.
Most of the code is in Go. See Guide to code to get a head start on the code in this repository.
Go: Download Go from the Go download page. This project requires Go 1.9.4 or later. The build will fail with prior versions.
Depot Tools: Used for managing the checkout and the contributor workflow.
Protocol Buffers Compiler: Protocol buffers are used extensively for wranging all the data that needs to be shuttled around. Can be installed automatically via ./build.py deps --install
.
Dep : Used for Go depedency management. This can be installed automatically by running ./build.py deps --install
from the root of the source tree.
Go support for Protocol Buffers : This can be installed automatically by running ./build.py deps --install
from the root of the source tree.
absl-py: This Python package is used by tests. Install it by running pip install absl-py
.
There are two ways to get the source. One is to use managed deps, and the other is to use plain go get
. The latter workflow doesn't quite work yet due to this repository not being integrated with go.chromium.org
. So this page only mentions the managed dependency workflow.
Clone this repository:
Assumes that $GOPATH
is a single path and not a :
delimited list.
mkdir -p ${GOPATH}/src/chromium.googlesource.com/enterprise cd ${GOPATH}/src/chromium.googlesource.com/enterprise git clone https://chromium.googlesource.com/enterprise/cel cd cel
Get the dependencies:
python build.py deps --install
Use the build script:
python build.py build
Also make sure the tests pass.
python build.py test
See CONTRIBUTING.