41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
|
# File 'lib/grafana_reporter/asciidoctor/sql_value_inline_macro.rb', line 41
def process(parent, target, attrs)
return if @report.cancel
@report.next_step
instance = attrs['instance'] || parent.document.attr('grafana_default_instance') || 'default'
attrs['result_type'] = 'sql_value'
sql = attrs['sql']
@report.logger.debug("Processing SqlValueInlineMacro (instance: #{instance}, datasource: #{target},"\
" sql: #{sql})")
sql_translated = CGI::unescapeHTML(sql) if sql
if sql != sql_translated
@report.logger.debug("Translating SQL query to fix asciidoctor issue: #{sql_translated}")
sql = sql_translated
end
begin
query = QueryValueQuery.new(@report.grafana(instance),
variables: build_attribute_hash(parent.document.attributes, attrs))
query.datasource = @report.grafana(instance).datasource_by_id(target)
query.raw_query = sql
create_inline(parent, :quoted, query.execute)
rescue Grafana::GrafanaError => e
@report.logger.error(e.message)
create_inline(parent, :quoted, e.message)
rescue GrafanaReporterError => e
@report.logger.error(e.message)
create_inline(parent, :quoted, e.message)
rescue StandardError => e
@report.logger.fatal("#{e.message}\n#{e.backtrace.join("\n")}")
create_inline(parent, :quoted, "#{e.message}\n#{e.backtrace.join("\n")}")
end
end
|