def _dumpTZs(self): _ignore, root = xmlutil.newElementTreeWithRoot("timezones") addSubElement(root, "dtstamp", self.dtstamp) for _ignore, v in sorted(self.timezones.items(), key=lambda x: x[0]): v.generateXML(root) xmlutil.writeXML(self.xmlfile, root)
def _doAddToFile(self, xmlfile, records): if not os.path.exists(xmlfile): # File doesn't yet exist. Create it with items in self.db, and # set file permissions. _ignore_etree, augments_node = newElementTreeWithRoot(xmlaugmentsparser.ELEMENT_AUGMENTS) for record in self.db.itervalues(): record_node = addSubElement(augments_node, xmlaugmentsparser.ELEMENT_RECORD) addSubElement(record_node, xmlaugmentsparser.ELEMENT_UID, record.uid) addSubElement(record_node, xmlaugmentsparser.ELEMENT_ENABLE, "true" if record.enabled else "false") addSubElement(record_node, xmlaugmentsparser.ELEMENT_HOSTEDAT, record.hostedAt) addSubElement(record_node, xmlaugmentsparser.ELEMENT_ENABLECALENDAR, "true" if record.enabledForCalendaring else "false") addSubElement(record_node, xmlaugmentsparser.ELEMENT_ENABLEADDRESSBOOK, "true" if record.enabledForAddressBooks else "false") addSubElement(record_node, xmlaugmentsparser.ELEMENT_AUTOSCHEDULE, "true" if record.autoSchedule else "false") writeXML(xmlfile, augments_node) # Set permissions uid = -1 if config.UserName: try: uid = pwd.getpwnam(config.UserName).pw_uid except KeyError: log.error("User not found: %s" % (config.UserName,)) gid = -1 if config.GroupName: try: gid = grp.getgrnam(config.GroupName).gr_gid except KeyError: log.error("Group not found: %s" % (config.GroupName,)) if uid != -1 and gid != -1: os.chown(xmlfile, uid, gid) _ignore_etree, augments_node = readXML(xmlfile) # Create new record for record in records: record_node = addSubElement(augments_node, xmlaugmentsparser.ELEMENT_RECORD) addSubElement(record_node, xmlaugmentsparser.ELEMENT_UID, record.uid) addSubElement(record_node, xmlaugmentsparser.ELEMENT_ENABLE, "true" if record.enabled else "false") addSubElement(record_node, xmlaugmentsparser.ELEMENT_HOSTEDAT, record.hostedAt) addSubElement(record_node, xmlaugmentsparser.ELEMENT_ENABLECALENDAR, "true" if record.enabledForCalendaring else "false") addSubElement(record_node, xmlaugmentsparser.ELEMENT_ENABLEADDRESSBOOK, "true" if record.enabledForAddressBooks else "false") addSubElement(record_node, xmlaugmentsparser.ELEMENT_AUTOSCHEDULE, "true" if record.autoSchedule else "false") # Modify xmlfile writeXML(xmlfile, augments_node)
def _doAddToFile(self, xmlfile, records): if not os.path.exists(xmlfile): # File doesn't yet exist. Create it with items in self.db, and # set file permissions. _ignore_etree, augments_node = newElementTreeWithRoot(xmlaugmentsparser.ELEMENT_AUGMENTS) for record in self.db.itervalues(): self._addRecordToXMLDB(record, augments_node) writeXML(xmlfile, augments_node) # Set permissions uid = -1 if config.UserName: try: uid = pwd.getpwnam(config.UserName).pw_uid except KeyError: log.error("User not found: %s" % (config.UserName,)) gid = -1 if config.GroupName: try: gid = grp.getgrnam(config.GroupName).gr_gid except KeyError: log.error("Group not found: %s" % (config.GroupName,)) if uid != -1 and gid != -1: os.chown(xmlfile, uid, gid) _ignore_etree, augments_node = readXML(xmlfile) # Create new record for record in records: self._addRecordToXMLDB(record, augments_node) # Modify xmlfile writeXML(xmlfile, augments_node)
def _doAddToFile(self, xmlfile, records): if not os.path.exists(xmlfile): # File doesn't yet exist. Create it with items in self.db, and # set file permissions. _ignore_etree, augments_node = newElementTreeWithRoot( xmlaugmentsparser.ELEMENT_AUGMENTS) for record in self.db.itervalues(): self._addRecordToXMLDB(record, augments_node) writeXML(xmlfile, augments_node) # Set permissions uid = -1 if config.UserName: try: uid = pwd.getpwnam(config.UserName).pw_uid except KeyError: log.error("User not found: {user}", user=config.UserName) gid = -1 if config.GroupName: try: gid = grp.getgrnam(config.GroupName).gr_gid except KeyError: log.error("Group not found: {grp}", grp=config.GroupName) if uid != -1 and gid != -1: os.chown(xmlfile, uid, gid) _ignore_etree, augments_node = readXML(xmlfile) # Create new record for record in records: self._addRecordToXMLDB(record, augments_node) # Modify xmlfile writeXML(xmlfile, augments_node)