Source code for insights.parsers.katello_service_status

"""
KatelloServiceStatus - command ``katello-service status``
=========================================================

The KatelloServiceStatus parser only reads the last line of command
``katello-service status`` to get the list of the failed services.

Note:
    Since we only care about the failed services, this parser only process the
    last line which contains the list of the failed services.

The last line of the output of ``katello-service status``::

    Some services failed to status: tomcat6,httpd


Examples:

    >>> kss_ = shared[KatelloServiceStatus]
    >>> kss.is_ok
    False
    >>> kss.failed_services
    ['tomcat6', 'httpd']

"""
from .. import parser, add_filter, CommandParser
from insights.specs import Specs

add_filter(Specs.katello_service_status, ['Some services failed to status',
                                      'Success'])


[docs] @parser(Specs.katello_service_status) class KatelloServiceStatus(CommandParser): """ Read the ``katello-service status`` and get the list of ``failed_services``. Attributes: failed_services (list): The list of failed services. is_ok (bool): Is there no failed service? """
[docs] def parse_content(self, content): self.failed_services = [] self.is_ok = False for line in content[::-1]: if 'Some services failed to status:' in line: failed_services = line.split(':')[-1].strip() self.failed_services = [s for s in failed_services.split(',') if s] self.is_ok = len(self.failed_services) == 0