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))
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))