Module: Nexpose::DataTable
- Defined in:
- lib/nexpose/data_table.rb
Overview
Data table functions which extract data from the Nexpose UI.
The functions in this file are utility functions for accessing data in the same manner as the Nexpose UI. These functions are not designed for external use, but to aid exposing data through other methods in the gem.
Class Method Summary collapse
-
._dyn_headers(response) ⇒ Object
Parse headers out of a dyntable response.
-
._dyn_record(row) ⇒ Object
Parse records out of the row of a dyntable.
-
._dyn_rows(response) ⇒ Object
Parse rows out of a dyntable into an array of values.
-
._get_dyn_table(console, address, payload = nil) ⇒ Array[Hash]
Helper method to get a Dyntable into a consumable Ruby object.
-
._get_json_table(console, address, parameters = {}, page_size = 500, records = nil) ⇒ Array[Hash]
Helper method to get the YUI tables into a consumable Ruby object.
Class Method Details
._dyn_headers(response) ⇒ Object
Parse headers out of a dyntable response.
76 77 78 79 80 81 82 |
# File 'lib/nexpose/data_table.rb', line 76 def _dyn_headers(response) headers = [] response.elements.each('DynTable/MetaData/Column') do |header| headers << header.attributes['name'] end headers end |
._dyn_record(row) ⇒ Object
Parse records out of the row of a dyntable.
94 95 96 97 98 99 100 |
# File 'lib/nexpose/data_table.rb', line 94 def _dyn_record(row) record = [] row.elements.each('td') do |value| record << (value.text ? value.text.to_s : '') end record end |
._dyn_rows(response) ⇒ Object
Parse rows out of a dyntable into an array of values.
85 86 87 88 89 90 91 |
# File 'lib/nexpose/data_table.rb', line 85 def _dyn_rows(response) rows = [] response.elements.each('DynTable/Data/tr') do |row| rows << _dyn_record(row) end rows end |
._get_dyn_table(console, address, payload = nil) ⇒ Array[Hash]
Helper method to get a Dyntable into a consumable Ruby object.
Example usage:
DataTable._get_dyn_table(@console, '/data/asset/os/dyntable.xml?tableID=OSSynopsisTable')
62 63 64 65 66 67 68 69 70 71 72 73 |
# File 'lib/nexpose/data_table.rb', line 62 def _get_dyn_table(console, address, payload = nil) if payload response = AJAX.post(console, address, payload) else response = AJAX.get(console, address) end response = REXML::Document.new(response) headers = _dyn_headers(response) rows = _dyn_rows(response) rows.map { |row| Hash[headers.zip(row)] } end |
._get_json_table(console, address, parameters = {}, page_size = 500, records = nil) ⇒ Array[Hash]
Helper method to get the YUI tables into a consumable Ruby object.
Example usage:
DataTable._get_json_table(@console,
'/data/asset/site',
{ 'sort' => 'assetName',
'table-id' => 'site-assets',
'siteID' => site_id })
31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 |
# File 'lib/nexpose/data_table.rb', line 31 def _get_json_table(console, address, parameters = {}, page_size = 500, records = nil) parameters['dir'] = 'DESC' parameters['startIndex'] = -1 parameters['results'] = -1 post = AJAX.form_post(console, address, parameters) data = JSON.parse(post) total = records || data['totalRecords'] return [] if total == 0 rows = [] parameters['results'] = page_size while rows.length < total parameters['startIndex'] = rows.length data = JSON.parse(AJAX.form_post(console, address, parameters)) rows.concat data['records'] end rows end |