/** * Parse a pivot from a response from splunkd. * * @param service The HTTP service this pivot operates on. * @param content an InputStream returned by an HTTP response. * @return a Pivot object. */ static Pivot parseStream(Service service, InputStream content) { AtomFeed feed = AtomFeed.parseStream(content); if (feed.entries.size() != 1) { throw new IllegalStateException("Expected one Atom entry; found " + feed.entries.size()); } AtomEntry entry = feed.entries.get(0); return new Pivot(service, entry); } }
/** * @param args options for creating a Job * @return a Job object running this pivot, accelerated if possible. */ public Job run(JobArgs args) { if (this.getAcceleratedQuery() == null) { return service.search(this.getPivotQuery(), args); } else { return service.search(this.getAcceleratedQuery(), args); } }
/** * @return a Job object running this pivot, accelerated if possible. */ public Job run() { return run(new JobArgs()); }
/** * Query Splunk for SPL queries corresponding to this pivot. * * @return a Pivot object encapsulating the returned queries. */ public Pivot pivot() { Service service = this.dataModelObject.getDataModel().getService(); Args args = new Args(); args.put("pivot_json", toJson()); if (this.accelerationNamespace != null) { args.put("namespace", this.accelerationNamespace); } ResponseMessage response = service.get( "datamodel/pivot/" + this.dataModelObject.getDataModel().getName(), args ); if (response.getStatus() != 200) { throw HttpException.create(response); } else { return Pivot.parseStream(service, response.getContent()); } } }