Преглед изворни кода

[core] Sync imported workflow from the new Oozie Editor

Romain Rigaux пре 10 година
родитељ
комит
04ec871
2 измењених фајлова са 19 додато и 0 уклоњено
  1. 2 0
      apps/oozie/src/oozie/views/editor2.py
  2. 17 0
      desktop/core/src/desktop/models.py

+ 2 - 0
apps/oozie/src/oozie/views/editor2.py

@@ -205,6 +205,8 @@ def save_workflow(request):
   if subworkflows:
     dependencies = Document2.objects.filter(uuid__in=subworkflows)
     workflow_doc.dependencies = dependencies
+  else:
+    workflow_doc.dependencies = []
 
   if workflow['properties'].get('imported'): # We save and old format workflow to the latest
     workflow['properties']['imported'] = False

+ 17 - 0
desktop/core/src/desktop/models.py

@@ -325,6 +325,23 @@ class DocumentManager(models.Manager):
     except Exception, e:
       LOG.warn(force_unicode(e))
 
+    try:
+      with transaction.atomic():
+        for job in Document2.objects.all():
+          if job.doc.count() > 1:
+            LOG.warn('Deleting duplicate document %s for %s' % (job.doc.all(), job))
+            job.doc.all().delete()
+
+          if not job.doc.exists():
+            if job.type == 'oozie-workflow2':
+              extra = 'workflow2'
+            else:
+              extra = ''
+            doc = Document.objects.link(job, owner=job.owner, name=job.name, description=job.description, extra=extra)
+    except Exception, e:
+      LOG.warn(force_unicode(e))
+
+
     # Make sure doc have at least a tag
     try:
       for doc in Document.objects.filter(tags=None):