Начат исправлять баги связанные с удалением дисков и квот

pull/24/head
Igor Belitskiy 2 years ago
parent 3b59ff2099
commit e7bb184b34

@ -256,10 +256,11 @@ void device_remove() {
if (index!=-1) {
index_selected = -1;
disk_status* _config = (disk_status*)all_config.v_disk_status.pfVectorGet(&all_config.v_disk_status, index);
all_config.v_disk_remove.pfVectorAdd(&all_config.v_disk_status, yon_char_new(_config->device));
del_disk_to_vector_device(&all_config.v_user, _config->device);
del_disk_to_vector_device(&all_config.v_group, _config->device);
del_disk_to_vector_device(&all_config.v_general, _config->device);
model_clear_cfg_device(_config);
//model_clear_cfg_device(_config);
all_config.v_disk_status.pfVectorDelete(&all_config.v_disk_status, index);
all_config.flag_save = 1;
}

@ -10,11 +10,13 @@ void load_template_load_cfg(config_all* _all_config, char* cmd) {
load_free_vector(_all_config, &_all_config->v_group);
load_free_vector(_all_config, &_all_config->v_project);
free_remove_vector(_all_config, &_all_config->v_remove);
model_free_vector_string(&_all_config->v_disk_remove);
vector_init(&_all_config->v_user);
vector_init(&_all_config->v_group);
vector_init(&_all_config->v_project);
vector_init(&_all_config->v_disk_status);
vector_init(&_all_config->v_remove);
vector_init(&_all_config->v_disk_remove);
for (int index = 0; index < size; index++) {
char* str_key_value = yon_char_new(cfg[index]);
char* str_key = yon_char_divide_search(str_key_value, "=",-1);

@ -35,6 +35,7 @@ typedef struct {
vector v_group;
vector v_project;
vector v_disk_status;
vector v_disk_remove;
vector v_remove;
int flag_set_data;
int flag_save;

@ -108,10 +108,10 @@ char* template_format_remove_save(config_all* _all_config, char* source_remove_c
}
char* template_format_remove_save_device(config_all* _all_config, char* source_remove_cmd) {
if (_all_config->v_disk_status.vectorList.total > 0) {
char* cmd = NULL;
for (int i=0; i < _all_config->v_disk_status.vectorList.total; i++) {
disk_status* _config = (disk_status*)_all_config->v_disk_status.pfVectorGet(&_all_config->v_disk_status, i);
char* cmd = NULL;
if (_all_config->v_disk_remove.vectorList.total > 0) {
for (int i=0; i < _all_config->v_disk_remove.vectorList.total; i++) {
disk_status* _config = (disk_status*)_all_config->v_disk_remove.pfVectorGet(&_all_config->v_disk_remove, i);
if (_config->status == 0) {
cmd = yon_char_unite(cmd, " DISK_QUOTA[usrquota:" , _config->device, "] ", NULL);
cmd = yon_char_unite(cmd, " DISK_QUOTA[grpquota:" , _config->device, "] ", NULL);
@ -119,7 +119,7 @@ char* template_format_remove_save_device(config_all* _all_config, char* source_r
}
}
}
return NULL;
return cmd;
}
@ -134,12 +134,13 @@ int wrapper_template_save(config_all* _all_config, char* source_set_cmd, char* s
if (str_cmd_remove != NULL) {
philos_config_save(str_cmd_remove);
}
if (str_cmd_set != NULL) {
philos_config_save(str_cmd_set);
}
if (str_cmd_remove_device != NULL) {
philos_config_save(yon_char_unite(source_remove_cmd, " " , str_cmd_remove_device, NULL));
}
if (str_cmd_set != NULL) {
philos_config_save(str_cmd_set);
}
}
if (str_cmd_remove != NULL) {

Loading…
Cancel
Save