chef_backup 0.0.1.dev.2 → 0.0.1.dev.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 77676069a215d7829c14023e70d43e71d27581a1
4
- data.tar.gz: e218d8428ec0edb82a440f9003db3035435e539d
3
+ metadata.gz: 09b1eb6deacbd6c56ebe568a9f35f901dc84fd44
4
+ data.tar.gz: 9d46e9ecc8b151b30f84b10ec1b87967d59ed1cf
5
5
  SHA512:
6
- metadata.gz: e3850ccefb42090d4c73decaa3c9c661d50529aee9eb00a667bb97f648337871e2dafa9fbe1ad6c8cbb082f6ccb908a3d8799721da778c133402530fdb7c5d7c
7
- data.tar.gz: d89dc2fb4ef4bc7d95f907e1dec161cb26a0ff2749cee9e8cb1069e823c345d255a42227edd0cf48f638cbc2277d497fedc90689f95102b8f5f4a77599331708
6
+ metadata.gz: fc18b6429543be51b9181a7f41824884729827d4d3b2ff1b9590b0798ee63c4a354af3c55fc87750b643fc4da114884feb7572554e754450b256bffe794482cc
7
+ data.tar.gz: e91dc44182e140a32685ac618ebc5a129b648fa1c2a953529da9c476d579b19df5a6ec7cfc305df224a53d823cf18f75caf0d6fb3c2a8de3d2a5ca31df6aa324
data/.rubocop.yml CHANGED
@@ -11,7 +11,7 @@ Metrics/PerceivedComplexity:
11
11
  Metrics/MethodLength:
12
12
  Max: 40
13
13
  Metrics/AbcSize:
14
- Max: 25
14
+ Max: 30
15
15
  AllCops:
16
16
  Exclude:
17
17
  - 'Guardfile'
data/chef_backup.gemspec CHANGED
@@ -28,6 +28,6 @@ Gem::Specification.new do |spec|
28
28
  spec.add_development_dependency 'rspec', '~> 3.0'
29
29
  spec.add_development_dependency 'guard-rspec'
30
30
  spec.add_development_dependency 'pry-rescue'
31
- spec.add_development_dependency 'rubocop', '0.28'
31
+ spec.add_development_dependency 'rubocop', '>= 0.28'
32
32
  spec.add_development_dependency 'simplecov'
33
33
  end
@@ -1,6 +1,7 @@
1
1
  require 'fileutils'
2
2
  require 'json'
3
3
  require 'time'
4
+ require 'highline/import'
4
5
 
5
6
  # rubocop:disable IndentationWidth
6
7
  module ChefBackup
@@ -122,9 +123,14 @@ class TarBackup
122
123
  log 'Starting Chef Server backup'
123
124
  populate_data_map
124
125
  if backend?
125
- stop_chef_server(except: [:keepalived, :postgresql]) unless online?
126
- dump_db
127
- stop_service(:postgresql) unless online?
126
+ if !online?
127
+ ask_to_go_offline unless offline_permission_granted?
128
+ stop_chef_server(except: [:keepalived, :postgresql])
129
+ dump_db
130
+ stop_service(:postgresql)
131
+ else
132
+ dump_db
133
+ end
128
134
  end
129
135
  write_manifest
130
136
  create_tarball
@@ -165,6 +171,18 @@ class TarBackup
165
171
  # defaults to true
166
172
  private_chef['backup']['always_dump_db']
167
173
  end
174
+
175
+ def offline_permission_granted?
176
+ private_chef['backup']['agree_to_go_offline']
177
+ end
178
+
179
+ def ask_to_go_offline
180
+ msg = 'WARNING: Offline backup mode must stop your Chef server before '
181
+ msg << 'continuing. You can skip this message by passing a "--yes" '
182
+ msg << 'argument. Do you wish to proceed? (y/N):'
183
+
184
+ exit(1) unless ask(msg) =~ /^y/i
185
+ end
168
186
  end
169
187
  end
170
188
  end
@@ -1,4 +1,4 @@
1
1
  # ChefBackup module
2
2
  module ChefBackup
3
- VERSION = '0.0.1.dev.2'
3
+ VERSION = '0.0.1.dev.3'
4
4
  end
@@ -1,7 +1,8 @@
1
1
  {
2
2
  "private_chef": {
3
3
  "backup": {
4
- "strategy": "tar"
4
+ "strategy": "tar",
5
+ "agree_to_go_offline": "true"
5
6
  },
6
7
  "api_version": "11.1.0",
7
8
  "flavor": "ec",
@@ -71,4 +71,22 @@ shared_examples 'a tar based offline backend' do
71
71
  expect(subject).to receive(:dump_db).once
72
72
  subject.backup
73
73
  end
74
+
75
+ context 'when the user has not agreed to go offline' do
76
+ before { private_chef('backup' => { 'agree_to_go_offline' => false }) }
77
+
78
+ it 'prompts the user' do
79
+ expect(subject).to receive(:ask_to_go_offline).once
80
+ subject.backup
81
+ end
82
+ end
83
+
84
+ context 'when the user has agreed to go offline' do
85
+ before { private_chef('backup' => { 'agree_to_go_offline' => true }) }
86
+
87
+ it 'prompts the user' do
88
+ expect(subject).to_not receive(:ask_to_go_offline)
89
+ subject.backup
90
+ end
91
+ end
74
92
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: chef_backup
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1.dev.2
4
+ version: 0.0.1.dev.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ryan Cragun
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-03-26 00:00:00.000000000 Z
11
+ date: 2015-05-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: di-ruby-lvm
@@ -140,14 +140,14 @@ dependencies:
140
140
  name: rubocop
141
141
  requirement: !ruby/object:Gem::Requirement
142
142
  requirements:
143
- - - '='
143
+ - - ">="
144
144
  - !ruby/object:Gem::Version
145
145
  version: '0.28'
146
146
  type: :development
147
147
  prerelease: false
148
148
  version_requirements: !ruby/object:Gem::Requirement
149
149
  requirements:
150
- - - '='
150
+ - - ">="
151
151
  - !ruby/object:Gem::Version
152
152
  version: '0.28'
153
153
  - !ruby/object:Gem::Dependency
@@ -233,7 +233,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
233
233
  version: 1.3.1
234
234
  requirements: []
235
235
  rubyforge_project:
236
- rubygems_version: 2.2.2
236
+ rubygems_version: 2.2.3
237
237
  signing_key:
238
238
  specification_version: 4
239
239
  summary: A library to backup a Chef Server