source: domain-startup-check/trunk/fuentes/install/usr/bin/domain-check @ 6103

Last change on this file since 6103 was 6103, checked in by kbut, 2 years ago

add package

  • Property svn:executable set to *
File size: 1.6 KB
Line 
1#!/usr/bin/env python
2import os
3import sys
4import subprocess
5import time
6
7log_file = '/tmp/.domaincheck.log'
8
9class DOMAINCHECK:
10
11        def __init__(self):
12               
13                print "[DOMAINCHECK] Init"
14                self.ready=False
15                self.count=0
16               
17               
18        #def __init__
19
20        def is_lsass_configured(self):
21
22                f=open("/etc/pam.d/common-auth")
23                lines=f.readlines()
24                f.close()
25
26                tmp="".join(lines)
27
28                if "pam_lsass.so" in tmp:
29                        return True
30                else:
31                        return False
32
33        #def is_lsass_configured
34
35        def resolve(self):
36
37                if not self.is_lsass_configured():
38                        self.ready=True
39                        return 0
40               
41       
42                try:
43                        f=open(log_file,"a")
44                        f.write("[DOMAINCHECK] [Try %d] Resolving domain ..\n"%(self.count+1))
45                        output=subprocess.Popen(["domainjoin-cli query | grep Domain"],shell=True,stdout=subprocess.PIPE).communicate()[0]
46                        self.domain=output.split(" = ")[1].strip("\n")
47                        ret=os.system("host %s"%self.domain)
48                       
49                        if ret==0:
50                                f.write("[DOMAINCHECK] Domain Ready\n")
51                                self.ready=True
52                                print("[DOMAINCHECK] Domain ready. Exiting...")
53                               
54                        else:
55                                f.write("[DOMAINCHECK] Domain not ready. Retrying...\n")
56                                print("[DOMAINCHECK] Domain not ready. Waiting...")
57
58                        f.close()
59                except:
60                        f.write("[DOMAINCHECK] Domain not ready\n")                     
61                       
62
63                        f.close()
64
65
66        #def resolve
67
68
69#class DOMAINCHECK
70
71
72if __name__=="__main__":
73
74        if not os.path.exists(log_file):
75                dcheck = DOMAINCHECK()
76                while(not dcheck.ready):
77                        if dcheck.count < 15:           
78                                dcheck.resolve()
79                                dcheck.count+=1
80                                if not dcheck.ready:
81                                        os.system('plymouth message --text="Waiting for AD Domain..." || :')
82                                        time.sleep(6)
83                        else:
84                                dcheck.ready=True
85               
Note: See TracBrowser for help on using the repository browser.