From ecc8909c6a6a57566c1e694aee2f100be2e4b503 Mon Sep 17 00:00:00 2001 From: David Trattnig <david.trattnig@o94.at> Date: Thu, 7 May 2020 20:31:20 +0200 Subject: [PATCH] Get status via CMD. --- guru.py | 1 + modules/base/enum.py | 1 + modules/cli_tool/padavan.py | 13 +++++++++++++ modules/communication/redis/adapter.py | 9 +++++++-- 4 files changed, 22 insertions(+), 2 deletions(-) diff --git a/guru.py b/guru.py index 9ac3143b..509aab29 100755 --- a/guru.py +++ b/guru.py @@ -113,6 +113,7 @@ class Guru(): self.parser.add_argument("-gam", "--get-active-mixer", action="store_true", dest="get_active_mixer", default=False, help="Which mixer is activated?") self.parser.add_argument("-pms", "--print-mixer-status", action="store_true", dest="get_mixer_status", default=False, help="Prints all mixer sources and their states") self.parser.add_argument("-pap", "--print-act-programme", action="store_true", dest="get_act_programme", default=False, help="Prints the actual Programme, the controller holds") + self.parser.add_argument("-s", "--status", action="store_true", dest="get_status", default=False, help="Returns the Engine Status as JSON") # liquid manipulation self.parser.add_argument("-am", "--select-mixer", action="store", dest="select_mixer", default=-1, metavar="MIXERNAME", help="Which mixer should be activated?") diff --git a/modules/base/enum.py b/modules/base/enum.py index 1d4fe25d..0ef18805 100644 --- a/modules/base/enum.py +++ b/modules/base/enum.py @@ -32,6 +32,7 @@ class RedisChannel(Enum): DPE_REPLY = "delete_playlist_entry_reply" FNP_REPLY = "fetch_new_programme_reply" GAP_REPLY = "get_act_programme_reply" + GS_REPLY = "get_status_reply" GCS_REPLY = "get_connection_status_reply" GNF_REPLY = "get_next_file_reply" IPE_REPLY = "insert_playlist_entry_reply" diff --git a/modules/cli_tool/padavan.py b/modules/cli_tool/padavan.py index a96f5156..56c3c8eb 100644 --- a/modules/cli_tool/padavan.py +++ b/modules/cli_tool/padavan.py @@ -59,6 +59,9 @@ class Padavan: elif self.args.get_act_programme: self.get_act_programme() + elif self.args.get_status: + self.get_status() + elif self.args.get_connection_status: self.get_connection_status() @@ -155,6 +158,16 @@ class Padavan: actprogramme = json.loads(json_reply) self.print_programme(actprogramme) + + def get_status(self): + """ + Retrieves the Engine's status information. + """ + json_reply = self.send_and_wait_redis("aura", "get_status", RedisChannel.GS_REPLY) + # status = json.loads(json_reply) + self.stringreply = json_reply + + # ------------------------------------------------------------------------------------------ # def get_connection_status(self): json_reply = self.send_and_wait_redis("aura", "get_connection_status", RedisChannel.GCS_REPLY) diff --git a/modules/communication/redis/adapter.py b/modules/communication/redis/adapter.py index 751a2d15..06eefd54 100644 --- a/modules/communication/redis/adapter.py +++ b/modules/communication/redis/adapter.py @@ -156,6 +156,13 @@ class ServerRedisAdapter(threading.Thread, RedisMessenger): elif item["data"] == "get_act_programme": self.execute(RedisChannel.GAP_REPLY.value, self.scheduler.get_act_programme_as_string) + elif item["data"] == "get_status": + def get_status_string(): + status = self.soundsystem.monitoring.get_status() + return str(status) + + self.execute(RedisChannel.GS_REPLY.value, get_status_string) + # elif item["data"] == "get_connection_status": # self.execute(RedisChannel.GCS_REPLY.value, self.connection_tester.get_connection_status) @@ -179,8 +186,6 @@ class ServerRedisAdapter(threading.Thread, RedisMessenger): elif item["data"] == "recreate_db": self.execute(RedisChannel.RDB_REPLY.value, self.scheduler.recreate_database) - elif item["data"] == "status": - return True else: raise RedisConnectionException("ServerRedisAdapter Cannot understand command: " + item["data"]) -- GitLab