Compare commits

...

2 Commits

View File

@ -82,17 +82,17 @@ async def _health(request: Request):
@app.get('/-/config', summary='* Config', description='returns environment variables.') @app.get('/-/config', summary='* Config', description='returns environment variables.')
async def _config(): async def _config():
return JSONResponse({ return JSONResponse({
'VERSION': VERSION, 'VERSION': str(VERSION),
'COMMIT': COMMIT, 'COMMIT': str(COMMIT),
'DEBUG': DEBUG, 'DEBUG': str(DEBUG),
'DLS_URL': DLS_URL, 'DLS_URL': str(DLS_URL),
'DLS_PORT': DLS_PORT, 'DLS_PORT': str(DLS_PORT),
'SITE_KEY_XID': SITE_KEY_XID, 'SITE_KEY_XID': str(SITE_KEY_XID),
'INSTANCE_REF': INSTANCE_REF, 'INSTANCE_REF': str(INSTANCE_REF),
'TOKEN_EXPIRE_DELTA': TOKEN_EXPIRE_DELTA, 'TOKEN_EXPIRE_DELTA': str(TOKEN_EXPIRE_DELTA),
'LEASE_EXPIRE_DELTA': LEASE_EXPIRE_DELTA, 'LEASE_EXPIRE_DELTA': str(LEASE_EXPIRE_DELTA),
'LEASE_RENEWAL_PERIOD': LEASE_RENEWAL_PERIOD, 'LEASE_RENEWAL_PERIOD': str(LEASE_RENEWAL_PERIOD),
'CORS_ORIGINS': CORS_ORIGINS, 'CORS_ORIGINS': str(CORS_ORIGINS),
}) })
@ -487,6 +487,28 @@ async def leasing_v1_lessor_lease_remove(request: Request):
return JSONResponse(response) return JSONResponse(response)
@app.post('/leasing/v1/lessor/shutdown', description='shutdown all leases')
async def leasing_v1_lessor_shutdown(request: Request):
j, cur_time = json.loads((await request.body()).decode('utf-8'))
token = j['token']
token = jwt.decode(token=token, key=jwt_decode_key, algorithms=ALGORITHMS.RS256, options={'verify_aud': False})
origin_ref = token.get('origin_ref')
released_lease_list = list(map(lambda x: x.lease_ref, Lease.find_by_origin_ref(db, origin_ref)))
deletions = Lease.cleanup(db, origin_ref)
logging.info(f'> [ shutdown ]: {origin_ref}: removed {deletions} leases')
response = {
"released_lease_list": released_lease_list,
"release_failure_list": None,
"sync_timestamp": cur_time.isoformat(),
"prompts": None
}
return JSONResponse(response)
if __name__ == '__main__': if __name__ == '__main__':
import uvicorn import uvicorn