Get lock sooner, connect to ldap later
authorPeter Palfrader <peter@palfrader.org>
Mon, 12 Mar 2012 15:29:50 +0000 (16:29 +0100)
committerPeter Palfrader <peter@palfrader.org>
Mon, 12 Mar 2012 15:29:50 +0000 (16:29 +0100)
ud-generate

index 064a9bd..a417532 100755 (executable)
@@ -1281,14 +1281,20 @@ def ud_generate():
       parser.print_help()
       sys.exit(1)
 
-
-   l = make_ldap_conn()
-
    if options.generatedir is not None:
       generate_dir = os.environ['UD_GENERATEDIR']
    elif 'UD_GENERATEDIR' in os.environ:
       generate_dir = os.environ['UD_GENERATEDIR']
 
+
+   lockf = os.path.join(generate_dir, 'ud-generate.lock')
+   lock = get_lock( lockf )
+   if lock is None:
+      sys.stderr.write("Could not acquire lock %s.\n"%(lockf))
+      sys.exit(1)
+
+   l = make_ldap_conn()
+
    ldap_last_mod = getLastLDAPChangeTime(l)
    cache_last_mod = getLastBuildTime(generate_dir)
    need_update = ldap_last_mod > cache_last_mod
@@ -1299,12 +1305,6 @@ def ud_generate():
       fd.close()
       sys.exit(0)
 
-   lockf = os.path.join(generate_dir, 'ud-generate.lock')
-   lock = get_lock( lockf )
-   if lock is None:
-      sys.stderr.write("Could not acquire lock %s.\n"%(lockf))
-      sys.exit(1)
-
    tracefd = open(os.path.join(generate_dir, "last_update.trace"), "w")
    generate_all(generate_dir, l)
    tracefd.write("%s\n%s\n" % (ldap_last_mod, int(time.time())))