diff options
author | Costa Tsaousis <costa@netdata.cloud> | 2024-01-11 16:56:45 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-01-11 16:56:45 +0200 |
commit | f2b250a1f53af00241522db35f8c85f19ed282e1 (patch) | |
tree | e813ca47880e3e2adf09583658efef59633ec6bd | |
parent | bead543ea52e51cf73f7e5b27de53197801399a7 (diff) |
dyncfg v2 (#16702)
* split rrdfunctions streaming and progress
* simplified internal inline functions API
* split rrdfunctions inflight management
* split rrd functions exporters
* renames
* base dyncfg structure
* config pluginsd
* intercept dyncfg function calls
* loading and saving of dyncfg metadata and data
* save metadata and payload to a single file; added code to update the plugins with jobs and saved configs
* basic working unit test
* added payload to functions execution
* removed old dyncfg code that is not needed any more
* more cleanup
* cleanup sender for functions with payload
* dyncfg functions are not exposed as functions
* remaining work to avoid indexing the \0 terminating character in dictionary keys
* added back old dyncfg plugins.d commands as noop, to allow plugins continue working
* working api; working streaming;
* updated plugins.d documentation
* aclk and http api requests share the same header parsing logic
* added source type internal
* fixed crashes
* added god mode for tests
* fixes
* fixed messages
* save host machine guids to configs
* cleaner manipulation of supported commands
* the functions event loop for external plugins can now process dyncfg requests
* unified internal and external plugins dyncfg API
* Netdata serves schema requests from /etc/netdata/schema.d and /var/lib/netdata/conf.d/schema.d
* cleanup and various fixes; fixed bug in previous dyncfg implementation on streaming that was sending the paylod in a way that allowed other streaming commands to be multiplexed
* internals go to a separate header file
* fix duplicate ACLK requests sent by aclk queue mechanism
* use fstat instead of stat
* working api
* plugin actions renamed to create and delete; dyncfg files are removed only from user actions
* prevent deadlock by using the react callback
* fix for string_strndupz()
* better dyncfg unittests
* more tests at the unittests
* properly detect dyncfg functions
* hide config functions from the UI
* tree response improvements
* send the initial update with payload
* determine tty using stdout, not stderr
* changes to statuses, cleanup and the code to bring all business logic into interception
* do not crash when the status is empty
* functions now propagate the source of the requests to plugins
* avoid warning about unused functions
* in the count at items for attention, do not count the orphan entries
* save source into dyncfg
* make the list null terminated
* fixed invalid comparison
* prevent memory leak on duplicated headers; log x-forwarded-for
* more unit tests
* added dyncfg unittests into the default unittests
* more unit tests and fixes
* more unit tests and fixes
* fix dictionary unittests
* config functions require admin access
121 files changed, 6597 insertions, 6064 deletions
diff --git a/.codacy.yml b/.codacy.yml index cebc95f819..bcbd297c31 100644 --- a/.codacy.yml +++ b/.codacy.yml @@ -21,5 +21,4 @@ exclude_paths: - web/server/h2o/libh2o/** - build/** - build_external/** - - libnetdata/dyn_conf/tests/** - packaging/** diff --git a/CMakeLists.txt b/CMakeLists.txt index f6f8c6bd91..640940bc83 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -144,7 +144,7 @@ if(NOT ${DISABLE_HARDENING}) endif() if(NOT ${CMAKE_C_FLAGS} MATCHES "stack-clash-protection") - check_c_compiler_flag("-fstack-clash-protection", HAVE_STACK_CLASH_FLAG) + check_c_compiler_flag("-fstack-clash-protection" HAVE_STACK_CLASH_FLAG) if(HAVE_STACK_CLASH_FLAG) set(EXTRA_HARDENING_FLAGS "${EXTRA_HARDENING_FLAGS} -fstack-clash-protection") endif() @@ -641,8 +641,10 @@ set(LIBNETDATA_FILES libnetdata/http/http_access.h libnetdata/http/http_defs.c libnetdata/http/http_defs.h - libnetdata/dyn_conf/dyn_conf.c - libnetdata/dyn_conf/dyn_conf.h + libnetdata/http/content_type.c + libnetdata/http/content_type.h + libnetdata/config/dyncfg.c + libnetdata/config/dyncfg.h |