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 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