feat: Oracle Canvas, Revision History and Canvas Sharing (#33)
Co-authored-by: Sagnik <sagnik7896@gmail.com> Reviewed-on: #33
This commit was merged in pull request #33.
This commit is contained in:
42
infrastructure/desineuron_ingress/start_gpu.py
Normal file
42
infrastructure/desineuron_ingress/start_gpu.py
Normal file
@@ -0,0 +1,42 @@
|
||||
import boto3, os, time
|
||||
from pathlib import Path
|
||||
d={}
|
||||
for l in Path('/opt/desineuron-ops-control-plane/.env').read_text().splitlines():
|
||||
if '=' in l and not l.startswith('#'):
|
||||
k,v=l.split('=',1)
|
||||
d[k.strip()]=v.strip()
|
||||
os.environ['AWS_ACCESS_KEY_ID']=d.get('AWS_ACCESS_KEY_ID','')
|
||||
os.environ['AWS_SECRET_ACCESS_KEY']=d.get('AWS_SECRET_ACCESS_KEY','')
|
||||
ec2=boto3.client('ec2', region_name='us-east-1')
|
||||
|
||||
def get_gpu():
|
||||
for r in ec2.describe_instances()['Reservations']:
|
||||
for i in r['Instances']:
|
||||
if any(t['Key'] == 'Name' and t['Value'] == 'desineuron-comfy-gpu' for t in i.get('Tags', [])):
|
||||
return i
|
||||
return None
|
||||
|
||||
def main():
|
||||
while True:
|
||||
i = get_gpu()
|
||||
if not i:
|
||||
print('Not found')
|
||||
break
|
||||
state = i['State']['Name']
|
||||
print(f"Instance {i['InstanceId']} is {state}")
|
||||
if state == 'stopped':
|
||||
print('Starting instance...')
|
||||
ec2.start_instances(InstanceIds=[i['InstanceId']])
|
||||
time.sleep(5)
|
||||
elif state == 'stopping':
|
||||
print('Waiting for extremely aggressive stop sequence gracefully...')
|
||||
time.sleep(10)
|
||||
elif state == 'running':
|
||||
print('Instance successfully running payload on IP:', i.get('PrivateIpAddress'))
|
||||
break
|
||||
else:
|
||||
print('Waiting eagerly...')
|
||||
time.sleep(10)
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
Reference in New Issue
Block a user