Method: Terraform::RemoteStateHandler#lock!

Defined in:
app/services/terraform/remote_state_handler.rb

#lock!Object

Raises:

  • (ArgumentError)


31
32
33
34
35
36
37
38
39
40
41
42
43
44
# File 'app/services/terraform/remote_state_handler.rb', line 31

def lock!
  raise ArgumentError if params[:lock_id].blank?
  raise UnauthorizedError unless can_modify_state?

  retrieve_with_lock do |state|
    raise StateLockedError if state.locked?

    state.lock_xid = params[:lock_id]
    state.locked_by_user = current_user
    state.locked_at = Time.current

    state.save!
  end
end