支持https;适应版本跳跃;增加md5校验;

This commit is contained in:
linuxrc@163.com
2021-07-19 17:21:38 +08:00
parent 26b1a08500
commit 16a47fc07f
12 changed files with 291 additions and 78 deletions

View File

@@ -22,7 +22,7 @@ struct scanner_timer_priv
struct event timer_scanner;
};
extern struct nirvana_global_info g_doris_server_info;
extern struct doris_global_info g_doris_server_info;
void doris_worker_statistic_timer_cb(int fd, short kind, void *userp)
@@ -90,6 +90,7 @@ void config_version_node_cleanup(struct confile_save *save, struct version_list_
free(vernode->metacont);
cJSON_Delete(vernode->metajson);
cJSON_Delete(vernode->arrayjson);
cJSON_Delete(vernode->table_meta);
free(vernode);
}
@@ -313,13 +314,11 @@ void doris_config_mem_version_error(struct doris_instance *instance, void *userd
void doris_config_mem_cfgfile_start(struct doris_instance *instance, const char *tablename, size_t size, u_int32_t cfgnum, void *userdata)
{
struct confile_save *save=(struct confile_save *)userdata;
cJSON *table_meta;
table_meta = cJSON_CreateObject();
cJSON_AddStringToObject(table_meta, "tablename", tablename);
cJSON_AddNumberToObject(table_meta, "cfg_num", cfgnum);
cJSON_AddNumberToObject(table_meta, "size", size);
cJSON_AddItemToArray(save->cur_vernode->arrayjson, table_meta);
save->cur_vernode->table_meta = cJSON_CreateObject();
cJSON_AddStringToObject(save->cur_vernode->table_meta, "tablename", tablename);
cJSON_AddNumberToObject(save->cur_vernode->table_meta, "cfg_num", cfgnum);
cJSON_AddNumberToObject(save->cur_vernode->table_meta, "size", size);
save->cur_table = (struct table_list_node *)calloc(1, sizeof(struct table_list_node));
snprintf(save->cur_table->tablename, 64, "%s", tablename);
@@ -374,10 +373,14 @@ void doris_config_mem_cfgfile_update(struct doris_instance *instance, const char
assert(save->cur_table->cur_totallen <= save->cur_table->filesize);
}
void doris_config_mem_cfgfile_finish(struct doris_instance *instance, void *userdata)
void doris_config_mem_cfgfile_finish(struct doris_instance *instance, const char *md5, void *userdata)
{
struct confile_save *save=(struct confile_save *)userdata;
cJSON_AddStringToObject(save->cur_vernode->table_meta, "md5", md5);
cJSON_AddItemToArray(save->cur_vernode->arrayjson, save->cur_vernode->table_meta);
save->cur_vernode->table_meta = NULL;
if(save->cur_frag != NULL)
{
TAILQ_INSERT_TAIL(&save->cur_table->frag_head, save->cur_frag, frag_node);
@@ -421,12 +424,16 @@ void doris_config_common_version_finish(struct confile_save *save)
MESA_Monitor_operation(g_doris_server_info.monitor, g_doris_server_info.mm_latest_ver, MONITOR_VALUE_SET, save->version);
MESA_Monitor_operation(g_doris_server_info.monitor, g_doris_server_info.mm_total_cfgnum, MONITOR_VALUE_SET,
save->statistic.statistic.status[DRS_FSSTAT_CONFIG_TOTAL_NUM]);
MESA_Monitor_set_status_code(g_doris_server_info.monitor, MONITOR_STATUS_OP_CLEAR, MONITOR_STATUS_VERSION_ERR, NULL, NULL);
MESA_RUNTIME_LOGV3(g_doris_server_info.log_runtime, RLOG_LV_INFO, "Version %lu update finished", save->version);
}
void doris_config_common_version_error(struct confile_save *save)
{
save->statistic.statistic.field[DRS_FSSTAT_RECV_ERR_VER] += 1;
//Grafana+Promethues<65><73>չʾ<D5B9>ڲ<EFBFBD><DAB2>쳣״̬
MESA_Monitor_set_status_code(g_doris_server_info.monitor, MONITOR_STATUS_OP_SET, MONITOR_STATUS_VERSION_ERR,
"Version receive error", "Receive config file error, please check producer");
}
@@ -485,12 +492,12 @@ void doris_config_localmem_cfgfile_update(struct doris_instance *instance, const
doris_config_mem_cfgfile_update(instance, data, len, userdata);
}
}
void doris_config_localmem_cfgfile_finish(struct doris_instance *instance, const char *md5, void *userdata)
{
doris_config_common_cfgfile_finish((struct confile_save *)userdata);
if(g_doris_server_info.server_role_sw)
{
{
doris_config_mem_cfgfile_finish(instance, md5, userdata);
}
}
@@ -559,7 +566,7 @@ void doris_config_cfgfile_update(struct doris_instance *instance, const char *da
doris_config_mem_cfgfile_update(instance, data, len, userdata);
}
}
void doris_config_cfgfile_finish(struct doris_instance *instance, const char *md5, void *userdata)
{
doris_config_common_cfgfile_finish((struct confile_save *)userdata);
@@ -568,7 +575,7 @@ void doris_config_cfgfile_finish(struct doris_instance *instance, void *userdata
doris_config_file_cfgfile_finish(instance, userdata);
}
if(g_doris_server_info.server_role_sw)
{
{
doris_config_mem_cfgfile_finish(instance, md5, userdata);
}
}