def run_from_report(input_file, config_file, log_file, report_file, autoload):
    """Create and autoload CloudShell resources from the generated report"""
    input_data_parser = get_input_data_parser(input_file)
    input_data_model = input_data_parser.parse(input_file)
    logger = get_logger(log_file)

    if config_file is None:
        additional_vendors_data = []
    else:
        config_data_parser = get_config_data_parser(config_file)
        additional_vendors_data = config_data_parser.parse(config_file)

    report = reports.discovery.get_report(report_file=report_file)
    parsed_entries = report.parse_entries_from_file(report_file)

    cs_session_manager = CloudShellSessionManager(
        cs_ip=input_data_model.cs_ip,
        cs_user=input_data_model.cs_user,
        cs_password=input_data_model.cs_password,
        logger=logger)

    command = commands.RunFromReportCommand(
        data_processor=JsonDataProcessor(logger=logger),
        report=reports.discovery.get_report(
            report_file=report_file,
            report_type=reports.discovery.DEFAULT_REPORT_TYPE),
        logger=logger,
        cs_session_manager=cs_session_manager,
        output=ConsoleOutput(),
        autoload=autoload)

    command.execute(parsed_entries=parsed_entries,
                    additional_vendors_data=additional_vendors_data)
def connect_ports_from_report(input_file, connections_report_file, log_file):
    """Create connections between CloudShell Port resources specified in the connection file"""
    input_data_parser = get_input_data_parser(input_file)
    input_data_model = input_data_parser.parse(input_file)
    logger = get_logger(log_file)

    report = reports.connections.get_report(
        report_file=connections_report_file)
    parsed_entries = report.parse_entries_from_file(connections_report_file)

    cs_session_manager = CloudShellSessionManager(
        cs_ip=input_data_model.cs_ip,
        cs_user=input_data_model.cs_user,
        cs_password=input_data_model.cs_password,
        logger=logger)

    command = commands.ConnectPortsFromReportCommand(
        cs_session_manager=cs_session_manager,
        report=reports.connections.get_report(
            report_file=connections_report_file),
        logger=logger,
        output=ConsoleOutput())

    command.execute(parsed_entries=parsed_entries)
def connect_ports(input_file, resources_names, domain, offline,
                  connections_report_file, connections_report_type, log_file):
    """Create connections between CloudShell Port resources based on the "Adjacent" attributes"""
    input_data_parser = get_input_data_parser(input_file)
    input_data_model = input_data_parser.parse(input_file)
    logger = get_logger(log_file)

    cs_session_manager = CloudShellSessionManager(
        cs_ip=input_data_model.cs_ip,
        cs_user=input_data_model.cs_user,
        cs_password=input_data_model.cs_password,
        logger=logger)

    command = commands.ConnectPortsCommand(
        cs_session_manager=cs_session_manager,
        report=reports.connections.get_report(
            report_file=connections_report_file,
            report_type=connections_report_type),
        offline=offline,
        logger=logger,
        output=ConsoleOutput())

    resources_names = [name.strip() for name in resources_names.split(",")]
    command.execute(resources_names=resources_names, domain=domain)
def run(input_file, config_file, log_file, report_file, report_type, offline,
        autoload):
    """Run Auto discovery command with given arguments from the input file"""
    input_data_parser = get_input_data_parser(input_file)
    input_data_model = input_data_parser.parse(input_file)
    logger = get_logger(log_file)

    if config_file is None:
        additional_vendors_data = []
    else:
        config_data_parser = get_config_data_parser(config_file)
        additional_vendors_data = config_data_parser.parse(config_file)

    report = reports.discovery.get_report(report_file=report_file,
                                          report_type=report_type)

    cs_session_manager = CloudShellSessionManager(
        cs_ip=input_data_model.cs_ip,
        cs_user=input_data_model.cs_user,
        cs_password=input_data_model.cs_password,
        logger=logger)

    auto_discover_command = commands.RunCommand(
        data_processor=JsonDataProcessor(logger=logger),
        report=report,
        logger=logger,
        cs_session_manager=cs_session_manager,
        output=ConsoleOutput(),
        offline=offline,
        autoload=autoload)

    auto_discover_command.execute(
        devices_ips=input_data_model.devices_ips,
        snmp_comunity_strings=input_data_model.snmp_community_strings,
        vendor_settings=input_data_model.vendor_settings,
        additional_vendors_data=additional_vendors_data)