Skip to content

Commit

Permalink
auto reg mw defaults at boot
Browse files Browse the repository at this point in the history
  • Loading branch information
coryodaniel committed Nov 27, 2019
1 parent da8ed39 commit 344e818
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 13 deletions.
1 change: 1 addition & 0 deletions lib/k8s/cluster/registry.ex
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@ defmodule K8s.Cluster.Registry do
@spec add(atom(), K8s.Conn.t()) :: {:ok, atom()} | {:error, atom()}
def add(cluster, conn) do
with true <- :ets.insert(K8s.Conn, {cluster, conn}),
:ok <- K8s.Middleware.initialize(cluster),
{:ok, resources_by_group} <- Discovery.resources_by_group(cluster) do
K8s.Cluster.Group.insert_all(cluster, resources_by_group)
K8s.Sys.Event.cluster_registered(%{}, %{cluster: cluster})
Expand Down
22 changes: 9 additions & 13 deletions lib/k8s/middleware.ex
Original file line number Diff line number Diff line change
Expand Up @@ -10,26 +10,22 @@ defmodule K8s.Middleware do
@type stack_t :: list(module())

@spec defaults(K8s.Middleware.type_t()) :: stack_t
def defaults(:request) do
[
Request.Initialize,
Request.EncodeBody
]
end

@doc "Retrieve a list of middleware registered to a cluster"
@spec list(type_t, atom()) :: stack_t
def list(:request, _cluster) do
# TODO interact w/ registry
defaults(:request)
def defaults(:request), do: [Request.Initialize, Request.EncodeBody]
def defaults(:response), do: []

@doc "Initialize a clusters middleware stacks"
@spec initialize(atom) :: :ok
def initialize(cluster) do
K8s.Middleware.Registry.set(cluster, :request, defaults(:request))
K8s.Middleware.Registry.set(cluster, :response, defaults(:response))
end

@doc """
Applies middlewares registered to a `K8s.Cluster` to a `K8s.Middleware.Request`
"""
@spec run(Request.t()) :: {:ok, Request.t()} | {:error, Error.t()}
def run(req) do
middlewares = list(:request, req.cluster)
middlewares = K8s.Middleware.Registry.list(req.cluster, :request)

result =
Enum.reduce_while(middlewares, req, fn middleware, req ->
Expand Down

0 comments on commit 344e818

Please sign in to comment.