From c644401f00448d71843bf4aadd088ad9cac916ab Mon Sep 17 00:00:00 2001 From: ningyu Date: Tue, 7 May 2019 14:07:48 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=88=9B=E5=BB=BA=E6=B5=81=E7=A8=8B?= =?UTF-8?q?=E5=AE=9E=E4=BE=8B=EF=BC=88=E5=8F=91=E8=B5=B7=E6=B5=81=E7=A8=8B?= =?UTF-8?q?=EF=BC=89=E6=97=B6=EF=BC=8C=E5=8F=AF=E4=BB=A5=E9=80=9A=E8=BF=87?= =?UTF-8?q?=E4=B8=8D=E5=90=8C=E7=9A=84=E6=96=B9=E5=BC=8F=E6=8C=87=E5=AE=9A?= =?UTF-8?q?=E4=BB=BB=E5=8A=A1=E5=AE=A1=E6=89=B9=E4=BA=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 1. 直接设置用户ID 2. 设置角色ID(由这个角色下的用户进行审批) 3. 同时设置角色ID和项目Id(由特定项目下的某个角色的用户进行审批) --- cmd/climc/shell/itsm_deployment.go | 3 ++- cmd/climc/shell/itsm_process_instance.go | 19 +++++++++++++++++-- 2 files changed, 19 insertions(+), 3 deletions(-) diff --git a/cmd/climc/shell/itsm_deployment.go b/cmd/climc/shell/itsm_deployment.go index e3cf0926af..eb14ddf377 100644 --- a/cmd/climc/shell/itsm_deployment.go +++ b/cmd/climc/shell/itsm_deployment.go @@ -27,7 +27,8 @@ func init() { * 使用文件创建部署 */ type DeploymentCreateOptions struct { - FILE string `help:"The local bpmn filename to Upload"` + FILE string `help:"The local bpmn filename to Upload"` + TenantID string `help:"ID of tenant"` } R(&DeploymentCreateOptions{}, "process-deployment-create", "Create deployment by upload BPMN file", func(s *mcclient.ClientSession, args *DeploymentCreateOptions) error { // TODO diff --git a/cmd/climc/shell/itsm_process_instance.go b/cmd/climc/shell/itsm_process_instance.go index 544d66eb25..81e304c828 100644 --- a/cmd/climc/shell/itsm_process_instance.go +++ b/cmd/climc/shell/itsm_process_instance.go @@ -29,15 +29,30 @@ func init() { type ProcessInstanceCreateOptions struct { PROCESS_DEFINITION_KEY string `help:"Key of the process definition"` INITIATOR string `help:"ID of user who launch the process instance"` - ASSIGNEE string `help:"ID of assignee"` SERVER_CREATE_PARAMTER string `help:"Onecloud server create spec json string"` + UserId string `help:"ID of user"` + RoleId string `help:"ID of role"` + ProjectId string `help:"ID of project"` + Percent string `help:"Great than Percent of nrOfCompletedInstances/nrOfInstances"` } R(&ProcessInstanceCreateOptions{}, "process-instance-create", "Create process instance", func(s *mcclient.ClientSession, args *ProcessInstanceCreateOptions) error { variables_params := jsonutils.NewDict() variables_params.Add(jsonutils.NewString(args.PROCESS_DEFINITION_KEY), "process_definition_key") variables_params.Add(jsonutils.NewString(args.INITIATOR), "initiator") - variables_params.Add(jsonutils.NewString(args.ASSIGNEE), "assignee") variables_params.Add(jsonutils.NewString(args.SERVER_CREATE_PARAMTER), "server-create-paramter") + if len(args.UserId) > 0 { + variables_params.Add(jsonutils.NewString(args.UserId), "user-id") + } else { + if len(args.RoleId) > 0 { + variables_params.Add(jsonutils.NewString(args.RoleId), "role-id") + } + if len(args.ProjectId) > 0 { + variables_params.Add(jsonutils.NewString(args.ProjectId), "project-id") + } + } + if len(args.Percent) > 0 { + variables_params.Add(jsonutils.NewString(args.Percent), "percent") + } params := jsonutils.NewDict() params.Add(variables_params, "variables") result, err := modules.ProcessInstance.Create(s, params)