class Appdynamics::Application

Attributes

application_id[R]
application_name[R]
controller[R]

Public Class Methods

from_hash(hsh, controller) click to toggle source
# File lib/appdynamics/application.rb, line 26
def self.from_hash hsh, controller
    application = Application.new controller, hsh['application_id'], hsh['application_name']
    application.metrics = hsh['metrics'] if hsh['metrics']
    application.tiers = hsh['tiers'] if hsh['tiers']
    application.nodes = hsh['nodes'] if hsh['nodes']
    application
end
new(controller, application_id, application_name) click to toggle source
# File lib/appdynamics/application.rb, line 5
def initialize controller, application_id, application_name
    @controller = controller
    @application_name = application_name
    @application_id = application_id
end

Public Instance Methods

find_metric_by_name(nam) click to toggle source
# File lib/appdynamics/application.rb, line 64
def find_metric_by_name nam
    metric = nil
    metrics.each do |m|
        metric = m.find_by_name nam
        break unless metric.nil?
    end
    metric
end
find_metric_by_path(path) click to toggle source
# File lib/appdynamics/application.rb, line 73
def find_metric_by_path path
    metric = metrics.select{|metric| metric.name == path.first}.first
    return nil unless metric
    path.shift
    path.each do |metric_name|
        metric = metric.child_by_name metric_name
        return nil unless metric
    end
    metric
end
metrics() click to toggle source
# File lib/appdynamics/application.rb, line 54
def metrics
    @metrics ||= controller.metrics_for self
end
metrics=(metrics) click to toggle source
# File lib/appdynamics/application.rb, line 58
def metrics= metrics
    @metrics = metrics.map{|metric|
        Metric.from_hash metric, @controller, self
    }
end
name() click to toggle source
# File lib/appdynamics/application.rb, line 11
def name
    @application_name
end
nodes() click to toggle source
# File lib/appdynamics/application.rb, line 34
def nodes
    @nodes ||= controller.nodes_for self
end
nodes=(nodes) click to toggle source
# File lib/appdynamics/application.rb, line 38
def nodes= nodes
    @nodes = nodes.map{|node|
        Node.from_hash node, @controller, self
    }
end
relative_route(*_) click to toggle source
# File lib/appdynamics/application.rb, line 84
def relative_route *_
    "applications/#{application_id}"
end
tiers() click to toggle source
# File lib/appdynamics/application.rb, line 44
def tiers
    @tiers ||= controller.tiers_for self
end
tiers=(tiers) click to toggle source
# File lib/appdynamics/application.rb, line 48
def tiers= tiers
    @tiers = tiers.map{|tier|
        Tier.from_hash tier, @controller, self
    }
end
to_hash() click to toggle source
# File lib/appdynamics/application.rb, line 15
def to_hash
    hsh = {
        application_name: @application_name,
        application_id: @application_id
    }
    hsh.merge!({nodes: @nodes.map{|node| node.to_hash}}) if @nodes
    hsh.merge!({metrics: @metrics.map{|node| node.to_hash}}) if @metrics
    hsh.merge!({tiers: @tiers.map{|node| node.to_hash}}) if @tiers
    hsh
end