Module: Zenoss::JSONAPI

Included in:
Connection
Defined in:
lib/zenoss/jsonapi.rb,
lib/zenoss/jsonapi/device_router.rb,
lib/zenoss/jsonapi/events_router.rb,
lib/zenoss/jsonapi/report_router.rb

Defined Under Namespace

Modules: DeviceRouter, EventsRouter, ReportRouter

Constant Summary collapse

ROUTERS =
{
  'MessagingRouter' => 'messaging',
  'EventsRouter'    => 'evconsole',
  'ProcessRouter'   => 'process',
  'ServiceRouter'   => 'service',
  'DeviceRouter'    => 'device',
  'NetworkRouter'   => 'network',
  'TemplateRouter'  => 'template',
  'DetailNavRouter' => 'detailnav',
  'ReportRouter'    => 'report',
  'MibRouter'       => 'mib',
  'ZenPackRouter'   => 'zenpack',
}

Instance Method Summary collapse

Instance Method Details

#json_request(router, method, data = {}) ⇒ Object

Raises:



37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
# File 'lib/zenoss/jsonapi.rb', line 37

def json_request(router, method, data={})
  raise ZenossError, "Router (#{router}) not found" unless ROUTERS.has_key?(router)

  req_url = "#{@zenoss_uri}/zport/dmd/#{ROUTERS[router]}_router"
  req_headers = {'Content-type' => 'application/json; charset=utf-8'}
  req_body = [{
    :action => router,
    :method => method,
    :data   => data,
    :type   => 'rpc',
    :tid    => @request_number,
  }].to_json

  @request_number += 1

  resp = @httpcli.post req_url, req_body, req_headers
  parse_json(resp)
end