Module: HadoopMetrics2

Defined in:
lib/hadoop_metrics2/api.rb,
lib/hadoop_metrics2/version.rb,
lib/hadoop_metrics2/data_node.rb,
lib/hadoop_metrics2/name_node.rb,
lib/hadoop_metrics2/node_manager.rb,
lib/hadoop_metrics2/resource_manager.rb

Defined Under Namespace

Modules: API Classes: DataNode, NameNode, NodeManager, ResourceManager

Constant Summary collapse

VERSION =
'0.0.6'

Class Method Summary collapse

Class Method Details

.get_response(endpoint) ⇒ Object



152
153
154
155
156
157
158
159
# File 'lib/hadoop_metrics2/api.rb', line 152

def self.get_response(endpoint)
  response = Net::HTTP.get_response(endpoint)
  if response.code.to_i == 200
    JSON.parse(response.body)
  else
    raise "Failed to get a response: code = #{response.code}, body = #{response.body}"
  end
end

.merge_data(data, snake_case) ⇒ Object



161
162
163
164
165
# File 'lib/hadoop_metrics2/api.rb', line 161

def self.merge_data(data, snake_case)
  f = data.first
  f.merge!(data.last)
  snake_case ? snake_cased(f) : f
end

.snake_cased(json) ⇒ Object



172
173
174
175
176
177
178
179
180
181
182
# File 'lib/hadoop_metrics2/api.rb', line 172

def self.snake_cased(json)
  snake_cased_json = {}
  json.each_pair { |key, value|
    v = json[key]
    if v.is_a?(Hash)
      v = snake_cased(v)
    end
    snake_cased_json[HadoopMetrics2.to_snake_case(key.dup)] = v
  }
  snake_cased_json
end

.to_snake_case(name) ⇒ Object



167
168
169
170
# File 'lib/hadoop_metrics2/api.rb', line 167

def self.to_snake_case(name)
  name[0] = name[0].chr.downcase
  name.gsub(/[A-Z]/) { |n| "_#{n.downcase}" }
end