[PATCH]delete redis monitor dead code
This commit is contained in:
@@ -232,7 +232,7 @@ Maat实例的工作线程定时轮询Redis中MAAT_VERSION,如果大于实例
|
|||||||
{
|
{
|
||||||
"table_name": "IP_CONFIG", //域表表名和类型,应与配置表
|
"table_name": "IP_CONFIG", //域表表名和类型,应与配置表
|
||||||
//描述文件一致
|
//描述文件一致
|
||||||
"table_type": "ip",//类型包括 ip, string, intval 三种
|
"table_type": "ip",//类型包括 ip, string, interval 三种
|
||||||
"table_content": {//以下是ip类配置表的格式
|
"table_content": {//以下是ip类配置表的格式
|
||||||
"addr_type": "ipv4",//地址类型,可选ipv4和ipv6
|
"addr_type": "ipv4",//地址类型,可选ipv4和ipv6
|
||||||
"src_ip": "10.0.6.201",
|
"src_ip": "10.0.6.201",
|
||||||
@@ -306,7 +306,7 @@ Maat实例的工作线程定时轮询Redis中MAAT_VERSION,如果大于实例
|
|||||||
"regions": [
|
"regions": [
|
||||||
{
|
{
|
||||||
"table_name": "CONTENT_SIZE",
|
"table_name": "CONTENT_SIZE",
|
||||||
"table_type": "intval",
|
"table_type": "interval",
|
||||||
"table_content": {
|
"table_content": {
|
||||||
"low_boundary": 100, //上下界的约定参照数值类域配
|
"low_boundary": 100, //上下界的约定参照数值类域配
|
||||||
"up_boundary": 500 //置表定义
|
"up_boundary": 500 //置表定义
|
||||||
|
|||||||
@@ -24,8 +24,8 @@ Item tables are further subdivided into different types of subtables as follows:
|
|||||||
- [expr item table](#11-expr-item-table)
|
- [expr item table](#11-expr-item-table)
|
||||||
- [expr_plus item table](#12-expr_plus-item-table)
|
- [expr_plus item table](#12-expr_plus-item-table)
|
||||||
- [ip_plus item table](#13-ip_plus-item-table)
|
- [ip_plus item table](#13-ip_plus-item-table)
|
||||||
- [intval item table](#14-numeric-range-item-table)
|
- [interval item table](#14-numeric-range-item-table)
|
||||||
- [intval_plus item table](#14-numeric-range-item-table)
|
- [interval_plus item table](#14-numeric-range-item-table)
|
||||||
- [flag item table](#15-flag-item-table)
|
- [flag item table](#15-flag-item-table)
|
||||||
- [flag_plus item table](#16-flag_plus-item-table)
|
- [flag_plus item table](#16-flag_plus-item-table)
|
||||||
|
|
||||||
|
|||||||
@@ -42,7 +42,7 @@ long long interval_runtime_rule_count(void *interval_runtime);
|
|||||||
|
|
||||||
/* interval runtime scan API */
|
/* interval runtime scan API */
|
||||||
/**
|
/**
|
||||||
* @brief scan intval to get hit group_ids
|
* @brief scan interval to get hit group_ids
|
||||||
*
|
*
|
||||||
* @retval the num of hit group_id
|
* @retval the num of hit group_id
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -79,9 +79,9 @@ void maat_get_foreign_conts(redisContext *c, struct serial_rule *rule_list,
|
|||||||
void maat_rewrite_table_line_with_foreign(struct serial_rule *s_rule);
|
void maat_rewrite_table_line_with_foreign(struct serial_rule *s_rule);
|
||||||
|
|
||||||
int maat_get_rm_key_list(redisContext *c, long long instance_version,
|
int maat_get_rm_key_list(redisContext *c, long long instance_version,
|
||||||
long long desired_version, long long *new_version,
|
long long *new_version, struct table_manager *tbl_mgr,
|
||||||
struct table_manager *tbl_mgr, struct serial_rule **list,
|
struct serial_rule **list, int *update_type,
|
||||||
int *update_type, int cumulative_off, struct log_handle *logger);
|
int cumulative_off, struct log_handle *logger);
|
||||||
|
|
||||||
void redis_monitor_traverse(long long version, struct source_redis_ctx *mr_ctx,
|
void redis_monitor_traverse(long long version, struct source_redis_ctx *mr_ctx,
|
||||||
void (*start_fn)(long long, int, void *),
|
void (*start_fn)(long long, int, void *),
|
||||||
|
|||||||
@@ -173,7 +173,6 @@ struct maat {
|
|||||||
|
|
||||||
long long maat_version;
|
long long maat_version;
|
||||||
long long last_full_version;
|
long long last_full_version;
|
||||||
long long load_specific_version; //Default: Load the Latest. Only valid in redis mode, and maybe failed for too old
|
|
||||||
/* internal state */
|
/* internal state */
|
||||||
long long new_version;
|
long long new_version;
|
||||||
|
|
||||||
|
|||||||
@@ -149,9 +149,7 @@ static int set_iris_descriptor(const char *json_file, cJSON *json,
|
|||||||
maat_kv_register(iris_cfg->str2int_map, "string", TABLE_TYPE_EXPR);
|
maat_kv_register(iris_cfg->str2int_map, "string", TABLE_TYPE_EXPR);
|
||||||
maat_kv_register(iris_cfg->str2int_map, "expr", TABLE_TYPE_EXPR);
|
maat_kv_register(iris_cfg->str2int_map, "expr", TABLE_TYPE_EXPR);
|
||||||
maat_kv_register(iris_cfg->str2int_map, "expr_plus", TABLE_TYPE_EXPR_PLUS);
|
maat_kv_register(iris_cfg->str2int_map, "expr_plus", TABLE_TYPE_EXPR_PLUS);
|
||||||
maat_kv_register(iris_cfg->str2int_map, "intval", TABLE_TYPE_INTERVAL);
|
|
||||||
maat_kv_register(iris_cfg->str2int_map, "interval", TABLE_TYPE_INTERVAL);
|
maat_kv_register(iris_cfg->str2int_map, "interval", TABLE_TYPE_INTERVAL);
|
||||||
maat_kv_register(iris_cfg->str2int_map, "intval_plus", TABLE_TYPE_INTERVAL_PLUS);
|
|
||||||
maat_kv_register(iris_cfg->str2int_map, "interval_plus", TABLE_TYPE_INTERVAL_PLUS);
|
maat_kv_register(iris_cfg->str2int_map, "interval_plus", TABLE_TYPE_INTERVAL_PLUS);
|
||||||
|
|
||||||
maat_kv_register(iris_cfg->str2int_map, "ipv4", 4);
|
maat_kv_register(iris_cfg->str2int_map, "ipv4", 4);
|
||||||
@@ -578,7 +576,7 @@ static int write_ip_plus_line(cJSON *region_json, struct iris_description *p_iri
|
|||||||
json_cmd, cmd_cnt, table, logger);
|
json_cmd, cmd_cnt, table, logger);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int write_intval_line(cJSON *region_json, struct iris_description *p_iris,
|
static int write_interval_line(cJSON *region_json, struct iris_description *p_iris,
|
||||||
struct iris_table *table, struct log_handle *logger)
|
struct iris_table *table, struct log_handle *logger)
|
||||||
{
|
{
|
||||||
struct translate_command json_cmd[MAX_COLUMN_NUM];
|
struct translate_command json_cmd[MAX_COLUMN_NUM];
|
||||||
@@ -676,7 +674,7 @@ static int write_region_rule(cJSON *region_json, int compile_id, int group_id,
|
|||||||
break;
|
break;
|
||||||
case TABLE_TYPE_INTERVAL:
|
case TABLE_TYPE_INTERVAL:
|
||||||
case TABLE_TYPE_INTERVAL_PLUS:
|
case TABLE_TYPE_INTERVAL_PLUS:
|
||||||
ret = write_intval_line(table_content, p_iris, table_info, logger);
|
ret = write_interval_line(table_content, p_iris, table_info, logger);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
assert(0);
|
assert(0);
|
||||||
|
|||||||
@@ -109,7 +109,7 @@ void *interval_schema_new(cJSON *json, struct table_manager *tbl_mgr,
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* interval_plus has district */
|
/* interval_plus has district */
|
||||||
if (strcmp(table_type, "intval_plus") == 0) {
|
if (strcmp(table_type, "interval_plus") == 0) {
|
||||||
custom_item = cJSON_GetObjectItem(item, "district");
|
custom_item = cJSON_GetObjectItem(item, "district");
|
||||||
if (custom_item != NULL && custom_item->type == cJSON_Number) {
|
if (custom_item != NULL && custom_item->type == cJSON_Number) {
|
||||||
schema->district_column = custom_item->valueint;
|
schema->district_column = custom_item->valueint;
|
||||||
|
|||||||
@@ -593,13 +593,13 @@ int ip_runtime_commit(void *ip_runtime, const char *table_name,
|
|||||||
ip_rt->ipv6_rule_num = 0;
|
ip_rt->ipv6_rule_num = 0;
|
||||||
|
|
||||||
struct ip_rule *rules = NULL;
|
struct ip_rule *rules = NULL;
|
||||||
struct interval_rule *intval_rules = NULL;
|
struct interval_rule *interval_rules = NULL;
|
||||||
void **ex_data_array = NULL;
|
void **ex_data_array = NULL;
|
||||||
|
|
||||||
size_t rule_cnt = rcu_updating_hash_list(ip_rt->item_hash, &ex_data_array);
|
size_t rule_cnt = rcu_updating_hash_list(ip_rt->item_hash, &ex_data_array);
|
||||||
if (rule_cnt > 0) {
|
if (rule_cnt > 0) {
|
||||||
rules = ALLOC(struct ip_rule, rule_cnt);
|
rules = ALLOC(struct ip_rule, rule_cnt);
|
||||||
intval_rules = ALLOC(struct interval_rule, rule_cnt);
|
interval_rules = ALLOC(struct interval_rule, rule_cnt);
|
||||||
for (size_t i = 0; i < rule_cnt; i++) {
|
for (size_t i = 0; i < rule_cnt; i++) {
|
||||||
struct ip_item *item = (struct ip_item *)ex_data_array[i];
|
struct ip_item *item = (struct ip_item *)ex_data_array[i];
|
||||||
if (item->addr_type == IPv6) {
|
if (item->addr_type == IPv6) {
|
||||||
@@ -607,7 +607,7 @@ int ip_runtime_commit(void *ip_runtime, const char *table_name,
|
|||||||
}
|
}
|
||||||
|
|
||||||
ip_item_to_ip_rule(item, &rules[i]);
|
ip_item_to_ip_rule(item, &rules[i]);
|
||||||
ip_item_to_port_rule(item, &intval_rules[i]);
|
ip_item_to_port_rule(item, &interval_rules[i]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -653,8 +653,8 @@ int ip_runtime_commit(void *ip_runtime, const char *table_name,
|
|||||||
FREE(rules);
|
FREE(rules);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (intval_rules != NULL) {
|
if (interval_rules != NULL) {
|
||||||
FREE(intval_rules);
|
FREE(interval_rules);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ex_data_array != NULL) {
|
if (ex_data_array != NULL) {
|
||||||
|
|||||||
@@ -477,125 +477,10 @@ void maat_set_serial_rule(struct serial_rule *rule, enum maat_operation op,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void serial_rule_free(struct serial_rule *s_rule)
|
|
||||||
{
|
|
||||||
if (NULL == s_rule) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (s_rule->table_line != NULL) {
|
|
||||||
FREE(s_rule->table_line);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (s_rule->n_foreign > 0) {
|
|
||||||
for (int i = 0; i < s_rule->n_foreign; i++) {
|
|
||||||
if (s_rule->f_keys[i].filename != NULL) {
|
|
||||||
FREE(s_rule->f_keys[i].filename);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (s_rule->f_keys[i].key != NULL) {
|
|
||||||
FREE(s_rule->f_keys[i].key);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (s_rule->f_keys != NULL) {
|
|
||||||
FREE(s_rule->f_keys);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
FREE(s_rule);
|
|
||||||
}
|
|
||||||
|
|
||||||
static struct serial_rule *serial_rule_clone(const struct serial_rule *s_rule)
|
|
||||||
{
|
|
||||||
struct serial_rule *new_rule = ALLOC(struct serial_rule, 1);
|
|
||||||
|
|
||||||
new_rule->op = s_rule->op;
|
|
||||||
new_rule->rule_id = s_rule->rule_id;
|
|
||||||
new_rule->timeout = s_rule->timeout;
|
|
||||||
memcpy(new_rule->table_name, s_rule->table_name, strlen(s_rule->table_name));
|
|
||||||
new_rule->n_foreign = s_rule->n_foreign;
|
|
||||||
new_rule->table_line = ALLOC(char, strlen(s_rule->table_line) + 1);
|
|
||||||
memcpy(new_rule->table_line, s_rule->table_line, strlen(s_rule->table_line));
|
|
||||||
|
|
||||||
new_rule->f_keys = ALLOC(struct foreign_key, new_rule->n_foreign);
|
|
||||||
for (int j = 0; j < new_rule->n_foreign; j++) {
|
|
||||||
new_rule->f_keys[j].key = ALLOC(char, s_rule->f_keys[j].key_len + 1);
|
|
||||||
memcpy(new_rule->f_keys[j].key, s_rule->f_keys[j].key, s_rule->f_keys[j].key_len);
|
|
||||||
new_rule->f_keys[j].filename = ALLOC(char, strlen(s_rule->f_keys[j].filename) + 1);
|
|
||||||
memcpy(new_rule->f_keys[j].filename, s_rule->f_keys[j].filename,
|
|
||||||
strlen(s_rule->f_keys[j].filename));
|
|
||||||
}
|
|
||||||
|
|
||||||
return new_rule;
|
|
||||||
}
|
|
||||||
|
|
||||||
static int recovery_history_version(const struct serial_rule *current, int current_num,
|
|
||||||
const struct serial_rule *changed, int changed_num,
|
|
||||||
struct serial_rule **history_result)
|
|
||||||
{
|
|
||||||
int i = 0;
|
|
||||||
int ret = 0;
|
|
||||||
unsigned int history_num = 0;
|
|
||||||
int hash_slot_size = 1;
|
|
||||||
char hkey[256+20] = {0};
|
|
||||||
int tmp = current_num + changed_num;
|
|
||||||
for (; tmp > 0; tmp = tmp/2) {
|
|
||||||
hash_slot_size *= 2;
|
|
||||||
}
|
|
||||||
|
|
||||||
struct serial_rule *s_rule_map = NULL;
|
|
||||||
struct serial_rule *rule_node = NULL;
|
|
||||||
for (i = 0; i < current_num; i++) {
|
|
||||||
snprintf(hkey, sizeof(hkey), "%lld,%s", current[i].rule_id, current[i].table_name);
|
|
||||||
rule_node = serial_rule_clone(current + i);
|
|
||||||
HASH_ADD_KEYPTR(hh, s_rule_map, hkey, strlen(hkey), rule_node);
|
|
||||||
}
|
|
||||||
|
|
||||||
for (i = changed_num - 1; i >= 0; i--) {
|
|
||||||
snprintf(hkey, sizeof(hkey), "%lld,%s", changed[i].rule_id, changed[i].table_name);
|
|
||||||
//newly added rule is need to delete from current, so that history version can be recovered.
|
|
||||||
if (changed[i].op == MAAT_OP_ADD) {
|
|
||||||
rule_node = NULL;
|
|
||||||
HASH_FIND(hh, s_rule_map, hkey, strlen(hkey), rule_node);
|
|
||||||
if (rule_node != NULL) {
|
|
||||||
HASH_DELETE(hh, s_rule_map, rule_node);
|
|
||||||
}
|
|
||||||
serial_rule_free(rule_node);
|
|
||||||
} else {
|
|
||||||
rule_node = serial_rule_clone(changed + i);
|
|
||||||
HASH_ADD_KEYPTR(hh, s_rule_map, hkey, strlen(hkey), rule_node);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
history_num = HASH_CNT(hh, s_rule_map);
|
|
||||||
struct serial_rule *array = ALLOC(struct serial_rule, history_num);
|
|
||||||
struct serial_rule *elem_node = NULL;
|
|
||||||
struct serial_rule *tmp_node = NULL;
|
|
||||||
i = 0;
|
|
||||||
HASH_ITER(hh, s_rule_map, elem_node, tmp_node) {
|
|
||||||
memcpy(&array[i], elem_node, sizeof(struct serial_rule));
|
|
||||||
array[i].op = MAAT_OP_ADD;
|
|
||||||
i++;
|
|
||||||
}
|
|
||||||
elem_node = NULL;
|
|
||||||
tmp_node = NULL;
|
|
||||||
|
|
||||||
*history_result = array;
|
|
||||||
ret = history_num;
|
|
||||||
|
|
||||||
HASH_ITER(hh, s_rule_map, elem_node, tmp_node) {
|
|
||||||
HASH_DELETE(hh, s_rule_map, elem_node);
|
|
||||||
serial_rule_free(elem_node);
|
|
||||||
}
|
|
||||||
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
int maat_get_rm_key_list(redisContext *c, long long instance_version,
|
int maat_get_rm_key_list(redisContext *c, long long instance_version,
|
||||||
long long desired_version, long long *new_version,
|
long long *new_version, struct table_manager *tbl_mgr,
|
||||||
struct table_manager *tbl_mgr, struct serial_rule **list,
|
struct serial_rule **list, int *update_type,
|
||||||
int *update_type, int cumulative_off, struct log_handle *logger)
|
int cumulative_off, struct log_handle *logger)
|
||||||
{
|
{
|
||||||
int rule_num = 0;
|
int rule_num = 0;
|
||||||
long long target_version = 0;
|
long long target_version = 0;
|
||||||
@@ -635,7 +520,7 @@ int maat_get_rm_key_list(redisContext *c, long long instance_version,
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (0 == instance_version || desired_version != 0) {
|
if (0 == instance_version) {
|
||||||
goto FULL_UPDATE;
|
goto FULL_UPDATE;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -668,9 +553,8 @@ int maat_get_rm_key_list(redisContext *c, long long instance_version,
|
|||||||
|
|
||||||
if (0 == rule_num) {
|
if (0 == rule_num) {
|
||||||
log_info(logger, MODULE_REDIS_MONITOR,
|
log_info(logger, MODULE_REDIS_MONITOR,
|
||||||
"Got nothing after ZRANGEBYSCORE %s (%lld %lld, cumulative %s",
|
"Got nothing after ZRANGEBYSCORE %s (%lld %lld",
|
||||||
mr_status_sset, instance_version, target_version-1,
|
mr_status_sset, instance_version, target_version - 1);
|
||||||
cumulative_off == 1 ? "OFF" : "ON");
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -686,7 +570,7 @@ int maat_get_rm_key_list(redisContext *c, long long instance_version,
|
|||||||
FULL_UPDATE:
|
FULL_UPDATE:
|
||||||
log_info(logger, MODULE_REDIS_MONITOR,
|
log_info(logger, MODULE_REDIS_MONITOR,
|
||||||
"Initiate full update from instance_version %lld to %lld",
|
"Initiate full update from instance_version %lld to %lld",
|
||||||
instance_version, desired_version == 0 ? redis_version : desired_version);
|
instance_version, redis_version);
|
||||||
size_t append_cmd_cnt = 0;
|
size_t append_cmd_cnt = 0;
|
||||||
int ret = redisAppendCommand(c, "MULTI");
|
int ret = redisAppendCommand(c, "MULTI");
|
||||||
append_cmd_cnt++;
|
append_cmd_cnt++;
|
||||||
@@ -770,35 +654,6 @@ FULL_UPDATE:
|
|||||||
freeReplyObject(reply);
|
freeReplyObject(reply);
|
||||||
reply = NULL;
|
reply = NULL;
|
||||||
|
|
||||||
if (desired_version != 0) {
|
|
||||||
struct serial_rule *changed_rule_array = NULL;
|
|
||||||
int changed_rule_num = get_inc_key_list(desired_version, redis_version,
|
|
||||||
c, &changed_rule_array, logger);
|
|
||||||
if (changed_rule_num < 0) {
|
|
||||||
log_error(logger, MODULE_REDIS_MONITOR,
|
|
||||||
"[%s:%d] Recover history version %lld faild where as redis version is %lld",
|
|
||||||
__FUNCTION__, __LINE__, desired_version, redis_version);
|
|
||||||
} else if(0 == changed_rule_num) {
|
|
||||||
log_error(logger, MODULE_REDIS_MONITOR,
|
|
||||||
"[%s:%d] Nothing to recover from history version %lld to redis version is %lld",
|
|
||||||
__FUNCTION__, __LINE__, desired_version, redis_version);
|
|
||||||
} else {
|
|
||||||
struct serial_rule *history_rule_array = NULL;
|
|
||||||
ret = recovery_history_version(s_rule_array, full_idx, changed_rule_array,
|
|
||||||
changed_rule_num, &history_rule_array);
|
|
||||||
if (ret > 0) {
|
|
||||||
FREE(s_rule_array);
|
|
||||||
s_rule_array = history_rule_array;
|
|
||||||
rule_num = ret;
|
|
||||||
*new_version = desired_version;
|
|
||||||
log_info(logger, MODULE_REDIS_MONITOR,
|
|
||||||
"Successfully recovered from history version %lld to redis version is %lld",
|
|
||||||
desired_version, redis_version);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
FREE(changed_rule_array);
|
|
||||||
}
|
|
||||||
|
|
||||||
*list = s_rule_array;
|
*list = s_rule_array;
|
||||||
*update_type = MAAT_UPDATE_TYPE_FULL;
|
*update_type = MAAT_UPDATE_TYPE_FULL;
|
||||||
log_info(logger, MODULE_REDIS_MONITOR,
|
log_info(logger, MODULE_REDIS_MONITOR,
|
||||||
@@ -1491,7 +1346,6 @@ void redis_monitor_traverse(long long version, struct source_redis_ctx *mr_ctx,
|
|||||||
int update_type = MAAT_UPDATE_TYPE_INC;
|
int update_type = MAAT_UPDATE_TYPE_INC;
|
||||||
|
|
||||||
int rule_num = maat_get_rm_key_list(mr_ctx->read_ctx, version,
|
int rule_num = maat_get_rm_key_list(mr_ctx->read_ctx, version,
|
||||||
maat_inst->load_specific_version,
|
|
||||||
&new_version, maat_inst->tbl_mgr,
|
&new_version, maat_inst->tbl_mgr,
|
||||||
&rule_list, &update_type,
|
&rule_list, &update_type,
|
||||||
maat_inst->opts.cumulative_update_off,
|
maat_inst->opts.cumulative_update_off,
|
||||||
@@ -1503,7 +1357,6 @@ void redis_monitor_traverse(long long version, struct source_redis_ctx *mr_ctx,
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
maat_inst->load_specific_version = 0;//only valid for one time.
|
|
||||||
//error or nothing changed
|
//error or nothing changed
|
||||||
if (0 == rule_num && update_type == MAAT_UPDATE_TYPE_INC) {
|
if (0 == rule_num && update_type == MAAT_UPDATE_TYPE_INC) {
|
||||||
return;
|
return;
|
||||||
|
|||||||
@@ -485,8 +485,8 @@ static void register_reserved_word(struct maat_kv_store *reserved_word_map)
|
|||||||
maat_kv_register(reserved_word_map, "flag_plus", TABLE_TYPE_FLAG_PLUS);
|
maat_kv_register(reserved_word_map, "flag_plus", TABLE_TYPE_FLAG_PLUS);
|
||||||
maat_kv_register(reserved_word_map, "expr", TABLE_TYPE_EXPR);
|
maat_kv_register(reserved_word_map, "expr", TABLE_TYPE_EXPR);
|
||||||
maat_kv_register(reserved_word_map, "expr_plus", TABLE_TYPE_EXPR_PLUS);
|
maat_kv_register(reserved_word_map, "expr_plus", TABLE_TYPE_EXPR_PLUS);
|
||||||
maat_kv_register(reserved_word_map, "intval", TABLE_TYPE_INTERVAL);
|
maat_kv_register(reserved_word_map, "interval", TABLE_TYPE_INTERVAL);
|
||||||
maat_kv_register(reserved_word_map, "intval_plus", TABLE_TYPE_INTERVAL_PLUS);
|
maat_kv_register(reserved_word_map, "interval_plus", TABLE_TYPE_INTERVAL_PLUS);
|
||||||
maat_kv_register(reserved_word_map, "ip_plus", TABLE_TYPE_IP_PLUS);
|
maat_kv_register(reserved_word_map, "ip_plus", TABLE_TYPE_IP_PLUS);
|
||||||
maat_kv_register(reserved_word_map, "plugin", TABLE_TYPE_PLUGIN);
|
maat_kv_register(reserved_word_map, "plugin", TABLE_TYPE_PLUGIN);
|
||||||
maat_kv_register(reserved_word_map, "ip_plugin", TABLE_TYPE_IP_PLUGIN);
|
maat_kv_register(reserved_word_map, "ip_plugin", TABLE_TYPE_IP_PLUGIN);
|
||||||
|
|||||||
@@ -308,7 +308,7 @@
|
|||||||
{
|
{
|
||||||
"table_id":20,
|
"table_id":20,
|
||||||
"table_name":"INTEGER_1K",
|
"table_name":"INTEGER_1K",
|
||||||
"table_type":"intval",
|
"table_type":"interval",
|
||||||
"valid_column":5,
|
"valid_column":5,
|
||||||
"custom": {
|
"custom": {
|
||||||
"item_id":1,
|
"item_id":1,
|
||||||
@@ -320,7 +320,7 @@
|
|||||||
{
|
{
|
||||||
"table_id":21,
|
"table_id":21,
|
||||||
"table_name":"INTEGER_5K",
|
"table_name":"INTEGER_5K",
|
||||||
"table_type":"intval",
|
"table_type":"interval",
|
||||||
"valid_column":5,
|
"valid_column":5,
|
||||||
"custom": {
|
"custom": {
|
||||||
"item_id":1,
|
"item_id":1,
|
||||||
@@ -332,7 +332,7 @@
|
|||||||
{
|
{
|
||||||
"table_id":22,
|
"table_id":22,
|
||||||
"table_name":"INTEGER_10K",
|
"table_name":"INTEGER_10K",
|
||||||
"table_type":"intval",
|
"table_type":"interval",
|
||||||
"valid_column":5,
|
"valid_column":5,
|
||||||
"custom": {
|
"custom": {
|
||||||
"item_id":1,
|
"item_id":1,
|
||||||
@@ -344,7 +344,7 @@
|
|||||||
{
|
{
|
||||||
"table_id":23,
|
"table_id":23,
|
||||||
"table_name":"INTEGER_50K",
|
"table_name":"INTEGER_50K",
|
||||||
"table_type":"intval",
|
"table_type":"interval",
|
||||||
"valid_column":5,
|
"valid_column":5,
|
||||||
"custom": {
|
"custom": {
|
||||||
"item_id":1,
|
"item_id":1,
|
||||||
@@ -356,7 +356,7 @@
|
|||||||
{
|
{
|
||||||
"table_id":24,
|
"table_id":24,
|
||||||
"table_name":"INTEGER_100K",
|
"table_name":"INTEGER_100K",
|
||||||
"table_type":"intval",
|
"table_type":"interval",
|
||||||
"valid_column":5,
|
"valid_column":5,
|
||||||
"custom": {
|
"custom": {
|
||||||
"item_id":1,
|
"item_id":1,
|
||||||
|
|||||||
@@ -80,7 +80,7 @@
|
|||||||
{
|
{
|
||||||
"table_id":6,
|
"table_id":6,
|
||||||
"table_name":"NTC_UNIVERSAL_PROTO_TYPE",
|
"table_name":"NTC_UNIVERSAL_PROTO_TYPE",
|
||||||
"table_type":"intval",
|
"table_type":"interval",
|
||||||
"valid_column":5,
|
"valid_column":5,
|
||||||
"custom": {
|
"custom": {
|
||||||
"item_id":1,
|
"item_id":1,
|
||||||
|
|||||||
@@ -239,7 +239,7 @@ int expr_table_set_line(struct maat *maat_inst, const char *table_name,
|
|||||||
return maat_cmd_set_line(maat_inst, &line_rule);
|
return maat_cmd_set_line(maat_inst, &line_rule);
|
||||||
}
|
}
|
||||||
|
|
||||||
int intval_table_set_line(struct maat *maat_inst, const char *table_name,
|
int interval_table_set_line(struct maat *maat_inst, const char *table_name,
|
||||||
enum maat_operation op, long long item_id,
|
enum maat_operation op, long long item_id,
|
||||||
long long group_id, unsigned int low_boundary,
|
long long group_id, unsigned int low_boundary,
|
||||||
unsigned int up_boundary, const char *district,
|
unsigned int up_boundary, const char *district,
|
||||||
@@ -6944,7 +6944,7 @@ TEST_F(MaatCmdTest, GroupInMassCompiles) {
|
|||||||
//item_appid -> group3
|
//item_appid -> group3
|
||||||
long long group3_id = maat_cmd_incrby(maat_inst, "SEQUENCE_GROUP", 1);
|
long long group3_id = maat_cmd_incrby(maat_inst, "SEQUENCE_GROUP", 1);
|
||||||
long long item3_id = maat_cmd_incrby(maat_inst, "SEQUENCE_REGION", 1);
|
long long item3_id = maat_cmd_incrby(maat_inst, "SEQUENCE_REGION", 1);
|
||||||
ret = intval_table_set_line(maat_inst, table_appid, MAAT_OP_ADD, item3_id,
|
ret = interval_table_set_line(maat_inst, table_appid, MAAT_OP_ADD, item3_id,
|
||||||
group3_id, 100, 100, NULL, 0);
|
group3_id, 100, 100, NULL, 0);
|
||||||
EXPECT_EQ(ret, 1);
|
EXPECT_EQ(ret, 1);
|
||||||
|
|
||||||
@@ -7930,7 +7930,7 @@ TEST_F(MaatCmdTest, SameScanStatusWhenClauseUpdate_TSG6419) {
|
|||||||
EXPECT_EQ(ret, 1);
|
EXPECT_EQ(ret, 1);
|
||||||
|
|
||||||
long long item21_id = maat_cmd_incrby(maat_inst, "SEQUENCE_REGION", 1);
|
long long item21_id = maat_cmd_incrby(maat_inst, "SEQUENCE_REGION", 1);
|
||||||
ret = intval_table_set_line(maat_inst, app_id_table_name, MAAT_OP_ADD,
|
ret = interval_table_set_line(maat_inst, app_id_table_name, MAAT_OP_ADD,
|
||||||
item21_id, group21_id, 31, 31, NULL, 0);
|
item21_id, group21_id, 31, 31, NULL, 0);
|
||||||
EXPECT_EQ(ret, 1);
|
EXPECT_EQ(ret, 1);
|
||||||
sleep(WAIT_FOR_EFFECTIVE_S * 2);
|
sleep(WAIT_FOR_EFFECTIVE_S * 2);
|
||||||
@@ -7970,7 +7970,7 @@ TEST_F(MaatCmdTest, SameScanStatusWhenClauseUpdate_TSG6419) {
|
|||||||
EXPECT_EQ(ret, 1);
|
EXPECT_EQ(ret, 1);
|
||||||
|
|
||||||
long long item22_id = maat_cmd_incrby(maat_inst, "SEQUENCE_REGION", 1);
|
long long item22_id = maat_cmd_incrby(maat_inst, "SEQUENCE_REGION", 1);
|
||||||
ret = intval_table_set_line(maat_inst, app_id_table_name, MAAT_OP_ADD,
|
ret = interval_table_set_line(maat_inst, app_id_table_name, MAAT_OP_ADD,
|
||||||
item22_id, group22_id, 32, 32, NULL, 0);
|
item22_id, group22_id, 32, 32, NULL, 0);
|
||||||
EXPECT_EQ(ret, 1);
|
EXPECT_EQ(ret, 1);
|
||||||
|
|
||||||
@@ -8025,7 +8025,7 @@ TEST_F(MaatCmdTest, GroupEdit) {
|
|||||||
EXPECT_EQ(ret, 1);
|
EXPECT_EQ(ret, 1);
|
||||||
|
|
||||||
long long item21_id = maat_cmd_incrby(maat_inst, "SEQUENCE_REGION", 1);
|
long long item21_id = maat_cmd_incrby(maat_inst, "SEQUENCE_REGION", 1);
|
||||||
ret = intval_table_set_line(maat_inst, app_id_table_name, MAAT_OP_ADD,
|
ret = interval_table_set_line(maat_inst, app_id_table_name, MAAT_OP_ADD,
|
||||||
item21_id, group21_id, 41, 41, NULL, 0);
|
item21_id, group21_id, 41, 41, NULL, 0);
|
||||||
EXPECT_EQ(ret, 1);
|
EXPECT_EQ(ret, 1);
|
||||||
|
|
||||||
@@ -8059,7 +8059,7 @@ TEST_F(MaatCmdTest, GroupEdit) {
|
|||||||
item22 -> /
|
item22 -> /
|
||||||
*/
|
*/
|
||||||
long long item22_id = maat_cmd_incrby(maat_inst, "SEQUENCE_REGION", 1);
|
long long item22_id = maat_cmd_incrby(maat_inst, "SEQUENCE_REGION", 1);
|
||||||
ret = intval_table_set_line(maat_inst, app_id_table_name, MAAT_OP_ADD,
|
ret = interval_table_set_line(maat_inst, app_id_table_name, MAAT_OP_ADD,
|
||||||
item22_id, group21_id, scan_app_id,
|
item22_id, group21_id, scan_app_id,
|
||||||
scan_app_id, NULL, 0);
|
scan_app_id, NULL, 0);
|
||||||
EXPECT_EQ(ret, 1);
|
EXPECT_EQ(ret, 1);
|
||||||
@@ -8092,7 +8092,7 @@ TEST_F(MaatCmdTest, GroupEdit) {
|
|||||||
/* item11 -> group11 -> clause1 -> compile1
|
/* item11 -> group11 -> clause1 -> compile1
|
||||||
item21 -> group21 -> clause2 _/
|
item21 -> group21 -> clause2 _/
|
||||||
*/
|
*/
|
||||||
ret = intval_table_set_line(maat_inst, app_id_table_name, MAAT_OP_DEL,
|
ret = interval_table_set_line(maat_inst, app_id_table_name, MAAT_OP_DEL,
|
||||||
item22_id, group21_id, scan_app_id,
|
item22_id, group21_id, scan_app_id,
|
||||||
scan_app_id, NULL, 0);
|
scan_app_id, NULL, 0);
|
||||||
EXPECT_EQ(ret, 1);
|
EXPECT_EQ(ret, 1);
|
||||||
|
|||||||
@@ -173,7 +173,7 @@
|
|||||||
{
|
{
|
||||||
"table_id":13,
|
"table_id":13,
|
||||||
"table_name":"CONTENT_SIZE",
|
"table_name":"CONTENT_SIZE",
|
||||||
"table_type":"intval",
|
"table_type":"interval",
|
||||||
"valid_column":5,
|
"valid_column":5,
|
||||||
"custom": {
|
"custom": {
|
||||||
"item_id":1,
|
"item_id":1,
|
||||||
@@ -422,7 +422,7 @@
|
|||||||
{
|
{
|
||||||
"table_id":35,
|
"table_id":35,
|
||||||
"table_name":"INTERGER_PLUS",
|
"table_name":"INTERGER_PLUS",
|
||||||
"table_type":"intval_plus",
|
"table_type":"interval_plus",
|
||||||
"valid_column":6,
|
"valid_column":6,
|
||||||
"custom": {
|
"custom": {
|
||||||
"item_id":1,
|
"item_id":1,
|
||||||
@@ -447,7 +447,7 @@
|
|||||||
{
|
{
|
||||||
"table_id":37,
|
"table_id":37,
|
||||||
"table_name":"APP_ID",
|
"table_name":"APP_ID",
|
||||||
"table_type":"intval",
|
"table_type":"interval",
|
||||||
"valid_column":5,
|
"valid_column":5,
|
||||||
"custom": {
|
"custom": {
|
||||||
"item_id":1,
|
"item_id":1,
|
||||||
@@ -473,7 +473,7 @@
|
|||||||
{
|
{
|
||||||
"table_id":39,
|
"table_id":39,
|
||||||
"table_name":"EMPTY_INTERGER",
|
"table_name":"EMPTY_INTERGER",
|
||||||
"table_type":"intval",
|
"table_type":"interval",
|
||||||
"valid_column":5,
|
"valid_column":5,
|
||||||
"custom": {
|
"custom": {
|
||||||
"item_id":1,
|
"item_id":1,
|
||||||
@@ -583,7 +583,7 @@
|
|||||||
{
|
{
|
||||||
"table_id":48,
|
"table_id":48,
|
||||||
"table_name":"INTEGER_PERF_CONFIG",
|
"table_name":"INTEGER_PERF_CONFIG",
|
||||||
"table_type":"intval",
|
"table_type":"interval",
|
||||||
"valid_column":5,
|
"valid_column":5,
|
||||||
"custom": {
|
"custom": {
|
||||||
"item_id":1,
|
"item_id":1,
|
||||||
|
|||||||
@@ -68,7 +68,7 @@ int set_file_rulenum(const char *path, int rule_num)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
void read_rule_from_redis(redisContext *c, long long desire_version, const char *output_path, struct log_handle *logger)
|
void read_rule_from_redis(redisContext *c, const char *output_path, struct log_handle *logger)
|
||||||
{
|
{
|
||||||
int i = 0;
|
int i = 0;
|
||||||
int ret = 0;
|
int ret = 0;
|
||||||
@@ -83,13 +83,9 @@ void read_rule_from_redis(redisContext *c, long long desire_version, const char
|
|||||||
FILE *index_fp = NULL;
|
FILE *index_fp = NULL;
|
||||||
struct serial_rule *rule_list = NULL;
|
struct serial_rule *rule_list = NULL;
|
||||||
|
|
||||||
int rule_num = maat_get_rm_key_list(c, 0, desire_version, &version, NULL, &rule_list, &update_type, 0, logger);
|
int rule_num = maat_get_rm_key_list(c, 0, &version, NULL, &rule_list, &update_type, 0, logger);
|
||||||
if (0 == rule_num) {
|
if (0 == rule_num) {
|
||||||
if (desire_version != 0) {
|
|
||||||
printf("Read desired version %lld failed.\n", desire_version);
|
|
||||||
} else {
|
|
||||||
printf("No Effective Rules.\n");
|
printf("No Effective Rules.\n");
|
||||||
}
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -396,12 +392,12 @@ int main(int argc, char * argv[])
|
|||||||
char upload_file[128] = {0};
|
char upload_file[128] = {0};
|
||||||
char log_path[128] = "./maat_redis_tool.log";
|
char log_path[128] = "./maat_redis_tool.log";
|
||||||
int timeout = 0;
|
int timeout = 0;
|
||||||
long long desired_version = 0;
|
|
||||||
strncpy(redis_ip, "127.0.0.1", sizeof(redis_ip));
|
strncpy(redis_ip, "127.0.0.1", sizeof(redis_ip));
|
||||||
strncpy(dump_dir, redis_dump_dir, sizeof(dump_dir));
|
strncpy(dump_dir, redis_dump_dir, sizeof(dump_dir));
|
||||||
struct log_handle *logger = log_handle_create(log_path, 0);
|
struct log_handle *logger = log_handle_create(log_path, 0);
|
||||||
|
|
||||||
while ((oc = getopt(argc,argv,"h:p:n:d:v:f:j:t:u:")) != -1) {
|
while ((oc = getopt(argc,argv,"h:p:n:d:f:j:t:u:")) != -1) {
|
||||||
switch (oc) {
|
switch (oc) {
|
||||||
case 'h':
|
case 'h':
|
||||||
strncpy(redis_ip, optarg, sizeof(redis_ip));
|
strncpy(redis_ip, optarg, sizeof(redis_ip));
|
||||||
@@ -419,9 +415,6 @@ int main(int argc, char * argv[])
|
|||||||
dump_dir[strlen(dump_dir)-1] = '\0';
|
dump_dir[strlen(dump_dir)-1] = '\0';
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 'v':
|
|
||||||
sscanf(optarg, "%lld", &desired_version);
|
|
||||||
break;
|
|
||||||
case 'j':
|
case 'j':
|
||||||
strncpy(json_file, optarg, sizeof(json_file));
|
strncpy(json_file, optarg, sizeof(json_file));
|
||||||
mode = WORK_MODE_JSON;
|
mode = WORK_MODE_JSON;
|
||||||
@@ -450,7 +443,7 @@ int main(int argc, char * argv[])
|
|||||||
if (mode == WORK_MODE_DUMP) {
|
if (mode == WORK_MODE_DUMP) {
|
||||||
log_info(logger, MODULE_REDIS_TOOL, "Reading key list from %s:%d db%d.",
|
log_info(logger, MODULE_REDIS_TOOL, "Reading key list from %s:%d db%d.",
|
||||||
redis_ip, redis_port, redis_db);
|
redis_ip, redis_port, redis_db);
|
||||||
read_rule_from_redis(c, desired_version, dump_dir, logger);
|
read_rule_from_redis(c, dump_dir, logger);
|
||||||
} else if(mode == WORK_MODE_JSON) {
|
} else if(mode == WORK_MODE_JSON) {
|
||||||
char *json_buff = NULL;
|
char *json_buff = NULL;
|
||||||
size_t json_buff_sz = 0;
|
size_t json_buff_sz = 0;
|
||||||
|
|||||||
Reference in New Issue
Block a user