#915 Extend GET /images function with the repository IP

This extension adds the field 'repo_ip', indicating which repository has
the image. This new field is useful when restoring an image.

Request:
GET /images

Response:
200 OK
{
  "disk": {
    "free": 37091418112,
    "total": 52573995008
  },
  "images": [
    {
      "datasize": 5939200000,
      "id": 25,
      "modified": "Wed Oct 14 11:49:00 2020",
      "name": "archlinux",
      "permissions": "744",
      "size": 1844222333,
      "software_id": 19,
      "type": 1
      "repo_ip": "192.168.56.10"
    }
  ]
}
master
Javier Sánchez Parra 2022-05-19 17:18:52 +02:00
parent d5e6dc0990
commit b86b6e1443
2 changed files with 9 additions and 2 deletions

View File

@ -53,6 +53,7 @@ struct og_image_legacy {
struct og_image {
char name[OG_DB_IMAGE_NAME_MAXLEN + 1];
char description[OG_DB_IMAGE_DESCRIPTION_MAXLEN + 1];
char repo_ip[OG_DB_IP_MAXLEN + 1];
uint64_t software_id;
uint64_t center_id;
uint64_t datasize;

View File

@ -2008,6 +2008,8 @@ static json_t *og_json_image_alloc(struct og_image *image)
json_integer(image->type));
json_object_set_new(image_json, "id",
json_integer(image->id));
json_object_set_new(image_json, "repo_ip",
json_string(image->repo_ip));
return image_json;
}
@ -2047,10 +2049,12 @@ static int og_cmd_images(char *buffer_reply)
" i.clonator, i.compressor, "
" i.filesystem, i.datasize, "
" i.idperfilsoft, i.tipo, "
" i.idimagen "
" i.idimagen, r.ip "
"FROM imagenes i "
"LEFT JOIN ordenadores o "
"ON i.idordenador = o.idordenador");
"ON i.idordenador = o.idordenador "
"JOIN repositorios r "
"ON i.idrepositorio = r.idrepositorio");
while (dbi_result_next_row(result)) {
image = (struct og_image){0};
@ -2058,6 +2062,8 @@ static int og_cmd_images(char *buffer_reply)
image.software_id = dbi_result_get_ulonglong(result, "idperfilsoft");
image.type = dbi_result_get_ulonglong(result, "tipo");
image.id = dbi_result_get_ulonglong(result, "idimagen");
snprintf(image.repo_ip, sizeof(image.repo_ip), "%s",
dbi_result_get_string(result, "ip"));
snprintf(image.name, sizeof(image.name), "%s",
dbi_result_get_string(result, "nombreca"));