Current section

Files

Jump to
concord lib mix tasks concord.ex
Raw

lib/mix/tasks/concord.ex

defmodule Mix.Tasks.Concord.Cluster do
@moduledoc """
Mix tasks for managing Concord clusters.
"""
use Mix.Task
@shortdoc "Manages Concord cluster operations"
def run(["status" | _]) do
Mix.Task.run("app.start")
case Concord.status() do
{:ok, status} ->
Mix.shell().info("Cluster Status:")
Mix.shell().info("Node: #{status.node}")
Mix.shell().info("\nCluster Overview:")
Mix.shell().info(inspect(status.cluster, pretty: true))
Mix.shell().info("\nStorage Stats:")
Mix.shell().info(" Size: #{status.storage.size} entries")
Mix.shell().info(" Memory: #{status.storage.memory} words")
{:error, reason} ->
Mix.shell().error("Failed to get cluster status: #{inspect(reason)}")
end
end
def run(["members" | _]) do
Mix.Task.run("app.start")
case Concord.members() do
{:ok, members} ->
Mix.shell().info("Cluster Members:")
Enum.each(members, fn member ->
Mix.shell().info(" - #{inspect(member)}")
end)
{:error, reason} ->
Mix.shell().error("Failed to get members: #{inspect(reason)}")
end
end
def run(_) do
Mix.shell().info("""
Usage:
mix concord.cluster status - Show cluster status
mix concord.cluster members - List cluster members
""")
end
end