Example #1
0
 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')
Example #2
0
    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')
Example #3
0
 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))
Example #4
0
 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
     )
Example #5
0
 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)
Example #6
0
 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))
Example #7
0
 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))
Example #8
0
 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
Example #9
0
 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')