martilla 0.2.0 → 0.2.1

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: 14bd7c780f6612c6adfbd67e932bf30db058e6af7148a7889d18ab0249e4d768
4
- data.tar.gz: a4cd222e53ac9eefb6fdef35bbe91ff3a2b16f49ddbfefe221a8d5ab244ae2e7
3
+ metadata.gz: b9d31f371877ecf3b302768977e737291d3d9445b381919c4b16f90103d43748
4
+ data.tar.gz: 783aff8488c1a399642de09dd09f70fb6f0fc3011542d6f3b1e8de25901d3e83
5
5
  SHA512:
6
- metadata.gz: 9c6fa4a885951c8a07c88cf62973fa82c63e889b2a4b63080a21888f9a4d8363fdcec841b65b4117af32f8821cccd62798ee1b36271c32a3cf8a6f7d09694a82
7
- data.tar.gz: 612b5bf6139d30935919e2989f9a87b2ebc58cc9f874b9e9a1b3b993f29e2069f1e13001d12696a563c0962cac17b6cba8f36c6b8bf57b404908bab9469adfaf
6
+ metadata.gz: 93c36f6e9fc9a1e0db8bce2241c87071c26c2a9a40d4bc27b62339427c9c5684c0156afc74dcf023008139e7070cc50b4ad24a5dc808ee0bf91c8ab9d8692aa5
7
+ data.tar.gz: 7e83cab89dd30200161bb6a13938119847a5d1a78e3843e41bde85cf33dc3f59eaeda086df719087cc9440fe8e9da70065d90c29d6f0428bdda9c298b6c715a5
data/CHANGELOG.md ADDED
@@ -0,0 +1,11 @@
1
+ # Martilla Change Log
2
+
3
+ All notable changes to this project will be documented in this file.
4
+
5
+ The format is based on [Keep a Changelog](http://keepachangelog.com/) and this project adheres to [Semantic Versioning](http://semver.org/).
6
+
7
+ ## 0.2.1
8
+ 2019-10-20
9
+
10
+ - Adds Slack Notifier support (thanks [anoopmadhav](https://github.com/fdoxyz/martilla/pull/2))
11
+ - `pipefail` config when using the pipe operator in Mysql & Postgres database adapters
data/Gemfile.lock CHANGED
@@ -1,11 +1,12 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- martilla (0.2.0)
4
+ martilla (0.2.1)
5
5
  aws-sdk-s3 (~> 1.49)
6
6
  aws-sdk-ses (~> 1.26)
7
7
  memoist (~> 0.16.0)
8
8
  pony (~> 1.13)
9
+ slack-notifier (~> 2.3.2)
9
10
  thor (~> 0.20.3)
10
11
 
11
12
  GEM
@@ -68,6 +69,7 @@ GEM
68
69
  json (>= 1.8, < 3)
69
70
  simplecov-html (~> 0.10.0)
70
71
  simplecov-html (0.10.2)
72
+ slack-notifier (2.3.2)
71
73
  thor (0.20.3)
72
74
 
73
75
  PLATFORMS
@@ -2,7 +2,7 @@ module Martilla
2
2
  class Mysql < Database
3
3
  def dump(tmp_file:, gzip:)
4
4
  if gzip
5
- `mysqldump #{connection_arguments} | gzip -c > #{tmp_file}`
5
+ `set -o pipefail && mysqldump #{connection_arguments} | gzip -c > #{tmp_file}`
6
6
  else
7
7
  `mysqldump #{connection_arguments} > #{tmp_file}`
8
8
  end
@@ -2,7 +2,7 @@ module Martilla
2
2
  class Postgres < Database
3
3
  def dump(tmp_file:, gzip:)
4
4
  if gzip
5
- `pg_dump #{connection_string} | gzip -c > #{tmp_file}`
5
+ `set -o pipefail && pg_dump #{connection_string} | gzip -c > #{tmp_file}`
6
6
  else
7
7
  `pg_dump #{connection_string} > #{tmp_file}`
8
8
  end
@@ -1,4 +1,51 @@
1
+ require 'slack-notifier'
2
+
1
3
  module Martilla
2
4
  class Slack < Notifier
5
+ def success(data)
6
+ slack_notify(success_txt(data))
7
+ end
8
+
9
+ def error(msg, data)
10
+ slack_notify(error_txt(msg, data))
11
+ end
12
+
13
+ private
14
+
15
+ def slack_notify(message)
16
+ begin
17
+ notifier.ping message
18
+ rescue StandardError => e
19
+ puts "Slack notification not sent. Error message: #{e}"
20
+ end
21
+ end
22
+
23
+ def notifier
24
+ ::Slack::Notifier.new(slack_webhook_url, channel: slack_channel, username: slack_username)
25
+ end
26
+
27
+ def slack_webhook_url
28
+ raise config_error('slack_webhook_url') if @options['slack_webhook_url'].nil?
29
+ @options['slack_webhook_url']
30
+ end
31
+
32
+ def slack_channel
33
+ @options['slack_channel'] || "#general"
34
+ end
35
+
36
+ def slack_username
37
+ @options['slack_username'] || "Martilla"
38
+ end
39
+
40
+ def success_txt(data)
41
+ success_msg = "*The backup was created successfully*\n\n"
42
+ success_msg + data.map { |d| "- #{d}" }.join("\n")
43
+ end
44
+
45
+ def error_txt(msg, data)
46
+ error_msg = "*The backup attempt failed with the following error:*\n #{msg} \n\n"
47
+ error_msg + data.map { |d| "- #{d}" }.join("\n")
48
+ end
49
+
3
50
  end
4
51
  end
@@ -1,3 +1,3 @@
1
1
  module Martilla
2
- VERSION = '0.2.0'
2
+ VERSION = '0.2.1'
3
3
  end
data/martilla.gemspec CHANGED
@@ -33,6 +33,7 @@ Gem::Specification.new do |spec|
33
33
  spec.add_dependency 'pony', '~> 1.13'
34
34
  spec.add_dependency 'aws-sdk-ses', '~> 1.26'
35
35
  spec.add_dependency 'aws-sdk-s3', '~> 1.49'
36
+ spec.add_dependency 'slack-notifier', '~> 2.3.2'
36
37
 
37
38
  spec.add_development_dependency 'bundler', '~> 2.0'
38
39
  spec.add_development_dependency 'rake', '~> 13.0'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: martilla
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Fernando Valverde
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2019-10-19 00:00:00.000000000 Z
11
+ date: 2019-10-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: thor
@@ -80,6 +80,20 @@ dependencies:
80
80
  - - "~>"
81
81
  - !ruby/object:Gem::Version
82
82
  version: '1.49'
83
+ - !ruby/object:Gem::Dependency
84
+ name: slack-notifier
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: 2.3.2
90
+ type: :runtime
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - "~>"
95
+ - !ruby/object:Gem::Version
96
+ version: 2.3.2
83
97
  - !ruby/object:Gem::Dependency
84
98
  name: bundler
85
99
  requirement: !ruby/object:Gem::Requirement
@@ -174,6 +188,7 @@ files:
174
188
  - ".gitignore"
175
189
  - ".rspec"
176
190
  - ".travis.yml"
191
+ - CHANGELOG.md
177
192
  - CODE_OF_CONDUCT.md
178
193
  - Gemfile
179
194
  - Gemfile.lock
@@ -183,7 +198,6 @@ files:
183
198
  - bin/console
184
199
  - bin/martilla
185
200
  - bin/setup
186
- - config.yml
187
201
  - lib/martilla.rb
188
202
  - lib/martilla/backup.rb
189
203
  - lib/martilla/cli.rb
data/config.yml DELETED
@@ -1,14 +0,0 @@
1
- ---
2
- db:
3
- type: postgres
4
- options:
5
- host: localhost
6
- user: username
7
- password: password
8
- db: databasename
9
- storage:
10
- type: local
11
- options:
12
- filename: database-backup.sql
13
- notifiers:
14
- - type: none