1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 import os
17 import sys
18
19
20 try:
21 import ConfigParser
22 except:
23 import configparser as ConfigParser
24
25
26 from config_common import utils
27
29 _local_config_file_name = '.rhncfgrc'
30 _instance = None
31
32 - def __init__(self, section, defaults=None, config_file_override=None):
33 """defaults is either None, or a dictionary of default values which can be overridden"""
34 if defaults:
35 for (k, v) in defaults.items():
36 if type(v) == int:
37 defaults[k] = str(v)
38 ConfigParser.ConfigParser.__init__(self, defaults)
39 self.section = section
40 self.overrides = {}
41 self.mydefaults = self.defaults()
42 self.config_file_override = config_file_override
43
45 self.overrides.clear()
46 self.overrides.update(overrides)
47
48 try:
49 self.read(self._get_config_files())
50 except ConfigParser.MissingSectionHeaderError:
51 e = sys.exc_info()[1]
52 print("Config error: line %s, file %s: %s" % (e.lineno,
53 e.filename, e))
54 sys.exit(1)
55
57 if sys.platform.find('sunos') > -1:
58 default_config_file = "/opt/redhat/rhn/solaris/etc/sysconfig/rhn/%s.conf" % self.section
59 else:
60 default_config_file = "/etc/sysconfig/rhn/%s.conf" % self.section
61
62 config_file_list = [
63 default_config_file,
64 os.path.join(utils.get_home_dir(), self._local_config_file_name),
65 self._local_config_file_name,
66 ]
67
68 if self.config_file_override:
69 config_file_list.append(self.config_file_override)
70
71 return config_file_list
72
74
75
76
77 if option == 'server_list':
78 if 'server_list' in self.mydefaults:
79 if type(self.mydefaults['server_list']) is type([]):
80 return self.mydefaults['server_list']
81
82 try:
83 ret = self.get(self.section, option, vars=self.overrides)
84
85
86
87
88
89 try:
90 if type(ret) != type([]):
91 ret = int(ret)
92 except ValueError:
93 pass
94 return ret
95 except (ConfigParser.NoOptionError, ConfigParser.NoSectionError):
96 pass
97
98 defaults = self.defaults()
99
100 return defaults.get(option)
101
103 return self.options(self.section)
104
107
108 -def init(section, defaults=None, config_file_override=None, **overrides):
111
114
119
122
125
127 init('rhncfgcli')
128 print("repository: %s" % get("repository"))
129 print("useGPG: %s" % get("useGPG"))
130 print("serverURL: %s" % get("serverURL"))
131
132 if __name__ == '__main__':
133 main()
134