![Scott Little](/assets/img/avatar_default.png)
Move content from stx-gplv3 into stx-integ Packages will be relocated to stx-integ: base/ anaconda crontabs dnsmasq rsync database/ python-psycopg2 filesystem/ parted grub/ grub2 security/ python-keyring Change-Id: I17163dbff41222985a29228a8b42c919a86d1e67 Story: 2002801 Task: 22687 Signed-off-by: Scott Little <scott.little@windriver.com>
46 lines
1.4 KiB
Diff
46 lines
1.4 KiB
Diff
Index: keyring-5.3/keyring/backends/file.py
|
|
===================================================================
|
|
--- keyring-5.3.orig/keyring/backends/file.py
|
|
+++ keyring-5.3/keyring/backends/file.py
|
|
@@ -6,6 +6,7 @@ import base64
|
|
import sys
|
|
import json
|
|
import abc
|
|
+import time
|
|
|
|
from ..py27compat import configparser
|
|
|
|
@@ -95,14 +96,29 @@ class BaseKeyring(FileBacked, KeyringBac
|
|
config = configparser.RawConfigParser()
|
|
config.read(self.file_path)
|
|
|
|
+ # obtain lock for the keyring file
|
|
+ lock = ''
|
|
+ i = 60
|
|
+ while i:
|
|
+ if not os.path.isfile('/tmp/.keyringlock'):
|
|
+ lock = open('/tmp/.keyringlock', 'w')
|
|
+ break
|
|
+ else:
|
|
+ time.sleep(0.500)
|
|
+ i=i-1
|
|
+
|
|
# update the keyring with the password
|
|
if not config.has_section(service):
|
|
config.add_section(service)
|
|
config.set(service, username, password_base64)
|
|
|
|
- # save the keyring back to the file
|
|
- with open(self.file_path, 'w') as config_file:
|
|
- config.write(config_file)
|
|
+ if i:
|
|
+ # save the keyring back to the file
|
|
+ with open(self.file_path, 'w') as config_file:
|
|
+ config.write(config_file)
|
|
+ lock.close()
|
|
+ os.remove('/tmp/.keyringlock')
|
|
+
|
|
|
|
def _ensure_file_path(self):
|
|
"""
|