'Sets the config file which will receive any modifications.
The main config file can be made writable, but directing all Set()
operations into a secondary location. This secondary location will
receive any updates and will override the options for this file.
Args:
filename: A filename which will receive updates. The file is parsed first
and merged into the raw data from this object.'

def SetWriteBack(self, filename):

    try:
        self.writeback = self.LoadSecondaryConfig(filename)
        self.MergeData(self.writeback.RawData(), self.writeback_data)
    except IOError as e:
        logging.error('Unable    to    read    writeback    file:    %s', e)
        return
    except Exception as we:
        if os.path.exists(filename):
            try:
                b = (filename + '.bak')
                os.rename(filename, b)
                logging.warn('Broken    writeback    (%s)    renamed    to:    %s', we, b)
            except Exception as e:
                logging.error('Unable    to    rename    broken    writeback:    %s', e)
        raise we
    logging.info('Configuration    writeback    is    set    to    %s', filename)
