Esempio n. 1
0
    def addLevelDb(self, levelDbDir):

        try:
            levelDb = leveldb.LevelDB(levelDbDir)
            try:
                print(levelDb.GetStats())
            except:
                print("No Stats")

            columnHeadings = ["Key", "Value"]
            self.levelDbTableWidget.setColumnCount(2)
            self.levelDbTableWidget.setHorizontalHeaderLabels(columnHeadings)
            tabHeader = self.levelDbTableWidget.horizontalHeader()
            #tabHeader.setSectionResizeMode(QHeaderView.ResizeToContents)
            #tabHeader.setResizeMode(0, QtGui.QHeaderView.Stretch)
            #tabHeader.setResizeMode(1, QtGui.QHeaderView.ResizeToContents)
            rowNum = 0
            for key, value in levelDb.RangeIter():
                self.levelDbTableWidget.insertRow(rowNum)
                self.levelDbTableWidget.setItem(rowNum, 0,
                                                self.createItem(str(key)))
                self.levelDbTableWidget.setItem(rowNum, 1,
                                                self.createItem(str(value)))
                rowNum = rowNum + 1

            print("Number of records dumped are ==> " + str(rowNum))
        except:
            print("Attempting to repair DB")
            levelDb = leveldb.RepairDB(levelDbDir)
            levelDb2 = leveldb.LevelDB(os.path.join(levelDbDir, "lost"))
            try:
                print(levelDb2.GetStats())
            except:
                print("No Stats")
            columnHeadings = ["Key", "Value"]
            self.levelDbTableWidget.setColumnCount(2)
            self.levelDbTableWidget.setHorizontalHeaderLabels(columnHeadings)
            tabHeader = self.levelDbTableWidget.horizontalHeader()
            #tabHeader.setSectionResizeMode(QHeaderView.ResizeToContents)
            #tabHeader.setResizeMode(0, QtGui.QHeaderView.Stretch)
            #tabHeader.setResizeMode(1, QtGui.QHeaderView.ResizeToContents)
            rowNum = 0
            for key, value in levelDb2.RangeIter():
                self.levelDbTableWidget.insertRow(rowNum)
                self.levelDbTableWidget.setItem(
                    rowNum, 0,
                    self.createItem(str(key.decode('utf-8', "ignore"))))
                self.levelDbTableWidget.setItem(
                    rowNum, 1,
                    self.createItem(str(value.decode('utf-8', "ignore"))))
                rowNum = rowNum + 1
#!/usr/bin/env python
import leveldb
import sys
if len(sys.argv) < 2: raise Exception('Please give leveldb dir as argument')
db = sys.argv[1]
sys.stderr.write('Attempting to repair leveldb at {0}\n'.format(db))
leveldb.RepairDB(db)
sys.stderr.write('Finished processing {0}\n'.format(db))
Esempio n. 3
0
    def DBRepair(self, db, db_uid, *args, **kwargs):
        db_path = self.databases['paths_index'][db_uid]

        leveldb.RepairDB(db_path)

        return success()
Esempio n. 4
0
    with open(outputFile + ".csv", 'w') as f:
        for key, value in levelDb2.RangeIter():
            key2 = str(key, 'utf-8', 'ignore')
            keyd16 = key.decode('utf-8', "ignore")
            vald16 = value.decode('utf-8', 'ignore')
            newKey = removeChars(keyd16)
            newVal = removeChars(vald16)
            if len(str(newKey)) > 1 and len(str(newVal)) > 1:
                SQLitedb.InsertList("Leveldb", "key, value, byte_key, byte_value", '?, ?, ?, ?', [str(newKey), str(newVal), key, value])
                f.write(str(newKey) + "," + str(newVal) + "\n")
                numRecords = numRecords + 1

    print ("Number of records dumped are ==> " + str(numRecords))
except:
    print ("Attempting to repair DB")
    levelDb = leveldb.RepairDB(levelDbDir)
    levelDb2 = leveldb.LevelDB(os.path.join(levelDbDir, "lost"))
    try:
        print (levelDb2.GetStats())
    except:
        print ("No Stats")
    numRecords = 0  

    with open(outputFile + ".csv", 'w') as f:
        for key, value in levelDb2.RangeIter():
            key2 = str(key, 'utf-8', 'ignore')
            keyd16 = key.decode('utf-8', "ignore")
            vald16 = value.decode('utf-8', 'ignore')
            newKey = removeChars(keyd16)
            newVal = removeChars(vald16)
            if len(str(newKey)) > 1 and len(str(newVal)) > 1:
Esempio n. 5
0
def repair_leveldb(db_path):
    leveldb.RepairDB(db_path)
    Logger.info("Repair leveldb: {}.".format(db_path))
Esempio n. 6
0
 def repair_db(self):
     leveldb.RepairDB(self.db_path)