示例#1
0
    def __writeDSMl(self, file):
        """Write the export list to DSML format.
        """
        with open(file, 'w') as f:
            # DSML need some header info.
            header = StringIO.StringIO()
            dsmlWriter = dsml.DSMLWriter(header)
            dsmlWriter.writeHeader()
            f.write(header.getvalue())
            header.close()

            # Write the actuall export entries
            for x in self.exportList:
                try:
                    f.write(x.convertToDsml())
                except IOError, e:
                    msg = 'Could not export {0}. Reason\n{1}'
                    self.__logger.error(msg.format((str(x), str(e))))

            # DSML need additional footer info, to close the format
            footer = StringIO.StringIO()
            dsmlWriter = dsml.DSMLWriter(footer)
            dsmlWriter.writeFooter()
            f.write(footer.getvalue())
            footer.close()
示例#2
0
    def export(self):
        """Slot for the export button.

        Exports all checked items to the file defined in the outputEdit
        widget.
        """
        # Iterate through the modelitems and remove unchekced items
        # from the export dictionary, which will be used later.
        for i in xrange(self.model.rowCount()):
            item = self.model.itemFromIndex(self.model.index(i, 0))
            if item.checkState() != QtCore.Qt.Checked:
                del self.exportDict[self.__utf8(item.text())]

        # Map the dictionary keys
        #
        itemList = map(lambda x: self.exportDict[x][0], self.exportDict.keys())
        itemList.sort()
        try:
            filename = self.outputEdit.text()
            fileHandler = open(filename, 'w')
            format = self.__utf8(self.formatBox.currentText())

            # DSML need some header info.
            if format == 'DSML':
                tmp = StringIO.StringIO()
                dsmlWriter = dsml.DSMLWriter(tmp)
                dsmlWriter.writeHeader()
                fileHandler.write(tmp.getvalue())

            # Write the LDAP entries to file
            for x in itemList:
                try:
                    if format == 'LDIF':
                        fileHandler.write(x.convertToLdif())

                    elif format == 'DSML':
                        fileHandler.write(x.convertToDsml())
                except IOError, e:
                    msg = 'Could not export %s. Reason\n%s' % (str(x), str(e))
                    self.__logger.error(msg)

            # DSML need additional footer info, to close the format
            if format == 'DSML':
                print 'footer'
                tmp = StringIO.StringIO()
                dsmlWriter = dsml.DSMLWriter(tmp)
                dsmlWriter.writeFooter()
                fileHandler.write(tmp.getvalue())

            fileHandler.close()
示例#3
0
 def __init__(self,l,writer_obj,headerStr='',footerStr=''):
   import dsml
   if isinstance(writer_obj,dsml.DSMLWriter):
     self._dsml_writer = writer_obj
   else:
     self._dsml_writer = dsml.DSMLWriter(writer_obj)
   FileWriter.__init__(self,l,self._dsml_writer._output_file,headerStr,footerStr)
示例#4
0
  def __init__(self,l,writer_obj,headerStr='',footerStr=''):
    """
    Initialize a StreamResultHandler

    Parameters:
    l
        LDAPObject instance
    writer_obj
        Either a file-like object or a ldif.DSMLWriter instance
        used for output
    """
    import dsml
    if isinstance(writer_obj,dsml.DSMLWriter):
      self._dsml_writer = writer_obj
    else:
      self._dsml_writer = dsml.DSMLWriter(writer_obj)
    FileWriter.__init__(self,l,self._dsml_writer._output_file,headerStr,footerStr)