Update server list dynamically
This commit is contained in:
		
							parent
							
								
									8b9c344577
								
							
						
					
					
						commit
						86d3808e54
					
				@ -12,6 +12,7 @@ defmodule Chronoscope.NTS do
 | 
				
			|||||||
  @registry Application.compile_env(:chronoscope, :registry, Registry)
 | 
					  @registry Application.compile_env(:chronoscope, :registry, Registry)
 | 
				
			||||||
  @genserver Application.compile_env(:chronoscope, :gen_server, GenServer)
 | 
					  @genserver Application.compile_env(:chronoscope, :gen_server, GenServer)
 | 
				
			||||||
  @dynamic_supervisor Application.compile_env(:chronoscope, :dynamic_supervisor, DynamicSupervisor)
 | 
					  @dynamic_supervisor Application.compile_env(:chronoscope, :dynamic_supervisor, DynamicSupervisor)
 | 
				
			||||||
 | 
					  @topic "nts-servers"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  def healthy?() do
 | 
					  def healthy?() do
 | 
				
			||||||
    true
 | 
					    true
 | 
				
			||||||
@ -37,6 +38,7 @@ defmodule Chronoscope.NTS do
 | 
				
			|||||||
    %{host: host, port: port}
 | 
					    %{host: host, port: port}
 | 
				
			||||||
    |> client_pid()
 | 
					    |> client_pid()
 | 
				
			||||||
    |> @genserver.call(:key_establishment)
 | 
					    |> @genserver.call(:key_establishment)
 | 
				
			||||||
 | 
					    |> tap(fn _ -> ChronoscopeWeb.Endpoint.broadcast(@topic, "", "") end)
 | 
				
			||||||
  end
 | 
					  end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  defp client_pid(server) do
 | 
					  defp client_pid(server) do
 | 
				
			||||||
 | 
				
			|||||||
@ -10,7 +10,7 @@ defmodule ChronoscopeWeb.IndexLive do
 | 
				
			|||||||
    {:ok, assign(socket, %{servers: NTS.list()})}
 | 
					    {:ok, assign(socket, %{servers: NTS.list()})}
 | 
				
			||||||
  end
 | 
					  end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  def handle_info(%{topic: @topic, payload: servers}, socket) do
 | 
					  def handle_info(%{topic: @topic}, socket) do
 | 
				
			||||||
    {:noreply, assign(socket, %{servers: servers})}
 | 
					    {:noreply, assign(socket, %{servers: NTS.list()})}
 | 
				
			||||||
  end
 | 
					  end
 | 
				
			||||||
end
 | 
					end
 | 
				
			||||||
 | 
				
			|||||||
@ -1,21 +1,27 @@
 | 
				
			|||||||
<table class="mx-auto border-collapse table-auto min-w-full divide-y divide-zinc-200 dark:divide-zinc-700 text-left">
 | 
					<table class="mx-auto border-collapse table-auto min-w-full divide-y divide-zinc-200 dark:divide-zinc-700 text-left">
 | 
				
			||||||
    <thead>
 | 
					    <thead>
 | 
				
			||||||
        <tr>
 | 
					        <tr>
 | 
				
			||||||
            <th scope="col" class="py-3 px-6">
 | 
					            <th scope="col" class="py-3 px-6 whitespace-nowrap">
 | 
				
			||||||
                Host
 | 
					                Host
 | 
				
			||||||
            </th>
 | 
					            </th>
 | 
				
			||||||
            <th scope="col" class="py-3 px-6">
 | 
					            <th scope="col" class="py-3 px-6 whitespace-nowrap">
 | 
				
			||||||
                Status
 | 
					                Status
 | 
				
			||||||
            </th>
 | 
					            </th>
 | 
				
			||||||
            <th scope="col" class="py-3 px-6">
 | 
					            <th scope="col" class="py-3 px-6 whitespace-nowrap">
 | 
				
			||||||
                Algorithm
 | 
					                Algorithm
 | 
				
			||||||
            </th>
 | 
					            </th>
 | 
				
			||||||
            <th scope="col" class="py-3 px-6">
 | 
					            <th scope="col" class="py-3 px-6 whitespace-nowrap">
 | 
				
			||||||
                Cookies
 | 
					                Cookies
 | 
				
			||||||
            </th>
 | 
					            </th>
 | 
				
			||||||
            <th scope="col" class="py-3 px-6">
 | 
					            <th scope="col" class="py-3 px-6 whitespace-nowrap">
 | 
				
			||||||
                Cookie Length
 | 
					                Cookie Length
 | 
				
			||||||
            </th>
 | 
					            </th>
 | 
				
			||||||
 | 
					            <th scope="col" class="py-3 px-6 whitespace-nowrap">
 | 
				
			||||||
 | 
					                Certificate Expiration
 | 
				
			||||||
 | 
					            </th>
 | 
				
			||||||
 | 
					            <th scope="col" class="py-3 px-6 whitespace-nowrap">
 | 
				
			||||||
 | 
					                Last Check
 | 
				
			||||||
 | 
					            </th>
 | 
				
			||||||
        </tr>
 | 
					        </tr>
 | 
				
			||||||
    </thead>
 | 
					    </thead>
 | 
				
			||||||
    <tbody>
 | 
					    <tbody>
 | 
				
			||||||
@ -38,6 +44,12 @@
 | 
				
			|||||||
            <td class="py-4 px-6 whitespace-nowrap">
 | 
					            <td class="py-4 px-6 whitespace-nowrap">
 | 
				
			||||||
                <%= response.cookie_length %>
 | 
					                <%= response.cookie_length %>
 | 
				
			||||||
            </td>
 | 
					            </td>
 | 
				
			||||||
 | 
					            <td class="py-4 px-6 whitespace-nowrap">
 | 
				
			||||||
 | 
					                <%= response.cert_expiration %>
 | 
				
			||||||
 | 
					            </td>
 | 
				
			||||||
 | 
					            <td class="py-4 px-6 whitespace-nowrap">
 | 
				
			||||||
 | 
					                <%= server.last_key_establishment %>
 | 
				
			||||||
 | 
					            </td>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            <% else %>
 | 
					            <% else %>
 | 
				
			||||||
            <td class="py-4 px-6 whitespace-nowrap">
 | 
					            <td class="py-4 px-6 whitespace-nowrap">
 | 
				
			||||||
@ -54,6 +66,11 @@
 | 
				
			|||||||
            <td class="py-4 px-6 whitespace-nowrap"> - </td>
 | 
					            <td class="py-4 px-6 whitespace-nowrap"> - </td>
 | 
				
			||||||
            <td class="py-4 px-6 whitespace-nowrap"> - </td>
 | 
					            <td class="py-4 px-6 whitespace-nowrap"> - </td>
 | 
				
			||||||
            <td class="py-4 px-6 whitespace-nowrap"> - </td>
 | 
					            <td class="py-4 px-6 whitespace-nowrap"> - </td>
 | 
				
			||||||
 | 
					            <td class="py-4 px-6 whitespace-nowrap"> - </td>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            <td class="py-4 px-6 whitespace-nowrap">
 | 
				
			||||||
 | 
					                <%= server.last_key_establishment %>
 | 
				
			||||||
 | 
					            </td>
 | 
				
			||||||
            <% end %>
 | 
					            <% end %>
 | 
				
			||||||
        </tr>
 | 
					        </tr>
 | 
				
			||||||
    </tbody>
 | 
					    </tbody>
 | 
				
			||||||
 | 
				
			|||||||
@ -8,7 +8,6 @@ defmodule Chronoscope.GeminiTest do
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
  import Mox
 | 
					  import Mox
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  setup :verify_on_exit!
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
  describe "Chronoscope.Gemini.healthy?()" do
 | 
					  describe "Chronoscope.Gemini.healthy?()" do
 | 
				
			||||||
    test "is healthy" do
 | 
					    test "is healthy" do
 | 
				
			||||||
 | 
				
			|||||||
@ -1,8 +1,17 @@
 | 
				
			|||||||
defmodule ChronoscopeWeb.PageControllerTest do
 | 
					defmodule ChronoscopeWeb.PageControllerTest do
 | 
				
			||||||
  use ChronoscopeWeb.ConnCase, async: true
 | 
					  use ChronoscopeWeb.ConnCase, async: true
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  alias Chronoscope.DynamicSupervisorMock
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  import Mox
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  setup :verify_on_exit!
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  test "GET /", %{conn: conn} do
 | 
					  test "GET /", %{conn: conn} do
 | 
				
			||||||
 | 
					    DynamicSupervisorMock
 | 
				
			||||||
 | 
					    |> expect(:which_children, fn _ -> [] end)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    conn = get(conn, ~p"/")
 | 
					    conn = get(conn, ~p"/")
 | 
				
			||||||
    assert html_response(conn, 200) =~ "Peace of mind from prototype to production"
 | 
					    assert html_response(conn, 200) =~ "Chronoscope"
 | 
				
			||||||
  end
 | 
					  end
 | 
				
			||||||
end
 | 
					end
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
		Reference in New Issue
	
	Block a user