HC Test: Add temporary workaround for VAT issues on Ubuntu14.04 53/5053/4
authorselias <samelias@cisco.com>
Tue, 7 Feb 2017 12:39:31 +0000 (13:39 +0100)
committerPeter Mikus <pmikus@cisco.com>
Wed, 15 Feb 2017 05:10:34 +0000 (05:10 +0000)
Some VAT commands return "error:misc" in addition to their normal
JSON output. This causes the JSON parser to complain about extra data.

Change-Id: I0da9739f371998dd6e2e6d6f70c1e8a3d82b6350
Signed-off-by: selias <samelias@cisco.com>
resources/libraries/python/parsers/JsonParser.py

index 50a920b..ad6e189 100644 (file)
@@ -14,6 +14,7 @@
 """Used to parse JSON files or JSON data strings to dictionaries"""
 
 import json
 """Used to parse JSON files or JSON data strings to dictionaries"""
 
 import json
+from os import uname
 
 
 class JsonParser(object):
 
 
 class JsonParser(object):
@@ -32,6 +33,23 @@ class JsonParser(object):
         :return: JSON data parsed as python list.
         :rtype: list
         """
         :return: 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
 
         parsed_data = json.loads(json_data)
         return parsed_data