Source code for insights.parsers.max_uid

"""
MaxUID - command ``/bin/awk -F':' '{ if($3 > max) max = $3 } END { print max }' /etc/passwd``
=============================================================================================

This module provides the MaxUID value gathered from the ``/etc/passwd`` file.
"""
from insights.core import Parser
from insights.core.exceptions import ParseException, SkipComponent
from insights.core.plugins import parser
from insights.specs import Specs


[docs] @parser(Specs.max_uid) class MaxUID(Parser): """ Class for parsing the MaxUID value from the ``/etc/passwd`` file returned by the command:: /bin/awk -F':' '{ if($3 > max) max = $3 } END { print max }' /etc/passwd Typical output of the ``/etc/passwd`` file is:: root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin adm:x:3:4:adm:/var/adm:/sbin/nologin lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin sync:x:5:0:sync:/sbin:/bin/sync shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown halt:x:7:0:halt:/sbin:/sbin/halt mail:x:8:12:mail:/var/spool/mail:/sbin/nologin nobody:x:65534:65534:Kernel Overflow User:/:/sbin/nologin Typical output of this parser is:: 65534 Raises: SkipComponent: When content is empty or cannot be parsed. ParseException: When type cannot be recognized. Examples: >>> max_uid.value 65534 """
[docs] def parse_content(self, content): if not content: raise SkipComponent("No content.") for line in content: try: self.value = int(line) except ValueError as e: raise ParseException("Failed to parse content with error: {}", format(str(e)))