manageiq-appliance_console 3.3.3 → 4.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: 1778c8d617691aa881a998d7d106d8062d6f6e1ae21f64286f5cc6e784366eb4
4
- data.tar.gz: feed3c1a56f14984c3f062591c6275f4ba687b0c77b3a7a10c9e25b8e4da5c5d
3
+ metadata.gz: 2ae45795759924ffcb767e88c968847a8ab4668ca7e300bee23862e1b5cbc9be
4
+ data.tar.gz: 2b681236da45dc65576e2a0779aaa9179ac1f04079f1f2c7982bdb5923b75da0
5
5
  SHA512:
6
- metadata.gz: 7e3d29649b362700a9d9f94083e51f0531e99efc6aae2fc67af2286692d267e1fb5c9e031c9050e08311f4f207a52098843a0d5fbf7ec0b9451a621a5b2343b1
7
- data.tar.gz: 7073df17678575318c597b655ab657d5927d4492bd71eda802df52a6f065b0fd8c57083ddd415a615e9a687f7f3886911f8ed80aed6b72b42ebaba63c45731a1
6
+ metadata.gz: 2f76a5c46f96ea86a1d31376008ef8692fc1006a7f2082ea5d8815df1415a7974a0a9924592070291661c634d4d8fb156e2296855ebd38bac44ec494ad575d05
7
+ data.tar.gz: 379e0487991063ecc85c6b24b58d68712d72bb71d7212254775f18a1b7b6d9c2cce3056da46b38c9be12c65e79b26107463236cd688bffb570c4d4707db8e197
data/Gemfile CHANGED
@@ -3,4 +3,4 @@ source 'https://rubygems.org'
3
3
  # Specify your gem's dependencies in manageiq-smartstate.gemspec
4
4
  gemspec
5
5
 
6
- gem "manageiq-gems-pending", :git => "https://github.com/ManageIQ/manageiq-gems-pending", :branch => "hammer"
6
+ gem "manageiq-gems-pending", :git => "https://github.com/ManageIQ/manageiq-gems-pending", :branch => "master"
@@ -1,4 +1,6 @@
1
1
  require "awesome_spawn"
2
+ require "linux_admin"
3
+ require "fileutils"
2
4
 
3
5
  module ManageIQ
4
6
  module ApplianceConsole
@@ -39,8 +41,11 @@ module ApplianceConsole
39
41
  end
40
42
 
41
43
  def request
44
+ undo_tracking if complete?
45
+
42
46
  if should_request_key?
43
47
  principal.register
48
+ remove_key_pair
44
49
  request_certificate
45
50
  # NOTE: status probably changed
46
51
  set_owner_of_key unless rejected?
@@ -103,8 +108,29 @@ module ApplianceConsole
103
108
  @status ||= key_status
104
109
  end
105
110
 
111
+ def enable_certmonger
112
+ say("enabling certmonger to start on reboot")
113
+ LinuxAdmin::Service.new("certmonger").enable.start
114
+ end
115
+
106
116
  private
107
117
 
118
+ def remove_key_pair
119
+ FileUtils.rm_f(cert_filename) if File.exist?(cert_filename)
120
+ FileUtils.rm_f(key_filename) if File.exist?(key_filename)
121
+ end
122
+
123
+ def undo_tracking
124
+ stop_tracking
125
+ FileUtils.rm_f(root_filename) if File.exist?(root_filename)
126
+ remove_key_pair
127
+ clear_status
128
+ end
129
+
130
+ def stop_tracking
131
+ AwesomeSpawn.run!("/usr/bin/getcert", :params => ["stop-tracking", "-f", cert_filename, "-k", key_filename])
132
+ end
133
+
108
134
  def request_first
109
135
  params = {
110
136
  nil => "request",
@@ -63,7 +63,7 @@ module ApplianceConsole
63
63
  AwesomeSpawn.run!("/sbin/restorecon -R #{PSQL_CLIENT_DIR}")
64
64
  end
65
65
 
66
- self.pgclient = Certificate.new(
66
+ cert = Certificate.new(
67
67
  :cert_filename => "#{PSQL_CLIENT_DIR}/postgresql.crt",
68
68
  :root_filename => "#{PSQL_CLIENT_DIR}/root.crt",
69
69
  :service => "manageiq",
@@ -71,7 +71,12 @@ module ApplianceConsole
71
71
  :ca_name => ca_name,
72
72
  :hostname => hostname,
73
73
  :realm => realm,
74
- ).request.status
74
+ ).request
75
+
76
+ if cert.complete?
77
+ cert.enable_certmonger
78
+ end
79
+ self.pgclient = cert.status
75
80
  end
76
81
 
77
82
  def configure_pgserver
@@ -92,6 +97,8 @@ module ApplianceConsole
92
97
  # no need for username/password since not writing database.yml
93
98
  InternalDatabaseConfiguration.new(:ssl => true).configure_postgres
94
99
  LinuxAdmin::Service.new(PostgresAdmin.service_name).restart
100
+
101
+ cert.enable_certmonger
95
102
  end
96
103
  self.pgserver = cert.status
97
104
  end
@@ -110,6 +117,8 @@ module ApplianceConsole
110
117
  if cert.complete?
111
118
  say "configuring apache to use new certs"
112
119
  LinuxAdmin::Service.new("httpd").restart
120
+
121
+ cert.enable_certmonger
113
122
  end
114
123
  self.http = cert.status
115
124
  end
@@ -1,4 +1,4 @@
1
- require 'trollop'
1
+ require 'optimist'
2
2
  require 'pathname'
3
3
 
4
4
  # support for appliance_console methods
@@ -10,8 +10,6 @@ end
10
10
 
11
11
  module ManageIQ
12
12
  module ApplianceConsole
13
- class CliError < StandardError; end
14
-
15
13
  class Cli
16
14
  attr_accessor :options
17
15
 
@@ -108,7 +106,7 @@ module ApplianceConsole
108
106
 
109
107
  def parse(args)
110
108
  args.shift if args.first == "--" # Handle when called through script/runner
111
- self.options = Trollop.options(args) do
109
+ self.options = Optimist.options(args) do
112
110
  banner "Usage: appliance_console_cli [options]"
113
111
 
114
112
  opt :host, "/etc/hosts name", :type => :string, :short => 'H'
@@ -149,7 +147,7 @@ module ApplianceConsole
149
147
  opt :extauth_opts, "External Authentication Options", :type => :string
150
148
  opt :server, "{start|stop|restart} actions on evmserverd Server", :type => :string
151
149
  end
152
- Trollop.die :region, "needed when setting up a local database" if region_number_required? && options[:region].nil?
150
+ Optimist.die :region, "needed when setting up a local database" if region_number_required? && options[:region].nil?
153
151
  self
154
152
  end
155
153
 
@@ -158,7 +156,7 @@ module ApplianceConsole
158
156
  end
159
157
 
160
158
  def run
161
- Trollop.educate unless set_host? || key? || database? || tmp_disk? || log_disk? ||
159
+ Optimist.educate unless set_host? || key? || database? || tmp_disk? || log_disk? ||
162
160
  uninstall_ipa? || install_ipa? || certs? || extauth_opts? ||
163
161
  time_zone? || date_time? || set_server_state? || set_replication?
164
162
  if set_host?
@@ -180,10 +178,6 @@ module ApplianceConsole
180
178
  install_certs if certs?
181
179
  extauth_opts if extauth_opts?
182
180
  set_server_state if set_server_state?
183
- rescue CliError => e
184
- say(e.message)
185
- say("")
186
- exit(1)
187
181
  rescue AwesomeSpawn::CommandResultError => e
188
182
  say e.result.output
189
183
  say e.result.error
@@ -222,12 +216,16 @@ module ApplianceConsole
222
216
  # initdb, relabel log directory for selinux, update configs,
223
217
  # start pg, create user, create db update the rails configuration,
224
218
  # verify, set up the database with region. activate does it all!
225
- raise CliError, "Failed to configure internal database" unless config.activate
219
+ unless config.activate
220
+ say "Failed to configure internal database"
221
+ return
222
+ end
226
223
 
227
224
  # enable/start related services
228
225
  config.post_activation
229
226
  rescue RuntimeError => e
230
- raise CliError, "Failed to configure internal database #{e.message}"
227
+ say e.message
228
+ say "Failed to configure internal database"
231
229
  end
232
230
 
233
231
  def set_external_db
@@ -243,7 +241,10 @@ module ApplianceConsole
243
241
  }.delete_if { |_n, v| v.nil? })
244
242
 
245
243
  # call create_or_join_region (depends on region value)
246
- raise CliError, "Failed to configure external database" unless config.activate
244
+ unless config.activate
245
+ say "Failed to configure external database"
246
+ return
247
+ end
247
248
 
248
249
  # enable/start related services
249
250
  config.post_activation
@@ -7,7 +7,7 @@ module ApplianceConsole
7
7
  class DatabaseReplication
8
8
  include ManageIQ::ApplianceConsole::Logging
9
9
 
10
- REPMGR_CONFIG = '/etc/repmgr.conf'.freeze
10
+ REPMGR_CONFIG = '/etc/repmgr/10/repmgr.conf'.freeze
11
11
  REPMGR_LOG = '/var/log/repmgr/repmgrd.log'.freeze
12
12
  PGPASS_FILE = '/var/lib/pgsql/.pgpass'.freeze
13
13
  NETWORK_INTERFACE = 'eth0'.freeze
@@ -59,7 +59,7 @@ Replication Server Configuration
59
59
  node_name=#{host}
60
60
  conninfo='host=#{host} user=#{database_user} dbname=#{database_name}'
61
61
  use_replication_slots=1
62
- pg_basebackup_options='--xlog-method=stream'
62
+ pg_basebackup_options='--wal-method=stream'
63
63
  failover=automatic
64
64
  promote_command='repmgr standby promote -f #{REPMGR_CONFIG} --log-to-file'
65
65
  follow_command='repmgr standby follow -f #{REPMGR_CONFIG} --log-to-file --upstream-node-id=%n'
@@ -8,7 +8,7 @@ module ApplianceConsole
8
8
  include ManageIQ::ApplianceConsole::Logging
9
9
 
10
10
  REGISTER_CMD = 'repmgr standby register'.freeze
11
- REPMGRD_SERVICE = 'rh-postgresql95-repmgr'.freeze
11
+ REPMGRD_SERVICE = 'repmgr10'.freeze
12
12
 
13
13
  attr_accessor :disk, :standby_host, :run_repmgrd_configuration, :resync_data, :force_register
14
14
 
@@ -123,7 +123,7 @@ module ApplianceConsole
123
123
  end
124
124
 
125
125
  def run_initdb
126
- AwesomeSpawn.run!("service", :params => {nil => [PostgresAdmin.service_name, "initdb"]})
126
+ AwesomeSpawn.run!("postgresql-setup", :params => {:initdb => nil, :unit => PostgresAdmin.service_name})
127
127
  end
128
128
 
129
129
  def start_postgres
@@ -34,9 +34,8 @@ module ApplianceConsole
34
34
  create_volume_group
35
35
  create_logical_volume_to_fill_volume_group
36
36
  format_logical_volume
37
- update_fstab
38
- lazy_unmount_mount_point
39
37
  mount_disk
38
+ update_fstab
40
39
  end
41
40
 
42
41
  private
@@ -70,32 +69,30 @@ module ApplianceConsole
70
69
  AwesomeSpawn.run!("mkfs.#{filesystem_type} #{logical_volume.path}")
71
70
  end
72
71
 
73
- def lazy_unmount_mount_point
74
- AwesomeSpawn.run!("umount", :params => ["-l", mount_point.to_s]) if File.file?("/proc/mounts") && File.read("/proc/mounts").include?(" #{mount_point} ")
75
- end
76
-
77
72
  def mount_disk
78
73
  if mount_point.symlink?
79
74
  FileUtils.rm_rf(mount_point)
80
75
  FileUtils.mkdir_p(mount_point)
81
76
  end
82
- AwesomeSpawn.run!("mount", :params => ["-a"])
77
+ AwesomeSpawn.run!("mount", :params => {"-t" => filesystem_type,
78
+ nil => [logical_volume.path, mount_point]})
83
79
  end
84
80
 
85
81
  def update_fstab
86
82
  fstab = LinuxAdmin::FSTab.instance
87
- entry = fstab.entries.find { |e| e.mount_point == mount_point.to_s } || LinuxAdmin::FSTabEntry.new
88
- fstab.entries.delete(entry)
83
+ return if fstab.entries.find { |e| e.mount_point == mount_point }
89
84
 
90
- entry.device = logical_volume_path
91
- entry.mount_point = mount_point
92
- entry.fs_type = filesystem_type
93
- entry.mount_options = "rw,noatime"
94
- entry.dumpable = 0
95
- entry.fsck_order = 0
85
+ entry = LinuxAdmin::FSTabEntry.new(
86
+ :device => logical_volume.path,
87
+ :mount_point => mount_point,
88
+ :fs_type => filesystem_type,
89
+ :mount_options => "rw,noatime",
90
+ :dumpable => 0,
91
+ :fsck_order => 0
92
+ )
96
93
 
97
94
  fstab.entries << entry
98
- fstab.write!
95
+ fstab.write! # Test this more, whitespace is removed
99
96
  end
100
97
  end
101
98
  end
@@ -1,5 +1,5 @@
1
1
  module ManageIQ
2
2
  module ApplianceConsole
3
- VERSION = '3.3.3'.freeze
3
+ VERSION = '4.0.0'.freeze
4
4
  end
5
5
  end
@@ -26,9 +26,9 @@ Gem::Specification.new do |spec|
26
26
  spec.add_runtime_dependency "bcrypt", "~> 3.1.10"
27
27
  spec.add_runtime_dependency "highline", "~> 1.6.21"
28
28
  spec.add_runtime_dependency "i18n", "~> 0.7"
29
- spec.add_runtime_dependency "linux_admin", ["~> 1.0", ">=1.2.4"]
29
+ spec.add_runtime_dependency "linux_admin", ["~> 1.0", ">=1.2.2"]
30
+ spec.add_runtime_dependency "optimist", "~> 3.0"
30
31
  spec.add_runtime_dependency "pg"
31
- spec.add_runtime_dependency "trollop", "~> 2.0"
32
32
 
33
33
  spec.add_development_dependency "bundler"
34
34
  spec.add_development_dependency "codeclimate-test-reporter", "~> 1.0.0"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: manageiq-appliance_console
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.3.3
4
+ version: 4.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: 2019-09-19 00:00:00.000000000 Z
11
+ date: 2019-03-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activerecord
@@ -103,7 +103,7 @@ dependencies:
103
103
  version: '1.0'
104
104
  - - ">="
105
105
  - !ruby/object:Gem::Version
106
- version: 1.2.4
106
+ version: 1.2.2
107
107
  type: :runtime
108
108
  prerelease: false
109
109
  version_requirements: !ruby/object:Gem::Requirement
@@ -113,35 +113,35 @@ dependencies:
113
113
  version: '1.0'
114
114
  - - ">="
115
115
  - !ruby/object:Gem::Version
116
- version: 1.2.4
116
+ version: 1.2.2
117
117
  - !ruby/object:Gem::Dependency
118
- name: pg
118
+ name: optimist
119
119
  requirement: !ruby/object:Gem::Requirement
120
120
  requirements:
121
- - - ">="
121
+ - - "~>"
122
122
  - !ruby/object:Gem::Version
123
- version: '0'
123
+ version: '3.0'
124
124
  type: :runtime
125
125
  prerelease: false
126
126
  version_requirements: !ruby/object:Gem::Requirement
127
127
  requirements:
128
- - - ">="
128
+ - - "~>"
129
129
  - !ruby/object:Gem::Version
130
- version: '0'
130
+ version: '3.0'
131
131
  - !ruby/object:Gem::Dependency
132
- name: trollop
132
+ name: pg
133
133
  requirement: !ruby/object:Gem::Requirement
134
134
  requirements:
135
- - - "~>"
135
+ - - ">="
136
136
  - !ruby/object:Gem::Version
137
- version: '2.0'
137
+ version: '0'
138
138
  type: :runtime
139
139
  prerelease: false
140
140
  version_requirements: !ruby/object:Gem::Requirement
141
141
  requirements:
142
- - - "~>"
142
+ - - ">="
143
143
  - !ruby/object:Gem::Version
144
- version: '2.0'
144
+ version: '0'
145
145
  - !ruby/object:Gem::Dependency
146
146
  name: bundler
147
147
  requirement: !ruby/object:Gem::Requirement
@@ -301,7 +301,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
301
301
  - !ruby/object:Gem::Version
302
302
  version: '0'
303
303
  requirements: []
304
- rubygems_version: 3.0.6
304
+ rubyforge_project:
305
+ rubygems_version: 2.7.6
305
306
  signing_key:
306
307
  specification_version: 4
307
308
  summary: ManageIQ Appliance Console