1
1
#!/usr/bin/env python
2
2
3
3
from gitpod import Gitpod
4
- from utils import get_context_url , get_authenticated_user , get_environment_class_id , get_environment_class , create_environment
5
- import time
6
- import requests
7
-
8
- def check_environment_status (client , environment_id ):
9
- environment = client .environments .retrieve (environment_id = environment_id ).environment
10
- print (f"Environment status: { environment .status .phase } " )
11
- if environment .status .phase in ["ENVIRONMENT_PHASE_STOPPING" , "ENVIRONMENT_PHASE_STOPPED" , "ENVIRONMENT_PHASE_DELETING" , "ENVIRONMENT_PHASE_DELETED" ]:
12
- raise RuntimeError (f"Environment { environment_id } is in an unexpected phase: { environment .status .phase } " )
13
- elif environment .status .failure_message and len (environment .status .failure_message ) > 0 :
14
- raise RuntimeError (f"Environment { environment_id } failed: { '; ' .join (environment .status .failure_message )} " )
4
+ from utils import get_context_url , get_authenticated_user , get_environment_class_id , get_environment_class , create_environment , check_environment_status , stream_logs
5
+ import asyncio
15
6
16
7
def main () -> None :
17
8
client : Gitpod = Gitpod ()
@@ -61,7 +52,7 @@ def main() -> None:
61
52
)
62
53
63
54
log_url = None
64
- for event in event_stream :
55
+ for event in event_stream . _raw_iterator :
65
56
print (f"Received event: { event } " )
66
57
if event .resource_type == "RESOURCE_TYPE_ENVIRONMENT" and event .resource_id == environment_id :
67
58
check_environment_status (client , environment_id )
@@ -78,14 +69,11 @@ def main() -> None:
78
69
print (f"Task logs are available at: { log_url } " )
79
70
80
71
# Stream the log URL and print the logs
81
- response = requests .get (log_url , stream = True , headers = {"Authorization" : f"Bearer { logs_access_token } " })
82
- for line in response .iter_lines ():
83
- if line :
84
- print (line .decode ('utf-8' ))
72
+ asyncio .run (stream_logs (log_url , logs_access_token ))
85
73
86
74
finally :
87
75
client .environments .delete (environment_id = environment_id )
88
76
print (f"Deleted environment: { environment_id } " )
89
77
90
78
if __name__ == "__main__" :
91
- main ()
79
+ main ()
0 commit comments