5
5
import random
6
6
import sqlite3
7
7
import uuid
8
+ from enum import Enum
8
9
from typing import Any , Optional
9
10
10
11
import sqlalchemy as sa
@@ -108,16 +109,24 @@ def requests_cleaner(
108
109
raise
109
110
110
111
112
+ class RequestStatus (str , Enum ):
113
+ """Enum for request status."""
114
+
115
+ running = "running"
116
+ accepted = "accepted"
117
+
118
+
111
119
@app .command ()
112
- def delete_running_requests (
120
+ def delete_requests (
121
+ status : RequestStatus = RequestStatus .running ,
113
122
connection_string : Optional [str ] = None ,
114
123
minutes : float = typer .Option (0.0 ),
115
124
seconds : float = typer .Option (0.0 ),
116
125
hours : float = typer .Option (0.0 ),
117
126
days : float = typer .Option (0.0 ),
118
127
skip_confirmation : Annotated [bool , typer .Option ("--yes" , "-y" )] = False ,
119
128
) -> None :
120
- """Remove records from the system_requests table that are currently running .
129
+ """Remove records from the system_requests table that are in the specified status .
121
130
122
131
Parameters
123
132
----------
@@ -133,7 +142,7 @@ def delete_running_requests(
133
142
database .logger .info (f"deleting old system_requests before { timestamp } ." )
134
143
statement = (
135
144
sa .select (database .SystemRequest )
136
- .where (database .SystemRequest .status == "running" )
145
+ .where (database .SystemRequest .status == status )
137
146
.where (database .SystemRequest .created_at < timestamp )
138
147
)
139
148
requests = session .scalars (statement ).all ()
0 commit comments