Fix/update dirty worker

pull/974/head
Connor Rigby 2019-03-25 09:41:58 -07:00
parent b7f4ebba57
commit d4245cf2df
No known key found for this signature in database
GPG Key ID: 29A88B24B70456E0
3 changed files with 12 additions and 6 deletions

View File

@ -67,7 +67,8 @@ defmodule FarmbotExt.API.DirtyWorker do
|> handle_changeset(rest, state)
# HTTP Error. (500, network error, timeout etc.)
_ ->
error ->
Logger.error("HTTP Error: #{state.module} #{inspect(error)}")
{:noreply, state, @timeout}
end
end
@ -97,12 +98,14 @@ defmodule FarmbotExt.API.DirtyWorker do
end
defp http_request(%{id: nil} = dirty, state) do
Logger.info("#{state.module} clean request (post)")
path = state.module.path()
data = render(state.module, dirty)
API.post(API.client(), path, data)
end
defp http_request(dirty, state) do
Logger.info("#{state.module} dirty request (patch)")
path = state.module.path()
data = render(state.module, dirty)
API.patch(API.client(), path, data)

View File

@ -1,5 +1,5 @@
defmodule FarmbotOS.Init.EnigmaFirmwareMissing do
alias FarmbotCore.Asset.Private
alias FarmbotCore.{Asset, Asset.Private}
alias FarmbotCore.EnigmaHandler
alias FarmbotFirmware.UARTTransport
@ -34,7 +34,10 @@ defmodule FarmbotOS.Init.EnigmaFirmwareMissing do
FarmbotCore.Logger.warn(1, "firmware needs flashed creating `firmware.missing` enigma")
Private.create_or_update_enigma!(%{priority: 100, problem_tag: "firmware.missing"})
# Ignore fw/hw
Private.mark_dirty!(current_fbos_config, %{firmware_hardware: nil, firmware_path: nil})
%{firmware_hardware: nil, firmware_path: nil}
|> Asset.update_fbos_config!()
|> Private.mark_dirty!(%{})
:ok
{false, firmware_hardware} when is_binary(firmware_hardware) ->

View File

@ -12,11 +12,11 @@ defmodule FarmbotOS.SysCalls.FlashFirmware do
Expected a tty to exist, but none was found.
"""
fbos_config = Asset.fbos_config()
case Avrdude.flash(hex_file, tty) do
{_, 0} ->
Private.mark_dirty!(fbos_config, %{firmware_hardware: "arduino", firmware_path: "ttyACM0"})
%{firmware_hardware: package, firmware_path: tty}
|> Asset.update_fbos_config!()
|> Private.mark_dirty!(%{})
Private.clear_enigma("firmware.missing")
:ok