app/models/service_resource.rb
class ServiceResource < ApplicationRecord
STATUS_ACTIVE = 'Active'.freeze
STATUS_APPROVED = 'Approved'.freeze
STATUS_COMPLETED = 'Completed'.freeze
STATUS_FAILED = 'Failed'.freeze
STATUS_QUEUED = 'Queued'.freeze
belongs_to :service_template
belongs_to :service
belongs_to :resource, :polymorphic => true
belongs_to :source, :polymorphic => true
default_value_for :group_idx, 0
default_value_for :scaling_min, 1
default_value_for :scaling_max, -1
default_value_for :provision_index, 0
virtual_column :resource_name, :type => :string
virtual_column :resource_description, :type => :string
def readonly?
return true if super
service_template.try(:readonly?)
end
def resource_name
virtual_column_resource_value(:name).to_s
end
def resource_description
virtual_column_resource_value(:description).to_s
end
private
def virtual_column_resource_value(key)
return "" if resource.nil?
return "" unless resource.respond_to?(key)
resource.send(key)
end
end