Source code for insights.parsers.podman_inspect

"""
PodmanInspect - Command ``podman inspect --type={TYPE}``
========================================================

This module parses the output of the ``podman inspect`` command.  This uses
the ``core.marshalling.unmarshal`` function to parse the JSON output from the
commands.  The data is stored as a dictionary.

"""
from insights.core import CommandParser
from insights.core.exceptions import SkipComponent
from insights.core.marshalling import unmarshal
from insights.core.plugins import parser
from insights.specs import Specs
from insights.util import deprecated


[docs]class PodmanInspect(CommandParser, dict): """ .. warning:: This class is deprecated, please use :py:class:`insights.parsers.containers_inspect.ContainersInspect` instead. Parse the output of command "podman inspect --type=image" and "podman inspect --type=container". The output of these two commands is formatted as JSON, so "json.loads" is an option to parse the output in the future. Raises: SkipComponent: If content is not provided """ def __init__(self, *args, **kwargs): deprecated( PodmanInspect, "Please use the :class:`insights.parsers.containers_inspect.ContainersInspect` instead.", "3.3.0" ) super(PodmanInspect, self).__init__(*args, **kwargs)
[docs] def parse_content(self, content): if not content: raise SkipComponent content = "\n".join(list(content)) try: inspect_data = unmarshal(content) self.update(inspect_data[0]) except: raise SkipComponent
[docs]@parser(Specs.podman_image_inspect) class PodmanInspectImage(PodmanInspect): """ Parse podman image inspect output using the PodmanInspect parser class. Sample input:: [ { "Id": "013125b8a088f45be8f85f88b5504f05c02463b10a6eea2b66809a262bb911ca", "Digest": "sha256:f9662cdd45e3db182372a4fa6bfff10e1c601cc785bac09ccae3b18f0bc429df", "RepoTags": [ "192.168.24.1:8787/rhosp15/openstack-rabbitmq:20190819.1", "192.168.24.1:8787/rhosp15/openstack-rabbitmq:pcmklatest" ], ... Examples: >>> image['Id'] == '013125b8a088f45be8f85f88b5504f05c02463b10a6eea2b66809a262bb911ca' True >>> image['RepoTags'][0] == '192.168.24.1:8787/rhosp15/openstack-rabbitmq:20190819.1' True """ pass
[docs]@parser(Specs.podman_container_inspect) class PodmanInspectContainer(PodmanInspect): """ .. warning:: This parser is deprecated, please use :py:class:`insights.parsers.containers_inspect.ContainersInspect` instead. Parse podman container inspect output using the PodmanInspect parser class. Sample input:: [ { "ID": "66db151828e9beede0cdd9c17fc9bd5ebb5d125dd036f7230bc6b6433e5c0dda", "Created": "2019-08-21T10:38:34.753548542Z", "Path": "dumb-init", "State": { "OciVersion": "1.0.1-dev", "Status": "running", "Running": true, "Paused": false, }, ... Examples: >>> container['ID'] == '66db151828e9beede0cdd9c17fc9bd5ebb5d125dd036f7230bc6b6433e5c0dda' True >>> container['Path'] == 'dumb-init' True >>> container.get('State').get('Paused') is False True """ def __init__(self, *args, **kwargs): deprecated( PodmanInspectContainer, "Please use the :class:`insights.parsers.containers_inspect.ContainersInspect` instead.", "3.3.0" ) super(PodmanInspectContainer, self).__init__(*args, **kwargs)