090 intermediate

This commit is contained in:
msyu
2025-04-17 11:51:21 +03:00
parent 0e12575f85
commit 975f2fb66f
5 changed files with 137 additions and 34 deletions
+5 -6
View File
@@ -11,7 +11,7 @@
<cffunction name="post" hint="Создание новой операции. Отдельно загружаются CFS параметры, генерируются RFS параметры. Запускается операция отдельным вызовом. До запуска CFS параметры могут корректироваться (а надо?). Запущенная операция вместе с параметрами навсегда становится Read Only (при желании можем реализовать ее клонирование). Можем реализовать корректировку параметров, но непонятно, зачем. Когда мы конфигурируем инстанс, на самом деле мы задаем CFS параметры операции create. Можно править параметры, а можно пересоздать операцию с новыми параметрами. Предусмотреть удаление (метод DELETE) незапущенной операции?">
<cfargument name="instanceUid" type="string" required=true hint="type:guid"/>
<cfargument name="operation" type="string" required=true hint="type:string decsiption: operation name, e.g. create"/>
<cfargument name="resourceRealmId" type="string" default=-1 hint="type:integer decsiption: идентификатор ресурсной платформы"/><!--- *** --->
<!--- <cfargument name="resourceRealmId" type="string" default=-1 hint="type:integer decsiption: идентификатор ресурсной платформы"/> ---><!--- *** --->
<!--- *** полноценная валидация операции предполагает проверку, что операция поддерживается для данного сервиса и текущего состояния инстанса. Можно представить себе зависимость этого от параметров, но хотелось бы избежать такого усложнения --->
<!--- Можно отметить, что, например, допустимость операции delete зависит от контекста - сколько времени сервис остановлен --->
<cftry>
@@ -31,9 +31,9 @@
<!--- *** Добавить проверку разрешенных переходов, например, create нельзя сделать на развернутом экземпляре
*** Вероятно, допустимые переходы нужно либо специфицировать в документации, либо явно опубликовать (инстанс может публиковать список допустимых операций) --->
<cfif listFind("create,redeploy",arguments.operation)>
<!--- <cfif listFind("create,redeploy",arguments.operation)>
<cfset checkResourceRealmId(arguments.resourceRealmId, arguments.instanceUid)/>
</cfif>
</cfif> --->
<cfcatch type="invalidParamValue">
<cfreturn representationOf(this.helper.formatBadRequestError(cfcatch)).withStatus(400)/>
@@ -46,7 +46,7 @@
<cftry>
<cfquery name="local.qSave">
insert into instance_operation
(instance_uid, instance_operation_uid, operation, dt_created, creator_id, dt_updated, updater_id, resource_realm_id)
(instance_uid, instance_operation_uid, operation, dt_created, creator_id, dt_updated, updater_id)
values
(
<cfqueryparam cfsqltype="cf_sql_other" value="#arguments.instanceUid#" />
@@ -56,7 +56,6 @@
,<cfqueryparam cfsqltype="cf_sql_integer" value="#arguments.usrId#" />
,<cfqueryparam cfsqltype="cf_sql_timestamp" value="#Now()#" />
,<cfqueryparam cfsqltype="cf_sql_integer" value="#arguments.usrId#" />
,<cfqueryparam cfsqltype="cf_sql_integer" value="#arguments.resourceRealmId#"/>
);
</cfquery>
@@ -71,7 +70,7 @@
/>
</cffunction>
<cffunction name="checkResourceRealmId" returntype="void">
<cffunction name="checkResourceRealmId" returntype="void" hint="deprecated">
<!--- В данном случае мы проверяем соответствие платформы сервису, а не операции, поэтому вопрос, нужен ли для данной операции параметр resourceRealm, надо решать вне этой функции --->
<cfargument name="resourceRealmId" type="numeric" required=true/>
<cfargument name="instanceUid" type="guid" required=true/>