| 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.
| instanceid | [R] |
# File lib/dsadmin/admind/ConfigManager.rb, line 62
62: def ConfigManager.instance
63: Dsadmin::SingletonConfigManager.instance
64: end
# 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
# 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
Get the network config section for the given instanceid
# File lib/dsadmin/admind/ConfigManager.rb, line 56
56: def net_config(anInstanceId = instanceid)
57: get("admind[#{anInstanceId}]/net", ConfigSection)
58: end
# 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