Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 8 additions & 8 deletions anms-core/anms/routes/network_manager.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
# the prime contract 80NM0018D0004 between the Caltech and NASA under
# subcontract 1658085.
#
from fastapi import APIRouter, status
from fastapi import APIRouter, status, HTTPException
import requests
from pydantic import BaseModel

Expand Down Expand Up @@ -51,7 +51,7 @@ async def nm_get_version():
try:
request = requests.get(url=url)
except Exception:
return {}
raise HTTPException(status_code=status.HTTP_504_GATEWAY_TIMEOUT, detail="ConnectTimeout")
return request.json()


Expand All @@ -63,7 +63,7 @@ def nm_get_agents():
try:
request = requests.get(url=url)
except Exception:
return -1
raise HTTPException(status_code=status.HTTP_504_GATEWAY_TIMEOUT, detail="ConnectTimeout")
return request.json()


Expand All @@ -90,20 +90,20 @@ def do_nm_put_hex_eid(eid: str, ari: str):
url = nm_url + "/agents/eid/{}/send?form=hex".format(_prepare_url(eid))
logger.info('post to nm manager %s with eid %s and data %s' % (url, eid, ari))

try:
try:
request = requests.post(url=url,
data=ari,
headers={'Content-Type': 'text/plain'},
timeout=(2.0, 8.0) # 2s for manager to connect, 8s for it to respond
)
except requests.exceptions.ConnectTimeout:
return status.HTTP_504_GATEWAY_TIMEOUT
raise HTTPException(status_code=status.HTTP_504_GATEWAY_TIMEOUT, detail="ConnectTimeout")
except requests.exceptions.ReadTimeout:
return status.HTTP_504_GATEWAY_TIMEOUT
raise HTTPException(status_code=status.HTTP_504_GATEWAY_TIMEOUT, detail="ReadTimeout")
except requests.exceptions.Timeout:
return status.HTTP_504_GATEWAY_TIMEOUT
raise HTTPException(status_code=status.HTTP_504_GATEWAY_TIMEOUT, detail="Timeout")
except Exception:
return status.HTTP_500_INTERNAL_SERVER_ERROR
raise HTTPException(status_code=status.HTTP_500_INTERNAL_SERVER_ERROR)
return request.status_code


Expand Down
16 changes: 10 additions & 6 deletions anms-core/anms/routes/transcoder.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,7 @@
import time
import asyncio

from fastapi import APIRouter, Depends
from fastapi import status
from fastapi import APIRouter, Depends, status, HTTPException
from fastapi_pagination import Page, Params
from fastapi_pagination.ext.async_sqlalchemy import paginate

Expand Down Expand Up @@ -144,7 +143,7 @@
def transcoder_incoming_str(input_ari: str):
return _transcoder_put_str(input_ari)

def _transcoder_put_str(input_ari: str):
def transcoder_put_str(input_ari: str):
input_ari = input_ari.strip()
transcoder_log_id = None
send_to_transcode = False
Expand Down Expand Up @@ -188,16 +187,21 @@
if info.parsed_as != "pending":
break
if retries <= 0:
return { "idinfo" : idinfo, "info" : info, "status" : 504 }
raise HTTPException(status_code=504,

Check failure on line 190 in anms-core/anms/routes/transcoder.py

View check run for this annotation

SonarQubeCloud / SonarCloud Code Analysis

Document this HTTPException with status code 504 in the "responses" parameter.

See more on https://sonarcloud.io/project/issues?id=NASA-AMMOS_anms&issues=AZy-oByvC2mJGV9guxDr&open=AZy-oByvC2mJGV9guxDr&pullRequest=322
detail={ "idinfo" : idinfo, "info" : info, "status" : "transcoder timeout" })

retries -= 1

if info.parsed_as == "ERROR":
return { "idinfo" : idinfo, "info" : info, "status" : 500 }
raise HTTPException(status_code=500,

Check failure on line 196 in anms-core/anms/routes/transcoder.py

View check run for this annotation

SonarQubeCloud / SonarCloud Code Analysis

Document this HTTPException with status code 500 in the "responses" parameter.

See more on https://sonarcloud.io/project/issues?id=NASA-AMMOS_anms&issues=AZy-oByvC2mJGV9guxDs&open=AZy-oByvC2mJGV9guxDs&pullRequest=322
detail={ "idinfo" : idinfo, "info" : info, "status" : 500 })

# Publish
state = do_nm_put_hex_eid( eid, info.cbor )

return { "idinfo" : idinfo, "info" : info, "status" : state }
except HTTPException as e:
e.detail = { "idinfo" : idinfo, "info" : info, "status" : e.status_code }
raise e
except Exception as e:
logger.exception(e)
return status.HTTP_500_INTERNAL_SERVER_ERROR
Expand Down
2 changes: 1 addition & 1 deletion deps/dtnma-tools
Submodule dtnma-tools updated 303 files
1 change: 1 addition & 0 deletions testenv.Containerfile
Original file line number Diff line number Diff line change
Expand Up @@ -175,6 +175,7 @@ RUN systemctl enable ion bpecho@4 refda-ion && \
mkdir -p /var/run/ion

# Runtime config for this container
COPY deps/dtnma-tools/integration-test-ion/startup.uri /etc/refda/startup.uri
COPY deps/test-ion-configs/agent-2.rc /etc/ion/node-2.rc
COPY deps/test-ion-configs/agent-3.rc /etc/ion/node-3.rc

Expand Down
Loading