Esempio n. 1
0
def get_smus_exclude_supersedes_include_prerequisites(smu_loader,
                                                      smu_info_list):
    """
    Returns a list of SMUInfo which has already excluded all the supersedes and included
    missing pre-requisites.
    """
    smu_info = []
    resultant_smu_dict = {}

    for smu_info in smu_info_list:
        if smu_info.status != 'Posted':
            continue
        # Filter out all the superseded SMUs
        superseded_by = comma_delimited_str_to_list(smu_info.superseded_by)
        if len(superseded_by) == 0:
            resultant_smu_dict[smu_info.name] = smu_info

    # Includes all the missing required pre-requisites
    missing_required_prerequisite_set = \
        get_missing_required_prerequisite_set(smu_loader, resultant_smu_dict.values())

    for missing_required_prerequisite in missing_required_prerequisite_set:
        if missing_required_prerequisite not in resultant_smu_dict:
            smu_info = smu_loader.get_smu_info(smu_info)
            if smu_info is not None:
                resultant_smu_dict[smu_info.name] = smu_info

    return resultant_smu_dict.values()
Esempio n. 2
0
def get_smus_exclude_supersedes_include_prerequisites(smu_loader, smu_info_list):
    """
    Returns a list of SMUInfo which has already excluded all the supersedes and included
    missing pre-requisites.
    """
    smu_info = []
    resultant_smu_dict = {}

    for smu_info in smu_info_list:
        if smu_info.status != "Posted":
            continue
        # Filter out all the superseded SMUs
        superseded_by = comma_delimited_str_to_list(smu_info.superseded_by)
        if len(superseded_by) == 0:
            resultant_smu_dict[smu_info.name] = smu_info

    # Includes all the missing required pre-requisites
    missing_required_prerequisite_set = get_missing_required_prerequisite_set(smu_loader, resultant_smu_dict.values())

    for missing_required_prerequisite in missing_required_prerequisite_set:
        if missing_required_prerequisite not in resultant_smu_dict:
            smu_info = smu_loader.get_smu_info(smu_info)
            if smu_info is not None:
                resultant_smu_dict[smu_info.name] = smu_info

    return resultant_smu_dict.values()
Esempio n. 3
0
File: cco.py Progetto: smjurcak/csm
def get_smu_ids(db_session, smu_name_list):
    smu_ids = []
    smu_names = comma_delimited_str_to_list(smu_name_list)
    for smu_name in smu_names:
        smu_info = db_session.query(SMUInfo).filter(SMUInfo.name == smu_name).first()
        if smu_info is not None:
            smu_ids.append(smu_info.id)
        else:
            smu_ids.append(UNKNOWN)

    return ','.join([id for id in smu_ids])
Esempio n. 4
0
def get_smu_ids(db_session, smu_name_list):
    smu_ids = []
    smu_names = comma_delimited_str_to_list(smu_name_list)
    for smu_name in smu_names:
        smu_info = db_session.query(SMUInfo).filter(
            SMUInfo.name == smu_name).first()
        if smu_info is not None:
            smu_ids.append(smu_info.id)
        else:
            smu_ids.append(UNKNOWN)

    return ','.join([id for id in smu_ids])
Esempio n. 5
0
def is_superseded(smu_loader, smu_name_list, smu_name):
    """
    Given a smu_name_set, check to see if the smu_name is tagged as a superseded SMU.  Each SMU
    name in the smu_name_set represents a SMUInfo which may contain the smu_name as its supersedes.
    """
    for name in smu_name_list:
        smu_info = smu_loader.get_smu_info(name)
        if smu_info is not None:
            superseded_smus = comma_delimited_str_to_list(smu_info.supersedes)
            for superseded_smu in superseded_smus:
                if superseded_smu == smu_name:
                    return True

    return False
Esempio n. 6
0
def get_all_superseded_bys(smu_loader, superseded_by_set, smu_name):
    """
    Given a SMU name, returns all the SMUs that supersede this SMU.
    SMU name can be SMU/SP name.
    """
    smu_info = smu_loader.get_smu_info(smu_name)
    if smu_info is not None:
        superseded_bys = comma_delimited_str_to_list(smu_info.superseded_by)
        if len(superseded_bys) > 0:
            for superseded_by in superseded_bys:
                if superseded_by not in superseded_by_set:
                    superseded_by_set.add(superseded_by)

                get_all_superseded_bys(smu_loader, superseded_by_set, superseded_by)
Esempio n. 7
0
def get_all_prerequisites(smu_loader, prerequisite_set, smu_name):
    """
    Given a SMU name, returns all its pre-requisites including its pre-requisites' pre-requisites.
    SMU name can be SMU/SP name.
    """
    smu_info = smu_loader.get_smu_info(smu_name)
    if smu_info is not None:
        prerequisites = comma_delimited_str_to_list(smu_info.prerequisites)
        if len(prerequisites) > 0:
            for prerequisite in prerequisites:
                if prerequisite not in prerequisite_set:
                    prerequisite_set.add(prerequisite)

                get_all_prerequisites(smu_loader, prerequisite_set, prerequisite)
Esempio n. 8
0
def is_superseded(smu_loader, smu_name_list, smu_name):
    """
    Given a smu_name_set, check to see if the smu_name is tagged as a superseded SMU.  Each SMU
    name in the smu_name_set represents a SMUInfo which may contain the smu_name as its supersedes.
    """
    for name in smu_name_list:
        smu_info = smu_loader.get_smu_info(name)
        if smu_info is not None:
            superseded_smus = comma_delimited_str_to_list(smu_info.supersedes)
            for superseded_smu in superseded_smus:
                if superseded_smu == smu_name:
                    return True

    return False
Esempio n. 9
0
def get_all_superseded_bys(smu_loader, superseded_by_set, smu_name):
    """
    Given a SMU name, returns all the SMUs that supersede this SMU.
    SMU name can be SMU/SP name.
    """
    smu_info = smu_loader.get_smu_info(smu_name)
    if smu_info is not None:
        superseded_bys = comma_delimited_str_to_list(smu_info.superseded_by)
        if len(superseded_bys) > 0:
            for superseded_by in superseded_bys:
                if superseded_by not in superseded_by_set:
                    superseded_by_set.add(superseded_by)

                get_all_superseded_bys(smu_loader, superseded_by_set,
                                       superseded_by)
Esempio n. 10
0
def get_all_prerequisites(smu_loader, prerequisite_set, smu_name):
    """
    Given a SMU name, returns all its pre-requisites including its pre-requisites' pre-requisites.
    SMU name can be SMU/SP name.
    """
    smu_info = smu_loader.get_smu_info(smu_name)
    if smu_info is not None:
        prerequisites = comma_delimited_str_to_list(smu_info.prerequisites)
        if len(prerequisites) > 0:
            for prerequisite in prerequisites:
                if prerequisite not in prerequisite_set:
                    prerequisite_set.add(prerequisite)

                get_all_prerequisites(smu_loader, prerequisite_set,
                                      prerequisite)
Esempio n. 11
0
def get_excluded_supersede_list(smu_info_list):
    """
    Given a smu_info_list, exclude SMUs that are superseded by other SMUs in the list.
    """
    smu_info_dict = get_dict_from_list(smu_info_list)
    resultant_list = []

    for smu_info in smu_info_list:
        superseded_by_smus = comma_delimited_str_to_list(smu_info.superseded_by)
        is_superseded = False
        for superseded_by_smu in superseded_by_smus:
            if superseded_by_smu in smu_info_dict:
                is_superseded = True
                break

        if not is_superseded:
            resultant_list.append(smu_info)

    return resultant_list
Esempio n. 12
0
def get_excluded_supersede_list(smu_info_list):
    """
    Given a smu_info_list, exclude SMUs that are superseded by other SMUs in the list.
    """
    smu_info_dict = get_dict_from_list(smu_info_list)
    resultant_list = []

    for smu_info in smu_info_list:
        superseded_by_smus = comma_delimited_str_to_list(
            smu_info.superseded_by)
        is_superseded = False
        for superseded_by_smu in superseded_by_smus:
            if superseded_by_smu in smu_info_dict:
                is_superseded = True
                break

        if not is_superseded:
            resultant_list.append(smu_info)

    return resultant_list