odania 0.0.23 → 0.0.24
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/Gemfile.lock +1 -1
- data/features/step_definitions/plugin_steps.rb +1 -1
- data/lib/odania/config/global_config.rb +13 -13
- data/lib/odania/config/page.rb +1 -1
- data/lib/odania/consul.rb +4 -4
- data/lib/odania/varnish/generators/generate_backend_vcl.rb +17 -0
- data/lib/odania/varnish.rb +6 -6
- data/lib/odania/version.rb +1 -1
- data/lib/odania.rb +2 -0
- data/templates/varnish/backend.vcl.erb +3 -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: 7556edee100f621b9f326c7b21df1a33f9315beb
|
4
|
+
data.tar.gz: 73108f618ec93623d8b638443910eee6ed3a8ecb
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a287b037fdc60d676f7f8030a05c275ba3ac7b08f86cf7f8a349f896eb695e8cb01c6a0f5f1a5a83186b82a159d7be9c72f5da9410c90cbc6cc8a1e6f295748d
|
7
|
+
data.tar.gz: 1418a94ca5a651178d94454bbf9b4c8f1f1a5b773b998757d68775669a7db4eb14f9f501322ebc790c04bfb827e99cfb78922262949adef1a07329f63dbe9a2e
|
data/Gemfile.lock
CHANGED
@@ -7,7 +7,7 @@ Given(/^I initialize the gem$/) do
|
|
7
7
|
Odania.plugin.get_all.each_pair do |name, instances|
|
8
8
|
instances.each do |instance|
|
9
9
|
if instance.ServiceName.start_with? 'test-plugin'
|
10
|
-
|
10
|
+
$logger.info "Deregister: #{instance}" if $debug
|
11
11
|
Odania.plugin.deregister instance.ServiceID
|
12
12
|
end
|
13
13
|
end
|
@@ -30,7 +30,7 @@ module Odania
|
|
30
30
|
|
31
31
|
def load_from_consul
|
32
32
|
Odania.plugin.get_all.each_pair do |plugin_name, instances|
|
33
|
-
|
33
|
+
$logger.info "PLUGIN NAME #{plugin_name} - #{instances.count}" if $debug
|
34
34
|
instances.each do |instance|
|
35
35
|
add_backend(instance)
|
36
36
|
end
|
@@ -42,27 +42,27 @@ module Odania
|
|
42
42
|
puts JSON.pretty_generate config if $debug
|
43
43
|
self.add_plugin_config(config)
|
44
44
|
rescue => e
|
45
|
-
|
46
|
-
|
45
|
+
$logger.error 'Error loading configuration'
|
46
|
+
$logger.error 'Config start ' + '+' * 50
|
47
47
|
puts JSON.pretty_generate config
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
48
|
+
$logger.error 'Config end ' + '+' * 50
|
49
|
+
$logger.error 'Error start ' + '+' * 50
|
50
|
+
$logger.error e.inspect
|
51
|
+
$logger.error 'Error end ' + '+' * 50
|
52
|
+
$logger.error 'Error backtrace start ' + '+' * 50
|
53
53
|
e.backtrace.each do |line|
|
54
|
-
|
54
|
+
$logger.error line
|
55
55
|
end
|
56
|
-
|
56
|
+
$logger.error 'Error backtrace end ' + '+' * 50
|
57
57
|
end
|
58
58
|
end
|
59
59
|
end
|
60
60
|
|
61
61
|
def generate_global_config
|
62
|
-
|
62
|
+
$logger.info 'Loading plugin configs from consul'
|
63
63
|
load_from_consul
|
64
64
|
|
65
|
-
|
65
|
+
$logger.info 'Generating global config'
|
66
66
|
config = self.dump
|
67
67
|
puts JSON.pretty_generate config if $debug
|
68
68
|
Odania.plugin.set_global_config config
|
@@ -75,7 +75,7 @@ module Odania
|
|
75
75
|
group_name = plugin_cfg['plugin-config']['name']
|
76
76
|
|
77
77
|
if $debug
|
78
|
-
|
78
|
+
$logger.info 'Loading configuration'
|
79
79
|
puts JSON.pretty_generate plugin_cfg
|
80
80
|
end
|
81
81
|
|
data/lib/odania/config/page.rb
CHANGED
data/lib/odania/consul.rb
CHANGED
@@ -5,7 +5,7 @@ module Odania
|
|
5
5
|
def initialize(consul_url)
|
6
6
|
consul_url = ENV['CONSUL_ADDR'] if consul_url.nil?
|
7
7
|
consul_url = 'http://consul:8500' if consul_url.nil?
|
8
|
-
|
8
|
+
$logger.info "Consul URL: #{consul_url}" if $debug
|
9
9
|
Diplomat.configure do |config|
|
10
10
|
# Set up a custom Consul URL
|
11
11
|
config.url = consul_url
|
@@ -59,7 +59,7 @@ module Odania
|
|
59
59
|
Diplomat::Service.get_all.each_pair do |key, _value|
|
60
60
|
services[key.to_s] = get_all_for(key)
|
61
61
|
end
|
62
|
-
|
62
|
+
$logger.info "SERVICES: #{JSON.pretty_generate services}" if $debug
|
63
63
|
services
|
64
64
|
end
|
65
65
|
|
@@ -78,9 +78,9 @@ module Odania
|
|
78
78
|
|
79
79
|
def register(consul_config)
|
80
80
|
if Diplomat::Service.register consul_config
|
81
|
-
|
81
|
+
$logger.info 'Service registered' if $debug
|
82
82
|
else
|
83
|
-
|
83
|
+
$logger.error 'Error registering service'
|
84
84
|
end
|
85
85
|
end
|
86
86
|
|
@@ -6,6 +6,8 @@ module Odania
|
|
6
6
|
self.default_backend = default_backend
|
7
7
|
self.backend_groups = backend_groups
|
8
8
|
self.template = File.new("#{BASE_DIR}/templates/varnish/backend.vcl.erb").read
|
9
|
+
|
10
|
+
@backend_names = []
|
9
11
|
end
|
10
12
|
|
11
13
|
def core_backends
|
@@ -20,6 +22,21 @@ module Odania
|
|
20
22
|
core_backends
|
21
23
|
end
|
22
24
|
|
25
|
+
def backend_name_for(group_name, instance_name)
|
26
|
+
backend_name = "#{Odania.varnish_sanitize(group_name)}_#{Odania.varnish_sanitize(instance_name)}"
|
27
|
+
@backend_names << backend_name
|
28
|
+
backend_name
|
29
|
+
end
|
30
|
+
|
31
|
+
def backend_name_already_taken(group_name, instance_name)
|
32
|
+
backend_name = "#{Odania.varnish_sanitize(group_name)}_#{Odania.varnish_sanitize(instance_name)}"
|
33
|
+
if @backend_names.include? backend_name
|
34
|
+
$logger.error "The Backend #{backend_name} is already defined!"
|
35
|
+
return true
|
36
|
+
end
|
37
|
+
false
|
38
|
+
end
|
39
|
+
|
23
40
|
def render
|
24
41
|
Erubis::Eruby.new(self.template).result(binding)
|
25
42
|
end
|
data/lib/odania/varnish.rb
CHANGED
@@ -50,23 +50,23 @@ module Odania
|
|
50
50
|
gen.write(out_dir)
|
51
51
|
|
52
52
|
puts
|
53
|
-
|
53
|
+
$logger.info 'Registering internal varnish plugin'
|
54
54
|
register_plugin
|
55
55
|
end
|
56
56
|
|
57
57
|
def reload_config
|
58
|
-
|
58
|
+
$logger.info 'Updating varnish config'
|
59
59
|
current_number = 0
|
60
60
|
current_number = File.read('/tmp/current_varnish_config_number').to_i if File.exist? '/tmp/current_varnish_config_number'
|
61
61
|
current_number += 1
|
62
62
|
File.write '/tmp/current_varnish_config_number', current_number
|
63
63
|
|
64
64
|
cmd = "varnishadm vcl.load reload#{current_number} /etc/varnish/default.vcl"
|
65
|
-
|
66
|
-
|
65
|
+
$logger.info "CMD: #{cmd}"
|
66
|
+
$logger.info `#{cmd}`
|
67
67
|
cmd = "varnishadm vcl.use reload#{current_number}"
|
68
|
-
|
69
|
-
|
68
|
+
$logger.info "CMD: #{cmd}"
|
69
|
+
$logger.info `#{cmd}`
|
70
70
|
end
|
71
71
|
|
72
72
|
private
|
data/lib/odania/version.rb
CHANGED
data/lib/odania.rb
CHANGED
@@ -7,10 +7,12 @@ require 'public_suffix'
|
|
7
7
|
require 'deep_merge'
|
8
8
|
require 'json'
|
9
9
|
require 'socket'
|
10
|
+
require 'logger'
|
10
11
|
|
11
12
|
BASE_DIR = File.absolute_path File.join File.dirname(__FILE__), '..'
|
12
13
|
ENVIRONMENT = ENV['ENVIRONMENT'].nil? ? 'development' : ENV['ENVIRONMENT']
|
13
14
|
LOCAL_TEST_MODE = 'development'.eql?(ENVIRONMENT) unless defined? LOCAL_TEST_MODE
|
15
|
+
$logger = Logger.new(STDOUT)
|
14
16
|
|
15
17
|
module Odania
|
16
18
|
CORE_PLUGIN_NAME = 'odania-core'
|
@@ -25,12 +25,14 @@ backend default {
|
|
25
25
|
|
26
26
|
<% backend_groups.each_pair do |group_name, backend_group| %>
|
27
27
|
<% backend_group.backends.each do |backend| %>
|
28
|
+
<% unless backend_name_already_taken(group_name, backend.instance_name) %>
|
28
29
|
|
29
|
-
backend <%=
|
30
|
+
backend <%= backend_name_for(group_name, backend.instance_name) %> {
|
30
31
|
.host = "<%= backend.host %>";
|
31
32
|
.port = "<%= backend.port %>";
|
32
33
|
.probe = www_probe;
|
33
34
|
}
|
35
|
+
<% end %>
|
34
36
|
<% end %>
|
35
37
|
<% end %>
|
36
38
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: odania
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.24
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Mike Petersen
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-03-
|
11
|
+
date: 2016-03-10 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|