Module: Lambda::MicroVMs::Session

Defined in:
lib/lambda/microvms/session.rb

Overview

Convenience API for run/use/cleanup MicroVM sessions.

Class Method Summary collapse

Class Method Details

.cleanup(vm, after) ⇒ Object

rubocop:disable Naming/MethodParameterName



17
18
19
20
21
22
23
24
25
26
27
28
# File 'lib/lambda/microvms/session.rb', line 17

def cleanup(vm, after) # rubocop:disable Naming/MethodParameterName
  case after
  when :keep, nil
    nil
  when :suspend
    vm.suspend
  when :terminate
    vm.terminate
  else
    raise ArgumentError, "unknown cleanup policy: #{after.inspect}"
  end
end

.session(image_arn:, role_arn:, after: :suspend, client: Client.new, **run_options) ⇒ Object



9
10
11
12
13
14
15
# File 'lib/lambda/microvms/session.rb', line 9

def session(image_arn:, role_arn:, after: :suspend, client: Client.new, **run_options)
  vm = client.image(image_arn).run(role_arn: role_arn, **run_options)
  vm.wait_until_running
  yield vm
ensure
  cleanup(vm, after) if vm
end