aboutsummaryrefslogtreecommitdiff
path: root/player/tasks.f90
diff options
context:
space:
mode:
Diffstat (limited to 'player/tasks.f90')
-rw-r--r--player/tasks.f9020
1 files changed, 16 insertions, 4 deletions
diff --git a/player/tasks.f90 b/player/tasks.f90
index 832e345..1084329 100644
--- a/player/tasks.f90
+++ b/player/tasks.f90
@@ -93,13 +93,14 @@ contains
end function shell
- function upload_glob(url, mask) result(res)
+ function upload_glob(url, mask, job_id) result(res)
use utilities
implicit none
logical::res
character(*), intent(in)::url
character(*), intent(in)::mask
+ integer, intent(in)::job_id
character(DIR_LIST_STRING_LENGTH), dimension(:), pointer::files
logical, dimension(:), allocatable::statuses
@@ -130,7 +131,7 @@ contains
call combine_paths(dir, files(i), fullname)
end if
- statuses(i) = upload(url, fullname)
+ statuses(i) = upload(url, fullname, job_id)
end do
res = all(statuses)
@@ -152,7 +153,7 @@ contains
end function upload_glob
- function upload(url, source_filename) result(res)
+ function upload(url, source_filename, job_id) result(res)
use config, only: token, captain, identity
use gemini_protocol, only: titan_post_url, STATUS_SUCCESS, STATUS_TEMPFAIL
implicit none
@@ -160,8 +161,10 @@ contains
logical::res
character(*), intent(in)::url
character(*), intent(in)::source_filename
+ integer, intent(in), optional::job_id
character(len=:), allocatable::mod_url
+ character(len=32)::job_id_keyval
integer(kind=8)::file_size
integer::unit_number, istatus, url_length, i
@@ -210,8 +213,17 @@ contains
end if
if(istatus == 0) then
+
Print *, "Writing "//trim(mod_url)
- istatus = titan_post_url(mod_url, unit_number, file_size, trim(identity)//":"//trim(token))
+
+ if(present(job_id)) then
+ write(job_id_keyval, *) job_id
+ job_id_keyval = "job="//trim(adjustl(job_id_keyval))
+ istatus = titan_post_url(mod_url, unit_number, file_size, trim(identity)//":"//trim(token), &
+ extra=trim(job_id_keyval))
+ else
+ istatus = titan_post_url(mod_url, unit_number, file_size, trim(identity)//":"//trim(token))
+ end if
Print *, "Response code from server: ", istatus
if(istatus == STATUS_TEMPFAIL) then