From a260b1c6b1ad6aefad803c9720059b7ceb4ab45d Mon Sep 17 00:00:00 2001
From: Megan Henning <meganhenning@flywheel.io>
Date: Fri, 19 Jan 2018 17:24:53 -0600
Subject: [PATCH] Use copy of base analysis in loop

---
 api/jobs/batch.py | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)

diff --git a/api/jobs/batch.py b/api/jobs/batch.py
index ad497b74..a6258aed 100644
--- a/api/jobs/batch.py
+++ b/api/jobs/batch.py
@@ -147,10 +147,10 @@ def run(batch_job):
     tags.append('batch')
 
     if gear.get('category') == 'analysis':
-        analysis = proposal.get('analysis', {})
-        if not analysis.get('label'):
+        analysis_base = proposal.get('analysis', {})
+        if not analysis_base.get('label'):
             time_now = datetime.datetime.utcnow()
-            analysis['label'] = {'label': '{} {}'.format(gear_name, time_now)}
+            analysis_base['label'] = {'label': '{} {}'.format(gear_name, time_now)}
         an_storage = AnalysisStorage()
         acq_storage = AcquisitionStorage()
 
@@ -172,6 +172,8 @@ def run(batch_job):
 
         if gear.get('category') == 'analysis':
 
+            analysis = copy.deepcopy(analysis_base)
+
             # Create analysis
             acquisition_id = inputs.values()[0].get('id')
             session_id = acq_storage.get_container(acquisition_id, projection={'session':1}).get('session')
@@ -195,6 +197,8 @@ def run(batch_job):
 
         if gear.get('category') == 'analysis':
 
+            analysis = copy.deepcopy(analysis_base)
+
             # Create analysis
             result = an_storage.create_job_and_analysis('sessions', bson.ObjectId(dest['id']), analysis, job_map, origin, None)
             job = result.get('job')
-- 
GitLab