foreman_maintain 0.1.6 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (108) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +48 -10
  3. data/bin/foreman-maintain-rotate-tar +18 -0
  4. data/definitions/checks/backup/certs_tar_exist.rb +24 -0
  5. data/definitions/checks/backup/directory_ready.rb +21 -0
  6. data/definitions/checks/candlepin/db_up.rb +29 -0
  7. data/definitions/checks/check_epel_repository.rb +21 -0
  8. data/definitions/checks/foreman/db_up.rb +29 -0
  9. data/definitions/checks/hammer_ping.rb +3 -1
  10. data/definitions/checks/mongo/db_up.rb +29 -0
  11. data/definitions/checks/mongo/tools_installed.rb +31 -0
  12. data/definitions/checks/repositories/validate.rb +0 -3
  13. data/definitions/checks/root_user.rb +12 -0
  14. data/definitions/features/candlepin.rb +16 -0
  15. data/definitions/features/candlepin_database.rb +3 -1
  16. data/definitions/features/downstream.rb +21 -22
  17. data/definitions/features/foreman_database.rb +2 -0
  18. data/definitions/features/foreman_proxy.rb +70 -7
  19. data/definitions/features/foreman_server.rb +29 -0
  20. data/definitions/features/foreman_tasks.rb +5 -1
  21. data/definitions/features/hammer.rb +158 -3
  22. data/definitions/features/installer.rb +106 -0
  23. data/definitions/features/instance.rb +39 -0
  24. data/definitions/features/katello.rb +43 -0
  25. data/definitions/features/mongo.rb +159 -0
  26. data/definitions/features/pulp.rb +30 -0
  27. data/definitions/features/puppet.rb +21 -0
  28. data/definitions/features/puppet_server.rb +2 -6
  29. data/definitions/features/service.rb +134 -0
  30. data/definitions/features/sync_plans.rb +1 -1
  31. data/definitions/features/tar.rb +69 -0
  32. data/definitions/procedures/backup/accessibility_confirmation.rb +14 -0
  33. data/definitions/procedures/backup/clean.rb +16 -0
  34. data/definitions/procedures/backup/compress_data.rb +26 -0
  35. data/definitions/procedures/backup/config_files.rb +36 -0
  36. data/definitions/procedures/backup/metadata.rb +56 -0
  37. data/definitions/procedures/backup/offline/candlepin_db.rb +57 -0
  38. data/definitions/procedures/backup/offline/foreman_db.rb +57 -0
  39. data/definitions/procedures/backup/offline/mongo.rb +56 -0
  40. data/definitions/procedures/backup/online/candlepin_db.rb +20 -0
  41. data/definitions/procedures/backup/online/foreman_db.rb +20 -0
  42. data/definitions/procedures/backup/online/mongo.rb +21 -0
  43. data/definitions/procedures/backup/online/pg_global_objects.rb +23 -0
  44. data/definitions/procedures/backup/online/safety_confirmation.rb +25 -0
  45. data/definitions/procedures/backup/prepare_directory.rb +29 -0
  46. data/definitions/procedures/backup/pulp.rb +68 -0
  47. data/definitions/procedures/backup/snapshot/clean_mount.rb +24 -0
  48. data/definitions/procedures/backup/snapshot/logical_volume_confirmation.rb +47 -0
  49. data/definitions/procedures/backup/snapshot/mount_base.rb +27 -0
  50. data/definitions/procedures/backup/snapshot/mount_candlepin_db.rb +48 -0
  51. data/definitions/procedures/backup/snapshot/mount_foreman_db.rb +48 -0
  52. data/definitions/procedures/backup/snapshot/mount_mongo.rb +35 -0
  53. data/definitions/procedures/backup/snapshot/mount_pulp.rb +24 -0
  54. data/definitions/procedures/backup/snapshot/prepare_mount.rb +16 -0
  55. data/definitions/procedures/foreman_tasks/fetch_tasks_status.rb +1 -0
  56. data/definitions/procedures/hammer_setup.rb +4 -39
  57. data/definitions/procedures/installer/upgrade.rb +1 -21
  58. data/definitions/procedures/repositories/setup.rb +0 -4
  59. data/definitions/procedures/service/base.rb +31 -0
  60. data/definitions/procedures/service/disable.rb +14 -0
  61. data/definitions/procedures/service/enable.rb +14 -0
  62. data/definitions/procedures/service/list.rb +26 -0
  63. data/definitions/procedures/service/restart.rb +49 -0
  64. data/definitions/procedures/service/start.rb +14 -0
  65. data/definitions/procedures/service/status.rb +14 -0
  66. data/definitions/procedures/service/stop.rb +14 -0
  67. data/definitions/scenarios/backup.rb +242 -0
  68. data/definitions/scenarios/services.rb +156 -0
  69. data/definitions/scenarios/upgrade_to_satellite_6_2.rb +2 -2
  70. data/definitions/scenarios/upgrade_to_satellite_6_2_z.rb +2 -2
  71. data/definitions/scenarios/upgrade_to_satellite_6_3.rb +2 -2
  72. data/definitions/scenarios/upgrade_to_satellite_6_3_z.rb +2 -2
  73. data/definitions/scenarios/upgrade_to_satellite_6_4.rb +79 -0
  74. data/definitions/scenarios/upgrade_to_satellite_6_4_z.rb +79 -0
  75. data/lib/foreman_maintain.rb +5 -0
  76. data/lib/foreman_maintain/cli.rb +4 -0
  77. data/lib/foreman_maintain/cli/backup_command.rb +157 -0
  78. data/lib/foreman_maintain/cli/base.rb +18 -8
  79. data/lib/foreman_maintain/cli/service_command.rb +112 -0
  80. data/lib/foreman_maintain/cli/transform_clamp_options.rb +1 -1
  81. data/lib/foreman_maintain/concerns/base_database.rb +57 -5
  82. data/lib/foreman_maintain/concerns/hammer.rb +0 -9
  83. data/lib/foreman_maintain/concerns/metadata.rb +3 -1
  84. data/lib/foreman_maintain/concerns/reporter.rb +12 -0
  85. data/lib/foreman_maintain/concerns/system_helpers.rb +45 -2
  86. data/lib/foreman_maintain/detector.rb +3 -3
  87. data/lib/foreman_maintain/error.rb +12 -0
  88. data/lib/foreman_maintain/executable.rb +29 -6
  89. data/lib/foreman_maintain/feature.rb +15 -0
  90. data/lib/foreman_maintain/param.rb +4 -3
  91. data/lib/foreman_maintain/reporter.rb +6 -2
  92. data/lib/foreman_maintain/reporter/cli_reporter.rb +26 -10
  93. data/lib/foreman_maintain/runner.rb +26 -15
  94. data/lib/foreman_maintain/runner/execution.rb +5 -1
  95. data/lib/foreman_maintain/scenario.rb +11 -3
  96. data/lib/foreman_maintain/upgrade_runner.rb +0 -2
  97. data/lib/foreman_maintain/utils.rb +2 -2
  98. data/lib/foreman_maintain/utils/command_runner.rb +0 -2
  99. data/lib/foreman_maintain/utils/hash_tools.rb +21 -0
  100. data/lib/foreman_maintain/utils/mongo_core.rb +37 -0
  101. data/lib/foreman_maintain/version.rb +1 -1
  102. metadata +58 -8
  103. data/definitions/features/katello_service.rb +0 -118
  104. data/definitions/procedures/katello_service/restart.rb +0 -24
  105. data/definitions/procedures/katello_service/start.rb +0 -19
  106. data/definitions/procedures/katello_service/stop.rb +0 -17
  107. data/lib/foreman_maintain/utils/facter.rb +0 -21
  108. data/lib/foreman_maintain/utils/hammer.rb +0 -79
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 4ba0d1619770cae069e142f20a49d40591000521
4
- data.tar.gz: f3ffcb2023e8070b5dc5764f9496654a32c65687
3
+ metadata.gz: a95032534af5a5f6533cf1b1623321f71462bd98
4
+ data.tar.gz: 9fbc367b8ea5dfbf01112d614123661921b146f4
5
5
  SHA512:
6
- metadata.gz: 2f14ff8e193e7f421f7d7e9c3183013abdc7b83d3d7eda31faa09502f561a3cb7a9069afd1301a3d59d5f48f2dadda36929ae5d4515d950d2b525ff1e317406b
7
- data.tar.gz: c9c14e9df45fcfcadf4a2a3ea2e710b30edd698f9c4cc19c1f0b52b3690c4ffaf23b9b9d6749b8e091cdca3fb8e4a167a84781ec857c287e25c5f8afed479bf1
6
+ metadata.gz: 41f25e7065a7752525906ab02073c1af43a426ea450c68ca91b03c8ded84e9c55bd0f129166ecfd7b3bc7dfb9a870b54ad9f307bcaeb14b33e154d588e35c480
7
+ data.tar.gz: 7894e033e22c4c378afc3d4aafac9ae53279409f1796e05099e391b250cf9ed825bb5453749fc59e385da1eda18993a4bdc31c8dd120067204619396104639e5
data/README.md CHANGED
@@ -21,6 +21,20 @@ Subcommands:
21
21
  check --target-version TARGET_VERSION Run pre-upgrade checks for upgrading to specified version
22
22
  run --target-version TARGET_VERSION Run the full upgrade
23
23
  [--phase=phase TARGET_VERSION] Run just a specific phase of the upgrade
24
+
25
+ advanced Advanced tools for server maintenance
26
+ procedure Run maintain procedures manually
27
+ run Run maintain procedures manually
28
+ by-tag Run maintain procedures in bulks
29
+
30
+ service Control applicable services
31
+ start Start applicable services
32
+ stop Stop applicable services
33
+ restart Restart applicable services
34
+ status Get statuses of applicable services
35
+ list List applicable services
36
+ enable Enable applicable services
37
+ disable Disable applicable services
24
38
  ```
25
39
 
26
40
  ### Upgrades
@@ -283,24 +297,48 @@ end
283
297
  ### Hammer
284
298
 
285
299
  In some cases, it's useful to be able to use the hammer as part of check/fix procedures.
286
- The easiest way to achieve this is to include `ForemanMaintain::Concerns::Hammer` module:
300
+ It is as simple as:
287
301
 
288
302
  ```ruby
289
- include ForemanMaintain::Concerns::Hammer
290
-
291
303
  def run
292
- hammer('task resume')
304
+ feature(:hammer).run('task resume')
293
305
  end
294
306
  ```
295
307
 
296
- We expect the credentials for the hammer commands to to be stored inside the hammer settings:
308
+ Before executing the command the feature checks if it has valid hammer configuration to run the command.
309
+ Foreman maintain always use the 'admin' account to run the commands. The password is taken either form
310
+ the Hammer config or installer answer files or asked from the user interactively (in this order).
311
+ The valid credentials are stored and reused next time if still valid.
297
312
 
313
+ Usually we want to do the user interaction at the beginning of our scenario.
314
+ The easiest way to achieve this is to include `ForemanMaintain::Concerns::Hammer` module:
315
+
316
+ ```ruby
317
+ include ForemanMaintain::Concerns::Hammer
298
318
  ```
299
- # ~/.hammer/cli.modules.d/foreman.yml
300
- :foreman:
301
- :username: 'admin'
302
- :password: 'changeme'
303
- ```
319
+
320
+ which adds `Procedures::HammerSetup` as a preparation step to your metadata. We are adding this
321
+ to all procedures and checks automatically.
322
+
323
+ ## Metadata
324
+
325
+ A set of data that describes and gives information about any definition.
326
+
327
+ You can describe a definition using following methods available in metadata:
328
+
329
+ * **label** - specify an unique name per definition
330
+ * **tags** - comma separated labels attached for the purpose of creating
331
+ groups of definitions
332
+ * **description** - specify short description about definition
333
+ * **param** - declare parameters for a definition using this method
334
+ * **for_feature** - specify feature name for a definition. It implicitly confines the presence
335
+ of that feature.
336
+ * **preparation_steps** - takes block using which you can perform additional steps
337
+ before executing actual definition
338
+ * **confine** - takes block as argument to restrict execution of it
339
+ * **advanced_run** - takes a boolean value for procedure definition & will restrict
340
+ execution of procedure from `advanced procedure run` sub-command
341
+ * **before**, **after** - methods used to define order for particular check. Specify label of other check.
304
342
 
305
343
  ## Implementation components
306
344
 
@@ -0,0 +1,18 @@
1
+ #!/bin/bash
2
+ ## For this script it's advisable to use a shell, such as Bash,
3
+ ## that supports a TAR_FD value greater than 9.
4
+
5
+ # This script taken from the tar info doc
6
+
7
+ name=`expr ${TAR_ARCHIVE} : '\(.*\)\..*'`
8
+ volnum=`printf "%04d" ${TAR_VOLUME}`
9
+ filename="${name:-$TAR_ARCHIVE}.part${volnum:-$TAR_VOLUME}"
10
+ case ${TAR_SUBCOMMAND} in
11
+ -c) ;;
12
+ -d|-x|-t) test -r ${filename} || exit 1
13
+ ;;
14
+ *) exit 1
15
+ esac
16
+
17
+ echo ${filename} >&${TAR_FD}
18
+ echo " Switched to multi-volume ${filename}"
@@ -0,0 +1,24 @@
1
+ module Checks::Backup
2
+ class CertsTarExist < ForemanMaintain::Check
3
+ metadata do
4
+ description 'Check if proxy certs_tar exist'
5
+ tags :backup
6
+ for_feature :foreman_proxy
7
+ end
8
+
9
+ def run
10
+ unless feature(:foreman_proxy).internal?
11
+ if certs_tar && !File.exist?(certs_tar)
12
+ name = feature(:instance).proxy_product_name
13
+ fail! "#{name} certs tar file is not present on the system" \
14
+ " in path '#{certs_tar}'. \nPlease move the file back to that" \
15
+ ' location or generate a new one on the main server.'
16
+ end
17
+ end
18
+ end
19
+
20
+ def certs_tar
21
+ feature(:foreman_proxy).certs_tar
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,21 @@
1
+ module Checks::Backup
2
+ class DirectoryReady < ForemanMaintain::Check
3
+ metadata do
4
+ description 'Check if the directory exists and is writable'
5
+ tags :backup
6
+ manual_detection
7
+ param :backup_dir, 'Directory where to backup to', :required => true
8
+ param :preserve_dir, 'Directory where to backup to', :flag => true, :default => false
9
+ end
10
+
11
+ def run
12
+ assert(File.directory?(@backup_dir), "Backup directory (#{@backup_dir}) does not exit.")
13
+ if local_psql_database?
14
+ result = system("runuser - postgres -c 'test -w #{@backup_dir}'")
15
+ assert(result, "Postgres user needs write access to the backup directory \n" \
16
+ "Please allow the postgres user write access to #{@backup_dir}" \
17
+ ' or choose another directory.')
18
+ end
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,29 @@
1
+ module Checks
2
+ module Candlepin
3
+ class DBUp < ForemanMaintain::Check
4
+ metadata do
5
+ description 'Make sure Candlepin DB is up'
6
+ label :candlepin_db_up
7
+ for_feature :candlepin_database
8
+ end
9
+
10
+ def run
11
+ status = false
12
+ with_spinner('Checking connection to the Candlepin DB') do
13
+ status = feature(:candlepin_database).ping
14
+ end
15
+ assert(status, 'Candlepin DB is not responding. ' \
16
+ 'It needs to be up and running to perform the following steps',
17
+ :next_steps => next_steps)
18
+ end
19
+
20
+ def next_steps
21
+ if feature(:foreman_database).local?
22
+ [Procedures::Service::Start.new(:only => 'postgresql')]
23
+ else
24
+ [] # there is nothing we can do for remote db
25
+ end
26
+ end
27
+ end
28
+ end
29
+ end
@@ -0,0 +1,21 @@
1
+ class Checks::CheckEpelRepository < ForemanMaintain::Check
2
+ metadata do
3
+ label :check_epel_repository
4
+ description 'Check if EPEL repository enabled on system'
5
+ tags :pre_upgrade
6
+ confine do
7
+ feature(:downstream)
8
+ end
9
+ end
10
+
11
+ def run
12
+ with_spinner('Checking for presence of EPEL repository') do
13
+ assert(!epel_enabled?, 'System is subscribed to EPEL repository')
14
+ end
15
+ end
16
+
17
+ def epel_enabled?
18
+ system_repos = execute("yum repolist enabled -d 6 -e 0| grep -E 'Repo-baseurl|Repo-id'")
19
+ system_repos.to_s.match(/\bepel\b/i)
20
+ end
21
+ end
@@ -0,0 +1,29 @@
1
+ module Checks
2
+ module Foreman
3
+ class DBUp < ForemanMaintain::Check
4
+ metadata do
5
+ description 'Make sure Foreman DB is up'
6
+ label :foreman_db_up
7
+ for_feature :foreman_database
8
+ end
9
+
10
+ def run
11
+ status = false
12
+ with_spinner('Checking connection to the Foreman DB') do
13
+ status = feature(:foreman_database).ping
14
+ end
15
+ assert(status, 'Foreman DB is not responding. ' \
16
+ 'It needs to be up and running to perform the following steps',
17
+ :next_steps => next_steps)
18
+ end
19
+
20
+ def next_steps
21
+ if feature(:foreman_database).local?
22
+ [Procedures::Service::Start.new(:only => 'postgresql')]
23
+ else
24
+ [] # there is nothing we can do for remote db
25
+ end
26
+ end
27
+ end
28
+ end
29
+ end
@@ -13,8 +13,10 @@ class Checks::HammerPing < ForemanMaintain::Check
13
13
 
14
14
  def run
15
15
  result = feature(:hammer).hammer_ping_cmd
16
+ restart_procedure = Procedures::Service::Restart.new(:only => result[:data],
17
+ :wait_for_hammer_ping => true)
16
18
  assert(result[:success],
17
19
  result[:message],
18
- :next_steps => Procedures::KatelloService::Restart.new(:only => result[:data]))
20
+ :next_steps => restart_procedure)
19
21
  end
20
22
  end
@@ -0,0 +1,29 @@
1
+ module Checks
2
+ module Mongo
3
+ class DBUp < ForemanMaintain::Check
4
+ metadata do
5
+ description 'Make sure Mongo DB is up'
6
+ label :mongo_db_up
7
+ for_feature :mongo
8
+ end
9
+
10
+ def run
11
+ status = false
12
+ with_spinner('Checking connection to the Mongo DB') do
13
+ status = feature(:mongo).ping
14
+ end
15
+ assert(status, 'Mongo DB is not responding. ' \
16
+ 'It needs to be up and running to perform the following steps.',
17
+ :next_steps => next_steps)
18
+ end
19
+
20
+ def next_steps
21
+ if feature(:mongo).local?
22
+ [Procedures::Service::Start.new(:only => 'mongod')]
23
+ else
24
+ [] # there is nothing we can do for remote db
25
+ end
26
+ end
27
+ end
28
+ end
29
+ end
@@ -0,0 +1,31 @@
1
+ module Checks::Mongo
2
+ class ToolsInstalled < ForemanMaintain::Check
3
+ metadata do
4
+ manual_detection
5
+ description 'Checks whether the tools for Mongo DB are installed'
6
+ for_feature :mongo
7
+ end
8
+
9
+ def run
10
+ if feature(:mongo).server_version =~ /^3\.4/
11
+ tools_pkg = 'rh-mongodb34-mongo-tools'
12
+ result = find_package(tools_pkg)
13
+ else
14
+ result = execute?('which mongodump')
15
+ tools_pkg = 'mongodb'
16
+ end
17
+ handle_result(result, tools_pkg)
18
+ end
19
+
20
+ private
21
+
22
+ def handle_result(result, tools_pkg)
23
+ assert(result,
24
+ "#{tools_pkg} was not found among installed package.\nThis package is needed to " \
25
+ 'do various operations such as backup, restore and import with Mongo DB.',
26
+ :next_steps => [
27
+ Procedures::Packages::Install.new(:packages => [tools_pkg])
28
+ ])
29
+ end
30
+ end
31
+ end
@@ -2,9 +2,6 @@ module Checks::Repositories
2
2
  class Validate < ForemanMaintain::Check
3
3
  metadata do
4
4
  description 'Validate availability of repositories'
5
- preparation_steps do
6
- Procedures::Packages::Install.new(:packages => [ForemanMaintain::Utils::Facter.package])
7
- end
8
5
 
9
6
  confine do
10
7
  feature(:downstream)
@@ -0,0 +1,12 @@
1
+ class Checks::RootUser < ForemanMaintain::Check
2
+ metadata do
3
+ label :root_user
4
+ tags :root_user
5
+ description 'Check if command is run as root user'
6
+ end
7
+
8
+ def run
9
+ is_root_user = Process.uid == 0
10
+ assert(is_root_user, 'This command needs to be run as the root user')
11
+ end
12
+ end
@@ -0,0 +1,16 @@
1
+ class Features::Candlepin < ForemanMaintain::Feature
2
+ metadata do
3
+ label :candlepin
4
+
5
+ confine do
6
+ find_package('candlepin')
7
+ end
8
+ end
9
+
10
+ def services
11
+ {
12
+ 'tomcat' => 20,
13
+ 'tomcat6' => 20
14
+ }
15
+ end
16
+ end
@@ -48,13 +48,15 @@ class Features::CandlepinDatabase < ForemanMaintain::Feature
48
48
  def load_configuration
49
49
  raw_config = File.read(CANDLEPIN_DB_CONFIG)
50
50
  full_config = Hash[raw_config.scan(/(^[^#\n][^=]*)=(.*)/)]
51
- uri = %r{://(([^/:]*):?([^/]*))/(.*)}.match(full_config['jpa.config.hibernate.connection.url'])
51
+ uri_regexp = %r{://(([^/:]*):?([^/]*))/([^?]*)\??(ssl=([^&]*))?}
52
+ uri = uri_regexp.match(full_config['jpa.config.hibernate.connection.url'])
52
53
  @configuration = {
53
54
  'username' => full_config['jpa.config.hibernate.connection.username'],
54
55
  'password' => full_config['jpa.config.hibernate.connection.password'],
55
56
  'database' => uri[4],
56
57
  'host' => uri[2],
57
58
  'port' => uri[3] || '5432',
59
+ 'ssl' => (uri[6] == 'true'),
58
60
  'driver_class' => full_config['jpa.config.hibernate.connection.driver_class'],
59
61
  'url' => full_config['jpa.config.hibernate.connection.url']
60
62
  }
@@ -7,6 +7,14 @@ class Features::Downstream < ForemanMaintain::Feature
7
7
  end
8
8
  end
9
9
 
10
+ def less_than_version?(version)
11
+ Gem::Version.new(current_version) < Gem::Version.new(version)
12
+ end
13
+
14
+ def at_least_version?(version)
15
+ Gem::Version.new(current_version) >= Gem::Version.new(version)
16
+ end
17
+
10
18
  def current_version
11
19
  @current_version ||= rpm_version('satellite') || version_from_source
12
20
  end
@@ -46,32 +54,23 @@ class Features::Downstream < ForemanMaintain::Feature
46
54
 
47
55
  def rh_repos(sat_version)
48
56
  sat_version = version(sat_version)
49
- rh_version_major = ForemanMaintain::Utils::Facter.os_major_release
50
-
51
- rh_repos = main_rh_repos(rh_version_major)
52
-
53
- rh_repos.concat(sat_and_tools_repos(rh_version_major, sat_version))
54
-
55
- if current_minor_version == '6.3' && sat_version.to_s != '6.4' && (
56
- feature(:puppet_server) && feature(:puppet_server).puppet_version.major == 4)
57
- rh_repos << "rhel-#{rh_version_major}-server-satellite-tools-6.3-puppet4-rpms"
58
- end
59
-
60
- rh_repos
61
- end
62
-
63
- def sat_and_tools_repos(rh_version_major, sat_version)
57
+ rh_version_major = execute!('facter operatingsystemmajrelease')
64
58
  sat_version_full = "#{sat_version.major}.#{sat_version.minor}"
59
+
65
60
  sat_repo_id = "rhel-#{rh_version_major}-server-satellite-#{sat_version_full}-rpms"
66
61
  sat_tools_repo_id = "rhel-#{rh_version_major}-server-satellite-tools-#{sat_version_full}-rpms"
62
+ # Override to use Beta repositories for 6.4 until GA
63
+ if sat_version.to_s == '6.4'
64
+ sat_repo_id = "rhel-server-#{rh_version_major}-satellite-6-beta-rpms"
65
+ end
67
66
 
68
- [sat_repo_id, sat_tools_repo_id]
69
- end
70
-
71
- def main_rh_repos(rh_version_major)
72
- ["rhel-#{rh_version_major}-server-rpms",
73
- "rhel-server-rhscl-#{rh_version_major}-rpms",
74
- "rhel-#{rh_version_major}-server-satellite-maintenance-6-rpms"]
67
+ rh_repos = ["rhel-#{rh_version_major}-server-rpms",
68
+ "rhel-server-rhscl-#{rh_version_major}-rpms",
69
+ "rhel-#{rh_version_major}-server-satellite-maintenance-6-rpms",
70
+ sat_tools_repo_id,
71
+ sat_repo_id]
72
+ rh_repos << 'rhel-7-server-ansible-2-rpms' if sat_version.to_s == '6.4'
73
+ rh_repos
75
74
  end
76
75
 
77
76
  def version_from_source
@@ -20,5 +20,7 @@ class Features::ForemanDatabase < ForemanMaintain::Feature
20
20
  def load_configuration
21
21
  config = YAML.load(File.read(FOREMAN_DB_CONFIG))
22
22
  @configuration = config['production']
23
+ @configuration['host'] ||= 'localhost'
24
+ @configuration
23
25
  end
24
26
  end