def __init__(self, fileName, packetID, remoteID, ownerID, callOnAck=None, callOnFail=None): self.fileName = fileName try: self.fileSize = os.path.getsize(os.path.abspath(fileName)) except: lg.exc() self.fileSize = 0 self.packetID = global_id.CanonicalID(packetID) parts = global_id.ParseGlobalID(packetID) self.customerID = parts['customer'] self.remotePath = parts['path'] self.customerIDURL = parts['idurl'] customerGlobalID, remotePath, versionName, _ = packetid.SplitVersionFilename( packetID) self.backupID = packetid.MakeBackupID(customerGlobalID, remotePath, versionName) self.remoteID = remoteID self.ownerID = ownerID self.callOnAck = callOnAck self.callOnFail = callOnFail self.sendTime = None self.ackTime = None self.sendTimeout = 10 * 2 * ( max(int(self.fileSize / settings.SendingSpeedLimit()), 5) + 5 ) # maximum 5 seconds to get an Ack self.result = '' self.created = utime.get_sec1970() PacketReport('send', self.remoteID, self.packetID, 'init')
def doSerializeAndWrite(self, *args, **kwargs): """ Action method. """ # serialize and write packet on disk a_packet = self.outpacket if self.route: a_packet = self.route['packet'] try: fileno, self.filename = tmpfile.make('outbox', extension='.out') self.packetdata = a_packet.Serialize() os.write(fileno, self.packetdata) os.close(fileno) self.filesize = len(self.packetdata) if self.filesize < 1024 * 10: self.timeout = 10 elif self.filesize > 1024 * 1024: self.timeout = int(self.filesize / float(settings.SendingSpeedLimit())) else: self.timeout = 300 # self.timeout = min( # settings.SendTimeOut() * 3, # max(int(self.filesize/(settings.SendingSpeedLimit()/len(queue()))), # settings.SendTimeOut())) except: lg.exc() self.packetdata = None self.automat('write-error')
def __init__(self, stream, filename, file_id, filesize, description='', result_defer=None, keep_alive=True): self.typ = 'tcp-out' self.transfer_id = None self.registration = None self.stream = stream self.file_id = file_id self.filename = filename self.size = filesize self.description = description self.keep_alive = keep_alive self.result_defer = result_defer self.ok_received = False self.bytes_sent = 0 self.bytes_out = 0 self.started = time.time() self.timeout = max(int(self.size / settings.SendingSpeedLimit()), 6) self.fout = open(self.filename, 'rb') if _Debug: lg.out( _DebugLevel, '>>>TCP-OUT %s with %d bytes reading from %s' % (self.file_id, self.size, self.filename))
def __init__(self, parent, callOnReceived, creatorID, packetID, ownerID, remoteID, debug_level=_DebugLevel, log_events=_Debug, log_transitions=_Debug, publish_events=False, **kwargs): """ Builds `file_down()` state machine. """ self.parent = parent self.callOnReceived = [] self.callOnReceived.append(callOnReceived) self.creatorID = creatorID self.packetID = global_id.CanonicalID(packetID) parts = global_id.ParseGlobalID(packetID) self.customerID = parts['customer'] self.remotePath = parts['path'] self.customerIDURL = parts['idurl'] customerGlobalID, remotePath, versionName, fileName = packetid.SplitVersionFilename(packetID) self.backupID = packetid.MakeBackupID(customerGlobalID, remotePath, versionName) self.fileName = fileName self.ownerID = ownerID self.remoteID = remoteID self.requestTime = None self.fileReceivedTime = None self.requestTimeout = max(30, 2 * int(settings.getBackupBlockSize() / settings.SendingSpeedLimit())) self.result = '' self.created = utime.get_sec1970() super(FileDown, self).__init__( name="file_down_%s_%s/%s/%s" % (nameurl.GetName(self.remoteID), remotePath, versionName, fileName), state="AT_STARTUP", debug_level=debug_level, log_events=log_events, log_transitions=log_transitions, publish_events=publish_events, **kwargs )
def __init__(self, parent, fileName, packetID, remoteID, ownerID, callOnAck=None, callOnFail=None, debug_level=_DebugLevel, log_events=_Debug, log_transitions=_Debug, publish_events=False, **kwargs): """ Builds `file_up()` state machine. """ self.parent = parent self.fileName = fileName try: self.fileSize = os.path.getsize(os.path.abspath(fileName)) except: lg.exc() self.fileSize = 0 self.packetID = global_id.CanonicalID(packetID) parts = global_id.ParseGlobalID(packetID) self.customerID = parts['customer'] self.remotePath = parts['path'] self.customerIDURL = parts['idurl'] customerGlobalID, remotePath, versionName, fileName = packetid.SplitVersionFilename( packetID) self.backupID = packetid.MakeBackupID(customerGlobalID, remotePath, versionName) self.remoteID = remoteID self.ownerID = ownerID self.callOnAck = callOnAck self.callOnFail = callOnFail self.sendTime = None self.ackTime = None self.sendTimeout = 10 * 2 * ( max(int(self.fileSize / settings.SendingSpeedLimit()), 5) + 5 ) # maximum 5 seconds to get an Ack self.result = '' self.created = utime.get_sec1970() super(FileUp, self).__init__(name="file_up_%s_%s/%s/%s" % (nameurl.GetName( self.remoteID), remotePath, versionName, fileName), state="AT_STARTUP", debug_level=debug_level, log_events=log_events, log_transitions=log_transitions, publish_events=publish_events, **kwargs)
def __init__(self, stream, file_id, file_size): self.transfer_id = None self.registration = None self.stream = stream self.file_id = file_id self.size = file_size self.fin, self.filename = tmpfile.make("tcp-in") self.bytes_received = 0 self.started = time.time() self.last_block_time = time.time() self.timeout = max(int(self.size / settings.SendingSpeedLimit()), 3) if _Debug: lg.out(_DebugLevel, '<<<TCP-IN %s with %d bytes write to %s' % ( self.file_id, self.size, self.filename))
def doInit(self, arg): """ Action method. """ self.proto, self.host, self.sender_idurl, self.filename, self.size = arg self.time = time.time() # 300 # max(10 * int(self.size/float(settings.SendingSpeedLimit())), 10) if self.size < 1024 * 10: self.timeout = 10 elif self.size > 1024 * 1024: self.timeout = int(self.size / float(settings.SendingSpeedLimit())) else: self.timeout = 300 if not self.sender_idurl: lg.warn('sender_idurl is None: %s' % str(arg))
def doInit(self, *args, **kwargs): """ Action method. """ self.proto, self.host, self.sender_idurl, self.filename, self.size = args[0] self.time = time.time() # 300 # max(10 * int(self.size/float(settings.SendingSpeedLimit())), 10) if self.size < 1024 * 10: self.timeout = 10 elif self.size > 1024 * 1024: self.timeout = int(self.size / float(settings.SendingSpeedLimit())) else: self.timeout = 300 if not self.sender_idurl: lg.warn('sender_idurl is None: %s' % str(*args, **kwargs)) reactor.callLater(0, callback.run_begin_file_receiving_callbacks, self) # @UndefinedVariable
def __init__(self, callOnReceived, creatorID, packetID, ownerID, remoteID): self.callOnReceived = [] self.callOnReceived.append(callOnReceived) self.creatorID = creatorID self.packetID = global_id.CanonicalID(packetID) parts = global_id.ParseGlobalID(packetID) self.customerID = parts['customer'] self.remotePath = parts['path'] self.customerIDURL = parts['idurl'] customerGlobalID, remotePath, versionName, fileName = packetid.SplitVersionFilename(packetID) self.backupID = packetid.MakeBackupID(customerGlobalID, remotePath, versionName) self.fileName = fileName self.ownerID = ownerID self.remoteID = remoteID self.requestTime = None self.fileReceivedTime = None self.requestTimeout = max(30, 2 * int(settings.getBackupBlockSize() / settings.SendingSpeedLimit())) self.result = '' self.created = utime.get_sec1970() PacketReport('request', self.remoteID, self.packetID, 'init')