예제 #1
0
파일: common.py 프로젝트: smjurcak/csm
def create_download_jobs(db_session, platform, release, pending_downloads, server_id, server_directory, created_by):
    """
    Pending downloads is an array of TAR files.
    """
    smu_meta = db_session.query(SMUMeta).filter(SMUMeta.platform_release == platform + '_' + release).first()
    if smu_meta is not None:
        for cco_filename in pending_downloads:
            # If the requested download_file is not in the download table, include it
            if not is_pending_on_download(db_session, cco_filename, server_id, server_directory):
                package_type = SMUInfoLoader.get_cco_file_package_type(db_session, cco_filename)

                if package_type == PackageType.SERVICE_PACK:
                    software_type_id = smu_meta.sp_software_type_id
                elif package_type == PackageType.SOFTWARE:
                    software_type_id = smu_meta.tar_software_type_id
                elif package_type == PackageType.SMU:
                    software_type_id = smu_meta.smu_software_type_id
                else:
                    # Best effort, it should not happen unless a SMU In-Transit is somehow get selected.
                    # All Posted software should have a cco file name entry.
                    software_type_id = smu_meta.smu_software_type_id

                download_job = DownloadJob(
                    cco_filename=cco_filename,
                    pid=smu_meta.pid,
                    mdf_id=smu_meta.mdf_id,
                    software_type_id=software_type_id,
                    server_id=server_id,
                    server_directory=server_directory,
                    user_id=current_user.id,
                    created_by=created_by)

                db_session.add(download_job)
                db_session.commit()
예제 #2
0
def create_download_jobs(db_session, platform, release, pending_downloads,
                         server_id, server_directory, created_by):
    """
    Pending downloads is an array of TAR files.
    """
    smu_meta = db_session.query(SMUMeta).filter(
        SMUMeta.platform_release == platform + '_' + release).first()
    if smu_meta is not None:
        for cco_filename in pending_downloads:
            # If the requested download_file is not in the download table, include it
            if not is_pending_on_download(db_session, cco_filename, server_id,
                                          server_directory):
                package_type = SMUInfoLoader.get_cco_file_package_type(
                    db_session, cco_filename)

                if package_type == PackageType.SERVICE_PACK:
                    software_type_id = smu_meta.sp_software_type_id
                elif package_type == PackageType.SOFTWARE:
                    software_type_id = smu_meta.tar_software_type_id
                elif package_type == PackageType.SMU:
                    software_type_id = smu_meta.smu_software_type_id
                else:
                    # Best effort, it should not happen unless a SMU In-Transit is somehow get selected.
                    # All Posted software should have a cco file name entry.
                    software_type_id = smu_meta.smu_software_type_id

                download_job = DownloadJob(cco_filename=cco_filename,
                                           pid=smu_meta.pid,
                                           mdf_id=smu_meta.mdf_id,
                                           software_type_id=software_type_id,
                                           server_id=server_id,
                                           server_directory=server_directory,
                                           user_id=current_user.id,
                                           created_by=created_by)

                db_session.add(download_job)
                db_session.commit()