Source code for insights.parsers.satellite_version

Satellite6Version - file ``/usr/share/foreman/lib/satellite/version.rb``

Module for parsing the content of file ``version.rb`` or ``satellite_version``,
which is a simple file in foreman-debug or sosreport archives of Satellite 6.x.

Typical content of "satellite_version" is::

    COMMAND> cat /usr/share/foreman/lib/satellite/version.rb

    module Satellite
      VERSION = "6.1.3"

.. warning::
    This module only works for Satellite 6.0.x and 6.1.x
    Please use the combiner
    :class:`insights.combiners.satellite_version.SatelliteVersion` class to
    cover all versions.

    >>> sat6_ver = shared[SatelliteVersion]
    >>> sat6_ver.full
    >>> sat6_ver.version
    >>> sat6_ver.major
    >>> sat6_ver.minor
    >>> sat6_ver.release

from insights import parser, Parser
from insights.parsers import ParseException
from insights.specs import Specs

[docs]@parser(Specs.satellite_version_rb) class Satellite6Version(Parser): """ Class for parsing the content of ``satellite_version``. """
[docs] def parse_content(self, content): # To keep compatible with combiner satellite_version self.full = self.release = None self.version = None for line in content: if line.strip().upper().startswith('VERSION'): self.full = line.split()[-1].strip('"') self.version = self.full break if self.version is None: raise ParseException('Cannot parse satellite version') ver_sp = self.version.split(".") self.major = int(ver_sp[0]) self.minor = int(ver_sp[1]) if len(ver_sp) > 1 else None