mirror of https://git.48k.eu/ogserver
src: remove placeholder image in failed image/create
Delete image data after a failed image creation.master v1.2.5-21
parent
d6d15a753e
commit
ca3503b716
44
src/client.c
44
src/client.c
|
@ -1274,8 +1274,49 @@ static int og_agent_http_response_code(const char *buf)
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int og_clear_image_placeholder()
|
||||||
|
{
|
||||||
|
uint32_t image_id = 0;
|
||||||
|
struct og_dbi *dbi;
|
||||||
|
dbi_result result;
|
||||||
|
|
||||||
|
dbi = og_dbi_open(&ogconfig.db);
|
||||||
|
if (!dbi) {
|
||||||
|
syslog(LOG_ERR, "cannot open connection database (%s:%d)\n",
|
||||||
|
__func__, __LINE__);
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
result = dbi_conn_queryf(dbi->conn,
|
||||||
|
"SELECT idimagen FROM imagenes WHERE fechacreacion IS NULL");
|
||||||
|
if (!result) {
|
||||||
|
syslog(LOG_ERR, "failed to query database\n");
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!dbi_result_next_row(result)) {
|
||||||
|
dbi_result_free(result);
|
||||||
|
og_dbi_close(dbi);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
image_id = dbi_result_get_uint(result, "idimagen");
|
||||||
|
dbi_result_free(result);
|
||||||
|
|
||||||
|
syslog(LOG_INFO, "Trying to delete uninitialized image with id %d\n", image_id);
|
||||||
|
|
||||||
|
if (og_dbi_delete_image(dbi, image_id) < 0) {
|
||||||
|
og_dbi_close(dbi);
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
og_dbi_close(dbi);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
int og_agent_state_process_response(struct og_client *cli)
|
int og_agent_state_process_response(struct og_client *cli)
|
||||||
{
|
{
|
||||||
|
enum og_cmd_type cmd_type = cli->last_cmd;
|
||||||
int ret, err = -1, code;
|
int ret, err = -1, code;
|
||||||
json_error_t json_err;
|
json_error_t json_err;
|
||||||
bool success;
|
bool success;
|
||||||
|
@ -1326,6 +1367,9 @@ int og_agent_state_process_response(struct og_client *cli)
|
||||||
else
|
else
|
||||||
cli->last_cmd_result = OG_FAILURE;
|
cli->last_cmd_result = OG_FAILURE;
|
||||||
|
|
||||||
|
if (!success && cmd_type == OG_CMD_IMAGE_CREATE)
|
||||||
|
og_clear_image_placeholder();
|
||||||
|
|
||||||
if (code != 200 && code != 103) {
|
if (code != 200 && code != 103) {
|
||||||
cli->last_cmd_id = 0;
|
cli->last_cmd_id = 0;
|
||||||
return ret;
|
return ret;
|
||||||
|
|
Loading…
Reference in New Issue