cfa_grub2 0.6.6 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b3c81cab27a080e614045df39129dc4967ef57fca4ad00d1cea67c49db94444c
4
- data.tar.gz: e902a23407e7d72dcb4b65bc102d29a9e109e0dcfdcc44d5a53b466849f8b6cd
3
+ metadata.gz: ff7e5c144a004feaf68e19d24524e2617f26cf04e9847c771050235df78ab709
4
+ data.tar.gz: 6dc262064802eacc2575c8fdee34215f9d11fba0a4dea51f8b3be50547813322
5
5
  SHA512:
6
- metadata.gz: 698aff51bb9b6a16837186d3343e997aaaf07d7e68d5255708b8d486bb48e532218dd2afe8254e7dfc06324030691cbe700ca81cfb630f7cdecd875a4748373b
7
- data.tar.gz: dce8977041bcfe8ae4e4cf38ec7b3f717a009f3363102394175fb690c1a4c4c38f10e44fedb35d0644605bb92fa96ddd8ae7a626123aff3e279ece67ffbfc1d9
6
+ metadata.gz: 272204cfab3bf96d723c58dab6ced4eff219909253b765b06ae2f724b3b4e9726cdba6c0a8bf9469bd0dc44395eec4c41357318a9ed775b3f5b0dc027ddd62fd
7
+ data.tar.gz: bc02ec452fd622b02d77049dca3d78d5190d6b42809311f1bd6460d20fa0ca2da368431b3337e990b2b17d93cf38a5f4a24727fbaaa572c73f7b5eab6eb7c988
@@ -31,7 +31,7 @@ module CFA
31
31
  file_handler: file_handler)
32
32
  end
33
33
 
34
- def save
34
+ def save(changes_only: false)
35
35
  # serialize kernel params object before save
36
36
  kernels = [@kernel_params, @xen_hypervisor_params, @xen_kernel_params,
37
37
  @recovery_params]
@@ -90,7 +90,7 @@ module CFA
90
90
  end
91
91
 
92
92
  def recovery_entry
93
- @recovery ||= BooleanValue.new(
93
+ @recovery_entry ||= BooleanValue.new(
94
94
  "GRUB_DISABLE_RECOVERY", self,
95
95
  # grub key is disable, so use reverse logic
96
96
  true_value: "false", false_value: "true"
@@ -102,25 +102,41 @@ module CFA
102
102
  true_value: "y", false_value: "n")
103
103
  end
104
104
 
105
+ VALID_TERMINAL_OPTIONS = [:serial, :console, :gfxterm].freeze
106
+ # Reads value of GRUB_TERMINAL from /etc/default/grub
107
+ #
108
+ # GRUB_TERMINAL option allows multiple values as space separated string
109
+ #
110
+ # @return [Array<Symbol>, nil] an array of symbols where each symbol
111
+ # represents supported terminal definition
112
+ # nil if value is undefined or empty
105
113
  def terminal
106
- value = value_for("GRUB_TERMINAL")
107
- case value
108
- when "", nil then nil
109
- when "console" then :console
110
- when "serial" then :serial
111
- when "gfxterm" then :gfxterm
112
- else
113
- raise "unknown GRUB_TERMINAL option #{value.inspect}"
114
+ values = value_for("GRUB_TERMINAL")
115
+
116
+ return nil if values.nil? || values.empty?
117
+
118
+ values.split.map do |value|
119
+ msg = "unknown GRUB_TERMINAL option #{value.inspect}"
120
+ raise msg if !VALID_TERMINAL_OPTIONS.include?(value.to_sym)
121
+
122
+ value.to_sym
114
123
  end
115
124
  end
116
125
 
117
- VALID_TERMINAL_OPTIONS = [:serial, :console, :gfxterm].freeze
118
- def terminal=(value)
119
- if !VALID_TERMINAL_OPTIONS.include?(value)
120
- raise ArgumentError, "invalid value #{value.inspect}"
121
- end
126
+ # Sets GRUB_TERMINAL option
127
+ #
128
+ # Raises an ArgumentError exception in case of invalid value
129
+ #
130
+ # @param values [Array<Symbol>, nil] list of accepted terminal valuesi
131
+ # (@see VALID_TERMINAL_OPTIONS)
132
+ def terminal=(values)
133
+ values = [] if values.nil?
134
+
135
+ msg = "A value is invalid: #{values.inspect}".freeze
136
+ invalid = values.any? { |v| !VALID_TERMINAL_OPTIONS.include?(v) }
137
+ raise ArgumentError, msg if invalid
122
138
 
123
- generic_set("GRUB_TERMINAL", value.to_s)
139
+ generic_set("GRUB_TERMINAL", values.join(" "))
124
140
  end
125
141
 
126
142
  def serial_console=(value)
@@ -23,7 +23,7 @@ module CFA
23
23
  file_handler: file_handler)
24
24
  end
25
25
 
26
- def save
26
+ def save(changes_only: false)
27
27
  raise "Too many grub devices. Limit is 8." if grub_devices.size > 8
28
28
 
29
29
  super
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cfa_grub2
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.6
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Josef Reidinger
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-07-18 00:00:00.000000000 Z
11
+ date: 2018-08-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: cfa
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '1.0'
19
+ version: '0.5'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '1.0'
26
+ version: '0.5'
27
27
  description: Models allowing easy read and modification of GRUB2 configuration files.
28
28
  It is a plugin for cfa framework.
29
29
  email: