dbos 1.7.0a3__tar.gz → 1.7.0a4__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.
- {dbos-1.7.0a3 → dbos-1.7.0a4}/PKG-INFO +1 -1
- {dbos-1.7.0a3 → dbos-1.7.0a4}/dbos/_admin_server.py +6 -2
- {dbos-1.7.0a3 → dbos-1.7.0a4}/pyproject.toml +1 -1
- {dbos-1.7.0a3 → dbos-1.7.0a4}/tests/test_admin_server.py +24 -6
- {dbos-1.7.0a3 → dbos-1.7.0a4}/LICENSE +0 -0
- {dbos-1.7.0a3 → dbos-1.7.0a4}/README.md +0 -0
- {dbos-1.7.0a3 → dbos-1.7.0a4}/dbos/__init__.py +0 -0
- {dbos-1.7.0a3 → dbos-1.7.0a4}/dbos/__main__.py +0 -0
- {dbos-1.7.0a3 → dbos-1.7.0a4}/dbos/_app_db.py +0 -0
- {dbos-1.7.0a3 → dbos-1.7.0a4}/dbos/_classproperty.py +0 -0
- {dbos-1.7.0a3 → dbos-1.7.0a4}/dbos/_client.py +0 -0
- {dbos-1.7.0a3 → dbos-1.7.0a4}/dbos/_conductor/conductor.py +0 -0
- {dbos-1.7.0a3 → dbos-1.7.0a4}/dbos/_conductor/protocol.py +0 -0
- {dbos-1.7.0a3 → dbos-1.7.0a4}/dbos/_context.py +0 -0
- {dbos-1.7.0a3 → dbos-1.7.0a4}/dbos/_core.py +0 -0
- {dbos-1.7.0a3 → dbos-1.7.0a4}/dbos/_croniter.py +0 -0
- {dbos-1.7.0a3 → dbos-1.7.0a4}/dbos/_dbos.py +0 -0
- {dbos-1.7.0a3 → dbos-1.7.0a4}/dbos/_dbos_config.py +0 -0
- {dbos-1.7.0a3 → dbos-1.7.0a4}/dbos/_debug.py +0 -0
- {dbos-1.7.0a3 → dbos-1.7.0a4}/dbos/_docker_pg_helper.py +0 -0
- {dbos-1.7.0a3 → dbos-1.7.0a4}/dbos/_error.py +0 -0
- {dbos-1.7.0a3 → dbos-1.7.0a4}/dbos/_event_loop.py +0 -0
- {dbos-1.7.0a3 → dbos-1.7.0a4}/dbos/_fastapi.py +0 -0
- {dbos-1.7.0a3 → dbos-1.7.0a4}/dbos/_flask.py +0 -0
- {dbos-1.7.0a3 → dbos-1.7.0a4}/dbos/_kafka.py +0 -0
- {dbos-1.7.0a3 → dbos-1.7.0a4}/dbos/_kafka_message.py +0 -0
- {dbos-1.7.0a3 → dbos-1.7.0a4}/dbos/_logger.py +0 -0
- {dbos-1.7.0a3 → dbos-1.7.0a4}/dbos/_migrations/env.py +0 -0
- {dbos-1.7.0a3 → dbos-1.7.0a4}/dbos/_migrations/script.py.mako +0 -0
- {dbos-1.7.0a3 → dbos-1.7.0a4}/dbos/_migrations/versions/04ca4f231047_workflow_queues_executor_id.py +0 -0
- {dbos-1.7.0a3 → dbos-1.7.0a4}/dbos/_migrations/versions/27ac6900c6ad_add_queue_dedup.py +0 -0
- {dbos-1.7.0a3 → dbos-1.7.0a4}/dbos/_migrations/versions/50f3227f0b4b_fix_job_queue.py +0 -0
- {dbos-1.7.0a3 → dbos-1.7.0a4}/dbos/_migrations/versions/5c361fc04708_added_system_tables.py +0 -0
- {dbos-1.7.0a3 → dbos-1.7.0a4}/dbos/_migrations/versions/66478e1b95e5_consolidate_queues.py +0 -0
- {dbos-1.7.0a3 → dbos-1.7.0a4}/dbos/_migrations/versions/83f3732ae8e7_workflow_timeout.py +0 -0
- {dbos-1.7.0a3 → dbos-1.7.0a4}/dbos/_migrations/versions/933e86bdac6a_add_queue_priority.py +0 -0
- {dbos-1.7.0a3 → dbos-1.7.0a4}/dbos/_migrations/versions/a3b18ad34abe_added_triggers.py +0 -0
- {dbos-1.7.0a3 → dbos-1.7.0a4}/dbos/_migrations/versions/d76646551a6b_job_queue_limiter.py +0 -0
- {dbos-1.7.0a3 → dbos-1.7.0a4}/dbos/_migrations/versions/d76646551a6c_workflow_queue.py +0 -0
- {dbos-1.7.0a3 → dbos-1.7.0a4}/dbos/_migrations/versions/d994145b47b6_consolidate_inputs.py +0 -0
- {dbos-1.7.0a3 → dbos-1.7.0a4}/dbos/_migrations/versions/eab0cc1d9a14_job_queue.py +0 -0
- {dbos-1.7.0a3 → dbos-1.7.0a4}/dbos/_migrations/versions/f4b9b32ba814_functionname_childid_op_outputs.py +0 -0
- {dbos-1.7.0a3 → dbos-1.7.0a4}/dbos/_outcome.py +0 -0
- {dbos-1.7.0a3 → dbos-1.7.0a4}/dbos/_queue.py +0 -0
- {dbos-1.7.0a3 → dbos-1.7.0a4}/dbos/_recovery.py +0 -0
- {dbos-1.7.0a3 → dbos-1.7.0a4}/dbos/_registrations.py +0 -0
- {dbos-1.7.0a3 → dbos-1.7.0a4}/dbos/_roles.py +0 -0
- {dbos-1.7.0a3 → dbos-1.7.0a4}/dbos/_scheduler.py +0 -0
- {dbos-1.7.0a3 → dbos-1.7.0a4}/dbos/_schemas/__init__.py +0 -0
- {dbos-1.7.0a3 → dbos-1.7.0a4}/dbos/_schemas/application_database.py +0 -0
- {dbos-1.7.0a3 → dbos-1.7.0a4}/dbos/_schemas/system_database.py +0 -0
- {dbos-1.7.0a3 → dbos-1.7.0a4}/dbos/_serialization.py +0 -0
- {dbos-1.7.0a3 → dbos-1.7.0a4}/dbos/_sys_db.py +0 -0
- {dbos-1.7.0a3 → dbos-1.7.0a4}/dbos/_templates/dbos-db-starter/README.md +0 -0
- {dbos-1.7.0a3 → dbos-1.7.0a4}/dbos/_templates/dbos-db-starter/__package/__init__.py +0 -0
- {dbos-1.7.0a3 → dbos-1.7.0a4}/dbos/_templates/dbos-db-starter/__package/main.py.dbos +0 -0
- {dbos-1.7.0a3 → dbos-1.7.0a4}/dbos/_templates/dbos-db-starter/__package/schema.py +0 -0
- {dbos-1.7.0a3 → dbos-1.7.0a4}/dbos/_templates/dbos-db-starter/alembic.ini +0 -0
- {dbos-1.7.0a3 → dbos-1.7.0a4}/dbos/_templates/dbos-db-starter/dbos-config.yaml.dbos +0 -0
- {dbos-1.7.0a3 → dbos-1.7.0a4}/dbos/_templates/dbos-db-starter/migrations/env.py.dbos +0 -0
- {dbos-1.7.0a3 → dbos-1.7.0a4}/dbos/_templates/dbos-db-starter/migrations/script.py.mako +0 -0
- {dbos-1.7.0a3 → dbos-1.7.0a4}/dbos/_templates/dbos-db-starter/migrations/versions/2024_07_31_180642_init.py +0 -0
- {dbos-1.7.0a3 → dbos-1.7.0a4}/dbos/_templates/dbos-db-starter/start_postgres_docker.py +0 -0
- {dbos-1.7.0a3 → dbos-1.7.0a4}/dbos/_tracer.py +0 -0
- {dbos-1.7.0a3 → dbos-1.7.0a4}/dbos/_utils.py +0 -0
- {dbos-1.7.0a3 → dbos-1.7.0a4}/dbos/_workflow_commands.py +0 -0
- {dbos-1.7.0a3 → dbos-1.7.0a4}/dbos/cli/_github_init.py +0 -0
- {dbos-1.7.0a3 → dbos-1.7.0a4}/dbos/cli/_template_init.py +0 -0
- {dbos-1.7.0a3 → dbos-1.7.0a4}/dbos/cli/cli.py +0 -0
- {dbos-1.7.0a3 → dbos-1.7.0a4}/dbos/dbos-config.schema.json +0 -0
- {dbos-1.7.0a3 → dbos-1.7.0a4}/dbos/py.typed +0 -0
- {dbos-1.7.0a3 → dbos-1.7.0a4}/tests/__init__.py +0 -0
- {dbos-1.7.0a3 → dbos-1.7.0a4}/tests/atexit_no_ctor.py +0 -0
- {dbos-1.7.0a3 → dbos-1.7.0a4}/tests/atexit_no_launch.py +0 -0
- {dbos-1.7.0a3 → dbos-1.7.0a4}/tests/classdefs.py +0 -0
- {dbos-1.7.0a3 → dbos-1.7.0a4}/tests/client_collateral.py +0 -0
- {dbos-1.7.0a3 → dbos-1.7.0a4}/tests/client_worker.py +0 -0
- {dbos-1.7.0a3 → dbos-1.7.0a4}/tests/conftest.py +0 -0
- {dbos-1.7.0a3 → dbos-1.7.0a4}/tests/dupname_classdefs1.py +0 -0
- {dbos-1.7.0a3 → dbos-1.7.0a4}/tests/dupname_classdefsa.py +0 -0
- {dbos-1.7.0a3 → dbos-1.7.0a4}/tests/more_classdefs.py +0 -0
- {dbos-1.7.0a3 → dbos-1.7.0a4}/tests/queuedworkflow.py +0 -0
- {dbos-1.7.0a3 → dbos-1.7.0a4}/tests/test_async.py +0 -0
- {dbos-1.7.0a3 → dbos-1.7.0a4}/tests/test_classdecorators.py +0 -0
- {dbos-1.7.0a3 → dbos-1.7.0a4}/tests/test_cli.py +0 -0
- {dbos-1.7.0a3 → dbos-1.7.0a4}/tests/test_client.py +0 -0
- {dbos-1.7.0a3 → dbos-1.7.0a4}/tests/test_concurrency.py +0 -0
- {dbos-1.7.0a3 → dbos-1.7.0a4}/tests/test_config.py +0 -0
- {dbos-1.7.0a3 → dbos-1.7.0a4}/tests/test_croniter.py +0 -0
- {dbos-1.7.0a3 → dbos-1.7.0a4}/tests/test_dbos.py +0 -0
- {dbos-1.7.0a3 → dbos-1.7.0a4}/tests/test_debug.py +0 -0
- {dbos-1.7.0a3 → dbos-1.7.0a4}/tests/test_docker_secrets.py +0 -0
- {dbos-1.7.0a3 → dbos-1.7.0a4}/tests/test_failures.py +0 -0
- {dbos-1.7.0a3 → dbos-1.7.0a4}/tests/test_fastapi.py +0 -0
- {dbos-1.7.0a3 → dbos-1.7.0a4}/tests/test_fastapi_roles.py +0 -0
- {dbos-1.7.0a3 → dbos-1.7.0a4}/tests/test_flask.py +0 -0
- {dbos-1.7.0a3 → dbos-1.7.0a4}/tests/test_kafka.py +0 -0
- {dbos-1.7.0a3 → dbos-1.7.0a4}/tests/test_outcome.py +0 -0
- {dbos-1.7.0a3 → dbos-1.7.0a4}/tests/test_package.py +0 -0
- {dbos-1.7.0a3 → dbos-1.7.0a4}/tests/test_queue.py +0 -0
- {dbos-1.7.0a3 → dbos-1.7.0a4}/tests/test_scheduler.py +0 -0
- {dbos-1.7.0a3 → dbos-1.7.0a4}/tests/test_schema_migration.py +0 -0
- {dbos-1.7.0a3 → dbos-1.7.0a4}/tests/test_singleton.py +0 -0
- {dbos-1.7.0a3 → dbos-1.7.0a4}/tests/test_spans.py +0 -0
- {dbos-1.7.0a3 → dbos-1.7.0a4}/tests/test_sqlalchemy.py +0 -0
- {dbos-1.7.0a3 → dbos-1.7.0a4}/tests/test_workflow_introspection.py +0 -0
- {dbos-1.7.0a3 → dbos-1.7.0a4}/tests/test_workflow_management.py +0 -0
- {dbos-1.7.0a3 → dbos-1.7.0a4}/version/__init__.py +0 -0
@@ -3,7 +3,6 @@ from __future__ import annotations
|
|
3
3
|
import json
|
4
4
|
import re
|
5
5
|
import threading
|
6
|
-
from dataclasses import asdict
|
7
6
|
from functools import partial
|
8
7
|
from http.server import BaseHTTPRequestHandler, ThreadingHTTPServer
|
9
8
|
from typing import TYPE_CHECKING, Any, Dict, List, Optional, TypedDict
|
@@ -120,7 +119,12 @@ class AdminRequestHandler(BaseHTTPRequestHandler):
|
|
120
119
|
self.send_response(404)
|
121
120
|
self._end_headers()
|
122
121
|
return
|
123
|
-
|
122
|
+
workflow_output = (
|
123
|
+
conductor_protocol.WorkflowsOutput.from_workflow_information(
|
124
|
+
workflows[0]
|
125
|
+
)
|
126
|
+
)
|
127
|
+
response_body = json.dumps(workflow_output.__dict__).encode("utf-8")
|
124
128
|
self.send_response(200)
|
125
129
|
self.send_header("Content-Type", "application/json")
|
126
130
|
self.send_header("Content-Length", str(len(response_body)))
|
@@ -639,16 +639,16 @@ def test_get_workflow_by_id(dbos: DBOS) -> None:
|
|
639
639
|
pass
|
640
640
|
|
641
641
|
@DBOS.workflow()
|
642
|
-
def test_workflow_2() ->
|
643
|
-
|
642
|
+
def test_workflow_2(my_time: datetime) -> str:
|
643
|
+
return DBOS.workflow_id + " completed at " + my_time.isoformat()
|
644
644
|
|
645
645
|
# Start workflows
|
646
646
|
handle_1 = DBOS.start_workflow(test_workflow_1)
|
647
|
-
handle_2 = DBOS.start_workflow(test_workflow_2)
|
647
|
+
handle_2 = DBOS.start_workflow(test_workflow_2, datetime.now())
|
648
648
|
|
649
649
|
# Wait for workflows to complete
|
650
650
|
handle_1.get_result()
|
651
|
-
handle_2.get_result()
|
651
|
+
assert handle_2.get_result() is not None
|
652
652
|
|
653
653
|
# Get the workflow ID of the second workflow
|
654
654
|
workflow_id = handle_2.workflow_id
|
@@ -660,10 +660,28 @@ def test_get_workflow_by_id(dbos: DBOS) -> None:
|
|
660
660
|
), f"Expected status code 200, but got {response.status_code}"
|
661
661
|
|
662
662
|
workflow_data = response.json()
|
663
|
-
assert workflow_data["
|
663
|
+
assert workflow_data["WorkflowUUID"] == workflow_id, "Workflow ID mismatch"
|
664
664
|
assert (
|
665
|
-
workflow_data["
|
665
|
+
workflow_data["Status"] == "SUCCESS"
|
666
666
|
), "Expected workflow status to be SUCCESS"
|
667
|
+
assert workflow_data["WorkflowName"] == test_workflow_2.__qualname__
|
668
|
+
assert workflow_data["WorkflowClassName"] is None
|
669
|
+
assert workflow_data["WorkflowConfigName"] is None
|
670
|
+
assert workflow_data["AuthenticatedUser"] is None
|
671
|
+
assert workflow_data["AssumedRole"] is None
|
672
|
+
assert workflow_data["AuthenticatedRoles"] is None
|
673
|
+
assert workflow_data["Input"] is not None and len(workflow_data["Input"]) > 0
|
674
|
+
assert workflow_data["Output"] is not None and len(workflow_data["Output"]) > 0
|
675
|
+
assert workflow_data["Error"] is None
|
676
|
+
assert (
|
677
|
+
workflow_data["CreatedAt"] is not None and len(workflow_data["CreatedAt"]) > 0
|
678
|
+
)
|
679
|
+
assert (
|
680
|
+
workflow_data["UpdatedAt"] is not None and len(workflow_data["UpdatedAt"]) > 0
|
681
|
+
)
|
682
|
+
assert workflow_data["QueueName"] is None
|
683
|
+
assert workflow_data["ApplicationVersion"] == GlobalParams.app_version
|
684
|
+
assert workflow_data["ExecutorID"] == GlobalParams.executor_id
|
667
685
|
|
668
686
|
# Test GET /workflows/:workflow_id for a non-existing workflow
|
669
687
|
non_existing_workflow_id = "non-existing-id"
|
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
|
{dbos-1.7.0a3 → dbos-1.7.0a4}/dbos/_migrations/versions/04ca4f231047_workflow_queues_executor_id.py
RENAMED
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
|
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
|