mongolly 0.2.7 → 0.2.8
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 +4 -4
- data/lib/mongolly/extensions/mongo/mongo_client.rb +24 -11
- data/lib/mongolly/shepherd.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: ac849aa6e734e18e7d3c76cedd59595b36dda1ba
|
4
|
+
data.tar.gz: 884b04ec2321d46e84aac06efdccdcf3da776917
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ebae305017011d239b7c3fd333c453a3bed1026a472ae07f9ed4c005e449995ceb3ebe2210fcf8b79df0a91d64600c15e0136cd418b2ca0eea12773fb25049d5
|
7
|
+
data.tar.gz: 4392b563a59dbcacafc9de3669cb90314392029e4e26810f94a6694dbbbeb2667c0d56a9f1b5fd35328de4e09a8dd954b795f720e053a90a307610680726efa7
|
@@ -9,7 +9,6 @@ class Mongo::MongoClient
|
|
9
9
|
REPLICA_SNAPSHOT_PREFER_HIDDEN = true
|
10
10
|
|
11
11
|
def snapshot_ebs(options={})
|
12
|
-
|
13
12
|
@mongolly_dry_run = options[:dry_run] || false
|
14
13
|
@mongolly_logger = options[:logger] || Logger.new(STDOUT)
|
15
14
|
options[:volume_tag] ||= 'mongolly'
|
@@ -20,17 +19,14 @@ class Mongo::MongoClient
|
|
20
19
|
if mongos?
|
21
20
|
@mongolly_logger.info("Detected sharded cluster")
|
22
21
|
with_disabled_balancing do
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
backup_instance(config_server, options, false)
|
22
|
+
with_config_server_stopped(options) do
|
23
|
+
backup_instance(config_server, options, false)
|
27
24
|
|
28
|
-
|
29
|
-
|
30
|
-
|
25
|
+
shards.each do |name,hosts|
|
26
|
+
@mongolly_logger.debug("Found Shard #{name} with hosts #{hosts}.")
|
27
|
+
replica_set_connection(hosts, options).snapshot_ebs(options)
|
28
|
+
end
|
31
29
|
end
|
32
|
-
# Start Config Server
|
33
|
-
ssh_command(options[:config_server_ssh_user], config_server, options[:mongo_start_command], options[:config_server_ssh_keypath])
|
34
30
|
end
|
35
31
|
else
|
36
32
|
backup_instance(snapshot_ebs_target(REPLICA_SNAPSHOT_THRESHOLD, REPLICA_SNAPSHOT_PREFER_HIDDEN), options, false )
|
@@ -102,6 +98,19 @@ protected
|
|
102
98
|
return @config_server
|
103
99
|
end
|
104
100
|
|
101
|
+
def with_config_server_stopped(options={})
|
102
|
+
begin
|
103
|
+
# Stop Config Server
|
104
|
+
ssh_command(options[:config_server_ssh_user], config_server, options[:mongo_stop_command], options[:config_server_ssh_keypath])
|
105
|
+
yield
|
106
|
+
rescue => ex
|
107
|
+
@mongolly_logger.error "Error with config server stopped: #{ex.to_s}"
|
108
|
+
ensure
|
109
|
+
# Start Config Server
|
110
|
+
ssh_command(options[:config_server_ssh_user], config_server, options[:mongo_start_command], options[:config_server_ssh_keypath])
|
111
|
+
end
|
112
|
+
end
|
113
|
+
|
105
114
|
def with_disabled_balancing
|
106
115
|
begin
|
107
116
|
disable_balancing
|
@@ -115,6 +124,8 @@ protected
|
|
115
124
|
end
|
116
125
|
@mongolly_logger.debug "With shard balancing disabled..."
|
117
126
|
yield
|
127
|
+
rescue => ex
|
128
|
+
@mongolly_logger.error "Error with disabled balancer: #{ex.to_s}"
|
118
129
|
ensure
|
119
130
|
enable_balancing
|
120
131
|
end
|
@@ -127,6 +138,8 @@ protected
|
|
127
138
|
lock! unless @mongolly_dry_run || locked?
|
128
139
|
@mongolly_logger.debug "With database locked..."
|
129
140
|
yield
|
141
|
+
rescue => ex
|
142
|
+
@mongolly_logger.error "Error with database locked: #{ex.to_s}"
|
130
143
|
ensure
|
131
144
|
@mongolly_logger.debug "Unlocking database..."
|
132
145
|
unlock! if !@mongolly_dry_run && locked?
|
@@ -182,7 +195,7 @@ protected
|
|
182
195
|
|
183
196
|
def replica_set_connection(hosts, options)
|
184
197
|
db = Mongo::MongoReplicaSetClient.new(hosts)
|
185
|
-
db['admin'].authenticate(options[:db_username], options[:db_password]
|
198
|
+
db['admin'].authenticate(options[:db_username], options[:db_password])
|
186
199
|
return db
|
187
200
|
end
|
188
201
|
|
data/lib/mongolly/shepherd.rb
CHANGED
@@ -54,7 +54,7 @@ module Mongolly
|
|
54
54
|
@logger.debug "connecting to a single instance #{@database}"
|
55
55
|
Mongo::MongoClient.new(*@database.split(':'))
|
56
56
|
end
|
57
|
-
db['admin'].authenticate(@db_username, @db_password
|
57
|
+
db['admin'].authenticate(@db_username, @db_password)
|
58
58
|
return db
|
59
59
|
end
|
60
60
|
end
|
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.8
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Michael Saffitz
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-06-
|
11
|
+
date: 2015-06-23 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: thor
|