Skip to content

Commit

Permalink
Update parser name
Browse files Browse the repository at this point in the history
Signed-off-by: jiazhang <jiazhang@redhat.com>
  • Loading branch information
wushiqinlou committed Jun 28, 2023
1 parent f4c8b7b commit a162577
Show file tree
Hide file tree
Showing 3 changed files with 21 additions and 22 deletions.
3 changes: 3 additions & 0 deletions docs/shared_parsers_catalog/iris.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
.. automodule:: insights.parsers.iris
:members:
:show-inheritance:
26 changes: 11 additions & 15 deletions insights/parsers/iris_list.py → insights/parsers/iris.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,11 +8,10 @@
from insights.core import CommandParser
from insights.core.exceptions import SkipComponent
from insights.core.plugins import parser
from insights.parsers import get_active_lines
from insights.specs import Specs


@parser(Specs.docker_info)
@parser(Specs.iris_list)
class IrisList(CommandParser, dict):
"""
Parse the output of the ``/usr/bin/iris list`` command.
Expand All @@ -38,22 +37,19 @@ class IrisList(CommandParser, dict):
"""

def parse_content(self, content):
if not content:
raise SkipComponent('No content.')

for line in get_active_lines(content):

if line.startswith('Configuration'):
self['name'] = line.split()[1].replace("'", "")

if ":" in line:
for line in content:
if not line.strip():
continue
if line.strip().startswith('Configuration'):
self['name'] = line.split()[1].strip('\'"')
elif ":" in line:
key, value = line.split(":", 1)
self[key.strip()] = value.strip()

if len(self) == 0:
raise SkipComponent("The result is empty")

@property
def is_running(self):
"""Return True when the iris instance is running, and False when it is down"""
if self.get('status', "").startswith('running'):
return True
else:
return False
return self.get('status', "").startswith('running')
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
import pytest

from insights.core.exceptions import SkipComponent
from insights.parsers import iris_list
from insights.parsers import iris
from insights.tests import context_wrap


Expand Down Expand Up @@ -33,13 +33,13 @@


def test_iris_list():
iris_running = iris_list.IrisList(context_wrap(IRIS_RUNNING))
iris_running = iris.IrisList(context_wrap(IRIS_RUNNING))
assert iris_running['name'] == "IRIS"
assert iris_running['status'] == "running, since Tue Jun 27 01:55:25 2023"
assert 'state' in iris_running
assert iris_running.is_running

iris_down = iris_list.IrisList(context_wrap(IRIS_DOWN))
iris_down = iris.IrisList(context_wrap(IRIS_DOWN))
assert iris_down['name'] == "IRIS"
assert iris_down['status'] == "down, last used Tue Jun 27 01:50:36 2023"
assert 'state' not in iris_down
Expand All @@ -48,14 +48,14 @@ def test_iris_list():

def test_fail():
with pytest.raises(SkipComponent) as e:
iris_list.IrisList(context_wrap(IRIS_NO_CONTENT))
assert "No content." in str(e)
iris.IrisList(context_wrap(IRIS_NO_CONTENT))
assert "The result is empty" in str(e)


def test_doc_examples():
env = {
'iris_info': iris_list.IrisList(
'iris_info': iris.IrisList(
context_wrap(IRIS_RUNNING)),
}
failed, total = doctest.testmod(iris_list, globs=env)
failed, total = doctest.testmod(iris, globs=env)
assert failed == 0

0 comments on commit a162577

Please sign in to comment.