1.1 --- a/OpenSecurity/bin/opensecurity_client_restful_server.py Thu Jun 05 15:51:26 2014 +0100
1.2 +++ b/OpenSecurity/bin/opensecurity_client_restful_server.py Fri Jun 06 10:46:55 2014 +0100
1.3 @@ -309,6 +309,8 @@
1.4 else:
1.5 logger.error("Network path unreachable...")
1.6 return 1
1.7 +
1.8 +mount_lock = threading.Lock()
1.9
1.10 # handles netumount request
1.11 class MountNetworkDriveHandler(threading.Thread):
1.12 @@ -318,19 +320,6 @@
1.13 self.networkPath = net_path
1.14
1.15 def run(self):
1.16 - drive = genNetworkDrive()
1.17 - if not drive:
1.18 - logger.error("Failed to assign drive letter for: " + self.networkPath)
1.19 - return 1
1.20 - else:
1.21 - logger.info("Assigned drive " + drive + " to " + self.networkPath)
1.22 -
1.23 - #Check for drive availability
1.24 - drive = drive+':'
1.25 - if os.path.exists(drive):
1.26 - logger.error("Drive letter is already in use: " + drive)
1.27 - return 1
1.28 -
1.29 #Check for network resource availability
1.30 retry = 20
1.31 while not os.path.exists(self.networkPath):
1.32 @@ -339,8 +328,21 @@
1.33 logger.info("Path not accessible: " + self.networkPath + " retrying")
1.34 time.sleep(1)
1.35 retry-=1
1.36 -
1.37 - return mapDrive(drive, self.networkPath, "", "")
1.38 + with mount_lock:
1.39 + drive = genNetworkDrive()
1.40 + if not drive:
1.41 + logger.error("Failed to assign drive letter for: " + self.networkPath)
1.42 + return 1
1.43 + else:
1.44 + logger.info("Assigned drive " + drive + " to " + self.networkPath)
1.45 +
1.46 + #Check for drive availability
1.47 + drive = drive+':'
1.48 + if os.path.exists(drive):
1.49 + logger.error("Drive letter is already in use: " + drive)
1.50 + return 1
1.51 +
1.52 + return mapDrive(drive, self.networkPath, "", "")
1.53
1.54 class os_netmount:
1.55