Commit 04128aa8 authored by Trishna Saeharaseelan's avatar Trishna Saeharaseelan
Browse files

feat: support binary payload

parent fc7b4cf3
Pipeline #112275 passed with stages
in 1 minute and 11 seconds
{
"header": {
"message_ID": "t1237003c-0000-11aa-a1eb-bvcdfghjgfdd",
"timestamp": "2023-03-16T00:00:00Z",
"version": 2,
"source": "autonomy_engine",
"destination": "soar.hermes.autosub.alr-52.send.mission_plan_encoded",
"delivery_type": "publish",
"encoded": true
},
"payload": {
"message_type": "mission_plan_encoded",
"data": "SDQke4uwyP/YQQAgAhA2AND/nu8nvQAAAAAAAAAACtejPa5HHUGkcBlB/tRYQW3nez5HWYFBAAD+zwBySUAAAADVek72v1N2lUQAAAABAQAAAAAAAAAAAAAAAAAAIAAAAQAAAAAAAAAA9P2cP166ab+9cg==",
"file_name": "ah1_03837434286438.sbd",
"is_binary": true
}
}
{
"header": {
"message_ID": "e1237003c-0000-11aa-a1eb-bvcdfghjgfdd",
"timestamp": "2023-03-16T00:00:00Z",
"version": 2,
"source": "hermes.ecosub2",
"destination": "soar.planet-ocean.ecosub.ecosub-2.receive.observation_encoded",
"delivery_type": "publish",
"encoded": true
},
"payload": {
"message_type": "observation_encoded",
"data": "T1N2lUQAAAABAQAAAAAAAAAAAAAAAAAAIAAAAQAAAAAAAAAA9P2cP166ab+9cg==",
"file_name": "ecosub1_200002114.txt",
"is_binary": true
}
}
{
"header": {
"message_ID": "t1237003c-0000-11aa-a1eb-bvcdfghjgfdd",
"timestamp": "2023-03-16T00:00:00Z",
"version": 2,
"source": "hermes.ah1",
"destination": "soar.noc.autosub.alr-52.receive.platform_status_encoded",
"delivery_type": "publish",
"encoded": true
},
"payload": {
"message_type": "platform_status_encoded",
"data": "SDQke4uwyP/YQQAgAhA2AND/nu8nvQAAAAAAAAAACtejPa5HHUGkcBlB/tRYQW3nez5HWYFBAAD+zwBySUAAAADVek72v1N2lUQAAAABAQAAAAAAAAAAAAAAAAAAIAAAAQAAAAAAAAAA9P2cP166ab+9cg==",
"file_name": "ah1_03837434286438.sbd",
"is_binary": true
}
}
{
"header": {
"message_ID": "e1237003c-0000-11aa-a1eb-bvcdfghjgfdd",
"timestamp": "2023-03-16T00:00:00Z",
"version": 2,
"source": "hermes.ecosub2",
"destination": "soar.planet-ocean.ecosub.ecosub-2.receive.observation_encoded",
"delivery_type": "publish",
"encoded": true
},
"payload": {
"message_type": "observation_encoded",
"data": "T1N2lUQAAAABAQAAAAAAAAAAAAAAAAAAIAAAAQAAAAAAAAAA9P2cP166ab+9cg==",
"file_name": "ecosub1_200002114.txt",
"is_binary": true
}
}
"""
schemas: Encoded (compiled) type messages that are applicable to compiled
platform statuses and observations (from the platform), and compiled
mission plans (to the platform). This encoded schema is applicable to the
different message types: mission_plan_encoded, observation_encoded, and
platform_status_encoded.
"""
encoded_schema = {
"type": "object",
"properties": {
"message_type": {
"type": "string",
"description": "Type of message",
"example": "mission_plan",
"enum": [
"mission_plan_encoded",
"observation_encoded",
"platform_status_encoded",
],
},
"data": {
"type": "string",
"description": "Base64 encoded string",
"example": "SDQke4uwyP/YQQAgAhA2AND/nu8nvQAAAAAAAAAACtejPa5HHUGkcB"
+ "AAAAIAAAAQAAAAAAAAAA9P2cP166ab+9cg==",
},
"file_name": {
"type": "string",
"description": "Name of file",
"example": "ah1-0238126349247372.bin",
},
"mime_type": {
"type": "string",
"description": "MIME type",
"example": "", # TODO: Add example
},
"is_binary": {
"type": "boolean",
"description": "Base64 encrypted binary data",
"example": True,
},
},
"required": ["data", "is_binary"],
}
from formats import message_header
from formats.encoded import encoded_schema
from formats.mission_plan import mission_plan_schema
from formats.observation import observation_schema
from formats.planning_configuration import planning_configuration_schema
......@@ -51,26 +52,38 @@ swagger_config = {
"propertyName": "message_type",
"mapping": {
"mission_plan": "#/components/schemas/mission_plan",
"mission_plan_encoded": "#/components/schemas/"
+ "mission_plan_encoded",
"observation": "#/components/schemas/observation",
"observation_encoded": "#/components/schemas/"
+ "observation_encoded",
"planning_configuration": "#/components/schemas/"
+ "planning_configuration",
"platform_status": "#/components/schemas/platform_status",
"platform_status_encoded": "#/components/schemas/"
+ "platform_status_encoded",
"acknowledgement": "#/components/schemas/acknowledgement",
},
},
"oneOf": [
{"$ref": "#/components/schemas/acknowledgement"},
{"$ref": "#/components/schemas/mission_plan"},
{"$ref": "#/components/schemas/mission_plan_encoded"},
{"$ref": "#/components/schemas/observation"},
{"$ref": "#/components/schemas/observation_encoded"},
{"$ref": "#/components/schemas/planning_configuration"},
{"$ref": "#/components/schemas/platform_status"},
{"$ref": "#/components/schemas/platform_status_encoded"},
],
},
"header": message_header,
"mission_plan": mission_plan_schema,
"mission_plan_encoded": encoded_schema,
"observation": observation_schema,
"observation_encoded": encoded_schema,
"planning_configuration": planning_configuration_schema,
"platform_status": platform_status_schema,
"platform_status_encoded": encoded_schema,
"acknowledgement": acknowledgement_schema,
}
},
......
This diff is collapsed.
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment