~smoser/cloud-init/syslog-rework

« back to all changes in this revision

Viewing changes to cloudinit/config/cc_rsyslog.py

  • Committer: Scott Moser
  • Date: 2015-07-27 20:34:09 UTC
  • Revision ID: smoser@ubuntu.com-20150727203409-nncad38ixx663dec
add rsyslog tests

reasonable test of reworked rsyslog module

Show diffs side-by-side

added added

removed removed

Lines of Context:
113
113
    # support converting the old top level format into new format
114
114
    mycfg = cfg.get('rsyslog', {})
115
115
 
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]
122
122
 
123
123
    fillup = (
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,)))
127
128
 
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)
157
158
 
158
159
        # Truncate filename first time you see it
159
 
        omode = "ab" if filename not in files:
 
160
        omode = "ab"
 
161
        if filename not in files:
160
162
            omode = "wb"
161
163
            files.append(filename)
162
164
 
170
172
 
171
173
 
172
174
def handle(name, cfg, cloud, log, _args):
173
 
    # rsyslog:
174
 
    #  configs:
175
 
    #   - "*.* @@192.158.1.1"
176
 
    #   - content: "*.*   @@192.0.2.1:10514"
177
 
    #   - filename: 01-examplecom.conf
178
 
    #     content: |
179
 
    #       *.*   @@syslogd.example.com
180
 
    #  config_dir: DEF_DIR
181
 
    #  config_filename: DEF_FILENAME
182
 
    #  service_reload: "auto"
183
 
 
184
175
    if 'rsyslog' not in cfg:
185
176
        log.debug(("Skipping module named %s,"
186
177
                   " no 'rsyslog' key in configuration"), name)