From 62fdead139edb0f29b2f222efcb8f39be15b057e Mon Sep 17 00:00:00 2001
From: Hongxu Jia <hongxu.jia@windriver.com>
Date: Mon, 30 Jul 2018 15:47:13 +0800
Subject: [PATCH 2/4] pykickstart/parser.py: add lock for readKickstart and
 support https without certification

- Add lock for readKickstart to fix race issue

- Support to download kickstart file through https without certification

Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
---
 pykickstart/load.py   |  2 +-
 pykickstart/parser.py | 18 ++++++++++++++++++
 2 files changed, 19 insertions(+), 1 deletion(-)

diff --git a/pykickstart/load.py b/pykickstart/load.py
index 8da8051..e856c8d 100644
--- a/pykickstart/load.py
+++ b/pykickstart/load.py
@@ -32,7 +32,7 @@ log = logging.getLogger("anaconda.main")
 
 is_url = lambda location: '://' in location  # RFC 3986
 
-SSL_VERIFY = True
+SSL_VERIFY = False
 
 def load_to_str(location, user=None, passwd=None):
     '''Load a destination URL or file into a string.
diff --git a/pykickstart/parser.py b/pykickstart/parser.py
index b95ba90..a55a9a3 100644
--- a/pykickstart/parser.py
+++ b/pykickstart/parser.py
@@ -51,6 +51,20 @@ from pykickstart.i18n import _
 STATE_END = "end"
 STATE_COMMANDS = "commands"
 
+import threading
+_private_ks_lock = threading.RLock()
+
+class KsLock(object):
+    def __enter__(self):
+        _private_ks_lock.acquire()
+        return _private_ks_lock
+
+    def __exit__(self, exc_type, exc_val, exc_tb):
+        _private_ks_lock.release()
+
+
+_ks_lock = KsLock()
+
 def _preprocessStateMachine(lineIter):
     l = None
     lineno = 0
@@ -791,6 +805,10 @@ class KickstartParser(object):
         self._stateMachine(i)
 
     def readKickstart(self, f, reset=True, username=None, password=None):
+        with _ks_lock:
+            self._readKickstart(f, reset=reset, username=username, password=password)
+
+    def _readKickstart(self, f, reset=True, username=None, password=None):
         """Process a kickstart file, given by the filename f."""
         if reset:
             self._reset()
-- 
2.34.1

