sensu-plugins-ubiquiti 0.0.1 → 1.0.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: a324381378e54512fc11ca6227f8c0bb2090b8fc
4
- data.tar.gz: 92899680eabfd54dd7f5f2f0ff8befb7af933877
3
+ metadata.gz: 055416821c4ca116d381c700af7491647c443524
4
+ data.tar.gz: 2112252bfdc21a0b006c4d68369cf47925322202
5
5
  SHA512:
6
- metadata.gz: 6c3c0cef0303cade1a0507ee53d0038360b8c0fd94e03203f4300c1680870567ee81cf5b63edeb9103decadbb388adf29e92375c638205a65a99f85bd5a8e8ec
7
- data.tar.gz: b9dc05d0dd51804d406faf16ba5d68e64dc89ffc74d3fd77e28e35d5cc81de45f385869e6e7e053f80ed5070dbccbfbbc1e3218ddf156bc022482b736f68980b
6
+ metadata.gz: 32889c62501ac21086e2c60b37475f1b67f5469352a04444825c379f6ec011d05dc69b8f0b3ef6c9b34d3ab952a6ea61db0cf62136c0857d653d9035d95e75af
7
+ data.tar.gz: 7081a3acf99e062d8c6c649b05b21b7bbb434f1b05f81edb6ae9140a2f7fb8d9ab4a7ad70908f7315ae12278e7e8ecdaebd633da539195a9b2f9ec57d8b2bf2c
@@ -3,8 +3,26 @@ This project adheres to [Semantic Versioning](http://semver.org/).
3
3
 
4
4
  This CHANGELOG follows the format listed at [Keep A Changelog](http://keepachangelog.com/)
5
5
 
6
- ## Unreleased
6
+ ## [Unreleased]
7
+
8
+ ## [1.0.0] - 2016-10-21
9
+
10
+ Note: this release changes the check parameters due to removing the shell out to `unifi-get-stats.py`.
11
+
12
+ ### Changed
13
+ - Use `unifi-api` gem instead of shelling out to unifi-get-stats.py script
14
+ - Update to Rubocop 0.40 and cleanup
7
15
 
8
- 0.0.1 - 08-24-2015
16
+ ### Added
17
+ - Add Ruby 2.3.0 support
18
+
19
+ ### Removed
20
+ - Remove Ruby 1.9.3 support
21
+ - Remove unused unifi-get-stats.py script
22
+
23
+ ## [0.0.1] - 2015-08-24
9
24
  ### Added
10
25
  - initial release of this sensu plugin repo
26
+
27
+ [Unreleased]: https://github.com/sensu-plugins/sensu-plugins-ubiquiti/compare/1.0.0...HEAD
28
+ [1.0.0]: https://github.com/sensu-plugins/sensu-plugins-ubiquiti/compare/0.0.1...1.0.0
data/README.md CHANGED
@@ -1,10 +1,10 @@
1
1
  ## Sensu-Plugins-ubiquiti
2
- [ ![Build Status](https://travis-ci.org/sensu-plugins/sensu-plugins-ubiquiti.svg?branch=master)](https://travis-ci.org/sensu-plugins/sensu-plugins-ubiquiti)
2
+ [![Build Status](https://travis-ci.org/sensu-plugins/sensu-plugins-ubiquiti.svg?branch=master)](https://travis-ci.org/sensu-plugins/sensu-plugins-ubiquiti)
3
3
  [![Gem Version](https://badge.fury.io/rb/sensu-plugins-ubiquiti.svg)](http://badge.fury.io/rb/sensu-plugins-ubiquiti)
4
4
  [![Code Climate](https://codeclimate.com/github/sensu-plugins/sensu-plugins-ubiquiti/badges/gpa.svg)](https://codeclimate.com/github/sensu-plugins/sensu-plugins-ubiquiti)
5
5
  [![Test Coverage](https://codeclimate.com/github/sensu-plugins/sensu-plugins-ubiquiti/badges/coverage.svg)](https://codeclimate.com/github/sensu-plugins/sensu-plugins-ubiquiti)
6
6
  [![Dependency Status](https://gemnasium.com/sensu-plugins/sensu-plugins-ubiquiti.svg)](https://gemnasium.com/sensu-plugins/sensu-plugins-ubiquiti)
7
- [ ![Codeship Status](https://codeship.com/projects/3031d890-2e9c-0133-9eef-3a2a4d3529b0/status?branch=master)](https://codeship.com/projects/99157)
7
+
8
8
  ## Functionality
9
9
 
10
10
  **metrics-unifi.rb**
@@ -13,7 +13,6 @@ Polls metrics from Ubiquiti Networks Unifi wireless controllers
13
13
 
14
14
  ## Files
15
15
  * bin/metrics-unifi.rb
16
- * bin/unifi-get-stats.py
17
16
 
18
17
  ## Installation
19
18
 
@@ -15,7 +15,7 @@
15
15
  # gem: sensu-plugin
16
16
  #
17
17
  # USAGE:
18
- # metrics-unifi.rb -c unifi.int.mycompany.co -i /dir/containing/unifi-get-stats/binary/ -u admin -p unifipassword
18
+ # metrics-unifi.rb -c unifi.int.mycompany.co -u admin -p unifipassword
19
19
  #
20
20
  # NOTES:
21
21
  #
@@ -27,9 +27,8 @@
27
27
  #
28
28
 
29
29
  require 'sensu-plugin/metric/cli'
30
- require 'open3'
31
30
  require 'socket'
32
- require 'json'
31
+ require 'unifi/api'
33
32
 
34
33
  # Collect unifi metrics
35
34
  class UnifiMetrics < Sensu::Plugin::Metric::CLI::Graphite
@@ -57,21 +56,35 @@ class UnifiMetrics < Sensu::Plugin::Metric::CLI::Graphite
57
56
  long: '--password PASSWORD',
58
57
  required: true
59
58
 
60
- option :path,
61
- description: 'Path to unifi-get-stats.py',
62
- short: '-i PATH',
63
- default: '/usr/local/bin'
59
+ option :port,
60
+ description: 'Port',
61
+ short: '-P PORT',
62
+ long: '--port PORT',
63
+ default: 8443
64
+
65
+ option :unifi_version,
66
+ description: 'Unifi API version',
67
+ short: '-V VERSION',
68
+ long: '--unifi-version VERSION',
69
+ default: 'v4'
64
70
 
65
71
  def unifi_stats
66
- unknown "Could not find #{config[:path]}/unifi-get-stats.py" unless File.exist?("#{config[:path]}/unifi-get-stats.py")
67
- stdout, result = Open3.capture2("#{config[:path]}/unifi-get-stats.py -c #{config[:controller]} -u #{config[:username]} -p #{config[:password]}")
68
- unknown 'Unable to get Unifi AP stats' unless result.success?
69
- stdout
72
+ unifi = Unifi::Api::Controller.new(config[:controller], config[:username], config[:password], config[:port], config[:unifi_version])
73
+ aps = unifi.get_aps
74
+
75
+ metrics = Hash.new(0)
76
+
77
+ aps.each do |ap|
78
+ metrics['total'] += ap['num_sta']
79
+ metrics['guests'] += ap['guest-num_sta']
80
+ metrics['users'] += ap['user-num_sta']
81
+ end
82
+
83
+ metrics
70
84
  end
71
85
 
72
86
  def run
73
- stats = JSON.parse(unifi_stats)
74
- stats.each do |metric, value|
87
+ unifi_stats.each do |metric, value|
75
88
  output "#{config[:scheme]}.#{metric}", value
76
89
  end
77
90
  ok
@@ -1,8 +1,8 @@
1
1
  module SensuPluginsUbiquiti
2
2
  module Version
3
- MAJOR = 0
3
+ MAJOR = 1
4
4
  MINOR = 0
5
- PATCH = 1
5
+ PATCH = 0
6
6
 
7
7
  VER_STRING = [MAJOR, MINOR, PATCH].compact.join('.')
8
8
  end
metadata CHANGED
@@ -1,51 +1,43 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sensu-plugins-ubiquiti
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sensu-Plugins and contributors
8
8
  autorequire:
9
9
  bindir: bin
10
- cert_chain:
11
- - |
12
- -----BEGIN CERTIFICATE-----
13
- MIIDgDCCAmigAwIBAgIBATANBgkqhkiG9w0BAQUFADBDMRIwEAYDVQQDDAltYXR0
14
- am9uZXMxGDAWBgoJkiaJk/IsZAEZFgh5aWVsZGJvdDETMBEGCgmSJomT8ixkARkW
15
- A2NvbTAeFw0xNTAxMjgyMTAyNTFaFw0xNjAxMjgyMTAyNTFaMEMxEjAQBgNVBAMM
16
- CW1hdHRqb25lczEYMBYGCgmSJomT8ixkARkWCHlpZWxkYm90MRMwEQYKCZImiZPy
17
- LGQBGRYDY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAyTSzVYnO
18
- CLgyrIyT1mBQakArQyW8xhi6MlDqyzXHJGeERT790U6EgoBVeS4XoK0ptFZNR8Tf
19
- zko0w+Nv47TarSCgkPOaxY+mxWnAVR10dOmfeLr7huiMyps+YD56/EF2FqQ3jf/+
20
- qohENfKD91qy1ieEy+Fn7Pf74ltbNKUdkb9a9eFXQ0DQ4ip5vik7DzjQkUTj4lca
21
- k6ArwnmHX4YDhZoYtrQJ8jVktN0/+NtA40M5qkCYHNe5tUW25b/tKVYuioxG6b2Z
22
- oIzaZxRLxf6HVAWpCVRT/F5+/yjigkX4u++eYacfLGleXQzoK7BL65vHGMJygWEE
23
- 0TKGqFOrl/L0AQIDAQABo38wfTAJBgNVHRMEAjAAMAsGA1UdDwQEAwIEsDAdBgNV
24
- HQ4EFgQUEf6a8Td7MrSZc8ImbLFZAENPbz0wIQYDVR0RBBowGIEWbWF0dGpvbmVz
25
- QHlpZWxkYm90LmNvbTAhBgNVHRIEGjAYgRZtYXR0am9uZXNAeWllbGRib3QuY29t
26
- MA0GCSqGSIb3DQEBBQUAA4IBAQBbzXAYA3BVGw8DZ0YYoY1VHPNEcH5qPIApmHO8
27
- rvSmuUT0yMEi7u00H/5uHRFf4LleGT/+sTdyXKsNPGT9kdRuQEgwi+vf7Zfvd8aX
28
- UF/+4VkEYf/8rV8Ere6u2QaWPgApdMV6JjKr1fAwCTd8AuGXNaWItiPPMseSQzLJ
29
- JKP4hVvbc1d+oS925B1lcBiqn2aYvElbyNAVmQPywNNqkWmvtlqj9ZVJfV5HQLdu
30
- 8sHuVruarogxxKPBzlL2is4EUb6oN/RdpGx2l4254+nyR+abg//Ed27Ym0PkB4lk
31
- HP0m8WSjZmFr109pE/sVsM5jtOCvogyujQOjNVGN4gz1wwPr
32
- -----END CERTIFICATE-----
33
- date: 2015-08-27 00:00:00.000000000 Z
10
+ cert_chain: []
11
+ date: 2016-10-21 00:00:00.000000000 Z
34
12
  dependencies:
35
13
  - !ruby/object:Gem::Dependency
36
14
  name: sensu-plugin
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '1.2'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '1.2'
27
+ - !ruby/object:Gem::Dependency
28
+ name: unifi-api
37
29
  requirement: !ruby/object:Gem::Requirement
38
30
  requirements:
39
31
  - - '='
40
32
  - !ruby/object:Gem::Version
41
- version: 1.2.0
33
+ version: 0.1.1
42
34
  type: :runtime
43
35
  prerelease: false
44
36
  version_requirements: !ruby/object:Gem::Requirement
45
37
  requirements:
46
38
  - - '='
47
39
  - !ruby/object:Gem::Version
48
- version: 1.2.0
40
+ version: 0.1.1
49
41
  - !ruby/object:Gem::Dependency
50
42
  name: bundler
51
43
  requirement: !ruby/object:Gem::Requirement
@@ -148,16 +140,16 @@ dependencies:
148
140
  name: rubocop
149
141
  requirement: !ruby/object:Gem::Requirement
150
142
  requirements:
151
- - - '='
143
+ - - "~>"
152
144
  - !ruby/object:Gem::Version
153
- version: 0.32.1
145
+ version: 0.40.0
154
146
  type: :development
155
147
  prerelease: false
156
148
  version_requirements: !ruby/object:Gem::Requirement
157
149
  requirements:
158
- - - '='
150
+ - - "~>"
159
151
  - !ruby/object:Gem::Version
160
- version: 0.32.1
152
+ version: 0.40.0
161
153
  - !ruby/object:Gem::Dependency
162
154
  name: yard
163
155
  requirement: !ruby/object:Gem::Requirement
@@ -173,7 +165,7 @@ dependencies:
173
165
  - !ruby/object:Gem::Version
174
166
  version: '0.8'
175
167
  description: Sensu plugins for Ubiquiti network equipment
176
- email: "<sensu-users@googlegroubiquiti.com>"
168
+ email: "<sensu-users@googlegroups.com>"
177
169
  executables:
178
170
  - metrics-unifi.rb
179
171
  extensions: []
@@ -183,14 +175,13 @@ files:
183
175
  - LICENSE
184
176
  - README.md
185
177
  - bin/metrics-unifi.rb
186
- - bin/unifi-get-stats.py
187
178
  - lib/sensu-plugins-ubiquiti.rb
188
179
  - lib/sensu-plugins-ubiquiti/version.rb
189
180
  homepage: https://github.com/sensu-plugins/sensu-plugins-ubiquiti
190
181
  licenses:
191
182
  - MIT
192
183
  metadata:
193
- maintainer: "@tas50"
184
+ maintainer: sensu-plugin
194
185
  development_status: active
195
186
  production_status: unstable - testing recommended
196
187
  release_draft: 'false'
@@ -204,7 +195,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
204
195
  requirements:
205
196
  - - ">="
206
197
  - !ruby/object:Gem::Version
207
- version: 1.9.3
198
+ version: 2.0.0
208
199
  required_rubygems_version: !ruby/object:Gem::Requirement
209
200
  requirements:
210
201
  - - ">="
@@ -212,7 +203,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
212
203
  version: '0'
213
204
  requirements: []
214
205
  rubyforge_project:
215
- rubygems_version: 2.4.8
206
+ rubygems_version: 2.5.1
216
207
  signing_key:
217
208
  specification_version: 4
218
209
  summary: Sensu plugins for Ubiquiti network equipment
Binary file
data.tar.gz.sig DELETED
Binary file
@@ -1,35 +0,0 @@
1
- #!/usr/bin/env python
2
- #
3
- # Get stats from a Unifi AP controller using the API
4
- #
5
- # Requires the unifi python module
6
- #
7
-
8
- import argparse
9
- import json
10
-
11
- from unifi.controller import Controller
12
-
13
- parser = argparse.ArgumentParser()
14
- parser.add_argument('-c', '--controller', default='unifi', help='the controller address (default "unifi")')
15
- parser.add_argument('-u', '--username', default='admin', help='the controller username (default("admin")')
16
- parser.add_argument('-p', '--password', default='', help='the controller password')
17
- parser.add_argument('-b', '--port', default='8443', help='the controller port (default "8443")')
18
- parser.add_argument('-v', '--version', default='v2', help='the controller base version (default "v2")')
19
- parser.add_argument('-s', '--siteid', default='default', help='the site ID, UniFi >=3.x only (default "default")')
20
- args = parser.parse_args()
21
-
22
- c = Controller(args.controller, args.username, args.password, args.port, args.version, args.siteid)
23
-
24
- aps = c.get_aps()
25
-
26
- total = guests = users = 0
27
-
28
- for ap in aps:
29
- total += ap['num_sta']
30
- guests += ap['guest-num_sta']
31
- users += ap['user-num_sta']
32
-
33
- stats = {'total': total, 'guests': guests, 'users': users}
34
-
35
- print json.dumps(stats)
metadata.gz.sig DELETED
@@ -1 +0,0 @@
1
- jd�m�so�ҥK�t"F�1�� 7n#��<�7y�ֿ�HtG����2W4�n �. J�m7Ě��3>�P�+�������T��ϛ(?`�xp�Ũ ����6G+�Ū��M0��%�뭢f�a�T���"��퟇!���tCQ���'Y���EL�T}�ˑۮ赙!*ɞ�uTO+��pDi�E�H��C��"-�w�����)-\9���(6��F�����~P�`�`�٩ޅ:]"�Y��� d@Y�,_/�U|���C�