Method: Services::SQLSeedReader#read

Defined in:
lib/i2x/sqlseedreader.rb

#readObject

Read

> Load the seed data into the @objects array for processing.



15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
# File 'lib/i2x/sqlseedreader.rb', line 15

def read
  begin
    @client = Mysql2::Client.new(:host => @seed[:payload][:host], :username => @seed[:payload][:username] , :password => @seed[:payload][:password] , :database => @seed[:payload][:database])
    @client.query(@seed[:payload][:query], :cast => false).each(:symbolize_keys => false) do |row|          
      begin
      	object = @help.deep_copy @agent[:payload]
        object.each_pair do |key,value|
          variables = @help.identify_variables(object[key])
          variables.each do |v|
            object[key].gsub!("%{#{v}}", row[@seed[:payload][:selectors][v]].to_str)
          end
        end
   
        unless @seed[:payload][:cache].nil? then
          object[:seed] = row[@seed[:payload][:cache]]
        else
          object[:seed] = row["id"]
        end
        object[:identifier] = @agent.identifier
        @objects.push object
      rescue Exception => e

      end
    end
  rescue Exception => e
    
  end
  
  @objects
end