Sha256: 83ef3c8b3cbd9a08342a1a15f6384e2487cb314a3c91cc147a20253564b3ca1b

Contents?: true

Size: 1.62 KB

Versions: 3

Compression:

Stored size: 1.62 KB

Contents

<%= render_file('common/header.html.erb', title: 'Nodes') %><%
service_per_node = {}
services.each do |service_name, tags|
  service(service_name, tag:'http').sort {|a,b| a['Node']['Node'] <=> b['Node']['Node'] }.each do |snode|
  node_services = service_per_node[snode['Node']['Node']] || []
  node_services.push(snode)
  service_per_node[snode['Node']['Node']] = node_services
  end
end %>

<h1 id="nodes">List all nodes for DC, sorted by name</h1>
<ul class="list-group">
<% nodes.sort {|a,b| a['Node'] <=> b['Node'] }.each do |snode|
%><li id="node_<%= snode['ID'] %>" class="list-group-item">
    <a href="ssh://<%= snode['Address']%>"><%= snode['Address'] %></a> <%= snode['Node'] %><%
  snode['Meta'].each do |k,v|
    if v && !v.empty?
%><span class="badge badge-pill badge-primary float-right"><%= k %>:&nbsp;<%= v%></span><%
    end
  end if snode['Meta']
  %><div><%
  if service_per_node.key?(snode['Node'])
    service_per_node[snode['Node']].each do |service|
      tags = service['Service']['Tags'].sort
      addr = service['Node']['Address']
      port_num = service['Service']['Port'].to_i
      port = port_num && port_num > 0 ? ":#{port_num}" : ''
      url = if tags.include? 'https'
              "https://#{addr}#{port}"
            elsif tags.include? 'http'
              "http://#{addr}#{port}"
            elsif tags.include? 'ftp'
              "ftp://#{addr}#{port}"
            else
              nil
            end
    %> <a class="badge badge-secondary" href='<%= url %>'>
    <%= service['Service']['Service'] %>: <%= port_num %>
    </a>
  <% end
  end
%></div></li>
<% end %>
</ul>
<%= render_file 'common/footer.html.erb' %>

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
consul-templaterb-1.1.0 samples/nodes.html.erb
consul-templaterb-1.0.11 samples/nodes.html.erb
consul-templaterb-1.0.10 samples/nodes.html.erb