arii 1.7 → 1.8

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