Class: DruidConfig::Entities::DataSource
- Inherits:
-
Object
- Object
- DruidConfig::Entities::DataSource
- Includes:
- Util, HTTParty
- Defined in:
- lib/druid_config/entities/data_source.rb
Overview
Init a DataSource
Constant Summary collapse
- DEFAULT_DATASOURCE =
Name of default datasource
'_default'.freeze
Instance Attribute Summary collapse
-
#load_status ⇒ Object
readonly
Returns the value of attribute load_status.
-
#name ⇒ Object
readonly
Returns the value of attribute name.
-
#properties ⇒ Object
readonly
Returns the value of attribute properties.
Instance Method Summary collapse
- #history_rules(interval) ⇒ Object
-
#info ⇒ Object
The following methods are referenced to Druid API.
-
#initialize(metadata, load_status) ⇒ DataSource
constructor
Initialize a DataSource.
- #interval(interval, params = '') ⇒ Object
-
#intervals(params = '') ⇒ Object
Intervals —————–.
-
#rules(params = '') ⇒ Object
Rules —————–.
-
#save_rules ⇒ Object
Save current rules.
- #segment(segment) ⇒ Object
-
#segments ⇒ Object
Segments and Tiers —————–.
- #tiers ⇒ Object
-
#update_rules(new_rules) ⇒ Object
Apply given rules to the datasource.
Methods included from Util
#pop_uri, #query_overlord, #secure_query, #stash_uri
Constructor Details
#initialize(metadata, load_status) ⇒ DataSource
Initialize a DataSource
21 22 23 24 25 26 27 28 29 |
# File 'lib/druid_config/entities/data_source.rb', line 21 def initialize(, load_status) @name = ['name'] @properties = ['properties'] @load_status = load_status # Set end point for HTTParty self.class.base_uri( "#{DruidConfig.client.coordinator}"\ "druid/coordinator/#{DruidConfig::Version::API_VERSION}") end |
Instance Attribute Details
#load_status ⇒ Object (readonly)
Returns the value of attribute load_status.
13 14 15 |
# File 'lib/druid_config/entities/data_source.rb', line 13 def load_status @load_status end |
#name ⇒ Object (readonly)
Returns the value of attribute name.
13 14 15 |
# File 'lib/druid_config/entities/data_source.rb', line 13 def name @name end |
#properties ⇒ Object (readonly)
Returns the value of attribute properties.
13 14 15 |
# File 'lib/druid_config/entities/data_source.rb', line 13 def properties @properties end |
Instance Method Details
#history_rules(interval) ⇒ Object
120 121 122 123 124 125 |
# File 'lib/druid_config/entities/data_source.rb', line 120 def history_rules(interval) secure_query do self.class.get("/rules/#{@name}/history"\ "?interval=#{interval}") end end |
#info ⇒ Object
The following methods are referenced to Druid API. To check the funcionality about it, please go to Druid documentation:
38 39 40 41 42 |
# File 'lib/druid_config/entities/data_source.rb', line 38 def info secure_query do @info ||= self.class.get("/datasources/#{@name}") end end |
#interval(interval, params = '') ⇒ Object
52 53 54 55 56 57 |
# File 'lib/druid_config/entities/data_source.rb', line 52 def interval(interval, params = '') secure_query do self.class.get("/datasources/#{@name}/intervals/#{interval}"\ "?#{params}") end end |
#intervals(params = '') ⇒ Object
Intervals
46 47 48 49 50 |
# File 'lib/druid_config/entities/data_source.rb', line 46 def intervals(params = '') secure_query do self.class.get("/datasources/#{@name}/intervals?#{params}") end end |
#rules(params = '') ⇒ Object
Rules
80 81 82 83 84 85 86 87 88 89 |
# File 'lib/druid_config/entities/data_source.rb', line 80 def rules(params = '') return @rules if @rules @rules = DruidConfig::Entities::RuleCollection.new secure_query do self.class.get("/rules/#{@name}?#{params}").each do |rule| @rules << DruidConfig::Entities::Rule.parse(rule) end end @rules end |
#save_rules ⇒ Object
Save current rules
Returns:
Boolean indicating the status of the request
116 117 118 |
# File 'lib/druid_config/entities/data_source.rb', line 116 def save_rules post_rules(rules) end |
#segment(segment) ⇒ Object
70 71 72 |
# File 'lib/druid_config/entities/data_source.rb', line 70 def segment(segment) segments.select { |s| s.id == segment } end |
#segments ⇒ Object
Segments and Tiers
61 62 63 64 65 66 67 68 |
# File 'lib/druid_config/entities/data_source.rb', line 61 def segments secure_query do @segments ||= self.class.get("/datasources/#{@name}/segments?full").map do |s| DruidConfig::Entities::Segment.new(s) end end end |
#tiers ⇒ Object
74 75 76 |
# File 'lib/druid_config/entities/data_source.rb', line 74 def tiers info['tiers'] end |
#update_rules(new_rules) ⇒ Object
Apply given rules to the datasource
Paremeters:
- rules
-
RuleCollection of rules
Returns:
Boolean indicating the status of the request
101 102 103 104 105 106 107 108 |
# File 'lib/druid_config/entities/data_source.rb', line 101 def update_rules(new_rules) if post_rules(new_rules) @rules = new_rules true else false end end |