21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
|
# File 'lib/openc3/migrations/20260204000000_remove_decom_reducer.rb', line 21
def self.run
ScopeModel.get_all_models(scope: nil).each do |scope, _scope_model|
target_models = TargetModel.all(scope: scope)
target_models.each do |name, target_model|
target_model.delete("cmd_unique_id_mode")
target_model.delete("tlm_unique_id_mode")
target_model.delete("cmd_decom_log_cycle_time")
target_model.delete("cmd_decom_log_cycle_size")
target_model.delete("cmd_decom_log_retain_time")
target_model.delete("tlm_decom_log_cycle_time")
target_model.delete("tlm_decom_log_cycle_size")
target_model.delete("tlm_decom_log_retain_time")
target_model.delete("reduced_minute_log_retain_time")
target_model.delete("reduced_hour_log_retain_time")
target_model.delete("reduced_day_log_retain_time")
target_model.delete("reduced_log_retain_time")
target_model.delete("reducer_disable")
target_model.delete("reducer_max_cpu_utilization")
if target_model["target_microservices"]
target_model["target_microservices"].delete("DECOMCMDLOG")
target_model["target_microservices"].delete("DECOMLOG")
target_model["target_microservices"].delete("REDUCER")
end
model = TargetModel.from_json(target_model, scope: scope)
model.update()
%w(DECOMCMDLOG DECOMLOG REDUCER).each do |type|
microservice = MicroserviceModel.get_model(name: "#{scope}__#{type}__#{name}", scope: scope)
microservice.destroy if microservice
end
end
end
client = Bucket.getClient()
unless client.exist?(ENV['OPENC3_CONFIG_BUCKET']) && client.exist?(ENV['OPENC3_TOOLS_BUCKET'])
Logger.info("Skipping plugin reinstall - buckets do not exist yet (fresh install or new storage backend)")
return
end
ScopeModel.get_all_models(scope: nil).each do |scope, _scope_model|
plugins = PluginModel.all(scope: scope)
plugins.each do |plugin_name, plugin_data|
begin
Logger.info("Reinstalling plugin #{plugin_name} in scope #{scope}")
plugin_model = PluginModel.from_json(plugin_data, scope: scope)
plugin_model.undeploy
plugin_model.restore
Logger.info("Successfully reinstalled plugin #{plugin_name} in scope #{scope}")
rescue Exception => e
Logger.error("Error reinstalling plugin #{plugin_name} in scope #{scope}: #{e.formatted}")
end
end
end
end
|