Skip to content

Commit

Permalink
Enabling Customer Overrides for Default Paths (#494)
Browse files Browse the repository at this point in the history
  • Loading branch information
Nox-MSFT committed Jun 22, 2023
1 parent 8278552 commit ac1dd22
Show file tree
Hide file tree
Showing 68 changed files with 1,966 additions and 1,792 deletions.
37 changes: 3 additions & 34 deletions CMakeLists.txt
Expand Up @@ -129,7 +129,7 @@ set (
set (
ADUC_EXTENSIONS_INSTALL_FOLDER
"${ADUC_EXTENSIONS_FOLDER}/sources"
CACHE STRING "Path to the folder containing extensions .so file(s).")
CACHE STRING "Path to the folder containing extensions .so file(s). This value can not be overridden by du-config.json.")

set (
ADUC_UPDATE_CONTENT_HANDLER_REG_FILENAME
Expand Down Expand Up @@ -161,36 +161,11 @@ set (
"update_content_handlers"
CACHE STRING "Sub folder for update step handler extensions.")

set (
ADUC_COMPONENT_ENUMERATOR_EXTENSION_DIR
"${ADUC_EXTENSIONS_FOLDER}/${ADUC_EXTENSIONS_SUBDIR_COMPONENT_ENUMERATOR}"
CACHE STRING "Path for component enumerator extension.")

set (
ADUC_CONTENT_DOWNLOADER_EXTENSION_DIR
"${ADUC_EXTENSIONS_FOLDER}/${ADUC_EXTENSIONS_SUBDIR_CONTENT_DOWNLOADER}"
CACHE STRING "Path for content downloader extension.")

set (
ADUC_UPDATE_CONTENT_HANDLER_EXTENSION_DIR
"${ADUC_EXTENSIONS_FOLDER}/${ADUC_EXTENSIONS_SUBDIR_UPDATE_CONTENT_HANDLERS}"
CACHE STRING "Sub folder for update step handler extensions.")

set (
ADUC_EXTENSIONS_SUBDIR_DOWNLOAD_HANDLERS
"download_handlers"
CACHE STRING "Sub folder for download handler extensions.")

set (
ADUC_DOWNLOAD_HANDLER_EXTENSION_DIR
"${ADUC_EXTENSIONS_FOLDER}/${ADUC_EXTENSIONS_SUBDIR_DOWNLOAD_HANDLERS}"
CACHE STRING "Path for the download handler extensions")

set (
ADUC_DOWNLOADS_FOLDER
"${ADUC_DATA_FOLDER}/downloads"
CACHE STRING "Path to the folder containing downloaded update artifacts.")

# Define the mapping from step handler names to subdirectory names
set(ADUC_STEP_HANDLER_NAME_TO_DIRECOTRY_MAP
"microsoft/apt,apt_handler"
Expand Down Expand Up @@ -306,23 +281,17 @@ set (

set (
ADUSHELL_FOLDER
"/usr/lib/adu"
"/usr/bin"
CACHE STRING "The directory of the adu-shell binary.")

set (
ADUSHELL_FILENAME
"adu-shell"
CACHE STRING "Filename of adu-shell.")

get_filename_component (
ADUSHELL_FILE_PATH
"${ADUSHELL_FOLDER}/${ADUSHELL_FILENAME}"
ABSOLUTE
"/")

set (
ADUSHELL_FILE_PATH
${ADUSHELL_FILE_PATH}
"${ADUSHELL_FOLDER}/${ADUSHELL_FILENAME}"
CACHE STRING "The absolute path to the adu-shell file path.")

set (
Expand Down
14 changes: 7 additions & 7 deletions packages/debian/postinst
Expand Up @@ -20,7 +20,7 @@ adu_diagnostics_conf_file=du-diagnostics-config.json
adu_log_dir=/var/log/adu
adu_data_dir=/var/lib/adu
adu_downloads_dir="$adu_data_dir/downloads"
adu_shell_dir=/usr/lib/adu
adu_shell_dir=/usr/bin
adu_shell_file=adu-shell

adu_bin_path=/usr/bin/AducIotAgent
Expand Down Expand Up @@ -66,18 +66,18 @@ sample_du_config=$(
"do"
],
"iotHubProtocol": "mqtt",
"manufacturer": <Place your device info manufacturer here>,
"model": <Place your device info model here>,
"manufacturer": "<Place your device info manufacturer here>",
"model": "<Place your device info model here>",
"agents": [
{
"name": <Place your agent name here>,
"name": "main",
"runas": "adu",
"connectionSource": {
"connectionType": "string",
"connectionData": <Place your Azure IoT device connection string here>
"connectionData": "<Place your Azure IoT device connection string here>"
},
"manufacturer": <Place your device property manufacturer here>,
"model": <Place your device property model here>
"manufacturer": "<Place your device property manufacturer here>",
"model": "<Place your device property model here>"
}
]
}
Expand Down
2 changes: 1 addition & 1 deletion packages/debian/postrm
Expand Up @@ -11,7 +11,7 @@ echo "******************** Running $0 $1 $2 ***********************"
adu_conf_dir=/etc/adu
adu_log_dir=/var/log/adu
adu_data_dir=/var/lib/adu
adu_shell_bin_path=/usr/lib/adu/adu-shell
adu_shell_bin_path=/usr/bin/adu-shell

adu_eis_conf_file=adu.toml
eis_idservice_dir=/etc/aziot/identityd/config.d
Expand Down
2 changes: 1 addition & 1 deletion scripts/docker/templates/setup_container.sh
Expand Up @@ -15,7 +15,7 @@ adu_diagnostics_conf_file=du-diagnostics-config.json
adu_log_dir=/var/log/adu
adu_data_dir=/var/lib/adu
adu_downloads_dir="$adu_data_dir/downloads"
adu_shell_dir=/usr/lib/adu
adu_shell_dir=/usr/bin
adu_shell_file=adu-shell

adu_extensions_dir="$adu_data_dir/extensions"
Expand Down
42 changes: 41 additions & 1 deletion scripts/error_code_generator_defs/result_codes.json
Expand Up @@ -270,6 +270,10 @@
"name": "ADUC_ERC_SWUPDATE_HANDLER_BAD_SWUPDATE_CONFIG_FILE",
"value": 32
},
{
"name": "ADUC_ERC_SWUPDATE_HANDLER_PERFORM_ACTION_FAILED_TO_GET_CONFIG_INSTANCE",
"value": 33
},
{
"name": "ADUC_ERC_SWUPDATE_HANDLER_DOWNLOAD_FAILURE_UNKNOWN_UPDATE_VERSION",
"value": 257
Expand Down Expand Up @@ -334,9 +338,33 @@
"name": "ADUC_ERC_SWUPDATE_HANDLER_MISSING_INSTALLED_CRITERIA",
"value": 518
},
{
"name": "ADUC_ERC_SWUPDATE_HANDLER_INSTALL_FAILED_TO_GET_CONFIG_INSTANCE",
"value": 519
},
{
"name": "ADUC_ERC_SWUPDATE_HANDLER_INSTALL_FAILURE_UNKNOWNEXCEPTION",
"value": 767
},
{
"name": "ADUC_ERC_SWUPDATE_HANDLER_APPLY_FAILURE",
"value": 768
},
{
"name": "ADUC_ERC_SWUPDATE_HANDLER_APPLY_FAILED_TO_GET_CONFIG_INSTANCE",
"value": 769
},
{
"name": "ADUC_ERC_SWUPDATE_HANDLER_CANCEL_FAILURE",
"value": 1024
},
{
"name": "ADUC_ERC_SWUPDATE_HANDLER_CANCEL_FAILED_TO_GET_CONFIG_INSTANCE",
"value": 1025
},
{
"name": "ADUC_ERC_SWUPDATE_HANDLER_CANCEL_FAILED_TO_CANCEL_APPLIED_UPDATE",
"value": 1026
}
]
},
Expand Down Expand Up @@ -381,13 +409,21 @@
"name": "ADUC_ERC_APT_HANDLER_PACKAGE_DOWNLOAD_FAILURE",
"value": 256
},
{
"name": "ADUC_ERC_APT_HANDLER_DOWNLOAD_FAILED_TO_GET_CONFIG_INSTANCE",
"value": 257
},
{
"name": "ADUC_ERC_APT_HANDLER_PACKAGE_INSTALL_FAILURE",
"value": 512
},
{
"name": "ADUC_ERC_APT_HANDLER_INSTALL_FAILED_TO_GET_CONFIG_INSTANCE",
"value": 513
},
{
"name": "ADUC_ERC_APT_HANDLER_PACKAGE_CANCEL_FAILURE",
"value": 768
"value": 1024
}
]
},
Expand Down Expand Up @@ -573,6 +609,10 @@
"name": "ADUC_ERC_SCRIPT_HANDLER_INSTALL_FAILURE_SCRIPT_RESULT_EXTENDEDRESULTCODE_ZERO",
"value": 518
},
{
"name": "ADUC_ERC_SCRIPT_HANDLER_INSTALL_FAILED_TO_GET_CONFIG_INSTANCE",
"value": 519
},
{
"name": "ADUC_ERC_SCRIPT_HANDLER_INSTALL_FAILURE_UNKNOWNEXCEPTION",
"value": 767
Expand Down
1 change: 0 additions & 1 deletion src/CMakeLists.txt
Expand Up @@ -24,7 +24,6 @@ set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${COMPILER_HARDENING_FLAGS}")
set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${COMPILER_HARDENING_FLAGS} -Wall")

add_definitions (-DADUC_LOG_FOLDER="${ADUC_LOG_FOLDER}")
add_definitions (-DADUC_DOWNLOADS_FOLDER="${ADUC_DOWNLOADS_FOLDER}")

set (ADUC_TYPES_INCLUDES ${CMAKE_CURRENT_SOURCE_DIR}/adu_types/inc)
set (ADUC_EXPORT_INCLUDES ${CMAKE_CURRENT_SOURCE_DIR}/inc ${CMAKE_CURRENT_SOURCE_DIR}/adu_types/inc)
Expand Down
6 changes: 3 additions & 3 deletions src/adu-shell/CMakeLists.txt
Expand Up @@ -50,7 +50,7 @@ target_compile_definitions (
${target_name}
PRIVATE ADUC_VERSION="${ADUC_VERSION}"
ADUC_PLATFORM_LAYER="${ADUC_PLATFORM_LAYER}"
ADUC_CONF_FILE_PATH="${ADUC_CONF_FILE_PATH}"
ADUC_CONF_FOLDER="${ADUC_CONF_FOLDER}"
ADUC_STEP_HANDLERS="${ADUC_STEP_HANDLERS}"
ADUSHELL_EFFECTIVE_GROUP_NAME="${ADUSHELL_EFFECTIVE_GROUP_NAME}"
${adushell_def})
Expand All @@ -65,12 +65,12 @@ target_link_libraries (

add_subdirectory (scripts)

# Install adu-shell to /usr/lib/adu folder.
# Install adu-shell to /usr/bin folder.
# Only owner and group can run adu-shell.
install (
TARGETS ${target_name}
RUNTIME
DESTINATION ${CMAKE_INSTALL_LIBDIR}/adu
DESTINATION ${CMAKE_INSTALL_BINDIR}
PERMISSIONS
OWNER_EXECUTE
OWNER_WRITE
Expand Down
1 change: 1 addition & 0 deletions src/adu-shell/inc/adushell.hpp
Expand Up @@ -29,6 +29,7 @@ typedef struct tagADUShell_LaunchArguments
std::vector<char*> targetOptions; /**< Additional options to pass to target command */
char* logFile; /**< Custom log file path */
bool showVersion; /**< Show an agent version */
const char* configFolder; /**< Custom config folder. Default is /etc/adu */
} ADUShell_LaunchArguments;

/**
Expand Down
2 changes: 2 additions & 0 deletions src/adu-shell/inc/adushell_const.hpp
Expand Up @@ -31,6 +31,8 @@ const char* update_action_execute = "execute";
const char* target_data_opt = "--target-data";
const char* target_options_opt = "--target-options";
const char* target_log_folder_opt = "--target-log-folder";

const char* config_folder_opt = "--config-folder";
} // namespace Const
} // namespace Shell
} // namespace Adu
Expand Down
2 changes: 1 addition & 1 deletion src/adu-shell/scripts/CMakeLists.txt
@@ -1,3 +1,3 @@
cmake_minimum_required (VERSION 3.5)

install (PROGRAMS adu-swupdate.sh DESTINATION ${CMAKE_INSTALL_LIBDIR}/adu/)
install (PROGRAMS adu-swupdate.sh DESTINATION ${CMAKE_INSTALL_BINDIR}/)

0 comments on commit ac1dd22

Please sign in to comment.