naminori 0.2.0 → 0.3.0

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