kannel_monitor 0.0.2 → 0.0.3

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,15 +1,7 @@
1
1
  ---
2
- !binary "U0hBMQ==":
3
- metadata.gz: !binary |-
4
- YTlmYzBjMTU4YzM4NmIxMGQxOTgxZTUyMmYxM2Q5ZjExZGQ1ZTI0ZQ==
5
- data.tar.gz: !binary |-
6
- NTE0Y2Y4MWFiNWMzZDA1NWJkMWI5NzQ0YzA4NDY4ZjlhOThhN2UzZA==
2
+ SHA1:
3
+ metadata.gz: 82db24c8c686e9d29c756c9bbcf60c6dd3efc8b6
4
+ data.tar.gz: 97fba3e31c762255a6d21c73674bf285e3cc5853
7
5
  SHA512:
8
- metadata.gz: !binary |-
9
- NzFhZTgwNzhmNmRkZmFkMThiOTc0MWI3Mzc4ZmM5M2E3ZDk5MmNlNmMyZjMz
10
- MGUzYjM3MDZjYzhhZWFhZDFlYTczNGIzMmVmNmRjZTQ5N2VkODg2NTRlMjZi
11
- NGVkZWYxMWFhZTg1NTQ4ZDg1MGU4MWQxMTRiYjk1ZjIyYjMxZTM=
12
- data.tar.gz: !binary |-
13
- MDg0ZDNlNmUxNDM5YTBhYmVkOWE2ZDNmZDc0MjNjNjJjNzRlOWRhZjc4ZmNm
14
- YTJlYmY1ZDc4OTkxMzAwNDQwN2E1ZjNjZTA3MTBlNmExMWIwYjllZTM0MTlj
15
- NWZiNTE2YWFjMGVlYmM0ZTBjMjhjOTg3N2U2Yzg0ZTUyMGVlODY=
6
+ metadata.gz: bc8481e173bec7d7b713e01af7604de5873bdf3f8efd79c69b6099ff9a45f30b0f3704ccdbfd674c2f39b943b5d525b8c5ba72add353fe64a7073d1a66739739
7
+ data.tar.gz: 9c1bd8f079057d4479ca99dcd1290f412c37c91f245a4b72245efd36406263fd6a93e8fc192dc0823b5351576d19cfa09a99521c4d3b98cf775a1ce81a8b5ecb
data/README.md CHANGED
@@ -2,11 +2,10 @@
2
2
 
3
3
  This is ruby gem for monitoring kannle smsc status. This gem will check
4
4
 
5
- 1 kannel status
6
- 2 kannel sms queue
7
- 3 smsc status
8
- 4 smsc queue
9
-
5
+ - kannel status
6
+ - kannel sms queue
7
+ - smsc status
8
+ - smsc queue
10
9
 
11
10
 
12
11
  ## Installation
@@ -27,26 +26,10 @@ Or install it yourself as:
27
26
 
28
27
  To run this
29
28
 
29
+ $ kannel_monitor 'path to kannel_monitor.yml'
30
30
 
31
- $ kannel_monitor ' path to kannel /kannel_monitor.yml'
32
-
33
-
34
- Format of kannel_monitor.yml
35
-
36
-
37
- kannel_settings:
38
- host: xxxxxxxxxx
39
- port: xxxxxxx
40
- username: admin
41
- password: xxxxxxx
42
- smsc_to_be_skipped:
43
- - smsc1
44
- - smsc2
45
- kannel_name: 'TEST-KANNEL'
46
- email_settings:
47
- to: 'example@gmail.com'
48
- from: 'notification@kannle.in'
49
31
 
32
+ Format of kannel_monitor.yml is given [here] (https://github.com/shaijunonu/kannel-monitor/blob/master/config/kannel_monitor.yml).
50
33
 
51
34
 
52
35
  ## Contributing
@@ -3,4 +3,4 @@
3
3
  require_relative '../lib/kannel_monitor/kannel_monitor'
4
4
 
5
5
  kannel_monitor = KannelMonitor::Monitor.new(ARGV[0])
6
- kannel_monitor.start_monitoring
6
+ kannel_monitor.start_monitoring
@@ -4,11 +4,11 @@ kannel_settings:
4
4
  username: admin
5
5
  password: xxxxxxx
6
6
  smsc_to_be_skipped:
7
- - VfirstTranscriticalESMS
8
- - RouteSmsTransaction
9
- kannel_name: 'FA-KANNEL'
7
+ - smsc1
8
+ - smsc3
9
+ kannel_name: 'TEST-KANNEL'
10
10
  email_settings:
11
- to: 'shaiju@mobme.in'
11
+ to: 'eshaiju@gmail.com'
12
12
  from: 'notification@kannle.in'
13
13
 
14
14
 
@@ -6,9 +6,9 @@ require 'kannel_monitor/version'
6
6
  Gem::Specification.new do |spec|
7
7
  spec.name = "kannel_monitor"
8
8
  spec.version = KannelMonitor::VERSION
9
- spec.authors = ["shaiju"]
9
+ spec.authors = ["shaijunonu"]
10
10
  spec.email = ["shaiju@mobme.in"]
11
- spec.description = %q{Gem for monitor kannel}
11
+ spec.description = %q{Gem for monitoring kannel status and also smsc status}
12
12
  spec.summary = %q{Gem for monitoring kannel }
13
13
  spec.homepage = "https://github.com/shaijunonu/kannel-monitor"
14
14
  spec.license = "MIT"
@@ -23,6 +23,8 @@ Gem::Specification.new do |spec|
23
23
  spec.add_development_dependency "rake"
24
24
  spec.add_development_dependency "sendmail", "~> 0.0.1"
25
25
  spec.add_development_dependency "pony", "~> 1.5.1"
26
-
27
-
26
+ spec.add_development_dependency "nokogiri", "~> 1.6.0"
27
+ spec.add_development_dependency "active_support", "~> 3.0.0"
28
+ spec.add_development_dependency "i18n"
28
29
  end
30
+
@@ -0,0 +1,24 @@
1
+ require "logger"
2
+ require 'yaml'
3
+ require 'open-uri'
4
+ require 'active_support/core_ext'
5
+
6
+ module KannelMonitor
7
+ module Configuration
8
+ def load_settings(configuration_file)
9
+ @settings = YAML.load_file(configuration_file).symbolize_keys!
10
+ @host = @settings[:kannel_settings]['host']
11
+ @port = @settings[:kannel_settings]['port']
12
+ @username = @settings[:kannel_settings]['username']
13
+ @password = @settings[:kannel_settings]['password']
14
+ @smsc_to_be_skipped = @settings[:kannel_settings]['smsc_to_be_skipped'] || []
15
+ @queue_alert_limit = @settings[:kannel_settings]['queue_alert_limit'] || 200
16
+ @kannel_name = @settings[:kannel_settings]['kannel_name'] || ""
17
+ @to_mails = @settings[:email_settings]['to']
18
+ @from_mail = @settings[:email_settings]['to'] || 'notification@kannel.org'
19
+ @logger = Logger.new(STDOUT)
20
+ @kannel_error_status = {'suspended' =>'kannel is in suspended state','isolated' => 'kannel is in isolated state' ,'full' => 'Kannel maximum-queue-length is achieved' ,'shutdown' =>'Kannel is shutdown state'}
21
+ @smsc_error_status = {'re-connecting' => 'SMSC is re-connecting :: ' , 'dead' => 'SMSC is dead ::' }
22
+ end
23
+ end
24
+ end
@@ -1,99 +1,84 @@
1
- require "logger"
2
- require 'yaml'
3
1
  require 'nokogiri'
4
- require 'open-uri'
5
- require 'active_support/core_ext'
6
2
  require_relative './send_mail'
3
+ require_relative './configuration'
7
4
 
8
5
  module KannelMonitor
9
6
  ERROR_COULD_NOT_CONNECT = "Could not connect to Kannel status URL"
10
7
  ERROR_XML_PARSING = 'Could not parse Kannel status XML.'
11
8
  ERROR_SMSC_QUEUE = 'SMS are getting queued on SMSC :: '
12
9
  class Monitor
13
- include Mailer
14
- def initialize(configuration_file = {})
15
- @settings = YAML.load_file(configuration_file).symbolize_keys!
16
- @host = @settings[:kannel_settings]['host']
17
- @port = @settings[:kannel_settings]['port']
18
- @username = @settings[:kannel_settings]['username']
19
- @password = @settings[:kannel_settings]['password']
20
- @smsc_to_be_skipped = @settings[:kannel_settings]['smsc_to_be_skipped'] || []
21
- @queue_alert_limit = @settings[:kannel_settings]['queue_alert_limit'] || 200
22
- @kannel_name = @settings[:kannel_settings]['kannel_name'] || ""
23
- @to_mails = @settings[:email_settings]['to']
24
- @from_mail = @settings[:email_settings]['to'] || 'notification@kannel.org'
25
- @logger = Logger.new(STDOUT)
26
- @kannel_error_status = {'suspended' =>'kannel is in suspended state','isolated' => 'kannel is in isolated state' ,'full' => 'Kannel maximum-queue-length is achieved' ,'shutdown' =>'Kannel is shutdown state'}
27
- @smsc_error_status = {'re-connecting' => 'SMSC is re-connecting :: ' , 'dead' => 'SMSC is dead ::' }
28
- end
10
+ include Mailer
11
+ include Configuration
12
+ def initialize(configuration_file = {})
13
+ load_settings(configuration_file)
14
+ end
29
15
 
30
- def start_monitoring
31
- @xml_doc = prepare_xml_doc
32
- if @xml_doc
33
- fetch_kannel_status
34
- fetch_smsc_status
35
- fetch_queued_count
36
- end
37
- end
16
+ def start_monitoring
17
+ @xml_doc = prepare_xml_doc
18
+ if @xml_doc
19
+ fetch_kannel_status
20
+ fetch_smsc_status
21
+ fetch_queued_count
22
+ end
23
+ end
38
24
 
39
- def prepare_xml_doc
40
- begin
25
+ def prepare_xml_doc
26
+ begin
41
27
  @xml_content_doc = Nokogiri::XML(open("http://#{@host}:#{@port}/status.xml?username=#{@username}&password=#{@password}"))
42
- @logger.info("Fetching Kannel status from http://#{@host}:#{@port}/status.xml?username=#{@username}&password=#{@password}")
43
- rescue
44
- @logger.info(ERROR_COULD_NOT_CONNECT)
28
+ @logger.info("Fetching Kannel status from http://#{@host}:#{@port}/status.xml?username=#{@username}&password=#{@password}")
29
+ rescue
30
+ @logger.info(ERROR_COULD_NOT_CONNECT)
45
31
  send_mail(ERROR_COULD_NOT_CONNECT)
46
- end
47
- @xml_content_doc
48
- end
32
+ end
33
+ @xml_content_doc
34
+ end
49
35
 
50
- def fetch_kannel_status
36
+ def fetch_kannel_status
51
37
  kannel_status = @xml_doc.css('status').text.split(",").first
38
+ @logger.info('Kannel status :: '+kannel_status)
52
39
  @kannel_error_status.each do | key,value|
53
40
  if kannel_status == key
54
- @logger.info(value)
55
- send_mail(value)
41
+ send_mail(value)
56
42
  break
57
43
  end
58
44
  end
59
- end
45
+ end
60
46
 
61
- def fetch_smsc_status
62
- @logger.info('SMSC Status')
63
- smscs = @xml_doc.css('smsc')
64
- smscs.each do |smsc|
65
- smsc_id = smsc.css('id').text
66
- smsc_queue = smsc.css('queued').text
67
- unless @smsc_to_be_skipped.include?(smsc_id)
68
- status = smsc.css('status').text.split(' ')
47
+ def fetch_smsc_status
48
+ @logger.info('SMSC Status')
49
+ smscs = @xml_doc.css('smsc')
50
+ smscs.each do |smsc|
51
+ smsc_id = smsc.css('id').text
52
+ smsc_queue = smsc.css('queued').text
53
+ unless @smsc_to_be_skipped.include?(smsc_id)
54
+ status = smsc.css('status').text.split(' ')
55
+ @logger.info(status[0] +' :: '+ smsc_id )
69
56
  @smsc_error_status.each do | key,value|
70
- if status[0] == key
71
- @logger.info(value + smsc_id )
72
- send_mail(value + smsc_id)
57
+ if status[0] == key
58
+ send_mail(value + smsc_id)
73
59
  break
74
- end
75
- end
76
- if smsc_queue.to_i > @queue_alert_limit.to_i
77
- @logger.info(ERROR_SMSC_QUEUE + smsc_id)
60
+ end
61
+ end
62
+ if smsc_queue.to_i > @queue_alert_limit.to_i
63
+ @logger.info(ERROR_SMSC_QUEUE + smsc_id)
78
64
  send_mail(ERROR_SMSC_QUEUE + smsc_id)
79
- end
80
- end
81
- end
82
- end
65
+ end
66
+ end
67
+ end
68
+ end
83
69
 
84
- def fetch_queued_count
85
- sent_status = @xml_doc.css('sent')
86
- sent_status.each do |status|
87
- queue_size = status.css('queued').text
88
- if queue_size.to_i > @queue_alert_limit.to_i
89
- text = "SMS are getting queued"
70
+ def fetch_queued_count
71
+ sent_status = @xml_doc.css('sent')
72
+ sent_status.each do |status|
73
+ queue_size = status.css('queued').text
74
+ if queue_size.to_i > @queue_alert_limit.to_i
75
+ text = "SMS are getting queued"
90
76
  send_mail(text)
91
- end
92
- end
93
- end
94
-
95
- end
77
+ end
78
+ end
79
+ end
80
+ end
96
81
  end
97
82
 
98
- #kannel_monitor = KannelMonitor::Monitor.new('/home/shaiju/kannel/kannel_monitor.yml')
99
- #kannel_monitor.start_monitoring
83
+ # kannel_monitor = KannelMonitor::Monitor.new('/home/shaiju/kannel/kannel_monitor.yml')
84
+ # kannel_monitor.start_monitoring
@@ -5,13 +5,13 @@ require 'pony'
5
5
  module KannelMonitor
6
6
  module Mailer
7
7
  def send_mail(text)
8
- p "sending mail........."
9
- Pony.mail(
10
- :from => 'notification@kannel.org',
11
- :to => @to_mails,
12
- :via => :sendmail,
13
- :subject => "[CRITICAL]::#{@kannel_name}::#{text}".upcase,
14
- :body => "Kannel Name : #{@kannel_name} \nHost : #{@host} \nPort : #{@port} \n#{text} as on #{Time.now}")
8
+ @logger.info("sending mail.........")
9
+ Pony.mail(
10
+ :from => 'notification@kannel.org',
11
+ :to => @to_mails,
12
+ :via => :sendmail,
13
+ :subject => "[CRITICAL]::#{@kannel_name}::#{text}".upcase,
14
+ :body => "Kannel Name : #{@kannel_name} \nHost : #{@host} \nPort : #{@port} \n#{text} as on #{Time.now}")
15
15
  end
16
16
  end
17
17
  end
@@ -1,3 +1,3 @@
1
1
  module KannelMonitor
2
- VERSION = "0.0.2"
2
+ VERSION = "0.0.3"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: kannel_monitor
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  platform: ruby
6
6
  authors:
7
- - shaiju
7
+ - shaijunonu
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-09-27 00:00:00.000000000 Z
11
+ date: 2013-09-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -28,14 +28,14 @@ dependencies:
28
28
  name: rake
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - ! '>='
31
+ - - '>='
32
32
  - !ruby/object:Gem::Version
33
33
  version: '0'
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - ! '>='
38
+ - - '>='
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
41
  - !ruby/object:Gem::Dependency
@@ -66,7 +66,49 @@ dependencies:
66
66
  - - ~>
67
67
  - !ruby/object:Gem::Version
68
68
  version: 1.5.1
69
- description: Gem for monitor kannel
69
+ - !ruby/object:Gem::Dependency
70
+ name: nokogiri
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ~>
74
+ - !ruby/object:Gem::Version
75
+ version: 1.6.0
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ~>
81
+ - !ruby/object:Gem::Version
82
+ version: 1.6.0
83
+ - !ruby/object:Gem::Dependency
84
+ name: active_support
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ~>
88
+ - !ruby/object:Gem::Version
89
+ version: 3.0.0
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ~>
95
+ - !ruby/object:Gem::Version
96
+ version: 3.0.0
97
+ - !ruby/object:Gem::Dependency
98
+ name: i18n
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - '>='
102
+ - !ruby/object:Gem::Version
103
+ version: '0'
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - '>='
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
111
+ description: Gem for monitoring kannel status and also smsc status
70
112
  email:
71
113
  - shaiju@mobme.in
72
114
  executables:
@@ -78,13 +120,14 @@ files:
78
120
  - LICENSE.txt
79
121
  - README.md
80
122
  - Rakefile
123
+ - bin/kannel_monitor
81
124
  - config/kannel_monitor.yml
82
125
  - kannel_monitor.gemspec
83
126
  - lib/kannel_monitor.rb
127
+ - lib/kannel_monitor/configuration.rb
84
128
  - lib/kannel_monitor/kannel_monitor.rb
85
129
  - lib/kannel_monitor/send_mail.rb
86
130
  - lib/kannel_monitor/version.rb
87
- - bin/kannel_monitor
88
131
  homepage: https://github.com/shaijunonu/kannel-monitor
89
132
  licenses:
90
133
  - MIT
@@ -95,19 +138,18 @@ require_paths:
95
138
  - lib
96
139
  required_ruby_version: !ruby/object:Gem::Requirement
97
140
  requirements:
98
- - - ! '>='
141
+ - - '>='
99
142
  - !ruby/object:Gem::Version
100
143
  version: '0'
101
144
  required_rubygems_version: !ruby/object:Gem::Requirement
102
145
  requirements:
103
- - - ! '>='
146
+ - - '>='
104
147
  - !ruby/object:Gem::Version
105
148
  version: '0'
106
149
  requirements: []
107
150
  rubyforge_project:
108
- rubygems_version: 2.1.4
151
+ rubygems_version: 2.0.3
109
152
  signing_key:
110
153
  specification_version: 4
111
154
  summary: Gem for monitoring kannel
112
155
  test_files: []
113
- has_rdoc: