Source code for insights.parsers.jboss_version

"""
JBoss version - File ``$JBOSS_HOME/version.txt``
================================================

This module provides plugins access to file ``$JBOSS_HOME/version.txt``

Typical content of file ``$JBOSS_HOME/version.txt`` is::

    Red Hat JBoss Enterprise Application Platform - Version 6.4.3.GA

This module parses the file content and stores data in the dict ``self.parsed``.
The version info can also be got via ``obj.major`` and ``obj.minor``, etc.

Examples:
    >>> jboss_version.file_path
    '/home/test/jboss/jboss-eap-6.4/version.txt'
    >>> jboss_version.raw
    'Red Hat JBoss Enterprise Application Platform - Version 6.4.3.GA'
    >>> jboss_version.major
    6
    >>> jboss_version.minor
    4
    >>> jboss_version.release
    3
    >>> jboss_version.version
    '6.4.3'
    >>> jboss_version.code_name
    'GA'
"""
from .. import Parser, parser
from ..specs import Specs


[docs]@parser(Specs.jboss_version) class JbossVersion(Parser): """Parses the content of file ``$JBOSS_HOME/version.txt``."""
[docs] def parse_content(self, content): self.raw = content[0] product, _, version_name = [v.strip() for v in content[0].partition("- Version")] version, code_name = version_name.strip().rsplit(".", 1) major, minor, release = version.split(".") self.parsed = { "product": product, "version": version, "code_name": code_name, "major": int(major), "minor": int(minor), "release": int(release) }
@property def version(self): """string: the version of this running JBoss progress.""" return self.parsed["version"] @property def major(self): """int: the major version of this running JBoss progress.""" return self.parsed["major"] @property def minor(self): """int: the minor version of this running JBoss progress.""" return self.parsed["minor"] @property def release(self): """int: release of this running JBoss progress.""" return self.parsed["release"] @property def code_name(self): """string: code name of this running JBoss progress.""" return self.parsed["code_name"]