Fix warnings reported by gen_doc.sh
[csit.git] / resources / libraries / python / parsers / JsonParser.py
index 50a920b..2c8e62f 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2016 Cisco and/or its affiliates.
+# Copyright (c) 2018 Cisco and/or its affiliates.
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
 # You may obtain a copy of the License at:
@@ -14,6 +14,7 @@
 """Used to parse JSON files or JSON data strings to dictionaries"""
 
 import json
+from os import uname
 
 
 class JsonParser(object):
@@ -29,9 +30,26 @@ class JsonParser(object):
 
         :param json_data: Data in JSON format.
         :type json_data: str
-        :return: JSON data parsed as python list.
+        :returns: JSON data parsed as python list.
         :rtype: list
         """
+        if "4.2.0-42-generic" in uname():
+            # TODO: remove ugly workaround
+            # On Ubuntu14.04 the VAT console returns "error:misc" even after
+            # some commands execute correctly. This causes problems
+            # with parsing JSON data.
+            known_errors = ["sw_interface_dump error: Misc",
+                            "lisp_eid_table_dump error: Misc",
+                            "show_lisp_status error: Misc",
+                            "lisp_map_resolver_dump error: Misc",
+                            "show_lisp_pitr error: Misc",
+                            "snat_static_mapping_dump error: Misc",
+                           ]
+            for item in known_errors:
+                if item in json_data:
+                    json_data = json_data.replace(item, "")
+                    print("Removing API error: *{0}* "
+                          "from JSON output.".format(item))
         parsed_data = json.loads(json_data)
         return parsed_data
 
@@ -44,7 +62,7 @@ class JsonParser(object):
 
         :param json_file: File with JSON type data.
         :type json_file: str
-        :return: JSON data parsed as python list.
+        :returns: JSON data parsed as python list.
         :rtype: list
         """
         input_data = open(json_file).read()