From 4dc4cb66e7eb07b52e8e7b14d274919a68520f7b Mon Sep 17 00:00:00 2001
From: Nico Vermaas <vermaas@astron.nl>
Date: Tue, 12 Apr 2022 13:59:34 +0200
Subject: [PATCH] increase configuration field length to 3000 to hold dcache
 token

---
 .../migrations/0016_auto_20220412_1356.py      | 18 ++++++++++++++++++
 atdb/taskdatabase/models.py                    |  3 ++-
 atdb/taskdatabase/services/algorithms.py       |  7 ++++---
 .../templates/taskdatabase/index.html          |  2 +-
 4 files changed, 25 insertions(+), 5 deletions(-)
 create mode 100644 atdb/taskdatabase/migrations/0016_auto_20220412_1356.py

diff --git a/atdb/taskdatabase/migrations/0016_auto_20220412_1356.py b/atdb/taskdatabase/migrations/0016_auto_20220412_1356.py
new file mode 100644
index 00000000..4b9f2451
--- /dev/null
+++ b/atdb/taskdatabase/migrations/0016_auto_20220412_1356.py
@@ -0,0 +1,18 @@
+# Generated by Django 3.1.4 on 2022-04-12 11:56
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('taskdatabase', '0015_auto_20220401_1336'),
+    ]
+
+    operations = [
+        migrations.AlterField(
+            model_name='configuration',
+            name='value',
+            field=models.CharField(max_length=3000),
+        ),
+    ]
diff --git a/atdb/taskdatabase/models.py b/atdb/taskdatabase/models.py
index 68aee451..3965e04c 100644
--- a/atdb/taskdatabase/models.py
+++ b/atdb/taskdatabase/models.py
@@ -184,7 +184,8 @@ class Status(models.Model):
 class Configuration(models.Model):
     filter = models.CharField(max_length=30, blank=True, null=True)
     key = models.CharField(max_length=50)
-    value = models.CharField(max_length=255)
+    # large value needed to hold the dcache token
+    value = models.CharField(max_length=3000)
 
     # the representation of the value in the REST API
     def __str__(self):
diff --git a/atdb/taskdatabase/services/algorithms.py b/atdb/taskdatabase/services/algorithms.py
index 4ddf4499..3e0c458d 100644
--- a/atdb/taskdatabase/services/algorithms.py
+++ b/atdb/taskdatabase/services/algorithms.py
@@ -673,15 +673,16 @@ def construct_inspectionplots(task):
     except:
         srm_to_url = "srm://srm.grid.sara.nl/pnfs/grid.sara.nl/data::https://webdav.grid.surfsara.nl/pnfs/grid.sara.nl/data"
 
-    token = Configuration.objects.get(key='dcache:token').value
-    #token ="dcache-http-uuid=23f731bb-0ec4-4401-9176-3393cf2a3da1"
+    token = str(Configuration.objects.get(key='dcache:token').value)
+    #token ="23f731bb-0ec4-4401-9176-3393cf2a3da1"
+    #token = "MDAxY2xvY2F0aW9uIE9wdGlvbmFsLmVtcHR5CjAwMThpZGVudGlmaWVyIDhSWm1md3ovCjAwMTVjaWQgaWlkOnJEWm1JL2VGCjAwMmFjaWQgaWQ6NTU1ODI7MzE4NTUsMzQ5ODMsNDM0ODU7bGR2b3BzCjAwMmJjaWQgYmVmb3JlOjIwMjItMDQtMThUMTM6MDc6MzkuNzg2NTU3WgowMDM4Y2lkIHJvb3Q6L3BuZnMvZ3JpZC5zYXJhLm5sL2RhdGEvbG9mYXIvb3BzL2Rpc2svbGR2CjAwMWZjaWQgYWN0aXZpdHk6RE9XTkxPQUQsTElTVAowMDE1Y2lkIGlwOjAuMC4wLjAvMAowMDJmc2lnbmF0dXJlIMlsLlm43VRA-uDXqAWTlS2A9HeYnSiUA2jFvKi7DwchCg"
     translation = srm_to_url.split("::")
 
     # find the plots in the quality json structure
     plots = task.quality_json["plots"]
     for plot in plots:
         basename = plot['basename']
-        surl = plot['surl'] + "?" + token
+        surl = plot['surl'] + "?action=show&authz=" + str(token)
 
         url = surl.replace(translation[0],translation[1])
         results += '<tr><td><a href="' + url + '" target="_blank">'+ basename + '</a></td></tr>'
diff --git a/atdb/taskdatabase/templates/taskdatabase/index.html b/atdb/taskdatabase/templates/taskdatabase/index.html
index f64f8cba..61b27274 100644
--- a/atdb/taskdatabase/templates/taskdatabase/index.html
+++ b/atdb/taskdatabase/templates/taskdatabase/index.html
@@ -34,7 +34,7 @@
         {% include 'taskdatabase/pagination.html' %}
        </div>
     </div>
-    <p class="footer"> Version 1.0.0 (12 apr 2021 - 8:00)
+    <p class="footer"> Version 1.0.0 (12 apr 2021 - 13:00)
 
 </div>
 
-- 
GitLab