Home | History | Annotate | Download | only in cros
      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 
      5 from autotest_lib.client.common_lib import error
      6 from autotest_lib.client.common_lib import utils as sys_utils
      7 from autotest_lib.client.cros import upstart
      8 """Provides utility methods for CUPS."""
      9 
     10 
     11 def has_cups_upstart():
     12   """Returns True if cups is installed under upstart."""
     13   return upstart.has_service('cupsd')
     14 
     15 
     16 def 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 
     26 def 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