227 submitOperation statusUrl patching filecontent fixed

This commit is contained in:
2026-04-16 07:04:46 +03:00
parent aaf7437dfa
commit 4b6a6e4795
2 changed files with 17 additions and 12 deletions
+16 -11
View File
@@ -298,7 +298,7 @@
where instance_operation_uid=<cfqueryparam cfsqltype="cf_sql_other" value=#arguments.instanceOperationUid#/>
</cfquery>
<cfset sleep(0)/><!--- если придется подождать, можно добавить, но мы специально указываем delay=0sec --->
<cfset sleep(0)/><!--- если придется подождать, можно добавить, но мы выше специально указываем delay=0sec --->
<cfif listFind("200,201",#orchestrator.responseHeader.status_code#)>
<cftry>
<cfset var buildURL="#orchestrator.responseHeader.Location#/api/json"/>
@@ -312,18 +312,23 @@
<cfhttpparam type="HEADER" name="Accept" value="application/json">
</cfhttp>
<cfset var jobData=#deserializeJson(job.filecontent)#/>
<!--- jobData: <cfdump var=#jobData#/> --->
<cfset operation_url=jobData.executable.url />
<cfquery name="qSetStatusUrl">
update instance_operation
set status_url=<cfqueryparam cfsqltype="cf_sql_varchar" value="#operation_url#api/json"/><!--- *** костыль --->
where instance_operation_uid=<cfqueryparam cfsqltype="cf_sql_other" value=#arguments.instanceOperationUid#/>
</cfquery>
<cfset var operation_url = ""/>
<cfif structKeyExists(job,"filecontent")>
<!--- обнаружилось, что при автоматизированном вызове операций filecontent может не приходить. Вероятно, Дженкинс не успевает. Костыльный способ - подобрать задержку. Есть шансы, что поведение будет сильно зависеть от нагрузки. Также можно повторять проверку (скажем, с увеличивающимся интервалом). Мы пока просто не будем сохранять statusUrl --->
<cfset var jobData=#deserializeJson(job.filecontent)#/>
<!--- jobData: <cfdump var=#jobData#/> --->
<cfset operation_url=jobData.executable.url />
<cfquery name="qSetStatusUrl">
update instance_operation
set status_url=<cfqueryparam cfsqltype="cf_sql_varchar" value="#operation_url#api/json" null=#(operation_url EQ "")#/><!--- *** костыль --->
where instance_operation_uid=<cfqueryparam cfsqltype="cf_sql_other" value=#arguments.instanceOperationUid#/>
</cfquery>
<cfelse>
<!--- job: <cfdump var=#job#/> --->
</cfif>
<cfcatch type="any">
<cfrethrow/><!--- пока не придумал --->
<cfrethrow/><!--- пока не придумал, есть смысл логировать ошибку и продолжать --->
</cfcatch>
</cftry>
</cfif>