Source code for insights.parsers.authselect

"""
AuthSelectCurrent - command ``authselect current``
==================================================
"""
from insights import parser
from insights.core import CommandParser
from insights.core.exceptions import SkipException
from insights.specs import Specs


[docs]@parser(Specs.authselect_current) class AuthSelectCurrent(CommandParser): """ Class to parse the output of command "authselect current". Sample output of command ``authselect current``:: Profile ID: sssd Enabled features: - with-sudo - with-mkhomedir - with-smartcard Attributes: profile_id (str): The enabled profile ID enabled_features (list): List of enabled features Examples: >>> asc.profile_id 'sssd' >>> len(asc.enabled_features) 3 >>> 'with-sudo' in asc.enabled_features True """
[docs] def parse_content(self, content): feature_flag = False self.profile_id = None self.enabled_features = [] for line in content: if 'No existing configuration detected.' in line: raise SkipException line_sp = line.split() if line.startswith('Profile ID:'): self.profile_id = line_sp[-1] elif line.endswith('Enabled features:'): # Enabled features: # - ... feature_flag = True elif line.startswith('Enabled features:') and len(line_sp) > 2: # Enabled features: None feature_flag = True if line_sp[-1] != 'None': self.enabled_features.append(line_sp[-1]) elif line.startswith('-') and feature_flag: self.enabled_features.append(line_sp[-1]) if self.profile_id is None: raise SkipException