Class: Pgai::CloneManager

Inherits:
Object
  • Object
show all
Defined in:
lib/pgai/clone_manager.rb

Instance Method Summary collapse

Constructor Details

#initialize(env) ⇒ CloneManager

Returns a new instance of CloneManager.



5
6
7
8
# File 'lib/pgai/clone_manager.rb', line 5

def initialize(env)
  @env = env
  @logger = Pgai::Commander.instance.logger
end

Instance Method Details

#cleanupObject



25
26
27
28
29
30
31
32
33
34
# File 'lib/pgai/clone_manager.rb', line 25

def cleanup
  return unless clone_already_created?

  Resources::Local::Clone.delete(clone_id)
  Resources::Remote::Clone.find(clone_id).tap do |resource|
    resource.delete
    resource.refresh
    logger.info resource.status_message
  end
end

#connectObject



10
11
12
13
14
15
16
17
# File 'lib/pgai/clone_manager.rb', line 10

def connect
  prepare do |cached_clone|
    PsqlManager.new(
      cached_clone,
      logger: logger
    ).run
  end
end

#prepareObject



19
20
21
22
23
# File 'lib/pgai/clone_manager.rb', line 19

def prepare
  find_or_create_clone.with_port_forward do |cached_clone|
    yield cached_clone
  end
end

#resetObject



36
37
38
39
40
41
42
43
# File 'lib/pgai/clone_manager.rb', line 36

def reset
  return unless clone_already_created?

  Resources::Remote::Clone.find(clone_id).tap do |resource|
    resource.reset
    logger.info resource.status_message
  end
end