Esempio n. 1
0
    def _import_workflows(self, directory, managed=True):

        for example_directory_name in os.listdir(directory):
            if os.path.isdir(os.path.join(directory, example_directory_name)):
                with open(
                        os.path.join(directory, example_directory_name,
                                     'workflow.zip')) as fp:
                    workflow_xml, metadata = Workflow.decompress(fp)

                workflow_root = etree.fromstring(workflow_xml)

                try:
                    Workflow.objects.get(name=workflow_root.get('name'),
                                         managed=managed)
                except Workflow.DoesNotExist:
                    LOG.info(
                        _("Installing workflow %s") %
                        workflow_root.get('name'))
                    LOG.debug("Workflow definition:\n%s" % workflow_xml)
                    workflow = Workflow.objects.new_workflow(owner=self.user)
                    workflow.is_shared = True
                    workflow.managed = managed
                    workflow.name = workflow_root.get('name')
                    workflow.save()
                    Workflow.objects.initialize(workflow)
                    import_workflow_root(
                        workflow=workflow,
                        workflow_definition_root=workflow_root,
                        metadata=metadata,
                        fs=self.fs)
                    workflow.doc.all().delete(
                    )  # Delete doc as it messes up the example sharing
Esempio n. 2
0
 def _import_workflows(self, directory, managed=True):
   for example_directory_name in os.listdir(directory):
     if os.path.isdir(os.path.join(directory, example_directory_name)):
       with open(os.path.join(directory, example_directory_name, 'workflow.zip')) as fp:
         workflow_xml, metadata = Workflow.decompress(fp)
       workflow_root = etree.fromstring(workflow_xml)
       try:
         Workflow.objects.get(name=workflow_root.get('name'), managed=managed)
       except Workflow.DoesNotExist:
         LOG.info(_("Installing workflow %s") % workflow_root.get('name'))
         LOG.debug("Workflow definition:\n%s" % workflow_xml)
         workflow = Workflow.objects.new_workflow(owner=self.user)
         workflow.is_shared = True
         workflow.managed = managed
         workflow.name = workflow_root.get('name')
         workflow.save()
         Workflow.objects.initialize(workflow)
         import_workflow_root(workflow=workflow, workflow_definition_root=workflow_root, metadata=metadata, fs=self.fs)
         workflow.doc.all().delete() # Delete doc as it messes up the example sharing