224 lines
9.2 KiB
Diff
224 lines
9.2 KiB
Diff
From 0c0bc7a873cb5377aa0d5587c28d711a09f00811 Mon Sep 17 00:00:00 2001
|
|
From: zhongtao <zhongtao17@huawei.com>
|
|
Date: Wed, 30 Aug 2023 09:56:29 +0000
|
|
Subject: [PATCH 22/33] !2159 use macros to isolate the password option of
|
|
login and the plugin module * use macros to isolate the password option of
|
|
login and the plugin module
|
|
|
|
---
|
|
cmake/options.cmake | 14 ++++++++++
|
|
src/cmd/isula/images/login.h | 28 +++++++++++++------
|
|
src/cmd/isulad/main.c | 2 ++
|
|
.../executor/container_cb/execution_create.c | 2 ++
|
|
src/daemon/modules/CMakeLists.txt | 13 +++++++--
|
|
src/daemon/modules/api/CMakeLists.txt | 3 ++
|
|
.../container/container_events_handler.c | 2 ++
|
|
.../modules/service/service_container.c | 4 +++
|
|
8 files changed, 57 insertions(+), 11 deletions(-)
|
|
|
|
diff --git a/cmake/options.cmake b/cmake/options.cmake
|
|
index 5fc5c221..e733fd1c 100644
|
|
--- a/cmake/options.cmake
|
|
+++ b/cmake/options.cmake
|
|
@@ -138,6 +138,20 @@ if (ENABLE_NATIVE_NETWORK OR ENABLE_GRPC)
|
|
set(ENABLE_NETWORK 1)
|
|
endif()
|
|
|
|
+option(ENABLE_PLUGIN "enable plugin module" OFF)
|
|
+if (ENABLE_PLUGIN STREQUAL "ON")
|
|
+ add_definitions(-DENABLE_PLUGIN=1)
|
|
+ set(ENABLE_PLUGIN 1)
|
|
+ message("${Green}-- Enable plugin module${ColourReset}")
|
|
+endif()
|
|
+
|
|
+option(ENABLE_LOGIN_PASSWORD_OPTION "enable login password option" ON)
|
|
+if (ENABLE_LOGIN_PASSWORD_OPTION STREQUAL "ON")
|
|
+ add_definitions(-DENABLE_LOGIN_PASSWORD_OPTION=1)
|
|
+ set(ENABLE_LOGIN_PASSWORD_OPTION 1)
|
|
+ message("${Green}-- Enable login password option${ColourReset}")
|
|
+endif()
|
|
+
|
|
option(EANBLE_IMAGE_LIBARAY "create libisulad_image.so" ON)
|
|
if (EANBLE_IMAGE_LIBARAY STREQUAL "ON")
|
|
add_definitions(-DEANBLE_IMAGE_LIBARAY)
|
|
diff --git a/src/cmd/isula/images/login.h b/src/cmd/isula/images/login.h
|
|
index 5f9a676c..38829cba 100644
|
|
--- a/src/cmd/isula/images/login.h
|
|
+++ b/src/cmd/isula/images/login.h
|
|
@@ -24,16 +24,28 @@
|
|
extern "C" {
|
|
#endif
|
|
|
|
+#ifdef ENABLE_LOGIN_PASSWORD_OPTION
|
|
#define LOGIN_OPTIONS(cmdargs) \
|
|
- { CMD_OPT_TYPE_STRING_DUP, false, "username", 'u', &(cmdargs).username, "Username", NULL }, \
|
|
- { CMD_OPT_TYPE_STRING_DUP, false, "password", 'p', &(cmdargs).password, "Password", NULL }, \
|
|
- { CMD_OPT_TYPE_BOOL, \
|
|
- false, \
|
|
- "password-stdin", \
|
|
- 0, \
|
|
- &(cmdargs).password_stdin, \
|
|
- "Take the password from stdin", \
|
|
+ { CMD_OPT_TYPE_STRING_DUP, false, "username", 'u', &(cmdargs).username, "Username", NULL }, \
|
|
+ { CMD_OPT_TYPE_STRING_DUP, false, "password", 'p', &(cmdargs).password, "Password", NULL }, \
|
|
+ { CMD_OPT_TYPE_BOOL, \
|
|
+ false, \
|
|
+ "password-stdin", \
|
|
+ 0, \
|
|
+ &(cmdargs).password_stdin, \
|
|
+ "Take the password from stdin", \
|
|
NULL },
|
|
+#else
|
|
+#define LOGIN_OPTIONS(cmdargs) \
|
|
+ { CMD_OPT_TYPE_STRING_DUP, false, "username", 'u', &(cmdargs).username, "Username", NULL }, \
|
|
+ { CMD_OPT_TYPE_BOOL, \
|
|
+ false, \
|
|
+ "password-stdin", \
|
|
+ 0, \
|
|
+ &(cmdargs).password_stdin, \
|
|
+ "Take the password from stdin", \
|
|
+ NULL },
|
|
+#endif
|
|
|
|
extern const char g_cmd_login_desc[];
|
|
extern const char g_cmd_login_usage[];
|
|
diff --git a/src/cmd/isulad/main.c b/src/cmd/isulad/main.c
|
|
index 8369f9e2..4740f91a 100644
|
|
--- a/src/cmd/isulad/main.c
|
|
+++ b/src/cmd/isulad/main.c
|
|
@@ -1685,10 +1685,12 @@ int main(int argc, char **argv)
|
|
goto failure;
|
|
}
|
|
|
|
+#ifdef ENABLE_PLUGIN
|
|
if (start_plugin_manager()) {
|
|
ERROR("Failed to init plugin_manager");
|
|
goto failure;
|
|
}
|
|
+#endif
|
|
|
|
clock_gettime(CLOCK_MONOTONIC, &t_end);
|
|
use_time = (double)(t_end.tv_sec - t_start.tv_sec) * (double)1000000000 + (double)(t_end.tv_nsec - t_start.tv_nsec);
|
|
diff --git a/src/daemon/executor/container_cb/execution_create.c b/src/daemon/executor/container_cb/execution_create.c
|
|
index 9c097121..377aa1aa 100644
|
|
--- a/src/daemon/executor/container_cb/execution_create.c
|
|
+++ b/src/daemon/executor/container_cb/execution_create.c
|
|
@@ -1499,6 +1499,7 @@ int container_create_cb(const container_create_request *request, container_creat
|
|
goto clean_netns;
|
|
}
|
|
|
|
+#ifdef ENABLE_PLUGIN
|
|
/* modify oci_spec by plugin. */
|
|
if (plugin_event_container_pre_create(id, oci_spec) != 0) {
|
|
ERROR("Plugin event pre create failed");
|
|
@@ -1506,6 +1507,7 @@ int container_create_cb(const container_create_request *request, container_creat
|
|
cc = ISULAD_ERR_EXEC;
|
|
goto clean_netns;
|
|
}
|
|
+#endif
|
|
|
|
host_channel = dup_host_channel(host_spec->host_channel);
|
|
if (prepare_host_channel(host_channel, host_spec->user_remap)) {
|
|
diff --git a/src/daemon/modules/CMakeLists.txt b/src/daemon/modules/CMakeLists.txt
|
|
index 5d13412b..a70c094f 100644
|
|
--- a/src/daemon/modules/CMakeLists.txt
|
|
+++ b/src/daemon/modules/CMakeLists.txt
|
|
@@ -3,7 +3,6 @@
|
|
aux_source_directory(${CMAKE_CURRENT_SOURCE_DIR} modules_top_srcs)
|
|
add_subdirectory(runtime)
|
|
add_subdirectory(image)
|
|
-add_subdirectory(plugin)
|
|
add_subdirectory(spec)
|
|
add_subdirectory(container)
|
|
add_subdirectory(log)
|
|
@@ -17,7 +16,6 @@ set(local_modules_srcs
|
|
${modules_top_srcs}
|
|
${RUNTIME_SRCS}
|
|
${IMAGE_SRCS}
|
|
- ${PLUGIN_SRCS}
|
|
${SPEC_SRCS}
|
|
${MANAGER_SRCS}
|
|
${LOG_GATHER_SRCS}
|
|
@@ -31,7 +29,6 @@ set(local_modules_incs
|
|
${CMAKE_CURRENT_SOURCE_DIR}
|
|
${RUNTIME_INCS}
|
|
${IMAGE_INCS}
|
|
- ${PLUGIN_INCS}
|
|
${SPEC_INCS}
|
|
${MANAGER_INCS}
|
|
${LOG_GATHER_INCS}
|
|
@@ -42,6 +39,16 @@ set(local_modules_incs
|
|
${VOLUME_INCS}
|
|
)
|
|
|
|
+if (ENABLE_PLUGIN)
|
|
+ add_subdirectory(plugin)
|
|
+ list(APPEND local_modules_srcs
|
|
+ ${PLUGIN_SRCS}
|
|
+ )
|
|
+ list(APPEND local_modules_incs
|
|
+ ${PLUGIN_INCS}
|
|
+ )
|
|
+endif()
|
|
+
|
|
set(MODULES_SRCS
|
|
${local_modules_srcs}
|
|
PARENT_SCOPE
|
|
diff --git a/src/daemon/modules/api/CMakeLists.txt b/src/daemon/modules/api/CMakeLists.txt
|
|
index f577c45f..0735b25a 100644
|
|
--- a/src/daemon/modules/api/CMakeLists.txt
|
|
+++ b/src/daemon/modules/api/CMakeLists.txt
|
|
@@ -9,3 +9,6 @@ set(MODULES_API_INCS
|
|
PARENT_SCOPE
|
|
)
|
|
|
|
+if (NOT ENABLE_PLUGIN)
|
|
+ list(REMOVE_ITEM MODULES_API_INCS "${CMAKE_CURRENT_SOURCE_DIR}/plugin_api.h")
|
|
+endif()
|
|
diff --git a/src/daemon/modules/container/container_events_handler.c b/src/daemon/modules/container/container_events_handler.c
|
|
index d78e6fc1..d56c2ee0 100644
|
|
--- a/src/daemon/modules/container/container_events_handler.c
|
|
+++ b/src/daemon/modules/container/container_events_handler.c
|
|
@@ -155,7 +155,9 @@ static int container_state_changed(container_t *cont, const struct isulad_events
|
|
} else {
|
|
container_state_set_stopped(cont->state, (int)events->exit_status);
|
|
container_wait_stop_cond_broadcast(cont);
|
|
+#ifdef ENABLE_PLUGIN
|
|
plugin_event_container_post_stop(cont);
|
|
+#endif
|
|
}
|
|
|
|
auto_remove = !should_restart && cont->hostconfig != NULL && cont->hostconfig->auto_remove;
|
|
diff --git a/src/daemon/modules/service/service_container.c b/src/daemon/modules/service/service_container.c
|
|
index 1fa2559d..2d393f62 100644
|
|
--- a/src/daemon/modules/service/service_container.c
|
|
+++ b/src/daemon/modules/service/service_container.c
|
|
@@ -807,12 +807,14 @@ static int do_start_container(container_t *cont, const char *console_fifos[], bo
|
|
open_stdin = cont->common_config->config->open_stdin;
|
|
}
|
|
|
|
+#ifdef ENABLE_PLUGIN
|
|
if (plugin_event_container_pre_start(cont)) {
|
|
ERROR("Plugin event pre start failed ");
|
|
plugin_event_container_post_stop(cont); /* ignore error */
|
|
ret = -1;
|
|
goto close_exit_fd;
|
|
}
|
|
+#endif
|
|
|
|
#ifdef ENABLE_CRI_API_V1
|
|
if (cont->common_config->sandbox_info != NULL &&
|
|
@@ -1370,7 +1372,9 @@ int delete_container(container_t *cont, bool force)
|
|
}
|
|
}
|
|
|
|
+#ifdef ENABLE_PLUGIN
|
|
plugin_event_container_post_remove(cont);
|
|
+#endif
|
|
|
|
ret = do_delete_container(cont);
|
|
if (ret != 0) {
|
|
--
|
|
2.40.1
|
|
|