about summary refs log tree commit diff
diff options
context:
space:
mode:
authorFrederick Muriuki Muriithi2025-12-03 14:39:45 -0600
committerFrederick Muriuki Muriithi2025-12-03 17:22:28 -0600
commit13d971bd8a1f83bb22d105176324921610d3ae28 (patch)
tree70e51af9831587c844168a42843eefaf5fad0c5a
parenta21ef898f45f450afde56c1cb0dc8d4c452b0dcc (diff)
downloadgn-machines-13d971bd8a1f83bb22d105176324921610d3ae28.tar.gz
gn-uploader: Specify TMPDIR for gn-uploader.
-rw-r--r--genenetwork/services/genenetwork.scm14
1 files changed, 12 insertions, 2 deletions
diff --git a/genenetwork/services/genenetwork.scm b/genenetwork/services/genenetwork.scm
index cb73791..868f00d 100644
--- a/genenetwork/services/genenetwork.scm
+++ b/genenetwork/services/genenetwork.scm
@@ -155,6 +155,8 @@
                 (default "/var/genenetwork/sessions/gn-uploader"))
   (sqlite-databases-directory gn-uploader-sqlite-databases-directory
                               (default "/var/genenetwork/sqlite/gn-uploader"))
+  (gn-tmpdir gn-uploader-configuration-gn-tmpdir
+             (default "/opt/gn/tmp"))
   (log-level gn-uploader-configuration-log-level
              (default 'warning)
              (sanitize sanitize-log-level)))
@@ -735,7 +737,7 @@ a @code{<genenetwork-configuration>} record."
 
 (define (gn-uploader-activation config)
   (match-record config <gn-uploader-configuration>
-    (secrets data-directory sessions-dir sqlite-databases-directory)
+    (secrets data-directory sessions-dir sqlite-databases-directory gn-tmpdir)
     (with-imported-modules '((guix build utils))
       #~(begin
           (use-modules (guix build utils))
@@ -760,23 +762,27 @@ a @code{<genenetwork-configuration>} record."
                              (passwd:gid (getpw "gunicorn-gn-uploader"))))
                     (append (list #$data-directory)
                             (find-files #$data-directory
+                                        #:directories? #t)
+                            (find-files #$(string-append gn-tmpdir "/gn-uploader-tmpdir")
                                         #:directories? #t)))))))
 
 (define (gn-uploader-gunicorn-app config)
   (match-record config <gn-uploader-configuration>
-    (gn-uploader sql-uri port data-directory secrets log-level auth-server-url gn2-server-url sessions-dir sqlite-databases-directory)
+    (gn-uploader sql-uri port data-directory secrets log-level auth-server-url gn2-server-url sessions-dir sqlite-databases-directory gn-tmpdir)
     ;; If we mapped only the mysqld.sock socket file, it would break
     ;; when the external mysqld server is restarted.
     (let* ((database-mapping (file-system-mapping
                               (source "/run/mysqld")
                               (target source)
                               (writable? #t)))
+           (gn-uploader-tmpdir (string-append gn-tmpdir "/gn-uploader-tmpdir"))
            (gn-uploader-conf (computed-file "gn-uploader.conf"
                                             (configuration-file-gexp
                                              `(("UPLOADER_SECRETS" ,secrets)
                                                ("SQL_URI" ,sql-uri)
                                                ("UPLOAD_FOLDER" ,(string-append data-directory
                                                                                 "/uploads"))
+                                               ("TEMPORARY_DIRECTORY" ,gn-uploader-tmpdir)
                                                ("AUTH_SERVER_URL" ,auth-server-url)
                                                ("GN2_SERVER_URL" ,gn2-server-url)
                                                ("SESSION_FILESYSTEM_CACHE_PATH" ,sessions-dir)
@@ -831,6 +837,10 @@ a @code{<genenetwork-configuration>} record."
                              (file-system-mapping
                               (source sqlite-databases-directory)
                               (target source)
+                              (writable? #t))
+                             (file-system-mapping
+                              (source gn-uploader-tmpdir)
+                              (target source)
                               (writable? #t))))
              (extra-cli-arguments
               (list "--log-level"