scalingo_backups_manager 0.7.0 → 0.9.0

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 9eecdc10b8f73d2a91d42fc47b3c53656f6089d0b3272fc6c40bb05b4239ed42
4
- data.tar.gz: 97a79403c485891560862c3e3f9181a5e9df0c30f7fa6eb190303ee21137f466
3
+ metadata.gz: de3bae8aee21115bc798c52df63e0ddc785e11ab10b2420a762848d1896d50ef
4
+ data.tar.gz: a1284ed86a12de0029d40d6cc540fd5e2a2e69e64fc598f8ab6bafd64a3d1fc8
5
5
  SHA512:
6
- metadata.gz: 0b476dc2a1651226d6ef0c11961ce4815d5250c76657167c4081e5bc25091282f176be3406c9c7c7fdf237ba3483fe4f73430a47e9323020697e43a7c8625fc8
7
- data.tar.gz: 339c818aecf115a985df7ae57bce015880abe5b4527a80f17ff8dbedb4cef2f7650720cf48423bf2c1fbdd0cfc8a31a25fe28a7928684d9426f898485a29b88b
6
+ metadata.gz: c58e1ed24cd527487d858bd341ed14e5480431b95245bd062e8adc38beb7130fc9d726fa6a818ae2e879cac83212d2470778b072ce11d3f71edf76b697f922a4
7
+ data.tar.gz: 00775f8db0dea7792cf701aea40727852f6d6b0e5fe3ec6cfbfea3976eb9f7ade0fe305b0fae6619ba4fb1c86cf99ff4f59a41e73200428397d2e388c9c6bf88
data/.DS_Store ADDED
Binary file
data/.gitignore CHANGED
@@ -11,4 +11,5 @@
11
11
  .rspec_status
12
12
  scalingo-backups-config.yml
13
13
  /backups/
14
- .idea
14
+ .idea
15
+ .rbenv-vars
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- scalingo_backups_manager (0.6.6)
4
+ scalingo_backups_manager (0.7.0)
5
5
  httparty (~> 0.18)
6
6
  net-sftp (~> 3.0.0)
7
7
  scalingo (~> 3.0)
@@ -10,13 +10,12 @@ PATH
10
10
  GEM
11
11
  remote: https://rubygems.org/
12
12
  specs:
13
- activesupport (6.1.4.6)
13
+ activesupport (7.0.3)
14
14
  concurrent-ruby (~> 1.0, >= 1.0.2)
15
15
  i18n (>= 1.6, < 2)
16
16
  minitest (>= 5.1)
17
17
  tzinfo (~> 2.0)
18
- zeitwerk (~> 2.3)
19
- concurrent-ruby (1.1.9)
18
+ concurrent-ruby (1.1.10)
20
19
  diff-lcs (1.4.4)
21
20
  faraday (1.10.0)
22
21
  faraday-em_http (~> 1.0)
@@ -54,7 +53,7 @@ GEM
54
53
  minitest (5.15.0)
55
54
  multi_json (1.15.0)
56
55
  multi_xml (0.6.0)
57
- multipart-post (2.1.1)
56
+ multipart-post (2.2.0)
58
57
  net-sftp (3.0.0)
59
58
  net-ssh (>= 5.0.0, < 7.0.0)
60
59
  net-ssh (6.1.0)
@@ -81,7 +80,6 @@ GEM
81
80
  thor (1.2.1)
82
81
  tzinfo (2.0.4)
83
82
  concurrent-ruby (~> 1.0)
84
- zeitwerk (2.5.4)
85
83
 
86
84
  PLATFORMS
87
85
  ruby
@@ -92,4 +90,4 @@ DEPENDENCIES
92
90
  scalingo_backups_manager!
93
91
 
94
92
  BUNDLED WITH
95
- 2.2.28
93
+ 2.3.13
@@ -79,20 +79,24 @@ module ScalingoBackupsManager
79
79
  end
80
80
 
81
81
  configuration.for_each_addons(searched_application, searched_addon) do |application, addon|
82
- backups = addon.backups
83
- next unless backups.size > 0
84
- backup = backups.first
85
- download_link = backup.download_link
86
- if download_link
82
+ begin
87
83
  puts "Downloading #{application.name} last backup"
88
- path = ("#{addon.config[:path]}" || "backups/#{addon.addon_provider[:id]}") + "/#{Time.now.strftime("%Y%m%d")}.tar.gz"
89
- if File.exist?(path)
90
- puts "Backup already download, skipping..."
84
+ backups = addon.backups
85
+ next unless backups.size > 0
86
+ backup = backups.first
87
+ download_link = backup.download_link
88
+ if download_link
89
+ path = ("#{addon.config[:path]}" || "backups/#{addon.addon_provider[:id]}") + "/#{Time.now.strftime("%Y%m%d")}.tar.gz"
90
+ if File.exist?(path)
91
+ puts "Backup already download, skipping..."
92
+ else
93
+ system "curl #{download_link} -o #{path} --create-dirs -k"
94
+ end
91
95
  else
92
- system "curl #{download_link} -o #{path} --create-dirs -k"
96
+ puts "No download link found for #{addon.addon_provider[:id]}, Skipping..."
93
97
  end
94
- else
95
- puts "No download link found for #{addon.addon_provider[:id]}, Skipping..."
98
+ rescue
99
+ puts "Issue with configuration of #{application.name}"
96
100
  end
97
101
  end
98
102
  end
@@ -3,6 +3,13 @@ module ScalingoBackupsManager
3
3
 
4
4
  class Notification
5
5
 
6
+ def self.send_healthchecks_notification(hook_url, message)
7
+ HTTParty.get(
8
+ hook_url,
9
+ headers: { 'Content-Type' => 'application/json' }
10
+ )
11
+ end
12
+
6
13
  def self.send_slack_notification(hook_url, message)
7
14
  HTTParty.post(
8
15
  hook_url,
@@ -17,7 +17,6 @@ module ScalingoBackupsManager
17
17
  destination_path = filename.split("/")
18
18
  backup_name = destination_path.pop.gsub(".tar.gz", "")
19
19
  destination_path = destination_path.join("/") + backup_name + "/"
20
- p destination_path
21
20
  if Dir.exist?(destination_path)
22
21
  puts "Unzipped backup is already present, skipping..."
23
22
  else
@@ -26,12 +25,13 @@ module ScalingoBackupsManager
26
25
  system untar_cmd
27
26
  end
28
27
 
29
- rails_db_config = YAML.load(ERB.new(File.read("config/#{opts[:database_config_file]}")).result)[opts[:env]]
28
+ rails_db_config = YAML.load(ERB.new(File.read("config/#{opts[:database_config_file]}")).result)[opts[:env].to_s]
30
29
  config = {
31
30
  host: rails_db_config["host"],
32
31
  database: rails_db_config["database"],
33
32
  password: rails_db_config["password"],
34
33
  user: rails_db_config["user"],
34
+ port: rails_db_config["port"]
35
35
  }
36
36
  restore_cmd = ""
37
37
  if config[:password].present?
@@ -61,6 +61,7 @@ module ScalingoBackupsManager
61
61
  restore_cmd << " -d #{config[:database]} --no-owner"
62
62
 
63
63
  puts "*** Restoring backup to Postgres database ***"
64
+ puts restore_cmd
64
65
  system(restore_cmd)
65
66
  FileUtils.rm_r destination_path unless opts[:skip_rm]
66
67
  end
@@ -60,6 +60,9 @@ module ScalingoBackupsManager
60
60
  begin
61
61
  sftp.upload!(filepath, "#{remote_dir}/#{filename}")
62
62
  rescue
63
+ if options.dig(:webhooks, :healthchecks_webhook_url)
64
+ ScalingoBackupsManager::Notification.send_healthchecks_notification(options.dig(:webhooks, :healthchecks_webhook_url), "An error has occured while uploading backup, see the logs for more information")
65
+ end
63
66
  if options.dig(:webhooks, :slack_webhook_url)
64
67
  ScalingoBackupsManager::Notification.send_slack_notification(options.dig(:webhooks, :slack_webhook_url), "An error has occured while uploading backup, see the logs for more information")
65
68
  end
@@ -1,3 +1,3 @@
1
1
  module ScalingoBackupsManager
2
- VERSION = "0.7.0"
3
- end
2
+ VERSION = "0.9.0"
3
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: scalingo_backups_manager
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.0
4
+ version: 0.9.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kevin Clercin
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-02-17 00:00:00.000000000 Z
11
+ date: 2023-02-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: thor
@@ -66,7 +66,7 @@ dependencies:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
68
  version: 3.0.0
69
- description:
69
+ description:
70
70
  email:
71
71
  - kevin@9troisquarts.com
72
72
  executables:
@@ -74,6 +74,7 @@ executables:
74
74
  extensions: []
75
75
  extra_rdoc_files: []
76
76
  files:
77
+ - ".DS_Store"
77
78
  - ".gitignore"
78
79
  - ".rspec"
79
80
  - ".travis.yml"
@@ -106,7 +107,7 @@ metadata:
106
107
  homepage_uri: https://github.com/9troisquarts/scalingo_backups_manager
107
108
  source_code_uri: https://github.com/9troisquarts/scalingo_backups_manager
108
109
  changelog_uri: https://github.com/9troisquarts/scalingo_backups_manager/CHANGELOG.md
109
- post_install_message:
110
+ post_install_message:
110
111
  rdoc_options: []
111
112
  require_paths:
112
113
  - lib
@@ -121,8 +122,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
121
122
  - !ruby/object:Gem::Version
122
123
  version: '0'
123
124
  requirements: []
124
- rubygems_version: 3.1.6
125
- signing_key:
125
+ rubygems_version: 3.3.7
126
+ signing_key:
126
127
  specification_version: 4
127
128
  summary: Gem allowing to download backups from scalingo
128
129
  test_files: []