コード例 #1
0
ファイル: voq_lag.py プロジェクト: weiding-1979/sonic-mgmt
def verify_lag_in_asic_db(asics, lag_id, deleted=False):
    """
    Verifies LAG in ASIC DB
    Args:
        asics<list>: asic
        lag_id<int>: lag id
        deleted<bool>: True if lag is deleted
    """
    for asic in asics:
        asicdb = AsicDbCli(asic)
        asic_db_lag_list = asicdb.get_asic_db_lag_list()
        if deleted:
            for lag in asic_db_lag_list:
                if asicdb.hget_key_value(lag, "SAI_LAG_ATTR_SYSTEM_PORT_AGGREGATE_ID") == lag_id:
                    pytest.fail('LAG id {} for LAG {} exist in ASIC DB,'
                                ' Expected was should not be present'.format(lag_id, TMP_PC))

            logging.info('LAG id {} for LAG {} does not exist in ASIC DB'.format(lag_id, TMP_PC))

        else:
            for lag in asic_db_lag_list:
                if asicdb.hget_key_value(lag, "SAI_LAG_ATTR_SYSTEM_PORT_AGGREGATE_ID") == lag_id:
                    logging.info('LAG id {} for LAG {} exist in ASIC DB'.format(lag_id, TMP_PC))
                    return
            pytest.fail('LAG id {} for LAG {} does not exist in ASIC DB'.format(lag_id, TMP_PC))
コード例 #2
0
ファイル: voq_lag.py プロジェクト: emilmih/sonic-mgmt
def verify_lag_member_in_asic_db(asics, lag_id, pc_members, deleted=False):
    """
       Verifies lag member in ASIC DB
       It runs the command e.g.
    """
    for asic in asics:
        asicdb = AsicDbCli(asic)
        asic_lag_list = asicdb.get_asic_db_lag_list()
        asic_db_lag_member_list = asicdb.get_asic_db_lag_member_list()
        lag_oid = None
        if deleted:
            for lag in asic_lag_list:
                if asicdb.hget_key_value(
                        lag,
                        "SAI_LAG_ATTR_SYSTEM_PORT_AGGREGATE_ID") == lag_id:
                    lag_oid = ":".join(lag for lag in lag.split(':')[-1:-3:-1])

            for lag_member in asic_db_lag_member_list:
                if asicdb.hget_key_value(
                        lag_member, "SAI_LAG_MEMBER_ATTR_LAG_ID") == lag_oid:
                    pytest.fail(
                        "lag members {} still exist in lag member table on {},"
                        " Expected was should be deleted".format(
                            pc_members, asic.sonichost.hostname))
            logging.info('Lag members are deleted from {} on {}'.format(
                asic.asic_index, asic.sonichost.hostname))

        else:
            for lag in asic_lag_list:
                if asicdb.hget_key_value(
                        lag,
                        "SAI_LAG_ATTR_SYSTEM_PORT_AGGREGATE_ID") == lag_id:
                    lag_oid = ":".join(lag for lag in lag.split(':')[-2::1])
                    break

            for lag_member in asic_db_lag_member_list:
                if asicdb.hget_key_value(
                        lag_member, "SAI_LAG_MEMBER_ATTR_LAG_ID") == lag_oid:
                    logging.info('Lag members exist in {} on {}'.format(
                        asic.asic_index, asic.sonichost.hostname))
                    return

            pytest.fail('Lag members {} does not exist in {} on {}'.format(
                pc_members, asic.asic_index, asic.sonichost.hostname))