Mainteiner names special chars fix

Change-Id: I4855094c2b1c4d32192a3d2d943d22e1260e9f3a
Related-PROD: PROD-28199
diff --git a/cfg_checker/modules/packages/repos.py b/cfg_checker/modules/packages/repos.py
index c0aaaee..ae662de 100644
--- a/cfg_checker/modules/packages/repos.py
+++ b/cfg_checker/modules/packages/repos.py
@@ -40,12 +40,15 @@
 
 
 def _get_value_index(_di, value, header=None):
+    # Mainteiner names often uses specific chars
+    # so make sure that value saved is unicode not str
+    _val = unicode(value, 'utf-8') if isinstance(value, str) else value
     if header:
         if not filter(lambda i: _di[i]["header"] == header, _di):
-            _index = str(len(_di.keys()) + 1)
+            _index = unicode(len(_di.keys()) + 1)
             _di[_index] = {
                 "header": header,
-                "props": value
+                "props": _val
             }
         else:
             for _k, _v in _di.iteritems():
@@ -54,12 +57,13 @@
 
         return _index
     else:
-        if not filter(lambda i: _di[i] == value, _di):
-            _index = str(len(_di.keys()) + 1)
-            _di[_index] = value
+        if not filter(lambda i: _di[i] == _val, _di):
+            _index = unicode(len(_di.keys()) + 1)
+            # on save, cast it as unicode
+            _di[_index] = _val
         else:
             for _k, _v in _di.iteritems():
-                if _v == value:
+                if _v == _val:
                     _index = _k
 
         return _index