63 lines
2.8 KiB
Ruby
63 lines
2.8 KiB
Ruby
module JamRuby
|
|
class IcecastServer < ActiveRecord::Base
|
|
|
|
belongs_to :limit, :class_name => "JamRuby::IcecastLimit", foreign_key: 'limit_id', :inverse_of => :servers
|
|
belongs_to :admin_auth, :class_name => "JamRuby::IcecastAdminAuthentication", foreign_key: 'admin_auth_id', :inverse_of => :servers
|
|
belongs_to :directory, :class_name => "JamRuby::IcecastDirectory", foreign_key: 'directory_id', :inverse_of => :servers
|
|
belongs_to :master_relay, :class_name => "JamRuby::IcecastMasterServerRelay", foreign_key: 'master_relay_id', :inverse_of => :servers
|
|
belongs_to :path, :class_name => "JamRuby::IcecastPath", foreign_key: 'path_id', :inverse_of => :servers
|
|
belongs_to :logging, :class_name => "JamRuby::IcecastLogging", foreign_key: 'logging_id', :inverse_of => :servers
|
|
belongs_to :security, :class_name => "JamRuby::IcecastSecurity", foreign_key: 'security_id', :inverse_of => :servers
|
|
|
|
has_and_belongs_to_many :mounts, :class_name => "JamRuby::IcecastMount", :join_table => "icecast_server_mounts"
|
|
has_and_belongs_to_many :listen_sockets, :class_name => "JamRuby::IcecastListenSocket", :join_table => "icecast_server_sockets"
|
|
has_and_belongs_to_many :relays, :class_name => "JamRuby::IcecastRelay", :join_table => "icecast_server_relays"
|
|
|
|
validates :config_changed, :inclusion => {:in => [true, false]}
|
|
validates :hostname, presence: true
|
|
validates :location, presence: true
|
|
validates :admin_email, presence: true
|
|
validates :fileserve, :inclusion => {:in => [true, false]}
|
|
validates :server_id, presence: true
|
|
|
|
validates :limit, presence: true
|
|
validates :admin_auth, presence: true
|
|
validates :path, presence: true
|
|
validates :logging, presence: true
|
|
validates :security, presence: true
|
|
validates :listen_sockets, length: {minimum: 1}
|
|
|
|
def dumpXml (output=$stdout, indent=1)
|
|
|
|
builder = ::Builder::XmlMarkup.new(:target => output, :indent => indent)
|
|
|
|
builder.tag! 'icecast' do |icecast|
|
|
icecast.tag! 'hostname', hostname
|
|
icecast.tag! 'location', location
|
|
icecast.tag! 'admin', admin_email
|
|
icecast.tag! 'fileserve', fileserve ? 1 : 0
|
|
icecast.tag! 'server-id', server_id
|
|
|
|
limit.dumpXml(builder) unless limit.nil?
|
|
admin_auth.dumpXml(builder) unless admin_auth.nil?
|
|
directory.dumpXml(builder) unless directory.nil?
|
|
master_relay.dumpXml(builder) unless master_relay.nil?
|
|
path.dumpXml(builder) unless path.nil?
|
|
logging.dumpXml(builder) unless logging.nil?
|
|
security.dumpXml(builder) unless security.nil?
|
|
|
|
relays.each do |relay|
|
|
relay.dumpXml(builder)
|
|
end
|
|
|
|
listen_sockets.each do |listen_socket|
|
|
listen_socket.dumpXml(builder)
|
|
end
|
|
|
|
mounts.each do |mount|
|
|
mount.dumpXml(builder)
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end |