manageiq-appliance_console 8.0.0 → 9.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: 9ad20683e3cdb9f2f4dfb894e34ba2dedd81aeb6e511db18caae12b92499d5c0
4
- data.tar.gz: 4eee448a7715b15f61e325a066c500d7fd40af1b01683d74d74659d215e364cf
3
+ metadata.gz: a97381a8401fe4bca6637ed905ead74a593f7442c34a824f0091a455b157140a
4
+ data.tar.gz: bc909c5a470d8ad361c403e2f4028f83c921db32d7ac0f8e5e651bd54e68c18b
5
5
  SHA512:
6
- metadata.gz: 0f1d185402221742019cea8006f5cae97322c3a0fa01eb90cb5f1be821424e4ca3f2e5d2091cc9726b398e6485bc34bbf0c584f124af881607bb2ed470e23757
7
- data.tar.gz: 440c7adb764a120a9690851f6046e4206be2d8c5bbc2ea998944646de5144de20031c4feeb98a49392f35743a1833ec529dd6f52ab77b43ce9404540e018e6fc
6
+ metadata.gz: becba0dc1ce0328af521795b80ca99166a18db2837cfd089ce48c1d75860a814f7c6b3915afc3cfecc4a6e8fa631ee2b71e262710a8a2e9525357fcea01f1041
7
+ data.tar.gz: 4301e2fe2d5762840a2ef1c3218066b8052f1431282ae6e341b61902e5a446172d4cdaa447277280726bb4ae71b324f0fd5c1048982b8c80c88748d82d3ae53e
data/.codeclimate.yml CHANGED
@@ -12,7 +12,7 @@ plugins:
12
12
  rubocop:
13
13
  enabled: true
14
14
  config: ".rubocop_cc.yml"
15
- channel: rubocop-0-82
15
+ channel: rubocop-1-56-3
16
16
  brakeman:
17
17
  enabled: false
18
18
  bundler-audit:
@@ -0,0 +1,47 @@
1
+ ---
2
+ name: CI
3
+ on:
4
+ push:
5
+ pull_request:
6
+ schedule:
7
+ - cron: 0 0 * * 0
8
+ jobs:
9
+ ci:
10
+ runs-on: ubuntu-latest
11
+ strategy:
12
+ matrix:
13
+ ruby-version:
14
+ - '3.0'
15
+ - '3.1'
16
+ rails-version:
17
+ - '6.1'
18
+ - '7.0'
19
+ services:
20
+ postgres:
21
+ image: manageiq/postgresql:13
22
+ env:
23
+ POSTGRESQL_USER: root
24
+ POSTGRESQL_PASSWORD: smartvm
25
+ POSTGRESQL_DATABASE: vmdb_test
26
+ options: "--health-cmd pg_isready --health-interval 2s --health-timeout 5s
27
+ --health-retries 5"
28
+ ports:
29
+ - 5432:5432
30
+ env:
31
+ PGHOST: localhost
32
+ PGPASSWORD: smartvm
33
+ TEST_RAILS_VERSION: ${{ matrix.rails-version }}
34
+ CC_TEST_REPORTER_ID: "${{ secrets.CC_TEST_REPORTER_ID }}"
35
+ steps:
36
+ - uses: actions/checkout@v4
37
+ - name: Set up Ruby
38
+ uses: ruby/setup-ruby@v1
39
+ with:
40
+ ruby-version: "${{ matrix.ruby-version }}"
41
+ bundler-cache: true
42
+ - name: Run tests
43
+ run: bundle exec rake
44
+ - name: Report code coverage
45
+ if: "${{ github.ref == 'refs/heads/master' && matrix.ruby-version == '3.0' && matrix.rails-version == '6.1' }}"
46
+ continue-on-error: true
47
+ uses: paambaati/codeclimate-action@v5
data/.rspec CHANGED
@@ -1,4 +1,3 @@
1
1
  --require spec_helper
2
2
  --color
3
3
  --order random
4
- --format documentation
data/.rspec_ci CHANGED
@@ -3,4 +3,3 @@
3
3
  --color
4
4
  --order random
5
5
  --profile
6
- --format documentation
data/CHANGELOG.md CHANGED
@@ -4,18 +4,306 @@ This project adheres to [Semantic Versioning](http://semver.org/).
4
4
 
5
5
  ## [Unreleased]
6
6
 
7
+ ## [9.0.0] - 2024-03-05
8
+ ### Changed
9
+ - Update codeclimate channel to the latest in manageiq-style [[#237]](https://github.com/ManageIQ/manageiq-appliance_console/pull/237)
10
+
11
+ ### Removed
12
+ - **BREAKING** Remove network configuration from the appliance console [[#238]](https://github.com/ManageIQ/manageiq-appliance_console/pull/238)
13
+
14
+ ## [8.1.0] - 2024-02-07
15
+ ### Fixed
16
+ - Fix sporadic test failure [[#204]](https://github.com/ManageIQ/manageiq-appliance_console/pull/204)
17
+ - Remove MIQ specific gem source [[#209]](https://github.com/ManageIQ/manageiq-appliance_console/pull/209)
18
+ - Double escape @ in realm to avoid shell interpretation [[#211]](https://github.com/ManageIQ/manageiq-appliance_console/pull/211)
19
+ - Move gem name loader to proper namespaced location [[#208]](https://github.com/ManageIQ/manageiq-appliance_console/pull/208)
20
+ - Separate kerberos from service principal name and use correctly [[#215]](https://github.com/ManageIQ/manageiq-appliance_console/pull/215)
21
+ - Add manageiq user to allowed_uids for sssd [[#220]](https://github.com/ManageIQ/manageiq-appliance_console/pull/220)
22
+ - Remove warning about using pg_dump [[#221]](https://github.com/ManageIQ/manageiq-appliance_console/pull/221)
23
+ - Fix specs where AwesomeSpawn private interface changed [[#224]](https://github.com/ManageIQ/manageiq-appliance_console/pull/224)
24
+ - Change the Name of the CA from something to ApplianceCA [[#228]](https://github.com/ManageIQ/manageiq-appliance_console/pull/228)
25
+ - Fix YAML.load_file failing on aliases [[#234]](https://github.com/ManageIQ/manageiq-appliance_console/pull/234)
26
+
27
+ ### Added
28
+ - Make backward compatible changes to work with repmgr13 - version 5.2.1 [[#192]](https://github.com/ManageIQ/manageiq-appliance_console/pull/192)
29
+ - Support Ruby 3.0 [[#206]](https://github.com/ManageIQ/manageiq-appliance_console/pull/206)
30
+ - Support Ruby 3.1 [[#227]](https://github.com/ManageIQ/manageiq-appliance_console/pull/227)
31
+ - Allow rails 7 gems in gemspec [[#226]](https://github.com/ManageIQ/manageiq-appliance_console/pull/226)
32
+
33
+ ### Changed
34
+ - Update to Highline 2.1.0 [[#201]](https://github.com/ManageIQ/manageiq-appliance_console/pull/201)
35
+ - Clean up test output (highline and stdout messages) [[#210]](https://github.com/ManageIQ/manageiq-appliance_console/pull/210)
36
+
37
+ ### Removed
38
+ - Drop Ruby 2.7 [[#223]](https://github.com/ManageIQ/manageiq-appliance_console/pull/223)
39
+
7
40
  ## [8.0.0] - 2022-10-18
8
41
  ### Fixed
9
- - Don't require pressing any key twice for message configuration (#193)
42
+ - Don't require pressing any key twice for message configuration [[#193]](https://github.com/ManageIQ/manageiq-appliance_console/pull/193)
10
43
 
11
44
  ### Added
12
- - Report messaging configuration on summary info page (#190)
45
+ - Report messaging configuration on summary info page [[#190]](https://github.com/ManageIQ/manageiq-appliance_console/pull/190)
13
46
 
14
47
  ### Changed
15
- - Refactor EvmServer operations (#194)
16
- - Only start evmserverd after all application configuration is done (#195)
17
- - **BREAKING** Don't start evmserverd until messaging is configured (#196)
18
- - Simplify messaging options by saving in yml files (#197)
48
+ - **BREAKING** Don't start evmserverd until messaging is configured [[#196]](https://github.com/ManageIQ/manageiq-appliance_console/pull/196)
49
+ - Refactor EvmServer operations [[#194]](https://github.com/ManageIQ/manageiq-appliance_console/pull/194)
50
+ - Only start evmserverd after all application configuration is done [[#195]](https://github.com/ManageIQ/manageiq-appliance_console/pull/195)
51
+ - Simplify messaging options by saving in yml files [[#197]](https://github.com/ManageIQ/manageiq-appliance_console/pull/197)
52
+
53
+ ## [7.2.2] - 2023-06-30
54
+ ### Fixed
55
+ - Fix sporadic test failure [[#204]](https://github.com/ManageIQ/manageiq-appliance_console/pull/204)
56
+ - Move gem name loader to proper namespaced location [[#208]](https://github.com/ManageIQ/manageiq-appliance_console/pull/208)
57
+ - Separate kerberos from service principal name and use correctly [[#215]](https://github.com/ManageIQ/manageiq-appliance_console/pull/215)
58
+
59
+ ## [7.2.1] - 2023-05-03
60
+ ### Fixed
61
+ - Remove MIQ specific gem source [[#209]](https://github.com/ManageIQ/manageiq-appliance_console/pull/209)
62
+ - Double escape @ in realm to avoid shell interpretation [[#211]](https://github.com/ManageIQ/manageiq-appliance_console/pull/211)
63
+
64
+ ## [7.2.0] - 2022-11-01
65
+ ### Added
66
+ - Make backward compatible changes to work with repmgr13 - version 5.2.1
67
+
68
+ ### Fixed
69
+ - Don't require user to press_any_key twice after successful messaging configuration
70
+ - Swap "localhost" to 127.0.0.1 in Messaging server configuration
71
+ - Simplify messaging options by saving in yml files
72
+
73
+ ## [7.1.1] - 2022-09-02
74
+ ### Fixed
75
+ - 6.1 configurations has symbol keys, [] deprecated, use configs_for [[#189]](https://github.com/ManageIQ/manageiq-appliance_console/pull/189)
76
+
77
+ ## [7.1.0] - 2022-08-12
78
+ ### Changed
79
+ - Upgrade to Rails 6.1
80
+
81
+ ## [7.0.6] - 2022-07-14
82
+ ### Changed
83
+ - Fix issue where region env var was not passed as a String [[#185]](https://github.com/ManageIQ/manageiq-appliance_console/pull/185)
84
+
85
+ ## [7.0.5] - 2022-07-13
86
+ ### Changed
87
+ - Fixed calls to `rake` command [[#184]](https://github.com/ManageIQ/manageiq-appliance_console/pull/184)
88
+
89
+ ## [7.0.4] - 2022-07-12
90
+ ### Changed
91
+ - Pass region as an environment variable [[#182]](https://github.com/ManageIQ/manageiq-appliance_console/pull/182)
92
+
93
+ ## [7.0.3] - 2022-02-22
94
+ ### Changed
95
+ - Check if kafka is installed before allowing messaging changes [[#180]](https://github.com/ManageIQ/manageiq-appliance_console/pull/180)
96
+
97
+ ## [7.0.2] - 2021-11-03
98
+ ### Changed
99
+ - Loosen manageiq-password to < 2 [[#175]](https://github.com/ManageIQ/manageiq-appliance_console/pull/175)
100
+
101
+ ## [7.0.1] - 2021-09-15
102
+ ### Changed
103
+ - Move in db_connections code from core
104
+ - We were locked down to activerecord/activesupport ~> 6.0.3.5 which didn't allow us to update to 6.0.4.1, loosen the dependency
105
+
106
+ ## [7.0.0] - 2021-08-04
107
+ ### Fixed
108
+ - Chown database.yml as manageiq:manageiq [[#165]](https://github.com/ManageIQ/manageiq-appliance_console/pull/165)
109
+ - Create /opt/kafka/config/keystore directory [[#170]](https://github.com/ManageIQ/manageiq-appliance_console/pull/170)
110
+ - Add missing parse_errors() method [[#169]](https://github.com/ManageIQ/manageiq-appliance_console/pull/169)
111
+
112
+ ### Added
113
+ - Add database dump/backup/restore to CLI [[#161]](https://github.com/ManageIQ/manageiq-appliance_console/pull/161)
114
+ - Use PostgresAdmin directly for DB backups [[#160]](https://github.com/ManageIQ/manageiq-appliance_console/pull/160)
115
+
116
+ ## [6.1.1] - 2021-09-15
117
+ ### Changed
118
+ - Upgrade to rails 6.0.4.1 [[#173]](https://github.com/ManageIQ/manageiq-appliance_console/pull/173)
119
+
120
+ ## [6.1.0] - 2021-03-30
121
+ ### Added
122
+ - Support a configuring the kafka server with the current IPAddr [[#159]](https://github.com/ManageIQ/manageiq-appliance_console/pull/159)
123
+ - Support moving Kafka Persistent data to a dedicated disk [[#158]](https://github.com/ManageIQ/manageiq-appliance_console/pull/158)
124
+ - Inject postgres admin into the appliance console [[#157]](https://github.com/ManageIQ/manageiq-appliance_console/pull/157)
125
+ - [Utilities] Add #disk_usage [[#155]](https://github.com/ManageIQ/manageiq-appliance_console/pull/155)
126
+ - When configuring the kafka client disable the server [[#154]](https://github.com/ManageIQ/manageiq-appliance_console/pull/154)
127
+ - Pass password to the keytool command using stdin [[#152]](https://github.com/ManageIQ/manageiq-appliance_console/pull/152)
128
+ - Support configuring Kafka through the CLI [[#151]](https://github.com/ManageIQ/manageiq-appliance_console/pull/151)
129
+ - Unify kafka client setup [[#149]](https://github.com/ManageIQ/manageiq-appliance_console/pull/149)
130
+ - use attr_reader only for password [[#148]](https://github.com/ManageIQ/manageiq-appliance_console/pull/148)
131
+ - remove duplicate class attr writer [[#145]](https://github.com/ManageIQ/manageiq-appliance_console/pull/145)
132
+ - Toggle Settings.prototype.messaging_type for Kafka support [[#137]](https://github.com/ManageIQ/manageiq-appliance_console/pull/137)
133
+ - Initial commit of kafka server configuration [[#130]](https://github.com/ManageIQ/manageiq-appliance_console/pull/130)
134
+
135
+ ### Fixed
136
+ - Fix Hakiri errors on activesupport/activerecord [[#156]](https://github.com/ManageIQ/manageiq-appliance_console/pull/156)
137
+ - Fix MAC test failures [[#150]](https://github.com/ManageIQ/manageiq-appliance_console/pull/150)
138
+
139
+ ## [6.0.0] - 2020-11-11
140
+ ### Added
141
+ - Try to fetch introspect endpoint from the provider metadata [[#121]](https://github.com/ManageIQ/manageiq-appliance_console/pull/121)
142
+
143
+ ### Removed
144
+ - **BREAKING** Remove rbnacl-libsodium [[#134]](https://github.com/ManageIQ/manageiq-appliance_console/pull/134)
145
+
146
+ rbnacl-libsodium is discontinued and it is preferable to use the
147
+ system package instead. Due to this, we are releasing this as a major
148
+ version, so that systems don't accidentally pull in a patch or minor
149
+ release which would then require system-level changes to install the
150
+ system package.
151
+
152
+ ## [5.5.0] - 2020-05-12
153
+ ### Added
154
+ - Add support for the oidc introspection endpoint [[#117]](https://github.com/ManageIQ/manageiq-appliance_console/pull/117)
155
+
156
+ ### Changed
157
+ - Rename "Configure Application Database Failover Monitor" [[#116]](https://github.com/ManageIQ/manageiq-appliance_console/pull/116)
158
+
159
+ ## [5.4.0] - 2020-04-14
160
+ ### Added
161
+ - Support for configuring an external messaging system [[#114]](https://github.com/ManageIQ/manageiq-appliance_console/pull/114)
162
+
163
+ ## [5.3.3] - 2020-04-02
164
+ ### Added
165
+ - Add necessary dependencies to support ssh with ed25519 cipher [[#113]](https://github.com/ManageIQ/manageiq-appliance_console/pull/113)
166
+ - Add missing net-scp runtime dependency [[#113]](https://github.com/ManageIQ/manageiq-appliance_console/pull/113)
167
+
168
+ ## [5.3.2] - 2020-03-05
169
+ ### Changed
170
+ - Use LinuxAdmin::Service#start with enable set to true
171
+
172
+ ## [5.3.1] - 2020-01-16
173
+ ### Changed
174
+ - Deduplicate the SCAP_RULES_DIR constan
175
+ - Update hostname regex to allow starting with digit
176
+ - Use the regex to validate hostnames when we set them
177
+
178
+ ## [5.3.0] - 2019-12-12
179
+
180
+ ## [5.2.0] - 2019-12-06
181
+
182
+ ## [5.1.0] - 2019-11-22
183
+ ### Changed
184
+ - Adding support for configuring Appliance SAML Authentication via the CLI
185
+
186
+ ## [5.0.3] - 2019-09-19
187
+ ### Changed
188
+ - Ensure that the CLI exits non-zero on database configuration error
189
+
190
+ ## [5.0.2] - 2019-08-14
191
+ ### Changed
192
+ - Restore the selinux context for the standby data directory [[#96]](https://github.com/ManageIQ/manageiq-appliance_console/pull/96)
193
+
194
+ ## [5.0.1] - 2019-07-08
195
+ ### Changed
196
+ - Remove unrecommended mount option "nobarrier" [[#95]](https://github.com/ManageIQ/manageiq-appliance_console/pull/95)
197
+ - Fix multiple issues with logfile disk configuration [[#93]](https://github.com/ManageIQ/manageiq-appliance_console/pull/93)
198
+
199
+ ## [5.0.0] - 2019-06-10
200
+ ### Changed
201
+ - Remove PG certificate handling [[#88]](https://github.com/ManageIQ/manageiq-appliance_console/pull/88)
202
+ - Don't attempt a database restore if evmserverd is running [[#91]](https://github.com/ManageIQ/manageiq-appliance_console/pull/91)
203
+
204
+ ## [4.0.2] - 2019-03-27
205
+ ### Changed
206
+ - Remove references to MiqPassword
207
+
208
+ ## [4.0.1] - 2019-03-14
209
+ ### Changed
210
+ - Fix permissions on PG user home directory after disk mount
211
+
212
+ ## [4.0.0] - 2019-03-12
213
+ ### Changed
214
+ - **BREAKING** Upgrade to Postgres 10
215
+ - Handle existing certs and support rerun of cert generation
216
+ - Enable certmonger to restart on reboot
217
+ - Switch to optimist gem
218
+
219
+ ## [3.3.3] - 2019-09-19
220
+
221
+ ## [3.3.2] - 2019-07-09
222
+
223
+ ## [3.3.1] - 2019-02-14
224
+
225
+ ## [3.3.0] - 2018-11-05
226
+
227
+ ## [3.2.0] - 2018-08-23
228
+
229
+ ## [3.1.0] - 2018-08-16
230
+
231
+ ## [3.0.0] - 2018-08-01
232
+
233
+ ## [2.0.3] - 2018-05-03
234
+
235
+ ## [2.0.2] - 2018-05-02
236
+
237
+ ## [2.0.1] - 2018-04-25
238
+
239
+ ## [2.0.0] - 2018-03-09
240
+
241
+ ## [1.2.4] - 2018-01-18
242
+
243
+ ## [1.2.3] - 2018-01-04
244
+
245
+ ## [1.2.2] - 2017-12-20
246
+
247
+ ## [1.2.1] - 2017-12-19
248
+
249
+ ## [1.2.0] - 2017-12-14
250
+
251
+ ## [1.1.0] - 2017-12-11
252
+
253
+ ## [1.0.1] - 2017-10-19
254
+
255
+ ## [1.0.0] - 2017-10-19
19
256
 
20
- [Unreleased]: https://github.com/ManageIQ/manageiq-appliance_console/compare/v8.0.0...HEAD
21
- [8.0.0]: https://github.com/ManageIQ/manageiq-appliance_console/compare/v7.1.1..v8.0.0
257
+ [Unreleased]: https://github.com/ManageIQ/manageiq-appliance_console/compare/v9.0.0...HEAD
258
+ [8.1.0]: https://github.com/ManageIQ/manageiq-appliance_console/compare/v8.1.0...v9.0.0
259
+ [8.1.0]: https://github.com/ManageIQ/manageiq-appliance_console/compare/v8.0.0...v8.1.0
260
+ [8.0.0]: https://github.com/ManageIQ/manageiq-appliance_console/compare/v7.2.2...v8.0.0
261
+ [7.2.2]: https://github.com/ManageIQ/manageiq-appliance_console/compare/v7.2.1...v7.2.2
262
+ [7.2.1]: https://github.com/ManageIQ/manageiq-appliance_console/compare/v7.2.0...v7.2.1
263
+ [7.2.0]: https://github.com/ManageIQ/manageiq-appliance_console/compare/v7.1.1...v7.2.0
264
+ [7.1.1]: https://github.com/ManageIQ/manageiq-appliance_console/compare/v7.1.0...v7.1.1
265
+ [7.1.0]: https://github.com/ManageIQ/manageiq-appliance_console/compare/v7.0.6...v7.1.0
266
+ [7.0.6]: https://github.com/ManageIQ/manageiq-appliance_console/compare/v7.0.5...v7.0.6
267
+ [7.0.5]: https://github.com/ManageIQ/manageiq-appliance_console/compare/v7.0.4...v7.0.5
268
+ [7.0.4]: https://github.com/ManageIQ/manageiq-appliance_console/compare/v7.0.3...v7.0.4
269
+ [7.0.3]: https://github.com/ManageIQ/manageiq-appliance_console/compare/v7.0.2...v7.0.3
270
+ [7.0.2]: https://github.com/ManageIQ/manageiq-appliance_console/compare/v7.0.1...v7.0.2
271
+ [7.0.1]: https://github.com/ManageIQ/manageiq-appliance_console/compare/v7.0.0...v7.0.1
272
+ [7.0.0]: https://github.com/ManageIQ/manageiq-appliance_console/compare/v6.1.1...v7.0.0
273
+ [6.1.1]: https://github.com/ManageIQ/manageiq-appliance_console/compare/v6.1.0...v6.1.1
274
+ [6.1.0]: https://github.com/ManageIQ/manageiq-appliance_console/compare/v6.0.0...v6.1.0
275
+ [6.0.0]: https://github.com/ManageIQ/manageiq-appliance_console/compare/v5.5.0...v6.0.0
276
+ [5.5.0]: https://github.com/ManageIQ/manageiq-appliance_console/compare/v5.4.0...v5.5.0
277
+ [5.4.0]: https://github.com/ManageIQ/manageiq-appliance_console/compare/v5.3.3...v5.4.0
278
+ [5.3.3]: https://github.com/ManageIQ/manageiq-appliance_console/compare/v5.3.2...v5.3.3
279
+ [5.3.2]: https://github.com/ManageIQ/manageiq-appliance_console/compare/v5.3.1...v5.3.2
280
+ [5.3.1]: https://github.com/ManageIQ/manageiq-appliance_console/compare/v5.3.0...v5.3.1
281
+ [5.3.0]: https://github.com/ManageIQ/manageiq-appliance_console/compare/v5.2.0...v5.3.0
282
+ [5.2.0]: https://github.com/ManageIQ/manageiq-appliance_console/compare/v5.1.0...v5.2.0
283
+ [5.1.0]: https://github.com/ManageIQ/manageiq-appliance_console/compare/v5.0.3...v5.1.0
284
+ [5.0.3]: https://github.com/ManageIQ/manageiq-appliance_console/compare/v5.0.2...v5.0.3
285
+ [5.0.2]: https://github.com/ManageIQ/manageiq-appliance_console/compare/v5.0.1...v5.0.2
286
+ [5.0.1]: https://github.com/ManageIQ/manageiq-appliance_console/compare/v5.0.0...v5.0.1
287
+ [5.0.0]: https://github.com/ManageIQ/manageiq-appliance_console/compare/v4.0.2...v5.0.0
288
+ [4.0.2]: https://github.com/ManageIQ/manageiq-appliance_console/compare/v4.0.1...v4.0.2
289
+ [4.0.1]: https://github.com/ManageIQ/manageiq-appliance_console/compare/v4.0.0...v4.0.1
290
+ [4.0.0]: https://github.com/ManageIQ/manageiq-appliance_console/compare/v3.3.3...v4.0.0
291
+ [3.3.3]: https://github.com/ManageIQ/manageiq-appliance_console/compare/v3.2.2...v3.3.3
292
+ [3.3.2]: https://github.com/ManageIQ/manageiq-appliance_console/compare/v3.3.1...v3.3.2
293
+ [3.3.1]: https://github.com/ManageIQ/manageiq-appliance_console/compare/v3.3.0...v3.3.1
294
+ [3.3.0]: https://github.com/ManageIQ/manageiq-appliance_console/compare/v3.2.0...v3.3.0
295
+ [3.2.0]: https://github.com/ManageIQ/manageiq-appliance_console/compare/v3.1.0...v3.2.0
296
+ [3.1.0]: https://github.com/ManageIQ/manageiq-appliance_console/compare/v3.0.0...v3.1.0
297
+ [3.0.0]: https://github.com/ManageIQ/manageiq-appliance_console/compare/v2.0.3...v3.0.0
298
+ [2.0.3]: https://github.com/ManageIQ/manageiq-appliance_console/compare/v2.0.2...v2.0.3
299
+ [2.0.2]: https://github.com/ManageIQ/manageiq-appliance_console/compare/v2.0.1...v2.0.2
300
+ [2.0.1]: https://github.com/ManageIQ/manageiq-appliance_console/compare/v2.0.0...v2.0.1
301
+ [2.0.0]: https://github.com/ManageIQ/manageiq-appliance_console/compare/v1.2.4...v2.0.0
302
+ [1.2.4]: https://github.com/ManageIQ/manageiq-appliance_console/compare/v1.2.3...v1.2.4
303
+ [1.2.3]: https://github.com/ManageIQ/manageiq-appliance_console/compare/v1.2.2...v1.2.3
304
+ [1.2.2]: https://github.com/ManageIQ/manageiq-appliance_console/compare/v1.2.1...v1.2.2
305
+ [1.2.1]: https://github.com/ManageIQ/manageiq-appliance_console/compare/v1.2.0...v1.2.1
306
+ [1.2.0]: https://github.com/ManageIQ/manageiq-appliance_console/compare/v1.1.0...v1.2.0
307
+ [1.1.0]: https://github.com/ManageIQ/manageiq-appliance_console/compare/v1.0.1...v1.1.0
308
+ [1.0.1]: https://github.com/ManageIQ/manageiq-appliance_console/compare/v1.0.0...v1.0.1
309
+ [1.0.0]: https://github.com/ManageIQ/manageiq-appliance_console/tree/v1.0.0
data/Gemfile CHANGED
@@ -1,5 +1,15 @@
1
- source 'http://rubygems.manageiq.org'
2
1
  source 'https://rubygems.org'
3
2
 
4
3
  # Specify your gem's dependencies in manageiq-appliance_console.gemspec
5
4
  gemspec
5
+
6
+ minimum_version =
7
+ case ENV['TEST_RAILS_VERSION']
8
+ when "7.0"
9
+ "~>7.0.8"
10
+ else
11
+ "~>6.1.4"
12
+ end
13
+
14
+ gem "activerecord", minimum_version
15
+ gem "activesupport", minimum_version
data/README.md CHANGED
@@ -1,7 +1,7 @@
1
1
  # ManageIQ::ApplianceConsole
2
2
 
3
3
  [![Gem Version](https://badge.fury.io/rb/manageiq-appliance_console.svg)](http://badge.fury.io/rb/manageiq-appliance_console)
4
- [![Build Status](https://travis-ci.com/ManageIQ/manageiq-appliance_console.svg?branch=master)](https://travis-ci.com/github/ManageIQ/manageiq-appliance_console)
4
+ [![CI](https://github.com/ManageIQ/manageiq-appliance_console/actions/workflows/ci.yaml/badge.svg)](https://github.com/ManageIQ/manageiq-appliance_console/actions/workflows/ci.yaml)
5
5
  [![Code Climate](https://codeclimate.com/github/ManageIQ/manageiq-appliance_console.svg)](https://codeclimate.com/github/ManageIQ/manageiq-appliance_console)
6
6
  [![Test Coverage](https://codeclimate.com/github/ManageIQ/manageiq-appliance_console/badges/coverage.svg)](https://codeclimate.com/github/ManageIQ/manageiq-appliance_console/coverage)
7
7
 
data/Rakefile CHANGED
@@ -8,7 +8,10 @@ RSpec::Core::RakeTask.new(:spec)
8
8
  # setting to allow the postgres specs to run.
9
9
  desc "Run RSpec code examples (assumes ci dependencies)"
10
10
  RSpec::Core::RakeTask.new("spec:ci") do |t|
11
- t.rspec_opts = "--options #{File.expand_path(".rspec_ci", __dir__)}"
11
+ # Temporarily disable the PG runner on CI
12
+ # was: t.rspec_opts = "--options #{File.expand_path(".rspec_ci", __dir__)}"
13
+ warn "\e[33;1mWARN: PostgresRunner specs are temporarily disabled on CI\e[0m" if ENV["CI"]
14
+ t.rspec_opts = "--options #{File.expand_path(".rspec", __dir__)}"
12
15
  end
13
16
 
14
17
  desc "Run RSpec code examples (with local postgres dependencies)"
@@ -5,22 +5,22 @@
5
5
  require 'bundler'
6
6
  Bundler.setup
7
7
 
8
- require 'manageiq-appliance_console'
8
+ require 'manageiq/appliance_console'
9
9
 
10
10
  require 'fileutils'
11
+ # defines globally /via kernal: agree(), ask(), choose() and say()
11
12
  require 'highline/import'
12
- require 'highline/system_extensions'
13
13
  require 'rubygems'
14
14
  require 'bcrypt'
15
15
  require 'linux_admin'
16
- require 'manageiq/appliance_console/postgres_admin'
17
16
  require 'awesome_spawn'
18
- include HighLine::SystemExtensions
19
17
 
20
18
  require 'manageiq/appliance_console/i18n'
21
19
 
22
- $terminal.wrap_at = 80
23
- $terminal.page_at = 35
20
+ HighLine.default_instance.tap do |highline|
21
+ highline.wrap_at = 80
22
+ highline.page_at = 35
23
+ end
24
24
 
25
25
  def summary_entry(field, value)
26
26
  dfield = "#{field}:"
@@ -141,7 +141,7 @@ Welcome to the #{I18n.t("product.name")} Virtual Appliance.
141
141
 
142
142
  To modify the configuration, use a web browser to access the management page.
143
143
 
144
- #{$terminal.list(summary_attributes)}
144
+ #{HighLine.default_instance.list(summary_attributes)}
145
145
  EOL
146
146
 
147
147
  press_any_key
@@ -149,161 +149,6 @@ To modify the configuration, use a web browser to access the management page.
149
149
  clear_screen
150
150
  selection = ask_with_menu("Advanced Setting", AS_OPTIONS, nil, true)
151
151
  case selection
152
- when I18n.t('advanced_settings.networking')
153
- options = {
154
- 'Set DHCP Network Configuration' => 'dhcp',
155
- 'Set IPv4 Static Network Configuration' => 'static',
156
- 'Set IPv6 Static Network Configuration' => 'static6',
157
- 'Test Network Configuration' => 'testnet',
158
- 'Set Hostname' => 'hostname'
159
- }
160
- case ask_with_menu('Network Configuration', options)
161
- when 'dhcp'
162
- say("DHCP Network Configuration\n\n")
163
-
164
- ipv4 = agree('Enable DHCP for IPv4 network configuration? (Y/N): ')
165
- ipv6 = agree('Enable DHCP for IPv6 network configuration? (Y/N): ')
166
-
167
- if ipv4 || ipv6
168
- say("\nApplying DHCP network configuration...")
169
-
170
- resolv = LinuxAdmin::Dns.new
171
- resolv.search_order = []
172
- resolv.nameservers = []
173
- resolv.save
174
-
175
- eth0.enable_dhcp if ipv4
176
- eth0.enable_dhcp6 if ipv6
177
- eth0.save
178
-
179
- File.write(CLOUD_INIT_NETWORK_CONFIG_FILE, CLOUD_INIT_DISABLE_NETWORK_CONFIG)
180
- say("\nAfter completing the appliance configuration, please restart #{I18n.t("product.name")} server processes.")
181
- press_any_key
182
- end
183
- when 'static'
184
- say("Static Network Configuration\n\n")
185
- say("Enter the new static network configuration settings.\n\n")
186
-
187
- new_ip = ask_for_ipv4("IP Address", ip)
188
- new_mask = ask_for_ipv4("Netmask", mask)
189
- new_gw = ask_for_ipv4("Gateway", gw)
190
- new_dns1 = ask_for_ip("Primary DNS", dns1)
191
- new_dns2 = ask_for_ip_or_none("Secondary DNS (Enter 'none' for no value)", dns2)
192
-
193
- new_search_order = ask_for_many("domain", "Domain search order", order)
194
-
195
- clear_screen
196
- say(<<-EOL)
197
- Static Network Configuration
198
-
199
- IP Address: #{new_ip}
200
- Netmask: #{new_mask}
201
- Gateway: #{new_gw}
202
- Primary DNS: #{new_dns1}
203
- Secondary DNS: #{new_dns2}
204
- Search Order: #{new_search_order.join(" ")}
205
-
206
- EOL
207
-
208
- if agree("Apply static network configuration? (Y/N)")
209
- say("\nApplying static network configuration...")
210
-
211
- resolv = LinuxAdmin::Dns.new
212
- resolv.search_order = []
213
- resolv.nameservers = []
214
- resolv.save
215
-
216
- begin
217
- network_configured = eth0.apply_static(new_ip, new_mask, new_gw, [new_dns1, new_dns2], new_search_order)
218
- rescue ArgumentError => e
219
- say("\nNetwork configuration failed: #{e.message}")
220
- press_any_key
221
- next
222
- end
223
-
224
- unless network_configured
225
- say("\nNetwork interface failed to start using the values supplied.")
226
- press_any_key
227
- next
228
- end
229
-
230
- File.write(CLOUD_INIT_NETWORK_CONFIG_FILE, CLOUD_INIT_DISABLE_NETWORK_CONFIG)
231
- say("\nAfter completing the appliance configuration, please restart #{I18n.t("product.name")} server processes.")
232
- press_any_key
233
- end
234
-
235
- when 'static6'
236
- say("IPv6: Static Network Configuration\n\n")
237
- say("Enter the new static network configuration settings.\n\n")
238
-
239
- new_ip = ask_for_ipv6('IP Address', eth0.address6)
240
- new_prefix = ask_for_integer('IPv6 prefix length', 1..127, eth0.prefix6 || 64)
241
- new_gw = ask_for_ipv6('Default gateway', eth0.gateway6)
242
- new_dns1 = ask_for_ip('Primary DNS', dns1)
243
- new_dns2 = ask_for_ip_or_none("Secondary DNS (Enter 'none' for no value)", dns2)
244
-
245
- new_search_order = ask_for_many('domain', 'Domain search order', order)
246
-
247
- clear_screen
248
- say(<<-EOL)
249
- Static Network Configuration
250
-
251
- IP Address: #{new_ip}/#{new_prefix}
252
- Gateway: #{new_gw}
253
- Primary DNS: #{new_dns1}
254
- Secondary DNS: #{new_dns2}
255
- Search Order: #{new_search_order.join(" ")}
256
-
257
- EOL
258
-
259
- if agree('Apply static network configuration? (Y/N)')
260
- say("\nApplying static network configuration...")
261
-
262
- resolv = LinuxAdmin::Dns.new
263
- resolv.search_order = []
264
- resolv.nameservers = []
265
- resolv.save
266
-
267
- begin
268
- network_configured = eth0.apply_static6(new_ip, new_prefix, new_gw, [new_dns1, new_dns2], new_search_order)
269
- rescue ArgumentError => e
270
- say("\nNetwork configuration failed: #{e.message}")
271
- press_any_key
272
- next
273
- end
274
-
275
- unless network_configured
276
- say("\nNetwork interface failed to start using the values supplied.")
277
- press_any_key
278
- next
279
- end
280
-
281
- File.write(CLOUD_INIT_NETWORK_CONFIG_FILE, CLOUD_INIT_DISABLE_NETWORK_CONFIG)
282
- say("\nAfter completing the appliance configuration, please restart #{I18n.t("product.name")} server processes.")
283
- press_any_key
284
- end
285
-
286
- when 'testnet'
287
- ManageIQ::ApplianceConsole::Utilities.test_network
288
-
289
- when 'hostname'
290
- say("Hostname Configuration\n\n")
291
- new_host = just_ask("new hostname", host, HOSTNAME_REGEXP, "Please enter a valid hostname")
292
-
293
- if new_host != host
294
- say("Applying new hostname...")
295
- system_hosts = LinuxAdmin::Hosts.new
296
-
297
- system_hosts.parsed_file.each { |line| line[:hosts].to_a.delete(host) } unless host =~ /^localhost.*/
298
-
299
- system_hosts.hostname = new_host
300
- system_hosts.set_loopback_hostname(new_host)
301
- system_hosts.save
302
-
303
- press_any_key
304
- end
305
- end
306
-
307
152
  when I18n.t("advanced_settings.httpdauth")
308
153
  say("#{selection}\n\n")
309
154
 
@@ -3,5 +3,5 @@
3
3
  require 'bundler'
4
4
  Bundler.setup
5
5
 
6
- require 'manageiq-appliance_console'
6
+ require 'manageiq/appliance_console'
7
7
  ManageIQ::ApplianceConsole::Cli.parse(ARGV)
@@ -256,7 +256,6 @@ module ApplianceConsole
256
256
  system_hosts.hostname = options[:host]
257
257
  system_hosts.set_loopback_hostname(options[:host])
258
258
  system_hosts.save
259
- LinuxAdmin::Service.new("network").restart
260
259
  end
261
260
  create_key if key?
262
261
  set_db if database?
@@ -15,14 +15,6 @@ module ManageIQ
15
15
  Example: 'mydomain.com/user'
16
16
  PROMPT
17
17
 
18
- DB_DUMP_WARNING = <<-WARN.strip_heredoc
19
- WARNING: This is not the recommended and supported way of running a
20
- database backup, and is strictly meant for exporting a database for
21
- support/debugging purposes!
22
-
23
-
24
- WARN
25
-
26
18
  attr_reader :action, :backup_type, :database_opts, :delete_agree, :filename
27
19
 
28
20
  def initialize(action = :restore, input = $stdin, output = $stdout)
@@ -43,7 +35,6 @@ module ManageIQ
43
35
  press_any_key
44
36
  raise MiqSignalError
45
37
  end
46
- say(DB_DUMP_WARNING) if action == :dump
47
38
  ask_file_location
48
39
  ask_for_tables_to_exclude_in_dump
49
40
  end
@@ -257,7 +257,13 @@ FRIENDLY
257
257
  require 'fileutils'
258
258
  FileUtils.cp(DB_YML_TMPL, DB_YML) if File.exist?(DB_YML_TMPL)
259
259
  end
260
- YAML.load_file(DB_YML)
260
+
261
+ data = File.read(DB_YML)
262
+ if YAML.respond_to?(:safe_load)
263
+ YAML.safe_load(data, :aliases => true)
264
+ else
265
+ YAML.load(data) # rubocop:disable Security/YAMLLoad
266
+ end
261
267
  end
262
268
 
263
269
  def validate_encryption_key!
@@ -7,11 +7,20 @@ module ApplianceConsole
7
7
  class DatabaseReplication
8
8
  include ManageIQ::ApplianceConsole::Logging
9
9
 
10
- REPMGR_CONFIG = '/etc/repmgr/10/repmgr.conf'.freeze
11
- REPMGR_LOG = '/var/log/repmgr/repmgrd.log'.freeze
12
10
  PGPASS_FILE = '/var/lib/pgsql/.pgpass'.freeze
13
11
  NETWORK_INTERFACE = 'eth0'.freeze
14
12
 
13
+ REPGMR_FILE_LOCATIONS = {
14
+ "repmgr10" => {
15
+ "config" => "/etc/repmgr/10/repmgr.conf",
16
+ "log" => "/var/log/repmgr/repmgrd.log"
17
+ },
18
+ "repmgr13" => {
19
+ "config" => "/etc/repmgr/13/repmgr.conf",
20
+ "log" => "/var/log/repmgr/repmgrd-13.log"
21
+ }
22
+ }.freeze
23
+
15
24
  attr_accessor :node_number, :database_name, :database_user,
16
25
  :database_password, :primary_host
17
26
 
@@ -37,33 +46,53 @@ Replication Server Configuration
37
46
  EOL
38
47
  end
39
48
 
40
- def repmgr_configured?
41
- File.exist?(REPMGR_CONFIG)
49
+ def self.repmgr_config
50
+ repmgr_file_locations["config"]
51
+ end
52
+
53
+ def self.repmgr_configured?
54
+ File.exist?(repmgr_config)
55
+ end
56
+
57
+ def self.repmgr_file_locations
58
+ REPGMR_FILE_LOCATIONS[repmgr_service_name]
42
59
  end
43
60
 
61
+ def self.repmgr_log
62
+ repmgr_file_locations["log"]
63
+ end
64
+
65
+ def self.repmgr_service_name
66
+ @repmgr_service_name ||= File.exist?(REPGMR_FILE_LOCATIONS["repmgr13"]["config"]) ? "repmgr13" : "repmgr10"
67
+ end
68
+
69
+ delegate :repmgr_config, :repmgr_configured?, :repmgr_file_locations, :repmgr_log, :repmgr_service_name, :to => self
70
+
44
71
  def confirm_reconfiguration
45
- say("Warning: File #{REPMGR_CONFIG} exists. Replication is already configured")
46
- logger.warn("Warning: File #{REPMGR_CONFIG} exists. Replication is already configured")
72
+ say("Warning: File #{repmgr_config} exists. Replication is already configured")
73
+ logger.warn("Warning: File #{repmgr_config} exists. Replication is already configured")
47
74
  agree("Continue with configuration? (Y/N): ")
48
75
  end
49
76
 
50
77
  def create_config_file(host)
51
- File.write(REPMGR_CONFIG, config_file_contents(host))
78
+ File.write(repmgr_config, config_file_contents(host))
52
79
  true
53
80
  end
54
81
 
55
82
  def config_file_contents(host)
56
83
  service_name = PostgresAdmin.service_name
84
+ # FYI, 5.0 made quoting strings strict. Always use single quoted strings.
85
+ # https://repmgr.org/docs/current/release-5.0.html
57
86
  <<-EOS.strip_heredoc
58
- node_id=#{node_number}
59
- node_name=#{host}
87
+ node_id='#{node_number}'
88
+ node_name='#{host}'
60
89
  conninfo='host=#{host} user=#{database_user} dbname=#{database_name}'
61
- use_replication_slots=1
90
+ use_replication_slots='1'
62
91
  pg_basebackup_options='--wal-method=stream'
63
- failover=automatic
64
- promote_command='repmgr standby promote -f #{REPMGR_CONFIG} --log-to-file'
65
- follow_command='repmgr standby follow -f #{REPMGR_CONFIG} --log-to-file --upstream-node-id=%n'
66
- log_file=#{REPMGR_LOG}
92
+ failover='automatic'
93
+ promote_command='repmgr standby promote -f #{repmgr_config} --log-to-file'
94
+ follow_command='repmgr standby follow -f #{repmgr_config} --log-to-file --upstream-node-id=%n'
95
+ log_file='#{repmgr_log}'
67
96
  service_start_command='sudo systemctl start #{service_name}'
68
97
  service_stop_command='sudo systemctl stop #{service_name}'
69
98
  service_restart_command='sudo systemctl restart #{service_name}'
@@ -122,8 +151,8 @@ Replication Server Configuration
122
151
  end
123
152
  end
124
153
 
125
- Process.wait(pid)
126
- $CHILD_STATUS.success?
154
+ pid, status = Process.wait2(pid)
155
+ status.success?
127
156
  end
128
157
 
129
158
  def primary_connection_hash
@@ -8,7 +8,6 @@ module ApplianceConsole
8
8
  include ManageIQ::ApplianceConsole::Logging
9
9
 
10
10
  REGISTER_CMD = 'repmgr standby register'.freeze
11
- REPMGRD_SERVICE = 'repmgr10'.freeze
12
11
 
13
12
  attr_accessor :disk, :standby_host, :run_repmgrd_configuration, :resync_data, :force_register
14
13
 
@@ -111,7 +110,7 @@ module ApplianceConsole
111
110
  end
112
111
 
113
112
  def start_repmgrd
114
- LinuxAdmin::Service.new(REPMGRD_SERVICE).enable.start
113
+ LinuxAdmin::Service.new(repmgr_service_name).enable.start
115
114
  true
116
115
  rescue AwesomeSpawn::CommandResultError => e
117
116
  message = "Failed to start repmgrd: #{e.message}"
@@ -121,7 +120,7 @@ module ApplianceConsole
121
120
  end
122
121
 
123
122
  def stop_repmgrd
124
- LinuxAdmin::Service.new(REPMGRD_SERVICE).stop
123
+ LinuxAdmin::Service.new(repmgr_service_name).stop
125
124
  true
126
125
  end
127
126
 
@@ -124,7 +124,7 @@ module ApplianceConsole
124
124
  def configure_sssd_ifp(config)
125
125
  user_attributes = LDAP_ATTRS.keys.collect { |k| "+#{k}" }.join(", ")
126
126
  ifp_config = "
127
- allowed_uids = #{APACHE_USER}, root
127
+ allowed_uids = #{APACHE_USER}, root, manageiq
128
128
  user_attributes = #{user_attributes}
129
129
  "
130
130
  if config.include?("[ifp]")
@@ -110,7 +110,13 @@ module ManageIQ
110
110
 
111
111
  return if file_found?(messaging_yaml_path)
112
112
 
113
- messaging_yaml = YAML.load_file(messaging_yaml_sample_path)
113
+ data = File.read(messaging_yaml_sample_path)
114
+ messaging_yaml =
115
+ if YAML.respond_to?(:safe_load)
116
+ YAML.safe_load(data, :aliases => true)
117
+ else
118
+ YAML.load(data) # rubocop:disable Security/YAMLLoad
119
+ end
114
120
 
115
121
  messaging_yaml["production"]["host"] = message_server_host
116
122
  messaging_yaml["production"]["port"] = message_server_port
@@ -198,7 +198,7 @@ module ManageIQ
198
198
  "-out" => ca_cert_path,
199
199
  "-days" => 10_000,
200
200
  "-passout" => "env:PASSWORD",
201
- "-subj" => '/CN=something'}])
201
+ "-subj" => '/CN=ApplianceCA'}])
202
202
 
203
203
  # Import the CA cert into the trust store, creating truststore.jks
204
204
  # :stdin_data provides the -storepass argument and yes to confirm
@@ -62,13 +62,18 @@ module ApplianceConsole
62
62
  LinuxAdmin::Service.new(service_name).running?
63
63
  end
64
64
 
65
- def self.local_server_in_recovery?
66
- data_directory.join("recovery.conf").exist?
65
+ def self.local_server_received_standby_signal?
66
+ # Beginning with PostgreSQL 12, replication configuration has been integrated into the main PostgreSQL configuraton system and the conventional recovery.conf file is no longer valid.
67
+ # see: https://repmgr.org/docs/current/release-5.0.html
68
+ # https://www.2ndquadrant.com/en/blog/replication-configuration-changes-in-postgresql-12/
69
+ # "standby.signal" – indicates the server should start up as a hot standby
70
+ # If a standby is promoted, "standby.signal" is removed entirely (and not renamed as was the case with "recovery.conf", which became "recovery.done").
71
+ data_directory.join("standby.signal").exist? || data_directory.join("recovery.conf").exist?
67
72
  end
68
73
 
69
74
  def self.local_server_status
70
75
  if service_running?
71
- "running (#{local_server_in_recovery? ? "standby" : "primary"})"
76
+ "running (#{local_server_received_standby_signal? ? "standby" : "primary"})"
72
77
  elsif initialized?
73
78
  "initialized and stopped"
74
79
  else
@@ -10,12 +10,14 @@ module ApplianceConsole
10
10
  attr_accessor :service
11
11
  # kerberos principal name
12
12
  attr_accessor :name
13
+ attr_accessor :service_principal
13
14
 
14
15
  def initialize(options = {})
15
16
  options.each { |n, v| public_send("#{n}=", v) }
16
17
  @ca_name ||= "ipa"
17
18
  @realm = @realm.upcase if @realm
18
- @name ||= "#{service}/#{hostname}@#{realm}"
19
+ @service_principal ||= "#{service}/#{hostname}"
20
+ @name ||= "#{service_principal}@#{realm}"
19
21
  end
20
22
 
21
23
  def register
@@ -33,13 +35,13 @@ module ApplianceConsole
33
35
  private
34
36
 
35
37
  def exist?
36
- AwesomeSpawn.run("/usr/bin/ipa", :params => ["-e", "skip_version_check=1", "service-find", "--principal", name]).success?
38
+ AwesomeSpawn.run("/usr/bin/ipa", :params => ["-e", "skip_version_check=1", "service-find", "--principal", service_principal]).success?
37
39
  end
38
40
 
39
41
  def request
40
42
  # using --force because these services tend not to be in dns
41
43
  # this is like VERIFY_NONE
42
- AwesomeSpawn.run!("/usr/bin/ipa", :params => ["-e", "skip_version_check=1", "service-add", "--force", name])
44
+ AwesomeSpawn.run!("/usr/bin/ipa", :params => ["-e", "skip_version_check=1", "service-add", "--force", service_principal])
43
45
  end
44
46
  end
45
47
  end
@@ -34,7 +34,11 @@ module ApplianceConsole
34
34
 
35
35
  def press_any_key
36
36
  say("\nPress any key to continue.")
37
- STDIN.noecho(&:getch)
37
+ HighLine.default_instance.tap do |highline|
38
+ highline.terminal.raw_no_echo_mode_exec do
39
+ highline.terminal.get_character
40
+ end
41
+ end
38
42
  end
39
43
 
40
44
  def clear_screen
@@ -63,26 +67,6 @@ module ApplianceConsole
63
67
  just_ask(prompt, default, validate, error_text, &block)
64
68
  end
65
69
 
66
- def ask_for_ip_or_none(prompt, default = nil)
67
- ask_for_ip(prompt, default, Regexp.union(NONE_REGEXP, IP_REGEXP)).gsub(NONE_REGEXP, "")
68
- end
69
-
70
- def ask_for_ipv4(prompt, default)
71
- ask_for_ip(prompt, default, IPV4_REGEXP)
72
- end
73
-
74
- def ask_for_ipv4_or_none(prompt, default = nil)
75
- ask_for_ip(prompt, default, Regexp.union(NONE_REGEXP, IPV4_REGEXP)).gsub(NONE_REGEXP, "")
76
- end
77
-
78
- def ask_for_ipv6(prompt, default)
79
- ask_for_ip(prompt, default, IPV6_REGEXP)
80
- end
81
-
82
- def ask_for_ipv6_or_none(prompt, default = nil)
83
- ask_for_ip(prompt, default, Regexp.union(IPV6_REGEXP, NONE_REGEXP)).gsub(NONE_REGEXP, '')
84
- end
85
-
86
70
  def ask_for_hostname(prompt, default = nil, validate = HOSTNAME_REGEXP, error_text = "a valid Hostname.", &block)
87
71
  just_ask(prompt, default, validate, error_text, &block)
88
72
  end
@@ -1,5 +1,5 @@
1
1
  module ManageIQ
2
2
  module ApplianceConsole
3
- VERSION = '8.0.0'.freeze
3
+ VERSION = '9.0.0'.freeze
4
4
  end
5
5
  end
@@ -43,6 +43,7 @@ require 'manageiq/appliance_console/message_configuration_client'
43
43
  require 'manageiq/appliance_console/message_configuration_server'
44
44
  require 'manageiq/appliance_console/oidc_authentication'
45
45
  require 'manageiq/appliance_console/principal'
46
+ require 'manageiq/appliance_console/postgres_admin'
46
47
  require 'manageiq/appliance_console/saml_authentication'
47
48
  require 'manageiq/appliance_console/scap'
48
49
  require 'manageiq/appliance_console/temp_storage_configuration'
@@ -4,7 +4,6 @@ en:
4
4
  name: ManageIQ
5
5
  advanced_settings:
6
6
  menu_order:
7
- - networking
8
7
  - dbbackup
9
8
  - dbdump
10
9
  - dbrestore
@@ -21,7 +20,6 @@ en:
21
20
  - shutdown
22
21
  - summary
23
22
  - quit
24
- networking: Configure Network
25
23
  dbbackup: Create Database Backup
26
24
  dbdump: Create Database Dump
27
25
  dbrestore: Restore Database From Backup
@@ -41,4 +39,4 @@ en:
41
39
  database_admin:
42
40
  local: Local file
43
41
  sample_url:
44
- nfs: nfs://host.mydomain.com/exported/my_exported_folder/db.backup
42
+ nfs: nfs://host.example.com/exported/my_exported_folder/db.backup
@@ -20,12 +20,12 @@ Gem::Specification.new do |spec|
20
20
  spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
21
21
  spec.require_paths = ["lib"]
22
22
 
23
- spec.add_runtime_dependency "activerecord", "~> 6.1.6", ">= 6.1.6.1"
24
- spec.add_runtime_dependency "activesupport", "~> 6.1.6", ">= 6.1.6.1"
25
- spec.add_runtime_dependency "awesome_spawn", "~> 1.4"
23
+ spec.add_runtime_dependency "activerecord", ">=6.1.7.6"
24
+ spec.add_runtime_dependency "activesupport", ">=6.1.7.6"
25
+ spec.add_runtime_dependency "awesome_spawn", "~> 1.6"
26
26
  spec.add_runtime_dependency "bcrypt", "~> 3.1.10"
27
27
  spec.add_runtime_dependency "bcrypt_pbkdf", ">= 1.0", "< 2.0"
28
- spec.add_runtime_dependency "highline", "~> 1.6.21"
28
+ spec.add_runtime_dependency "highline", "~> 2.1"
29
29
  spec.add_runtime_dependency "i18n", ">= 0.8"
30
30
  spec.add_runtime_dependency "linux_admin", "~> 2.0"
31
31
  spec.add_runtime_dependency "manageiq-password", "< 2"
@@ -36,10 +36,9 @@ Gem::Specification.new do |spec|
36
36
  spec.add_runtime_dependency "rbnacl", ">= 3.2", "< 5.0"
37
37
 
38
38
  spec.add_development_dependency "bundler"
39
- spec.add_development_dependency "codeclimate-test-reporter", "~> 1.0.0"
40
39
  spec.add_development_dependency "manageiq-style"
41
40
  spec.add_development_dependency "rake"
42
- spec.add_development_dependency "rspec", "~> 3.0"
41
+ spec.add_development_dependency "rspec", "~> 3.0"
43
42
  spec.add_development_dependency "rubocop"
44
- spec.add_development_dependency "simplecov"
43
+ spec.add_development_dependency "simplecov", ">= 0.21.2"
45
44
  end
metadata CHANGED
@@ -1,69 +1,57 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: manageiq-appliance_console
3
3
  version: !ruby/object:Gem::Version
4
- version: 8.0.0
4
+ version: 9.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - ManageIQ Developers
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-10-21 00:00:00.000000000 Z
11
+ date: 2024-03-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activerecord
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - "~>"
18
- - !ruby/object:Gem::Version
19
- version: 6.1.6
20
17
  - - ">="
21
18
  - !ruby/object:Gem::Version
22
- version: 6.1.6.1
19
+ version: 6.1.7.6
23
20
  type: :runtime
24
21
  prerelease: false
25
22
  version_requirements: !ruby/object:Gem::Requirement
26
23
  requirements:
27
- - - "~>"
28
- - !ruby/object:Gem::Version
29
- version: 6.1.6
30
24
  - - ">="
31
25
  - !ruby/object:Gem::Version
32
- version: 6.1.6.1
26
+ version: 6.1.7.6
33
27
  - !ruby/object:Gem::Dependency
34
28
  name: activesupport
35
29
  requirement: !ruby/object:Gem::Requirement
36
30
  requirements:
37
- - - "~>"
38
- - !ruby/object:Gem::Version
39
- version: 6.1.6
40
31
  - - ">="
41
32
  - !ruby/object:Gem::Version
42
- version: 6.1.6.1
33
+ version: 6.1.7.6
43
34
  type: :runtime
44
35
  prerelease: false
45
36
  version_requirements: !ruby/object:Gem::Requirement
46
37
  requirements:
47
- - - "~>"
48
- - !ruby/object:Gem::Version
49
- version: 6.1.6
50
38
  - - ">="
51
39
  - !ruby/object:Gem::Version
52
- version: 6.1.6.1
40
+ version: 6.1.7.6
53
41
  - !ruby/object:Gem::Dependency
54
42
  name: awesome_spawn
55
43
  requirement: !ruby/object:Gem::Requirement
56
44
  requirements:
57
45
  - - "~>"
58
46
  - !ruby/object:Gem::Version
59
- version: '1.4'
47
+ version: '1.6'
60
48
  type: :runtime
61
49
  prerelease: false
62
50
  version_requirements: !ruby/object:Gem::Requirement
63
51
  requirements:
64
52
  - - "~>"
65
53
  - !ruby/object:Gem::Version
66
- version: '1.4'
54
+ version: '1.6'
67
55
  - !ruby/object:Gem::Dependency
68
56
  name: bcrypt
69
57
  requirement: !ruby/object:Gem::Requirement
@@ -104,14 +92,14 @@ dependencies:
104
92
  requirements:
105
93
  - - "~>"
106
94
  - !ruby/object:Gem::Version
107
- version: 1.6.21
95
+ version: '2.1'
108
96
  type: :runtime
109
97
  prerelease: false
110
98
  version_requirements: !ruby/object:Gem::Requirement
111
99
  requirements:
112
100
  - - "~>"
113
101
  - !ruby/object:Gem::Version
114
- version: 1.6.21
102
+ version: '2.1'
115
103
  - !ruby/object:Gem::Dependency
116
104
  name: i18n
117
105
  requirement: !ruby/object:Gem::Requirement
@@ -244,20 +232,6 @@ dependencies:
244
232
  - - ">="
245
233
  - !ruby/object:Gem::Version
246
234
  version: '0'
247
- - !ruby/object:Gem::Dependency
248
- name: codeclimate-test-reporter
249
- requirement: !ruby/object:Gem::Requirement
250
- requirements:
251
- - - "~>"
252
- - !ruby/object:Gem::Version
253
- version: 1.0.0
254
- type: :development
255
- prerelease: false
256
- version_requirements: !ruby/object:Gem::Requirement
257
- requirements:
258
- - - "~>"
259
- - !ruby/object:Gem::Version
260
- version: 1.0.0
261
235
  - !ruby/object:Gem::Dependency
262
236
  name: manageiq-style
263
237
  requirement: !ruby/object:Gem::Requirement
@@ -320,14 +294,14 @@ dependencies:
320
294
  requirements:
321
295
  - - ">="
322
296
  - !ruby/object:Gem::Version
323
- version: '0'
297
+ version: 0.21.2
324
298
  type: :development
325
299
  prerelease: false
326
300
  version_requirements: !ruby/object:Gem::Requirement
327
301
  requirements:
328
302
  - - ">="
329
303
  - !ruby/object:Gem::Version
330
- version: '0'
304
+ version: 0.21.2
331
305
  description: ManageIQ Appliance Console
332
306
  email:
333
307
  executables:
@@ -337,13 +311,13 @@ extensions: []
337
311
  extra_rdoc_files: []
338
312
  files:
339
313
  - ".codeclimate.yml"
314
+ - ".github/workflows/ci.yaml"
340
315
  - ".gitignore"
341
316
  - ".rspec"
342
317
  - ".rspec_ci"
343
318
  - ".rubocop.yml"
344
319
  - ".rubocop_cc.yml"
345
320
  - ".rubocop_local.yml"
346
- - ".travis.yml"
347
321
  - ".whitesource"
348
322
  - ".yamllint"
349
323
  - CHANGELOG.md
@@ -353,7 +327,7 @@ files:
353
327
  - Rakefile
354
328
  - bin/appliance_console
355
329
  - bin/appliance_console_cli
356
- - lib/manageiq-appliance_console.rb
330
+ - lib/manageiq/appliance_console.rb
357
331
  - lib/manageiq/appliance_console/auth_utilities.rb
358
332
  - lib/manageiq/appliance_console/certificate.rb
359
333
  - lib/manageiq/appliance_console/certificate_authority.rb
@@ -412,7 +386,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
412
386
  - !ruby/object:Gem::Version
413
387
  version: '0'
414
388
  requirements: []
415
- rubygems_version: 3.3.15
389
+ rubygems_version: 3.3.26
416
390
  signing_key:
417
391
  specification_version: 4
418
392
  summary: ManageIQ Appliance Console
data/.travis.yml DELETED
@@ -1,22 +0,0 @@
1
- ---
2
- language: ruby
3
- rvm:
4
- - 2.6.6
5
- - 2.7.2
6
- cache: bundler
7
- addons:
8
- postgresql: '10'
9
- env:
10
- global:
11
- - RUBY_GC_HEAP_GROWTH_MAX_SLOTS=300000
12
- - RUBY_GC_HEAP_INIT_SLOTS=600000
13
- - RUBY_GC_HEAP_GROWTH_FACTOR=1.25
14
- after_script: bundle exec codeclimate-test-reporter
15
- notifications:
16
- webhooks:
17
- urls:
18
- - https://webhooks.gitter.im/e/115ada1099c46977b0d3
19
- on_success: change
20
- on_failure: always
21
- on_start: never
22
- dist: bionic