mongolly 0.2.9 → 0.2.10
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/bin/mongolly +31 -29
- data/lib/mongolly/extensions/mongo/mongo_client.rb +1 -1
- data/lib/mongolly/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0e5dfd7e55a93db2f0ab03b50b7676d97b25a212
|
4
|
+
data.tar.gz: 26304958d35572763588aeb6521f6f86037caa9f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 19cfd8db4e216c2789aeb4e4099ab7c1e6e7812631ee2c0f64b032cf0537cd9b871f9188b286d89f98258dab9e362c5fdfdb87f43c16172c1e5893a6ee8fba48
|
7
|
+
data.tar.gz: d9538c0a1fcd46158a1bee43a662174191347f8f0661316a896b3916326382095a411508fdb327682a87e1317009b794fab0b4d8f1dd92959cf93f6c25f98869
|
data/bin/mongolly
CHANGED
@@ -6,19 +6,12 @@ require 'mongolly'
|
|
6
6
|
|
7
7
|
module Mongolly
|
8
8
|
class Runner < Thor
|
9
|
-
|
10
|
-
CONFIG_PATH = File.expand_path '~/.mongolly'
|
11
|
-
|
12
|
-
def initialize(*args)
|
13
|
-
super
|
14
|
-
@config = read_config
|
15
|
-
exit unless @config && valid_config?
|
16
|
-
end
|
9
|
+
class_option :config, :type => :string, aliases: '-c', default: '~/.mongolly', desc: 'Path to config file'
|
17
10
|
|
18
11
|
desc "backup", "Snapshots the Database EBS Volumes"
|
19
12
|
method_option :dry_run, type: :boolean, desc: 'Step through command without changes'
|
20
13
|
def backup
|
21
|
-
Shepherd.new({dry_run: options[:dry_run]}.merge(
|
14
|
+
Shepherd.new({dry_run: options[:dry_run]}.merge(config)).backup
|
22
15
|
end
|
23
16
|
|
24
17
|
desc "clean", "Removes old Database EBS Snapshots"
|
@@ -26,13 +19,31 @@ module Mongolly
|
|
26
19
|
method_option :dry_run, type: :boolean, desc: 'Step through command without changes'
|
27
20
|
def clean
|
28
21
|
age = Time.parse(options[:age])
|
29
|
-
Shepherd.new({dry_run: options[:dry_run]}.merge(
|
22
|
+
Shepherd.new({dry_run: options[:dry_run]}.merge(config)).cleanup(age)
|
30
23
|
end
|
31
24
|
|
32
25
|
private
|
33
|
-
def
|
34
|
-
|
26
|
+
def config
|
27
|
+
@config ||= read_config
|
28
|
+
end
|
29
|
+
|
30
|
+
def read_config
|
31
|
+
unless File.exists? config_path
|
32
|
+
seed_config
|
33
|
+
exit 1
|
34
|
+
end
|
35
|
+
|
36
|
+
begin
|
37
|
+
cfg = YAML::load( File.read( config_path ) )
|
38
|
+
rescue e
|
39
|
+
puts " ** Unable to read config at #{config_path}"
|
40
|
+
raise e
|
41
|
+
end
|
35
42
|
|
43
|
+
validated_config cfg
|
44
|
+
end
|
45
|
+
|
46
|
+
def seed_config
|
36
47
|
empty_config = {
|
37
48
|
database: [],
|
38
49
|
db_username: nil,
|
@@ -47,35 +58,26 @@ module Mongolly
|
|
47
58
|
config_server_ssh_keypath: nil
|
48
59
|
}
|
49
60
|
|
50
|
-
File.open(
|
61
|
+
File.open( config_path, "w" ) do |f|
|
51
62
|
f.write( empty_config.to_yaml )
|
52
63
|
end
|
53
64
|
|
54
|
-
puts " ** An empty configuration file has been written to #{
|
65
|
+
puts " ** An empty configuration file has been written to #{config_path}."
|
55
66
|
puts " ** you must now edit this configuration file with your AWS Credentials,"
|
56
67
|
puts " ** MongoDB Connection Details, and the array of volume IDs that you wish"
|
57
68
|
puts " ** to snapshot"
|
58
|
-
|
59
|
-
return false
|
60
|
-
end
|
61
|
-
|
62
|
-
def read_config
|
63
|
-
return false unless seed_config
|
64
|
-
begin
|
65
|
-
return YAML::load( File.read( CONFIG_PATH ) )
|
66
|
-
rescue e
|
67
|
-
puts " ** Unable to read config at #{CONFIG_PATH}"
|
68
|
-
raise e
|
69
|
-
end
|
70
69
|
end
|
71
70
|
|
72
|
-
def
|
71
|
+
def validated_config(cfg)
|
73
72
|
%w(database access_key_id secret_access_key).each do |arg|
|
74
|
-
raise ArgumentError.new("#{arg} cannot be empty") if
|
73
|
+
raise ArgumentError.new("#{arg} cannot be empty") if cfg[arg.to_sym].to_s.strip.empty?
|
75
74
|
end
|
76
|
-
|
75
|
+
cfg
|
77
76
|
end
|
78
77
|
|
78
|
+
def config_path
|
79
|
+
config_path ||= File.expand_path(options[:config])
|
80
|
+
end
|
79
81
|
end
|
80
82
|
end
|
81
83
|
|
@@ -195,7 +195,7 @@ protected
|
|
195
195
|
|
196
196
|
def replica_set_connection(hosts, options)
|
197
197
|
db = Mongo::MongoReplicaSetClient.new(hosts)
|
198
|
-
db['admin'].authenticate(options[:db_username], options[:db_password])
|
198
|
+
db['admin'].authenticate(options[:db_username], options[:db_password]) if options[:db_username]
|
199
199
|
return db
|
200
200
|
end
|
201
201
|
|
data/lib/mongolly/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mongolly
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.10
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Michael Saffitz
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2016-01-28 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: thor
|