Ignore:
Timestamp:
Nov 13, 2017, 2:04:42 PM (2 years ago)
Author:
hectorgh
Message:

trying to make sure json was written before deleting sqlite file

File:
1 edited

Legend:

Unmodified
Added
Removed
  • n4d-server-plugins/trunk/fuentes/server-install-files/usr/share/n4d/python-plugins/PasswordManager.py

    r6204 r6238  
    1717                       
    1818                if not os.path.exists("/lib/systemd/system/net-server\\x2dsync.mount"):
    19                         self.load_password_file()
    20                
     19                       
     20                        if os.path.exists("/net/server-sync/var/lib/n4d/n4d.sqlite"):
     21                                ret=self.sqlite_to_json(True)
     22                                if ret:
     23                                        os.remove("/net/server-sync/var/lib/n4d/n4d.sqlite")
     24                        else:
     25                                self.load_password_file()
     26                       
    2127        #def init
    2228
    2329       
    24         def sqlite_to_json(self,f=None):
     30        def sqlite_to_json(self,force_write=False):
    2531               
    26                 conn = sqlite3.connect("/net/server-sync/var/lib/n4d/n4d.sqlite")
    27                 cursor = conn.cursor()
    28                 cursor.execute('select cn,sn,uid,passwd from password')
    29                 result = cursor.fetchall()
    30                 conn.close()
    31                
    32                 self.users={}
    33                 for user in result :
    34                         self.users[user[2]]={}
    35                         self.users[user[2]]["cn"] = user[0].encode('utf-8')
    36                         self.users[user[2]]["sn"] = user[1].encode('utf-8')
    37                         self.users[user[2]]["passwd"] = user[3]
    38                
    39                 os.remove("/net/server-sync/var/lib/n4d/n4d.sqlite")
    40                 self.write_file()
    41                
    42                 return True
     32                try:
     33                        conn = sqlite3.connect("/net/server-sync/var/lib/n4d/n4d.sqlite")
     34                        cursor = conn.cursor()
     35                        cursor.execute('select cn,sn,uid,passwd from password')
     36                        result = cursor.fetchall()
     37                        conn.close()
     38                       
     39                        self.users={}
     40                        for user in result :
     41                                self.users[user[2]]={}
     42                                self.users[user[2]]["cn"] = user[0].encode('utf-8')
     43                                self.users[user[2]]["sn"] = user[1].encode('utf-8')
     44                                self.users[user[2]]["passwd"] = user[3]
     45                       
     46                        if force_write:
     47                                self.write_file()
     48                       
     49                        return True
     50                except Exception as e:
     51                        print(e)
     52                       
     53                        return False
    4354               
    4455        #def sqlite_to_json
     
    4758        def load_password_file(self, f=None):
    4859
    49                 if os.path.exists("/net/server-sync/var/lib/n4d/n4d.sqlite"):
    50                         self.sqlite_to_json()
    51                 else:
    52                         self.users={}
    53                         if f==None:
    54                                 f=PasswordManager.PASSWORD_FILE
    55                        
    56                         try:
    57                                 pfile=open(f,"r")
    58                                 self.users=json.load(pfile)
    59                                 pfile.close()
     60                self.users={}
     61                if f==None:
     62                        f=PasswordManager.PASSWORD_FILE
     63                try:
     64                        pfile=open(f,"r")
     65                        self.users=json.load(pfile)
     66                        pfile.close()
    6067                                                       
    61                         except Exception as e:
    62                                 print("[PasswordManager] Error reading file: %s"%e)
     68                except Exception as e:
     69                        print("[PasswordManager] Error reading file: %s"%e)
    6370                               
    6471        #def load_json
Note: See TracChangeset for help on using the changeset viewer.