foreman_maintain 0.3.3 → 0.3.4
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
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 0f6837492a59470b98bbbf7d98963f98c0324326ed7beca8d682a2a04df38d6b
|
4
|
+
data.tar.gz: b84626fc17039356e4ab10b77a2b2a54fda21c6438850e7558b63617a0556073
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: dc8146e0110fd7334b28d56a45b84f7d10936e3e72e56ceaaf0ccc33e8ff16c256fdb1ca73961b3833306b488d471c545b7d8f3967ebab1c2a8653ebde12a594
|
7
|
+
data.tar.gz: bbad46d7af9797cf1dcfba28c734dc2494e3258d34f784642460d94d852f70e23a9e49aca2c57bb8fab579bb29ca5c89fdf7438fa2e63a982d58684393cf39b2
|
@@ -3,21 +3,34 @@ class Features::SyncPlans < ForemanMaintain::Feature
|
|
3
3
|
label :sync_plans
|
4
4
|
end
|
5
5
|
|
6
|
-
def
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
6
|
+
def required_new_implementation
|
7
|
+
@required_new_implementation ||=
|
8
|
+
feature(:foreman_database).query(
|
9
|
+
<<-SQL
|
10
|
+
SELECT COUNT(1) FROM information_schema.table_constraints
|
11
|
+
WHERE constraint_name='katello_sync_plan_foreman_tasks_recurring_logic_fk' AND table_name='katello_sync_plans'
|
12
|
+
SQL
|
13
|
+
).first['count'].to_i > 0
|
12
14
|
end
|
13
15
|
|
14
|
-
def
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
16
|
+
def sync_plan_ids_by_status(enabled = true, filter_ids = nil)
|
17
|
+
if filter_ids
|
18
|
+
return [] if filter_ids.empty?
|
19
|
+
|
20
|
+
ids_condition = filter_ids.map { |id| "'#{id}'" }.join(',')
|
21
|
+
end
|
22
|
+
|
23
|
+
if required_new_implementation
|
24
|
+
query = <<-SQL
|
25
|
+
select sp.id as id from katello_sync_plans sp inner join foreman_tasks_recurring_logics rl on sp.foreman_tasks_recurring_logic_id = rl.id
|
26
|
+
where rl.state='#{enabled ? 'active' : 'disabled'}' #{ids_condition ? " AND sp.id IN (#{ids_condition})" : ''}
|
27
|
+
SQL
|
28
|
+
else
|
29
|
+
query = <<-SQL
|
30
|
+
SELECT id FROM katello_sync_plans WHERE enabled ='#{enabled ? 't' : 'f'}' #{ids_condition ? " AND id IN (#{ids_condition})" : ''}
|
19
31
|
SQL
|
20
|
-
|
32
|
+
end
|
33
|
+
feature(:foreman_database).query(query).map { |r| r['id'].to_i }
|
21
34
|
end
|
22
35
|
|
23
36
|
def make_disable(ids)
|
@@ -39,8 +52,11 @@ class Features::SyncPlans < ForemanMaintain::Feature
|
|
39
52
|
private
|
40
53
|
|
41
54
|
def update_records(ids, enabled)
|
55
|
+
ids_not_required_update = sync_plan_ids_by_status(enabled, ids)
|
56
|
+
ids_required_update = ids - ids_not_required_update
|
57
|
+
make_data_key_empty(enabled) if !ids_not_required_update.empty? && ids_required_update.empty?
|
42
58
|
updated_record_ids = []
|
43
|
-
|
59
|
+
ids_required_update.each do |sp_id|
|
44
60
|
result = feature(:hammer).run("sync-plan update --id #{sp_id} --enabled #{enabled}")
|
45
61
|
if result.include?('Sync plan updated')
|
46
62
|
updated_record_ids << sp_id
|
@@ -55,15 +71,23 @@ class Features::SyncPlans < ForemanMaintain::Feature
|
|
55
71
|
|
56
72
|
def data
|
57
73
|
raise 'Use load_from_storage before accessing the data' unless defined? @data
|
74
|
+
|
58
75
|
@data
|
59
76
|
end
|
60
77
|
|
78
|
+
def make_data_key_empty(enabled)
|
79
|
+
key_name = enabled ? 'disabled' : 'enabled'
|
80
|
+
@data[:"#{key_name}"] = []
|
81
|
+
end
|
82
|
+
|
61
83
|
def update_data(enabled, new_ids)
|
62
84
|
if enabled
|
63
85
|
@data[:disabled] -= new_ids
|
64
86
|
@data[:enabled] = new_ids
|
65
87
|
else
|
66
|
-
@data[:disabled]
|
88
|
+
@data[:disabled] = [] unless @data[:disabled]
|
89
|
+
@data[:enabled] = [] if @data[:disabled].empty?
|
90
|
+
@data[:disabled].concat(new_ids).uniq!
|
67
91
|
end
|
68
92
|
end
|
69
93
|
end
|
@@ -21,7 +21,7 @@ module Procedures::SyncPlans
|
|
21
21
|
default_storage = ForemanMaintain.storage(:default)
|
22
22
|
feature(:sync_plans).load_from_storage(default_storage)
|
23
23
|
with_spinner('disabling sync plans') do |spinner|
|
24
|
-
ids = feature(:sync_plans).
|
24
|
+
ids = feature(:sync_plans).sync_plan_ids_by_status(true)
|
25
25
|
feature(:sync_plans).make_disable(ids)
|
26
26
|
spinner.update "Total #{ids.length} sync plans are now disabled."
|
27
27
|
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: 0.3.
|
4
|
+
version: 0.3.4
|
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: 2019-
|
11
|
+
date: 2019-06-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: clamp
|
@@ -329,7 +329,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
329
329
|
version: '0'
|
330
330
|
requirements: []
|
331
331
|
rubyforge_project:
|
332
|
-
rubygems_version: 2.6
|
332
|
+
rubygems_version: 2.7.6
|
333
333
|
signing_key:
|
334
334
|
specification_version: 4
|
335
335
|
summary: Foreman maintenance tool belt
|