influxdb_setup 0.3.0 → 1.0.0
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/CHANGELOG.md +14 -0
- data/README.md +54 -23
- data/influxdb_setup.gemspec +4 -3
- data/lib/influxdb_setup/capistrano.rb +15 -7
- data/lib/influxdb_setup/command.rb +1 -1
- data/lib/influxdb_setup/commands.rb +0 -1
- data/lib/influxdb_setup/config.rb +6 -2
- data/lib/influxdb_setup/create_db.rb +1 -1
- data/lib/influxdb_setup/create_user.rb +2 -2
- data/lib/influxdb_setup/load_queries.rb +41 -22
- data/lib/influxdb_setup/mark_deploy.rb +1 -1
- data/lib/influxdb_setup/version.rb +1 -1
- data/lib/influxdb_setup.rb +0 -1
- data/lib/tasks/influxdb_setup.rake +0 -6
- metadata +22 -8
- data/lib/influxdb_setup/setup_shard_spaces.rb +0 -51
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: af774bd0bda065750d0b284e4bfb5dbcba4e6e44
|
4
|
+
data.tar.gz: d28478b3420de3ed667969acd98f6644cd3714ed
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c287d4135601d44847afd6d98617054778600097e6ee68606a44239832516986de78bb4fd077aab66236ce112add87db143ff5e6bf47c98124b2acbb2b228a26
|
7
|
+
data.tar.gz: d67ffd8c67f5221ccba1633370e0ec471707de5047941fa567d1e48e63227cc92bb2250108e0cd90280ea12713c5502227aa40c9682c878775e7e6a90b126ea9
|
data/CHANGELOG.md
ADDED
@@ -0,0 +1,14 @@
|
|
1
|
+
# Change Log
|
2
|
+
All notable changes to this project will be documented in this file.
|
3
|
+
This project adheres to [Semantic Versioning](http://semver.org/).
|
4
|
+
CHANGELOG inspiration from http://keepachangelog.com/.
|
5
|
+
|
6
|
+
## Unreleased
|
7
|
+
|
8
|
+
## [0.5.0] - March 17, 2016
|
9
|
+
* Update influxdb_queries.yml and LoadQueries for InfluxDB 0.10
|
10
|
+
|
11
|
+
## [0.4.1] - March 4, 2016
|
12
|
+
* Skip loading continuous queries if influxdb_queries.yml file doesn't exist.
|
13
|
+
* Use a real logger object, this will cause timestamps to be printed, and makes
|
14
|
+
testing easier.
|
data/README.md
CHANGED
@@ -1,19 +1,14 @@
|
|
1
1
|
# InfluxdbSetup
|
2
2
|
|
3
|
-
For configuring the influxdb database,
|
4
|
-
|
5
|
-
**Warning**: Only works with InfluxDB 0.8.x
|
6
|
-
|
7
|
-
I wanted configuring influxdb to be as easy as database migrations with Rails.
|
8
|
-
This gem provides rake tasks to create the database and user, setup 2 default
|
9
|
-
shard spaces (one for a week of fine grained detail, and another for archiving
|
10
|
-
a year of data), and for creating/removing/updating continuous queries.
|
3
|
+
For configuring the influxdb database, and continuous queries.
|
11
4
|
|
12
5
|
## Installation
|
13
6
|
|
14
7
|
Add these lines to your application's Gemfile:
|
15
8
|
|
16
9
|
```ruby
|
10
|
+
source 'http://gems.corp.avvo.com'
|
11
|
+
|
17
12
|
gem 'influxdb_setup'
|
18
13
|
```
|
19
14
|
|
@@ -26,10 +21,9 @@ And then execute:
|
|
26
21
|
To have the task run on deploy, add `require "influxdb_setup/capistrano"` to
|
27
22
|
your `config/deploy.rb`.
|
28
23
|
|
29
|
-
This will run the setup on deploy (creating database,
|
24
|
+
This will run the setup on deploy (creating database, user, and
|
30
25
|
continuous queries). It will also mark the deploy in the "deploys" table in
|
31
|
-
your influxdb. See the example `
|
32
|
-
queries.
|
26
|
+
your influxdb. See the example `influxdb_queries.yml` for the archive queries.
|
33
27
|
|
34
28
|
## Usage
|
35
29
|
|
@@ -52,18 +46,29 @@ default: &default
|
|
52
46
|
|
53
47
|
development:
|
54
48
|
<<: *default
|
55
|
-
hosts: ["192.168.59.103"]
|
49
|
+
hosts: ["192.168.59.103"]
|
56
50
|
async: false
|
57
51
|
enabled: true
|
58
52
|
retry: false
|
59
53
|
|
54
|
+
ec2:
|
55
|
+
<<: *default
|
56
|
+
|
60
57
|
test:
|
61
58
|
<<: *default
|
62
59
|
|
60
|
+
stag:
|
61
|
+
<<: *default
|
62
|
+
hosts: ["fs2wad.prod.avvo.com"]
|
63
|
+
enabled: true
|
64
|
+
|
63
65
|
production:
|
64
66
|
<<: *default
|
65
|
-
hosts: ["
|
67
|
+
hosts: ["fs2wad.prod.avvo.com"]
|
66
68
|
enabled: true
|
69
|
+
|
70
|
+
docker:
|
71
|
+
<<: *default
|
67
72
|
```
|
68
73
|
|
69
74
|
To add continuous queries, just add them to the `db/influxdb_queries.yml`, for
|
@@ -71,10 +76,14 @@ example:
|
|
71
76
|
|
72
77
|
```yaml
|
73
78
|
---
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
79
|
+
stag_times:
|
80
|
+
select median(value) as median,mean(value) as mean,count(value) as count into one_hour_stag_response_times from "response_times" where rails_env='stag' group by time(1h)
|
81
|
+
prod_times:
|
82
|
+
select median(value) as median,mean(value) as mean,count(value) as count into one_hour_prod_response_times from "response_times" where rails_env='production' group by time(1h)
|
83
|
+
prod_deploys:
|
84
|
+
select count(commit) as deploys into prod_deploys_per_hour from "deploys" where rails_env='production' group by time(1h)
|
85
|
+
stag_deploys:
|
86
|
+
select count(commit) as deploys into stag_deploys_per_hour from "deploys" where rails_env='stag' group by time(1h)
|
78
87
|
```
|
79
88
|
|
80
89
|
Make sure your queries match what the server coerces them into (no spaces
|
@@ -86,10 +95,6 @@ If there's queries to update the task will not do anything.
|
|
86
95
|
`rake influxdb:create_db`
|
87
96
|
Creates the database for the service if it doesn't already exist.
|
88
97
|
|
89
|
-
`rake influxdb:setup_shard_spaces`
|
90
|
-
Creates or updates the default and archives shard spaces. If they don't exist,
|
91
|
-
it creates them. If they do exist but they are not correct, it updates them.
|
92
|
-
|
93
98
|
`rake influxdb:create_user`
|
94
99
|
Creates the user for the service if it doesn't already exist.
|
95
100
|
|
@@ -100,16 +105,42 @@ in the `db/influxdb_queries.yml` file.
|
|
100
105
|
`rake influxdb:setup`
|
101
106
|
Runs all the above rake tasks.
|
102
107
|
|
108
|
+
## Tests
|
109
|
+
|
110
|
+
To run the tests, you need an influxdb host setup. If you're not running it on
|
111
|
+
`localhost:8086`, you can specify where it's running with the `INFLUXDB_HOSTS`
|
112
|
+
and `INFLUXDB_PORT` environmental variables.
|
113
|
+
|
103
114
|
## Development
|
104
115
|
|
105
116
|
After checking out the repo, run `bin/setup` to install dependencies. Then, run
|
106
117
|
`rake spec` to run the tests. You can also run `bin/console` for an interactive
|
107
118
|
prompt that will allow you to experiment.
|
108
119
|
|
120
|
+
To install this gem onto your local machine, run `bundle exec rake install`. To
|
121
|
+
release a new version, update the version number in `version.rb`, and then run
|
122
|
+
`bundle exec rake release`, which will create a git tag for the version, push
|
123
|
+
git commits and tags, and push the `.gem` file to
|
124
|
+
[rubygems.org](https://rubygems.org).
|
125
|
+
|
126
|
+
To cut a gem:
|
127
|
+
|
128
|
+
1. Bump the version in `lib/influxdb_setup/version.rb`
|
129
|
+
2. Build the gem `gem_push=no rake release`
|
130
|
+
3. Push to geminabox `gem inabox pkg/influxdb_setup-0.1.0.gem` (or whatever
|
131
|
+
version you just cut.)
|
132
|
+
|
109
133
|
## Contributing
|
110
134
|
|
111
|
-
Bug reports and pull requests are welcome on
|
112
|
-
https://github.com/
|
135
|
+
Bug reports and pull requests are welcome on GitLab at
|
136
|
+
https://github.com/avvo/influxdb_setup.
|
137
|
+
|
138
|
+
## Changelog
|
139
|
+
|
140
|
+
v0.4.0 - Upgrade influxdb gem to handle InfluxDB v0.9.x and greater and remove shard space setup support
|
141
|
+
v0.3.1 - automatically skip influxdb setup on a rollback
|
142
|
+
v0.3.0 - added the ability to skip influxdb setup by setting the capistrano variable skip_influx_setup
|
143
|
+
|
113
144
|
|
114
145
|
## License
|
115
146
|
|
data/influxdb_setup.gemspec
CHANGED
@@ -7,10 +7,10 @@ Gem::Specification.new do |spec|
|
|
7
7
|
spec.name = "influxdb_setup"
|
8
8
|
spec.version = InfluxdbSetup::VERSION
|
9
9
|
spec.authors = ["Donald Plummer"]
|
10
|
-
spec.email = ["
|
10
|
+
spec.email = ["dplummer@avvo.com"]
|
11
11
|
|
12
12
|
spec.summary = %q{Rake task for setting up an influxdb database and queries}
|
13
|
-
spec.homepage = "https://github.com/
|
13
|
+
spec.homepage = "https://github.com/avvo/influxdb_setup"
|
14
14
|
spec.license = "MIT"
|
15
15
|
|
16
16
|
spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
|
@@ -18,9 +18,10 @@ Gem::Specification.new do |spec|
|
|
18
18
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
19
19
|
spec.require_paths = ["lib"]
|
20
20
|
|
21
|
-
spec.add_dependency "influxdb", "~> 0.
|
21
|
+
spec.add_dependency "influxdb", "~> 0.2.3"
|
22
22
|
|
23
23
|
spec.add_development_dependency "bundler", "~> 1.10"
|
24
24
|
spec.add_development_dependency "rake", "~> 10.0"
|
25
25
|
spec.add_development_dependency "rspec"
|
26
|
+
spec.add_development_dependency "pry"
|
26
27
|
end
|
@@ -1,15 +1,23 @@
|
|
1
1
|
namespace :deploy do
|
2
|
+
# on rollback, repo_path is not set or is not present, so we can't do
|
3
|
+
# the influxdb_setup task below
|
4
|
+
before :rollback, :skip_influxdb do
|
5
|
+
set :skip_influxdb_setup, true
|
6
|
+
end
|
7
|
+
|
2
8
|
before :restart, :influxdb_setup do
|
3
9
|
on roles(:db) do
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
10
|
+
unless fetch(:skip_influxdb_setup)
|
11
|
+
within current_path do
|
12
|
+
revision = fetch(:current_revision) do
|
13
|
+
within(repo_path) do
|
14
|
+
capture("cd #{repo_path} && git rev-parse --short HEAD")
|
15
|
+
end
|
8
16
|
end
|
9
|
-
end
|
10
17
|
|
11
|
-
|
12
|
-
|
18
|
+
with rails_env: fetch(:rails_env), newrelic_agent_enabled: false do
|
19
|
+
execute :rake, "influxdb:setup influxdb:mark_deploy[#{revision}]"
|
20
|
+
end
|
13
21
|
end
|
14
22
|
end
|
15
23
|
end
|
@@ -1,5 +1,6 @@
|
|
1
1
|
require 'yaml'
|
2
2
|
require 'erb'
|
3
|
+
require 'influxdb'
|
3
4
|
|
4
5
|
module InfluxdbSetup
|
5
6
|
class Config
|
@@ -11,8 +12,11 @@ module InfluxdbSetup
|
|
11
12
|
@config ||= YAML.load(ERB.new(File.read("config/influxdb.yml")).result)[env]
|
12
13
|
end
|
13
14
|
|
14
|
-
|
15
|
-
|
15
|
+
attr_accessor :logger
|
16
|
+
|
17
|
+
def initialize(config: self.class.config, logger: Logger.new(STDOUT))
|
18
|
+
@config = config
|
19
|
+
@logger = logger
|
16
20
|
end
|
17
21
|
|
18
22
|
def env
|
@@ -3,7 +3,7 @@ module InfluxdbSetup
|
|
3
3
|
def call
|
4
4
|
db = @config.db_name
|
5
5
|
root = @config.build_client
|
6
|
-
databases = root.
|
6
|
+
databases = root.list_databases.map { |row| row["name"] }
|
7
7
|
|
8
8
|
unless databases.include?(db)
|
9
9
|
root.create_database(db)
|
@@ -6,9 +6,9 @@ module InfluxdbSetup
|
|
6
6
|
pass = @config.password
|
7
7
|
|
8
8
|
root = @config.build_client
|
9
|
-
users = root.
|
9
|
+
users = root.list_users.map{|user_hash| user_hash["username"]}
|
10
10
|
|
11
|
-
unless users.include?(
|
11
|
+
unless users.include?(user)
|
12
12
|
root.create_database_user(db, user, pass)
|
13
13
|
else
|
14
14
|
log "Influxdb user '#{user}'@'#{db}' already exists"
|
@@ -1,33 +1,52 @@
|
|
1
1
|
module InfluxdbSetup
|
2
2
|
class LoadQueries < Command
|
3
|
-
|
4
|
-
|
5
|
-
root = @config.build_client(db)
|
6
|
-
url = root.send :full_url, "/cluster/configuration"
|
7
|
-
configuration = root.send :get, url
|
3
|
+
class Query
|
4
|
+
attr_reader :raw_name, :query
|
8
5
|
|
9
|
-
|
10
|
-
|
6
|
+
def initialize(raw_name, query)
|
7
|
+
@raw_name = raw_name
|
8
|
+
@query = query
|
11
9
|
end
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
expected_queries.each do |query|
|
16
|
-
unless existing_queries.values.include?(query)
|
17
|
-
log "Adding '#{query}'"
|
18
|
-
root.query query
|
19
|
-
else
|
20
|
-
no_change += 1
|
21
|
-
end
|
10
|
+
|
11
|
+
def name
|
12
|
+
"influxdb_setup_#{raw_name}"
|
22
13
|
end
|
14
|
+
end
|
15
|
+
|
16
|
+
FileFormatError = Class.new(StandardError)
|
23
17
|
|
24
|
-
|
18
|
+
def call
|
19
|
+
queries_file = Pathname.new("db/influxdb_queries.yml")
|
20
|
+
|
21
|
+
if queries_file.exist?
|
22
|
+
db = @config.db_name
|
23
|
+
root = @config.build_client(db)
|
24
|
+
existing_queries = root.list_continuous_queries(db)
|
25
|
+
raw = YAML.load(ERB.new(queries_file.read).result) || {}
|
26
|
+
raise FileFormatError, "expected influxdb_queries.yml to be a hash, was a #{raw.class.name}" unless raw.is_a?(Hash)
|
27
|
+
|
28
|
+
expected_queries = raw.map do |name, query|
|
29
|
+
Query.new(name, query)
|
30
|
+
end
|
31
|
+
|
32
|
+
# Delete first in case an old name is getting overwritten
|
33
|
+
existing_queries.each do |query|
|
34
|
+
if expected_queries.none? {|expected| expected.name == query["name"]}
|
35
|
+
log "Removing '#{query['name']}', was: '#{query['query']}'"
|
36
|
+
root.delete_continuous_query(query["name"], db)
|
37
|
+
end
|
38
|
+
end
|
25
39
|
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
40
|
+
expected_queries.each do |expected|
|
41
|
+
if existing_queries.any? {|hash| hash["name"] == expected.name}
|
42
|
+
log "Skipping '#{expected.raw_name}', a query by that name already exists"
|
43
|
+
else
|
44
|
+
log "Adding '#{expected.raw_name}': '#{expected.query}'"
|
45
|
+
root.create_continuous_query(expected.name, db, expected.query)
|
46
|
+
end
|
30
47
|
end
|
48
|
+
else
|
49
|
+
log "No influxdb_queries.yml file found, skipping continuous queries setup"
|
31
50
|
end
|
32
51
|
end
|
33
52
|
end
|
data/lib/influxdb_setup.rb
CHANGED
@@ -8,7 +8,6 @@ module InfluxdbSetup
|
|
8
8
|
autoload :CreateUser, "influxdb_setup/create_user"
|
9
9
|
autoload :LoadQueries, "influxdb_setup/load_queries"
|
10
10
|
autoload :MarkDeploy, "influxdb_setup/mark_deploy"
|
11
|
-
autoload :SetupShardSpaces, "influxdb_setup/setup_shard_spaces"
|
12
11
|
|
13
12
|
def self.config
|
14
13
|
InfluxdbSetup::Config.config
|
@@ -8,11 +8,6 @@ namespace :influxdb do
|
|
8
8
|
@influxdb_setup.create_db
|
9
9
|
end
|
10
10
|
|
11
|
-
desc "Setup the default and archives shard spaces"
|
12
|
-
task :setup_shard_spaces => [:config] do
|
13
|
-
@influxdb_setup.setup_shard_spaces
|
14
|
-
end
|
15
|
-
|
16
11
|
desc "Creates the service's user if it doesn't exist"
|
17
12
|
task :create_user => [:config] do
|
18
13
|
@influxdb_setup.create_user
|
@@ -30,7 +25,6 @@ namespace :influxdb do
|
|
30
25
|
|
31
26
|
desc "Run all the tasks to setup influxdb for the service"
|
32
27
|
task :setup => [:create_db,
|
33
|
-
:setup_shard_spaces,
|
34
28
|
:create_user,
|
35
29
|
:load_queries]
|
36
30
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: influxdb_setup
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 1.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Donald Plummer
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2016-04-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: influxdb
|
@@ -16,14 +16,14 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 0.
|
19
|
+
version: 0.2.3
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: 0.
|
26
|
+
version: 0.2.3
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: bundler
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -66,9 +66,23 @@ dependencies:
|
|
66
66
|
- - ">="
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: '0'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: pry
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - ">="
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '0'
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - ">="
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '0'
|
69
83
|
description:
|
70
84
|
email:
|
71
|
-
-
|
85
|
+
- dplummer@avvo.com
|
72
86
|
executables: []
|
73
87
|
extensions: []
|
74
88
|
extra_rdoc_files: []
|
@@ -76,6 +90,7 @@ files:
|
|
76
90
|
- ".gitignore"
|
77
91
|
- ".rspec"
|
78
92
|
- ".travis.yml"
|
93
|
+
- CHANGELOG.md
|
79
94
|
- Gemfile
|
80
95
|
- LICENSE.txt
|
81
96
|
- README.md
|
@@ -93,10 +108,9 @@ files:
|
|
93
108
|
- lib/influxdb_setup/load_queries.rb
|
94
109
|
- lib/influxdb_setup/mark_deploy.rb
|
95
110
|
- lib/influxdb_setup/railtie.rb
|
96
|
-
- lib/influxdb_setup/setup_shard_spaces.rb
|
97
111
|
- lib/influxdb_setup/version.rb
|
98
112
|
- lib/tasks/influxdb_setup.rake
|
99
|
-
homepage: https://github.com/
|
113
|
+
homepage: https://github.com/avvo/influxdb_setup
|
100
114
|
licenses:
|
101
115
|
- MIT
|
102
116
|
metadata: {}
|
@@ -116,7 +130,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
116
130
|
version: '0'
|
117
131
|
requirements: []
|
118
132
|
rubyforge_project:
|
119
|
-
rubygems_version: 2.
|
133
|
+
rubygems_version: 2.5.1
|
120
134
|
signing_key:
|
121
135
|
specification_version: 4
|
122
136
|
summary: Rake task for setting up an influxdb database and queries
|
@@ -1,51 +0,0 @@
|
|
1
|
-
module InfluxdbSetup
|
2
|
-
class SetupShardSpaces < Command
|
3
|
-
def call
|
4
|
-
db = @config.db_name
|
5
|
-
root = @config.build_client
|
6
|
-
|
7
|
-
expected_default_config = {
|
8
|
-
"name" => "default",
|
9
|
-
"database" => db,
|
10
|
-
"regex" => "/.*/",
|
11
|
-
"retentionPolicy" => "7d",
|
12
|
-
"shardDuration" => "1h",
|
13
|
-
"replicationFactor" => 1,
|
14
|
-
"split" => 1
|
15
|
-
}
|
16
|
-
|
17
|
-
expected_archive_config = {
|
18
|
-
"name" => "archives",
|
19
|
-
"database" => db,
|
20
|
-
"regex" => "/archive.*/",
|
21
|
-
"retentionPolicy" => "365d",
|
22
|
-
"shardDuration" => "7d",
|
23
|
-
"replicationFactor" => 1,
|
24
|
-
"split" => 1
|
25
|
-
}
|
26
|
-
|
27
|
-
actual_default_shard = root.get_shard_space(db, "default")
|
28
|
-
actual_archive_shard = root.get_shard_space(db, "archives")
|
29
|
-
|
30
|
-
if actual_default_shard.nil?
|
31
|
-
log "Creating default shard space"
|
32
|
-
root.create_shard_space(db, expected_default_config.except("database"))
|
33
|
-
elsif actual_default_shard != expected_default_config
|
34
|
-
log "Updating default shard space"
|
35
|
-
root.update_shard_space(db, "default", expected_default_config.except("database"))
|
36
|
-
else
|
37
|
-
log "Shard default up to date"
|
38
|
-
end
|
39
|
-
|
40
|
-
if actual_archive_shard.nil?
|
41
|
-
log "Creating archives shard space"
|
42
|
-
root.create_shard_space(db, expected_archive_config.except("database"))
|
43
|
-
elsif actual_archive_shard != expected_archive_config
|
44
|
-
log "Updating archives shard space"
|
45
|
-
root.update_shard_space(db, "archives", expected_archive_config.except("database"))
|
46
|
-
else
|
47
|
-
log "Shard archives up to date"
|
48
|
-
end
|
49
|
-
end
|
50
|
-
end
|
51
|
-
end
|