autotest: Refactoring, move get_child_tasks to swarming_lib.

BUG=chromium:878054
TEST=None

Change-Id: Ia5628f4637a14790623d8e95df4990bdd166a983
Reviewed-on: https://chromium-review.googlesource.com/1191425
Reviewed-by: Xixuan Wu <xixuan@chromium.org>
Commit-Queue: Xixuan Wu <xixuan@chromium.org>
Tested-by: Xixuan Wu <xixuan@chromium.org>
diff --git a/venv/skylab_suite/suite_runner.py b/venv/skylab_suite/suite_runner.py
index 0cb589d..4b08828 100644
--- a/venv/skylab_suite/suite_runner.py
+++ b/venv/skylab_suite/suite_runner.py
@@ -49,7 +49,7 @@
 def _resume_suite(test_specs, suite_handler, dry_run=False):
     """Resume a suite and its child tasks by given suite id."""
     suite_id = suite_handler.suite_id
-    all_tasks = _fetch_child_tasks(suite_id)
+    all_tasks = swarming_lib.get_child_tasks(suite_id)
     not_yet_scheduled = _get_unscheduled_test_specs(
             test_specs, suite_handler, all_tasks)
 
@@ -345,24 +345,6 @@
                                      temp_json_path, suite_id)
 
 
-def _fetch_child_tasks(parent_task_id):
-    """Get the child tasks based on a parent swarming task id.
-
-    @param parent_task_id: The parent swarming task id.
-
-    @return a list of dicts, each dict refers to the whole stats of a task,
-        keys include 'name', 'bot_dimensions', 'tags', 'bot_id', 'state', etc.
-    """
-    swarming_cmd = swarming_lib.get_basic_swarming_cmd('query')
-    swarming_cmd += ['tasks/list?tags=parent_task_id:%s' % parent_task_id]
-    timeout_util = autotest.chromite_load('timeout_util')
-    cros_build_lib = autotest.chromite_load('cros_build_lib')
-    with timeout_util.Timeout(60):
-        child_tasks = cros_build_lib.RunCommand(
-                swarming_cmd, capture_output=True)
-        return json.loads(child_tasks.output)['items']
-
-
 @contextlib.contextmanager
 def disable_logging(logging_level):
     """Context manager for disabling logging of a given logging level."""
@@ -379,7 +361,7 @@
         # Log progress every 300 seconds.
         no_logging = bool(iterations * SUITE_WAIT_SLEEP_INTERVAL_SECONDS % 300)
         with disable_logging(logging.INFO if no_logging else logging.NOTSET):
-            all_tasks = _fetch_child_tasks(suite_handler.suite_id)
+            all_tasks = swarming_lib.get_child_tasks(suite_handler.suite_id)
             suite_handler.handle_results(all_tasks)
             for t in suite_handler.retried_tasks:
                 _retry_test(suite_handler, t['task_id'], dry_run=dry_run)
diff --git a/venv/skylab_suite/swarming_lib.py b/venv/skylab_suite/swarming_lib.py
index 03f8001..e6a82eb 100644
--- a/venv/skylab_suite/swarming_lib.py
+++ b/venv/skylab_suite/swarming_lib.py
@@ -349,3 +349,21 @@
     @return True if a bot is available to run task, otherwise False.
     """
     return not (bot['is_dead'] or bot['quarantined'])
+
+
+def get_child_tasks(parent_task_id):
+    """Get the child tasks based on a parent swarming task id.
+
+    @param parent_task_id: The parent swarming task id.
+
+    @return a list of dicts, each dict refers to the whole stats of a task,
+        keys include 'name', 'bot_dimensions', 'tags', 'bot_id', 'state', etc.
+    """
+    swarming_cmd = get_basic_swarming_cmd('query')
+    swarming_cmd += ['tasks/list?tags=parent_task_id:%s' % parent_task_id]
+    timeout_util = autotest.chromite_load('timeout_util')
+    cros_build_lib = autotest.chromite_load('cros_build_lib')
+    with timeout_util.Timeout(60):
+        child_tasks = cros_build_lib.RunCommand(
+                swarming_cmd, capture_output=True)
+        return json.loads(child_tasks.output)['items']