python3-cyberfusion-queue-support 3.3.2__tar.gz → 4.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.
- {python3_cyberfusion_queue_support-3.3.2 → python3_cyberfusion_queue_support-4.0}/PKG-INFO +5 -5
- {python3_cyberfusion_queue_support-3.3.2 → python3_cyberfusion_queue_support-4.0}/pyproject.toml +5 -5
- {python3_cyberfusion_queue_support-3.3.2 → python3_cyberfusion_queue_support-4.0}/src/cyberfusion/QueueSupport/__init__.py +13 -2
- {python3_cyberfusion_queue_support-3.3.2 → python3_cyberfusion_queue_support-4.0}/src/cyberfusion/QueueSupport/database.py +6 -0
- {python3_cyberfusion_queue_support-3.3.2 → python3_cyberfusion_queue_support-4.0}/src/cyberfusion/QueueSupport/items/mkdir.py +0 -2
- python3_cyberfusion_queue_support-4.0/src/cyberfusion/QueueSupport/migrations/versions/19e77347a42d_queue_items_add_started_ended__at.py +29 -0
- {python3_cyberfusion_queue_support-3.3.2 → python3_cyberfusion_queue_support-4.0}/src/python3_cyberfusion_queue_support.egg-info/PKG-INFO +5 -5
- {python3_cyberfusion_queue_support-3.3.2 → python3_cyberfusion_queue_support-4.0}/src/python3_cyberfusion_queue_support.egg-info/SOURCES.txt +1 -0
- python3_cyberfusion_queue_support-4.0/src/python3_cyberfusion_queue_support.egg-info/requires.txt +5 -0
- python3_cyberfusion_queue_support-3.3.2/src/python3_cyberfusion_queue_support.egg-info/requires.txt +0 -5
- {python3_cyberfusion_queue_support-3.3.2 → python3_cyberfusion_queue_support-4.0}/README.md +0 -0
- {python3_cyberfusion_queue_support-3.3.2 → python3_cyberfusion_queue_support-4.0}/setup.cfg +0 -0
- {python3_cyberfusion_queue_support-3.3.2 → python3_cyberfusion_queue_support-4.0}/src/cyberfusion/QueueSupport/encoders.py +0 -0
- {python3_cyberfusion_queue_support-3.3.2 → python3_cyberfusion_queue_support-4.0}/src/cyberfusion/QueueSupport/enums.py +0 -0
- {python3_cyberfusion_queue_support-3.3.2 → python3_cyberfusion_queue_support-4.0}/src/cyberfusion/QueueSupport/exceptions/__init__.py +0 -0
- {python3_cyberfusion_queue_support-3.3.2 → python3_cyberfusion_queue_support-4.0}/src/cyberfusion/QueueSupport/interfaces.py +0 -0
- {python3_cyberfusion_queue_support-3.3.2 → python3_cyberfusion_queue_support-4.0}/src/cyberfusion/QueueSupport/items/__init__.py +0 -0
- {python3_cyberfusion_queue_support-3.3.2 → python3_cyberfusion_queue_support-4.0}/src/cyberfusion/QueueSupport/items/chmod.py +0 -0
- {python3_cyberfusion_queue_support-3.3.2 → python3_cyberfusion_queue_support-4.0}/src/cyberfusion/QueueSupport/items/chown.py +0 -0
- {python3_cyberfusion_queue_support-3.3.2 → python3_cyberfusion_queue_support-4.0}/src/cyberfusion/QueueSupport/items/command.py +0 -0
- {python3_cyberfusion_queue_support-3.3.2 → python3_cyberfusion_queue_support-4.0}/src/cyberfusion/QueueSupport/items/copy.py +0 -0
- {python3_cyberfusion_queue_support-3.3.2 → python3_cyberfusion_queue_support-4.0}/src/cyberfusion/QueueSupport/items/database_create.py +0 -0
- {python3_cyberfusion_queue_support-3.3.2 → python3_cyberfusion_queue_support-4.0}/src/cyberfusion/QueueSupport/items/database_drop.py +0 -0
- {python3_cyberfusion_queue_support-3.3.2 → python3_cyberfusion_queue_support-4.0}/src/cyberfusion/QueueSupport/items/database_user_drop.py +0 -0
- {python3_cyberfusion_queue_support-3.3.2 → python3_cyberfusion_queue_support-4.0}/src/cyberfusion/QueueSupport/items/database_user_ensure_state.py +0 -0
- {python3_cyberfusion_queue_support-3.3.2 → python3_cyberfusion_queue_support-4.0}/src/cyberfusion/QueueSupport/items/database_user_grant_grant.py +0 -0
- {python3_cyberfusion_queue_support-3.3.2 → python3_cyberfusion_queue_support-4.0}/src/cyberfusion/QueueSupport/items/database_user_grant_revoke.py +0 -0
- {python3_cyberfusion_queue_support-3.3.2 → python3_cyberfusion_queue_support-4.0}/src/cyberfusion/QueueSupport/items/move.py +0 -0
- {python3_cyberfusion_queue_support-3.3.2 → python3_cyberfusion_queue_support-4.0}/src/cyberfusion/QueueSupport/items/rmtree.py +0 -0
- {python3_cyberfusion_queue_support-3.3.2 → python3_cyberfusion_queue_support-4.0}/src/cyberfusion/QueueSupport/items/systemd_daemon_reload.py +0 -0
- {python3_cyberfusion_queue_support-3.3.2 → python3_cyberfusion_queue_support-4.0}/src/cyberfusion/QueueSupport/items/systemd_tmp_files_create.py +0 -0
- {python3_cyberfusion_queue_support-3.3.2 → python3_cyberfusion_queue_support-4.0}/src/cyberfusion/QueueSupport/items/systemd_unit_disable.py +0 -0
- {python3_cyberfusion_queue_support-3.3.2 → python3_cyberfusion_queue_support-4.0}/src/cyberfusion/QueueSupport/items/systemd_unit_enable.py +0 -0
- {python3_cyberfusion_queue_support-3.3.2 → python3_cyberfusion_queue_support-4.0}/src/cyberfusion/QueueSupport/items/systemd_unit_reload.py +0 -0
- {python3_cyberfusion_queue_support-3.3.2 → python3_cyberfusion_queue_support-4.0}/src/cyberfusion/QueueSupport/items/systemd_unit_restart.py +0 -0
- {python3_cyberfusion_queue_support-3.3.2 → python3_cyberfusion_queue_support-4.0}/src/cyberfusion/QueueSupport/items/systemd_unit_start.py +0 -0
- {python3_cyberfusion_queue_support-3.3.2 → python3_cyberfusion_queue_support-4.0}/src/cyberfusion/QueueSupport/items/systemd_unit_stop.py +0 -0
- {python3_cyberfusion_queue_support-3.3.2 → python3_cyberfusion_queue_support-4.0}/src/cyberfusion/QueueSupport/items/unlink.py +0 -0
- {python3_cyberfusion_queue_support-3.3.2 → python3_cyberfusion_queue_support-4.0}/src/cyberfusion/QueueSupport/migrations/__init__.py +0 -0
- {python3_cyberfusion_queue_support-3.3.2 → python3_cyberfusion_queue_support-4.0}/src/cyberfusion/QueueSupport/migrations/env.py +0 -0
- {python3_cyberfusion_queue_support-3.3.2 → python3_cyberfusion_queue_support-4.0}/src/cyberfusion/QueueSupport/migrations/versions/03d4e411c575_add_fail_silently.py +0 -0
- {python3_cyberfusion_queue_support-3.3.2 → python3_cyberfusion_queue_support-4.0}/src/cyberfusion/QueueSupport/migrations/versions/2f4316506856_add_cascade_deletes.py +0 -0
- {python3_cyberfusion_queue_support-3.3.2 → python3_cyberfusion_queue_support-4.0}/src/cyberfusion/QueueSupport/migrations/versions/52d1b17abcd0_add_status.py +0 -0
- {python3_cyberfusion_queue_support-3.3.2 → python3_cyberfusion_queue_support-4.0}/src/cyberfusion/QueueSupport/migrations/versions/571e55ab5ed5_initial_migration.py +0 -0
- {python3_cyberfusion_queue_support-3.3.2 → python3_cyberfusion_queue_support-4.0}/src/cyberfusion/QueueSupport/migrations/versions/8023b9eecdd1_add_traceback_to_queue_items.py +0 -0
- {python3_cyberfusion_queue_support-3.3.2 → python3_cyberfusion_queue_support-4.0}/src/cyberfusion/QueueSupport/migrations/versions/8406a0af7394_set_status_on_existing_queue_processes.py +0 -0
- {python3_cyberfusion_queue_support-3.3.2 → python3_cyberfusion_queue_support-4.0}/src/cyberfusion/QueueSupport/migrations/versions/93c79cb2baba_add_indexes.py +0 -0
- {python3_cyberfusion_queue_support-3.3.2 → python3_cyberfusion_queue_support-4.0}/src/cyberfusion/QueueSupport/migrations/versions/9ae29b5db790_add_string_to_queue_item_outcomes.py +0 -0
- {python3_cyberfusion_queue_support-3.3.2 → python3_cyberfusion_queue_support-4.0}/src/cyberfusion/QueueSupport/migrations/versions/__init__.py +0 -0
- {python3_cyberfusion_queue_support-3.3.2 → python3_cyberfusion_queue_support-4.0}/src/cyberfusion/QueueSupport/outcomes.py +0 -0
- {python3_cyberfusion_queue_support-3.3.2 → python3_cyberfusion_queue_support-4.0}/src/cyberfusion/QueueSupport/scripts/__init__.py +0 -0
- {python3_cyberfusion_queue_support-3.3.2 → python3_cyberfusion_queue_support-4.0}/src/cyberfusion/QueueSupport/scripts/purge_queues.py +0 -0
- {python3_cyberfusion_queue_support-3.3.2 → python3_cyberfusion_queue_support-4.0}/src/cyberfusion/QueueSupport/sentinels.py +0 -0
- {python3_cyberfusion_queue_support-3.3.2 → python3_cyberfusion_queue_support-4.0}/src/cyberfusion/QueueSupport/settings.py +0 -0
- {python3_cyberfusion_queue_support-3.3.2 → python3_cyberfusion_queue_support-4.0}/src/cyberfusion/QueueSupport/utilities.py +0 -0
- {python3_cyberfusion_queue_support-3.3.2 → python3_cyberfusion_queue_support-4.0}/src/python3_cyberfusion_queue_support.egg-info/dependency_links.txt +0 -0
- {python3_cyberfusion_queue_support-3.3.2 → python3_cyberfusion_queue_support-4.0}/src/python3_cyberfusion_queue_support.egg-info/entry_points.txt +0 -0
- {python3_cyberfusion_queue_support-3.3.2 → python3_cyberfusion_queue_support-4.0}/src/python3_cyberfusion_queue_support.egg-info/top_level.txt +0 -0
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: python3-cyberfusion-queue-support
|
|
3
|
-
Version:
|
|
3
|
+
Version: 4.0
|
|
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
|
|
7
7
|
Description-Content-Type: text/markdown
|
|
8
8
|
Requires-Dist: python3-cyberfusion-systemd-support~=2.2
|
|
9
|
-
Requires-Dist: python3-cyberfusion-database-support~=3.
|
|
10
|
-
Requires-Dist: alembic==1.
|
|
11
|
-
Requires-Dist: SQLAlchemy==2.0.
|
|
12
|
-
Requires-Dist: pydantic-settings==2.
|
|
9
|
+
Requires-Dist: python3-cyberfusion-database-support~=3.3.0
|
|
10
|
+
Requires-Dist: alembic==1.18.4
|
|
11
|
+
Requires-Dist: SQLAlchemy==2.0.46
|
|
12
|
+
Requires-Dist: pydantic-settings==2.13.1
|
|
13
13
|
|
|
14
14
|
# python3-cyberfusion-queue-support
|
|
15
15
|
|
{python3_cyberfusion_queue_support-3.3.2 → python3_cyberfusion_queue_support-4.0}/pyproject.toml
RENAMED
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "python3-cyberfusion-queue-support"
|
|
7
|
-
version = "
|
|
7
|
+
version = "4.0"
|
|
8
8
|
description = "Library to queue actions."
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
authors = [
|
|
@@ -12,10 +12,10 @@ authors = [
|
|
|
12
12
|
]
|
|
13
13
|
dependencies = [
|
|
14
14
|
"python3-cyberfusion-systemd-support~=2.2",
|
|
15
|
-
"python3-cyberfusion-database-support~=3.
|
|
16
|
-
"alembic==1.
|
|
17
|
-
"SQLAlchemy==2.0.
|
|
18
|
-
"pydantic-settings==2.
|
|
15
|
+
"python3-cyberfusion-database-support~=3.3.0",
|
|
16
|
+
"alembic==1.18.4",
|
|
17
|
+
"SQLAlchemy==2.0.46",
|
|
18
|
+
"pydantic-settings==2.13.1",
|
|
19
19
|
]
|
|
20
20
|
|
|
21
21
|
[project.urls]
|
|
@@ -16,6 +16,7 @@ from cyberfusion.QueueSupport.enums import QueueProcessStatus
|
|
|
16
16
|
|
|
17
17
|
from cyberfusion.QueueSupport.interfaces import OutcomeInterface
|
|
18
18
|
from cyberfusion.QueueSupport.items import _Item
|
|
19
|
+
from datetime import datetime, UTC
|
|
19
20
|
|
|
20
21
|
logger = logging.getLogger(__name__)
|
|
21
22
|
|
|
@@ -72,6 +73,8 @@ class Queue:
|
|
|
72
73
|
deduplicated=deduplicated,
|
|
73
74
|
attributes=item,
|
|
74
75
|
traceback=None,
|
|
76
|
+
started_at=None,
|
|
77
|
+
ended_at=None,
|
|
75
78
|
)
|
|
76
79
|
|
|
77
80
|
self._database_session.add(object_)
|
|
@@ -95,6 +98,10 @@ class Queue:
|
|
|
95
98
|
for item_mapping in self.item_mappings
|
|
96
99
|
if not item_mapping.database_object.deduplicated
|
|
97
100
|
]:
|
|
101
|
+
started_at = datetime.now(UTC)
|
|
102
|
+
|
|
103
|
+
item_mapping.database_object.started_at = started_at
|
|
104
|
+
|
|
98
105
|
logger.debug(
|
|
99
106
|
"Processing item with ID '%s'", item_mapping.database_object.id
|
|
100
107
|
)
|
|
@@ -123,14 +130,18 @@ class Queue:
|
|
|
123
130
|
|
|
124
131
|
item_mapping.database_object.traceback = traceback.format_exc()
|
|
125
132
|
|
|
126
|
-
self._database_session.add(item_mapping.database_object)
|
|
127
|
-
|
|
128
133
|
if item_mapping.database_object.fail_silently:
|
|
129
134
|
process_object.status = QueueProcessStatus.WARNING
|
|
130
135
|
else:
|
|
131
136
|
process_object.status = QueueProcessStatus.FATAL
|
|
132
137
|
|
|
133
138
|
break
|
|
139
|
+
finally:
|
|
140
|
+
ended_at = datetime.now(UTC)
|
|
141
|
+
|
|
142
|
+
item_mapping.database_object.ended_at = ended_at
|
|
143
|
+
|
|
144
|
+
self._database_session.add(item_mapping.database_object)
|
|
134
145
|
|
|
135
146
|
outcomes.extend(item_outcomes)
|
|
136
147
|
|
|
@@ -155,6 +155,12 @@ class QueueItem(BaseModel):
|
|
|
155
155
|
traceback: Mapped[Optional[str]] = mapped_column(
|
|
156
156
|
String(),
|
|
157
157
|
)
|
|
158
|
+
started_at: Mapped[Optional[datetime]] = mapped_column(
|
|
159
|
+
DateTime,
|
|
160
|
+
)
|
|
161
|
+
ended_at: Mapped[Optional[datetime]] = mapped_column(
|
|
162
|
+
DateTime,
|
|
163
|
+
)
|
|
158
164
|
|
|
159
165
|
queue: Mapped["Queue"] = relationship(
|
|
160
166
|
"Queue", back_populates="queue_items", uselist=False
|
|
@@ -22,14 +22,12 @@ class MkdirItem(_Item):
|
|
|
22
22
|
self,
|
|
23
23
|
*,
|
|
24
24
|
path: str,
|
|
25
|
-
recursively: bool = False,
|
|
26
25
|
reference: Optional[str] = None,
|
|
27
26
|
hide_outcomes: bool = False,
|
|
28
27
|
fail_silently: bool = False,
|
|
29
28
|
) -> None:
|
|
30
29
|
"""Set attributes."""
|
|
31
30
|
self.path = path
|
|
32
|
-
self.recursively = recursively
|
|
33
31
|
self._reference = reference
|
|
34
32
|
self._hide_outcomes = hide_outcomes
|
|
35
33
|
self._fail_silently = fail_silently
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"""Queue items: add {started,ended}_at
|
|
2
|
+
|
|
3
|
+
Revision ID: 19e77347a42d
|
|
4
|
+
Revises: 93c79cb2baba
|
|
5
|
+
Create Date: 2026-02-20 13:32:09.803951
|
|
6
|
+
|
|
7
|
+
"""
|
|
8
|
+
|
|
9
|
+
from alembic import op
|
|
10
|
+
import sqlalchemy as sa
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
# revision identifiers, used by Alembic.
|
|
14
|
+
revision = "19e77347a42d"
|
|
15
|
+
down_revision = "93c79cb2baba"
|
|
16
|
+
branch_labels = None
|
|
17
|
+
depends_on = None
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
def upgrade() -> None:
|
|
21
|
+
with op.batch_alter_table("queue_items", schema=None) as batch_op:
|
|
22
|
+
batch_op.add_column(sa.Column("started_at", sa.DateTime(), nullable=True))
|
|
23
|
+
batch_op.add_column(sa.Column("ended_at", sa.DateTime(), nullable=True))
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
def downgrade() -> None:
|
|
27
|
+
with op.batch_alter_table("queue_items", schema=None) as batch_op:
|
|
28
|
+
batch_op.drop_column("ended_at")
|
|
29
|
+
batch_op.drop_column("started_at")
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: python3-cyberfusion-queue-support
|
|
3
|
-
Version:
|
|
3
|
+
Version: 4.0
|
|
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
|
|
7
7
|
Description-Content-Type: text/markdown
|
|
8
8
|
Requires-Dist: python3-cyberfusion-systemd-support~=2.2
|
|
9
|
-
Requires-Dist: python3-cyberfusion-database-support~=3.
|
|
10
|
-
Requires-Dist: alembic==1.
|
|
11
|
-
Requires-Dist: SQLAlchemy==2.0.
|
|
12
|
-
Requires-Dist: pydantic-settings==2.
|
|
9
|
+
Requires-Dist: python3-cyberfusion-database-support~=3.3.0
|
|
10
|
+
Requires-Dist: alembic==1.18.4
|
|
11
|
+
Requires-Dist: SQLAlchemy==2.0.46
|
|
12
|
+
Requires-Dist: pydantic-settings==2.13.1
|
|
13
13
|
|
|
14
14
|
# python3-cyberfusion-queue-support
|
|
15
15
|
|
|
@@ -37,6 +37,7 @@ src/cyberfusion/QueueSupport/items/unlink.py
|
|
|
37
37
|
src/cyberfusion/QueueSupport/migrations/__init__.py
|
|
38
38
|
src/cyberfusion/QueueSupport/migrations/env.py
|
|
39
39
|
src/cyberfusion/QueueSupport/migrations/versions/03d4e411c575_add_fail_silently.py
|
|
40
|
+
src/cyberfusion/QueueSupport/migrations/versions/19e77347a42d_queue_items_add_started_ended__at.py
|
|
40
41
|
src/cyberfusion/QueueSupport/migrations/versions/2f4316506856_add_cascade_deletes.py
|
|
41
42
|
src/cyberfusion/QueueSupport/migrations/versions/52d1b17abcd0_add_status.py
|
|
42
43
|
src/cyberfusion/QueueSupport/migrations/versions/571e55ab5ed5_initial_migration.py
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|