odania 0.0.23 → 0.0.24

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: d506a9221ab23566539c2d3c4ef05591c9c52708
4
- data.tar.gz: a875aed746071e7c03818b937af551bd59eae577
3
+ metadata.gz: 7556edee100f621b9f326c7b21df1a33f9315beb
4
+ data.tar.gz: 73108f618ec93623d8b638443910eee6ed3a8ecb
5
5
  SHA512:
6
- metadata.gz: c8808a430e8ace883a91f90fdb4300533b130e482ce1db76287966c9f5941ba8a97dc539e4364dd30422fe1d75b4764fc5605a43cc134dc47bf4b2598aa31155
7
- data.tar.gz: 9ecdd650491184c8cb6ce4540c91c03c10b1c5ee5bca7fd1e87487501a3432c98b3460031cfd45228474f1670006d4ba8ad7060d6f0225981da1531c809d76c4
6
+ metadata.gz: a287b037fdc60d676f7f8030a05c275ba3ac7b08f86cf7f8a349f896eb695e8cb01c6a0f5f1a5a83186b82a159d7be9c72f5da9410c90cbc6cc8a1e6f295748d
7
+ data.tar.gz: 1418a94ca5a651178d94454bbf9b4c8f1f1a5b773b998757d68775669a7db4eb14f9f501322ebc790c04bfb827e99cfb78922262949adef1a07329f63dbe9a2e
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- odania (0.0.23)
4
+ odania (0.0.24)
5
5
  deep_merge
6
6
  diplomat
7
7
  erubis
@@ -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
- puts "Deregister: #{instance}" if $debug
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
- puts "PLUGIN NAME #{plugin_name} - #{instances.count}" if $debug
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
- puts 'Error loading configuration'
46
- puts 'Config start ' + '+' * 50
45
+ $logger.error 'Error loading configuration'
46
+ $logger.error 'Config start ' + '+' * 50
47
47
  puts JSON.pretty_generate config
48
- puts 'Config end ' + '+' * 50
49
- puts 'Error start ' + '+' * 50
50
- puts e.inspect
51
- puts 'Error end ' + '+' * 50
52
- puts 'Error backtrace start ' + '+' * 50
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
- puts line
54
+ $logger.error line
55
55
  end
56
- puts 'Error backtrace end ' + '+' * 50
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
- puts 'Loading plugin configs from consul'
62
+ $logger.info 'Loading plugin configs from consul'
63
63
  load_from_consul
64
64
 
65
- puts 'Generating global config'
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
- puts 'Loading configuration'
78
+ $logger.info 'Loading configuration'
79
79
  puts JSON.pretty_generate plugin_cfg
80
80
  end
81
81
 
@@ -21,7 +21,7 @@ module Odania
21
21
  end
22
22
 
23
23
  def director
24
- puts self.inspect if self.group_name.nil?
24
+ $logger.info self.inspect if self.group_name.nil?
25
25
  "#{Odania.varnish_sanitize(self.group_name)}_director"
26
26
  end
27
27
  end
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
- puts "Consul URL: #{consul_url}" if $debug
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
- puts "SERVICES: #{JSON.pretty_generate services}" if $debug
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
- puts 'Service registered' if $debug
81
+ $logger.info 'Service registered' if $debug
82
82
  else
83
- puts 'Error registering service' if $debug
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
@@ -50,23 +50,23 @@ module Odania
50
50
  gen.write(out_dir)
51
51
 
52
52
  puts
53
- puts 'Registering internal varnish plugin'
53
+ $logger.info 'Registering internal varnish plugin'
54
54
  register_plugin
55
55
  end
56
56
 
57
57
  def reload_config
58
- puts 'Updating varnish config'
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
- puts "CMD: #{cmd}"
66
- puts `#{cmd}`
65
+ $logger.info "CMD: #{cmd}"
66
+ $logger.info `#{cmd}`
67
67
  cmd = "varnishadm vcl.use reload#{current_number}"
68
- puts "CMD: #{cmd}"
69
- puts `#{cmd}`
68
+ $logger.info "CMD: #{cmd}"
69
+ $logger.info `#{cmd}`
70
70
  end
71
71
 
72
72
  private
@@ -1,3 +1,3 @@
1
1
  module Odania
2
- VERSION = '0.0.23'
2
+ VERSION = '0.0.24'
3
3
  end
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 <%= Odania.varnish_sanitize(group_name) %>_<%= Odania.varnish_sanitize(backend.instance_name) %> {
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.23
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-09 00:00:00.000000000 Z
11
+ date: 2016-03-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler