From 9080c3fdfb717e10e1f2cdb40f59cbbcc0e7245f Mon Sep 17 00:00:00 2001
From: mancini <mancini@astron.nl>
Date: Wed, 25 Mar 2020 17:37:18 +0100
Subject: [PATCH] Refactor find skymodel cal

Former-commit-id: 33381e1da842be3181cddf899f9e0adb0f293a2e
Former-commit-id: 26f182cb05ad5123e3a237c51f1db0c0ead04f4d
---
 steps/find_skymodel_cal.cwl | 33 +++++++++++++++++++++++++++------
 1 file changed, 27 insertions(+), 6 deletions(-)

diff --git a/steps/find_skymodel_cal.cwl b/steps/find_skymodel_cal.cwl
index 51a1dc4a..936a3959 100644
--- a/steps/find_skymodel_cal.cwl
+++ b/steps/find_skymodel_cal.cwl
@@ -7,12 +7,14 @@ baseCommand:
   - python3
 inputs:
     - id: msin
-      type: Directory
+      type: Directory[]
       doc: MS containing the calibrator
       inputBinding:
         position: 0
     - id: skymodels
-      type: Directory
+      type:
+        - Directory?
+        - File?
       doc: Directory containing the sky models
     - id: skymodels_extension
       type: string?
@@ -23,6 +25,9 @@ arguments:
   - '-c'
   - |
     import sys
+    import os
+    import shutil
+    null = None
 
     from unittest.mock import MagicMock
     sys.modules['lofarpipe.support.data_map'] = MagicMock()
@@ -31,16 +36,26 @@ arguments:
     from find_skymodel_cal import main as find_skymodel
     import json
     mss = sys.argv[1:]
-    skymodels = "$(inputs.skymodels.path)"
+    print(mss)
+    skymodels = $(inputs.skymodels)
 
     extension = "$(inputs.skymodels_extension)"
+    if skymodels is None:
+        skymodels = "/data/skymodels"
+    else:
+        skymodels = skymodels["path"]
     output = {}
     if extension != 'null':
         output = find_skymodel(mss, skymodels, './', extension)
     else:
         output = find_skymodel(mss, skymodels, './')
 
-    cwl_output = {'class': 'File', 'path': output['SkymodelCal']}
+    skymodel_path = output['SkymodelCal']
+    skymodel_name = output['SkymodelName']
+    skymodel_path = shutil.copy(skymodel_path, os.getcwd())
+    cwl_output = {"file":{'class': 'File', 'path': skymodel_path},
+                  "skymodel_name": skymodel_name}
+
     with open('./out.json', 'w') as fp:
         json.dump(cwl_output, fp)
 outputs:
@@ -49,11 +64,17 @@ outputs:
     outputBinding:
         loadContents: true
         glob: 'out.json'
-        outputEval: $(JSON.parse(self[0].contents))
+        outputEval: $(JSON.parse(self[0].contents).file)
 
+  - id: model_name
+    type: string
+    outputBinding:
+        loadContents: true
+        glob: 'out.json'
+        outputEval: $(JSON.parse(self[0].contents).skymodel_name)
 requirements:
   - class: InlineJavascriptRequirement
 
 hints:
   DockerRequirement:
-    dockerPull: lofareosc/prefactor-ci:master
+    dockerPull: lofareosc/prefactor:latest
-- 
GitLab