403b09
From 70430cf0c22ab28a145de775aee343b3605c798a Mon Sep 17 00:00:00 2001
403b09
From: David Kupka <dkupka@redhat.com>
403b09
Date: Tue, 16 Aug 2016 15:36:07 +0200
403b09
Subject: [PATCH] schema check: Check current client language against cached
403b09
 one
403b09
403b09
https://fedorahosted.org/freeipa/ticket/6204
403b09
403b09
Reviewed-By: Jan Cholasta <jcholast@redhat.com>
403b09
---
403b09
 ipaclient/remote_plugins/schema.py | 9 ++++++++-
403b09
 1 file changed, 8 insertions(+), 1 deletion(-)
403b09
403b09
diff --git a/ipaclient/remote_plugins/schema.py b/ipaclient/remote_plugins/schema.py
403b09
index e8b3f61bd8460c60630e8710028da79654819bd1..6fc70bf4b294badedd651e15b7e403cc40619f5c 100644
403b09
--- a/ipaclient/remote_plugins/schema.py
403b09
+++ b/ipaclient/remote_plugins/schema.py
403b09
@@ -7,6 +7,7 @@ import contextlib
403b09
 import errno
403b09
 import fcntl
403b09
 import json
403b09
+import locale
403b09
 import os
403b09
 import sys
403b09
 import time
403b09
@@ -440,14 +441,19 @@ class Schema(object):
403b09
             self._dict[ns] = {}
403b09
             self._namespaces[ns] = _SchemaNameSpace(self, ns)
403b09
 
403b09
+        self._language = (
403b09
+            locale.setlocale(locale.LC_ALL, '').split('.')[0].lower()
403b09
+        )
403b09
         try:
403b09
             self._fingerprint = server_info['fingerprint']
403b09
             self._expiration = server_info['expiration']
403b09
+            language = server_info['language']
403b09
         except KeyError:
403b09
             is_known = False
403b09
         else:
403b09
             is_known = (not api.env.force_schema_check and
403b09
-                        self._expiration > time.time())
403b09
+                        self._expiration > time.time() and
403b09
+                        self._language == language)
403b09
 
403b09
         if is_known:
403b09
             try:
403b09
@@ -470,6 +476,7 @@ class Schema(object):
403b09
 
403b09
         server_info['fingerprint'] = self._fingerprint
403b09
         server_info['expiration'] = self._expiration
403b09
+        server_info['language'] = self._language
403b09
 
403b09
     @contextlib.contextmanager
403b09
     def _open(self, filename, mode):
403b09
-- 
403b09
2.7.4
403b09