sct 1.11.2 → 1.11.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/henk/lib/henk/commands_generator.rb +1 -1
- data/henk/lib/henk/runner.rb +70 -4
- data/sct/lib/sct/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 83b5089b7b2e78f5a4b94b62278fa9159e60f1e70654eb65921e59f3b2c69d8e
|
|
4
|
+
data.tar.gz: 8967410c1dbbfc370d64b6744f93cc76ac01be25db05967d4830cc515292a0db
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 077e1d0700e0a844cc430bda5ec36016056325a3ec5afa272321ce85da4aaa7dc0a5575011b73fd0973a8a94d80efbde84fc88c193549826c5d0b4e8bd5dbad2
|
|
7
|
+
data.tar.gz: 8599299496eafc2f35e5ca362d10a2caf37883d174a68b8dddaf898cf54164e8830d033607ba7197f0ef8954ee66288f757dc4bc4122817b1e1c646f1450169e
|
data/henk/lib/henk/runner.rb
CHANGED
|
@@ -4,6 +4,24 @@ module Henk
|
|
|
4
4
|
class Runner
|
|
5
5
|
attr_accessor :options_mapping
|
|
6
6
|
|
|
7
|
+
# Tables in spend-cloud-config database that have a client_id column
|
|
8
|
+
# These will be cleaned up when removing a customer
|
|
9
|
+
# This list matches the production Go service deleteClient function
|
|
10
|
+
CONFIG_TABLES_WITH_CLIENT_ID = [
|
|
11
|
+
'00_settings',
|
|
12
|
+
'01_settings',
|
|
13
|
+
'02_settings',
|
|
14
|
+
'03_settings',
|
|
15
|
+
'04_settings',
|
|
16
|
+
'05_settings',
|
|
17
|
+
'06_settings',
|
|
18
|
+
'07_settings',
|
|
19
|
+
'08_settings',
|
|
20
|
+
'06_settings_external_supplier',
|
|
21
|
+
'translation_settings',
|
|
22
|
+
'client_module'
|
|
23
|
+
].freeze
|
|
24
|
+
|
|
7
25
|
def initialize
|
|
8
26
|
@options_mapping = {
|
|
9
27
|
"organization_name" => {
|
|
@@ -180,7 +198,9 @@ module Henk
|
|
|
180
198
|
begin
|
|
181
199
|
zip = download_and_unzip dump_url, dir
|
|
182
200
|
|
|
183
|
-
customer
|
|
201
|
+
# Extract customer name from zip filename (format: customer_timestamp or just customer)
|
|
202
|
+
underscore_index = zip.rindex("_")
|
|
203
|
+
customer = underscore_index ? zip.slice(0, underscore_index) : zip
|
|
184
204
|
|
|
185
205
|
customer_database = customer.gsub "-", "_"
|
|
186
206
|
|
|
@@ -207,7 +227,7 @@ module Henk
|
|
|
207
227
|
|
|
208
228
|
run "unzip #{zip_path} -d #{dir}"
|
|
209
229
|
|
|
210
|
-
|
|
230
|
+
File.basename zip_path, ".zip"
|
|
211
231
|
end
|
|
212
232
|
|
|
213
233
|
def remove_customer customer
|
|
@@ -216,14 +236,60 @@ module Henk
|
|
|
216
236
|
if local_customers.include? customer
|
|
217
237
|
puts "Customer already exists. Removing customer before importing...".yellow
|
|
218
238
|
|
|
219
|
-
|
|
239
|
+
customer_database = customer.gsub "-", "_"
|
|
240
|
+
|
|
241
|
+
remove_customer_from_config_database customer
|
|
242
|
+
|
|
243
|
+
puts "Dropping database #{customer_database}...".blue
|
|
244
|
+
run_query "DROP DATABASE IF EXISTS `#{customer_database}`"
|
|
245
|
+
|
|
246
|
+
puts "Removing customer from proactive_accounts.ini...".blue
|
|
247
|
+
run "docker exec proactive-config sed -i '/^\\[#{customer}\\]/,/^$/d' /data/proactive_accounts.ini"
|
|
248
|
+
|
|
249
|
+
puts "Removing customer data directory...".blue
|
|
250
|
+
run "docker exec proactive-config rm -rf /data/#{customer}"
|
|
220
251
|
|
|
221
252
|
puts "Removed existing customer".green
|
|
222
253
|
end
|
|
223
254
|
end
|
|
224
255
|
|
|
256
|
+
def remove_customer_from_config_database customer
|
|
257
|
+
puts "Finding client_id for #{customer}...".blue
|
|
258
|
+
client_id_result = `docker exec mysql-service mysql -u root -sN -e 'SELECT client_id FROM \`spend-cloud-config\`.\`00_settings\` WHERE \`043\` = "#{customer}"'`.strip
|
|
259
|
+
|
|
260
|
+
if !client_id_result.empty?
|
|
261
|
+
client_id = client_id_result.to_i
|
|
262
|
+
puts "Found client_id: #{client_id}".blue
|
|
263
|
+
|
|
264
|
+
puts "Removing customer from #{CONFIG_TABLES_WITH_CLIENT_ID.length} config tables...".blue
|
|
265
|
+
delete_client_data_from_tables client_id
|
|
266
|
+
|
|
267
|
+
puts "Removing customer from client table...".blue
|
|
268
|
+
run_query "DELETE FROM `client` WHERE `id` = #{client_id}", database: "spend-cloud-config"
|
|
269
|
+
|
|
270
|
+
puts "Removed all config database entries".green
|
|
271
|
+
else
|
|
272
|
+
puts "Warning: ".yellow + "Could not find client_id in config database, attempting cleanup with domain name only"
|
|
273
|
+
run_query "DELETE FROM `00_settings` WHERE `043` = \"#{customer}\"", database: "spend-cloud-config"
|
|
274
|
+
end
|
|
275
|
+
end
|
|
276
|
+
|
|
277
|
+
def delete_client_data_from_tables client_id
|
|
278
|
+
CONFIG_TABLES_WITH_CLIENT_ID.each do |table|
|
|
279
|
+
next if table == 'client'
|
|
280
|
+
|
|
281
|
+
puts " Deleting from #{table}...".blue
|
|
282
|
+
run_query "DELETE FROM `#{table}` WHERE `client_id` = #{client_id}", database: "spend-cloud-config"
|
|
283
|
+
end
|
|
284
|
+
|
|
285
|
+
puts " Cleaning up orphaned records...".blue
|
|
286
|
+
run_query "DELETE FROM `01_settings_extra_velden` WHERE `settings_id` NOT IN (SELECT `id` FROM `01_settings`)", database: "spend-cloud-config"
|
|
287
|
+
run_query "DELETE FROM `04_settings_contractgegevens` WHERE `settings_id` NOT IN (SELECT `id` FROM `04_settings`)", database: "spend-cloud-config"
|
|
288
|
+
end
|
|
289
|
+
|
|
225
290
|
def copy_db_encryption_key customer, dir
|
|
226
|
-
run "docker exec
|
|
291
|
+
run "docker exec proactive-config mkdir -p /data/#{customer}"
|
|
292
|
+
run "docker exec proactive-config chown www-data:www-data /data/#{customer}"
|
|
227
293
|
run "docker cp #{dir}/db_encryption.key proactive-config:/data/#{customer}/"
|
|
228
294
|
|
|
229
295
|
puts "Copied db_encryption.key to proactive-config:/data/#{customer}/".green
|
data/sct/lib/sct/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: sct
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.11.
|
|
4
|
+
version: 1.11.3
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Reshad Farid
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2025-
|
|
11
|
+
date: 2025-10-28 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: colored
|