feature/9128_change_radio_endpoints #3

Open
john.sitarski wants to merge 2 commits from feature/9128_change_radio_endpoints into main
2 changed files with 36 additions and 21 deletions
Showing only changes of commit c72cb2b4e2 - Show all commits

View File

@ -1,5 +1,6 @@
#! /usr/bin/env python3 #! /usr/bin/env python3
import routes
import os import os
import sys import sys
import requests import requests
@ -18,7 +19,7 @@ swag = Swagger(app)
radios = {} radios = {}
@app.route("/GetReport") @app.route(routes.endpoint_routes["b"])
def report(): def report():
"""Get streams report from the RTSP relay. """Get streams report from the RTSP relay.
--- ---
@ -40,7 +41,7 @@ def report():
return _error_message_json(e.message), 500 return _error_message_json(e.message), 500
@app.route("/radio/report") @app.route(routes.endpoint_routes["a"])
def radio_report(): def radio_report():
"""List radio devices available to the system. """List radio devices available to the system.
--- ---
@ -86,7 +87,7 @@ def connect(radio):
return "Radio device not found", 400 return "Radio device not found", 400
# TODO: reset might use this @app.route(routes.endpoint_routes["f"])
def disconnect(radio): def disconnect(radio):
"""Disconnect from a radio device. """Disconnect from a radio device.
--- ---
@ -112,7 +113,7 @@ def disconnect(radio):
# TODO: add post parameters... # TODO: add post parameters...
@app.route("ALEModem/Configure") @app.route(routes.endpoint_routes["c"])
def configure(): def configure():
"""Tune the radio to a frequency. """Tune the radio to a frequency.
You must connect to the radio before attempting to configure it. You must connect to the radio before attempting to configure it.
@ -141,7 +142,7 @@ def configure():
return _error_message_json("Radio not connected"), 400 return _error_message_json("Radio not connected"), 400
@app.route("ALEModem/StartCall") @app.route(routes.endpoint_routes["d"])
def start_stream(radio): def start_stream(radio):
"""Start the radio stream. """Start the radio stream.
Once the stream has been started, connect to the stream at: Once the stream has been started, connect to the stream at:
@ -159,6 +160,9 @@ def start_stream(radio):
400: 400:
description: JSON with error message. description: JSON with error message.
""" """
if id is not None:
_start_tuuube_stream(id)
else:
try: try:
radios[radio].start_stream() radios[radio].start_stream()
return jsonify("message", "successfully started radio stream"), 200 return jsonify("message", "successfully started radio stream"), 200
@ -166,7 +170,7 @@ def start_stream(radio):
return _error_message_json(e.message), 400 return _error_message_json(e.message), 400
@app.route("ALEModem/EndCall") @app.route(routes.endpoint_routes["e"])
def end_stream(radio): def end_stream(radio):
"""Terminate the radio stream. """Terminate the radio stream.
--- ---
@ -182,6 +186,9 @@ def end_stream(radio):
400: 400:
description: JSON with error message. description: JSON with error message.
""" """
if id is not None:
_end_tuuube_stream(id)
else:
try: try:
radios[radio].end_stream() radios[radio].end_stream()
return jsonify("message", "successfully ended radio stream"), 200 return jsonify("message", "successfully ended radio stream"), 200
@ -189,7 +196,7 @@ def end_stream(radio):
return _error_message_json(e.message), 400 return _error_message_json(e.message), 400
@app.route("/info") @app.route(routes.endpoint_routes["g"])
def radio_info(radio): def radio_info(radio):
"""Get information about a radio. """Get information about a radio.
--- ---
@ -214,8 +221,7 @@ def radio_info(radio):
tubes = {} tubes = {}
@app.route("/tuuube/<id>/start") def _start_tuuube_stream(id):
def start_tuuube_stream(id):
"""Start streaming from a youtube source. """Start streaming from a youtube source.
Once the stream has been started, connect to the stream at: Once the stream has been started, connect to the stream at:
rtsp://[host]:8554/tuuube/[id] rtsp://[host]:8554/tuuube/[id]
@ -248,8 +254,7 @@ def start_tuuube_stream(id):
return _error_message_json(e.message), 400 return _error_message_json(e.message), 400
@app.route("/tuuube/<id>/end") def _end_tuuube_stream(id):
def end_tuuube_stream(id):
"""Terminate the youtube stream. """Terminate the youtube stream.
--- ---
parameters: parameters:

10
routes.py Normal file
View File

@ -0,0 +1,10 @@
endpoint_routes = {
Review

Expand this to have default routes so that the program can function without the data being supplied. I think the correct way to do this is:

  • Give these useful paths, even if it dummy data. So route 'a' would be route_path_a instead of the empty string
  • However, if a file <filename>.[json|yml|whatever] exists in the current directory, then:
    • Load the contents of that file
    • Overwrite the paths with the specified paths

That way we can actually use the microservice outside of the SDE, but if we are inside the SDE with the actual path details (supplied with the config file) then we can interact with the rest of the system.

Expand this to have default routes so that the program can function without the data being supplied. I think the correct way to do this is: - Give these useful paths, even if it dummy data. So route 'a' would be `route_path_a` instead of the empty string - However, if a file `<filename>.[json|yml|whatever]` exists in the current directory, then: - Load the contents of that file - Overwrite the paths with the specified paths That way we can actually use the microservice outside of the SDE, but if we are inside the SDE with the actual path details (supplied with the config file) then we can interact with the rest of the system.
"a": "",
"b": "",
"c": "",
"d": "",
"e": "",
"f":"",
"g":""
}