arii 1.7 → 1.8

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: a6be30113f3d3eea18c5c4d19f14b9cabb2f1eef
4
- data.tar.gz: 3b581b00830cf709707c8622c7d9cf17f2b92a1d
3
+ metadata.gz: 6ceec14f03110e8d331a9d7ca37d85615809acd1
4
+ data.tar.gz: bc1b1746618ced80dfb370a3841757c22d70f44b
5
5
  SHA512:
6
- metadata.gz: 546c5905fd9d05864ad7a04861226bb2d9f00e2abdd343abe8891488a4d743c908c3bc5aafa8120fb087444e4a2b381fb688503b4e1ced61286980674c88cc87
7
- data.tar.gz: 6a2cdb0c4d3c634fd76d351e506ddf7bc0e0a4aafbc1a0f8240dd3914e6d94a3b1e881e60702772d0b9f04ee5dade410d48ea0c8803881b934df03a3edbd7e7f
6
+ metadata.gz: c8f3437c76db16e9da58601dc1a3f7c759e51422ac60e24b133e669121918abbb07efc8f5e06cc4c6f52ae7d1eaadd7734071fcbd1a6fea50f60ebf632a2a441
7
+ data.tar.gz: 3a924acb65a55a0c0e6d97a17d833063bb0e334b4578cf143e91a7daf54af52a174f562f0064114c4d1f1f02d7a29a3ed42dbbde37d61c5bfe5d6fcf3f9bf8dc
@@ -25,4 +25,6 @@ Gem::Specification.new do |spec|
25
25
  spec.add_runtime_dependency 'rubyXL'
26
26
  spec.add_runtime_dependency 'spreadsheet'
27
27
  spec.add_runtime_dependency 'jsonpath', '~> 0'
28
+ spec.add_runtime_dependency 'tiny_tds', '> 0.6.3.rc1'
29
+ spec.add_runtime_dependency 'pg'
28
30
  end
@@ -1,5 +1,7 @@
1
1
  #require 'helper'
2
2
  require 'mysql2'
3
+ require 'tiny_tds'
4
+ requie 'pg'
3
5
 
4
6
  module ARII
5
7
 
@@ -17,34 +19,100 @@ module ARII
17
19
  def detect object
18
20
  ARII::Config.log.debug(self.class.name) { "Monitoring #{object[:host]}" }
19
21
  begin
20
- @client = Mysql2::Client.new(:host => object[:host], :username => object[:username], :password => object[:password], :database => object[:database])
21
- @client.query(object[:query]).each(:symbolize_keys => false) do |row|
22
- unless object[:cache].nil? then
23
- @response = Cashier.verify row[object[:cache]], object, row, object[:seed]
24
- else
25
- @response = Cashier.verify row["id"], object, row, object[:seed]
22
+ case object[:server]
23
+ when 'mysql'
24
+ @client = Mysql2::Client.new(:host => object[:host], :username => object[:username], :password => object[:password], :database => object[:database])
25
+ @client.query(object[:query]).each(:symbolize_keys => false) do |row|
26
+ unless object[:cache].nil? then
27
+ @response = Cashier.verify row[object[:cache]], object, row, object[:seed]
28
+ else
29
+ @response = Cashier.verify row["id"], object, row, object[:seed]
30
+ end
31
+
32
+ # Process ARII cache response
33
+ @cache = JSON.parse(@response, {:symbolize_names => true})
34
+ unless @cache[:templates].nil? then
35
+ @cache[:templates].each do |t|
36
+ @templates.push t
37
+ end
38
+ end
39
+ # The actual processing
40
+ #
41
+ if @cache[:cache][:status] == 100 then
42
+ ARII::Config.log.info(self.class.name) { "Not on cache, generating payload" }
43
+ # add row data to payload from selectors (key => key, value => column name)
44
+ payload = Hash.new
45
+ object[:selectors].each do |selector|
46
+ selector.each do |k, v|
47
+ payload[k] = row[v]
48
+ end
49
+ end
50
+ # add payload object to payloads list
51
+ @payloads.push payload
52
+ end
26
53
  end
54
+ when 'mssql'
55
+ @client = TinyTds::Client.new username: object[:username], password: object[:password], host: object[:host], database: object[:database], port: object[:port], timeout: 60
56
+ @results = @client.execute(@agent[:payload][:query])
57
+ @results.each(:symbolize_keys => false) do |row|
58
+ unless object[:cache].nil? then
59
+ @response = Cashier.verify row[object[:cache]], object, row, object[:seed]
60
+ else
61
+ @response = Cashier.verify row["id"], object, row, object[:seed]
62
+ end
27
63
 
28
- # Process ARII cache response
29
- @cache = JSON.parse(@response, {:symbolize_names => true})
30
- unless @cache[:templates].nil? then
31
- @cache[:templates].each do |t|
32
- @templates.push t
64
+ # Process ARII cache response
65
+ @cache = JSON.parse(@response, {:symbolize_names => true})
66
+ unless @cache[:templates].nil? then
67
+ @cache[:templates].each do |t|
68
+ @templates.push t
69
+ end
70
+ end
71
+ # The actual processing
72
+ #
73
+ if @cache[:cache][:status] == 100 then
74
+ ARII::Config.log.info(self.class.name) { "Not on cache, generating payload" }
75
+ # add row data to payload from selectors (key => key, value => column name)
76
+ payload = Hash.new
77
+ object[:selectors].each do |selector|
78
+ selector.each do |k, v|
79
+ payload[k] = row[v]
80
+ end
81
+ end
82
+ # add payload object to payloads list
83
+ @payloads.push payload
33
84
  end
34
85
  end
35
- # The actual processing
36
- #
37
- if @cache[:cache][:status] == 100 then
38
- ARII::Config.log.info(self.class.name) { "Not on cache, generating payload" }
39
- # add row data to payload from selectors (key => key, value => column name)
40
- payload = Hash.new
41
- object[:selectors].each do |selector|
42
- selector.each do |k, v|
43
- payload[k] = row[v]
86
+ when 'postgresql'
87
+ client = PG::Connection.new(:host => object[:host], :user => object[:username], :password => object[:password], :dbname => object[:database])
88
+ client.exec(object[:query]).each do |row|
89
+ unless object[:cache].nil? then
90
+ @response = Cashier.verify row[object[:cache]], object, row, object[:seed]
91
+ else
92
+ @response = Cashier.verify row["id"], object, row, object[:seed]
93
+ end
94
+
95
+ # Process ARII cache response
96
+ @cache = JSON.parse(@response, {:symbolize_names => true})
97
+ unless @cache[:templates].nil? then
98
+ @cache[:templates].each do |t|
99
+ @templates.push t
100
+ end
101
+ end
102
+ # The actual processing
103
+ #
104
+ if @cache[:cache][:status] == 100 then
105
+ ARII::Config.log.info(self.class.name) { "Not on cache, generating payload" }
106
+ # add row data to payload from selectors (key => key, value => column name)
107
+ payload = Hash.new
108
+ object[:selectors].each do |selector|
109
+ selector.each do |k, v|
110
+ payload[k] = row[v]
111
+ end
44
112
  end
113
+ # add payload object to payloads list
114
+ @payloads.push payload
45
115
  end
46
- # add payload object to payloads list
47
- @payloads.push payload
48
116
  end
49
117
  end
50
118
  rescue Exception => e
@@ -1,3 +1,3 @@
1
1
  module ARII
2
- VERSION = "1.7"
2
+ VERSION = "1.8"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: arii
3
3
  version: !ruby/object:Gem::Version
4
- version: '1.7'
4
+ version: '1.8'
5
5
  platform: ruby
6
6
  authors:
7
7
  - Pedro Lopes
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-04-16 00:00:00.000000000 Z
11
+ date: 2015-05-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -108,6 +108,34 @@ dependencies:
108
108
  - - "~>"
109
109
  - !ruby/object:Gem::Version
110
110
  version: '0'
111
+ - !ruby/object:Gem::Dependency
112
+ name: tiny_tds
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - ">"
116
+ - !ruby/object:Gem::Version
117
+ version: 0.6.3.rc1
118
+ type: :runtime
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - ">"
123
+ - !ruby/object:Gem::Version
124
+ version: 0.6.3.rc1
125
+ - !ruby/object:Gem::Dependency
126
+ name: pg
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - ">="
130
+ - !ruby/object:Gem::Version
131
+ version: '0'
132
+ type: :runtime
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - ">="
137
+ - !ruby/object:Gem::Version
138
+ version: '0'
111
139
  description: 'ARiiP: integrate everything. Automated real-time integration & interoperability
112
140
  platform.'
113
141
  email: