Example #1
0
def handle_file_failed(dongle, remote, channel, files, ret, err):
    logger.info("handle file failed %s[%s]: %s" % (remote, channel, files))
    logger.debug(err)
    try:
        rules = get_campaign_rule(files)
        if rules is None:
            raise Exception("No matching rule for files %s!" % files)
        record = None
        try_again = False

        for rule in get_campaign_rule(files):
            record = RemoteBluetoothDeviceFilesRejected()
            record.dongle = UploaderBluetoothDongle.objects.get(address=dongle)
            record.campaign = rule
            record.ret_value = ret
            record.setRemoteDevice(remote)
            record.save()
            # from here we try again either on timeout or if rejected count is 
            # smaller than filter, for any of the matching rules
            # if only 1 campaign matches we do it all over!
            try_again = try_again | rule.tryAgain(record)

        logger.info("try again: %s" % try_again)
        if try_again:
            from openproximity.rpc.server import OpenProximityService
            uploader = OpenProximityService.getUploader()
            if uploader:
                logger.info("trying again")
                return do_upload(uploader, files, remote)
            else:
                logger.info("no uploader registered")
    except Exception, err:
        logger.error("OOOPS!!!")
        logger.exception(err)
Example #2
0
def handle_file_failed(dongle, remote, channel, files, ret, err):
    logger.info("handle file failed %s[%s]: %s" % (remote, channel, files))
    logger.debug(err)
    try:
        rules = get_campaign_rule(files)
        if rules is None:
            raise Exception("No matching rule for files %s!" % files)
        record = None
        try_again = False

        for rule in get_campaign_rule(files):
            record = RemoteBluetoothDeviceFilesRejected()
            record.dongle = UploaderBluetoothDongle.objects.get(address=dongle)
            record.campaign = rule
            record.ret_value = ret
            record.setRemoteDevice(remote)
            record.save()
            # from here we try again either on timeout or if rejected count is
            # smaller than filter, for any of the matching rules
            # if only 1 campaign matches we do it all over!
            try_again = try_again | rule.tryAgain(record)

        logger.info("try again: %s" % try_again)
        if try_again:
            from openproximity.rpc.server import OpenProximityService

            uploader = OpenProximityService.getUploader()
            if uploader:
                logger.info("trying again")
                return do_upload(uploader, files, remote)
            else:
                logger.info("no uploader registered")
    except Exception, err:
        logger.error("OOOPS!!!")
        logger.exception(err)
Example #3
0
def upload_after_rejected(rules, services, dongle=None, remote=None):
    if len(rules) == 0:
	return False

    uploader = get_uploader(services)
    if not uploader:
	raise Exception("No uploader, can't try again")
    
    logger.info("trying again")
    files = set()
    
    use_same = False
    for rule in rules:
	files=files.union( set(get_files_from_campaign(rule)) )
	if rule.upload_on_discovered:
	    use_same=True

    do_upload(uploader, files, remote, dongle=dongle if use_same else None)
    return True
Example #4
0
def upload_after_rejected(rules, services, dongle=None, remote=None):
    if len(rules) == 0:
        return False

    uploader = get_uploader(services)
    if not uploader:
        raise Exception("No uploader, can't try again")

    logger.info("trying again")
    files = set()

    use_same = False
    for rule in rules:
        files = files.union(set(get_files_from_campaign(rule)))
        if rule.upload_on_discovered:
            use_same = True

    do_upload(uploader, files, remote, dongle=dongle if use_same else None)
    return True