naminori 0.2.0 → 0.3.0

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: 9613921c03bceebc050a914297919fe5f775d604
4
- data.tar.gz: 35099756e8655cb6b4e5e701715588b000a67971
3
+ metadata.gz: 211f84aefe99edcff09ec2e6cc5c4566c82e58bb
4
+ data.tar.gz: 287a42d2cb81de3be55d92c7a7db79ab884471ac
5
5
  SHA512:
6
- metadata.gz: 7d7591a77ea8bd35e685a8d500b4d0443a3cfa6b96869f9b116cbf3e26e55d70fb2e8c135a2cb578d6506768075cf5985c9cef3fc6410660b29df236509bcc39
7
- data.tar.gz: c123f60e9b2424f6aac66ba3a5f4edb4dade94c93fd2816416a351020fa0e797541bcbf47662ff7c6f7346c8cc75266d6e0ee81cb6e078d99160bb663009bd3e
6
+ metadata.gz: 4317b5996c31afb0ec4adb1dd2adbcf2d1fa4f143c471797b77bb7996d3f3533e67f817962c4148feb39c5bdaf876544ebd7ee347d8d6100adfe1f971743a587
7
+ data.tar.gz: a4ed6a67a9787ceee61fa71dfc206122ae8f494f6aab7c6ca6fba5acec063d2f98f02d804d87ca69139c9c8bb7cde6837cefc7ebd53da3da1af9803e125b68f9
data/README.md CHANGED
@@ -21,30 +21,33 @@ Or install it yourself as:
21
21
  #### envent_example.rb
22
22
  1. check the event classification
23
23
  2. add or delete rip if these member-join or member-leave(faile)
24
- 3. enent target LoadBaranser is health_check with fetch member
24
+ 3. health_check with fetch member
25
25
 
26
26
  ```ruby
27
27
  #! /usr/bin/env ruby
28
28
  require 'rubygems'
29
29
  require 'naminori'
30
30
 
31
- Naminoti::Notifier.configure do
32
- webhook_url "https://hooks.slack.com/services/XXXXXX"
33
- channel "#pyama"
31
+ Naminori.configure do |config|
32
+ config.notifier :slack do
33
+ webhook_url "https://hooks.slack.com/services/XXXXXX"
34
+ channel "#pyama"
35
+ end
36
+
37
+ config.service :dns_server do
38
+ service :dns
39
+ protocol "udp"
40
+ vip "192.68.77.9"
41
+ end
42
+
43
+ config.service :dns_server do
44
+ service :dns
45
+ protocol "tcp"
46
+ vip "192.68.77.9"
47
+ end
34
48
  end
35
49
 
36
- service_options = {
37
- vip:"192.168.77.9",
38
- role: "dns",
39
- notifier: Naminori::Notifier.get_notifier("slack" ,notifier_options)
40
- }
41
-
42
- case
43
- when Naminori::Serf.role?("dns")
44
- Naminori::Service::Dns.event("lvs", service_options)
45
- when Naminori::Serf.role?("lb")
46
- Naminori::Service::Dns.health_check("lvs", service_options)
47
- end
50
+ Naminori.run
48
51
 
49
52
  ```
50
53
 
@@ -57,7 +60,7 @@ end
57
60
  "interface": "enp0s9",
58
61
  "discover": "cache-dns",
59
62
  "tags": {
60
- "role": "lb"
63
+ "role": "lb_server"
61
64
  },
62
65
  "log_level": "debug"
63
66
  }
@@ -72,55 +75,45 @@ end
72
75
  "interface": "enp0s8",
73
76
  "discover": "cache-dns",
74
77
  "tags": {
75
- "role": "dns"
78
+ "role": "dns_server"
76
79
  }
77
80
  }
78
81
  ```
79
82
 
80
- #### health_check_example.rb
81
- 1. Using cron to the health check of the service
82
- 2. Service is removed from the member if that is not healthy
83
- * Parameter [query, timeout ,retry]
84
-
85
- ```ruby
86
- #! /usr/bin/env ruby
87
- require 'rubygems'
88
- require 'naminori'
89
-
90
- service_options = { vip:"192.168.77.9", role: "dns" }
91
-
92
- Naminori::Service::Dns.health_check("lvs", service_options)
93
- ```
94
83
  ```zsh
95
84
  # crontab -l
96
85
  # Chef Name: health_check
97
86
  PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
98
- * * * * * for i in `seq 0 10 59`;do (sleep ${i}; /opt/serf/event_handlers/health_check_example.rb)& done;
87
+ * * * * * for i in `seq 0 10 59`;do (sleep ${i}; /opt/serf/event_handlers/event_example.rb)& done;
99
88
  ```
100
89
 
101
- ### Service Event Detail
90
+ ### default parameter
91
+ #### DNS
102
92
  ```
103
- Naminori::Service::Dns.event(lb_name, options)
93
+ {
94
+ lb: "lvs" # lb type
95
+ port: "53", # service port
96
+ protocol: "udp" # protocol
97
+ vip: "192.168.77.9", # service vip
98
+ method: "nat", # lvs_method gateway/ip/nat
99
+ query: "pepabo.com", # health_check_query
100
+ retry_c: 3, # health_check_retry_c_count
101
+ timeout: 3, # health_check_time_out
102
+ }
104
103
  ```
105
- * service_name:
106
- dns or http
107
- * lb_name:
108
- lvs
109
- * options
110
-
104
+ #### HTTP
111
105
  ```
112
- #dns default
113
- {
114
- role: "dns", # role name
115
- port: "53", # service port
116
- protocols: ["udp", "tcp"], # protocol(array)
117
- vip: "192.168.77.9", # service vip
118
- method: "gateway", # lvs_method gateway/ip/nat
119
- query: "pepabo.com", # health_check_query
120
- retry: 3, # health_check_retry_count
121
- timeout: 3, # health_check_time_out
122
- notifier: nil # notifier
123
- }
106
+ {
107
+ lb: "lvs",
108
+ port: "80",
109
+ protocol: "tcp",
110
+ vip: "192.168.77.9",
111
+ method: "nat",
112
+ query: "index.html",
113
+ retry_c: 3,
114
+ timeout: 3
115
+ }
124
116
  ```
117
+
125
118
  ## Author
126
119
  * pyama
@@ -1,15 +1,14 @@
1
1
  require "naminori/version"
2
+ require "naminori/attribute"
3
+ require 'naminori/configure'
2
4
  require 'naminori/serf'
3
- require 'naminori/lb'
4
5
  require 'naminori/lb/base'
5
6
  require 'naminori/lb/lvs'
6
- require 'naminori/service'
7
7
  require 'naminori/service/base'
8
8
  require 'naminori/service/configure'
9
9
  require 'naminori/service/dns'
10
10
  require 'naminori/service/http'
11
11
  require 'naminori/notifier'
12
- require 'naminori/notifier/base'
13
12
  require 'naminori/notifier/configure'
14
13
  require 'naminori/notifier/slack'
15
14
  require 'resolv'
@@ -17,5 +16,24 @@ require 'slack-notifier'
17
16
 
18
17
 
19
18
  module Naminori
20
- # Your code goes here...
19
+ def self.run
20
+ Naminori.configure.service.each do |s|
21
+ service = Object.const_get("Naminori::Service::#{s.service.to_s.capitalize}").new(s)
22
+ service.run
23
+ health_check(service)
24
+ end if Naminori.configure.service
25
+ end
26
+
27
+ def self.health_check(service)
28
+ if members = Naminori::Serf.get_alive_member_by_role(service.config.role.to_s)
29
+ members.each do |member|
30
+ ip = member[:ip]
31
+ if service.healty?(ip)
32
+ Object.const_get("Naminori::Lb::#{service.config.lb.to_s.capitalize}").add_member(ip, service)
33
+ elsif service.config.retry_c.times.all? { sleep 1; !service.healty?(ip) }
34
+ Object.const_get("Naminori::Lb::#{service.config.lb.to_s.capitalize}").delete_member(ip, service)
35
+ end
36
+ end
37
+ end
38
+ end
21
39
  end
@@ -0,0 +1,11 @@
1
+ module Naminori
2
+ module Attribute
3
+ def attribute(name)
4
+ define_method(name, ->(val=nil){
5
+ @config ||= {}
6
+ @config[name] = val if val
7
+ @config[name]
8
+ })
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,31 @@
1
+ module Naminori
2
+ class Configure
3
+ def initialize
4
+ @_config ||= {}
5
+ end
6
+
7
+ def self.resource(resource_name)
8
+ define_method(resource_name, ->(name=nil, &block){
9
+ if name
10
+ config = Object.const_get("Naminori::#{resource_name.capitalize}::Configure").new(name)
11
+ config.instance_eval(&block) if block
12
+ @_config[resource_name] ||= []
13
+ @_config[resource_name] << config
14
+ end
15
+ @_config[resource_name]
16
+ })
17
+ end
18
+
19
+ resource :service
20
+ resource :notifier
21
+ resource :lb
22
+ end
23
+
24
+ def self.configure(&block)
25
+ if block
26
+ @__config = Configure.new
27
+ @__config.instance_eval(&block)
28
+ end
29
+ @__config
30
+ end
31
+ end
@@ -9,9 +9,9 @@ module Naminori
9
9
  def delete_member(rip, service)
10
10
  raise "Called abstract method: add_member"
11
11
  end
12
-
13
- def notifier(type, options)
14
- message = "#{type} member ip:#{options[:rip]} protocol:#{options[:protocol]} in vip:#{options[:vip]}"
12
+
13
+ def notify(type, rip, service)
14
+ message = "#{type} member ip:#{rip} protocol:#{service.config.protocol} in vip:#{service.config.vip}"
15
15
  puts message
16
16
  Naminori::Notifier.notify(type, message)
17
17
  end
@@ -4,57 +4,38 @@ module Naminori
4
4
  class Lvs < Naminori::Lb::Base
5
5
  class << self
6
6
  def add_member(rip, service)
7
- transaction("add", lvs_option(rip, service)) if service.healty?(rip)
7
+ transaction("add", rip, service) if service.healty?(rip) && exist_ip?(service.config.vip, service) && !exist_ip?(rip, service)
8
8
  end
9
9
 
10
10
  def delete_member(rip, service)
11
- transaction("delete", lvs_option(rip, service))
11
+ transaction("delete", rip, service) if exist_ip?(rip, service)
12
12
  end
13
13
 
14
- def transaction(type, ops)
15
- ops[:protocols].collect do |protocol|
16
- merge_option = ops.merge({ protocol: protocol })
17
- if self.send("#{type}?", merge_option) && system("ipvsadm #{command_option(type, merge_option)}")
18
- notifier(type, merge_option)
19
- true
20
- end
21
- end.all? {|res| res }
22
- end
23
-
24
- def add?(ops)
25
- vip_exists?(ops) && !delete?(ops)
26
- end
27
-
28
- def delete?(ops)
29
- fetch_service(ops).each do |line|
30
- return true if line.match(/#{ops[:rip]}:/)
14
+ def transaction(type, rip, service)
15
+ if system("ipvsadm #{command_option(type, rip, service)}")
16
+ notify(type, rip, service)
31
17
  end
32
- false
33
18
  end
34
19
 
35
- def vip_exists?(ops)
36
- fetch_service(ops).each do |line|
37
- return true if line.match(/#{ops[:vip]}:/)
20
+ def exist_ip?(ip, service)
21
+ fetch_service(service).find do |line|
22
+ line.match(/#{ip}/)
38
23
  end
39
- false
40
24
  end
41
25
 
42
- def fetch_service(ops)
43
- service = `ipvsadm -Ln --#{ops[:protocol]}-service #{ops[:vip]}:#{ops[:port]}`.split("\n")
44
- raise "fetch errror!" unless service
45
- service
46
- end
47
-
48
- def lvs_option(rip, service)
49
- { service: service, vip: service.config.vip, rip: rip, protocols: service.config.protocols, port: service.config.port, method: service.config.method }
26
+ def fetch_service(service)
27
+ unless result = `ipvsadm -Ln --#{service.config.protocol}-service #{service.config.vip}:#{service.config.port}`.split("\n")
28
+ raise "fetch errror!"
29
+ end
30
+ result
50
31
  end
51
32
 
52
- def command_option(type, ops)
33
+ def command_option(type, rip, service)
53
34
  case
54
35
  when type == "add"
55
- "--#{type}-server --#{ops[:protocol]}-service #{ops[:vip]}:#{ops[:port]} -r #{ops[:rip]}:#{ops[:port]} #{method_option(ops[:method])}"
36
+ "--#{type}-server --#{service.config.protocol}-service #{service.config.vip}:#{service.config.port} -r #{rip}:#{service.config.port} #{method_option(service.config.method)}"
56
37
  when type == "delete"
57
- "--#{type}-server --#{ops[:protocol]}-service #{ops[:vip]}:#{ops[:port]} -r #{ops[:rip]}:#{ops[:port]}"
38
+ "--#{type}-server --#{service.config.protocol}-service #{service.config.vip}:#{service.config.port} -r #{rip}:#{service.config.port}"
58
39
  end
59
40
  end
60
41
 
@@ -68,7 +49,6 @@ module Naminori
68
49
  "-i"
69
50
  end
70
51
  end
71
-
72
52
  end
73
53
  end
74
54
  end
@@ -3,23 +3,11 @@ module Naminori
3
3
  module Notifier
4
4
  class << self
5
5
  def notify(type, message)
6
- case
7
- when Naminori::Notifier.config.slack_enable?
8
- get_notifier("slack").notify(type, message)
9
- end
10
- end
11
-
12
- def get_notifier(notifier)
13
- case notifier
14
- when "slack"
15
- Naminori::Notifier::Slack.new
16
- end
17
- end
18
-
19
- def configure(&block)
20
- Naminori::Notifier.config(&block)
6
+ return true unless Naminori.configure.notifier
7
+ Naminori.configure.notifier.all? do |config|
8
+ Object.const_get("Naminori::Notifier::#{config.type.to_s.capitalize}").notify(type, message, config)
9
+ end
21
10
  end
22
11
  end
23
12
  end
24
-
25
13
  end
@@ -1,38 +1,19 @@
1
1
  #! /usr/bin/env ruby
2
+ require 'naminori'
2
3
  module Naminori
3
4
  module Notifier
4
5
  class Configure
5
- def clear
6
- instance_variables.each do |v|
7
- instance_variable_set(v, nil)
8
- end
9
- end
10
-
11
- def slack_enable?
12
- webhook_url && channel && user
13
- end
6
+ extend Naminori::Attribute
7
+ attr_accessor :config
14
8
 
15
- def webhook_url(url=nil)
16
- @_webhook_url = url if url
17
- @_webhook_url
9
+ def initialize(name)
10
+ type name
18
11
  end
19
12
 
20
- def channel(channel=nil)
21
- @_channel = channel if channel
22
- @_channel
23
- end
24
-
25
- def user(user=nil)
26
- @_user = user if user
27
- @_user
28
- end
29
- end
30
-
31
- def self.config(&block)
32
- @_config ||= Naminori::Notifier::Configure.new
33
- @_config.instance_eval(&block) if block
34
- @_config
13
+ attribute :type
14
+ attribute :webhook_url
15
+ attribute :channel
16
+ attribute :user
35
17
  end
36
18
  end
37
-
38
19
  end
@@ -1,19 +1,21 @@
1
1
  #! /usr/bin/env ruby
2
2
  module Naminori
3
3
  module Notifier
4
- class Slack < Base
5
- def notify(type, message)
6
- icon = type == "add" ? ":white_check_mark:" : ":no_entry_sign:"
7
- notifier = ::Slack::Notifier.new(
8
- Naminori::Notifier.config.webhook_url,
9
- {
10
- channel: Naminori::Notifier.config.channel,
11
- username: Naminori::Notifier.config.user
12
- }
13
- )
14
- notifier.ping icon + message, icon_emoji: ":sparkle:"
15
- rescue => e
16
- p e
4
+ class Slack
5
+ class << self
6
+ def notify(type, message, config)
7
+ icon = type == "add" ? ":white_check_mark:" : ":no_entry_sign:"
8
+ notifier = ::Slack::Notifier.new(
9
+ config.webhook_url,
10
+ {
11
+ channel: config.channel,
12
+ username: config.user
13
+ }
14
+ )
15
+ notifier.ping icon + message, icon_emoji: ":sparkle:"
16
+ rescue => e
17
+ p e
18
+ end
17
19
  end
18
20
  end
19
21
  end
@@ -2,13 +2,16 @@
2
2
  module Naminori
3
3
  class Serf
4
4
  @@event = nil
5
+
5
6
  class << self
6
7
  def gets
7
8
  @@event ||= STDIN.gets.chomp.match(/(?<node>.+?)\t(?<ip>.+?)\t(?<role>.+?)\t/)
9
+ rescue
10
+ @@event
8
11
  end
9
12
 
10
13
  def event_message
11
- puts "event:#{ENV['SERF_EVENT']} value:#{get}"
14
+ puts "event:#{ENV['SERF_EVENT']} value:#{gets}" if gets
12
15
  end
13
16
 
14
17
  def join?
@@ -24,7 +27,7 @@ module Naminori
24
27
  end
25
28
 
26
29
  def role?(role)
27
- gets[:role] == role
30
+ gets && gets[:role] == role
28
31
  end
29
32
 
30
33
  def get_alive_member_by_role(role)
@@ -3,41 +3,23 @@ module Naminori
3
3
  class Service
4
4
  class Base
5
5
  attr_reader :config
6
- class << self
7
- def event(lb_name, options)
6
+ def initialize(config_klass)
7
+ config_klass.config = default_config.merge(config_klass.config)
8
+ @config = config_klass
9
+ end
10
+
11
+ def run
12
+ if Naminori::Serf.role?(config.role.to_s)
13
+ ip = Naminori::Serf.gets[:ip]
8
14
  case
9
15
  when Naminori::Serf.join?
10
- Naminori::Lb.get_lb(lb_name).add_member(event_ip, self.new(options))
16
+ Object.const_get("Naminori::Lb::#{config.lb.to_s.capitalize}").add_member(ip, self)
11
17
  when Naminori::Serf.leave? || Naminori::Serf.failed?
12
- Naminori::Lb.get_lb(lb_name).delete_member(event_ip, self.new(options))
18
+ Object.const_get("Naminori::Lb::#{config.lb.to_s.capitalize}").delete_member(ip, self)
13
19
  end
14
20
  end
15
-
16
- def event_ip
17
- Naminori::Serf.gets[:ip]
18
- end
19
-
20
- def health_check(lb_name, options)
21
- service = self.new(options)
22
- members = Naminori::Serf.get_alive_member_by_role(service.config.role)
23
- members.each do |member|
24
- ip = member[:ip]
25
- if service.healty?(ip)
26
- Naminori::Lb.get_lb(lb_name).add_member(ip, service)
27
- elsif service.config.retry.times.all? { sleep 1; !service.healty?(ip) }
28
- Naminori::Lb.get_lb(lb_name).delete_member(ip, service)
29
- end
30
- end if members
31
- end
32
-
33
- end
34
-
35
- def initialize(options)
36
- @config = Naminori::Service::Configure.new(
37
- default_config.merge(options)
38
- )
39
21
  end
40
-
22
+
41
23
  def healty?(ip)
42
24
  raise "Called abstract method: healty?"
43
25
  end
@@ -45,7 +27,7 @@ module Naminori
45
27
  def default_config
46
28
  raise "Called abstract method: default_config"
47
29
  end
48
-
30
+
49
31
  end
50
32
  end
51
33
  end
@@ -2,17 +2,22 @@
2
2
  module Naminori
3
3
  class Service
4
4
  class Configure
5
- attr_reader :role, :port, :protocols, :vip, :method, :query, :retry, :timeout
6
- def initialize(options)
7
- @role = options[:role]
8
- @port = options[:port]
9
- @protocols = options[:protocols]
10
- @vip = options[:vip]
11
- @method = options[:method]
12
- @query = options[:query]
13
- @retry = options[:retry]
14
- @timeout = options[:timeout]
5
+ extend Naminori::Attribute
6
+ attr_accessor :config
7
+ def initialize(name)
8
+ role name
15
9
  end
10
+
11
+ attribute :role
12
+ attribute :service
13
+ attribute :lb
14
+ attribute :port
15
+ attribute :protocol
16
+ attribute :vip
17
+ attribute :method
18
+ attribute :query
19
+ attribute :retry_c
20
+ attribute :timeout
16
21
  end
17
22
  end
18
23
  end
@@ -2,26 +2,26 @@
2
2
  module Naminori
3
3
  class Service
4
4
  class Dns < Naminori::Service::Base
5
-
6
5
  def healty?(ip)
7
6
  dns = Resolv::DNS.new(:nameserver => ip )
8
7
  dns.timeouts = config.timeout
9
8
  begin
10
- dns.getaddress(@config.query)
11
- rescue => e
9
+ dns.getaddress(config.query)
10
+ rescue
12
11
  false
13
12
  end
14
13
  end
15
14
 
16
15
  def default_config
17
16
  {
17
+ lb: "lvs",
18
18
  role: "dns",
19
19
  port: "53",
20
- protocols: ["udp", "tcp"],
20
+ protocol: "udp",
21
21
  vip: "192.168.77.9",
22
22
  method: "nat",
23
23
  query: "pepabo.com",
24
- retry: 3,
24
+ retry_c: 3,
25
25
  timeout: 3
26
26
  }
27
27
  end
@@ -8,21 +8,22 @@ module Naminori
8
8
  http.open_timeout = config.timeout
9
9
 
10
10
  begin
11
- http.get("/#{@query}")
12
- rescue => e
11
+ http.get("/#{config.query}")
12
+ rescue
13
13
  false
14
14
  end
15
15
  end
16
16
 
17
17
  def default_config
18
18
  {
19
+ lb: "lvs",
19
20
  role: "http",
20
21
  port: "80",
21
- protocols: ["tcp"],
22
+ protocol: "tcp",
22
23
  vip: "192.168.77.9",
23
24
  method: "nat",
24
25
  query: "index.html",
25
- retry: 3,
26
+ retry_c: 3,
26
27
  timeout: 3
27
28
  }
28
29
  end
@@ -1,3 +1,3 @@
1
1
  module Naminori
2
- VERSION = "0.2.0"
2
+ VERSION = "0.3.0"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: naminori
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - kazuhiko yamahsita
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-07-09 00:00:00.000000000 Z
11
+ date: 2015-08-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: slack-notifier
@@ -80,16 +80,14 @@ files:
80
80
  - README.md
81
81
  - Rakefile
82
82
  - lib/naminori.rb
83
- - lib/naminori/lb.rb
83
+ - lib/naminori/attribute.rb
84
+ - lib/naminori/configure.rb
84
85
  - lib/naminori/lb/base.rb
85
86
  - lib/naminori/lb/lvs.rb
86
- - lib/naminori/naminori.rb
87
87
  - lib/naminori/notifier.rb
88
- - lib/naminori/notifier/base.rb
89
88
  - lib/naminori/notifier/configure.rb
90
89
  - lib/naminori/notifier/slack.rb
91
90
  - lib/naminori/serf.rb
92
- - lib/naminori/service.rb
93
91
  - lib/naminori/service/base.rb
94
92
  - lib/naminori/service/configure.rb
95
93
  - lib/naminori/service/dns.rb
@@ -1,13 +0,0 @@
1
- #! /usr/bin/env ruby
2
- module Naminori
3
- class Lb
4
- class << self
5
- def get_lb(lb_name)
6
- case lb_name
7
- when "lvs"
8
- Naminori::Lb::Lvs
9
- end
10
- end
11
- end
12
- end
13
- end
@@ -1,14 +0,0 @@
1
- #! /usr/bin/env ruby
2
- require File.dirname(__FILE__) + '/serf'
3
- require File.dirname(__FILE__) + '/lb'
4
- require File.dirname(__FILE__) + '/lb/base'
5
- require File.dirname(__FILE__) + '/lb/lvs'
6
- require File.dirname(__FILE__) + '/service'
7
- require File.dirname(__FILE__) + '/service/base'
8
- require File.dirname(__FILE__) + '/service/configure'
9
- require File.dirname(__FILE__) + '/service/dns'
10
- require File.dirname(__FILE__) + '/service/http'
11
- require 'resolv'
12
- require 'net/http'
13
- require 'net/https'
14
-
@@ -1,10 +0,0 @@
1
- #! /usr/bin/env ruby
2
- module Naminori
3
- module Notifier
4
- class Base
5
- def notifier(type, message)
6
- raise "Called abstract method: add_server"
7
- end
8
- end
9
- end
10
- end
@@ -1,19 +0,0 @@
1
- #! /usr/bin/env ruby
2
- module Naminori
3
- class Service
4
- class << self
5
- def event(service_name, lb_name, options={})
6
- get_service(service_name).event(lb_name, options)
7
- end
8
-
9
- def get_service(service_name)
10
- case service_name
11
- when "dns"
12
- Naminori::Service::Dns
13
- when "http"
14
- Naminori::Service::Http
15
- end
16
- end
17
- end
18
- end
19
- end