File tree Expand file tree Collapse file tree 2 files changed +43
-5
lines changed
Expand file tree Collapse file tree 2 files changed +43
-5
lines changed Original file line number Diff line number Diff line change 11from enum import auto
2- from strenum import LowercaseStrEnum
2+ from strenum import LowercaseStrEnum , StrEnum
33
44from .region import Region
55from .runtime import Runtime
@@ -67,3 +67,39 @@ class GeometryRepresentation(LowercaseStrEnum):
6767 EWKT = auto ()
6868 EWKB = auto ()
6969 GEOJSON = auto ()
70+
71+
72+ class AppStatus (StrEnum ):
73+ PENDING = auto ()
74+ PREPARING = auto ()
75+ PREPARE_FAILED = auto ()
76+ REQUESTED = auto ()
77+ DEPLOYING = auto ()
78+ DEPLOY_FAILED = auto ()
79+ DEPLOYED = auto ()
80+ INITIALIZING = auto ()
81+ INIT_FAILED = auto ()
82+ READY = auto ()
83+ DESTROY_REQUESTED = auto ()
84+ DESTROYING = auto ()
85+ DESTROY_FAILED = auto ()
86+ DESTROYED = auto ()
87+
88+ def is_starting (self ):
89+ return self in (
90+ AppStatus .PENDING ,
91+ AppStatus .PREPARING ,
92+ AppStatus .REQUESTED ,
93+ AppStatus .DEPLOYING ,
94+ AppStatus .DEPLOYED ,
95+ AppStatus .INITIALIZING ,
96+ )
97+
98+ def is_terminal_state (self ):
99+ return self in (
100+ AppStatus .PREPARE_FAILED ,
101+ AppStatus .DEPLOY_FAILED ,
102+ AppStatus .INIT_FAILED ,
103+ AppStatus .DESTROY_FAILED ,
104+ AppStatus .DESTROYED ,
105+ )
Original file line number Diff line number Diff line change 2121 DEFAULT_SESSION_WAIT_TIMEOUT_SECONDS ,
2222 MAX_MESSAGE_SIZE ,
2323 PROTOCOL_VERSION ,
24- ResultsFormat ,
24+ AppStatus ,
2525 DataCompression ,
2626 GeometryRepresentation ,
27+ ResultsFormat ,
2728)
2829from .errors import (
2930 InterfaceError ,
@@ -107,11 +108,11 @@ def get_session_uri() -> str:
107108 r = requests .get (session_id_url , headers = headers )
108109 r .raise_for_status ()
109110 payload = r .json ()
110- status = payload .get ("status" )
111+ status = AppStatus ( payload .get ("status" ) )
111112 logging .info (" ... %s" , status )
112- if status in ( "REQUESTED" , "DEPLOYING" , "DEPLOYED" , "INITIALIZING" ):
113+ if status . is_starting ( ):
113114 raise tenacity .TryAgain ("SQL Session is not ready yet" )
114- elif status == " READY" :
115+ elif status == AppStatus . READY :
115116 return payload ["appMeta" ]["url" ]
116117 else :
117118 logging .error ("SQL session creation failed: %s; should not retry." , status )
@@ -120,6 +121,7 @@ def get_session_uri() -> str:
120121 try :
121122 logging .info ("Getting SQL session status from %s ..." , session_id_url )
122123 session_uri = get_session_uri ()
124+ logging .debug ("SQL session URI from app status: %s" , session_uri )
123125 except Exception as e :
124126 raise InterfaceError ("Could not acquire SQL session!" , e )
125127
You can’t perform that action at this time.
0 commit comments