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\\")
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)
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)
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)
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\\")
def test_collector_wrong_credentials(): collector = Collector() collector.connect(host="192.168.179.130", username="******", password="******")
def test_collector_unknown_host(): collector = Collector() collector.connect(host="unknown_host", username="******", password="******")
def test_collector_invalid_connection_request(): collector = Collector() collector.connect(host=None, username=None, password=None)
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")
def test_collector_delete_invalid_request(): collector = Collector() collector.connect(host="192.168.179.130", username="******", password="******") collector.delete(path=None, filename=None)
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")