diff --git a/src/cmd/isulad/arguments.h b/src/cmd/isulad/arguments.h index bb59c507218cc8d51ac4bd06e70bbfad7645a1b1..7238a4f94f8729223ac799c621f5cfc62e3d4234 100644 --- a/src/cmd/isulad/arguments.h +++ b/src/cmd/isulad/arguments.h @@ -21,10 +21,6 @@ #include "isula_libutils/oci_runtime_hooks.h" #include "commander.h" -#ifdef ENABLE_OCI_IMAGE -#include "driver.h" -#endif - typedef void(*service_arguments_help_t)(void); struct service_arguments { diff --git a/src/image/external/ext_image.c b/src/image/external/ext_image.c index 142363d6120f4b82dfe476054bdebc1e6c257c4a..7a8c99366f5ff52ad3f030dc676de4b55eda5aa5 100644 --- a/src/image/external/ext_image.c +++ b/src/image/external/ext_image.c @@ -25,6 +25,7 @@ #include "utils.h" #include "specs_extend.h" #include "ext_image.h" +#include "storage.h" #ifdef ENABLE_OCI_IMAGE #include "oci_common_operators.h" diff --git a/src/image/image.c b/src/image/image.c index 98b7f5a9244858fc39e1fbe080d9890287f0b035..872315cf5984671c5afa050545fd7f5a71370b51 100644 --- a/src/image/image.c +++ b/src/image/image.c @@ -29,6 +29,8 @@ #include "ext_image.h" #include "filters.h" #include "collector.h" +#include "driver.h" +#include "storage.h" #ifdef ENABLE_OCI_IMAGE #include "oci_image.h" @@ -1882,3 +1884,28 @@ void free_im_fs_info_response(im_fs_info_response *ptr) free(ptr); } + +container_inspect_graph_driver *im_graphdriver_get_metadata(const char *id) +{ + if (id == NULL) { + ERROR("Invalid input arguments for get driver metadata of container:%s", id); + return NULL; + } + + return graphdriver_get_metadata(id); +} + +struct graphdriver_status *im_graphdriver_get_status(void) +{ + return graphdriver_get_status(); +} + +bool im_storage_image_exist(const char *image_or_id) +{ + return storage_image_exist(image_or_id); +} + +void im_free_graphdriver_status(struct graphdriver_status *status) +{ + free_graphdriver_status(status); +} \ No newline at end of file diff --git a/src/image/image.h b/src/image/image.h index 07df3f85a2d588a58bef90420ee616a50950d410..f858f29f71b83800e1df105bd7504c3fd8b1cd29 100644 --- a/src/image/image.h +++ b/src/image/image.h @@ -25,6 +25,7 @@ #include "isula_libutils/container_config.h" #include "libisulad.h" #include "arguments.h" +#include "container_inspect.h" #ifdef ENABLE_OCI_IMAGE #include "oci_image_type.h" @@ -204,6 +205,12 @@ typedef struct { char *name_id; } im_container_fs_usage_request; +struct graphdriver_status { + char *driver_name; + char *backing_fs; + char *status; +}; + struct bim_ops { int (*init)(const struct service_arguments *args); void (*clean_resource)(void); @@ -388,6 +395,14 @@ void free_im_export_request(im_export_request *ptr); int im_resolv_image_name(const char *image_type, const char *image_name, char **resolved_name); +container_inspect_graph_driver *im_graphdriver_get_metadata(const char *id); + +struct graphdriver_status *im_graphdriver_get_status(void); + +void im_free_graphdriver_status(struct graphdriver_status *status); + +bool im_storage_image_exist(const char *image_or_id); + #ifdef __cplusplus } #endif diff --git a/src/image/oci/oci_common_operators.c b/src/image/oci/oci_common_operators.c index 2122c2c47f7b33fcb107a7841d4bfbaaba27174c..aff2128884d9f1b9d198616ff85264598d606e48 100644 --- a/src/image/oci/oci_common_operators.c +++ b/src/image/oci/oci_common_operators.c @@ -27,6 +27,7 @@ #include "oci_config_merge.h" #include "filters.h" +#include "storage.h" bool oci_detect(const char *image_name) { diff --git a/src/image/oci/oci_image.c b/src/image/oci/oci_image.c index 8ee875e053043ece704b51f7d8f7b0470c2b5c2a..d69fe6580a32ca0b600181354e01ef544c9b0ccf 100644 --- a/src/image/oci/oci_image.c +++ b/src/image/oci/oci_image.c @@ -28,6 +28,7 @@ #include "isulad_config.h" #include "utils.h" +#include "storage.h" #define IMAGE_NOT_KNOWN_ERR "image not known" diff --git a/src/image/oci/oci_pull.c b/src/image/oci/oci_pull.c index cbaea58441f066f1197730688d49d500e0aebac2..ec08ebee551de65a32d5cc202b270d8152959497 100644 --- a/src/image/oci/oci_pull.c +++ b/src/image/oci/oci_pull.c @@ -19,6 +19,7 @@ #include "oci_common_operators.h" #include "registry.h" #include "isulad_config.h" +#include "storage.h" static int decode_auth(char *auth, char **username, char **password) { diff --git a/src/image/oci/registry/registry.c b/src/image/oci/registry/registry.c index 10dfc48bbc2e93380d980edf6db17b251235f77f..9d0f9184faf23ef6e9028d64371d49ecabcab694 100644 --- a/src/image/oci/registry/registry.c +++ b/src/image/oci/registry/registry.c @@ -38,6 +38,8 @@ #include "linked_list.h" #include "pthread.h" #include "isulad_config.h" +#include "storage.h" +#include "constants.h" #define MAX_LAYER_NUM 125 #define MANIFEST_BIG_DATA_KEY "manifest" diff --git a/src/image/oci/storage/layer_store/graphdriver/driver.c b/src/image/oci/storage/layer_store/graphdriver/driver.c index 729aa2e6e001a4134f799bb58a679f89a110f0b5..5ba855ac577c6460951735987ddfe3d419a2c445 100644 --- a/src/image/oci/storage/layer_store/graphdriver/driver.c +++ b/src/image/oci/storage/layer_store/graphdriver/driver.c @@ -208,21 +208,6 @@ int graphdriver_apply_diff(const char *id, const struct io_read_wrapper *content return g_graphdriver->ops->apply_diff(id, g_graphdriver, content, layer_size); } -int graphdriver_get_layer_metadata(const char *id, json_map_string_string *map_info) -{ - if (g_graphdriver == NULL) { - ERROR("Driver not inited yet"); - return -1; - } - - if (id == NULL || map_info == NULL) { - ERROR("Invalid input arguments for driver umount layer"); - return -1; - } - - return g_graphdriver->ops->get_layer_metadata(id, g_graphdriver, map_info); -} - container_inspect_graph_driver *graphdriver_get_metadata(const char *id) { int ret = -1; diff --git a/src/image/oci/storage/layer_store/graphdriver/driver.h b/src/image/oci/storage/layer_store/graphdriver/driver.h index 66f82977f58b7f01360b47eeadf33185055723cd..787933df20cd39abe042e38c55e48e884a1119ec 100644 --- a/src/image/oci/storage/layer_store/graphdriver/driver.h +++ b/src/image/oci/storage/layer_store/graphdriver/driver.h @@ -23,6 +23,7 @@ #include "console.h" #include "driver_overlay2_types.h" #include "storage.h" +#include "image.h" #include "container_inspect.h" #ifdef __cplusplus @@ -42,12 +43,6 @@ struct driver_mount_opts { size_t options_len; }; -struct graphdriver_status { - char *driver_name; - char *backing_fs; - char *status; -}; - struct graphdriver_ops { int (*init)(struct graphdriver *driver, const char *drvier_home, const char **options, size_t len); @@ -109,8 +104,6 @@ bool graphdriver_layer_exists(const char *id); int graphdriver_apply_diff(const char *id, const struct io_read_wrapper *content, int64_t *layer_size); -int graphdriver_get_layer_metadata(const char *id, json_map_string_string *map_info); - struct graphdriver_status *graphdriver_get_status(void); void free_graphdriver_status(struct graphdriver_status *status); diff --git a/src/services/execution/execute/execution_information.c b/src/services/execution/execute/execution_information.c index 3586bb8572a60acf56d4462129426396fddcbccf..4f6ba5908a97816141a9fb552465d6cb50bb6ca1 100644 --- a/src/services/execution/execute/execution_information.c +++ b/src/services/execution/execute/execution_information.c @@ -44,7 +44,6 @@ #include "utils.h" #include "error.h" #include "collector.h" -#include "driver.h" static int container_version_cb(const container_version_request *request, container_version_response **response) { @@ -233,7 +232,7 @@ static int isulad_info_cb(const host_info_request *request, host_info_response * } #ifdef ENABLE_OCI_IMAGE im_request->type = util_strdup_s(IMAGE_TYPE_OCI); - driver_status = graphdriver_get_status(); + driver_status = im_graphdriver_get_status(); if (driver_status == NULL) { ERROR("Failed to get graph driver status info!"); cc = ISULAD_ERR_EXEC; @@ -331,7 +330,7 @@ pack_response: free(rootpath); #ifdef ENABLE_OCI_IMAGE free(graph_driver); - free_graphdriver_status(driver_status); + im_free_graphdriver_status(driver_status); #endif free(huge_page_size); free(operating_system); @@ -1338,7 +1337,7 @@ static int pack_inspect_data(const container_t *cont, container_inspect **out_in #ifdef ENABLE_OCI_IMAGE if (!strcmp(cont->common_config->image_type, IMAGE_TYPE_OCI)) { - inspect->graph_driver = graphdriver_get_metadata(cont->common_config->id); + inspect->graph_driver = im_graphdriver_get_metadata(cont->common_config->id); if (inspect->graph_driver == NULL) { ret = -1; goto out; diff --git a/src/services/execution/manager/restore.c b/src/services/execution/manager/restore.c index 5fb6b9618b617fd02deb9a35c1ec1ad1c8a1beb6..12ea369286be6a2e9759d022a401bdff88bcd4f7 100644 --- a/src/services/execution/manager/restore.c +++ b/src/services/execution/manager/restore.c @@ -156,7 +156,7 @@ static int check_container_image_exist(const container_t *cont) goto out; } - if (!storage_image_exist(tmp)) { + if (!im_storage_image_exist(tmp)) { WARN("Image %s not exist", tmp); ret = -1; goto out; diff --git a/src/services/execution/spec/verify.c b/src/services/execution/spec/verify.c index d5c72047adbc74c3f1b9345611711f4b31f52e1a..f6f3a281389cfa097321929a4e2a6d8e4febeebe 100644 --- a/src/services/execution/spec/verify.c +++ b/src/services/execution/spec/verify.c @@ -34,6 +34,7 @@ #include "verify.h" #include "isulad_config.h" #include "selinux_label.h" +#include "image.h" /* verify hook timeout */ static int verify_hook_timeout(int t) @@ -838,7 +839,7 @@ static int verify_storage_opts(const host_config *hc) storage_opts = hc->storage_opt; } - driver_status = graphdriver_get_status(); + driver_status = im_graphdriver_get_status(); if (driver_status == NULL) { ERROR("Failed to get graph driver status info!"); ret = -1; @@ -861,7 +862,7 @@ static int verify_storage_opts(const host_config *hc) } cleanup: - free_graphdriver_status(driver_status); + im_free_graphdriver_status(driver_status); return ret; } #endif diff --git a/src/services/image/image_cb.c b/src/services/image/image_cb.c index 249e1a40814d343ad91751cbfd715f5bf50df384..b794cb108b11265804b4bf9e44f7cdcf3d61d8ab 100644 --- a/src/services/image/image_cb.c +++ b/src/services/image/image_cb.c @@ -760,7 +760,7 @@ static bool is_valid_image(const char *val) ret = false; goto out; } - if (!storage_image_exist(resolved_name)) { + if (!im_storage_image_exist(resolved_name)) { ERROR("No such image: %s", val); ret = false; goto out;