Skip to content

Commit

Permalink
!2546 registry module code improve
Browse files Browse the repository at this point in the history
From: @taotao-sauce 
Reviewed-by: @xuxuepeng 
Signed-off-by: @xuxuepeng
  • Loading branch information
openeuler-ci-bot authored and gitee-org committed Dec 16, 2024
2 parents 58229de + 4f030e0 commit 9fc314e
Show file tree
Hide file tree
Showing 5 changed files with 72 additions and 107 deletions.
2 changes: 1 addition & 1 deletion src/daemon/modules/image/oci/oci_pull.c
Original file line number Diff line number Diff line change
Expand Up @@ -105,7 +105,7 @@ static int pull_image(const im_pull_request *request, progress_status_map *progr
options = (registry_pull_options *)util_common_calloc_s(sizeof(registry_pull_options));
if (options == NULL) {
ERROR("Out of memory");
goto out;
return ret;
}

if (request->auth != NULL) {
Expand Down
30 changes: 9 additions & 21 deletions src/daemon/modules/image/oci/registry/http_request.c
Original file line number Diff line number Diff line change
Expand Up @@ -16,9 +16,6 @@
#define _GNU_SOURCE /* See feature_test_macros(7) */
#include "http_request.h"
#include <curl/curl.h>
#include <isula_libutils/json_common.h>
#include <isula_libutils/log.h>
#include <isula_libutils/registry_token.h>
#include <pthread.h>
#include <stdbool.h>
#include <stdio.h>
Expand All @@ -27,6 +24,10 @@
#include <strings.h>
#include <time.h>

#include <isula_libutils/json_common.h>
#include <isula_libutils/log.h>
#include <isula_libutils/registry_token.h>

#include "buffer.h"
#include "certs.h"
#include "err_msg.h"
Expand Down Expand Up @@ -128,7 +129,6 @@ static int setup_ssl_config(pull_descriptor *desc, struct http_get_options *opti
options->ssl_verify_host = !desc->skip_tls_verify;

out:

free(host);
host = NULL;

Expand Down Expand Up @@ -437,31 +437,25 @@ static int setup_common_options(pull_descriptor *desc, struct http_get_options *
if (ret != 0) {
ERROR("Failed setup ssl config");
isulad_try_set_error_message("setup ssl config failed");
ret = -1;
goto out;
return -1;
}

if (custom_headers != NULL) {
options->custom_headers = util_str_array_dup(custom_headers, util_array_len(custom_headers));
if (options->custom_headers == NULL) {
ERROR("dup headers failed");
ret = -1;
goto out;
return -1;
}
}

ret = setup_auth_challenges(desc, &options->custom_headers);
if (ret != 0) {
ERROR("setup auth challenges failed");
isulad_try_set_error_message("setup auth challenges failed");
ret = -1;
goto out;
return -1;
}

options->debug = false;

out:

return ret;
}

Expand All @@ -478,21 +472,16 @@ static int setup_get_token_options(pull_descriptor *desc, struct http_get_option
ret = setup_ssl_config(desc, options, url);
if (ret != 0) {
ERROR("Failed setup ssl config");
ret = -1;
goto out;
return -1;
}

ret = setup_auth_basic(desc, &options->custom_headers);
if (ret != 0) {
ERROR("dup headers failed");
ret = -1;
goto out;
return -1;
}

options->debug = false;

out:

return ret;
}

Expand Down Expand Up @@ -526,7 +515,6 @@ static int http_request_buf_options(pull_descriptor *desc, struct http_get_optio

*output = util_strdup_s(output_buffer->contents);
out:

buffer_free(output_buffer);

return ret;
Expand Down
74 changes: 37 additions & 37 deletions src/daemon/modules/image/oci/registry/registry.c
Original file line number Diff line number Diff line change
Expand Up @@ -20,13 +20,21 @@
#include <string.h>
#include <limits.h>
#include <errno.h>
#include <pthread.h>
#include <stdlib.h>

#include <isula_libutils/docker_image_rootfs.h>
#include <isula_libutils/json_common.h>
#include <isula_libutils/oci_image_content_descriptor.h>
#include <isula_libutils/oci_image_manifest.h>
#include <isula_libutils/oci_image_spec.h>
#include <pthread.h>
#include <stdlib.h>
#include <isula_libutils/registry_manifest_schema2.h>
#include <isula_libutils/registry_manifest_schema1.h>
#include <isula_libutils/docker_image_config_v2.h>
#include <isula_libutils/image_manifest_v1_compatibility.h>
#ifdef ENABLE_IMAGE_SEARCH
#include <isula_libutils/image_search_image.h>
#endif

#include "mediatype.h"
#include "isula_libutils/log.h"
Expand All @@ -35,13 +43,6 @@
#include "registry_apiv1.h"
#include "certs.h"
#include "auths.h"
#include "isula_libutils/registry_manifest_schema2.h"
#include "isula_libutils/registry_manifest_schema1.h"
#include "isula_libutils/docker_image_config_v2.h"
#include "isula_libutils/image_manifest_v1_compatibility.h"
#ifdef ENABLE_IMAGE_SEARCH
#include "isula_libutils/image_search_image.h"
#endif
#include "sha256.h"
#include "map.h"
#include "linked_list.h"
Expand Down Expand Up @@ -536,7 +537,6 @@ static char *calc_chain_id(char *parent_chain_id, char *diff_id)
full_digest = util_full_digest(digest);

out:

free(digest);
digest = NULL;

Expand Down Expand Up @@ -797,7 +797,6 @@ static int set_config(pull_descriptor *desc, char *image_id)
}

out:

free(config_str);
config_str = NULL;

Expand All @@ -812,17 +811,15 @@ static int set_loaded_time(pull_descriptor *desc, char *image_id)
if (!util_get_now_time_stamp(&now)) {
ret = -1;
ERROR("get now time stamp failed");
goto out;
return ret;
}

ret = storage_img_set_loaded_time(image_id, &now);
if (ret != 0) {
ERROR("set loaded time failed");
goto out;
return ret;
}

out:

return ret;
}

Expand Down Expand Up @@ -984,7 +981,6 @@ static int parse_docker_config(pull_descriptor *desc)
desc->config.create_time = util_to_timestamp_from_str(config->created);

out:

free_docker_image_config_v2(config);
config = NULL;
free(err);
Expand Down Expand Up @@ -1084,17 +1080,15 @@ static int fetch_and_parse_config(pull_descriptor *desc)
ret = fetch_config(desc);
if (ret != 0) {
ERROR("fetch config failed");
goto out;
return ret;
}

ret = parse_config(desc);
if (ret != 0) {
ERROR("parse config failed");
goto out;
return ret;
}

out:

return ret;
}

Expand All @@ -1110,17 +1104,15 @@ static int fetch_and_parse_manifest(pull_descriptor *desc)
ret = fetch_manifest(desc);
if (ret != 0) {
ERROR("fetch manifest failed");
goto out;
return ret;
}

ret = parse_manifest(desc);
if (ret != 0) {
ERROR("parse manifest failed");
goto out;
return ret;
}

out:

return ret;
}

Expand Down Expand Up @@ -2116,6 +2108,26 @@ static void cached_layers_kvfree(void *key, void *value)
return;
}

static void free_registry_global(registry_global *registry)
{
if (registry == NULL) {
return;
}

if (registry->cond_inited) {
pthread_cond_destroy(&registry->cond);
}
if (registry->mutex_inited) {
pthread_mutex_destroy(&registry->mutex);
}
if (registry->image_mutex_inited) {
pthread_mutex_destroy(&registry->image_mutex);
}
map_free(registry->cached_layers);
registry->cached_layers = NULL;
free(registry);
}

int registry_init(char *auths_dir, char *certs_dir)
{
int ret = 0;
Expand Down Expand Up @@ -2160,18 +2172,7 @@ int registry_init(char *auths_dir, char *certs_dir)
out:

if (ret != 0) {
if (g_shared->cond_inited) {
pthread_cond_destroy(&g_shared->cond);
}
if (g_shared->mutex_inited) {
pthread_mutex_destroy(&g_shared->mutex);
}
if (g_shared->image_mutex_inited) {
pthread_mutex_destroy(&g_shared->image_mutex);
}
map_free(g_shared->cached_layers);
g_shared->cached_layers = NULL;
free(g_shared);
free_registry_global(g_shared);
g_shared = NULL;
}

Expand Down Expand Up @@ -2221,7 +2222,6 @@ int registry_login(registry_login_options *options)
}

out:

free_pull_desc(desc);
desc = NULL;

Expand Down
11 changes: 6 additions & 5 deletions src/daemon/modules/image/oci/registry/registry_apiv1.c
Original file line number Diff line number Diff line change
Expand Up @@ -18,22 +18,23 @@
#include <stdio.h>
#include <string.h>
#include <limits.h>
#include <isula_libutils/http_parser.h>
#include <isula_libutils/json_common.h>
#include <stdbool.h>
#include <stdlib.h>
#include <strings.h>

#include <isula_libutils/http_parser.h>
#include <isula_libutils/json_common.h>
#include <isula_libutils/oci_image_index.h>
#include <isula_libutils/registry_manifest_list.h>
#include <isula_libutils/imagetool_search_result.h>

#include "registry_type.h"
#include "isula_libutils/log.h"
#include "http.h"
#include "http_request.h"
#include "utils.h"
#include "parser.h"
#include "mediatype.h"
#include "isula_libutils/oci_image_index.h"
#include "isula_libutils/registry_manifest_list.h"
#include "isula_libutils/imagetool_search_result.h"
#include "auths.h"
#include "err_msg.h"
#include "sha256.h"
Expand Down
Loading

0 comments on commit 9fc314e

Please sign in to comment.