dev@locazia: fix metadata create error
This commit is contained in:
parent
962e8dce16
commit
3da514ac15
|
|
@ -1,7 +1,9 @@
|
||||||
import json
|
import json
|
||||||
|
import asyncio
|
||||||
from hashlib import sha256
|
from hashlib import sha256
|
||||||
|
|
||||||
from base58 import b58encode
|
from base58 import b58encode
|
||||||
|
from datetime import datetime, timedelta
|
||||||
from httpx import AsyncClient
|
from httpx import AsyncClient
|
||||||
|
|
||||||
from app.core.logger import make_log
|
from app.core.logger import make_log
|
||||||
|
|
@ -46,26 +48,31 @@ async def create_metadata_for_item(
|
||||||
metadata_hash = sha256(metadata_bin).digest()
|
metadata_hash = sha256(metadata_bin).digest()
|
||||||
metadata_hash_b58 = b58encode(metadata_hash).decode()
|
metadata_hash_b58 = b58encode(metadata_hash).decode()
|
||||||
|
|
||||||
|
metadata_content = None
|
||||||
|
init_ts = datetime.now()
|
||||||
async with AsyncClient() as client:
|
async with AsyncClient() as client:
|
||||||
response = await client.post(
|
while not metadata_content:
|
||||||
f"{PROJECT_HOST}/api/v1/storage",
|
response = await client.post(
|
||||||
files={"file": ('metadata.json', metadata_bin, 'json')},
|
f"{PROJECT_HOST}/api/v1/storage",
|
||||||
headers={
|
files={"file": ('metadata.json', metadata_bin, 'json')},
|
||||||
'X-Service-Signature': signer.sign(metadata_hash),
|
headers={
|
||||||
'X-Message-Hash': metadata_hash_b58,
|
'X-Service-Signature': signer.sign(metadata_hash),
|
||||||
}
|
'X-Message-Hash': metadata_hash_b58,
|
||||||
)
|
}
|
||||||
try:
|
)
|
||||||
assert response.status_code == 200
|
try:
|
||||||
except BaseException as e:
|
assert response.status_code == 200
|
||||||
make_log("create_metadata_for_item", f"Res: {response.text}, Error: {e}", level='error')
|
except BaseException as e:
|
||||||
raise e
|
make_log("create_metadata_for_item", f"Res: {response.text}, Error: {e}", level='error')
|
||||||
|
raise e
|
||||||
|
|
||||||
response_json = response.json()
|
response_json = response.json()
|
||||||
metadata_sha256 = response_json['content_sha256']
|
metadata_sha256 = response_json['content_sha256']
|
||||||
|
|
||||||
metadata_content = db_session.query(StoredContent).filter(StoredContent.hash == metadata_sha256).first()
|
metadata_content = db_session.query(StoredContent).filter(StoredContent.hash == metadata_sha256).first()
|
||||||
if metadata_content:
|
|
||||||
return metadata_content
|
|
||||||
|
|
||||||
raise Exception("Metadata not created")
|
await asyncio.sleep(.3)
|
||||||
|
if (datetime.now() - init_ts) > timedelta(seconds=10):
|
||||||
|
raise Exception("Metadata not created")
|
||||||
|
|
||||||
|
return metadata_content
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue