Class: OsCtl::Image::Image

Inherits:
Object
  • Object
show all
Defined in:
lib/osctl/image/image.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(base_dir, name) ⇒ Image

Returns a new instance of Image.

Parameters:

  • base_dir (String)
  • name (String)


29
30
31
32
33
# File 'lib/osctl/image/image.rb', line 29

def initialize(base_dir, name)
  @base_dir = base_dir
  @name = name
  parse_name
end

Instance Attribute Details

#archString (readonly)

Returns:

  • (String)


19
20
21
# File 'lib/osctl/image/image.rb', line 19

def arch
  @arch
end

#base_dirString (readonly)

Returns:

  • (String)


4
5
6
# File 'lib/osctl/image/image.rb', line 4

def base_dir
  @base_dir
end

#builderString (readonly)

Returns:

  • (String)


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

def builder
  @builder
end

#distributionString (readonly)

Returns:

  • (String)


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

def distribution
  @distribution
end

#nameString (readonly)

Returns:

  • (String)


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

def name
  @name
end

#variantString (readonly)

Returns:

  • (String)


25
26
27
# File 'lib/osctl/image/image.rb', line 25

def variant
  @variant
end

#vendorString (readonly)

Returns:

  • (String)


22
23
24
# File 'lib/osctl/image/image.rb', line 22

def vendor
  @vendor
end

#versionString (readonly)

Returns:

  • (String)


16
17
18
# File 'lib/osctl/image/image.rb', line 16

def version
  @version
end

Instance Method Details

#load_configObject



35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
# File 'lib/osctl/image/image.rb', line 35

def load_config
  cfg = Operations::Config::ParseAttrs.run(base_dir, :image, name)

  unless cfg.has_key?('BUILDER')
    raise "builder not set for #{name}"
  end

  {
    builder: 'BUILDER',
    distribution: 'DISTNAME',
    version: 'RELVER',
    arch: 'ARCH',
    vendor: 'VENDOR',
    variant: 'VARIANT'
  }.each do |attr, var|
    instance_variable_set(:"@#{attr}", cfg[var]) if cfg.has_key?(var)
  end
end

#parse_nameObject (protected)



60
61
62
63
64
65
66
67
68
69
70
71
# File 'lib/osctl/image/image.rb', line 60

def parse_name
  if name.index('-')
    @distribution, @version, @arch, @vendor, @variant = name.split('-')
  else
    @distribution = name
  end

  @arch ||= 'x86_64'
  @vendor ||= 'vpsadminos'
  @variant ||= 'minimal'
  nil
end

#to_sObject



54
55
56
# File 'lib/osctl/image/image.rb', line 54

def to_s
  name
end