cmdbsyncer 4.1.0.dev17__tar.gz → 4.1.0.dev19__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (325) hide show
  1. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/PKG-INFO +1 -1
  2. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/__init__.py +28 -3
  3. cmdbsyncer-4.1.0.dev19/application/buildinfo.txt +1 -0
  4. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/changelog/v4.1.md +2 -1
  5. cmdbsyncer-4.1.0.dev19/application/cli.py +44 -0
  6. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/modules/rule/rule.py +9 -1
  7. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/templates/debug_host.html +25 -17
  8. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/cmdbsyncer.egg-info/PKG-INFO +1 -1
  9. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/pyproject.toml +1 -1
  10. cmdbsyncer-4.1.0.dev17/application/buildinfo.txt +0 -1
  11. cmdbsyncer-4.1.0.dev17/application/cli.py +0 -78
  12. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/LICENSE +0 -0
  13. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/README.md +0 -0
  14. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/_version.py +0 -0
  15. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/api/__init__.py +0 -0
  16. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/api/inventory.py +0 -0
  17. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/api/objects.py +0 -0
  18. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/api/rules.py +0 -0
  19. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/api/syncer.py +0 -0
  20. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/api/views.py +0 -0
  21. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/auth/views.py +0 -0
  22. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/changelog/.pages +0 -0
  23. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/changelog/v3.10.md +0 -0
  24. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/changelog/v3.11.md +0 -0
  25. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/changelog/v3.12.md +0 -0
  26. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/changelog/v3.5.md +0 -0
  27. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/changelog/v3.7.md +0 -0
  28. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/changelog/v3.8.md +0 -0
  29. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/changelog/v3.9.md +0 -0
  30. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/changelog/v4.0.md +0 -0
  31. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/config.py +0 -0
  32. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/docu_links.py +0 -0
  33. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/enterprise.py +0 -0
  34. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/helpers/__init__.py +0 -0
  35. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/helpers/audit.py +0 -0
  36. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/helpers/cron.py +0 -0
  37. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/helpers/get_account.py +0 -0
  38. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/helpers/inventory.py +0 -0
  39. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/helpers/local_config_file.py +0 -0
  40. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/helpers/local_config_presets.py +0 -0
  41. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/helpers/mongo_keys.py +0 -0
  42. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/helpers/notification_channels.py +0 -0
  43. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/helpers/notification_dispatch.py +0 -0
  44. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/helpers/plugins.py +0 -0
  45. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/helpers/sates.py +0 -0
  46. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/helpers/sql.py +0 -0
  47. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/helpers/syncer_jinja.py +0 -0
  48. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/helpers/tablib_formater.py +0 -0
  49. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/helpers/tests/__init__.py +0 -0
  50. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/helpers/tests/test_sql.py +0 -0
  51. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/mcp_server.py +0 -0
  52. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/models/__init__.py +0 -0
  53. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/models/account.py +0 -0
  54. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/models/config.py +0 -0
  55. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/models/cron.py +0 -0
  56. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/models/field_approval.py +0 -0
  57. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/models/forms.py +0 -0
  58. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/models/host.py +0 -0
  59. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/models/host_inventory_tree.py +0 -0
  60. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/models/notification_channel.py +0 -0
  61. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/models/notification_rule.py +0 -0
  62. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/models/notification_state.py +0 -0
  63. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/models/saved_search.py +0 -0
  64. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/models/states.py +0 -0
  65. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/models/user.py +0 -0
  66. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/modules/__init__.py +0 -0
  67. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/modules/custom_attributes/models.py +0 -0
  68. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/modules/custom_attributes/rules.py +0 -0
  69. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/modules/custom_attributes/views.py +0 -0
  70. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/modules/debug.py +0 -0
  71. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/modules/email.py +0 -0
  72. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/modules/inventory/__init__.py +0 -0
  73. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/modules/log/log.py +0 -0
  74. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/modules/log/models.py +0 -0
  75. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/modules/log/views.py +0 -0
  76. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/modules/plugin.py +0 -0
  77. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/modules/rule/__init__.py +0 -0
  78. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/modules/rule/filter.py +0 -0
  79. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/modules/rule/match.py +0 -0
  80. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/modules/rule/models.py +0 -0
  81. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/modules/rule/rewrite.py +0 -0
  82. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/modules/rule/views.py +0 -0
  83. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/modules/statefile.py +0 -0
  84. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/notices/strict_certificate_verification.txt +0 -0
  85. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/plugins/__init__.py +0 -0
  86. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/plugins/ansible/__init__.py +0 -0
  87. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/plugins/ansible/admin_views.py +0 -0
  88. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/plugins/ansible/inventory.py +0 -0
  89. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/plugins/ansible/models.py +0 -0
  90. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/plugins/ansible/playbook_rules.py +0 -0
  91. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/plugins/ansible/plugin.json +0 -0
  92. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/plugins/ansible/rules.py +0 -0
  93. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/plugins/ansible/runner.py +0 -0
  94. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/plugins/ansible/site_syncer.py +0 -0
  95. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/plugins/ansible/views.py +0 -0
  96. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/plugins/bmc_remedy/__init__.py +0 -0
  97. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/plugins/bmc_remedy/bmc_remedy.py +0 -0
  98. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/plugins/bmc_remedy/plugin.json +0 -0
  99. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/plugins/checkmk/__init__.py +0 -0
  100. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/plugins/checkmk/admin_views.py +0 -0
  101. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/plugins/checkmk/bi.py +0 -0
  102. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/plugins/checkmk/cmk2.py +0 -0
  103. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/plugins/checkmk/cmk_rules.py +0 -0
  104. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/plugins/checkmk/dcd.py +0 -0
  105. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/plugins/checkmk/downtimes.py +0 -0
  106. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/plugins/checkmk/groups.py +0 -0
  107. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/plugins/checkmk/helpers.py +0 -0
  108. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/plugins/checkmk/import_v1.py +0 -0
  109. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/plugins/checkmk/import_v2.py +0 -0
  110. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/plugins/checkmk/inits.py +0 -0
  111. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/plugins/checkmk/inventorize.py +0 -0
  112. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/plugins/checkmk/models.py +0 -0
  113. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/plugins/checkmk/notification_rules.py +0 -0
  114. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/plugins/checkmk/passwords.py +0 -0
  115. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/plugins/checkmk/plugin.json +0 -0
  116. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/plugins/checkmk/poolfolder.py +0 -0
  117. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/plugins/checkmk/rules.py +0 -0
  118. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/plugins/checkmk/sites.py +0 -0
  119. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/plugins/checkmk/syncer.py +0 -0
  120. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/plugins/checkmk/tags.py +0 -0
  121. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/plugins/checkmk/tests/__init__.py +0 -0
  122. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/plugins/checkmk/tests/test_bi.py +0 -0
  123. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/plugins/checkmk/tests/test_cmk2.py +0 -0
  124. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/plugins/checkmk/tests/test_cmk_rules.py +0 -0
  125. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/plugins/checkmk/tests/test_dcd.py +0 -0
  126. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/plugins/checkmk/tests/test_downtimes.py +0 -0
  127. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/plugins/checkmk/tests/test_groups.py +0 -0
  128. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/plugins/checkmk/tests/test_helpers.py +0 -0
  129. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/plugins/checkmk/tests/test_import_v1.py +0 -0
  130. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/plugins/checkmk/tests/test_import_v2.py +0 -0
  131. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/plugins/checkmk/tests/test_inventorize.py +0 -0
  132. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/plugins/checkmk/tests/test_notification_rules.py +0 -0
  133. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/plugins/checkmk/tests/test_passwords.py +0 -0
  134. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/plugins/checkmk/tests/test_poolfolder.py +0 -0
  135. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/plugins/checkmk/tests/test_rules.py +0 -0
  136. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/plugins/checkmk/tests/test_sites.py +0 -0
  137. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/plugins/checkmk/tests/test_syncer.py +0 -0
  138. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/plugins/checkmk/tests/test_tags.py +0 -0
  139. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/plugins/checkmk/tests/test_users.py +0 -0
  140. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/plugins/checkmk/users.py +0 -0
  141. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/plugins/checkmk/views.py +0 -0
  142. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/plugins/cisco_dna/__init__.py +0 -0
  143. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/plugins/cisco_dna/plugin.json +0 -0
  144. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/plugins/cisco_dna/syncer.py +0 -0
  145. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/plugins/cron.py +0 -0
  146. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/plugins/csv/__init__.py +0 -0
  147. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/plugins/csv/csv.py +0 -0
  148. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/plugins/csv/plugin.json +0 -0
  149. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/plugins/file_requests.py +0 -0
  150. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/plugins/idoit/__init__.py +0 -0
  151. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/plugins/idoit/admin_views.py +0 -0
  152. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/plugins/idoit/models.py +0 -0
  153. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/plugins/idoit/plugin.json +0 -0
  154. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/plugins/idoit/rules.py +0 -0
  155. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/plugins/idoit/syncer.py +0 -0
  156. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/plugins/idoit/views.py +0 -0
  157. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/plugins/jdisc/__init__.py +0 -0
  158. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/plugins/jdisc/applications.py +0 -0
  159. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/plugins/jdisc/devices.py +0 -0
  160. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/plugins/jdisc/executables.py +0 -0
  161. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/plugins/jdisc/jdisc.py +0 -0
  162. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/plugins/jdisc/plugin.json +0 -0
  163. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/plugins/jira/__init__.py +0 -0
  164. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/plugins/jira/jira.py +0 -0
  165. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/plugins/jira/plugin.json +0 -0
  166. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/plugins/jira_cloud/__init__.py +0 -0
  167. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/plugins/jira_cloud/admin_views.py +0 -0
  168. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/plugins/jira_cloud/export.py +0 -0
  169. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/plugins/jira_cloud/jira_cloud.py +0 -0
  170. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/plugins/jira_cloud/models.py +0 -0
  171. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/plugins/jira_cloud/plugin.json +0 -0
  172. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/plugins/jira_cloud/rules.py +0 -0
  173. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/plugins/jira_cloud/schema_sync.py +0 -0
  174. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/plugins/jira_cloud/views.py +0 -0
  175. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/plugins/json/__init__.py +0 -0
  176. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/plugins/json/json.py +0 -0
  177. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/plugins/json/plugin.json +0 -0
  178. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/plugins/ldap/__init__.py +0 -0
  179. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/plugins/ldap/ldap.py +0 -0
  180. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/plugins/ldap/plugin.json +0 -0
  181. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/plugins/maintenance/__init__.py +0 -0
  182. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/plugins/maintenance/plugin.json +0 -0
  183. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/plugins/mssql/__init__.py +0 -0
  184. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/plugins/mssql/plugin.json +0 -0
  185. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/plugins/mysql/__init__.py +0 -0
  186. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/plugins/mysql/mysql.py +0 -0
  187. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/plugins/mysql/plugin.json +0 -0
  188. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/plugins/netbox/__init__.py +0 -0
  189. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/plugins/netbox/admin_views.py +0 -0
  190. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/plugins/netbox/cluster.py +0 -0
  191. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/plugins/netbox/contacts.py +0 -0
  192. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/plugins/netbox/dataflow.py +0 -0
  193. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/plugins/netbox/devices.py +0 -0
  194. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/plugins/netbox/interfaces.py +0 -0
  195. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/plugins/netbox/ips.py +0 -0
  196. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/plugins/netbox/models.py +0 -0
  197. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/plugins/netbox/netbox.py +0 -0
  198. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/plugins/netbox/networks.py +0 -0
  199. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/plugins/netbox/plugin.json +0 -0
  200. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/plugins/netbox/prefixes.py +0 -0
  201. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/plugins/netbox/rules.py +0 -0
  202. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/plugins/netbox/views.py +0 -0
  203. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/plugins/netbox/virtualmachines.py +0 -0
  204. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/plugins/prtg/__init__.py +0 -0
  205. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/plugins/prtg/plugin.json +0 -0
  206. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/plugins/prtg/prtg.py +0 -0
  207. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/plugins/pyodbc/__init__.py +0 -0
  208. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/plugins/pyodbc/plugin.json +0 -0
  209. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/plugins/pyodbc/pyodbc.py +0 -0
  210. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/plugins/rest/__init__.py +0 -0
  211. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/plugins/rest/plugin.json +0 -0
  212. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/plugins/rest/rest.py +0 -0
  213. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/plugins/rules/__init__.py +0 -0
  214. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/plugins/rules/admin_views.py +0 -0
  215. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/plugins/rules/autorules.py +0 -0
  216. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/plugins/rules/models.py +0 -0
  217. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/plugins/rules/plugin.json +0 -0
  218. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/plugins/rules/rule_definitions.py +0 -0
  219. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/plugins/rules/rule_import_export.py +0 -0
  220. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/plugins/rules/views.py +0 -0
  221. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/plugins/syncer_shell.py +0 -0
  222. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/plugins/vmware/__init__.py +0 -0
  223. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/plugins/vmware/admin_views.py +0 -0
  224. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/plugins/vmware/custom_attributes.py +0 -0
  225. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/plugins/vmware/models.py +0 -0
  226. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/plugins/vmware/plugin.json +0 -0
  227. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/plugins/vmware/rules.py +0 -0
  228. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/plugins/vmware/views.py +0 -0
  229. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/plugins/vmware/vmware.py +0 -0
  230. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/plugins/yml/__init__.py +0 -0
  231. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/plugins/yml/plugin.json +0 -0
  232. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/plugins/yml/yml.py +0 -0
  233. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/plugins_cli.py +0 -0
  234. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/static/css/cmdbsyncer.css +0 -0
  235. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/static/js/main.js +0 -0
  236. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/static/logo_white.png +0 -0
  237. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/templates/_brand.html +0 -0
  238. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/templates/_theme.html +0 -0
  239. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/templates/admin/_host_tabs.html +0 -0
  240. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/templates/admin/account_pick_type.html +0 -0
  241. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/templates/admin/ansible_playbook_run.html +0 -0
  242. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/templates/admin/ansible_project_detail.html +0 -0
  243. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/templates/admin/ansible_rule_list.html +0 -0
  244. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/templates/admin/bulk_label_form.html +0 -0
  245. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/templates/admin/changelog_archive.html +0 -0
  246. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/templates/admin/checkmk_rule_mngmt_list.html +0 -0
  247. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/templates/admin/checkmk_settings_list.html +0 -0
  248. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/templates/admin/copy_as_new_form.html +0 -0
  249. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/templates/admin/data_quality.html +0 -0
  250. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/templates/admin/file/list.html +0 -0
  251. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/templates/admin/file/modals/form.html +0 -0
  252. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/templates/admin/host_details.html +0 -0
  253. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/templates/admin/host_edit.html +0 -0
  254. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/templates/admin/host_inventory_tree.html +0 -0
  255. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/templates/admin/host_list.html +0 -0
  256. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/templates/admin/host_relations_graph.html +0 -0
  257. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/templates/admin/host_timeline.html +0 -0
  258. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/templates/admin/index.html +0 -0
  259. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/templates/admin/local_config_editor.html +0 -0
  260. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/templates/admin/master.html +0 -0
  261. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/templates/admin/model/clone_confirm.html +0 -0
  262. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/templates/admin/model/inline_list_base.html +0 -0
  263. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/templates/admin/object_list.html +0 -0
  264. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/templates/admin/set_cmk_version_form.html +0 -0
  265. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/templates/admin/set_template_form.html +0 -0
  266. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/templates/base.html +0 -0
  267. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/templates/change_password.html +0 -0
  268. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/templates/debug.html +0 -0
  269. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/templates/email/newuser.html +0 -0
  270. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/templates/email/notification.html +0 -0
  271. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/templates/email/resetpassword.html +0 -0
  272. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/templates/formular.html +0 -0
  273. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/templates/license_info.html +0 -0
  274. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/templates/login.html +0 -0
  275. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/templates/logout_confirm.html +0 -0
  276. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/templates/request_password.html +0 -0
  277. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/templates/set_2fa.html +0 -0
  278. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/templates/set_theme.html +0 -0
  279. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/themes/dracula.css +0 -0
  280. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/themes/gruvbox-dark.css +0 -0
  281. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/themes/gruvbox-light.css +0 -0
  282. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/themes/nord.css +0 -0
  283. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/themes_registry.py +0 -0
  284. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/views/_form_fields.py +0 -0
  285. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/views/_form_sections.py +0 -0
  286. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/views/account.py +0 -0
  287. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/views/config.py +0 -0
  288. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/views/cron.py +0 -0
  289. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/views/data_quality.py +0 -0
  290. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/views/default.py +0 -0
  291. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/views/field_approval.py +0 -0
  292. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/views/fileadmin.py +0 -0
  293. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/views/host.py +0 -0
  294. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/views/host_filters.py +0 -0
  295. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/views/host_renderers.py +0 -0
  296. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/views/host_widgets.py +0 -0
  297. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/views/license.py +0 -0
  298. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/views/notification_channel.py +0 -0
  299. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/views/notification_rule.py +0 -0
  300. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/views/saved_search.py +0 -0
  301. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/application/views/user.py +0 -0
  302. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/cmdbsyncer.egg-info/SOURCES.txt +0 -0
  303. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/cmdbsyncer.egg-info/dependency_links.txt +0 -0
  304. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/cmdbsyncer.egg-info/entry_points.txt +0 -0
  305. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/cmdbsyncer.egg-info/requires.txt +0 -0
  306. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/cmdbsyncer.egg-info/top_level.txt +0 -0
  307. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/requirements-ansible.txt +0 -0
  308. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/requirements-extras.txt +0 -0
  309. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/requirements.txt +0 -0
  310. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/setup.cfg +0 -0
  311. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/syncerapi/__init__.py +0 -0
  312. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/syncerapi/v1/__init__.py +0 -0
  313. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/syncerapi/v1/core/__init__.py +0 -0
  314. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/syncerapi/v1/inventory/__init__.py +0 -0
  315. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/syncerapi/v1/rest/__init__.py +0 -0
  316. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/tests/test_api.py +0 -0
  317. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/tests/test_api_csrf_invariant.py +0 -0
  318. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/tests/test_default_view.py +0 -0
  319. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/tests/test_mongo_keys.py +0 -0
  320. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/tests/test_plugin.py +0 -0
  321. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/tests/test_plugin_ssti.py +0 -0
  322. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/tests/test_plugins_cli.py +0 -0
  323. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/tests/test_rule.py +0 -0
  324. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/tests/test_rule_match.py +0 -0
  325. {cmdbsyncer-4.1.0.dev17 → cmdbsyncer-4.1.0.dev19}/tests/test_webhook_token_hash.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: cmdbsyncer
3
- Version: 4.1.0.dev17
3
+ Version: 4.1.0.dev19
4
4
  Summary: Rule-based modular synchronizer for Checkmk, Netbox, Ansible, I-DOIT, Jira CMDB and 15+ other CMDB/monitoring systems
5
5
  Author-email: Kuhn & Ruess GmbH <info@kuhn-ruess.de>
6
6
  Maintainer-email: Bastian Kuhn <mail@bastian-kuhn.de>
@@ -24,9 +24,34 @@ CLI_MODE = os.environ.get('CMDBSYNCER_CLI') == '1'
24
24
  # ``from application.cli import main`` and don't put cwd on ``sys.path``
25
25
  # beforehand — but ``local_config.py``, the user ``plugins/`` package,
26
26
  # ``disabled_plugins.json`` and friends all live in the deployment
27
- # directory. Inject cwd here, before any import that depends on it,
28
- # so pip-install behaves like a source checkout (where Python adds the
29
- # script directory to ``sys.path[0]`` automatically).
27
+ # directory. We need to put the deployment directory on ``sys.path``
28
+ # *before* the ``from local_config import config`` further down runs.
29
+ # Doing this in ``application/cli.py:main()`` is too late: that function
30
+ # only executes after ``from application.cli import main`` has already
31
+ # fully imported this module — including the local_config load.
32
+ #
33
+ # Search in priority order:
34
+ # 1. ``$CMDBSYNCER_CONFIG_DIR`` — operator override (set e.g. by the
35
+ # ansible inventory shims so ``ansible-playbook`` works from any cwd)
36
+ # 2. cwd — source checkouts running ``./cmdbsyncer …`` from the repo
37
+ # 3. parent of ``sys.prefix`` — pip layout where the venv lives
38
+ # inside the deployment dir (``/opt/cmdbsyncer/venv`` → ``/opt/cmdbsyncer``)
39
+ # 4. ``/etc/cmdbsyncer`` — packaged-install convention
40
+ # The first candidate that actually contains ``local_config.py`` wins
41
+ # and is prepended to ``sys.path``. cwd is always injected as a fallback
42
+ # so user ``plugins/`` resolution keeps working in source checkouts even
43
+ # when local_config.py lives elsewhere.
44
+ _config_candidates = []
45
+ if _env_dir := os.environ.get("CMDBSYNCER_CONFIG_DIR"):
46
+ _config_candidates.append(_env_dir)
47
+ _config_candidates.append(os.getcwd())
48
+ _config_candidates.append(os.path.dirname(sys.prefix))
49
+ _config_candidates.append("/etc/cmdbsyncer")
50
+ for _candidate in _config_candidates:
51
+ if _candidate and os.path.isfile(os.path.join(_candidate, "local_config.py")):
52
+ if _candidate not in sys.path:
53
+ sys.path.insert(0, _candidate)
54
+ break
30
55
  if os.getcwd() not in sys.path:
31
56
  sys.path.insert(0, os.getcwd())
32
57
 
@@ -0,0 +1 @@
1
+ BUILD_DATE=2026-05-13T07:27:17Z
@@ -13,7 +13,7 @@
13
13
  - FEAT: Project-centric Ansible workspace with auto-default project
14
14
  - FEAT: CLI moved under `cmdbsyncer ansible …` with backward-compat shims
15
15
  - FIX: Inventory URL now resolves at `/api/v1/ansible/inventory/<provider>`
16
- - FIX: `ansible/inventory`, `ansible/inventory_single` and `ansible/cmk_server_inventory` find the pip-installed `cmdbsyncer` on PATH instead of failing with "No such file or directory" when ansible/ lives at `/opt/cmdbsyncer/ansible/`, and they export `CMDBSYNCER_CONFIG_DIR` pointing at the shim's parent directory so the called CLI loads `local_config.py` regardless of ansible-playbook's cwd
16
+ - FIX: `ansible/inventory`, `ansible/inventory_single` and `ansible/cmk_server_inventory` find the pip-installed `cmdbsyncer` on PATH instead of failing with "No such file or directory" when ansible/ lives at `/opt/cmdbsyncer/ansible/`, and they export `CMDBSYNCER_CONFIG_DIR` pointing at the shim's parent directory so the called CLI loads `local_config.py` regardless of ansible-playbook's cwd. The `CMDBSYNCER_CONFIG_DIR` lookup is now honored at package-import time (not only inside the CLI entry point), which is when `local_config.py` is actually loaded — so the shim's env var really does its job and `ansible-playbook` from `/opt/cmdbsyncer/ansible/` no longer fails with "CRYPTOGRAPHY_KEY is not set"
17
17
  - FIX: Offline bundle `install.sh` no longer swallows the playbook copy when `pip install` fails — both steps run independently and report their own status, and `ANSIBLE_TARGET` is replaced by default (no more `FORCE=1` dance for re-installs)
18
18
 
19
19
  ### Hosts
@@ -83,6 +83,7 @@
83
83
  - FIX: Host Debug page, Host Relations graph, Host tabs, Ansible Project detail, Ansible Rule list and Ansible Playbook run picker honour the user theme — no more white-on-dark surfaces in Gruvbox Dark / Nord / Dracula
84
84
  - FEAT: Host Debug page can preview a Checkmk Setup Rule's outcomes (ruleset, folder, value, condition) against the selected host, with `loop_over_list` expanded per value
85
85
  - FEAT: Rule Preview on the Host Debug page now warns when the selected rule would not match the current host, including the first failing condition
86
+ - FEAT: Host Debug page rules table now shows the matching condition for every hit, not just the first failing condition for misses
86
87
  - FEAT: Inline list editors gained a visible "remove entry" button on every card
87
88
  - FIX: Drag-and-drop reordering of inline list entries works on older Firefox (140+)
88
89
  - FEAT: Per-user theme picker under Account → Theme with Default, Gruvbox Dark, Gruvbox Light, Nord and Dracula
@@ -0,0 +1,44 @@
1
+ """Entry point for the ``cmdbsyncer`` console script.
2
+
3
+ Registered via ``[project.scripts]`` in ``pyproject.toml`` so the command is
4
+ available on ``PATH`` after ``pip install cmdbsyncer``. Delegates to Flask's
5
+ Click CLI on the app instance.
6
+ """
7
+ import os
8
+ import sys
9
+ import warnings
10
+
11
+
12
+ def main():
13
+ """Run the cmdbsyncer Flask Click CLI."""
14
+ os.environ.setdefault("config", "prod")
15
+ # Mark the process as a CLI invocation before importing the app factory.
16
+ # ``application/__init__.py`` and ``application/enterprise.py`` check this
17
+ # to suppress their startup banner / ECS JSON log pipeline — none of that
18
+ # noise belongs in front of command output like ``checkmk export_hosts``.
19
+ os.environ["CMDBSYNCER_CLI"] = "1"
20
+ # ``application/__init__.py`` resolves the local_config.py location at
21
+ # *import* time (it must, because the import line further down runs
22
+ # before this function does). Nothing to do here.
23
+ with warnings.catch_warnings():
24
+ warnings.filterwarnings("ignore", "Fields missing from ruleset", UserWarning)
25
+ try:
26
+ from application import app, DISPLAY_VERSION # pylint: disable=import-outside-toplevel
27
+ from flask.cli import ScriptInfo # pylint: disable=import-outside-toplevel
28
+ except Exception as exp: # pylint: disable=broad-except
29
+ print("Cannot load application. Is MongoDB reachable and local_config.py present?")
30
+ print(exp)
31
+ sys.exit(1)
32
+
33
+ if len(sys.argv) == 1:
34
+ print(f"CMDB Syncer Version: {DISPLAY_VERSION}")
35
+ sys.argv.append("--help")
36
+ # AppGroup commands re-resolve the app via ScriptInfo.load_app(), which
37
+ # otherwise scans for FLASK_APP / app.py / wsgi.py. PyPI installs have
38
+ # none of those in the cwd, so hand Click a ScriptInfo that returns the
39
+ # already-imported app instance directly.
40
+ app.cli(obj=ScriptInfo(create_app=lambda: app))
41
+
42
+
43
+ if __name__ == "__main__":
44
+ main()
@@ -216,7 +216,7 @@ class Rule():
216
216
  self._rule_docs_cache = (current_key, objs, prepared)
217
217
  return objs, prepared
218
218
 
219
- # pylint: disable=too-many-branches
219
+ # pylint: disable=too-many-branches,too-many-statements
220
220
  def check_rules(self, hostname):
221
221
  """
222
222
  Handle Rule Match logic
@@ -252,11 +252,14 @@ class Rule():
252
252
  conditions = rule['conditions']
253
253
 
254
254
  no_match_reason = None
255
+ match_reason = None
255
256
  if condition_typ == 'any':
256
257
  for condition in conditions:
257
258
  if self.handle_match(condition, hostname):
258
259
  rule_hit = True
259
260
  no_match_reason = None
261
+ if self.debug:
262
+ match_reason = dict(condition)
260
263
  break # We have a hit, no need to check more
261
264
  if self.debug:
262
265
  no_match_reason = dict(condition)
@@ -269,6 +272,10 @@ class Rule():
269
272
  if self.debug:
270
273
  no_match_reason = dict(condition)
271
274
  break # One was no hit, no need for loop
275
+ if self.debug and rule_hit and conditions:
276
+ # All conditions matched — surface the last one as the
277
+ # representative match (mirrors no_match_reason shape).
278
+ match_reason = dict(conditions[-1])
272
279
 
273
280
  elif condition_typ == 'anyway':
274
281
  rule_hit = True
@@ -279,6 +286,7 @@ class Rule():
279
286
  "group": self.name,
280
287
  "hit": rule_hit,
281
288
  'no_match_reason': no_match_reason,
289
+ 'match_reason': match_reason,
282
290
  "condition_type": _RULE_DESCRIPTIONS[condition_typ],
283
291
  "name": rule['name'],
284
292
  "id": str(rule['_id']),
@@ -317,12 +317,30 @@
317
317
  <tr>
318
318
  <th style="width: 280px;">Rule</th>
319
319
  <th style="width: 70px;">Hit</th>
320
- <th>First reason the rule won't match</th>
320
+ <th>Matching condition / first reason it won't match</th>
321
321
  <th style="width: 120px;">Condition Type</th>
322
322
  <th style="width: 100px;">Last Match</th>
323
323
  </tr>
324
324
  </thead>
325
325
  <tbody>
326
+ {% macro render_condition(cond) %}
327
+ {% if cond['match_type'] == 'host' %}
328
+ <span class="badge badge-primary">
329
+ {{ negate[cond['hostname_match_negate']] }}{{ condition_types[cond['hostname_match']] }}
330
+ </span>
331
+ <span class="badge badge-info">{{ cond['hostname'] }}</span>
332
+ {% else %}
333
+ <span class="badge badge-primary">
334
+ {{ negate[cond['tag_match_negate']] }}{{ condition_types[cond['tag_match']] }}
335
+ </span>
336
+ <span class="badge badge-info">{{ cond['tag'] }}</span>
337
+ =
338
+ <span class="badge badge-primary">
339
+ {{ negate[cond['value_match_negate']] }}{{ condition_types[cond['value_match']] }}
340
+ </span>
341
+ <span class="badge badge-info">{{ cond['value'] }}</span>
342
+ {% endif %}
343
+ {% endmacro %}
326
344
  {% for rule in rule_raw %}
327
345
  <tr {% if rule['hit'] %} class="rule-hit" {% endif %}>
328
346
  <td>
@@ -340,24 +358,14 @@
340
358
  {% endif %}
341
359
  </td>
342
360
  <td>
343
- {% if rule['no_match_reason'] %}
344
- {% set no_match = rule['no_match_reason'] %}
345
- {% if no_match['match_type'] == 'host' %}
346
- <span class="badge badge-primary">
347
- {{ negate[no_match['hostname_match_negate']] }}{{ condition_types[no_match['hostname_match']] }}
348
- </span>
349
- <span class="badge badge-info">{{ no_match['hostname'] }}</span>
361
+ {% if rule['hit'] %}
362
+ {% if rule['match_reason'] %}
363
+ {{ render_condition(rule['match_reason']) }}
350
364
  {% else %}
351
- <span class="badge badge-primary">
352
- {{ negate[no_match['tag_match_negate']] }}{{ condition_types[no_match['tag_match']] }}
353
- </span>
354
- <span class="badge badge-info">{{ no_match['tag'] }}</span>
355
- =
356
- <span class="badge badge-primary">
357
- {{ negate[no_match['value_match_negate']] }}{{ condition_types[no_match['value_match']] }}
358
- </span>
359
- <span class="badge badge-info">{{ no_match['value'] }}</span>
365
+ <span class="text-muted"><i class="fa fa-check"></i> always matches</span>
360
366
  {% endif %}
367
+ {% elif rule['no_match_reason'] %}
368
+ {{ render_condition(rule['no_match_reason']) }}
361
369
  {% endif %}
362
370
  </td>
363
371
  <td>{{ rule['condition_type'] }}</td>
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: cmdbsyncer
3
- Version: 4.1.0.dev17
3
+ Version: 4.1.0.dev19
4
4
  Summary: Rule-based modular synchronizer for Checkmk, Netbox, Ansible, I-DOIT, Jira CMDB and 15+ other CMDB/monitoring systems
5
5
  Author-email: Kuhn & Ruess GmbH <info@kuhn-ruess.de>
6
6
  Maintainer-email: Bastian Kuhn <mail@bastian-kuhn.de>
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "cmdbsyncer"
7
- version = "4.1.0.dev17"
7
+ version = "4.1.0.dev19"
8
8
  description = "Rule-based modular synchronizer for Checkmk, Netbox, Ansible, I-DOIT, Jira CMDB and 15+ other CMDB/monitoring systems"
9
9
  readme = "README.md"
10
10
  license = { text = "MIT" }
@@ -1 +0,0 @@
1
- BUILD_DATE=2026-05-12T16:21:35Z
@@ -1,78 +0,0 @@
1
- """Entry point for the ``cmdbsyncer`` console script.
2
-
3
- Registered via ``[project.scripts]`` in ``pyproject.toml`` so the command is
4
- available on ``PATH`` after ``pip install cmdbsyncer``. Delegates to Flask's
5
- Click CLI on the app instance.
6
- """
7
- import os
8
- import sys
9
- import warnings
10
-
11
-
12
- def main():
13
- """Run the cmdbsyncer Flask Click CLI."""
14
- os.environ.setdefault("config", "prod")
15
- # Mark the process as a CLI invocation before importing the app factory.
16
- # ``application/__init__.py`` and ``application/enterprise.py`` check this
17
- # to suppress their startup banner / ECS JSON log pipeline — none of that
18
- # noise belongs in front of command output like ``checkmk export_hosts``.
19
- os.environ["CMDBSYNCER_CLI"] = "1"
20
- # cmdbsyncer needs to find ``local_config.py`` regardless of the
21
- # caller's cwd. Source checkouts have it next to ``./cmdbsyncer`` and
22
- # were always covered by the cwd injection below; PyPI installs (and
23
- # any cron / systemd unit that doesn't set WorkingDirectory) drop it
24
- # into the install root (e.g. ``/opt/cmdbsyncer/``) but invoke the
25
- # binary from elsewhere — that previously left ``CRYPTOGRAPHY_KEY``
26
- # at ``None`` and exploded much later with a "Fernet(None)" TypeError
27
- # that pointed nowhere useful. Search a fixed list of well-known
28
- # directories and inject the first one that actually contains the
29
- # file; cwd stays in the list so source checkouts still win.
30
- _config_candidates = []
31
- if env_dir := os.environ.get("CMDBSYNCER_CONFIG_DIR"):
32
- _config_candidates.append(env_dir)
33
- _config_candidates.append(os.getcwd())
34
- # ``sys.prefix`` is the venv root (``/opt/cmdbsyncer/venv``); its
35
- # parent is the conventional install dir where local_config.py sits.
36
- _config_candidates.append(os.path.dirname(sys.prefix))
37
- _config_candidates.append("/etc/cmdbsyncer")
38
- for _candidate in _config_candidates:
39
- if _candidate and os.path.isfile(os.path.join(_candidate, "local_config.py")):
40
- if _candidate not in sys.path:
41
- sys.path.insert(0, _candidate)
42
- break
43
- else:
44
- # Nothing found. Keep the legacy cwd injection so the import
45
- # still attempts and the warning in ``application/__init__.py``
46
- # surfaces the searched paths — but tell the operator upfront.
47
- if os.getcwd() not in sys.path:
48
- sys.path.insert(0, os.getcwd())
49
- print(
50
- "cmdbsyncer: local_config.py not found in any of "
51
- f"{_config_candidates!r}. Set CMDBSYNCER_CONFIG_DIR to "
52
- "its directory or run from there. Continuing — encrypted "
53
- "account passwords will fail to decrypt without "
54
- "CRYPTOGRAPHY_KEY.",
55
- file=sys.stderr,
56
- )
57
- with warnings.catch_warnings():
58
- warnings.filterwarnings("ignore", "Fields missing from ruleset", UserWarning)
59
- try:
60
- from application import app, DISPLAY_VERSION # pylint: disable=import-outside-toplevel
61
- from flask.cli import ScriptInfo # pylint: disable=import-outside-toplevel
62
- except Exception as exp: # pylint: disable=broad-except
63
- print("Cannot load application. Is MongoDB reachable and local_config.py present?")
64
- print(exp)
65
- sys.exit(1)
66
-
67
- if len(sys.argv) == 1:
68
- print(f"CMDB Syncer Version: {DISPLAY_VERSION}")
69
- sys.argv.append("--help")
70
- # AppGroup commands re-resolve the app via ScriptInfo.load_app(), which
71
- # otherwise scans for FLASK_APP / app.py / wsgi.py. PyPI installs have
72
- # none of those in the cwd, so hand Click a ScriptInfo that returns the
73
- # already-imported app instance directly.
74
- app.cli(obj=ScriptInfo(create_app=lambda: app))
75
-
76
-
77
- if __name__ == "__main__":
78
- main()