Skip to content

Commit 9fbfe72

Browse files
nikodemasamotl
authored andcommitted
Add channel scanning by channel name
1 parent f310bb3 commit 9fbfe72

File tree

2 files changed

+21
-1
lines changed

2 files changed

+21
-1
lines changed

grafana_wtf/commands.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@ def run():
4141
grafana-wtf [options] plugins list [--id=]
4242
grafana-wtf [options] plugins status [--id=]
4343
grafana-wtf [options] channels [--uid=]
44+
grafana-wtf [options] channels [--name=]
4445
grafana-wtf --version
4546
grafana-wtf (-h | --help)
4647
@@ -352,6 +353,8 @@ def run():
352353
if options.channels:
353354
if options.uid:
354355
response = engine.channels_list_by_uid(options.uid)
356+
elif options.name:
357+
response = engine.channels_list_by_name(options.name)
355358
else:
356359
response = engine.channels_list()
357360
output_results(output_format, response)

grafana_wtf/core.py

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -616,7 +616,11 @@ def channels_list(self):
616616
return self.grafana.notifications.lookup_channels()
617617

618618
def channels_list_by_uid(self, channel_uid):
619-
channel = self.grafana.notifications.get_channel_by_uid(channel_uid)
619+
try:
620+
channel = self.grafana.notifications.get_channel_by_uid(channel_uid)
621+
except GrafanaClientError as ex:
622+
log.error(f"Error fetching the channel {channel_uid}: {ex}")
623+
raise SystemExit(1)
620624

621625
# Scan dashboards and panels to find where the channel is used
622626
dashboards = self.scan_dashboards()
@@ -649,6 +653,19 @@ def extract_channel_related_information(channel_uid, dashboard, panel):
649653
)
650654
return related_information
651655

656+
def channels_list_by_name(self, name):
657+
channel_list = self.channels_list()
658+
channel_uid = ""
659+
for channel in channel_list:
660+
if channel["name"] == name:
661+
channel_uid = channel["uid"]
662+
break
663+
if channel_uid:
664+
return self.channels_list_by_uid(channel_uid)
665+
else:
666+
log.info(f"Channel with the name {name} doesn't exist")
667+
raise SystemExit(0)
668+
652669

653670
class Indexer:
654671
def __init__(self, engine: GrafanaWtf):

0 commit comments

Comments
 (0)