Deployment and lifecycle management for Nix
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

agent: clarify this is a deployer

+33 -26
+3 -25
apps/sower_agent/lib/sower_agent/socket_client.ex
··· 215 215 {:ok, socket} 216 216 end 217 217 218 + # TODO: add multi-upgrade async support 219 + # currently is last deploy wins 218 220 def handle_reply(ref, response, %{upgrade_ref: ref} = socket) do 219 221 socket = Map.delete(socket, :upgrade_ref) 220 222 ··· 228 230 deployment_sid: deployment.sid 229 231 ) 230 232 231 - deploy_result = SowerAgent.TaskRunner.upgrade(deployment.seeds) 232 - 233 - result = 234 - Enum.all?(deploy_result, fn r -> 235 - case r do 236 - {:ok, {:ok, _}} -> true 237 - _ -> false 238 - end 239 - end) 240 - |> case do 241 - true -> 242 - :success 243 - 244 - false -> 245 - Enum.any?(deploy_result, fn r -> 246 - case r do 247 - {:ok, {:ok, _}} -> true 248 - _ -> false 249 - end 250 - end) 251 - |> case do 252 - true -> :partial 253 - false -> :failure 254 - end 255 - end 233 + result = SowerAgent.Deployer.run(deployment) 256 234 257 235 {:ok, result} = 258 236 SowerClient.Schemas.Orchestration.DeploymentResult.cast(%{
+30 -1
apps/sower_agent/lib/sower_agent/task_runner.ex apps/sower_agent/lib/sower_agent/deployer.ex
··· 1 - defmodule SowerAgent.TaskRunner do 1 + defmodule SowerAgent.Deployer do 2 2 require Logger 3 + 4 + alias SowerClient.Schemas.Orchestration.Deployment 5 + 6 + def run(%Deployment{} = deploy) do 7 + deploy_result = upgrade(deploy.seeds) 8 + 9 + Enum.all?(deploy_result, fn r -> 10 + case r do 11 + {:ok, {:ok, _}} -> true 12 + _ -> false 13 + end 14 + end) 15 + |> case do 16 + true -> 17 + :success 18 + 19 + false -> 20 + Enum.any?(deploy_result, fn r -> 21 + case r do 22 + {:ok, {:ok, _}} -> true 23 + _ -> false 24 + end 25 + end) 26 + |> case do 27 + true -> :partial 28 + false -> :failure 29 + end 30 + end 31 + end 3 32 4 33 def upgrade(seeds) do 5 34 seeds