Example #1
0
def test_collector_download_destination_path_does_not_exist():
    timestamp = datetime.datetime.now().strftime("%Y%m%d.%H")
    uta_label = "#" + "M.U1" + "." + timestamp + "#"
    filename = "ia.icama." + uta_label + ".zip"
    collector = Collector()
    collector.connect(host="192.168.179.130", username="******", password="******")
    collector.download(path="/home/fastfile/ewsd", filename=filename, destination_path="c:\\Zdenek\\_tmp\\nonexistant\\")
Example #2
0
def test_collector_delete_insufficient_permissions_on_requested_file():
    timestamp = datetime.datetime.now().strftime("%Y%m%d.%H")
    uta_label = "#" + "M.U1" + "." + timestamp + "#"
    filename = "ia.icama." + uta_label + ".zip"
    collector = Collector()
    collector.connect(host="192.168.179.130", username="******", password="******")
    collector.delete(path="/home/fastfile/transfer", filename=filename)
Example #3
0
def test_collector_download_invalid_request():
    timestamp = datetime.datetime.now().strftime("%Y%m%d.%H")
    uta_label = "#" + "M.U1" + "." + timestamp + "#"
    filename = "ia.icama." + uta_label + ".zip"
    collector = Collector()
    collector.connect(host="192.168.179.130", username="******", password="******")
    collector.download(path=None, filename=None, destination_path=None)
Example #4
0
def test_collector_delete_source_path_does_not_exist():
    timestamp = datetime.datetime.now().strftime("%Y%m%d.%H")
    uta_label = "#" + "M.U1" + "." + timestamp + "#"
    filename = "ia.icama." + uta_label + ".zip"
    collector = Collector()
    collector.connect(host="192.168.179.130", username="******", password="******")
    collector.delete(path="/home/fastfile/nonexistant", filename=filename)
Example #5
0
def test_collector_download_file_does_not_exist():
    collector = Collector()
    collector.connect(host="192.168.179.130", username="******", password="******")
    collector.download(path="/home/fastfile/ewsd", filename="nonexistant", destination_path="c:\\Zdenek\\_tmp\\")
Example #6
0
def test_collector_wrong_credentials():
    collector = Collector()
    collector.connect(host="192.168.179.130", username="******", password="******")
Example #7
0
def test_collector_unknown_host():
    collector = Collector()
    collector.connect(host="unknown_host", username="******", password="******")
Example #8
0
def test_collector_invalid_connection_request():
    collector = Collector()
    collector.connect(host=None, username=None, password=None)
Example #9
0
def test_collector_delete_file_does_not_exist():
    collector = Collector()
    collector.connect(host="192.168.179.130", username="******", password="******")
    collector.delete(path="/home/fastfile/transfer", filename="nonexistant")
Example #10
0
def test_collector_delete_invalid_request():
    collector = Collector()
    collector.connect(host="192.168.179.130", username="******", password="******")
    collector.delete(path=None, filename=None)
Example #11
0
def main():
    parser = argparse.ArgumentParser(prog="Fast File Transfer")
    parser.add_argument("--config", "-c", default=DEFAULT_CONFIG_FILE)
    parser.add_argument("--generate", "-g", action="store_true")
    parser.add_argument("--log_file", "-f")
    parser.add_argument(
        "--log_level",
        "-l",
        default="INFO",
        choices=["DEBUG", "INFO", "WARNING", "ERROR", "CRITICAL"])
    parser.add_argument("--skip_site_commands", "-s", action="store_true")
    parser.add_argument("--skip_ewsd_check", "-e", action="store_true")

    log_level = getattr(logging, parser.parse_args().log_level, None)
    log_format = "%(asctime)s - %(levelname)s - %(message)s"

    if parser.parse_args().log_file is None:
        logging.basicConfig(stream=sys.stdout,
                            level=log_level,
                            format=log_format)
    else:
        logging.basicConfig(filename=parser.parse_args().log_file,
                            level=log_level,
                            format=log_format)

    logging.info("Fast File Transfer application started")

    logging.debug("Argument --config = %s" % parser.parse_args().config)
    logging.debug("Argument --generate = %s" % parser.parse_args().generate)
    logging.debug("Argument --log_file = %s" % parser.parse_args().log_file)
    logging.debug("Argument --log_level = %s" % parser.parse_args().log_level)
    logging.debug("Argument --skip_site_commands = %s" %
                  parser.parse_args().skip_site_commands)
    logging.debug("Argument --skip_ewsd_check = %s" %
                  parser.parse_args().skip_ewsd_check)

    logging.info("Configuration: %s" % parser.parse_args().config)

    if parser.parse_args().generate:
        logging.info("Requested new configuration file")
        generate_new_config(filename=parser.parse_args().config)
        logging.info(
            "Fast File Transfer application finished - New configuration file "
            "generated")
        return

    logging.info("Loading configuration")
    config = Config()
    config.load(filename=parser.parse_args().config)

    logging.info("Establishing connection")
    use_site_commands = not parser.parse_args().skip_site_commands
    collector = Collector()
    collector.connect(host=config.get_host(),
                      username=config.get_username(),
                      password=config.get_password(),
                      use_site_commands=use_site_commands)

    ewsd_check = not parser.parse_args().skip_ewsd_check
    transfers = config.get_transfers()
    if transfers is None or transfers == []:
        logging.info("No active transfers")
    elif type(transfers) == list:
        logging.error(
            "Unfinished file transfers, aborting, download and release "
            "manually, review the configuration file %s" %
            config.get_config_filename())
        exit(-1)
    else:
        logging.error(
            "List of transfers corrupted, aborting, review the configuration "
            "file %s" % config.get_config_filename())
        exit(-1)

    logging.info("Collecting new file")
    new_filename = config.generate_new_filename()

    signal.signal(signal.SIGALRM, signal_handler)
    signal.alarm(DEFAULT_COLLECTION_TIMEOUT)
    try:
        collect_file(filename=new_filename,
                     path=config.get_ewsd_path(),
                     config=config,
                     collector=collector,
                     ewsd_check=ewsd_check)
    except Exception as exception:
        logging.debug(exception)
        logging.error(
            "File %s not collected due to timeout, aborting, download and release manually"
            % new_filename)
    signal.alarm(0)

    logging.info("Disconnecting")
    collector.disconnect()

    logging.info("Fast File Transfer application finished")