Source code for insights.parsers.satellite_content_hosts_count

"""
SatelliteContentHostsCount - command ``psql -d foreman -c 'select count(*) from hosts'``
========================================================================================

The SatelliteContentHostsCount parser reads the output of
``psql -d foreman -c 'select count(*) from hosts'``.

Sample output of ``psql -d foreman -c 'select count(*) from hosts'``::

     count
    -------
        13
    (1 row)

Examples::

    >>> type(clients)
    <class 'insights.parsers.satellite_content_hosts_count.SatelliteContentHostsCount'>
    >>> clients.count
    13
"""
from insights.core import CommandParser
from insights.core.exceptions import ParseException, SkipException
from insights.core.plugins import parser
from insights.specs import Specs


[docs]@parser(Specs.satellite_content_hosts_count) class SatelliteContentHostsCount(CommandParser): """ Read the ``psql -d foreman -c 'select count(*) from hosts'`` and set the hosts count to property ``count``. Attributes: count (int): The count of satellite content hosts """
[docs] def parse_content(self, content): self.count = None if len(content) >= 3 and content[0].strip() == 'count': try: self.count = int(content[2].strip()) except ValueError: raise ParseException("Unknow satelite content hosts count") if self.count is None: raise SkipException("Cannot get the count of satellite content hosts")