python3-cyberfusion-queue-support 2.2.1__tar.gz → 2.2.3__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 (45) hide show
  1. {python3_cyberfusion_queue_support-2.2.1 → python3_cyberfusion_queue_support-2.2.3}/PKG-INFO +1 -1
  2. {python3_cyberfusion_queue_support-2.2.1 → python3_cyberfusion_queue_support-2.2.3}/pyproject.toml +1 -1
  3. {python3_cyberfusion_queue_support-2.2.1 → python3_cyberfusion_queue_support-2.2.3}/src/cyberfusion/QueueSupport/__init__.py +17 -12
  4. {python3_cyberfusion_queue_support-2.2.1 → python3_cyberfusion_queue_support-2.2.3}/src/cyberfusion/QueueSupport/database.py +5 -1
  5. python3_cyberfusion_queue_support-2.2.3/src/cyberfusion/QueueSupport/encoders.py +17 -0
  6. {python3_cyberfusion_queue_support-2.2.1 → python3_cyberfusion_queue_support-2.2.3}/src/python3_cyberfusion_queue_support.egg-info/PKG-INFO +1 -1
  7. {python3_cyberfusion_queue_support-2.2.1 → python3_cyberfusion_queue_support-2.2.3}/src/python3_cyberfusion_queue_support.egg-info/SOURCES.txt +1 -0
  8. {python3_cyberfusion_queue_support-2.2.1 → python3_cyberfusion_queue_support-2.2.3}/README.md +0 -0
  9. {python3_cyberfusion_queue_support-2.2.1 → python3_cyberfusion_queue_support-2.2.3}/setup.cfg +0 -0
  10. {python3_cyberfusion_queue_support-2.2.1 → python3_cyberfusion_queue_support-2.2.3}/src/cyberfusion/QueueSupport/exceptions/__init__.py +0 -0
  11. {python3_cyberfusion_queue_support-2.2.1 → python3_cyberfusion_queue_support-2.2.3}/src/cyberfusion/QueueSupport/interfaces.py +0 -0
  12. {python3_cyberfusion_queue_support-2.2.1 → python3_cyberfusion_queue_support-2.2.3}/src/cyberfusion/QueueSupport/items/__init__.py +0 -0
  13. {python3_cyberfusion_queue_support-2.2.1 → python3_cyberfusion_queue_support-2.2.3}/src/cyberfusion/QueueSupport/items/chmod.py +0 -0
  14. {python3_cyberfusion_queue_support-2.2.1 → python3_cyberfusion_queue_support-2.2.3}/src/cyberfusion/QueueSupport/items/chown.py +0 -0
  15. {python3_cyberfusion_queue_support-2.2.1 → python3_cyberfusion_queue_support-2.2.3}/src/cyberfusion/QueueSupport/items/command.py +0 -0
  16. {python3_cyberfusion_queue_support-2.2.1 → python3_cyberfusion_queue_support-2.2.3}/src/cyberfusion/QueueSupport/items/copy.py +0 -0
  17. {python3_cyberfusion_queue_support-2.2.1 → python3_cyberfusion_queue_support-2.2.3}/src/cyberfusion/QueueSupport/items/database_create.py +0 -0
  18. {python3_cyberfusion_queue_support-2.2.1 → python3_cyberfusion_queue_support-2.2.3}/src/cyberfusion/QueueSupport/items/database_drop.py +0 -0
  19. {python3_cyberfusion_queue_support-2.2.1 → python3_cyberfusion_queue_support-2.2.3}/src/cyberfusion/QueueSupport/items/database_user_drop.py +0 -0
  20. {python3_cyberfusion_queue_support-2.2.1 → python3_cyberfusion_queue_support-2.2.3}/src/cyberfusion/QueueSupport/items/database_user_ensure_state.py +0 -0
  21. {python3_cyberfusion_queue_support-2.2.1 → python3_cyberfusion_queue_support-2.2.3}/src/cyberfusion/QueueSupport/items/database_user_grant_grant.py +0 -0
  22. {python3_cyberfusion_queue_support-2.2.1 → python3_cyberfusion_queue_support-2.2.3}/src/cyberfusion/QueueSupport/items/database_user_grant_revoke.py +0 -0
  23. {python3_cyberfusion_queue_support-2.2.1 → python3_cyberfusion_queue_support-2.2.3}/src/cyberfusion/QueueSupport/items/mkdir.py +0 -0
  24. {python3_cyberfusion_queue_support-2.2.1 → python3_cyberfusion_queue_support-2.2.3}/src/cyberfusion/QueueSupport/items/move.py +0 -0
  25. {python3_cyberfusion_queue_support-2.2.1 → python3_cyberfusion_queue_support-2.2.3}/src/cyberfusion/QueueSupport/items/rmtree.py +0 -0
  26. {python3_cyberfusion_queue_support-2.2.1 → python3_cyberfusion_queue_support-2.2.3}/src/cyberfusion/QueueSupport/items/systemd_daemon_reload.py +0 -0
  27. {python3_cyberfusion_queue_support-2.2.1 → python3_cyberfusion_queue_support-2.2.3}/src/cyberfusion/QueueSupport/items/systemd_tmp_files_create.py +0 -0
  28. {python3_cyberfusion_queue_support-2.2.1 → python3_cyberfusion_queue_support-2.2.3}/src/cyberfusion/QueueSupport/items/systemd_unit_disable.py +0 -0
  29. {python3_cyberfusion_queue_support-2.2.1 → python3_cyberfusion_queue_support-2.2.3}/src/cyberfusion/QueueSupport/items/systemd_unit_enable.py +0 -0
  30. {python3_cyberfusion_queue_support-2.2.1 → python3_cyberfusion_queue_support-2.2.3}/src/cyberfusion/QueueSupport/items/systemd_unit_reload.py +0 -0
  31. {python3_cyberfusion_queue_support-2.2.1 → python3_cyberfusion_queue_support-2.2.3}/src/cyberfusion/QueueSupport/items/systemd_unit_restart.py +0 -0
  32. {python3_cyberfusion_queue_support-2.2.1 → python3_cyberfusion_queue_support-2.2.3}/src/cyberfusion/QueueSupport/items/systemd_unit_start.py +0 -0
  33. {python3_cyberfusion_queue_support-2.2.1 → python3_cyberfusion_queue_support-2.2.3}/src/cyberfusion/QueueSupport/items/systemd_unit_stop.py +0 -0
  34. {python3_cyberfusion_queue_support-2.2.1 → python3_cyberfusion_queue_support-2.2.3}/src/cyberfusion/QueueSupport/items/unlink.py +0 -0
  35. {python3_cyberfusion_queue_support-2.2.1 → python3_cyberfusion_queue_support-2.2.3}/src/cyberfusion/QueueSupport/migrations/__init__.py +0 -0
  36. {python3_cyberfusion_queue_support-2.2.1 → python3_cyberfusion_queue_support-2.2.3}/src/cyberfusion/QueueSupport/migrations/env.py +0 -0
  37. {python3_cyberfusion_queue_support-2.2.1 → python3_cyberfusion_queue_support-2.2.3}/src/cyberfusion/QueueSupport/migrations/versions/571e55ab5ed5_initial_migration.py +0 -0
  38. {python3_cyberfusion_queue_support-2.2.1 → python3_cyberfusion_queue_support-2.2.3}/src/cyberfusion/QueueSupport/migrations/versions/__init__.py +0 -0
  39. {python3_cyberfusion_queue_support-2.2.1 → python3_cyberfusion_queue_support-2.2.3}/src/cyberfusion/QueueSupport/outcomes.py +0 -0
  40. {python3_cyberfusion_queue_support-2.2.1 → python3_cyberfusion_queue_support-2.2.3}/src/cyberfusion/QueueSupport/settings.py +0 -0
  41. {python3_cyberfusion_queue_support-2.2.1 → python3_cyberfusion_queue_support-2.2.3}/src/cyberfusion/QueueSupport/utilities.py +0 -0
  42. {python3_cyberfusion_queue_support-2.2.1 → python3_cyberfusion_queue_support-2.2.3}/src/python3_cyberfusion_queue_support.egg-info/dependency_links.txt +0 -0
  43. {python3_cyberfusion_queue_support-2.2.1 → python3_cyberfusion_queue_support-2.2.3}/src/python3_cyberfusion_queue_support.egg-info/entry_points.txt +0 -0
  44. {python3_cyberfusion_queue_support-2.2.1 → python3_cyberfusion_queue_support-2.2.3}/src/python3_cyberfusion_queue_support.egg-info/requires.txt +0 -0
  45. {python3_cyberfusion_queue_support-2.2.1 → python3_cyberfusion_queue_support-2.2.3}/src/python3_cyberfusion_queue_support.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: python3-cyberfusion-queue-support
3
- Version: 2.2.1
3
+ Version: 2.2.3
4
4
  Summary: Library to queue actions.
5
5
  Author-email: Cyberfusion <support@cyberfusion.io>
6
6
  Project-URL: Source, https://github.com/CyberfusionIO/python3-cyberfusion-queue-support
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "python3-cyberfusion-queue-support"
7
- version = "2.2.1"
7
+ version = "2.2.3"
8
8
  description = "Library to queue actions."
9
9
  readme = "README.md"
10
10
  authors = [
@@ -108,19 +108,21 @@ class Queue:
108
108
  "Processing item with id '%s'", item_mapping.database_object.id
109
109
  )
110
110
 
111
+ item_outcomes = []
112
+
111
113
  if preview:
112
114
  if not item_mapping.item.hide_outcomes:
113
- outcomes.extend(item_mapping.item.outcomes)
115
+ item_outcomes.extend(item_mapping.item.outcomes)
114
116
  else:
115
117
  try:
116
118
  logger.debug(
117
119
  "Fulfilling item with id '%s'", item_mapping.database_object.id
118
120
  )
119
121
 
120
- fulfill_outcomes = item_mapping.item.fulfill()
121
-
122
- if not item_mapping.item.hide_outcomes:
123
- outcomes.extend(fulfill_outcomes)
122
+ if item_mapping.item.hide_outcomes:
123
+ item_mapping.item.fulfill()
124
+ else:
125
+ item_outcomes.extend(item_mapping.item.fulfill())
124
126
 
125
127
  logger.debug(
126
128
  "Fulfilled item with id '%s'", item_mapping.database_object.id
@@ -132,15 +134,18 @@ class Queue:
132
134
  item_mapping.item,
133
135
  ) from e
134
136
 
135
- for outcome in outcomes:
136
- outcome_object = QueueItemOutcome(
137
- queue_item=item_mapping.database_object,
138
- queue_process=process_object,
139
- type=outcome.__class__.__name__,
140
- attributes=outcome.__dict__,
137
+ outcomes.extend(item_outcomes)
138
+
139
+ for outcome in item_outcomes:
140
+ self._database_session.add(
141
+ QueueItemOutcome(
142
+ queue_item=item_mapping.database_object,
143
+ queue_process=process_object,
144
+ type=outcome.__class__.__name__,
145
+ attributes=outcome.__dict__,
146
+ )
141
147
  )
142
148
 
143
- self._database_session.add(outcome_object)
144
149
  self._database_session.commit()
145
150
 
146
151
  logger.debug("Processed item with id '%s'", item_mapping.database_object.id)
@@ -3,6 +3,7 @@ import os
3
3
  from alembic import command
4
4
  import sqlite3
5
5
  from datetime import datetime, timezone
6
+
6
7
  from sqlalchemy.pool.base import _ConnectionRecord
7
8
  from sqlalchemy import ForeignKey, MetaData, Boolean
8
9
  from sqlalchemy import create_engine, Column, DateTime, Integer, String
@@ -12,6 +13,7 @@ from sqlalchemy.engine import Engine
12
13
  from sqlalchemy import event
13
14
  from sqlalchemy.types import JSON
14
15
 
16
+ from cyberfusion.QueueSupport.encoders import json_serialize
15
17
  from cyberfusion.QueueSupport.settings import settings
16
18
 
17
19
 
@@ -47,7 +49,9 @@ def run_migrations() -> None:
47
49
 
48
50
  def make_database_session() -> Session:
49
51
  engine = create_engine(
50
- settings.database_path, connect_args={"check_same_thread": False}
52
+ settings.database_path,
53
+ connect_args={"check_same_thread": False},
54
+ json_serializer=json_serialize,
51
55
  )
52
56
 
53
57
  return sessionmaker(bind=engine)()
@@ -0,0 +1,17 @@
1
+ import json
2
+ from json import JSONEncoder
3
+ from typing import Any
4
+
5
+ from cyberfusion.SystemdSupport import Unit
6
+
7
+
8
+ class CustomEncoder(JSONEncoder):
9
+ def default(self, o: Any) -> Any:
10
+ if isinstance(o, Unit):
11
+ return {"name": o.name}
12
+
13
+ return super().default(o)
14
+
15
+
16
+ def json_serialize(obj: Any) -> str:
17
+ return json.dumps(obj, cls=CustomEncoder)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: python3-cyberfusion-queue-support
3
- Version: 2.2.1
3
+ Version: 2.2.3
4
4
  Summary: Library to queue actions.
5
5
  Author-email: Cyberfusion <support@cyberfusion.io>
6
6
  Project-URL: Source, https://github.com/CyberfusionIO/python3-cyberfusion-queue-support
@@ -3,6 +3,7 @@ pyproject.toml
3
3
  setup.cfg
4
4
  src/cyberfusion/QueueSupport/__init__.py
5
5
  src/cyberfusion/QueueSupport/database.py
6
+ src/cyberfusion/QueueSupport/encoders.py
6
7
  src/cyberfusion/QueueSupport/interfaces.py
7
8
  src/cyberfusion/QueueSupport/outcomes.py
8
9
  src/cyberfusion/QueueSupport/settings.py