dipex 7.1.2__tar.gz → 7.2.0__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 (67) hide show
  1. {dipex-7.1.2 → dipex-7.2.0}/PKG-INFO +1 -1
  2. {dipex-7.1.2 → dipex-7.2.0}/exporters/sql_export/main.py +11 -2
  3. {dipex-7.1.2 → dipex-7.2.0}/pyproject.toml +1 -1
  4. {dipex-7.1.2 → dipex-7.2.0}/exporters/sql_export/__init__.py +0 -0
  5. {dipex-7.1.2 → dipex-7.2.0}/exporters/sql_export/config.py +0 -0
  6. {dipex-7.1.2 → dipex-7.2.0}/exporters/sql_export/gql_lora_cache_async.py +0 -0
  7. {dipex-7.1.2 → dipex-7.2.0}/exporters/sql_export/lc_for_jobs_db.py +0 -0
  8. {dipex-7.1.2 → dipex-7.2.0}/exporters/sql_export/lora_cache.py +0 -0
  9. {dipex-7.1.2 → dipex-7.2.0}/exporters/sql_export/sql_export.py +0 -0
  10. {dipex-7.1.2 → dipex-7.2.0}/exporters/sql_export/sql_table_defs.py +0 -0
  11. {dipex-7.1.2 → dipex-7.2.0}/exporters/sql_export/sql_url.py +0 -0
  12. {dipex-7.1.2 → dipex-7.2.0}/exporters/sql_export/trigger.py +0 -0
  13. {dipex-7.1.2 → dipex-7.2.0}/exporters/utils/priority_by_class.py +0 -0
  14. {dipex-7.1.2 → dipex-7.2.0}/integrations/__init__.py +0 -0
  15. {dipex-7.1.2 → dipex-7.2.0}/integrations/ad_integration/__init__.py +0 -0
  16. {dipex-7.1.2 → dipex-7.2.0}/integrations/ad_integration/ad_common.py +0 -0
  17. {dipex-7.1.2 → dipex-7.2.0}/integrations/ad_integration/ad_exceptions.py +0 -0
  18. {dipex-7.1.2 → dipex-7.2.0}/integrations/ad_integration/ad_jinja_filters.py +0 -0
  19. {dipex-7.1.2 → dipex-7.2.0}/integrations/ad_integration/ad_life_cycle.py +0 -0
  20. {dipex-7.1.2 → dipex-7.2.0}/integrations/ad_integration/ad_logger.py +0 -0
  21. {dipex-7.1.2 → dipex-7.2.0}/integrations/ad_integration/ad_reader.py +0 -0
  22. {dipex-7.1.2 → dipex-7.2.0}/integrations/ad_integration/ad_sync.py +0 -0
  23. {dipex-7.1.2 → dipex-7.2.0}/integrations/ad_integration/ad_template_engine.py +0 -0
  24. {dipex-7.1.2 → dipex-7.2.0}/integrations/ad_integration/ad_templates.py +0 -0
  25. {dipex-7.1.2 → dipex-7.2.0}/integrations/ad_integration/ad_writer.py +0 -0
  26. {dipex-7.1.2 → dipex-7.2.0}/integrations/ad_integration/mo_to_ad_sync.py +0 -0
  27. {dipex-7.1.2 → dipex-7.2.0}/integrations/ad_integration/payloads.py +0 -0
  28. {dipex-7.1.2 → dipex-7.2.0}/integrations/ad_integration/read_ad_conf_settings.py +0 -0
  29. {dipex-7.1.2 → dipex-7.2.0}/integrations/ad_integration/sync_mo_uuid_to_ad.py +0 -0
  30. {dipex-7.1.2 → dipex-7.2.0}/integrations/ad_integration/test_connectivity.py +0 -0
  31. {dipex-7.1.2 → dipex-7.2.0}/integrations/ad_integration/tests/__init__.py +0 -0
  32. {dipex-7.1.2 → dipex-7.2.0}/integrations/ad_integration/tests/mocks.py +0 -0
  33. {dipex-7.1.2 → dipex-7.2.0}/integrations/ad_integration/tests/name_simulator.py +0 -0
  34. {dipex-7.1.2 → dipex-7.2.0}/integrations/ad_integration/tests/test_ad_common.py +0 -0
  35. {dipex-7.1.2 → dipex-7.2.0}/integrations/ad_integration/tests/test_ad_jinja_filters.py +0 -0
  36. {dipex-7.1.2 → dipex-7.2.0}/integrations/ad_integration/tests/test_ad_life_cycle.py +0 -0
  37. {dipex-7.1.2 → dipex-7.2.0}/integrations/ad_integration/tests/test_ad_logger.py +0 -0
  38. {dipex-7.1.2 → dipex-7.2.0}/integrations/ad_integration/tests/test_ad_reader.py +0 -0
  39. {dipex-7.1.2 → dipex-7.2.0}/integrations/ad_integration/tests/test_ad_sync.py +0 -0
  40. {dipex-7.1.2 → dipex-7.2.0}/integrations/ad_integration/tests/test_ad_writer.py +0 -0
  41. {dipex-7.1.2 → dipex-7.2.0}/integrations/ad_integration/tests/test_dot_mapping.py +0 -0
  42. {dipex-7.1.2 → dipex-7.2.0}/integrations/ad_integration/tests/test_first_included.py +0 -0
  43. {dipex-7.1.2 → dipex-7.2.0}/integrations/ad_integration/tests/test_location_element.py +0 -0
  44. {dipex-7.1.2 → dipex-7.2.0}/integrations/ad_integration/tests/test_mo_data_source.py +0 -0
  45. {dipex-7.1.2 → dipex-7.2.0}/integrations/ad_integration/tests/test_mo_to_ad_sync.py +0 -0
  46. {dipex-7.1.2 → dipex-7.2.0}/integrations/ad_integration/tests/test_morestsource.py +0 -0
  47. {dipex-7.1.2 → dipex-7.2.0}/integrations/ad_integration/tests/test_read_ad_conf_settings.py +0 -0
  48. {dipex-7.1.2 → dipex-7.2.0}/integrations/ad_integration/tests/test_recursive_dict_update.py +0 -0
  49. {dipex-7.1.2 → dipex-7.2.0}/integrations/ad_integration/tests/test_sync_mo_uuid_to_ad.py +0 -0
  50. {dipex-7.1.2 → dipex-7.2.0}/integrations/ad_integration/tests/test_usernames.py +0 -0
  51. {dipex-7.1.2 → dipex-7.2.0}/integrations/ad_integration/tests/test_utils.py +0 -0
  52. {dipex-7.1.2 → dipex-7.2.0}/integrations/ad_integration/user_names.py +0 -0
  53. {dipex-7.1.2 → dipex-7.2.0}/integrations/ad_integration/username_rules/method_2.py +0 -0
  54. {dipex-7.1.2 → dipex-7.2.0}/integrations/ad_integration/utils.py +0 -0
  55. {dipex-7.1.2 → dipex-7.2.0}/integrations/dawa_helper.py +0 -0
  56. {dipex-7.1.2 → dipex-7.2.0}/integrations/opus/clear_and_import_opus.py +0 -0
  57. {dipex-7.1.2 → dipex-7.2.0}/integrations/opus/opus_check_dar_adresses.py +0 -0
  58. {dipex-7.1.2 → dipex-7.2.0}/integrations/opus/opus_diff_import.py +0 -0
  59. {dipex-7.1.2 → dipex-7.2.0}/integrations/opus/opus_exceptions.py +0 -0
  60. {dipex-7.1.2 → dipex-7.2.0}/integrations/opus/opus_file_reader.py +0 -0
  61. {dipex-7.1.2 → dipex-7.2.0}/integrations/opus/opus_helpers.py +0 -0
  62. {dipex-7.1.2 → dipex-7.2.0}/integrations/opus/opus_reimport_one.py +0 -0
  63. {dipex-7.1.2 → dipex-7.2.0}/integrations/opus/org_tree_print/main.py +0 -0
  64. {dipex-7.1.2 → dipex-7.2.0}/integrations/opus/payloads.py +0 -0
  65. {dipex-7.1.2 → dipex-7.2.0}/integrations/opus/tests/test_opus_diff_import.py +0 -0
  66. {dipex-7.1.2 → dipex-7.2.0}/integrations/opus/tests/test_opus_file_reader.py +0 -0
  67. {dipex-7.1.2 → dipex-7.2.0}/integrations/opus/tests/test_opus_helpers.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: DIPEX
3
- Version: 7.1.2
3
+ Version: 7.2.0
4
4
  Summary: OS2mo-data-import-and-export
5
5
  License: MPL-2.0
6
6
  Keywords: DIPEX,OS2mo-data-import-and-export
@@ -15,6 +15,7 @@ from uuid import UUID
15
15
  from fastapi import APIRouter
16
16
  from fastapi import Depends
17
17
  from fastapi import FastAPI
18
+ from fastapi import HTTPException
18
19
  from fastramqpi.config import Settings as FastRAMQPISettings
19
20
  from fastramqpi.depends import from_user_context
20
21
  from fastramqpi.events import Event
@@ -45,6 +46,8 @@ from .sql_table_defs import Leder
45
46
  from .sql_table_defs import LederAnsvar
46
47
  from .sql_table_defs import Orlov
47
48
  from .sql_table_defs import Tilknytning
49
+ from .trigger import lock_actual
50
+ from .trigger import lock_historic
48
51
  from .trigger import trigger_router
49
52
 
50
53
  logger = logging.getLogger(__name__)
@@ -274,6 +277,9 @@ async def trigger_actual_state_event(
274
277
  event: Event[UUID],
275
278
  sql_exporter: SqlExport,
276
279
  ) -> None:
280
+ if lock_actual.locked():
281
+ # Ensures we don't miss updates when data from the full export is swaped from the temporary tables
282
+ raise HTTPException(503, "Full export running, retry event later")
277
283
  handle_function = handle_function_map[mo_type]
278
284
  await handle_function(uuid=event.subject, sql_exporter=sql_exporter)
279
285
 
@@ -284,6 +290,9 @@ async def trigger_historic_event(
284
290
  event: Event[UUID],
285
291
  sql_exporter: SqlExportHistoric,
286
292
  ) -> None:
293
+ if lock_historic.locked():
294
+ # Ensures we don't miss updates when data from the full export is swaped from the temporary tables
295
+ raise HTTPException(503, "Full historic export running, retry event later")
287
296
  handle_function = handle_function_map[mo_type]
288
297
  await handle_function(uuid=event.subject, sql_exporter=sql_exporter)
289
298
 
@@ -341,8 +350,8 @@ def create_app(**kwargs) -> FastAPI:
341
350
  # "Disable" last run metric to avoid erroneous alerts; it does not make
342
351
  # sense for an event-driven integration without a rundb.
343
352
  dipex_last_success_timestamp.set_function(time.time)
344
- else:
345
- fastramqpi.get_app().include_router(trigger_router)
353
+
354
+ fastramqpi.get_app().include_router(trigger_router)
346
355
  fastramqpi.add_context(settings=settings, sql_exporter=None)
347
356
 
348
357
  app = fastramqpi.get_app()
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "DIPEX"
3
- version = "7.1.2"
3
+ version = "7.2.0"
4
4
  authors = ["Magenta ApS <info@magenta.dk>"]
5
5
  description = "OS2mo-data-import-and-export"
6
6
  license = "MPL-2.0"
File without changes
File without changes