uptrends 0.2.2 → 0.3.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.travis.yml +9 -0
- data/Gemfile +3 -1
- data/README.md +7 -3
- data/examples/add_probes_to_probe_group.rb +2 -2
- data/examples/update_all_probe_attributes.rb +5 -5
- data/lib/uptrends/api_client.rb +36 -21
- data/lib/uptrends/probe.rb +6 -56
- data/lib/uptrends/probe_group.rb +4 -28
- data/lib/uptrends/utils.rb +49 -0
- data/lib/uptrends/version.rb +1 -1
- data/spec/spec_helper.rb +13 -0
- data/spec/uptrends/api_client_spec.rb +5 -5
- data/spec/uptrends/probe_group_spec.rb +40 -0
- data/spec/uptrends/probe_spec.rb +33 -9
- data/uptrends.gemspec +3 -2
- metadata +22 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 69a8350abcaf27e3eb580f7d57966bbdb33383c0
|
4
|
+
data.tar.gz: 657d3938ead33d2be4b33edcb7380e8361d3f938
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7d4e7c9662118f8a2028e72f8798ddecb0ec6fbbb728e48fb369af38cee7f08126e6919b9eaf68943a6be086fc1b4a875e8642b824f48d3a19979e818793c52e
|
7
|
+
data.tar.gz: b8518d4d9d8765cd5fdcb1f5b69ed71e58316b34e478fb8f681b72316013bd597a021fe937850c83898fbb2427525d5991bc9b970dd3d8c3229b0daeaac6d8ee
|
data/.travis.yml
ADDED
data/Gemfile
CHANGED
@@ -3,10 +3,12 @@ source 'https://rubygems.org'
|
|
3
3
|
# Specify your gem's dependencies in uptrends.gemspec
|
4
4
|
gemspec
|
5
5
|
|
6
|
-
gem
|
6
|
+
gem "httparty", "~> 0.13"
|
7
|
+
gem "activesupport", "~> 4.1.4"
|
7
8
|
|
8
9
|
group :test do
|
9
10
|
gem 'webmock'
|
10
11
|
gem 'vcr'
|
11
12
|
gem 'rake'
|
13
|
+
gem "codeclimate-test-reporter", require: nil
|
12
14
|
end
|
data/README.md
CHANGED
@@ -1,6 +1,8 @@
|
|
1
1
|
# Uptrends
|
2
2
|
|
3
|
-
|
3
|
+
[![Code Climate](https://codeclimate.com/github/jasonwbarnett/uptrends-gem/badges/gpa.svg)](https://codeclimate.com/github/jasonwbarnett/uptrends-gem) [![Test Coverage](https://codeclimate.com/github/jasonwbarnett/uptrends-gem/badges/coverage.svg)](https://codeclimate.com/github/jasonwbarnett/uptrends-gem) [![Build Status](https://travis-ci.org/jasonwbarnett/uptrends-gem.svg?branch=master)](https://travis-ci.org/jasonwbarnett/uptrends-gem)
|
4
|
+
|
5
|
+
This is a ruby wrapper around the [Uptrends API][2]. Uptrends is a monitoring service that let's you monitor Web pages, Web services, Mail servers, Database servers, DNS, SSL certificates, FTP and more.
|
4
6
|
|
5
7
|
## Installation
|
6
8
|
|
@@ -40,7 +42,7 @@ Let's select the first probe and look at it's attributes
|
|
40
42
|
# => #<Uptrends::Probe:0x0000010336cac8 ...>
|
41
43
|
|
42
44
|
p.attributes
|
43
|
-
# => [:guid, :name, :url, :port, :
|
45
|
+
# => [:guid, :name, :url, :port, :check_frequency, :probe_type, :is_active, :generate_alert, :notes, :performance_limit1, :performance_limit2, :error_on_limit1, :error_on_limit2, :min_bytes, :error_on_min_bytes, :timeout, :tcp_connect_timeout, :match_pattern, :dns_lookup_mode, :user_agent, :user_name, :password, :is_competitor, :checkpoints, :http_method, :post_data]
|
44
46
|
|
45
47
|
p.guid
|
46
48
|
# => "7ef43a1b255949f5a052444348971690"
|
@@ -54,7 +56,7 @@ Let's select the first probe __group__ and look at it's attributes
|
|
54
56
|
# => #<Uptrends::ProbeGroup:0x000001021594f8 ...>
|
55
57
|
|
56
58
|
pg.attributes
|
57
|
-
# => [:guid, :name, :
|
59
|
+
# => [:guid, :name, :is_all, :is_client_probe_group]
|
58
60
|
|
59
61
|
pg.guid
|
60
62
|
# => "c8d6a0f704494c37823850f3d4fd4273"
|
@@ -68,8 +70,10 @@ If you wanted to update the probe, all you need to do is change as many attribut
|
|
68
70
|
|
69
71
|
p.name = "My Probe's NEW name"
|
70
72
|
# => "My Probe's NEW name"
|
73
|
+
|
71
74
|
response = u.update_probe(p)
|
72
75
|
# => #<HTTParty::Response:0x10 parsed_response=nil, @response=#<Net::HTTPOK 200 OK readbody=true>, @headers={"cache-control"=>["private"], "server"=>["Microsoft-IIS/7.5"], "x-servername"=>["OBI"], "x-aspnet-version"=>["4.0.30319"], "x-powered-by"=>["ASP.NET"], "x-server"=>["OBI"], "date"=>["Sat, 26 Jul 2014 20:21:00 GMT"], "connection"=>["close"], "content-length"=>["0"]}>
|
76
|
+
|
73
77
|
response.response
|
74
78
|
# => #<Net::HTTPOK 200 OK readbody=true>
|
75
79
|
|
@@ -1,9 +1,9 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
2
|
require 'uptrends/api_client'
|
3
3
|
|
4
|
-
(puts "You must set both the \"
|
4
|
+
(puts "You must set both the \"UPTRENDS_USERNAME\" and \"UPTRENDS_PASSWORD\" environment variables, exiting..."; exit 1;) unless ENV['UPTRENDS_USERNAME'] && ENV['UPTRENDS_PASSWORD']
|
5
5
|
|
6
|
-
u = Uptrends::ApiClient.new(username: ENV['
|
6
|
+
u = Uptrends::ApiClient.new(username: ENV['UPTRENDS_USERNAME'], password: ENV['UPTRENDS_PASSWORD'])
|
7
7
|
|
8
8
|
# select our probe group by name
|
9
9
|
linux_probe_group = u.probe_groups.select { |x| x.name =~ /Linux/}.first
|
@@ -1,16 +1,16 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
2
|
require 'uptrends/api_client'
|
3
3
|
|
4
|
-
(puts "You must set both the \"
|
4
|
+
(puts "You must set both the \"UPTRENDS_USERNAME\" and \"UPTRENDS_PASSWORD\" environment variables, exiting..."; exit 1;) unless ENV['UPTRENDS_USERNAME'] && ENV['UPTRENDS_PASSWORD']
|
5
5
|
|
6
|
-
u = Uptrends::ApiClient.new(username: ENV['
|
6
|
+
u = Uptrends::ApiClient.new(username: ENV['UPTRENDS_USERNAME'], password: ENV['UPTRENDS_PASSWORD'])
|
7
7
|
|
8
8
|
u.probes.each do |x|
|
9
|
-
next if x.
|
9
|
+
next if x.dns_lookup_mode == 'Local' && x.timeout == 20000 && x.tcp_connect_timeout == 5000
|
10
10
|
|
11
|
-
x.
|
11
|
+
x.dns_lookup_mode = 'Local'
|
12
12
|
x.timeout = 20000
|
13
|
-
x.
|
13
|
+
x.tcp_connect_timeout = 5000
|
14
14
|
|
15
15
|
puts "Updating the \"#{x.name}\" probe now... "
|
16
16
|
u.update_probe(x)
|
data/lib/uptrends/api_client.rb
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
require "httparty"
|
2
2
|
require "uptrends/probe"
|
3
3
|
require "uptrends/probe_group"
|
4
|
+
require "uptrends/utils"
|
4
5
|
|
5
6
|
module Uptrends
|
6
7
|
class ApiClient
|
@@ -32,17 +33,27 @@ module Uptrends
|
|
32
33
|
|
33
34
|
private
|
34
35
|
def get_probes
|
35
|
-
|
36
|
-
probes = parsed_response.inject([]) do |memo, x|
|
37
|
-
memo << Uptrends::Probe.new(x)
|
38
|
-
memo
|
39
|
-
end
|
36
|
+
get_all(Uptrends::Probe)
|
40
37
|
end
|
41
38
|
|
42
39
|
def get_probe_groups
|
43
|
-
|
44
|
-
|
45
|
-
|
40
|
+
get_all(Uptrends::ProbeGroup)
|
41
|
+
end
|
42
|
+
|
43
|
+
def get_all(type)
|
44
|
+
case type.new
|
45
|
+
when Uptrends::ProbeGroup
|
46
|
+
uri = '/probegroups'
|
47
|
+
when Uptrends::Probe
|
48
|
+
uri = '/probes'
|
49
|
+
else
|
50
|
+
fail("You passed an unknown type. Try Uptrends::Probe or Uptrends::ProbeGroup")
|
51
|
+
end
|
52
|
+
|
53
|
+
parsed_response = self.class.get(uri).parsed_response
|
54
|
+
|
55
|
+
all = parsed_response.inject([]) do |memo, x|
|
56
|
+
memo << type.new(x)
|
46
57
|
memo
|
47
58
|
end
|
48
59
|
end
|
@@ -75,7 +86,7 @@ module Uptrends
|
|
75
86
|
end
|
76
87
|
|
77
88
|
def update_probe(probe)
|
78
|
-
self.class.put("/probes/#{probe.guid}", body:
|
89
|
+
self.class.put("/probes/#{probe.guid}", body: Uptrends::Utils.gen_request_body(probe))
|
79
90
|
end
|
80
91
|
|
81
92
|
def delete_probe(probe)
|
@@ -85,12 +96,22 @@ module Uptrends
|
|
85
96
|
@probes.delete_if { |x| x.guid == probe.guid }
|
86
97
|
end
|
87
98
|
|
88
|
-
def create_http_probe(options = {})
|
89
|
-
|
99
|
+
def create_http_probe(options = {})
|
100
|
+
name = options[:name] ? options[:name] : fail("You must provide a name!")
|
101
|
+
url = options[:url] ? options[:url] : fail("You must provide a URL!")
|
102
|
+
match_pattern = options[:match_pattern]
|
90
103
|
|
91
|
-
|
92
|
-
|
93
|
-
|
104
|
+
probe = Uptrends::Probe.new(gen_new_probe_hash(name, url, match_pattern))
|
105
|
+
response = self.class.post("/probes", body: Uptrends::Utils.gen_request_body(probe))
|
106
|
+
new_probe = Uptrends::Probe.new(response.parsed_response)
|
107
|
+
|
108
|
+
@probes ||= get_probes
|
109
|
+
@probes << new_probe
|
110
|
+
end
|
111
|
+
|
112
|
+
private
|
113
|
+
def gen_new_probe_hash(name, url, match_pattern = nil)
|
114
|
+
base_hash = {"Name"=>"", "URL"=>"", "CheckFrequency"=>5, "IsActive"=>true, "GenerateAlert"=>true, "Notes"=>"", "PerformanceLimit1"=>60000, "PerformanceLimit2"=>60000, "ErrorOnLimit1"=>false, "ErrorOnLimit2"=>false, "MinBytes"=>0, "ErrorOnMinBytes"=>false, "Timeout"=>30000, "TcpConnectTimeout"=>10000, "MatchPattern"=>"", "DnsLookupMode"=>"Local", "UserAgent"=>"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1;)", "UserName"=>"", "Password"=>"", "IsCompetitor"=>false, "Checkpoints"=>"", "HttpMethod"=>"Get", "PostData"=>""}
|
94
115
|
|
95
116
|
if url =~ %r{^https:}i
|
96
117
|
base_hash.merge!({"Name"=>name, "URL"=>url, "ProbeType"=>"Https", "Port"=>443})
|
@@ -102,14 +123,8 @@ module Uptrends
|
|
102
123
|
|
103
124
|
base_hash.merge!({"MatchPattern"=>match_pattern}) unless match_pattern.nil?
|
104
125
|
|
105
|
-
|
106
|
-
response = self.class.post("/probes", body: p.gen_request_body)
|
107
|
-
new_probe = Uptrends::Probe.new(response.parsed_response)
|
108
|
-
|
109
|
-
@probes ||= get_probes
|
110
|
-
@probes << new_probe
|
126
|
+
base_hash
|
111
127
|
end
|
112
128
|
|
113
|
-
|
114
129
|
end
|
115
130
|
end
|
data/lib/uptrends/probe.rb
CHANGED
@@ -1,69 +1,19 @@
|
|
1
1
|
require 'json'
|
2
|
+
require 'uptrends/utils'
|
2
3
|
|
3
4
|
module Uptrends
|
4
5
|
class Probe
|
5
|
-
attr_reader :guid, :original_hash, :original_keys, :attributes
|
6
|
-
attr_accessor :name, :url, :port, :checkfrequency, :probetype, :isactive, :generatealert, :notes, :performancelimit1, :performancelimit2, :erroronlimit1, :erroronlimit2, :minbytes, :erroronminbytes, :timeout, :tcpconnecttimeout, :matchpattern, :dnslookupmode, :useragent, :username, :password, :iscompetitor, :checkpoints, :httpmethod, :postdata
|
7
6
|
|
8
|
-
|
9
|
-
@original_hash = probe_hash
|
10
|
-
@original_keys = probe_hash.keys
|
11
|
-
@attributes = probe_hash.keys.map{|x| x.downcase.to_sym }
|
12
|
-
|
13
|
-
@guid = probe_hash["Guid"] ? probe_hash["Guid"] : nil
|
14
|
-
@name = probe_hash["Name"] ? probe_hash["Name"] : nil
|
15
|
-
@url = probe_hash["URL"] ? probe_hash["URL"] : nil
|
16
|
-
@port = probe_hash["Port"] ? probe_hash["Port"] : nil
|
17
|
-
@checkfrequency = probe_hash["CheckFrequency"] ? probe_hash["CheckFrequency"] : nil
|
18
|
-
@probetype = probe_hash["ProbeType"] ? probe_hash["ProbeType"] : nil
|
19
|
-
@isactive = probe_hash["IsActive"] ? probe_hash["IsActive"] : nil
|
20
|
-
@generatealert = probe_hash["GenerateAlert"] ? probe_hash["GenerateAlert"] : nil
|
21
|
-
@notes = probe_hash["Notes"] ? probe_hash["Notes"] : nil
|
22
|
-
@performancelimit1 = probe_hash["PerformanceLimit1"] ? probe_hash["PerformanceLimit1"] : nil
|
23
|
-
@performancelimit2 = probe_hash["PerformanceLimit2"] ? probe_hash["PerformanceLimit2"] : nil
|
24
|
-
@erroronlimit1 = probe_hash["ErrorOnLimit1"] ? probe_hash["ErrorOnLimit1"] : nil
|
25
|
-
@erroronlimit2 = probe_hash["ErrorOnLimit2"] ? probe_hash["ErrorOnLimit2"] : nil
|
26
|
-
@minbytes = probe_hash["MinBytes"] ? probe_hash["MinBytes"] : nil
|
27
|
-
@erroronminbytes = probe_hash["ErrorOnMinBytes"] ? probe_hash["ErrorOnMinBytes"] : nil
|
28
|
-
@timeout = probe_hash["Timeout"] ? probe_hash["Timeout"] : nil
|
29
|
-
@tcpconnecttimeout = probe_hash["TcpConnectTimeout"] ? probe_hash["TcpConnectTimeout"] : nil
|
30
|
-
@matchpattern = probe_hash["MatchPattern"] ? probe_hash["MatchPattern"] : nil
|
31
|
-
@dnslookupmode = probe_hash["DnsLookupMode"] ? probe_hash["DnsLookupMode"] : nil
|
32
|
-
@useragent = probe_hash["UserAgent"] ? probe_hash["UserAgent"] : nil
|
33
|
-
@username = probe_hash["UserName"] ? probe_hash["UserName"] : nil
|
34
|
-
@password = probe_hash["Password"] ? probe_hash["Password"] : nil
|
35
|
-
@iscompetitor = probe_hash["IsCompetitor"] ? probe_hash["IsCompetitor"] : nil
|
36
|
-
@checkpoints = probe_hash["Checkpoints"] ? probe_hash["Checkpoints"] : nil
|
37
|
-
|
38
|
-
if probetype == "Http"
|
39
|
-
@httpmethod = probe_hash["HttpMethod"]
|
40
|
-
@postdata = probe_hash["PostData"]
|
41
|
-
end
|
42
|
-
end
|
7
|
+
attr_reader :original_hash, :attributes
|
43
8
|
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
def gen_request_body
|
48
|
-
new_hash = original_keys.inject({}) do |memo,key|
|
49
|
-
if key == 'Guid'
|
50
|
-
memo
|
51
|
-
else
|
52
|
-
memo[key] = self.send(key.downcase.to_sym)
|
53
|
-
memo
|
54
|
-
end
|
55
|
-
end
|
9
|
+
def initialize(probe_hash = {})
|
10
|
+
@original_hash = probe_hash
|
56
11
|
|
57
|
-
|
12
|
+
Uptrends::Utils.gen_and_set_accessors(self)
|
58
13
|
end
|
59
14
|
|
60
15
|
def to_s
|
61
|
-
|
62
|
-
original_keys.each do |key|
|
63
|
-
string << "#{key}: #{self.send(key.downcase.to_sym)}"
|
64
|
-
end
|
65
|
-
|
66
|
-
"#{string.join("\n")}"
|
16
|
+
Uptrends::Utils.to_s(self)
|
67
17
|
end
|
68
18
|
|
69
19
|
end
|
data/lib/uptrends/probe_group.rb
CHANGED
@@ -1,43 +1,19 @@
|
|
1
1
|
require 'json'
|
2
|
+
require 'uptrends/utils'
|
2
3
|
|
3
4
|
module Uptrends
|
4
5
|
class ProbeGroup
|
5
|
-
attr_reader :original_hash, :original_keys, :attributes
|
6
6
|
|
7
|
-
attr_reader
|
8
|
-
attr_accessor :name
|
7
|
+
attr_reader :original_hash, :attributes
|
9
8
|
|
10
9
|
def initialize(probe_group_hash = {})
|
11
10
|
@original_hash = probe_group_hash
|
12
|
-
@original_keys = probe_group_hash.keys
|
13
|
-
@attributes = probe_group_hash.keys.map{|x| x.downcase.to_sym }
|
14
11
|
|
15
|
-
|
16
|
-
@name = probe_group_hash["Name"]
|
17
|
-
@isall = probe_group_hash["IsAll"]
|
18
|
-
@isclientprobegroup = probe_group_hash["IsClientProbeGroup"]
|
19
|
-
end
|
20
|
-
|
21
|
-
def gen_request_body
|
22
|
-
new_hash = original_keys.inject({}) do |memo,key|
|
23
|
-
if key == 'Guid'
|
24
|
-
memo
|
25
|
-
else
|
26
|
-
memo[key] = self.send(key.downcase.to_sym)
|
27
|
-
memo
|
28
|
-
end
|
29
|
-
end
|
30
|
-
|
31
|
-
request_body = JSON.dump(new_hash)
|
12
|
+
Uptrends::Utils.gen_and_set_accessors(self)
|
32
13
|
end
|
33
14
|
|
34
15
|
def to_s
|
35
|
-
|
36
|
-
original_keys.each do |key|
|
37
|
-
string << "#{key}: #{self.send(key.downcase.to_sym)}"
|
38
|
-
end
|
39
|
-
|
40
|
-
"#{string.join("\n")}"
|
16
|
+
Uptrends::Utils.to_s(self)
|
41
17
|
end
|
42
18
|
|
43
19
|
end
|
@@ -0,0 +1,49 @@
|
|
1
|
+
require 'json'
|
2
|
+
require 'active_support/inflector'
|
3
|
+
|
4
|
+
module Uptrends
|
5
|
+
class Utils
|
6
|
+
def self.gen_request_body(object)
|
7
|
+
new_hash = object.original_hash.inject({}) do |memo,(k,v)|
|
8
|
+
if k == 'Guid'
|
9
|
+
memo
|
10
|
+
else
|
11
|
+
memo[k] = object.send(k.underscore)
|
12
|
+
memo
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
request_body = JSON.dump(new_hash)
|
17
|
+
end
|
18
|
+
|
19
|
+
def self.to_s(object)
|
20
|
+
string = []
|
21
|
+
object.attributes.each do |attr|
|
22
|
+
string << "#{attr}: #{object.send(attr)}"
|
23
|
+
end
|
24
|
+
|
25
|
+
"#{string.join("\n")}"
|
26
|
+
end
|
27
|
+
|
28
|
+
# This method sets up all of our attr_accessor so we can easily edit probe attributes
|
29
|
+
def self.gen_and_set_accessors(object)
|
30
|
+
attributes = []
|
31
|
+
object.original_hash.each_pair do |k,v|
|
32
|
+
|
33
|
+
k = k.underscore
|
34
|
+
case k
|
35
|
+
when "guid"
|
36
|
+
object.class.send(:attr_reader, k)
|
37
|
+
object.instance_variable_set("@#{k}", v)
|
38
|
+
else
|
39
|
+
object.class.send(:attr_accessor, k)
|
40
|
+
object.send("#{k}=", v)
|
41
|
+
end
|
42
|
+
attributes << k.to_sym
|
43
|
+
|
44
|
+
end
|
45
|
+
object.instance_variable_set(:@attributes, attributes)
|
46
|
+
end
|
47
|
+
|
48
|
+
end
|
49
|
+
end
|
data/lib/uptrends/version.rb
CHANGED
data/spec/spec_helper.rb
CHANGED
@@ -1,6 +1,10 @@
|
|
1
|
+
require "codeclimate-test-reporter"
|
2
|
+
CodeClimate::TestReporter.start
|
1
3
|
require_relative '../lib/uptrends'
|
2
4
|
require_relative '../lib/uptrends/api_client'
|
3
5
|
require_relative '../lib/uptrends/probe'
|
6
|
+
require_relative '../lib/uptrends/probe_group'
|
7
|
+
require_relative '../lib/uptrends/utils'
|
4
8
|
require 'minitest/autorun'
|
5
9
|
require 'webmock/minitest'
|
6
10
|
require 'vcr'
|
@@ -9,4 +13,13 @@ require 'vcr'
|
|
9
13
|
VCR.configure do |c|
|
10
14
|
c.cassette_library_dir = 'spec/fixtures/vcr_cassettes'
|
11
15
|
c.hook_into :webmock
|
16
|
+
c.ignore_hosts 'codeclimate.com'
|
17
|
+
end
|
18
|
+
|
19
|
+
@username = ENV['UPTRENDS_USERNAME']
|
20
|
+
@password = ENV['UPTRENDS_PASSWORD']
|
21
|
+
|
22
|
+
if @username.nil? || @password.nil?
|
23
|
+
$stderr.puts "You must define UPTRENDS_USERNAME and UPTRENDS_PASSWORD as environment variables, exiting..."
|
24
|
+
exit 1
|
12
25
|
end
|
@@ -1,15 +1,15 @@
|
|
1
1
|
require_relative '../spec_helper'
|
2
2
|
|
3
3
|
describe Uptrends::ApiClient do
|
4
|
-
let(:username) { ENV['
|
5
|
-
let(:password) { ENV['
|
4
|
+
let(:username) { ENV['UPTRENDS_USERNAME'] }
|
5
|
+
let(:password) { ENV['UPTRENDS_PASSWORD'] }
|
6
6
|
|
7
7
|
describe "Setting up testing" do
|
8
|
-
it "should have a username defined in an env varible:
|
8
|
+
it "should have a username defined in an env varible: UPTRENDS_USERNAME" do
|
9
9
|
username.wont_be_nil
|
10
10
|
end
|
11
11
|
|
12
|
-
it "should have a password defined in an env varible:
|
12
|
+
it "should have a password defined in an env varible: UPTRENDS_PASSWORD" do
|
13
13
|
password.wont_be_nil
|
14
14
|
end
|
15
15
|
end
|
@@ -76,7 +76,7 @@ describe Uptrends::ApiClient do
|
|
76
76
|
end
|
77
77
|
|
78
78
|
it "must has a #get_probes method" do
|
79
|
-
uac.
|
79
|
+
uac.wont_respond_to :get_probes
|
80
80
|
end
|
81
81
|
|
82
82
|
it "must have a #probes method" do
|
@@ -0,0 +1,40 @@
|
|
1
|
+
require_relative '../spec_helper'
|
2
|
+
|
3
|
+
describe Uptrends::ProbeGroup do
|
4
|
+
let(:up) { Uptrends::ProbeGroup.new({"Guid" => "myguid", "Name" => "myvalue", "other" => "thing"}) }
|
5
|
+
|
6
|
+
it "#guid" do
|
7
|
+
up.must_respond_to :guid
|
8
|
+
up.guid.must_equal "myguid"
|
9
|
+
end
|
10
|
+
|
11
|
+
it "#guid= must NOT exist" do
|
12
|
+
up.wont_respond_to :guid=
|
13
|
+
end
|
14
|
+
|
15
|
+
it "#name" do
|
16
|
+
up.must_respond_to :name
|
17
|
+
up.name.must_equal "myvalue"
|
18
|
+
end
|
19
|
+
|
20
|
+
it "#name=" do
|
21
|
+
up.must_respond_to :name=
|
22
|
+
up.name = "updates to hello_you="
|
23
|
+
up.name.must_equal "updates to hello_you="
|
24
|
+
end
|
25
|
+
|
26
|
+
it "#other" do
|
27
|
+
up.must_respond_to :other
|
28
|
+
up.other.must_equal "thing"
|
29
|
+
end
|
30
|
+
|
31
|
+
it "#other=" do
|
32
|
+
up.must_respond_to :other=
|
33
|
+
up.other = "updates to other"
|
34
|
+
up.other.must_equal "updates to other"
|
35
|
+
end
|
36
|
+
|
37
|
+
it "#to_s" do
|
38
|
+
up.to_s.must_equal "guid: myguid\nname: myvalue\nother: thing"
|
39
|
+
end
|
40
|
+
end
|
data/spec/uptrends/probe_spec.rb
CHANGED
@@ -1,16 +1,40 @@
|
|
1
1
|
require_relative '../spec_helper'
|
2
2
|
|
3
3
|
describe Uptrends::Probe do
|
4
|
-
let(:up) { Uptrends::Probe.new }
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
4
|
+
let(:up) { Uptrends::Probe.new({"Guid" => "myguid", "HelloYou" => "myvalue", "other" => "thing"}) }
|
5
|
+
|
6
|
+
it "#guid" do
|
7
|
+
up.must_respond_to :guid
|
8
|
+
up.guid.must_equal "myguid"
|
9
|
+
end
|
10
|
+
|
11
|
+
it "#guid= must NOT exist" do
|
12
|
+
up.wont_respond_to :guid=
|
13
|
+
end
|
14
|
+
|
15
|
+
it "#hello_you" do
|
16
|
+
up.must_respond_to :hello_you
|
17
|
+
up.hello_you.must_equal "myvalue"
|
18
|
+
end
|
19
|
+
|
20
|
+
it "#hello_you=" do
|
21
|
+
up.must_respond_to :hello_you=
|
22
|
+
up.hello_you = "updates to hello_you="
|
23
|
+
up.hello_you.must_equal "updates to hello_you="
|
24
|
+
end
|
25
|
+
|
26
|
+
it "#other" do
|
27
|
+
up.must_respond_to :other
|
28
|
+
up.other.must_equal "thing"
|
29
|
+
end
|
30
|
+
|
31
|
+
it "#other=" do
|
32
|
+
up.must_respond_to :other=
|
33
|
+
up.other = "updates to other"
|
34
|
+
up.other.must_equal "updates to other"
|
9
35
|
end
|
10
36
|
|
11
|
-
|
12
|
-
|
13
|
-
up.send("#{attr}=", "some_value")
|
14
|
-
end
|
37
|
+
it "#to_s" do
|
38
|
+
up.to_s.must_equal "guid: myguid\nhello_you: myvalue\nother: thing"
|
15
39
|
end
|
16
40
|
end
|
data/uptrends.gemspec
CHANGED
@@ -9,7 +9,7 @@ Gem::Specification.new do |spec|
|
|
9
9
|
spec.authors = ["Jason Barnett"]
|
10
10
|
spec.email = ["J@sonBarnett.com"]
|
11
11
|
spec.summary = %q{Ruby wrapper around the Uptrends API, http://www.uptrends.com/}
|
12
|
-
spec.description = %q{This is a ruby wrapper around the Uptrends API. Uptrends is a monitoring service that let's you monitor
|
12
|
+
spec.description = %q{This is a ruby wrapper around the Uptrends API. Uptrends is a monitoring service that let's you monitor Web pages, Web services, Mail servers, Database servers, DNS, SSL certificates, FTP and more.}
|
13
13
|
spec.homepage = "https://github.com/jasonwbarnett/uptrends-gem"
|
14
14
|
spec.license = "MIT"
|
15
15
|
|
@@ -18,5 +18,6 @@ Gem::Specification.new do |spec|
|
|
18
18
|
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
19
19
|
spec.require_paths = ["lib"]
|
20
20
|
|
21
|
-
spec.add_dependency
|
21
|
+
spec.add_dependency "httparty", "~> 0.13"
|
22
|
+
spec.add_dependency "activesupport", "~> 4.1.4"
|
22
23
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: uptrends
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jason Barnett
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-08-
|
11
|
+
date: 2014-08-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: httparty
|
@@ -24,9 +24,23 @@ dependencies:
|
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '0.13'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: activesupport
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: 4.1.4
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: 4.1.4
|
27
41
|
description: This is a ruby wrapper around the Uptrends API. Uptrends is a monitoring
|
28
|
-
service that let's you monitor
|
29
|
-
|
42
|
+
service that let's you monitor Web pages, Web services, Mail servers, Database servers,
|
43
|
+
DNS, SSL certificates, FTP and more.
|
30
44
|
email:
|
31
45
|
- J@sonBarnett.com
|
32
46
|
executables: []
|
@@ -34,6 +48,7 @@ extensions: []
|
|
34
48
|
extra_rdoc_files: []
|
35
49
|
files:
|
36
50
|
- ".gitignore"
|
51
|
+
- ".travis.yml"
|
37
52
|
- Gemfile
|
38
53
|
- LICENSE.txt
|
39
54
|
- README.md
|
@@ -44,10 +59,12 @@ files:
|
|
44
59
|
- lib/uptrends/api_client.rb
|
45
60
|
- lib/uptrends/probe.rb
|
46
61
|
- lib/uptrends/probe_group.rb
|
62
|
+
- lib/uptrends/utils.rb
|
47
63
|
- lib/uptrends/version.rb
|
48
64
|
- spec/fixtures/vcr_cassettes/GET_Probes.yml
|
49
65
|
- spec/spec_helper.rb
|
50
66
|
- spec/uptrends/api_client_spec.rb
|
67
|
+
- spec/uptrends/probe_group_spec.rb
|
51
68
|
- spec/uptrends/probe_spec.rb
|
52
69
|
- uptrends.gemspec
|
53
70
|
homepage: https://github.com/jasonwbarnett/uptrends-gem
|
@@ -78,4 +95,5 @@ test_files:
|
|
78
95
|
- spec/fixtures/vcr_cassettes/GET_Probes.yml
|
79
96
|
- spec/spec_helper.rb
|
80
97
|
- spec/uptrends/api_client_spec.rb
|
98
|
+
- spec/uptrends/probe_group_spec.rb
|
81
99
|
- spec/uptrends/probe_spec.rb
|