cfa_grub2 0.6.6 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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: