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

Issue 609069 link

Starred by 2 users

Issue metadata

Status: Fixed
Owner:
Last visit > 30 days ago
Closed: Jun 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 3
Type: Feature



Sign in to add a comment

Redesign logging for Chrome OS Factory

Project Member Reported by kitching@chromium.org, May 4 2016

Issue description

(moved from http://crosbug.com/p/51105)

Define a general production line logging format for both Chrome OS Factory and potentially other factory frameworks, and support its flow from test machine (DUT or test station) to Google internal services (e.g. BigQuery).

Objectives:
* Real-time availability of logging data on Shopfloor
* Lowers storage utilization (by rotating / zipping / removing logs that have been sync’d to Shopfloor)
* Unify different logging paths, everyone uses the same path
* Easy to log data through Pytests
* Enable support for fixture-based tests (include serial number of device)
* Provide data necessary to build other systems (inspect logging data for partners, debug test runs for software engineers, self-service querying and charting for hardware engineers, production line flow information for operations team)
 
Project Member

Comment 1 by bugdroid1@chromium.org, May 4 2016

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

commit 6a150ec01e051abab0b1a635a2f574d83ac3e4aa
Author: Joel Kitching <kitching@google.com>
Date: Thu Apr 21 06:44:46 2016

log_writer: library for writing testlog json to disk

log_writer is in large part borrowed code from event_log, since
their functions are very similar.  However, log_writer accepts
testlog Event objects, and writes them to disk in JSON format.

The old event_log and log_writer will exist in parallel while
event_log is phased out.

BUG= chromium:609069 
TEST=Manually on DUT

Change-Id: I2d6fa067bd11dcebd4b77d97d1b8e51c57be20fb
Reviewed-on: https://chromium-review.googlesource.com/340160
Commit-Ready: Joel Kitching <kitching@chromium.org>
Tested-by: Joel Kitching <kitching@chromium.org>
Reviewed-by: Chun-ta Lin <itspeter@chromium.org>

[add] https://crrev.com/6a150ec01e051abab0b1a635a2f574d83ac3e4aa/py/test/log_writer_unittest.py
[add] https://crrev.com/6a150ec01e051abab0b1a635a2f574d83ac3e4aa/py/test/log_writer.py

Project Member

Comment 2 by bugdroid1@chromium.org, May 4 2016

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

commit 7bb78e6e16adcb0dee6a75922e2f027a17c2999c
Author: Joel Kitching <kitching@google.com>
Date: Wed Apr 20 11:02:59 2016

testlog: initial python implementation of testlog json api

Since we would like a general logging format that both Goofy
and other factory software can use, we define a JSON API called
"testlog".  This is the base Python implementation (with only
support for one event type so far, "station.init").

Initially there will be no validation support.

BUG= chromium:609069 
TEST=Manually on DUT

Change-Id: Ic1cf9693b599dcf27cbccd917a3f5c1b0b6c967e
Reviewed-on: https://chromium-review.googlesource.com/339826
Commit-Ready: Joel Kitching <kitching@chromium.org>
Tested-by: Joel Kitching <kitching@chromium.org>
Reviewed-by: Chun-ta Lin <itspeter@chromium.org>

[add] https://crrev.com/7bb78e6e16adcb0dee6a75922e2f027a17c2999c/py/test/testlog_unittest.py
[add] https://crrev.com/7bb78e6e16adcb0dee6a75922e2f027a17c2999c/py/test/testlog.py

Project Member

Comment 3 by bugdroid1@chromium.org, May 6 2016

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

commit d7551ec7a1299a6a7a7aa17c1d0dd12a9dc767bf
Author: Joel Kitching <kitching@google.com>
Date: Fri May 06 07:58:23 2016

log_writer: fix seq file write speed

GlobalSeq was calling fsync on the seq file after every
increment, resulting in testThreadsWithoutSleep failing
on a co-worker's machine.  He was getting 120~130 writes per
second (non-SSD), whereas I was getting around 2000 (SSD).

Since we increase the sequence number by SEQ_INCREMENT_ON_BOOT
every reboot, we can remove the fsync call and retain the
monotonicity property, optimizing for speed.  This may be
important in cases where Goofy rapidly outputs a large volume
of log messages to disk.

Now testThreadsWithoutSleep is getting around 6000 writes
on co-worker's machine (non-SSD), and 10000 writes on my
machine (SSD).

BUG= chromium:609069 
TEST=Manually on local machine

Change-Id: I15d7d3f4d2d9a5307a6a625fef01b283c5894907
Reviewed-on: https://chromium-review.googlesource.com/342807
Commit-Ready: Joel Kitching <kitching@chromium.org>
Tested-by: Joel Kitching <kitching@chromium.org>
Reviewed-by: Wei-Han Chen <stimim@chromium.org>

[modify] https://crrev.com/d7551ec7a1299a6a7a7aa17c1d0dd12a9dc767bf/py/test/log_writer_unittest.py
[modify] https://crrev.com/d7551ec7a1299a6a7a7aa17c1d0dd12a9dc767bf/py/test/log_writer.py

Project Member

Comment 4 by bugdroid1@chromium.org, May 6 2016

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

commit 9eb203a3afff97d27ccbd7234dc98b889b9ccbcf
Author: Joel Kitching <kitching@google.com>
Date: Thu Apr 21 07:36:30 2016

goofy: add basic support for log_writer

Goofy should be migrated to start logging through log_writer
instead of event_log.  Add basic support and log the
StationInit event.

BUG= chromium:609069 
TEST=Manually on DUT

Change-Id: I2105b317a688816675f844be43c03eeea15d1241
Reviewed-on: https://chromium-review.googlesource.com/340161
Commit-Ready: Joel Kitching <kitching@chromium.org>
Tested-by: Joel Kitching <kitching@chromium.org>
Reviewed-by: Chun-ta Lin <itspeter@chromium.org>

[modify] https://crrev.com/9eb203a3afff97d27ccbd7234dc98b889b9ccbcf/py/goofy/goofy.py
[modify] https://crrev.com/9eb203a3afff97d27ccbd7234dc98b889b9ccbcf/py/test/testlog.py

Project Member

Comment 5 by bugdroid1@chromium.org, May 11 2016

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

commit f2dfbac2df3fb8f954a47b7aae799b8c7bb86ac0
Author: Joel Kitching <kitching@google.com>
Date: Tue May 03 07:42:12 2016

testlog: populate should return self for convenience

BUG= chromium:609069 
TEST=Locally

Change-Id: I1a6e11293d75fb394f981d2d30b84b7f4a2f5bbb
Reviewed-on: https://chromium-review.googlesource.com/341893
Commit-Ready: Joel Kitching <kitching@chromium.org>
Tested-by: Joel Kitching <kitching@chromium.org>
Reviewed-by: Chun-ta Lin <itspeter@chromium.org>

[modify] https://crrev.com/f2dfbac2df3fb8f954a47b7aae799b8c7bb86ac0/py/test/testlog_unittest.py
[modify] https://crrev.com/f2dfbac2df3fb8f954a47b7aae799b8c7bb86ac0/py/test/testlog.py

Project Member

Comment 6 by bugdroid1@chromium.org, May 16 2016

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

commit fce6effb90aa18ac1d119d3bd7acfdc8b3a947b7
Author: Joel Kitching <kitching@google.com>
Date: Wed May 04 03:33:23 2016

invocation: change end_time to object member

Rename end_time to TestInvocation object variable self.end_time,
in preparation for end_time being used in testlog event emitting.

BUG= chromium:609069 
TEST=Manually on DUT

Change-Id: I32e569c5fdf5dab9aad6ac485e301a2133bd8a2e
Reviewed-on: https://chromium-review.googlesource.com/342328
Commit-Ready: Joel Kitching <kitching@chromium.org>
Tested-by: Joel Kitching <kitching@chromium.org>
Reviewed-by: Chih-Yu Huang <akahuang@chromium.org>

[modify] https://crrev.com/fce6effb90aa18ac1d119d3bd7acfdc8b3a947b7/py/goofy/invocation.py

Project Member

Comment 7 by bugdroid1@chromium.org, May 16 2016

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

commit 8062330a9815df438fa49e8074be7f8570ab2de6
Author: Joel Kitching <kitching@google.com>
Date: Wed May 04 03:26:39 2016

testlog: add support for test_run event

Add initial support for test_run event according to its
specification in the Testlog API Playbook.  More fields will
be added later.

BUG= chromium:609069 
TEST=Manually on DUT

Change-Id: I6ba93c3503100b06c0cea18424ad44750130b45c
Reviewed-on: https://chromium-review.googlesource.com/342327
Commit-Ready: Joel Kitching <kitching@chromium.org>
Tested-by: Joel Kitching <kitching@chromium.org>
Reviewed-by: Chih-Yu Huang <akahuang@chromium.org>

[modify] https://crrev.com/8062330a9815df438fa49e8074be7f8570ab2de6/py/test/testlog_unittest.py
[modify] https://crrev.com/8062330a9815df438fa49e8074be7f8570ab2de6/py/test/testlog.py

Project Member

Comment 8 by bugdroid1@chromium.org, May 16 2016

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

commit b87e3881c7e2ca0abb99c1bc351fce28768f257e
Author: Joel Kitching <kitching@google.com>
Date: Fri Apr 29 07:35:24 2016

testlog: add support for python logging

Add support for Python logging calls.  Calls to logging (info,
debug, exception, etc.)  will be created as testlog objects and
saved to disk as JSON.

BUG= chromium:609069 
TEST=Manually on DUT
CQ-DEPEND=CL:343539

Change-Id: Ic6ea9086fc4254e611d6e39fe560e9e7cb0aa308
Reviewed-on: https://chromium-review.googlesource.com/341894
Commit-Ready: Joel Kitching <kitching@chromium.org>
Tested-by: Joel Kitching <kitching@chromium.org>
Reviewed-by: Chih-Yu Huang <akahuang@chromium.org>

[modify] https://crrev.com/b87e3881c7e2ca0abb99c1bc351fce28768f257e/py/test/factory.py
[modify] https://crrev.com/b87e3881c7e2ca0abb99c1bc351fce28768f257e/py/test/testlog_unittest.py
[modify] https://crrev.com/b87e3881c7e2ca0abb99c1bc351fce28768f257e/py/test/testlog.py

Project Member

Comment 9 by bugdroid1@chromium.org, May 17 2016

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

commit bc43846c756e2709772b57fc63cf0a15db33222e
Author: Joel Kitching <kitching@google.com>
Date: Mon May 16 22:13:13 2016

testlog: fix goofy python logging call

CL:341894 introduced an erroneous call to
CapturePythonLogging by using inconsistent function
argument names.  Fix the argument names.

TEST=Locally
BUG= chromium:609069 
CQ-DEPEND=CL:341894

Change-Id: I2f4267c4d847f86fe40c0d9aaf24f9b51930fae7
Reviewed-on: https://chromium-review.googlesource.com/344892
Commit-Ready: Joel Kitching <kitching@chromium.org>
Tested-by: Joel Kitching <kitching@chromium.org>
Reviewed-by: Joel Kitching <kitching@chromium.org>

[modify] https://crrev.com/bc43846c756e2709772b57fc63cf0a15db33222e/py/test/factory.py
[modify] https://crrev.com/bc43846c756e2709772b57fc63cf0a15db33222e/py/test/testlog_unittest.py

Project Member

Comment 10 by bugdroid1@chromium.org, May 26 2016

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

commit 126d69ae3503c8b7d8693c7d18f4cc2061eba023
Author: Joel Kitching <kitching@google.com>
Date: Tue May 03 09:49:43 2016

invocation: emit testlog test_run events

Add support for test_run events, and modify invocation.py
to output a STARTING and PASSED/FAILED event for each test.

BUG= chromium:609069 
TEST=Manually on DUT

Change-Id: I7323f302688c37cbf755240ec9ed377ce666758b
Reviewed-on: https://chromium-review.googlesource.com/341844
Commit-Ready: Joel Kitching <kitching@chromium.org>
Tested-by: Joel Kitching <kitching@chromium.org>
Reviewed-by: Chun-ta Lin <itspeter@chromium.org>

[modify] https://crrev.com/126d69ae3503c8b7d8693c7d18f4cc2061eba023/py/goofy/invocation.py

Project Member

Comment 11 by bugdroid1@chromium.org, May 26 2016

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

commit b17f82a896fcfb58755014f2bf26cf3af8357f9d
Author: Joel Kitching <kitching@google.com>
Date: Thu May 19 16:19:39 2016

log_writer: add close function

py/goofy/goofy.py already expects LogWriter to have a
Close function.  Add it with a corresponding unittest.

BUG= chromium:609069 
TEST=Run test locally

Change-Id: I47e223702397a2f69a854337c2b0db3dcb4bcc8c
Reviewed-on: https://chromium-review.googlesource.com/346051
Commit-Ready: Joel Kitching <kitching@chromium.org>
Tested-by: Joel Kitching <kitching@chromium.org>
Reviewed-by: Wei-Han Chen <stimim@chromium.org>

[modify] https://crrev.com/b17f82a896fcfb58755014f2bf26cf3af8357f9d/py/test/log_writer_unittest.py
[modify] https://crrev.com/b17f82a896fcfb58755014f2bf26cf3af8357f9d/py/test/log_writer.py

Project Member

Comment 12 by bugdroid1@chromium.org, May 26 2016

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

commit cd056999e7f6c4824b19e9981aff065d2dfe6d16
Author: Joel Kitching <kitching@google.com>
Date: Wed May 11 05:48:31 2016

testlog: fix event initialization and add tests

"Fake" event classes should not be able to be initialized.
Fix code in __init__ to prevent this, and add tests to
check functionality.

BUG= chromium:609069 
TEST=Locally

Change-Id: I21a549eb854372d0ec7ed2777f7d5a00c5d69215
Reviewed-on: https://chromium-review.googlesource.com/344182
Commit-Ready: Joel Kitching <kitching@chromium.org>
Tested-by: Joel Kitching <kitching@chromium.org>
Reviewed-by: Chih-Yu Huang <akahuang@chromium.org>

[modify] https://crrev.com/cd056999e7f6c4824b19e9981aff065d2dfe6d16/py/test/testlog_unittest.py
[modify] https://crrev.com/cd056999e7f6c4824b19e9981aff065d2dfe6d16/py/test/testlog.py

Project Member

Comment 13 by bugdroid1@chromium.org, Jun 1 2016

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

commit 48a7d4f721f05a0652fe94085967dad02c3eb5b6
Author: Joel Kitching <kitching@google.com>
Date: Wed Jun 01 02:11:07 2016

testlog: reorder unittests

Include a new TestlogEventTest class to separate unittests
that test Event-related functionality.

BUG= chromium:609069 
TEST=Locally

Change-Id: Ie9a9419b2477c09e0507ec7740083b86f63dec81
Reviewed-on: https://chromium-review.googlesource.com/348453
Commit-Ready: Joel Kitching <kitching@chromium.org>
Tested-by: Joel Kitching <kitching@chromium.org>
Reviewed-by: Wei-Han Chen <stimim@chromium.org>

[modify] https://crrev.com/48a7d4f721f05a0652fe94085967dad02c3eb5b6/py/test/testlog_unittest.py

Project Member

Comment 14 by bugdroid1@chromium.org, Jun 3 2016

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

commit 7a275fb3db514659d69c9e0f59ceb574d689d5ee
Author: Joel Kitching <kitching@google.com>
Date: Wed Jun 01 18:49:00 2016

testlog: correct doc strings

Correct doc strings to read "Args" instead of "Arguments".

BUG= chromium:609069 
TEST=None

Change-Id: I10d5e0f020a94f1cc78d4b0cf75f3e62e828612c
Reviewed-on: https://chromium-review.googlesource.com/348780
Commit-Ready: Joel Kitching <kitching@chromium.org>
Tested-by: Joel Kitching <kitching@chromium.org>
Reviewed-by: Hung-Te Lin <hungte@chromium.org>

[modify] https://crrev.com/7a275fb3db514659d69c9e0f59ceb574d689d5ee/py/test/testlog.py

Project Member

Comment 15 by bugdroid1@chromium.org, Jun 6 2016

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

commit 7a330cc3055bf25320ca144d4de7e6f34b4388c2
Author: Joel Kitching <kitching@google.com>
Date: Wed May 04 04:32:03 2016

invocation: implement running test_run events

A currently-running test should produce test_run events at
given intervals to save its incremental state.  This has two
benefits:

  (1) For a test that takes a long time (e.g. a run-in test),
      we can get updates as to how the test is progressing.

  (2) If a machine encounters failure half-way through the test
      being run, we will be able to inspect the test's state
      at the last-saved interval before failure.

BUG= chromium:609069 
TEST=Manually on DUT

Change-Id: Ic671fd8f0cd0a3af11bad86023c4e65baed52ed2
Reviewed-on: https://chromium-review.googlesource.com/342126
Commit-Ready: Joel Kitching <kitching@chromium.org>
Tested-by: Joel Kitching <kitching@chromium.org>
Reviewed-by: Chun-ta Lin <itspeter@chromium.org>

[modify] https://crrev.com/7a330cc3055bf25320ca144d4de7e6f34b4388c2/py/goofy/invocation.py
[modify] https://crrev.com/7a330cc3055bf25320ca144d4de7e6f34b4388c2/py/test/event.py
[modify] https://crrev.com/7a330cc3055bf25320ca144d4de7e6f34b4388c2/py/test/testlog.py

Project Member

Comment 16 by bugdroid1@chromium.org, Jun 6 2016

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

commit d18263b2f3dab6550a277af299395cfd967848bc
Author: Joel Kitching <kitching@google.com>
Date: Wed Jun 01 19:36:37 2016

testlog/log_writer: correct doc string pluralization

The first line of function and class doc strings should
be written in third person singular form.

BUG= chromium:609069 
TEST=None

Change-Id: Ibdaa34fb28974d9c765b088d43d8a8e5c1966c13
Reviewed-on: https://chromium-review.googlesource.com/348781
Commit-Ready: Joel Kitching <kitching@chromium.org>
Tested-by: Joel Kitching <kitching@chromium.org>
Reviewed-by: Chun-ta Lin <itspeter@chromium.org>

[modify] https://crrev.com/d18263b2f3dab6550a277af299395cfd967848bc/py/test/testlog_unittest.py
[modify] https://crrev.com/d18263b2f3dab6550a277af299395cfd967848bc/py/test/testlog.py
[modify] https://crrev.com/d18263b2f3dab6550a277af299395cfd967848bc/py/test/log_writer_unittest.py
[modify] https://crrev.com/d18263b2f3dab6550a277af299395cfd967848bc/py/test/log_writer.py

Project Member

Comment 17 by bugdroid1@chromium.org, Jun 14 2016

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

commit 313c7a8e5f3dfe8f88522bde95ddc463a2b66a5e
Author: Joel Kitching <kitching@google.com>
Date: Mon Jun 06 11:28:14 2016

instalog: initial commit with instalog_common

Similar to factory_common, create an instalog_common module
to install the instalog.* namespace.

BUG= chromium:609069 
TEST=Locally

Change-Id: I2f9d3b94be4c502701dfa1c71fe733e6beb63c90
Reviewed-on: https://chromium-review.googlesource.com/349844
Commit-Ready: Joel Kitching <kitching@chromium.org>
Tested-by: Joel Kitching <kitching@chromium.org>
Reviewed-by: Chih-Yu Huang <akahuang@chromium.org>

[add] https://crrev.com/313c7a8e5f3dfe8f88522bde95ddc463a2b66a5e/py/instalog/__init__.py
[add] https://crrev.com/313c7a8e5f3dfe8f88522bde95ddc463a2b66a5e/py/instalog/plugins/__init__.py
[add] https://crrev.com/313c7a8e5f3dfe8f88522bde95ddc463a2b66a5e/py/instalog/instalog_common.py
[add] https://crrev.com/313c7a8e5f3dfe8f88522bde95ddc463a2b66a5e/py/instalog/plugins/instalog_common.py

Project Member

Comment 18 by bugdroid1@chromium.org, Jun 14 2016

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

commit b63e8fce386bdfd27a996583acf659c4579eeb8f
Author: Joel Kitching <kitching@google.com>
Date: Tue Jun 07 09:32:35 2016

instalog: import factory utils for use within instalog

We would like to use the factory Args system for specifying
buffer, input, and output plugin arguments in Instalog.

Create a symlink to the factory `utils` directory to make
use of this module.

BUG= chromium:609069 
TEST=Locally
CQ-DEPEND=CL:351421

Change-Id: Ie5d128cfc58cd3438526932ffedd917a3173317f
Reviewed-on: https://chromium-review.googlesource.com/350260
Commit-Ready: Joel Kitching <kitching@chromium.org>
Tested-by: Joel Kitching <kitching@chromium.org>
Reviewed-by: Chih-Yu Huang <akahuang@chromium.org>

[add] https://crrev.com/b63e8fce386bdfd27a996583acf659c4579eeb8f/py/instalog/utils

Project Member

Comment 19 by bugdroid1@chromium.org, Jun 15 2016

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

commit ecc8566308398b118b8678a76f40c2be2cf0e55c
Author: Joel Kitching <kitching@google.com>
Date: Mon Jun 13 09:13:19 2016

arg_utils: create custom exception class for errors

Create custom exception class ArgError so that clients
can differentiate a problem with argument validation versus
some other piece of code throwing a ValueError exception.

BUG=chromium:618961, chromium:609069 
TEST=Locally

Change-Id: I8e777398cc2cf03e2cb237180628c01a7237f56a
Reviewed-on: https://chromium-review.googlesource.com/351824
Commit-Ready: Joel Kitching <kitching@chromium.org>
Tested-by: Joel Kitching <kitching@chromium.org>
Reviewed-by: Hung-Te Lin <hungte@chromium.org>

[modify] https://crrev.com/ecc8566308398b118b8678a76f40c2be2cf0e55c/py/utils/arg_utils.py

Project Member

Comment 20 by bugdroid1@chromium.org, Jun 15 2016

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

commit 7e7a0ba2fe525960f8c170b2b19fc8d00018eb58
Author: Joel Kitching <kitching@google.com>
Date: Tue Jun 07 09:35:58 2016

instalog: create plugin_loader for loading plugins

Create plugin_base to define plugin classes (buffer, input,
output), and use a CoreAPI class to define how plugins interact
with Instalog core.

plugin_loader takes care of searching for the correct import path,
importing the module of the plugin in question, and initializing
it with the correct config, logger, and CoreAPI object.

BUG= chromium:609069 
TEST=Locally

Change-Id: Ibca36ea90c7c47feb97d8bb8222d0cf5cf15a496
Reviewed-on: https://chromium-review.googlesource.com/350261
Commit-Ready: Joel Kitching <kitching@chromium.org>
Tested-by: Joel Kitching <kitching@chromium.org>
Reviewed-by: Chih-Yu Huang <akahuang@chromium.org>

[add] https://crrev.com/7e7a0ba2fe525960f8c170b2b19fc8d00018eb58/py/instalog/plugin_loader.py
[add] https://crrev.com/7e7a0ba2fe525960f8c170b2b19fc8d00018eb58/py/instalog/plugin_base.py
[add] https://crrev.com/7e7a0ba2fe525960f8c170b2b19fc8d00018eb58/py/instalog/plugin_loader_unittest.py

Project Member

Comment 21 by bugdroid1@chromium.org, Jun 22 2016

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

commit ab4095a9883f9eb52e9ac34de4f3629991d8b23a
Author: Joel Kitching <kitching@google.com>
Date: Tue Jun 14 10:31:05 2016

instalog: plugin_sandbox for running a plugin instance

Introduce plugin sandbox.  Loads the plugin class instance (using
plugin_loader), manages the plugin's state, and implements PluginAPI
functions that the plugin will need to call.

Refactor command-line plugin-running functionality into a new
run_plugin.py.

Add a sample input_time plugin.  The plugin can be directly run
at command-line.  For example:

  $ plugins/input_time.py '{"event_name": "instalog"}'

BUG= chromium:609069 
TEST=Locally

Change-Id: If855a3c0764d2e6b5f606bdb167f60167da9b999
Reviewed-on: https://chromium-review.googlesource.com/352430
Commit-Ready: Joel Kitching <kitching@chromium.org>
Tested-by: Joel Kitching <kitching@chromium.org>
Reviewed-by: Joel Kitching <kitching@chromium.org>

[add] https://crrev.com/ab4095a9883f9eb52e9ac34de4f3629991d8b23a/py/instalog/plugin_sandbox_unittest.py
[modify] https://crrev.com/ab4095a9883f9eb52e9ac34de4f3629991d8b23a/py/instalog/plugin_loader_unittest.py
[add] https://crrev.com/ab4095a9883f9eb52e9ac34de4f3629991d8b23a/py/instalog/plugin_sandbox.py
[add] https://crrev.com/ab4095a9883f9eb52e9ac34de4f3629991d8b23a/py/instalog/run_plugin.py
[add] https://crrev.com/ab4095a9883f9eb52e9ac34de4f3629991d8b23a/py/instalog/plugins/input_time.py
[modify] https://crrev.com/ab4095a9883f9eb52e9ac34de4f3629991d8b23a/py/instalog/plugin_loader.py
[add] https://crrev.com/ab4095a9883f9eb52e9ac34de4f3629991d8b23a/py/instalog/datatypes.py
[modify] https://crrev.com/ab4095a9883f9eb52e9ac34de4f3629991d8b23a/py/instalog/plugin_base.py

Project Member

Comment 22 by bugdroid1@chromium.org, Jun 28 2016

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

commit 53cbbd572b28d3442a2479193f49d65b6e4e9867
Author: Chun-Ta Lin <itspeter@google.com>
Date: Wed Jun 08 13:42:19 2016

testlog: refactor event_log and testlog

This refactoring involves several parts:

- Split the log_writer.py (which a large portion is borrowed from
event_log.py) into testlog_goofy.py, testlog.py, testlog_helper.py.
In addition, make functions serve for similar purposes in event_log.py
to call testlog_goofy.py directly as a preparation work toward
deprecating the event_log.py. Unittest of event_log.py is partially
removed because the manipulation of its internal variable is moved to
testlog_goofy.py. Coverage is then covered by testlog_goofy_unittest.py.

- Introduce the session JSON file for tests run in a separate process
and merge back when the harness aware its finish. This removes the
previous EventServer and EventClient that depends heavily on the factory
framework. Besides the goofy code, unittest TestlogE2ETest demonstrates
how the harness and the test should interact with each other.

- file_utils.py changed because the file descriptor will not be freed
until the end of process, which might deplete the available descriptors
of a single process.

- Move TimeUuid() from event_log.py to time_utils. All function calls
  are changed as well as a preparation of removing event_log.py

- We removed the HeratBeat thread per offline discussion, the heatbeat
  will be trigger on purpose from test program.

BUG= chromium:609069 
TEST=make lint LINT_WHITELIST="py/test/factory.py \
    py/test/testlog.py py/test/testlog_unittest.py\
    py/test/testlog_goofy.py py/test/testlog_goofy_unittest.py \
    py/test/testlog_seq.py py/test/testlog_seq_unittest.py \
    py/test/event_log.py py/test/event_log_unittest.py \
    py/utils/file_utils.py py/utils/file_utils_unittest.py \
    py/goofy/goofy.py py/goofy/invocation.py py/test/event.py"
TEST=Run locally on DUT

Change-Id: I750aefa6da99e9e3d196e1fdb2db7ad7f76fa69c
Reviewed-on: https://chromium-review.googlesource.com/352410
Commit-Ready: Chun-ta Lin <itspeter@chromium.org>
Tested-by: Chun-ta Lin <itspeter@chromium.org>
Reviewed-by: Joel Kitching <kitching@chromium.org>

[modify] https://crrev.com/53cbbd572b28d3442a2479193f49d65b6e4e9867/py/test/event.py
[modify] https://crrev.com/53cbbd572b28d3442a2479193f49d65b6e4e9867/py/test/event_log.py
[modify] https://crrev.com/53cbbd572b28d3442a2479193f49d65b6e4e9867/py/test/utils/camera_utils.py
[modify] https://crrev.com/53cbbd572b28d3442a2479193f49d65b6e4e9867/py/test/testlog_unittest.py
[add] https://crrev.com/53cbbd572b28d3442a2479193f49d65b6e4e9867/py/test/testlog_goofy_unittest.py
[modify] https://crrev.com/53cbbd572b28d3442a2479193f49d65b6e4e9867/py/test/event_log_unittest.py
[modify] https://crrev.com/53cbbd572b28d3442a2479193f49d65b6e4e9867/py/goofy/invocation.py
[modify] https://crrev.com/53cbbd572b28d3442a2479193f49d65b6e4e9867/py/utils/file_utils.py
[modify] https://crrev.com/53cbbd572b28d3442a2479193f49d65b6e4e9867/py/test/testlog.py
[delete] https://crrev.com/9e5cea80d404c2b23289efebf6815282d065d701/py/test/log_writer.py
[modify] https://crrev.com/53cbbd572b28d3442a2479193f49d65b6e4e9867/py/test/factory.py
[add] https://crrev.com/53cbbd572b28d3442a2479193f49d65b6e4e9867/py/test/testlog_seq.py
[modify] https://crrev.com/53cbbd572b28d3442a2479193f49d65b6e4e9867/py/gooftool/commands.py
[modify] https://crrev.com/53cbbd572b28d3442a2479193f49d65b6e4e9867/py/test/e2e_test/ui_actuator.py
[add] https://crrev.com/53cbbd572b28d3442a2479193f49d65b6e4e9867/py/test/testlog_seq_unittest.py
[modify] https://crrev.com/53cbbd572b28d3442a2479193f49d65b6e4e9867/py/utils/time_utils.py
[modify] https://crrev.com/53cbbd572b28d3442a2479193f49d65b6e4e9867/py/goofy/goofy.py
[add] https://crrev.com/53cbbd572b28d3442a2479193f49d65b6e4e9867/py/test/testlog_goofy.py
[modify] https://crrev.com/53cbbd572b28d3442a2479193f49d65b6e4e9867/py/utils/file_utils_unittest.py
[delete] https://crrev.com/9e5cea80d404c2b23289efebf6815282d065d701/py/test/log_writer_unittest.py

Project Member

Comment 23 by bugdroid1@chromium.org, Jun 30 2016

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

commit 4411df7e72bccc7d66cfe4952ce81096aba3c537
Author: Joel Kitching <kitching@google.com>
Date: Tue Jun 21 09:40:16 2016

instalog: implement event streams for output plugins

Add a sample output_stdout plugin.  Plugins can now be piped to one
another at command-line.  For example:

  $ plugins/input_time.py '{"event_name": "instalog"}' \
        | plugins/output_stdout.py

Refactor run_plugin to deal with added complexity.

BUG= chromium:609069 
TEST=Locally

Change-Id: I52283d611307f99e4476d7feec04744b005c73d8
Reviewed-on: https://chromium-review.googlesource.com/354352
Commit-Ready: Joel Kitching <kitching@chromium.org>
Tested-by: Joel Kitching <kitching@chromium.org>
Reviewed-by: Joel Kitching <kitching@chromium.org>

[modify] https://crrev.com/4411df7e72bccc7d66cfe4952ce81096aba3c537/py/instalog/plugin_sandbox_unittest.py
[add] https://crrev.com/4411df7e72bccc7d66cfe4952ce81096aba3c537/py/instalog/json_utils.py
[modify] https://crrev.com/4411df7e72bccc7d66cfe4952ce81096aba3c537/py/instalog/run_plugin.py
[modify] https://crrev.com/4411df7e72bccc7d66cfe4952ce81096aba3c537/py/instalog/plugin_loader_unittest.py
[modify] https://crrev.com/4411df7e72bccc7d66cfe4952ce81096aba3c537/py/instalog/plugin_loader.py
[add] https://crrev.com/4411df7e72bccc7d66cfe4952ce81096aba3c537/py/instalog/datatypes_unittest.py
[modify] https://crrev.com/4411df7e72bccc7d66cfe4952ce81096aba3c537/py/instalog/datatypes.py
[modify] https://crrev.com/4411df7e72bccc7d66cfe4952ce81096aba3c537/py/instalog/plugin_sandbox.py
[add] https://crrev.com/4411df7e72bccc7d66cfe4952ce81096aba3c537/py/instalog/plugins/output_stdout.py
[modify] https://crrev.com/4411df7e72bccc7d66cfe4952ce81096aba3c537/py/instalog/plugin_base.py
[add] https://crrev.com/4411df7e72bccc7d66cfe4952ce81096aba3c537/py/instalog/json_utils_unittest.py

Project Member

Comment 24 by bugdroid1@chromium.org, Jul 4 2016

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

commit 9713bc90c24e603e388683818de598cd6440d33a
Author: Chun-Ta Lin <itspeter@google.com>
Date: Sun Jul 03 05:48:48 2016

Refactor the EventBase.PopAndSet() function

 - Replace the PopAndSet() and from EventBase to __setitem__().
After the replacement, the validation of each fields is checked at the
time that __setitem__() is called. In addition, we won't have useless
None value generated by Populate() before.

 - EventBase.CheckMissingFields() is introduced.
 - Refactor part of code from testlog into testlog_utils

TEST=make lint LINT_WHITELIST=" \
  py/test/testlog.py py/test/testlog_unittest.py \
  py/test/testlog_utils.py py/test/testlog_utils_unittest.py \
  py/test/testlog_validator.py py/test/testlog_validator_unittest.py"
TEST=Locally on DUT
BUG= chromium:609069 

Change-Id: Icc534e87d1d5a42ddad9074041124a74cdb22777
Reviewed-on: https://chromium-review.googlesource.com/358290
Commit-Ready: Chun-ta Lin <itspeter@chromium.org>
Tested-by: Chun-ta Lin <itspeter@chromium.org>
Reviewed-by: Joel Kitching <kitching@chromium.org>

[add] https://crrev.com/9713bc90c24e603e388683818de598cd6440d33a/py/test/testlog_validator.py
[modify] https://crrev.com/9713bc90c24e603e388683818de598cd6440d33a/py/test/testlog.py
[add] https://crrev.com/9713bc90c24e603e388683818de598cd6440d33a/py/test/testlog_utils.py
[add] https://crrev.com/9713bc90c24e603e388683818de598cd6440d33a/py/test/testlog_validator_unittest.py
[modify] https://crrev.com/9713bc90c24e603e388683818de598cd6440d33a/py/test/testlog_unittest.py
[add] https://crrev.com/9713bc90c24e603e388683818de598cd6440d33a/py/test/testlog_utils_unittest.py

Project Member

Comment 25 by bugdroid1@chromium.org, Jul 5 2016

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

commit 78f6936d17b93f9921290d52959d71f50356009d
Author: Joel Kitching <kitching@google.com>
Date: Tue Jul 05 03:22:03 2016

testlog: create input log file plugins

Create InputLogFile and InputTestlogFile plugins to repeatedly
read from a file and parse each line as a new Instalog event.

BUG= chromium:609069 
TEST=Locally

Change-Id: I090255d0c92437f2c6bfb6aaf09d403f957801dc
Reviewed-on: https://chromium-review.googlesource.com/358311
Commit-Ready: Joel Kitching <kitching@chromium.org>
Tested-by: Joel Kitching <kitching@chromium.org>
Reviewed-by: Chun-ta Lin <itspeter@chromium.org>

[modify] https://crrev.com/78f6936d17b93f9921290d52959d71f50356009d/py/utils/file_utils.py
[add] https://crrev.com/78f6936d17b93f9921290d52959d71f50356009d/py/instalog/plugins/input_testlog_file.py
[add] https://crrev.com/78f6936d17b93f9921290d52959d71f50356009d/py/instalog/plugins/input_log_file.py

Project Member

Comment 26 by bugdroid1@chromium.org, Jul 6 2016

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

commit 8d6a1d673d555c3c78c67ac41114cd577cd557ee
Author: Chun-Ta Lin <itspeter@google.com>
Date: Tue Jul 05 03:41:38 2016

event DESTROY_TEST didn't send out

Introduced in the refactor of event_log (CL:352410), adding the
snippet back.

BUG= chromium:609069 , chrome-os-partner:55014
TEST=Manually on DUT

Change-Id: I5d5fb785226e6b4b2a1202d041460118866447ba
Reviewed-on: https://chromium-review.googlesource.com/358293
Commit-Ready: Shun-Hsing Ou <shunhsingou@chromium.org>
Tested-by: Chun-ta Lin <itspeter@chromium.org>
Reviewed-by: Shun-Hsing Ou <shunhsingou@chromium.org>

[modify] https://crrev.com/8d6a1d673d555c3c78c67ac41114cd577cd557ee/py/goofy/invocation.py

Project Member

Comment 27 by bugdroid1@chromium.org, Jul 7 2016

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

commit f1c1ef234f52dc6f5e671185dd533f34e57cec23
Author: Joel Kitching <kitching@google.com>
Date: Tue Jun 28 16:46:58 2016

instalog: prepare for buffer plugin and attachments

- Refactor run_plugin, include support for BufferPlugins.
- Expose superclass as GetSuperclass in PluginLoader and
  PluginSandbox.
- Add support to create fake attachments in input_time.py.
- Add support for copying Event objects.
- Add support to "call into" a Plugin instance with
  PluginSandbox.CallPlugin.
- Update docstrings for BufferPlugin in plugin_base.

Note that buffer plugin will be committed separately.

BUG= chromium:609069 
TEST=Locally

Change-Id: Ib8abf987c961b934e4dcee689b0f06cbdbdb6a69
Reviewed-on: https://chromium-review.googlesource.com/356322
Commit-Ready: Joel Kitching <kitching@chromium.org>
Tested-by: Joel Kitching <kitching@chromium.org>
Reviewed-by: Chun-ta Lin <itspeter@chromium.org>

[modify] https://crrev.com/f1c1ef234f52dc6f5e671185dd533f34e57cec23/py/instalog/json_utils.py
[modify] https://crrev.com/f1c1ef234f52dc6f5e671185dd533f34e57cec23/py/instalog/run_plugin.py
[modify] https://crrev.com/f1c1ef234f52dc6f5e671185dd533f34e57cec23/py/instalog/plugin_loader_unittest.py
[modify] https://crrev.com/f1c1ef234f52dc6f5e671185dd533f34e57cec23/py/instalog/plugins/input_time.py
[modify] https://crrev.com/f1c1ef234f52dc6f5e671185dd533f34e57cec23/py/instalog/plugin_loader.py
[modify] https://crrev.com/f1c1ef234f52dc6f5e671185dd533f34e57cec23/py/instalog/datatypes.py
[modify] https://crrev.com/f1c1ef234f52dc6f5e671185dd533f34e57cec23/py/instalog/plugin_sandbox.py
[modify] https://crrev.com/f1c1ef234f52dc6f5e671185dd533f34e57cec23/py/instalog/plugins/output_stdout.py
[modify] https://crrev.com/f1c1ef234f52dc6f5e671185dd533f34e57cec23/py/instalog/plugin_base.py
[modify] https://crrev.com/f1c1ef234f52dc6f5e671185dd533f34e57cec23/py/instalog/datatypes_unittest.py

Project Member

Comment 28 by bugdroid1@chromium.org, Jul 7 2016

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

commit 4715c61ceef0caf15c2ce1819f60194e3572f3ef
Author: Chun-Ta Lin <itspeter@google.com>
Date: Thu Jul 07 07:48:49 2016

Fix the unittest of testlog.

With the new validate function, the unittest breaks because of type
difference.

BUG= chromium:609069 
TEST=py/test/testlog_unittest.py

Change-Id: I1964c6984ac80ccbd2fa5ff8f498d4886834fc6d
Reviewed-on: https://chromium-review.googlesource.com/358721
Commit-Ready: Chun-ta Lin <itspeter@chromium.org>
Tested-by: Chun-ta Lin <itspeter@chromium.org>
Reviewed-by: Hung-Te Lin <hungte@chromium.org>

[modify] https://crrev.com/4715c61ceef0caf15c2ce1819f60194e3572f3ef/py/test/testlog_unittest.py

Project Member

Comment 29 by bugdroid1@chromium.org, Jul 7 2016

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

commit 39f5cd544dd79d12cf37e03475617068f1cf2181
Author: Joel Kitching <kitching@google.com>
Date: Mon Jul 04 05:28:47 2016

instalog: rpc input and output plugins

Introduce a pair of plugins for transferring data across the
network from one Instalog node to another.  JSON RPC is used
to make the transfer.  Minimal support for file transfers
is provided (severe limitations on file size, since we must
use base64 encode to transfer the file as a JSON string).

In the future, will implement a more flexible pair of network
transfer plugins supporting compression and large file sizes.

Other miscellaneous changes:
- Fix a bug in plugin_sandbox.Emit (not returning proper value).
- Fix a bug in run_plugin.Emit (not returning proper value).
- Fix a bug in plugin_sandbox.EventStreamAbort (both del + pop).
- Stop should no longer work in PAUSING and UNPAUSING states.
- Update some comments and variable names in input_time and
  output_stdout.
- Fix a bug in run_plugin to create the state directory.

BUG= chromium:609069 
TEST=Locally using run_plugin.py

Change-Id: I4a954755a62cf0bd51eddd1c02aed3e6010c79f0
Reviewed-on: https://chromium-review.googlesource.com/358340
Commit-Ready: Joel Kitching <kitching@chromium.org>
Tested-by: Joel Kitching <kitching@chromium.org>
Reviewed-by: Chun-ta Lin <itspeter@chromium.org>

[modify] https://crrev.com/39f5cd544dd79d12cf37e03475617068f1cf2181/py/instalog/plugin_sandbox_unittest.py
[modify] https://crrev.com/39f5cd544dd79d12cf37e03475617068f1cf2181/py/instalog/run_plugin.py
[add] https://crrev.com/39f5cd544dd79d12cf37e03475617068f1cf2181/py/instalog/plugins/input_rpc.py
[modify] https://crrev.com/39f5cd544dd79d12cf37e03475617068f1cf2181/py/instalog/plugin_sandbox.py
[modify] https://crrev.com/39f5cd544dd79d12cf37e03475617068f1cf2181/py/instalog/plugins/input_time.py
[modify] https://crrev.com/39f5cd544dd79d12cf37e03475617068f1cf2181/py/instalog/plugin_loader.py
[modify] https://crrev.com/39f5cd544dd79d12cf37e03475617068f1cf2181/py/instalog/plugins/output_stdout.py
[add] https://crrev.com/39f5cd544dd79d12cf37e03475617068f1cf2181/py/instalog/plugins/output_rpc.py

Project Member

Comment 30 by bugdroid1@chromium.org, Jul 11 2016

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

commit bac501dbcf462bfe2fc8e5df444d40fb05f65885
Author: Joel Kitching <kitching@google.com>
Date: Fri Jul 08 06:51:29 2016

instalog: add support for external python libraries

Modify instalog_common to include the directory for external
libraries (instalog/external).  Introduce a requirements.txt
for use with pip to install external requirements:

  $ pip install -t external -r requirements.txt

Currently the only listed package is `transaction`.

BUG= chromium:609069 
TEST=Locally

Change-Id: I7cd3321b5112430a65a83911052f58fa5b3dc888
Reviewed-on: https://chromium-review.googlesource.com/359101
Commit-Ready: Joel Kitching <kitching@chromium.org>
Tested-by: Joel Kitching <kitching@chromium.org>
Reviewed-by: Chun-ta Lin <itspeter@chromium.org>

[modify] https://crrev.com/bac501dbcf462bfe2fc8e5df444d40fb05f65885/py/instalog/instalog_common.py
[add] https://crrev.com/bac501dbcf462bfe2fc8e5df444d40fb05f65885/py/instalog/requirements.txt

Project Member

Comment 31 by bugdroid1@chromium.org, Jul 12 2016

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

commit 041812219712edc65f624288616108047f3797b4
Author: Joel Kitching <kitching@google.com>
Date: Fri Jul 08 07:04:59 2016

instalog: add ping-pong functionality to rpc plugins

It is a waste of resources for output_rpc to repeatedly
prepare a batch of events to send, when the host running
the input_rpc plugin may not be available.

Introduce a "Pong" function on input_rpc, which is first
checked by output_rpc before preparing a batch of events
to transmit.

Also, reduce the verbosity of input_rpc, output_rpc, and
output_stdout.

BUG= chromium:609069 
TEST=Locally

Change-Id: I7b5a3e39e943aaf97959d2e3ae098af28f33d97c
Reviewed-on: https://chromium-review.googlesource.com/359120
Commit-Ready: Joel Kitching <kitching@chromium.org>
Tested-by: Joel Kitching <kitching@chromium.org>
Reviewed-by: Chun-ta Lin <itspeter@chromium.org>

[modify] https://crrev.com/041812219712edc65f624288616108047f3797b4/py/instalog/plugins/input_rpc.py
[modify] https://crrev.com/041812219712edc65f624288616108047f3797b4/py/instalog/plugins/output_stdout.py
[modify] https://crrev.com/041812219712edc65f624288616108047f3797b4/py/instalog/plugins/output_rpc.py

Project Member

Comment 32 by bugdroid1@chromium.org, Jul 15 2016

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

commit 8ddf52e81ee402c558507d4e3abd76088c48a663
Author: Joel Kitching <kitching@google.com>
Date: Thu Jul 07 06:30:14 2016

instalog: add batching functionality to input_log_file

To prevent getting stuck on a huge input file, rewrite
input_log_file to process batches of N events.  Also,
refactor code related to truncating log files, to minimize
log file locking time.

BUG= chromium:609069 
TEST=Manually on DUT

Change-Id: If65d86735c10237be73b02a508ffcf2bbe161d9f
Reviewed-on: https://chromium-review.googlesource.com/358337
Commit-Ready: Joel Kitching <kitching@chromium.org>
Tested-by: Joel Kitching <kitching@chromium.org>
Reviewed-by: Chun-ta Lin <itspeter@chromium.org>

[modify] https://crrev.com/8ddf52e81ee402c558507d4e3abd76088c48a663/py/instalog/plugins/input_log_file.py

Project Member

Comment 33 by bugdroid1@chromium.org, Jul 16 2016

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

commit d849029e68d19d793d4c46b98f3ce2797104f3c0
Author: Chun-Ta Lin <itspeter@google.com>
Date: Thu Jul 07 13:18:39 2016

Implement Validator.Attachment

TEST=make lint LINT_WHITELIST="py/test/testlog.py \
  py/test/testlog_validator.py py/test/testlog_validator_unittest.py"
TEST=py/test/testlog_validator_unittest.py
BUG= chromium:609069 

Change-Id: Iab9856a74dff0bb3038d507176332284ffd50e1e
Reviewed-on: https://chromium-review.googlesource.com/358734
Commit-Ready: Chun-ta Lin <itspeter@chromium.org>
Tested-by: Chun-ta Lin <itspeter@chromium.org>
Reviewed-by: Joel Kitching <kitching@chromium.org>

[modify] https://crrev.com/d849029e68d19d793d4c46b98f3ce2797104f3c0/py/test/testlog_validator_unittest.py
[modify] https://crrev.com/d849029e68d19d793d4c46b98f3ce2797104f3c0/py/test/testlog_validator.py
[modify] https://crrev.com/d849029e68d19d793d4c46b98f3ce2797104f3c0/py/test/testlog.py

Project Member

Comment 34 by bugdroid1@chromium.org, Jul 17 2016

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

commit fd59113d9a39e364dcb8f377655c543b49de6286
Author: Chun-Ta Lin <itspeter@google.com>
Date: Thu Jul 14 08:55:22 2016

Implement series for StationTestRun

In addition,
 - fix the bug that a testlog API cannot be called more than
   once because session JSON got multiple entries.
 - fix the bug that metadata is collected into primary JSON.
 - fix the bug that session JSON with attachment will be failed
   to collect.

TEST=make lint LINT_WHITELIST=" \
  py/test/testlog.py py/test/testlog_unittest.py \
  py/test/testlog_utils.py py/test/testlog_utils_unittest.py \
  py/test/testlog_validator.py py/test/testlog_validator_unittest.py"
TEST=make test UNITTESTS_WHITELIST=" \
  py/test/testlog_validator_unittest.py \
  py/test/testlog_utils_unittest.py \
  py/test/testlog_unittest.py"
BUG= chromium:609069 

Change-Id: Ia6d038f9008ea82fec22b27d174eb793079d35dc
Reviewed-on: https://chromium-review.googlesource.com/360339
Commit-Ready: Chun-ta Lin <itspeter@chromium.org>
Tested-by: Chun-ta Lin <itspeter@chromium.org>
Reviewed-by: Joel Kitching <kitching@chromium.org>

[modify] https://crrev.com/fd59113d9a39e364dcb8f377655c543b49de6286/py/test/testlog_validator.py
[modify] https://crrev.com/fd59113d9a39e364dcb8f377655c543b49de6286/py/test/testlog.py
[modify] https://crrev.com/fd59113d9a39e364dcb8f377655c543b49de6286/py/test/testlog_utils.py
[modify] https://crrev.com/fd59113d9a39e364dcb8f377655c543b49de6286/py/test/testlog_validator_unittest.py
[modify] https://crrev.com/fd59113d9a39e364dcb8f377655c543b49de6286/py/test/testlog_unittest.py
[modify] https://crrev.com/fd59113d9a39e364dcb8f377655c543b49de6286/py/test/testlog_utils_unittest.py

Project Member

Comment 35 by bugdroid1@chromium.org, Jul 18 2016

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

commit 21bc69bdc1afcb78c26bc648e7d32c2f7372efb7
Author: Joel Kitching <kitching@google.com>
Date: Wed Jul 13 15:29:52 2016

testlog: rename uuid and stationinstallationid

As per current Testlog Playbook document, rename:
  - id --> uuid
  - stationReimageId --> stationInstallationId

Also, use TimedUUID for the uuid field instead of uuid4.

BUG= chromium:609069 
TEST=testlog_unittest.py and testlog_goofy_unittest.py

Change-Id: Ic3322624dc98f9c717cfaa8054cca7acf60cc3d3
Reviewed-on: https://chromium-review.googlesource.com/360241
Commit-Ready: Joel Kitching <kitching@chromium.org>
Tested-by: Joel Kitching <kitching@chromium.org>
Reviewed-by: Chun-ta Lin <itspeter@chromium.org>

[modify] https://crrev.com/21bc69bdc1afcb78c26bc648e7d32c2f7372efb7/py/test/event_log.py
[modify] https://crrev.com/21bc69bdc1afcb78c26bc648e7d32c2f7372efb7/py/test/testlog_goofy_unittest.py
[modify] https://crrev.com/21bc69bdc1afcb78c26bc648e7d32c2f7372efb7/py/goofy/invocation.py
[modify] https://crrev.com/21bc69bdc1afcb78c26bc648e7d32c2f7372efb7/py/test/testlog.py
[modify] https://crrev.com/21bc69bdc1afcb78c26bc648e7d32c2f7372efb7/py/test/testlog_unittest.py
[modify] https://crrev.com/21bc69bdc1afcb78c26bc648e7d32c2f7372efb7/py/goofy/goofy.py
[modify] https://crrev.com/21bc69bdc1afcb78c26bc648e7d32c2f7372efb7/py/test/testlog_goofy.py

Project Member

Comment 36 by bugdroid1@chromium.org, Jul 25 2016

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

commit 3acbf61efeb5ccc6e6e32dd463c98c45b69e3fe5
Author: Wei-Han Chen <stimim@google.com>
Date: Sat Jul 23 00:35:04 2016

invocation: move the timing to resolve dargs

In test invocation._run, we log test.dargs before running the test.
However, the logged dargs might not be the actual dargs that is used to
run test, because it need to be resolved by ResolveTestArgs function.

In this CL, we resolve the test args first, log the resolved value,
and call the test eventually.

BUG= chromium:609069 
TEST=manual test

Change-Id: I676461944f85db67f07f4fc8cf3d4358fdaefd2a
Reviewed-on: https://chromium-review.googlesource.com/362740
Commit-Ready: Wei-Han Chen <stimim@chromium.org>
Tested-by: Wei-Han Chen <stimim@chromium.org>
Reviewed-by: Joel Kitching <kitching@chromium.org>

[modify] https://crrev.com/3acbf61efeb5ccc6e6e32dd463c98c45b69e3fe5/py/goofy/invocation.py

Project Member

Comment 37 by bugdroid1@chromium.org, Jul 27 2016

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

commit 749a907a581fa92a8620a6d606bf195cbb9c6777
Author: Joel Kitching <kitching@google.com>
Date: Fri Jul 08 07:44:06 2016

wifi_throughput: add testlog support

Log throughput speeds to testlog.

BUG= chromium:609069 
TEST=Manually on DUT

Change-Id: I138d088aea594161d2dd1c40c480b279086bb29c
Reviewed-on: https://chromium-review.googlesource.com/359132
Commit-Ready: Joel Kitching <kitching@chromium.org>
Tested-by: Joel Kitching <kitching@chromium.org>
Reviewed-by: Joel Kitching <kitching@chromium.org>

[modify] https://crrev.com/749a907a581fa92a8620a6d606bf195cbb9c6777/py/test/pytests/wifi_throughput.py

Project Member

Comment 38 by bugdroid1@chromium.org, Aug 1 2016

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

commit 44dfedbfc2c3b27e1b5743690c1538fd1ea42399
Author: Joel Kitching <kitching@google.com>
Date: Thu Jul 21 00:57:58 2016

testlog: log station.test_run starting event

Implement the station.test_run STARTING event, so that
downstream systems processing testlog events can know
when an event is beginning to run.

BUG= chromium:609069 
TEST=Run goofy locally
CQ-DEPEND=CL:361484

Change-Id: Ie1233aecc22dc08dd2e25c860f6fee0bbc8ff646
Reviewed-on: https://chromium-review.googlesource.com/362710
Commit-Ready: Joel Kitching <kitching@chromium.org>
Tested-by: Joel Kitching <kitching@chromium.org>
Reviewed-by: Chih-Yu Huang <akahuang@chromium.org>

[modify] https://crrev.com/44dfedbfc2c3b27e1b5743690c1538fd1ea42399/py/goofy/invocation.py
[modify] https://crrev.com/44dfedbfc2c3b27e1b5743690c1538fd1ea42399/py/test/testlog_unittest.py
[modify] https://crrev.com/44dfedbfc2c3b27e1b5743690c1538fd1ea42399/py/test/testlog.py

Project Member

Comment 39 by bugdroid1@chromium.org, Aug 3 2016

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

commit cbf39c72086b1e62263a23bb54d8841bf3c27aee
Author: Joel Kitching <kitching@google.com>
Date: Tue Jul 12 00:18:40 2016

instalog: create bigquery output plugin

Create a BigQuery output plugin, which should be subclassed
according to the desired Instalog event -> BigQuery table row
mapping.

BUG=b:30449283, chromium:609069 
TEST=Manually with run_plugin.py

Change-Id: Id14181a606d7561ffd1186dd2aa40345d8a6f90b
Reviewed-on: https://chromium-review.googlesource.com/359921
Commit-Ready: Joel Kitching <kitching@chromium.org>
Tested-by: Joel Kitching <kitching@chromium.org>
Reviewed-by: Wei-Han Chen <stimim@chromium.org>

[add] https://crrev.com/cbf39c72086b1e62263a23bb54d8841bf3c27aee/py/instalog/plugins/output_bigquery.py
[add] https://crrev.com/cbf39c72086b1e62263a23bb54d8841bf3c27aee/py/instalog/plugins/output_bigquery_testlog.py
[modify] https://crrev.com/cbf39c72086b1e62263a23bb54d8841bf3c27aee/py/instalog/requirements.txt
[modify] https://crrev.com/cbf39c72086b1e62263a23bb54d8841bf3c27aee/py/instalog/datatypes.py

Project Member

Comment 40 by bugdroid1@chromium.org, Aug 3 2016

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

commit 3e72e8b75c8b1d405cd2a785e96b16d17e5657b3
Author: Joel Kitching <kitching@google.com>
Date: Mon Jul 04 09:03:00 2016

instalog: implement core daemon and cli

Implement Instalog core, and use JSON RPC to communicate
with it via a separate CLI controller script.

Sample config is also included.

BUG=b:30446792, chromium:609069 
TEST=Manually

Change-Id: Iaf7621a471a593bc7091a509bec01863f2dfb55a
Reviewed-on: https://chromium-review.googlesource.com/358390
Commit-Ready: Joel Kitching <kitching@chromium.org>
Tested-by: Joel Kitching <kitching@chromium.org>
Reviewed-by: Wei-Han Chen <stimim@chromium.org>

[add] https://crrev.com/3e72e8b75c8b1d405cd2a785e96b16d17e5657b3/bin/instalog
[add] https://crrev.com/3e72e8b75c8b1d405cd2a785e96b16d17e5657b3/py/instalog/instalog.yaml_sample
[add] https://crrev.com/3e72e8b75c8b1d405cd2a785e96b16d17e5657b3/py/instalog/daemon_utils.py
[modify] https://crrev.com/3e72e8b75c8b1d405cd2a785e96b16d17e5657b3/py/instalog/plugin_sandbox.py
[add] https://crrev.com/3e72e8b75c8b1d405cd2a785e96b16d17e5657b3/py/instalog/core.py
[add] https://crrev.com/3e72e8b75c8b1d405cd2a785e96b16d17e5657b3/py/instalog/__main__.py
[modify] https://crrev.com/3e72e8b75c8b1d405cd2a785e96b16d17e5657b3/py/instalog/plugin_loader.py
[modify] https://crrev.com/3e72e8b75c8b1d405cd2a785e96b16d17e5657b3/py/instalog/plugin_base.py
[add] https://crrev.com/3e72e8b75c8b1d405cd2a785e96b16d17e5657b3/py/instalog/cli.py

Project Member

Comment 41 by bugdroid1@chromium.org, Aug 3 2016

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

commit 86624e8b771d3769a1f6af7d98d2744d720c804a
Author: Joel Kitching <kitching@google.com>
Date: Wed Aug 03 00:22:54 2016

instalog: check dict in event constructor

Check that first argument provided to Event constructor
is a dict.  Add a corresponding unittest.

BUG= chromium:609069 
TEST=Manually

Change-Id: I9c4c3f59b4b881ad73eeaba86a69e869765fe95b
Reviewed-on: https://chromium-review.googlesource.com/365467
Commit-Ready: Joel Kitching <kitching@chromium.org>
Tested-by: Joel Kitching <kitching@chromium.org>
Reviewed-by: Wei-Han Chen <stimim@chromium.org>

[modify] https://crrev.com/86624e8b771d3769a1f6af7d98d2744d720c804a/py/instalog/datatypes_unittest.py
[modify] https://crrev.com/86624e8b771d3769a1f6af7d98d2744d720c804a/py/instalog/datatypes.py

Project Member

Comment 42 by bugdroid1@chromium.org, Aug 8 2016

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

commit d01336a4a5a101f2863911866caba6265f1f0f1b
Author: Joel Kitching <kitching@google.com>
Date: Wed Aug 03 00:14:59 2016

instalog: refactor input_log_file to support multiple files

Refactor input_log_file to support a glob pattern as its
target path.  The pattern will be periodically checked for
any new files, which will be added to the list of log
files to check for new input.

This is useful for cases where log files are dynamically
generated based on time, rotation, etc.

Also: Fix input_testlog_file date processing and attachment
processing.

Also: Introduce a log_utils module, whose current primary
purpose is to provide a LoggerMixin class for plugins to
use.  LoggerMixin assumes the existence of a self.logger
object, and provides self.info, self.warning, etc.
convenience functions.

BUG=b:30450754, chromium:609069 
TEST=Manually with run_plugin.py

Change-Id: I5cb70b8ca4fc234a56b897a20ff3ff02c58175f0
Reviewed-on: https://chromium-review.googlesource.com/365474
Commit-Ready: Dan Shi <dshi@google.com>
Tested-by: Joel Kitching <kitching@chromium.org>
Reviewed-by: Wei-Han Chen <stimim@chromium.org>

[modify] https://crrev.com/d01336a4a5a101f2863911866caba6265f1f0f1b/py/instalog/plugin_sandbox_unittest.py
[modify] https://crrev.com/d01336a4a5a101f2863911866caba6265f1f0f1b/py/instalog/plugins/input_log_file.py
[modify] https://crrev.com/d01336a4a5a101f2863911866caba6265f1f0f1b/py/instalog/plugin_loader_unittest.py
[modify] https://crrev.com/d01336a4a5a101f2863911866caba6265f1f0f1b/py/instalog/plugins/input_testlog_file.py
[add] https://crrev.com/d01336a4a5a101f2863911866caba6265f1f0f1b/py/instalog/log_utils_unittest.py
[modify] https://crrev.com/d01336a4a5a101f2863911866caba6265f1f0f1b/py/instalog/datatypes_unittest.py
[add] https://crrev.com/d01336a4a5a101f2863911866caba6265f1f0f1b/py/instalog/log_utils.py
[modify] https://crrev.com/d01336a4a5a101f2863911866caba6265f1f0f1b/py/instalog/run_plugin.py
[modify] https://crrev.com/d01336a4a5a101f2863911866caba6265f1f0f1b/py/instalog/plugin_base.py
[modify] https://crrev.com/d01336a4a5a101f2863911866caba6265f1f0f1b/py/instalog/json_utils_unittest.py
[modify] https://crrev.com/d01336a4a5a101f2863911866caba6265f1f0f1b/py/instalog/cli.py

Project Member

Comment 43 by bugdroid1@chromium.org, Aug 8 2016

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

commit 6b70ad9e25a17f59b906bd327698c4edd79ea33e
Author: Joel Kitching <kitching@google.com>
Date: Wed Aug 03 00:29:49 2016

instalog: input_health to report disk usage and system time

Introduce a plugin called input_health, which generates events
that contain disk usage of the partition where Instalog's
state directory is stored, as well as the current system time.

These events can be processed downstream to verify connectivity
of an Instalog node, as well as checking its "health".

Also update core.py and run_plugin.py to include the special
'__nodeId__' key-value to record an Event's origin.

BUG=b:30450850, chromium:609069 
TEST=Manually with run_plugin.py

Change-Id: Ife002eeb0da8303f9f61df8908c16a7b32204d27
Reviewed-on: https://chromium-review.googlesource.com/365540
Commit-Ready: Joel Kitching <kitching@chromium.org>
Tested-by: Joel Kitching <kitching@chromium.org>
Reviewed-by: Wei-Han Chen <stimim@chromium.org>

[modify] https://crrev.com/6b70ad9e25a17f59b906bd327698c4edd79ea33e/py/instalog/core.py
[add] https://crrev.com/6b70ad9e25a17f59b906bd327698c4edd79ea33e/py/instalog/plugins/input_health.py
[modify] https://crrev.com/6b70ad9e25a17f59b906bd327698c4edd79ea33e/py/instalog/run_plugin.py

Project Member

Comment 44 by bugdroid1@chromium.org, Aug 9 2016

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

commit e2628b65a2987fc164ab5da45c70d7534d45da9d
Author: Joel Kitching <kitching@google.com>
Date: Wed Aug 03 07:53:19 2016

instalog: add compression and fix bugs in rpc plugins

- Add zlib compression to RPC plugins.
- Use the total serialized data size to count against
  threshold_bytes and max_bytes.
- Fix a file handler leak in input_rpc.
- Display transfer size and and time in output_rpc.

BUG=b:30616536, chromium:609069 
TEST=Manually with run_plugin.py

Change-Id: Ied6f8466d1e136e57afb4f61b5b56eced75b6e78
Reviewed-on: https://chromium-review.googlesource.com/365521
Commit-Ready: Joel Kitching <kitching@chromium.org>
Tested-by: Joel Kitching <kitching@chromium.org>
Reviewed-by: Wei-Han Chen <stimim@chromium.org>

[modify] https://crrev.com/e2628b65a2987fc164ab5da45c70d7534d45da9d/py/instalog/plugins/input_rpc.py
[modify] https://crrev.com/e2628b65a2987fc164ab5da45c70d7534d45da9d/py/instalog/plugins/output_rpc.py

Project Member

Comment 45 by bugdroid1@chromium.org, Aug 10 2016

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

commit bdc7522ef9daf9f834f872e6435d8d9664391c69
Author: Joel Kitching <kitching@google.com>
Date: Wed Aug 10 02:09:22 2016

instalog/input_testlog_file: drop attachments that don't exist

Instead of passing a non-existent file path in an event
to the buffer (which will fail to commit), check for the
existence of the attachment file before Emit.  If the
file dosen't exist, drop it with a warning.

BUG=b:30450754, chromium:609069 
TEST=Manually with run_plugin.py

Change-Id: I3d6cba6d71ef50945d1092ad9403b2339bbb6666
Reviewed-on: https://chromium-review.googlesource.com/367570
Commit-Ready: Joel Kitching <kitching@chromium.org>
Tested-by: Joel Kitching <kitching@chromium.org>
Reviewed-by: Chih-Yu Huang <akahuang@chromium.org>

[modify] https://crrev.com/bdc7522ef9daf9f834f872e6435d8d9664391c69/py/instalog/plugins/input_testlog_file.py

Project Member

Comment 46 by bugdroid1@chromium.org, Aug 10 2016

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

commit d49ddb1c879f1722eb1562b807c2e675cddd8b3d
Author: Joel Kitching <kitching@google.com>
Date: Wed Aug 10 02:15:45 2016

instalog: stop removing from sys.modules in loader

Stop removing references to the plugin modules from
sys.modules before and after import.  It causes problems
when we want to have two plugin instances of the same
plugin type (the first plugin's references to any other
modules stop working correctly).

In order to catch the case where a plugin file is removed
before re-import, add a case to check for whether the
plugin was already previously imported, and use `reload`
instead.

BUG= chromium:609069 
TEST=Manually with run_plugin.py

Change-Id: Id1b18fb6385be106445330ff4cea374b3d4ea042
Reviewed-on: https://chromium-review.googlesource.com/367571
Commit-Ready: Joel Kitching <kitching@chromium.org>
Tested-by: Joel Kitching <kitching@chromium.org>
Reviewed-by: Chih-Yu Huang <akahuang@chromium.org>

[modify] https://crrev.com/d49ddb1c879f1722eb1562b807c2e675cddd8b3d/py/instalog/plugin_loader.py

Project Member

Comment 47 by bugdroid1@chromium.org, Aug 11 2016

Project Member

Comment 48 by bugdroid1@chromium.org, Aug 11 2016

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

commit d2411064b40e9c10b39095da2fa8e3f22bc617e9
Author: Joel Kitching <kitching@google.com>
Date: Fri Jul 22 23:28:33 2016

testlog: implement serial number support

BUG= chromium:609069 
TEST=Manually on DUT

Change-Id: Id66f9d05838a7ac38c07bea67e3e20317b54fbeb
Reviewed-on: https://chromium-review.googlesource.com/362730
Commit-Ready: Joel Kitching <kitching@chromium.org>
Tested-by: Joel Kitching <kitching@chromium.org>
Reviewed-by: Joel Kitching <kitching@chromium.org>

[modify] https://crrev.com/d2411064b40e9c10b39095da2fa8e3f22bc617e9/py/goofy/invocation.py
[modify] https://crrev.com/d2411064b40e9c10b39095da2fa8e3f22bc617e9/py/device/info.py
[modify] https://crrev.com/d2411064b40e9c10b39095da2fa8e3f22bc617e9/py/test/pytests/station_entry.py

Project Member

Comment 49 by bugdroid1@chromium.org, Aug 11 2016

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

commit 98f4cb3899da9dce5e4261061353d4f512ed81a4
Author: Joel Kitching <kitching@google.com>
Date: Wed Aug 10 02:33:57 2016

instalog: sandbox captures exceptions from plugin

Capture any exceptions thrown by the plugin threads running
Start, Main, or Stop.  When an exception occurs, the plugin
is forced into the STOPPING state.

BUG= chromium:609069 
TEST=Manually with run_plugin.py

Change-Id: I04d645f31b30da9dea5bb92c742f51072c604dab
Reviewed-on: https://chromium-review.googlesource.com/367572
Commit-Ready: Joel Kitching <kitching@chromium.org>
Tested-by: Joel Kitching <kitching@chromium.org>
Reviewed-by: Chih-Yu Huang <akahuang@chromium.org>

[modify] https://crrev.com/98f4cb3899da9dce5e4261061353d4f512ed81a4/py/instalog/plugin_sandbox.py

Project Member

Comment 50 by bugdroid1@chromium.org, Aug 12 2016

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

commit af0a08d0be9b84c9ee16ab39926a0d064cbae13e
Author: Joel Kitching <kitching@google.com>
Date: Fri Aug 12 03:19:06 2016

station_entry: fix serial number bug

dut.info.serial_numbers is being accessed, which does not exist.
Should be changed to dut.info.all_serial_numbers.

BUG= chromium:609069 
TEST=Manually on DUT

Change-Id: Ie2a2cc10389334e43c75536f6a661c9ae27de339
Reviewed-on: https://chromium-review.googlesource.com/368531
Commit-Ready: Joel Kitching <kitching@chromium.org>
Tested-by: Joel Kitching <kitching@chromium.org>
Reviewed-by: Wei-Han Chen <stimim@chromium.org>

[modify] https://crrev.com/af0a08d0be9b84c9ee16ab39926a0d064cbae13e/py/test/pytests/station_entry.py

Project Member

Comment 51 by bugdroid1@chromium.org, Aug 13 2016

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

commit 3cd4e626d0ef3acee0507cfb04b696e35c4fcc20
Author: Joel Kitching <kitching@google.com>
Date: Wed Aug 10 08:05:46 2016

instalog: plugin to capture screencap events from drm/dri

On specified interval, save screencap as an input event
with attachment file.

drm.py library imported from autotest codebase unmodified,
so it does not conform to Factory codebase standards.

BUG=b:30449282, chromium:609069 
TEST=Manually with run_plugin.py

Change-Id: I6fe5a759c92a51432c4294db0472fe5c4401652c
Reviewed-on: https://chromium-review.googlesource.com/367611
Commit-Ready: Joel Kitching <kitching@chromium.org>
Tested-by: Joel Kitching <kitching@chromium.org>
Reviewed-by: Chih-Yu Huang <akahuang@chromium.org>

[add] https://crrev.com/3cd4e626d0ef3acee0507cfb04b696e35c4fcc20/py/instalog/plugins/input_drm_screencap/__init__.py
[add] https://crrev.com/3cd4e626d0ef3acee0507cfb04b696e35c4fcc20/py/instalog/plugins/input_drm_screencap/instalog_common.py
[modify] https://crrev.com/3cd4e626d0ef3acee0507cfb04b696e35c4fcc20/Makefile
[add] https://crrev.com/3cd4e626d0ef3acee0507cfb04b696e35c4fcc20/py/instalog/plugins/input_drm_screencap/input_drm_screencap.py
[add] https://crrev.com/3cd4e626d0ef3acee0507cfb04b696e35c4fcc20/py/instalog/plugins/input_drm_screencap/drm.py

Project Member

Comment 52 by bugdroid1@chromium.org, Aug 13 2016

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

commit 2cba1dcd16cfa12c37b0a269f11b71236b5b206d
Author: Joel Kitching <kitching@google.com>
Date: Wed Aug 10 14:43:32 2016

instalog: introduce sleep call for plugins

When a plugin is requested to stop, it might be in the
middle of a time.sleep call.  This provides an alternative
sleep function, which will return immediately when a
plugin changes to the STOPPING state.

BUG= chromium:609069 
TEST=Manually with run_plugin.py

Change-Id: I0804649cae04e4f474ad30c83617964dddf8a159
Reviewed-on: https://chromium-review.googlesource.com/367684
Commit-Ready: Joel Kitching <kitching@chromium.org>
Tested-by: Joel Kitching <kitching@chromium.org>
Reviewed-by: Chih-Yu Huang <akahuang@chromium.org>

[modify] https://crrev.com/2cba1dcd16cfa12c37b0a269f11b71236b5b206d/py/instalog/plugins/input_drm_screencap/input_drm_screencap.py
[modify] https://crrev.com/2cba1dcd16cfa12c37b0a269f11b71236b5b206d/py/instalog/plugins/input_log_file.py
[modify] https://crrev.com/2cba1dcd16cfa12c37b0a269f11b71236b5b206d/py/instalog/plugins/output_bigquery.py
[modify] https://crrev.com/2cba1dcd16cfa12c37b0a269f11b71236b5b206d/py/instalog/plugins/input_time.py
[modify] https://crrev.com/2cba1dcd16cfa12c37b0a269f11b71236b5b206d/py/instalog/plugins/output_rpc.py
[modify] https://crrev.com/2cba1dcd16cfa12c37b0a269f11b71236b5b206d/py/instalog/plugins/output_stdout.py
[modify] https://crrev.com/2cba1dcd16cfa12c37b0a269f11b71236b5b206d/py/instalog/plugin_base.py
[modify] https://crrev.com/2cba1dcd16cfa12c37b0a269f11b71236b5b206d/py/instalog/plugins/input_health.py

Project Member

Comment 53 by bugdroid1@chromium.org, Aug 15 2016

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

commit 607500353be6d76e76be3286f8bd7fdec9d679b5
Author: Joel Kitching <kitching@google.com>
Date: Wed Aug 10 08:14:34 2016

instalog: plugin to support reading eventlog files

Subclass input_log_file to read from classic YAML
eventlog files.  Include a separate VSWR-based plugin
to transform VSWR eventlog events into Testlog
test_run events.

Why do we need this converter?
  (A) We have not yet converted the VSWR test to output
      Testlog data (in progress).
  (B) We may also have some legacy event_log data we
      would like to process.

So as a current solution, we can run this plugin on a
Shopfloor Instalog node, and point it to event_log
files.

BUG=b:30450656, chromium:609069 
TEST=Manually with run_pytest.py

Change-Id: Icdf9bbfe8990d657d57bd3df8b36207baadd737a
Reviewed-on: https://chromium-review.googlesource.com/367640
Commit-Ready: Joel Kitching <kitching@chromium.org>
Tested-by: Joel Kitching <kitching@chromium.org>
Reviewed-by: Chih-Yu Huang <akahuang@chromium.org>
Reviewed-by: Wei-Han Chen <stimim@chromium.org>

[add] https://crrev.com/607500353be6d76e76be3286f8bd7fdec9d679b5/py/instalog/plugins/input_eventlog_file.py
[add] https://crrev.com/607500353be6d76e76be3286f8bd7fdec9d679b5/py/instalog/plugins/input_eventlog_file_vswr.py
[modify] https://crrev.com/607500353be6d76e76be3286f8bd7fdec9d679b5/py/instalog/plugins/input_log_file.py

Project Member

Comment 54 by bugdroid1@chromium.org, Aug 16 2016

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

commit c31572c3d54ecf305cb77049e5fba4209c983ddf
Author: Joel Kitching <kitching@google.com>
Date: Fri Aug 12 07:45:05 2016

instalog: simple file-based buffer

Create a simple buffer plugin which writes its events
to a single file on disk, and separately maintains
metadata.

Replaces CL:358361.

BUG=b:30446786, chromium:609069 
TEST=Run unittest and test manually with run_plugin.py

Change-Id: I91c5a3dd7638654660421977b98df223ca13a252
Reviewed-on: https://chromium-review.googlesource.com/368491
Commit-Ready: Joel Kitching <kitching@chromium.org>
Tested-by: Joel Kitching <kitching@chromium.org>
Reviewed-by: Chih-Yu Huang <akahuang@chromium.org>

[add] https://crrev.com/c31572c3d54ecf305cb77049e5fba4209c983ddf/py/instalog/plugins/buffer_simple_file/__init__.py
[modify] https://crrev.com/c31572c3d54ecf305cb77049e5fba4209c983ddf/py/instalog/instalog.yaml_sample
[add] https://crrev.com/c31572c3d54ecf305cb77049e5fba4209c983ddf/py/instalog/plugins/buffer_simple_file/buffer_simple_file_unittest.py
[add] https://crrev.com/c31572c3d54ecf305cb77049e5fba4209c983ddf/py/instalog/plugins/buffer_simple_file/instalog_common.py
[modify] https://crrev.com/c31572c3d54ecf305cb77049e5fba4209c983ddf/py/instalog/plugin_base.py
[add] https://crrev.com/c31572c3d54ecf305cb77049e5fba4209c983ddf/py/instalog/plugins/buffer_simple_file/buffer_simple_file.py

Project Member

Comment 55 by bugdroid1@chromium.org, Aug 16 2016

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

commit 6f7a34eef86ba63bbcff28a1c301b06f0f6bacf5
Author: Joel Kitching <kitching@google.com>
Date: Sat Aug 13 08:01:43 2016

instalog/input_log_file: pause on log file read error

Sometimes there may be an issue reading one of the specified
log files (i.e. permissions issue).  Rather than the plugin
crashing entirely, or giving up on this file, keep trying with
a configurable time interval to use when a read error is
encountered.

Example use case:
- Incorrect permissions on some of the log files specified
  by the path glob.
- Permissions are corrected while the plugin is running.
- Plugin should start loading data from these files.

BUG=b:30450754, chromium:609069 
TEST=Manually with run_plugin.py

Change-Id: Iafedb952dbed2d428408b3465ab94a4a4377213f
Reviewed-on: https://chromium-review.googlesource.com/369030
Commit-Ready: Joel Kitching <kitching@chromium.org>
Tested-by: Joel Kitching <kitching@chromium.org>
Reviewed-by: Chih-Yu Huang <akahuang@chromium.org>

[modify] https://crrev.com/6f7a34eef86ba63bbcff28a1c301b06f0f6bacf5/py/instalog/plugins/input_log_file.py

Project Member

Comment 56 by bugdroid1@chromium.org, Aug 22 2016

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

commit 4af11ed9d67a729abcd48439e8e90fcfe4ca2e78
Author: Shun-Hsing Ou <shunhsingou@chromium.org>
Date: Wed Aug 17 08:03:27 2016

Clear all_serial_number when clean device data

BUG= chromium:609069 
TEST=Manually

Change-Id: I9ab47aa61f0228e3d0334e861cb22893029295ac
Reviewed-on: https://chromium-review.googlesource.com/371758
Commit-Ready: Shun-Hsing Ou <shunhsingou@chromium.org>
Tested-by: Shun-Hsing Ou <shunhsingou@chromium.org>
Reviewed-by: Joel Kitching <kitching@chromium.org>

[modify] https://crrev.com/4af11ed9d67a729abcd48439e8e90fcfe4ca2e78/py/device/info.py

Project Member

Comment 57 by bugdroid1@chromium.org, Aug 22 2016

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

commit 6361ee0e665aefde2f409cab64937e391d06b054
Author: Shun-Hsing Ou <shunhsingou@chromium.org>
Date: Tue Aug 16 14:10:45 2016

remove clear_device_data args in station_based_test_list

Argument 'clear_device_data' has been removed in CL:362730. We need to
remove this in station_based_test_list to avoid unexpected error.

BUG= chromium:609069 
TEST=manually

Change-Id: I8b33ee6ffc28ce690c70816621bd48bf16383775
Reviewed-on: https://chromium-review.googlesource.com/371121
Commit-Ready: Shun-Hsing Ou <shunhsingou@chromium.org>
Tested-by: Shun-Hsing Ou <shunhsingou@chromium.org>
Reviewed-by: Joel Kitching <kitching@chromium.org>

[modify] https://crrev.com/6361ee0e665aefde2f409cab64937e391d06b054/py/test/test_lists/station_based_test_list.py

Status: Fixed (was: Started)

Sign in to add a comment