dyncfg-internals.h 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. // SPDX-License-Identifier: GPL-3.0-or-later
  2. #ifndef NETDATA_DYNCFG_INTERNALS_H
  3. #define NETDATA_DYNCFG_INTERNALS_H
  4. #include "../common.h"
  5. #include "../../database/rrd.h"
  6. #include "../../database/rrdfunctions.h"
  7. #include "../../database/rrdfunctions-internals.h"
  8. #include "../../database/rrdcollector-internals.h"
  9. typedef struct dyncfg {
  10. RRDHOST *host;
  11. uuid_t host_uuid;
  12. STRING *function;
  13. STRING *template;
  14. STRING *path;
  15. DYNCFG_STATUS status;
  16. DYNCFG_TYPE type;
  17. DYNCFG_CMDS cmds;
  18. DYNCFG_SOURCE_TYPE source_type;
  19. STRING *source;
  20. usec_t created_ut;
  21. usec_t modified_ut;
  22. uint32_t saves;
  23. bool sync;
  24. bool user_disabled;
  25. bool plugin_rejected;
  26. bool restart_required;
  27. BUFFER *payload;
  28. rrd_function_execute_cb_t execute_cb;
  29. void *execute_cb_data;
  30. // constructor data
  31. bool overwrite_cb;
  32. } DYNCFG;
  33. struct dyncfg_globals {
  34. const char *dir;
  35. DICTIONARY *nodes;
  36. };
  37. extern struct dyncfg_globals dyncfg_globals;
  38. void dyncfg_load_all(void);
  39. void dyncfg_file_load(const char *filename);
  40. void dyncfg_file_save(const char *id, DYNCFG *df);
  41. void dyncfg_file_delete(const char *id);
  42. bool dyncfg_get_schema(const char *id, BUFFER *dst);
  43. void dyncfg_echo_cb(BUFFER *wb, int code, void *result_cb_data);
  44. void dyncfg_echo(const DICTIONARY_ITEM *item, DYNCFG *df, const char *id, DYNCFG_CMDS cmd);
  45. void dyncfg_echo_update(const DICTIONARY_ITEM *item, DYNCFG *df, const char *id);
  46. void dyncfg_echo_add(const DICTIONARY_ITEM *template_item, DYNCFG *template_df, const char *template_id, const char *job_name);
  47. const DICTIONARY_ITEM *dyncfg_add_internal(RRDHOST *host, const char *id, const char *path, DYNCFG_STATUS status, DYNCFG_TYPE type, DYNCFG_SOURCE_TYPE source_type, const char *source, DYNCFG_CMDS cmds, usec_t created_ut, usec_t modified_ut, bool sync, rrd_function_execute_cb_t execute_cb, void *execute_cb_data, bool overwrite_cb);
  48. int dyncfg_function_intercept_cb(struct rrd_function_execute *rfe, void *data);
  49. void dyncfg_cleanup(DYNCFG *v);
  50. bool dyncfg_is_user_disabled(const char *id);
  51. #endif //NETDATA_DYNCFG_INTERNALS_H