foreman_maintain 1.7.1 → 1.7.3

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: ef8f53affe0970e853071b2568869c00aa94e850975b602538351cc9649dbc9e
4
- data.tar.gz: 3a60a60c9be41bb3aa34a7abee49c4b7c66f6f91629986e2a0f5e31cac98e125
3
+ metadata.gz: e3e15401e01712537566856184b187a132a0c3db2634955d8688875ba4c2ca01
4
+ data.tar.gz: 5e0bcafc241cf70f128ebe6fe887b50b83dd265311fec601360f92bbd2760751
5
5
  SHA512:
6
- metadata.gz: 68aa31aed572c7cec55cda60995e909f77b48028c9ed6708823b695d6373f07d3f94043eb5d8e4643f46f28363858bea362905a42f6ac7c1d8993ba6f6a5fc0d
7
- data.tar.gz: c989d6302e5c47dcf4bb5465c8671af3a40ec497d56459765d67c600049a88476e9447c6fc4b2457b281942b65c881884ba55b6ea896e77a013765eda70879e2
6
+ metadata.gz: c6344eb03b0caec004ebd5920bd7d416535000379361146680af2e1870d28a98816403210bcc8db78dc18be27c2d8559400fbc0c7160f5e8c680923f833b4eb6
7
+ data.tar.gz: cd87120311bedea2789b1ccf9db5b16ae8b81282eb0d49ac9e053f19b4702328dca9a502e4788898fd47330122dca3014dabf579f02a8e885c24685c72fd619c
@@ -2,6 +2,9 @@ module Checks::Pulpcore
2
2
  class NoRunningTasks < ForemanMaintain::Check
3
3
  metadata do
4
4
  for_feature :pulpcore
5
+ confine do
6
+ feature(:pulpcore)&.cli_available?
7
+ end
5
8
  description 'Check for running pulpcore tasks'
6
9
  tags :pre_upgrade
7
10
  param :wait_for_tasks,
@@ -6,6 +6,7 @@ class Features::Pulpcore < ForemanMaintain::Feature
6
6
  TIMEOUT_FOR_TASKS_STATUS = 300
7
7
  RETRY_INTERVAL_FOR_TASKS_STATE = 10
8
8
  PULP_SETTINGS = '/etc/pulp/settings.py'.freeze
9
+ PULP_CLI_SETTINGS = '/etc/pulp/cli.toml'.freeze
9
10
 
10
11
  metadata do
11
12
  label :pulpcore
@@ -15,6 +16,10 @@ class Features::Pulpcore < ForemanMaintain::Feature
15
16
  end
16
17
  end
17
18
 
19
+ def cli_available?
20
+ File.exist?(PULP_CLI_SETTINGS)
21
+ end
22
+
18
23
  def cli(args)
19
24
  parse_json(execute("pulp --format json #{args}"))
20
25
  end
@@ -6,7 +6,7 @@ module Procedures::Crond
6
6
  description 'Start cron service'
7
7
 
8
8
  for_feature :cron
9
- tags :post_migrations, :maintenance_mode_off
9
+ tags :post_migrations
10
10
 
11
11
  after :iptables_remove_maintenance_mode_chain
12
12
  advanced_run false
@@ -4,7 +4,7 @@ module Procedures::Crond
4
4
  class Stop < Procedures::Service::Base
5
5
  metadata do
6
6
  description 'Stop cron service'
7
- tags :pre_migrations, :maintenance_mode_on
7
+ tags :pre_migrations
8
8
  for_feature :cron
9
9
 
10
10
  after :iptables_add_maintenance_mode_chain
@@ -4,7 +4,7 @@ module Procedures::MaintenanceMode
4
4
  metadata do
5
5
  label :disable_maintenance_mode
6
6
  description 'Remove maintenance mode table/chain from nftables/iptables'
7
- tags :post_migrations, :maintenance_mode_off
7
+ tags :post_migrations
8
8
  after :sync_plans_enable
9
9
  end
10
10
 
@@ -4,7 +4,7 @@ module Procedures::MaintenanceMode
4
4
  metadata do
5
5
  label :enable_maintenance_mode
6
6
  description 'Add maintenance_mode tables/chain to nftables/iptables'
7
- tags :pre_migrations, :maintenance_mode_on
7
+ tags :pre_migrations
8
8
  after :sync_plans_disable
9
9
  end
10
10
 
@@ -8,7 +8,9 @@ module ForemanMaintain::Scenarios
8
8
  end
9
9
 
10
10
  def compose
11
- add_steps(find_procedures(:maintenance_mode_on))
11
+ add_step(Procedures::MaintenanceMode::EnableMaintenanceMode)
12
+ add_step(Procedures::Crond::Stop)
13
+ add_step(Procedures::SyncPlans::Disable)
12
14
  end
13
15
  end
14
16
 
@@ -21,7 +23,9 @@ module ForemanMaintain::Scenarios
21
23
  end
22
24
 
23
25
  def compose
24
- add_steps(find_procedures(:maintenance_mode_off))
26
+ add_step(Procedures::SyncPlans::Enable)
27
+ add_step(Procedures::Crond::Start)
28
+ add_step(Procedures::MaintenanceMode::DisableMaintenanceMode)
25
29
  end
26
30
  end
27
31
 
@@ -19,6 +19,27 @@ module ForemanMaintain
19
19
  update_runner
20
20
  end
21
21
 
22
+ def try_update
23
+ if update_runner.available?
24
+ yield
25
+ else
26
+ instance = ForemanMaintain.detector.feature(:instance)
27
+ msg = <<~BANNER
28
+
29
+ This version of #{ForemanMaintain.command_name} only supports #{instance.target_version},
30
+ but the installed version of #{instance.product_name} is #{instance.current_major_version}.
31
+
32
+ Therefore the update command is not available right now.
33
+
34
+ Please install a version of #{ForemanMaintain.command_name} that supports #{instance.current_major_version}
35
+ or perform an upgrade to #{instance.target_version} using the upgrade command.
36
+ BANNER
37
+
38
+ puts msg
39
+ ForemanMaintain::UpdateRunner::WARNING_EXIT_CODE
40
+ end
41
+ end
42
+
22
43
  subcommand 'check', 'Run pre-update checks before updating' do
23
44
  interactive_option
24
45
  disable_self_update_option
@@ -26,9 +47,14 @@ module ForemanMaintain
26
47
  def execute
27
48
  ForemanMaintain.validate_downstream_packages
28
49
  ForemanMaintain.perform_self_upgrade unless disable_self_update?
29
- runner = update_runner
30
- runner.run_phase(:pre_update_checks)
31
- exit runner.exit_code
50
+
51
+ exit_code = try_update do
52
+ runner = update_runner
53
+ runner.run_phase(:pre_update_checks)
54
+ runner.exit_code
55
+ end
56
+
57
+ exit exit_code
32
58
  end
33
59
  end
34
60
 
@@ -39,10 +65,15 @@ module ForemanMaintain
39
65
  def execute
40
66
  ForemanMaintain.validate_downstream_packages
41
67
  ForemanMaintain.perform_self_upgrade unless disable_self_update?
42
- runner = update_runner
43
- runner.run
44
- runner.save
45
- exit runner.exit_code
68
+
69
+ exit_code = try_update do
70
+ runner = update_runner
71
+ runner.run
72
+ runner.save
73
+ runner.exit_code
74
+ end
75
+
76
+ exit exit_code
46
77
  end
47
78
  end
48
79
  end
@@ -18,6 +18,12 @@ module ForemanMaintain
18
18
  self.phase = :pre_update_checks
19
19
  end
20
20
 
21
+ def available?
22
+ condition = { :tags => [:update_scenario, :pre_update_checks] }
23
+ matching_scenarios = find_scenarios(condition)
24
+ !matching_scenarios.empty?
25
+ end
26
+
21
27
  def find_scenario(phase)
22
28
  return @scenario_cache[phase] if @scenario_cache.key?(phase)
23
29
 
@@ -1,3 +1,3 @@
1
1
  module ForemanMaintain
2
- VERSION = '1.7.1'.freeze
2
+ VERSION = '1.7.3'.freeze
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: foreman_maintain
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.7.1
4
+ version: 1.7.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ivan Nečas
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-08-21 00:00:00.000000000 Z
11
+ date: 2024-08-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: clamp