From 42076483ed38d50400156cbb75d4c9b0180e6957 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] 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>
---
Upstream-Status: Pending

Rebase to 3.62
Signed-off-by: Mingli Yu <mingli.yu@windriver.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 45d402a..6eeffde 100644
--- a/pykickstart/load.py
+++ b/pykickstart/load.py
@@ -28,7 +28,7 @@ from requests.exceptions import SSLError, RequestException
 
 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 351dc1b..aef59ca 100644
--- a/pykickstart/parser.py
+++ b/pykickstart/parser.py
@@ -54,6 +54,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
@@ -832,6 +846,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

