예제 #1
0
    def _doRunExportSteps(self, steps):
        """ See ISetupTool.
        """
        context = TarballExportContext(self)
        messages = {}
        marker = object()

        for step_id in steps:

            handler = self.getExportStep(step_id, marker)

            if handler is marker:
                raise ValueError('Invalid export step: %s' % step_id)

            if handler is None:
                msg = 'Step %s has an invalid export handler' % step_id
                logger = logging.getLogger('GenericSetup')
                logger.error(msg)
                messages[step_id] = msg
            else:
                messages[step_id] = handler(context)

        return {'steps': steps,
                'messages': messages,
                'tarball': context.getArchive(),
                'filename': context.getArchiveFilename()}
예제 #2
0
    def _doRunExportSteps(self, steps):
        """ See ISetupTool.
        """
        context = TarballExportContext(self)
        messages = {}
        marker = object()

        for step_id in steps:

            handler = self.getExportStep(step_id, marker)

            if handler is marker:
                raise ValueError('Invalid export step: %s' % step_id)

            if handler is None:
                msg = 'Step %s has an invalid export handler' % step_id
                logger = logging.getLogger('GenericSetup')
                logger.error(msg)
                messages[step_id] = msg
            else:
                messages[step_id] = handler(context)

        return {
            'steps': steps,
            'messages': messages,
            'tarball': context.getArchive(),
            'filename': context.getArchiveFilename()
        }
예제 #3
0
def _backup_profiles(context):
    """ Backup all profiles
    """
    steps = context.listExportSteps()
    result = TarballExportContext(context)
    marker = object()

    for step_id in steps:
        handler = context.getExportStep(step_id, marker)
        if handler is marker:
            continue

        if handler is not None:
            try:
                handler(result)
            except Exception as err:
                logger.exception("Could not backup profile step %s: %s",
                                 step_id, err)
                continue

    filename = result.getArchiveFilename()
    tarball = result.getArchive()

    if not os.path.isdir(PATH):
        os.makedirs(PATH)

    path = os.path.join(PATH, filename)
    with open(path, 'w') as ofile:
        ofile.write(tarball)
예제 #4
0
    def _doRunExportSteps(self, steps):
        """ See ISetupTool.
        """
        context = TarballExportContext(self)
        messages = {}
        marker = object()

        for step_id in steps:

            handler = self.getExportStep(step_id, marker)

            if handler is marker:
                raise ValueError("Invalid export step: %s" % step_id)

            if handler is None:
                msg = "Step %s has an invalid export handler" % step_id
                logger = logging.getLogger("GenericSetup")
                logger.error(msg)
                messages[step_id] = msg
            else:
                messages[step_id] = handler(context)

        return {
            "steps": steps,
            "messages": messages,
            "tarball": context.getArchive(),
            "filename": context.getArchiveFilename(),
        }
 def __call__(self):
     """See ..interfaces.exportimport.IFormFolderExportView.__call__
     """
     ctx = TarballExportContext(self.context)
     
     self.request.RESPONSE.setHeader('Content-type', 'application/x-gzip')
     self.request.RESPONSE.setHeader('Content-disposition',
                        'attachment; filename=%s' % ctx.getArchiveFilename())
     
     # export the structure treating the current form as our root context
     IFilesystemExporter(self.context).export(ctx, 'structure', True)
     
     return ctx.getArchive()
예제 #6
0
    def __call__(self):
        """See ..interfaces.exportimport.IFormFolderExportView.__call__
        """
        ctx = TarballExportContext(self.context)

        self.request.RESPONSE.setHeader('Content-type', 'application/x-gzip')
        self.request.RESPONSE.setHeader(
            'Content-disposition',
            'attachment; filename=%s' % ctx.getArchiveFilename())

        # export the structure treating the current form as our root context
        IFilesystemExporter(self.context).export(ctx, 'structure', True)

        return ctx.getArchive()
    def __call__(self):
        """See ..interfaces.exportimport.IEasyFormExportView.__call__
        """
        ctx = TarballExportContext(self.context)
        response = self.request.RESPONSE
        disposition = 'attachment; filename="{0}-{1:{2}}.tar.gz"'.format(
            self.context.getId(), datetime.now(), '%Y%m%d%H%M%S')

        response.setHeader('Content-type', 'application/x-gzip')
        response.setHeader('Content-disposition', disposition)

        # export the structure treating the current form as our root context
        IFilesystemExporter(self.context).export(ctx, 'structure', True)

        return ctx.getArchive()