Source code for insights.components.cryptsetup

"""
HasCryptsetupWithTokens, HasCryptsetupWithoutTokens
===================================================

The ``HasCryptsetupWithTokens``/``HasCryptsetupWithoutTokens`` component uses
``InstalledRpms`` parser to determine if cryptsetup package is installed and if
it has tokens support (since version 2.4.0), if not it raises ``SkipComponent``
so that the dependent component will not fire. Can be added as a dependency of
a parser so that the parser only fires if the ``cryptsetup`` dependency and
token support is met.
"""
from insights.core.exceptions import SkipComponent
from insights.core.plugins import component
from insights.parsers.installed_rpms import InstalledRpms, InstalledRpm


[docs] @component(InstalledRpms) class HasCryptsetupWithTokens(object): """The ``HasCryptsetupWithTokens`` component uses ``InstalledRpms`` parser to determine if cryptsetup package is installed and if it has tokens support (since version 2.4.0), if not it raises ``SkipComponent`` Raises: SkipComponent: When ``cryptsetup`` package is strictly less than 2.4.0, or when cryptsetup package is not installed """ def __init__(self, rpms): rpm = rpms.get_max("cryptsetup") if rpm is None: raise SkipComponent("cryptsetup package is not installed") if rpm < InstalledRpm("cryptsetup-2.4.0-0"): raise SkipComponent("cryptsetup package with token support is not installed")
[docs] @component(InstalledRpms) class HasCryptsetupWithoutTokens(object): """The ``HasCryptsetupWithoutTokens`` component uses ``InstalledRpms`` parser to determine if cryptsetup package is installed and if it does not have tokens support (below version 2.4.0), if not it raises ``SkipComponent`` Raises: SkipComponent: When ``cryptsetup`` package is at least 2.4.0, or when cryptsetup package is not installed """ def __init__(self, rpms): rpm = rpms.get_max("cryptsetup") if rpm is None: raise SkipComponent("cryptsetup package is not installed") if rpm >= InstalledRpm("cryptsetup-2.4.0-0"): raise SkipComponent("cryptsetup package with token support is installed")