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
+1 -1
View File
@@ -57,7 +57,7 @@
//variables.framework.docs={}; //variables.framework.docs={};
variables.framework.docs.APIName="svc-api"; variables.framework.docs.APIName="svc-api";
variables.framework.docs.APIVersion="0.226"; /*$ git config --global --unset user.password*/ variables.framework.docs.APIVersion="0.227"; /*$ git config --global --unset user.password*/
variables.framework.globalHeaders = structNew(); variables.framework.globalHeaders = structNew();
variables.framework.globalHeaders["Access-Control-Expose-Headers"] = "Location"; variables.framework.globalHeaders["Access-Control-Expose-Headers"] = "Location";
+9 -4
View File
@@ -298,7 +298,7 @@
where instance_operation_uid=<cfqueryparam cfsqltype="cf_sql_other" value=#arguments.instanceOperationUid#/> where instance_operation_uid=<cfqueryparam cfsqltype="cf_sql_other" value=#arguments.instanceOperationUid#/>
</cfquery> </cfquery>
<cfset sleep(0)/><!--- если придется подождать, можно добавить, но мы специально указываем delay=0sec ---> <cfset sleep(0)/><!--- если придется подождать, можно добавить, но мы выше специально указываем delay=0sec --->
<cfif listFind("200,201",#orchestrator.responseHeader.status_code#)> <cfif listFind("200,201",#orchestrator.responseHeader.status_code#)>
<cftry> <cftry>
<cfset var buildURL="#orchestrator.responseHeader.Location#/api/json"/> <cfset var buildURL="#orchestrator.responseHeader.Location#/api/json"/>
@@ -312,18 +312,23 @@
<cfhttpparam type="HEADER" name="Accept" value="application/json"> <cfhttpparam type="HEADER" name="Accept" value="application/json">
</cfhttp> </cfhttp>
<cfset var operation_url = ""/>
<cfif structKeyExists(job,"filecontent")>
<!--- обнаружилось, что при автоматизированном вызове операций filecontent может не приходить. Вероятно, Дженкинс не успевает. Костыльный способ - подобрать задержку. Есть шансы, что поведение будет сильно зависеть от нагрузки. Также можно повторять проверку (скажем, с увеличивающимся интервалом). Мы пока просто не будем сохранять statusUrl --->
<cfset var jobData=#deserializeJson(job.filecontent)#/> <cfset var jobData=#deserializeJson(job.filecontent)#/>
<!--- jobData: <cfdump var=#jobData#/> ---> <!--- jobData: <cfdump var=#jobData#/> --->
<cfset operation_url=jobData.executable.url /> <cfset operation_url=jobData.executable.url />
<cfquery name="qSetStatusUrl"> <cfquery name="qSetStatusUrl">
update instance_operation update instance_operation
set status_url=<cfqueryparam cfsqltype="cf_sql_varchar" value="#operation_url#api/json"/><!--- *** костыль ---> 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#/> where instance_operation_uid=<cfqueryparam cfsqltype="cf_sql_other" value=#arguments.instanceOperationUid#/>
</cfquery> </cfquery>
<cfelse>
<!--- job: <cfdump var=#job#/> --->
</cfif>
<cfcatch type="any"> <cfcatch type="any">
<cfrethrow/><!--- пока не придумал ---> <cfrethrow/><!--- пока не придумал, есть смысл логировать ошибку и продолжать --->
</cfcatch> </cfcatch>
</cftry> </cftry>
</cfif> </cfif>