Class: OsCtl::Image::Operations::Builder::UseOrCreate

Inherits:
OsCtl::Image::Operations::Base show all
Defined in:
lib/osctl/image/operations/builder/use_or_create.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods inherited from OsCtl::Image::Operations::Base

run

Constructor Details

#initialize(builder, base_dir, vpsadminos_dir: nil) ⇒ UseOrCreate

Returns a new instance of UseOrCreate.



15
16
17
18
19
20
# File 'lib/osctl/image/operations/builder/use_or_create.rb', line 15

def initialize(builder, base_dir, vpsadminos_dir: nil)
  super()
  @builder = builder
  @base_dir = base_dir
  @vpsadminos_dir = vpsadminos_dir
end

Instance Attribute Details

#base_dirString (readonly)

Returns:

  • (String)


10
11
12
# File 'lib/osctl/image/operations/builder/use_or_create.rb', line 10

def base_dir
  @base_dir
end

#builderBuilder (readonly)

Returns:



7
8
9
# File 'lib/osctl/image/operations/builder/use_or_create.rb', line 7

def builder
  @builder
end

#vpsadminos_dirString? (readonly)

Returns:

  • (String, nil)


13
14
15
# File 'lib/osctl/image/operations/builder/use_or_create.rb', line 13

def vpsadminos_dir
  @vpsadminos_dir
end

Instance Method Details

#executeObject



22
23
24
25
26
27
28
29
30
31
32
# File 'lib/osctl/image/operations/builder/use_or_create.rb', line 22

def execute
  client = OsCtldClient.new

  if client.find_container(builder.ctid)
    client.start_container(builder.ctid)
    builder.load_attrs(client)
    Operations::Builder::WaitForNetwork.run(builder)
  else
    Operations::Builder::Create.run(builder, base_dir, vpsadminos_dir:)
  end
end