scalingo_backups_manager 0.7.0 → 0.9.0

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: 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: []