skalera-services 0.2.4 → 0.2.5
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/skalera/services/influxdb.rb +18 -8
- data/lib/skalera/services/postgres.rb +13 -4
- data/lib/skalera/services/redis.rb +17 -7
- data/lib/skalera/services/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: 0274e8b794d6a41f2b67f9d71df9ccfca37e6d78
|
4
|
+
data.tar.gz: 9bfcbb458fb88f1cdd96d72b217e56556855dd5e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4c68bd0f591322fb5d4f2de9883793ebdd01a50c7044a7d82f590a6048c4cbbae036f6ebf05545bcf4c156b1d4d443cc8a63659f53af927d4b5563b4f42cde42
|
7
|
+
data.tar.gz: 04e8f56aac5a66b9c2127398f628464c93e810a6706cedd1da3f251d3427e8629877d5c98991f023184a9067f026f85f5d4717e43c6cd3f816ae9e0bc16a98f2
|
@@ -1,3 +1,4 @@
|
|
1
|
+
require 'uri'
|
1
2
|
require 'influxdb'
|
2
3
|
|
3
4
|
module Skalera
|
@@ -5,15 +6,24 @@ module Skalera
|
|
5
6
|
class InfluxDB
|
6
7
|
SERVICE_NAME = 'influxdb-8086'
|
7
8
|
def self.instance(database)
|
8
|
-
|
9
|
+
url = ENV['SKALERA_INFLUXDB_URL']
|
10
|
+
if url
|
11
|
+
uri = URI(url)
|
12
|
+
host = uri.host
|
13
|
+
port = uri.port || '8086'
|
14
|
+
user = uri.user
|
15
|
+
password = uri.password
|
16
|
+
else
|
17
|
+
influxdb_config = Diplomat::Service.get(SERVICE_NAME)
|
18
|
+
host = influxdb_config.Address
|
19
|
+
port = influxdb_config.ServicePort
|
20
|
+
user = key('user')
|
21
|
+
password = key('password')
|
22
|
+
end
|
9
23
|
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
user: key('user'),
|
14
|
-
password: key('password'))
|
15
|
-
# does not need an at_exit, as the influx clients takes care of it
|
16
|
-
influxdb
|
24
|
+
::InfluxDB::Client.new(database, host: host, port: port, user: user, password: password)
|
25
|
+
rescue URI::InvalidURIError => e
|
26
|
+
STDERR.puts "ERROR: could not parse URL: #{e.message}"
|
17
27
|
rescue Diplomat::KeyNotFound
|
18
28
|
STDERR.puts "ERROR: service not found: #{SERVICE_NAME}"
|
19
29
|
end
|
@@ -1,3 +1,4 @@
|
|
1
|
+
require 'uri'
|
1
2
|
require 'sequel'
|
2
3
|
|
3
4
|
module Skalera
|
@@ -5,12 +6,20 @@ module Skalera
|
|
5
6
|
class Postgres
|
6
7
|
SERVICE_NAME = 'postgres'
|
7
8
|
def self.instance(database)
|
8
|
-
|
9
|
+
if ENV['SKALERA_DB_URL']
|
10
|
+
url = ENV['SKALERA_DB_URL']
|
11
|
+
else
|
12
|
+
postgres_config = Diplomat::Service.get(SERVICE_NAME)
|
9
13
|
|
10
|
-
|
11
|
-
|
14
|
+
uri = URI('postgres:/')
|
15
|
+
uri.host = postgres_config.Address
|
16
|
+
uri.port = postgres_config.ServicePort
|
17
|
+
uri.user = key('user')
|
18
|
+
uri.password = key('password')
|
19
|
+
uri.path = "/#{database}"
|
20
|
+
url = uri.to_s
|
21
|
+
end
|
12
22
|
|
13
|
-
url = "postgres://#{key('user')}:#{key('password')}@#{host}:#{port}/#{database}"
|
14
23
|
db = ::Sequel.connect(url)
|
15
24
|
at_exit { db.disconnect }
|
16
25
|
db
|
@@ -1,3 +1,4 @@
|
|
1
|
+
require 'uri'
|
1
2
|
require 'redis'
|
2
3
|
|
3
4
|
module Skalera
|
@@ -5,20 +6,29 @@ module Skalera
|
|
5
6
|
class Redis
|
6
7
|
SERVICE_NAME = 'redis'
|
7
8
|
def self.instance(database = 0)
|
8
|
-
|
9
|
+
if ENV['SKALERA_REDIS_URL']
|
10
|
+
redis_url = ENV['SKALERA_REDIS_URL']
|
11
|
+
else
|
12
|
+
redis_config = Diplomat::Service.get(SERVICE_NAME)
|
13
|
+
uri = URI('redis:/')
|
14
|
+
uri.host = redis_config.Address
|
15
|
+
uri.port = redis_config.ServicePort
|
16
|
+
uri.path = "/#{database}"
|
17
|
+
if password
|
18
|
+
uri.user = 'redis' # this is not used, but URI require a user when you have a password
|
19
|
+
uri.password = password
|
20
|
+
end
|
9
21
|
|
10
|
-
|
22
|
+
redis_url = uri.to_s
|
23
|
+
end
|
24
|
+
|
25
|
+
redis = ::Redis.new(url: redis_url)
|
11
26
|
at_exit { redis.quit }
|
12
27
|
redis
|
13
28
|
rescue Diplomat::KeyNotFound
|
14
29
|
STDERR.puts "ERROR: service not found: #{SERVICE_NAME}"
|
15
30
|
end
|
16
31
|
|
17
|
-
def self.url(password, host, port, database)
|
18
|
-
pwd = password ? "#{password}:" : ''
|
19
|
-
"redis://#{pwd}#{host}:#{port}/#{database}"
|
20
|
-
end
|
21
|
-
|
22
32
|
def self.password
|
23
33
|
Diplomat.get('redis/password')
|
24
34
|
rescue Diplomat::KeyNotFound
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: skalera-services
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Martin Englund
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-04-
|
11
|
+
date: 2016-04-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: airbrake
|