コード例 #1
0
 def __init__(self, dirname, bootstrapPort):
     self.dirname = dirname
     self.commPort = getFreePort(5000)
     self.comm = ChunkSafeComm(self.commPort)
     self.comm.joinNetwork([("127.0.0.1", bootstrapPort)])
     self.name = hashlib.sha1(dirname).hexdigest() + ".tar.bz2"
     print self.name
コード例 #2
0
ファイル: chunksafe.py プロジェクト: jgluck/ChunkSafe
    def __init__(self,
                 udpPort,
                 backupDir=None,
                 storeDir=None,
                 backupTime=None,
                 bootstrapAddr=None,
                 bootstrapPort=None):
        # Set parameters
        self.commPort = udpPort
        self.address = socket.gethostbyname(socket.gethostname())
        if backupDir != None and storeDir != None:
            # New node - params specified on command line
            self.serverPort = udpPort + 500
            self.backupDir = backupDir
            self.storageDir = storeDir
            self.backupTime = backupTime
            print "Time: " + str(self.backupTime)
            self.saveParams()
        else:
            # Resuming node - load parameters
            try:
                self.loadParams()
            except IOError:
                print "Can't resume node, there is no saved state in this directory!"
                exit(1)

        # Create and store helper objects
        self.reactor = reactor
        dataStore = datastore.SQLiteDataStore(str(udpPort) + ".db")
        self.comm = ChunkSafeComm(self.commPort, dataStore)
        self.backup = BackupDir(self.backupDir, self.storageDir)
        self.server = ChunkServer(self.serverPort, self.reactor, os.getcwd())

        # Connect to the Entangled network
        if bootstrapAddr != None and bootstrapPort != None:
            self.comm.joinNetwork([(bootstrapAddr, bootstrapPort)])
        else:
            self.comm.joinNetwork(None)

        # Schedule the backup
        self.reactor.callLater(self.secsToBackup(), self.backUp, None)

        def sigHandler(signum, frame):
            self.reactor.callLater(0, self.backUp, None)

        signal.signal(signal.SIGUSR1, sigHandler)