• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# Copyright 2017 The Chromium OS Authors. All rights reserved.
2# Use of this source code is governed by a BSD-style license that can be
3# found in the LICENSE file.
4
5from autotest_lib.client.common_lib import error
6from autotest_lib.client.common_lib import utils as sys_utils
7from autotest_lib.client.cros import upstart
8"""Provides utility methods for CUPS."""
9
10
11def has_cups_upstart():
12  """Returns True if cups is installed under upstart."""
13  return upstart.has_service('cupsd')
14
15
16def has_cups_systemd():
17  """Returns True if cups is running under systemd.
18
19  Attempts to start cups if it is not already running.
20  """
21  return sys_utils.has_systemd() and (
22      (sys_utils.get_service_pid('cups') != 0) or
23      (sys_utils.start_service('cups', ignore_status=True) == 0))
24
25
26def has_cups_or_die():
27  """Checks if the cups dameon is installed.  Raises TestNAError if it is not.
28
29  TestNA skips the test.
30  """
31  if not (has_cups_upstart() or has_cups_systemd()):
32    raise error.TestNAError('No cupsd service found')
33