Class Dsadmin::Admind::ConfigManager
In: lib/dsadmin/admind/ConfigManager.rb
Parent: Dsadmin::SingletonConfigManager

Configuration management class

Descendant of Dsadmin::SingletonConfigManager and Dsadmin::BaseConfigManager — see there for more documentation.

Methods

Attributes

instanceid  [R] 

Public Class methods

[Source]

    # File lib/dsadmin/admind/ConfigManager.rb, line 62
62:       def ConfigManager.instance
63:         Dsadmin::SingletonConfigManager.instance
64:       end

[Source]

     # File lib/dsadmin/admind/ConfigManager.rb, line 106
106:       def initialize(anInstanceID, aCfgFile)
107:         @instanceid = anInstanceID || System.instance.hostname
108:         aCfgFile ||= 'config/admind.xml'
109:         
110:         checkCfgfilePerms(aCfgFile)
111:         
112:         super(aCfgFile)
113:         
114:         if(root.admind[instanceid].nil?)
115:           raise(IOError, "Invalid Instance ID '#{instanceid}'")
116:         end
117:         
118:         @master     = nil
119:       end

[Source]

    # File lib/dsadmin/admind/ConfigManager.rb, line 67
67:       def ConfigManager.setup(anInstanceID, aCfgFile)
68:         inst = new(anInstanceID, aCfgFile)
69:         Dsadmin::SingletonConfigManager.instance = inst
70:       end

Public Instance methods

Check if the current admind instance is the master instance

[Source]

    # File lib/dsadmin/admind/ConfigManager.rb, line 38
38:       def master?
39:         if(@master.nil?)
40:           @master = (instanceid == root.globaldefs.master_instance)
41:         end
42:         
43:         @master
44:       end

Get the network config section for the given instanceid

[Source]

    # File lib/dsadmin/admind/ConfigManager.rb, line 56
56:       def net_config(anInstanceId = instanceid)
57:         get("admind[#{anInstanceId}]/net", ConfigSection)
58:       end

Check if the current admind instance is a slave instance

[Source]

    # File lib/dsadmin/admind/ConfigManager.rb, line 48
48:       def slave?
49:         return ! master?
50:       end

Protected Instance methods

[Source]

    # File lib/dsadmin/admind/ConfigManager.rb, line 83
83:       def checkCfgfilePerms(aCfgFile)
84:         return if(defined?(TEST_MODE))
85:         
86:         path = localpath(aCfgFile)
87:         stat = File.stat(path)
88:         mode = stat.mode & 0777
89:         
90:         if(stat.uid != 0)
91:           raise SecurityError,
92:                       "Config file '#{path}' has to be owned by root"
93:         end
94:         
95:         if((mode & ~0600) != 0)
96:           raise SecurityError,
97:                       "Config file '#{path}' may only be readable/writeable by root"
98:         end
99:       end

[Source]

    # File lib/dsadmin/admind/ConfigManager.rb, line 78
78:       def main_path
79:         "admind[#{instanceid}]"
80:       end

[Validate]