edeliver v1.5.0 Edeliver.Relup.Instructions.Info

This upgrade instruction logs the given info message on the node which runs the upgrade

and in the running upgrade script which was started by the $APP/bin/$APP upgarde $RELEASE command. Usage:

  Edeliver.Relup.Instructions.Info.modify_relup(config,
      _up_message="Synchronizing nodes",
      _down_message="Desynchronizing nodes",
      _insert_where = &append_after_point_of_no_return/2)`

Available sections are:

  • :check -> Checks whether upgrade is possible. Before “point of no return”
  • :suspend -> Suspends processes before the upgrade. Right after the “point of no return”
  • :upgrade -> Runs the upgrade by (un-)loading new(/old) code and updating processes and applications
  • :resume -> Resumes processes after the upgrade that were suspended in the :suspend section.
  • :finished -> The upgrade finished successfully

Link to this section Summary

Functions

Returns the arguments which will be passed the Edeliver.Relup.RunnableInstruction.run/1 function during the upgrade

Calls the run/1 function of this module

Returns a list of module names which implement the behaviour Edeliver.Relup.RunnableInstruction

Returns a function which inserts the relup instruction

Modifies the relup file

Logs the message on the node which is upgraded

Link to this section Functions

Link to this function arguments(instructions, map)
arguments(
  %Edeliver.Relup.Instructions{
    changed_modules: term(),
    down_instructions: term(),
    down_version: term(),
    up_instructions: term(),
    up_version: term()
  },
  Edeliver.Relup.Config.t()
) :: term()

Returns the arguments which will be passed the Edeliver.Relup.RunnableInstruction.run/1 function during the upgrade.

Default is an empty list.

Callback implementation for Edeliver.Relup.RunnableInstruction.arguments/2.

Link to this function call_this(arguments \\ [])
call_this(arguments :: [term()]) ::
  Instruction.instruction() | Instruction.instructions()

Calls the run/1 function of this module

from the relup file during hot code upgrade

Link to this function dependencies()
dependencies() :: [instruction_module :: atom()]

Returns a list of module names which implement the behaviour Edeliver.Relup.RunnableInstruction

and are used / referenced by this runnable instruction. These modules must be loaded before this instruction is executed for upgrades and unloaded after this instruction for downgrades. Default is an empty list.

Callback implementation for Edeliver.Relup.RunnableInstruction.dependencies/0.

Link to this function insert_where()
insert_where() :: Instruction.insert_fun()

Returns a function which inserts the relup instruction

that calls the Edeliver.Relup.RunnableInstruction.run/1 fuction of this module. Default is inserting it at the end of the instructions

Callback implementation for Edeliver.Relup.RunnableInstruction.insert_where/0.

Link to this function modify_relup(instructions, config)

Modifies the relup file.

Modifies the relup file which will be used to upgrade (or downgrade) from one version to another by inserting, removing, or shifting appup instructions. See Edeliver.Relup.InsertInstruction and Edeliver.Relup.ShiftInstruction for useful helpers to insert / position the instructions and Edeliver.Relup.RunnableInstruction to execute custom code during the upgrade.

Callback implementation for Edeliver.Relup.Instruction.modify_relup/2.

Link to this function modify_relup(instructions, config, up_message \\ "", down_message \\ "", insert_where_fun \\ &append_after_point_of_no_return/2)
modify_relup(
  instructions :: Edeliver.Relup.Instructions.t(),
  config :: Edeliver.Relup.Config.t(),
  up_message :: String.t(),
  down_message :: String.t(),
  insert_where :: Instruction.insert_fun()
) :: Edeliver.Relup.Instructions.t()
Link to this function run(message)
run(message :: String.t()) :: :ok

Logs the message on the node which is upgraded

and in the upgrade script which was started by the $APP/bin/$APP upgarde $RELEASE command.