예제 #1
0
파일: log.py 프로젝트: smjurcak/csm
def download_system_logs():
    db_session = DBSession()
    logs = db_session.query(Log) \
        .order_by(Log.created_time.desc())

    contents = ''
    for log in logs:
        contents += get_datetime_string(log.created_time) + ' UTC\n'
        contents += log.level + ':' + log.msg + '\n'
        if log.trace is not None:
            contents += log.trace + '\n'
        contents += '-' * 70 + '\n'

    # Create a file which contains the size of the image file.
    temp_user_dir = create_temp_user_directory(current_user.username)
    log_file_path = os.path.normpath(os.path.join(temp_user_dir, "system_logs"))

    create_directory(log_file_path)
    make_file_writable(log_file_path)

    log_file = open(os.path.join(log_file_path, 'system_logs'), 'w')
    log_file.write(contents)
    log_file.close()

    return send_file(os.path.join(log_file_path, 'system_logs'), as_attachment=True)
예제 #2
0
파일: conformance.py 프로젝트: smjurcak/csm
def export_software_profiles():
    db_session = DBSession()

    software_profile_list = request.args.getlist(
        'software_profile_list[]')[0].split(",")
    software_profiles = get_software_profile_list(db_session)
    d = {"CSM Server:Software Profile": {}}

    for software_profile in software_profiles:
        if software_profile.name in software_profile_list:
            d["CSM Server:Software Profile"][
                software_profile.name] = software_profile.packages

    temp_user_dir = create_temp_user_directory(current_user.username)
    software_profile_export_temp_path = os.path.normpath(
        os.path.join(temp_user_dir, "software_profile_export"))
    create_directory(software_profile_export_temp_path)
    make_file_writable(software_profile_export_temp_path)

    with open(
            os.path.join(software_profile_export_temp_path,
                         'software_profiles.json'),
            'w') as command_export_file:
        command_export_file.write(json.dumps(d, indent=2))

    return send_file(os.path.join(software_profile_export_temp_path,
                                  'software_profiles.json'),
                     as_attachment=True)
예제 #3
0
파일: log.py 프로젝트: smjurcak/csm
def download_system_logs():
    db_session = DBSession()
    logs = db_session.query(Log) \
        .order_by(Log.created_time.desc())

    contents = ''
    for log in logs:
        contents += get_datetime_string(log.created_time) + ' UTC\n'
        contents += log.level + ':' + log.msg + '\n'
        if log.trace is not None:
            contents += log.trace + '\n'
        contents += '-' * 70 + '\n'

    # Create a file which contains the size of the image file.
    temp_user_dir = create_temp_user_directory(current_user.username)
    log_file_path = os.path.normpath(os.path.join(temp_user_dir,
                                                  "system_logs"))

    create_directory(log_file_path)
    make_file_writable(log_file_path)

    log_file = open(os.path.join(log_file_path, 'system_logs'), 'w')
    log_file.write(contents)
    log_file.close()

    return send_file(os.path.join(log_file_path, 'system_logs'),
                     as_attachment=True)
예제 #4
0
    def __init__(self, **kwargs):
        ReportWriter.__init__(self, **kwargs)
        self.user = kwargs.pop('user')
        self.smu_loader = kwargs.pop('smu_loader')
        self.smu_list = kwargs.pop('smu_list')
        self.sp_list = kwargs.pop('sp_list')

        self.smu_list = sorted(self.smu_list, key=lambda x: x.posted_date, reverse=True)
        self.sp_list = sorted(self.sp_list, key=lambda x: x.posted_date, reverse=True)

        temp_user_dir = create_temp_user_directory(self.user.username)
        self.output_file_directory = os.path.normpath(os.path.join(temp_user_dir, 'software_information_export'))

        create_directory(self.output_file_directory)
        make_file_writable(self.output_file_directory)
예제 #5
0
    def __init__(self, **kwargs):
        ReportWriter.__init__(self, **kwargs)
        self.user = kwargs.pop('user')
        self.region_name = kwargs.pop('region_name')

        self.chassis_summary_iter = kwargs.pop('chassis_summary_iter')
        self.model_name_summary_iter = kwargs.pop('model_name_summary_iter')

        self.inventory_without_serial_number_iter = kwargs.pop('inventory_without_serial_number_iter')
        self.inventory_with_duplicate_serial_number_iter = kwargs.pop('inventory_with_duplicate_serial_number_iter')

        temp_user_dir = create_temp_user_directory(self.user.username)
        self.output_file_directory = os.path.normpath(os.path.join(temp_user_dir, 'inventory_information_export'))

        create_directory(self.output_file_directory)
        make_file_writable(self.output_file_directory)
예제 #6
0
파일: common.py 프로젝트: smjurcak/csm
def download_session_logs(file_list):
    if hasattr(current_user, 'username'):
        username = current_user.username
    else:
        username = g.api_user.username

    temp_user_dir = create_temp_user_directory(username)
    session_zip_path = os.path.normpath(os.path.join(temp_user_dir, "session_logs"))
    zip_file = os.path.join(session_zip_path, "session_logs.zip")
    create_directory(session_zip_path)
    make_file_writable(session_zip_path)

    zout = zipfile.ZipFile(zip_file, mode='w')
    for f in file_list:
        zout.write(os.path.normpath(f), os.path.basename(f))

    zout.close()

    return send_file(zip_file, as_attachment=True)
예제 #7
0
    def __init__(self, **kwargs):
        ReportWriter.__init__(self, **kwargs)
        self.user = kwargs.pop('user')
        self.serial_number = kwargs.pop('serial_number')
        self.region_names = kwargs.pop('region_names')
        self.chassis_types = kwargs.pop('chassis_types')
        self.software_versions = kwargs.pop('software_versions')
        self.model_names = kwargs.pop('model_names')
        self.partial_model_names = kwargs.pop('partial_model_names')
        self.vid = kwargs.pop('vid')

        self.available_inventory_iter = kwargs.pop('available_inventory_iter')
        self.in_use_inventory_iter = kwargs.pop('in_use_inventory_iter')

        temp_user_dir = create_temp_user_directory(self.user.username)
        self.output_file_directory = os.path.normpath(os.path.join(temp_user_dir, 'inventory_information_export'))

        create_directory(self.output_file_directory)
        make_file_writable(self.output_file_directory)
예제 #8
0
def export_command_profiles():
    db_session = DBSession()
    profiles_list = request.args.getlist('profiles_list[]')[0].split(",")
    db_profiles = db_session.query(CustomCommandProfile).all()
    d = {"CSM Server:Custom Command Profile": {}}

    for profile in db_profiles:
        if profile.profile_name in profiles_list:
            d["CSM Server:Custom Command Profile"][profile.profile_name] = profile.command_list

    temp_user_dir = create_temp_user_directory(current_user.username)
    custom_command_export_temp_path = os.path.normpath(os.path.join(temp_user_dir, "custom_command_export"))
    create_directory(custom_command_export_temp_path)
    make_file_writable(custom_command_export_temp_path)

    with open(os.path.join(custom_command_export_temp_path, 'custom_command_profiles.json'), 'w') as command_export_file:
        command_export_file.write(json.dumps(d, indent=2))

    return send_file(os.path.join(custom_command_export_temp_path, 'custom_command_profiles.json'), as_attachment=True)
예제 #9
0
파일: conformance.py 프로젝트: smjurcak/csm
def export_software_profiles():
    db_session = DBSession()

    software_profile_list = request.args.getlist('software_profile_list[]')[0].split(",")
    software_profiles = get_software_profile_list(db_session)
    d = {"CSM Server:Software Profile": {}}

    for software_profile in software_profiles:
        if software_profile.name in software_profile_list:
            d["CSM Server:Software Profile"][software_profile.name] = software_profile.packages

    temp_user_dir = create_temp_user_directory(current_user.username)
    software_profile_export_temp_path = os.path.normpath(os.path.join(temp_user_dir, "software_profile_export"))
    create_directory(software_profile_export_temp_path)
    make_file_writable(software_profile_export_temp_path)

    with open(os.path.join(software_profile_export_temp_path, 'software_profiles.json'), 'w') as command_export_file:
        command_export_file.write(json.dumps(d, indent=2))

    return send_file(os.path.join(software_profile_export_temp_path, 'software_profiles.json'), as_attachment=True)
예제 #10
0
def download_session_logs(file_list):
    if hasattr(current_user, 'username'):
        username = current_user.username
    else:
        username = g.api_user.username

    temp_user_dir = create_temp_user_directory(username)
    session_zip_path = os.path.normpath(
        os.path.join(temp_user_dir, "session_logs"))
    zip_file = os.path.join(session_zip_path, "session_logs.zip")
    create_directory(session_zip_path)
    make_file_writable(session_zip_path)

    zout = zipfile.ZipFile(zip_file, mode='w')
    for f in file_list:
        zout.write(os.path.normpath(f), os.path.basename(f))

    zout.close()

    return send_file(zip_file, as_attachment=True)
예제 #11
0
    def __init__(self, **kwargs):
        super(ConformanceReportWriter, self).__init__(**kwargs)
        self.style_title = xlwt.easyxf('font: height 350, bold on; align: vert centre, horiz center;')
        self.style_bold = xlwt.easyxf('font: bold on, height 260;')
        self.style_summary = xlwt.easyxf('font: height 220;')
        self.style_center = xlwt.easyxf('align: vert centre, horiz center;')

        self.user = kwargs.pop('user')
        self.conformance_report = kwargs.pop('conformance_report')
        self.locale_datetime = kwargs.pop('locale_datetime')
        self.include_host_packages = kwargs.pop('include_host_packages')
        self.exclude_conforming_hosts = kwargs.pop('exclude_conforming_hosts')

        self.wb = xlwt.Workbook()
        self.ws = self.wb.add_sheet('Conformance Report')
        self.ws.set_portrait(False)

        temp_user_dir = create_temp_user_directory(self.user.username)
        self.output_file_directory = os.path.normpath(os.path.join(temp_user_dir, "conformance_report"))

        create_directory(self.output_file_directory)
        make_file_writable(self.output_file_directory)

        self.row = 0
예제 #12
0
def get_config_conversion_path():
    temp_user_dir = create_temp_user_directory(current_user.username)
    config_conversion_path = os.path.normpath(os.path.join(temp_user_dir, "config_conversion"))
    create_directory(config_conversion_path)
    return config_conversion_path
예제 #13
0
def get_config_conversion_path():
    temp_user_dir = create_temp_user_directory(current_user.username)
    config_conversion_path = os.path.normpath(
        os.path.join(temp_user_dir, "config_conversion"))
    create_directory(config_conversion_path)
    return config_conversion_path