113
113
# support converting the old top level format into new format
114
114
mycfg = cfg.get('rsyslog', {})
116
if isinstance(mycfg, list):
117
mycfg[KEYNAME_CONFIGS] = mycfg
116
if isinstance(cfg.get('rsyslog'), list):
117
mycfg = {KEYNAME_CONFIGS: cfg.get('rsyslog')}
118
118
if KEYNAME_LEGACY_FILENAME in cfg:
119
119
mycfg[KEYNAME_FILENAME] = cfg[KEYNAME_LEGACY_FILENAME]
120
120
if KEYNAME_LEGACY_DIR in cfg:
121
mycfg[KEYNAME_DIR] = cfg[KEYNAME_DIR]
121
mycfg[KEYNAME_DIR] = cfg[KEYNAME_LEGACY_DIR]
124
(KEYNAME_DIR, DEF_DIR, six.text_type),
125
(KEYNAME_FILENAME, DEF_FILENAME, six.text_type)
126
(KEYNAME_RELOAD, DEF_RELOAD, (six.text_type, list)))
124
(KEYNAME_CONFIGS, [], list),
125
(KEYNAME_DIR, DEF_DIR, six.string_types),
126
(KEYNAME_FILENAME, DEF_FILENAME, six.string_types),
127
(KEYNAME_RELOAD, DEF_RELOAD, six.string_types + (list,)))
128
129
for key, default, vtypes in fillup:
129
130
if key not in mycfg or not isinstance(mycfg[key], vtypes):
156
157
filename = os.path.join(cfg_dir, filename)
158
159
# Truncate filename first time you see it
159
omode = "ab" if filename not in files:
161
if filename not in files:
161
163
files.append(filename)
172
174
def handle(name, cfg, cloud, log, _args):
175
# - "*.* @@192.158.1.1"
176
# - content: "*.* @@192.0.2.1:10514"
177
# - filename: 01-examplecom.conf
179
# *.* @@syslogd.example.com
180
# config_dir: DEF_DIR
181
# config_filename: DEF_FILENAME
182
# service_reload: "auto"
184
175
if 'rsyslog' not in cfg:
185
176
log.debug(("Skipping module named %s,"
186
177
" no 'rsyslog' key in configuration"), name)