mirror of
https://gitea.publichub.eu/oscar.krause/fastapi-dls.git
synced 2026-04-09 06:05:48 +03:00
Compare commits
23 Commits
fda73a95d3
...
5db399a6a2
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
5db399a6a2 | ||
|
|
1bac8dda50 | ||
|
|
8289db7c19 | ||
|
|
d462faf184 | ||
|
|
ae98e19aa5 | ||
|
|
4de214d58d | ||
|
|
95f6d1cabc | ||
|
|
eb9d72f0da | ||
|
|
029d91bc5a | ||
|
|
db2e945567 | ||
|
|
feba605834 | ||
|
|
8cb3523e8b | ||
|
|
232fedeff5 | ||
|
|
f5d720a989 | ||
|
|
4c237bfbd7 | ||
|
|
3e89e2ec8d | ||
|
|
a45b78f379 | ||
|
|
231fa6016b | ||
|
|
990a952901 | ||
|
|
8ecf7dc977 | ||
|
|
aff66e0e25 | ||
|
|
413d8c4090 | ||
|
|
9ad8f54f1b |
@@ -41,7 +41,6 @@ build:apt:
|
||||
interruptible: true
|
||||
stage: build
|
||||
rules:
|
||||
- if: $CI_COMMIT_BRANCH && $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
|
||||
- if: $CI_COMMIT_TAG
|
||||
variables:
|
||||
VERSION: $CI_COMMIT_REF_NAME
|
||||
@@ -163,12 +162,11 @@ test:
|
||||
.test:apt:
|
||||
stage: test
|
||||
rules:
|
||||
- if: $CI_COMMIT_BRANCH && $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
|
||||
- if: $CI_PIPELINE_SOURCE == 'merge_request_event'
|
||||
- if: $CI_COMMIT_BRANCH && $CI_COMMIT_BRANCH != $CI_DEFAULT_BRANCH
|
||||
changes:
|
||||
- app/**/*
|
||||
- .DEBIAN/**/*
|
||||
- .gitlab-ci.yml
|
||||
- if: $CI_PIPELINE_SOURCE == 'merge_request_event'
|
||||
needs:
|
||||
- job: build:apt
|
||||
artifacts: true
|
||||
@@ -213,12 +211,11 @@ test:apt:
|
||||
test:pacman:archlinux:
|
||||
image: archlinux:base
|
||||
rules:
|
||||
- if: $CI_COMMIT_BRANCH && $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
|
||||
- if: $CI_PIPELINE_SOURCE == 'merge_request_event'
|
||||
- if: $CI_COMMIT_BRANCH && $CI_COMMIT_BRANCH != $CI_DEFAULT_BRANCH
|
||||
changes:
|
||||
- app/**/*
|
||||
- .PKGBUILD/**/*
|
||||
- .gitlab-ci.yml
|
||||
- if: $CI_PIPELINE_SOURCE == 'merge_request_event'
|
||||
needs:
|
||||
- job: build:pacman
|
||||
artifacts: true
|
||||
|
||||
44
app/main.py
44
app/main.py
@@ -370,8 +370,8 @@ async def auth_v1_code(request: Request):
|
||||
|
||||
response = {
|
||||
"auth_code": auth_code,
|
||||
"prompts": None,
|
||||
"sync_timestamp": cur_time.strftime(DT_FORMAT),
|
||||
"prompts": None
|
||||
}
|
||||
|
||||
return JSONr(response)
|
||||
@@ -404,18 +404,18 @@ async def auth_v1_token(request: Request):
|
||||
'iss': 'https://cls.nvidia.org',
|
||||
'aud': 'https://cls.nvidia.org',
|
||||
'exp': timegm(access_expires_on.timetuple()),
|
||||
'origin_ref': origin_ref,
|
||||
'key_ref': SITE_KEY_XID,
|
||||
'kid': SITE_KEY_XID,
|
||||
'origin_ref': origin_ref,
|
||||
}
|
||||
|
||||
auth_token = jwt.encode(new_payload, key=jwt_encode_key, headers={'kid': payload.get('kid')}, algorithm=ALGORITHMS.RS256)
|
||||
|
||||
response = {
|
||||
"auth_token": auth_token,
|
||||
"expires": access_expires_on.strftime(DT_FORMAT),
|
||||
"prompts": None,
|
||||
"auth_token": auth_token,
|
||||
"sync_timestamp": cur_time.strftime(DT_FORMAT),
|
||||
"prompts": None
|
||||
}
|
||||
|
||||
return JSONr(response)
|
||||
@@ -690,21 +690,21 @@ async def leasing_v1_lessor(request: Request):
|
||||
lease_ref = str(uuid4())
|
||||
expires = cur_time + LEASE_EXPIRE_DELTA
|
||||
lease_result_list.append({
|
||||
"ordinal": None,
|
||||
"error": None,
|
||||
# https://docs.nvidia.com/license-system/latest/nvidia-license-system-user-guide/index.html
|
||||
"lease": {
|
||||
"ref": lease_ref,
|
||||
"created": cur_time.strftime(DT_FORMAT),
|
||||
"expires": expires.strftime(DT_FORMAT),
|
||||
"feature_name": "GRID-Virtual-WS", # todo
|
||||
"lease_intent_id": None,
|
||||
"license_type": "CONCURRENT_COUNTED_SINGLE",
|
||||
"metadata": None,
|
||||
"offline_lease": False, # todo
|
||||
"product_name": "NVIDIA RTX Virtual Workstation", # todo
|
||||
"recommended_lease_renewal": LEASE_RENEWAL_PERIOD,
|
||||
"ref": lease_ref,
|
||||
},
|
||||
"ordinal": None,
|
||||
"offline_lease": "false", # todo
|
||||
"license_type": "CONCURRENT_COUNTED_SINGLE",
|
||||
"lease_intent_id": None,
|
||||
"metadata": None,
|
||||
"feature_name": "GRID-Virtual-WS", # todo
|
||||
"product_name": "NVIDIA RTX Virtual Workstation", # todo
|
||||
}
|
||||
})
|
||||
|
||||
data = Lease(origin_ref=origin_ref, lease_ref=lease_ref, lease_created=cur_time, lease_expires=expires)
|
||||
@@ -713,15 +713,15 @@ async def leasing_v1_lessor(request: Request):
|
||||
response = {
|
||||
"client_challenge": j.get('client_challenge'),
|
||||
"lease_result_list": lease_result_list,
|
||||
"prompts": None,
|
||||
"result_code": None,
|
||||
"sync_timestamp": cur_time.strftime(DT_FORMAT),
|
||||
"prompts": None
|
||||
}
|
||||
|
||||
logger.debug(response)
|
||||
|
||||
signature = f'b\'{randbytes(256).hex()}\''
|
||||
return JSONr(response, headers={'access-control-expose-headers': 'X-NLS-Signature', 'X-NLS-Signature': signature})
|
||||
return JSONr(response, headers={'access-control-expose-headers': 'X-NLS-Signature', 'x-nls-signature': signature})
|
||||
|
||||
|
||||
# venv/lib/python3.9/site-packages/nls_services_lease/test/test_lease_multi_controller.py
|
||||
@@ -737,8 +737,8 @@ async def leasing_v1_lessor_lease(request: Request):
|
||||
|
||||
response = {
|
||||
"active_lease_list": active_lease_list,
|
||||
"prompts": None,
|
||||
"sync_timestamp": cur_time.strftime(DT_FORMAT),
|
||||
"prompts": None
|
||||
}
|
||||
|
||||
return JSONr(response)
|
||||
@@ -760,20 +760,18 @@ async def leasing_v1_lease_renew(request: Request, lease_ref: str):
|
||||
expires = cur_time + LEASE_EXPIRE_DELTA
|
||||
response = {
|
||||
"client_challenge": j.get('client_challenge'),
|
||||
"expires": expires.strftime(DT_FORMAT),
|
||||
"feature_expired": False,
|
||||
"lease_ref": lease_ref,
|
||||
"metadata": None,
|
||||
"expires": expires.strftime(DT_FORMAT),
|
||||
"recommended_lease_renewal": LEASE_RENEWAL_PERIOD,
|
||||
"offline_lease": True,
|
||||
"prompts": None,
|
||||
"recommended_lease_renewal": LEASE_RENEWAL_PERIOD,
|
||||
"sync_timestamp": cur_time.strftime(DT_FORMAT),
|
||||
}
|
||||
|
||||
Lease.renew(db, entity, expires, cur_time)
|
||||
|
||||
signature = f'b\'{randbytes(256).hex()}\''
|
||||
return JSONr(response, headers={'access-control-expose-headers': 'X-NLS-Signature', 'X-NLS-Signature': signature})
|
||||
return JSONr(response, headers={'access-control-expose-headers': 'X-NLS-Signature', 'x-nls-signature': signature})
|
||||
|
||||
|
||||
# venv/lib/python3.9/site-packages/nls_services_lease/test/test_lease_single_controller.py
|
||||
@@ -817,8 +815,8 @@ async def leasing_v1_lessor_lease_remove(request: Request):
|
||||
response = {
|
||||
"released_lease_list": released_lease_list,
|
||||
"release_failure_list": None,
|
||||
"prompts": None,
|
||||
"sync_timestamp": cur_time.strftime(DT_FORMAT),
|
||||
"prompts": None
|
||||
}
|
||||
|
||||
return JSONr(response)
|
||||
@@ -839,8 +837,8 @@ async def leasing_v1_lessor_shutdown(request: Request):
|
||||
response = {
|
||||
"released_lease_list": released_lease_list,
|
||||
"release_failure_list": None,
|
||||
"prompts": None,
|
||||
"sync_timestamp": cur_time.strftime(DT_FORMAT),
|
||||
"prompts": None
|
||||
}
|
||||
|
||||
return JSONr(response)
|
||||
|
||||
@@ -212,7 +212,7 @@ def test_leasing_v1_lessor():
|
||||
|
||||
client_challenge = response.json().get('client_challenge')
|
||||
assert client_challenge == payload.get('client_challenge')
|
||||
signature = eval(response.headers.get('X-NLS-Signature'))
|
||||
signature = eval(response.headers.get('x-nls-signature'))
|
||||
assert len(signature) == 512
|
||||
|
||||
lease_result_list = response.json().get('lease_result_list')
|
||||
@@ -244,7 +244,7 @@ def test_leasing_v1_lease_renew():
|
||||
|
||||
client_challenge = response.json().get('client_challenge')
|
||||
assert client_challenge == payload.get('client_challenge')
|
||||
signature = eval(response.headers.get('X-NLS-Signature'))
|
||||
signature = eval(response.headers.get('x-nls-signature'))
|
||||
assert len(signature) == 512
|
||||
|
||||
lease_ref = response.json().get('lease_ref')
|
||||
|
||||
Reference in New Issue
Block a user