From bbae65f73a0c85379577f9ad8c98246d6348be4d Mon Sep 17 00:00:00 2001 From: ningyu Date: Wed, 15 May 2019 14:45:05 +0800 Subject: [PATCH 1/3] =?UTF-8?q?feat:=20=E6=B7=BB=E5=8A=A0=E7=BB=9F?= =?UTF-8?q?=E8=AE=A1=E6=9C=AA=E5=AE=8C=E6=88=90=E7=9A=84=E5=B7=A5=E5=8D=95?= =?UTF-8?q?=E3=80=81=E5=BE=85=E6=88=91=E5=AE=A1=E6=89=B9=E6=95=B0=E9=87=8F?= =?UTF-8?q?=E7=9A=84=E6=95=B0=E9=87=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../shell/itsm_histroic_process_instance.go | 14 ++++++++ .../mod_itsm_historic_process_instances.go | 36 ++++++++++++++++--- 2 files changed, 46 insertions(+), 4 deletions(-) diff --git a/cmd/climc/shell/itsm_histroic_process_instance.go b/cmd/climc/shell/itsm_histroic_process_instance.go index 58307a3a1f..ab4746d7db 100644 --- a/cmd/climc/shell/itsm_histroic_process_instance.go +++ b/cmd/climc/shell/itsm_histroic_process_instance.go @@ -64,4 +64,18 @@ func init() { printObject(result) return nil }) + + type HistoricProcessInstanceStaticticsOptions struct { + ID string `help:"ID of user"` + } + R(&HistoricProcessInstanceStaticticsOptions{}, "historic-process-instance-statistics", "Delete all contacts for the user", func(s *mcclient.ClientSession, args *HistoricProcessInstanceStaticticsOptions) error { + rst, err := modules.HistoricProcessInstance.DoGetStatistics(s, args.ID) + + if err != nil { + return err + } + + printObject(rst) + return nil + }) } diff --git a/pkg/mcclient/modules/mod_itsm_historic_process_instances.go b/pkg/mcclient/modules/mod_itsm_historic_process_instances.go index 885e0c1a2e..a5662a6347 100644 --- a/pkg/mcclient/modules/mod_itsm_historic_process_instances.go +++ b/pkg/mcclient/modules/mod_itsm_historic_process_instances.go @@ -14,14 +14,42 @@ package modules +import ( + "fmt" + + "yunion.io/x/jsonutils" + + "yunion.io/x/onecloud/pkg/mcclient" +) + +type HiProcInstManager struct { + ResourceManager +} + +func (this *HiProcInstManager) DoGetStatistics(s *mcclient.ClientSession, user_id string) (jsonutils.JSONObject, error) { + hiProcInstPath := fmt.Sprintf("/historic-process-instances?status=unfinished&user_id=%s", user_id) + procTaskPath := fmt.Sprintf("/process-tasks?user_id=%s", user_id) + + hiProcInstObj, _ := this._list(s, hiProcInstPath, "historic-process-instances") + procTaskObj, _ := this._list(s, procTaskPath, "process-tasks") + + nrHiProcInst := hiProcInstObj.Total + nrProcTask := procTaskObj.Total + + rst := jsonutils.NewDict() + rst.Add(jsonutils.NewInt(int64(nrHiProcInst)), "nr-historic-process-instance") + rst.Add(jsonutils.NewInt(int64(nrProcTask)), "nr-process-task") + + return rst, nil +} + var ( - HistoricProcessInstance ResourceManager + HistoricProcessInstance HiProcInstManager ) func init() { - HistoricProcessInstance = NewITSMManager("historic-process-instance", "historic-process-instances", + HistoricProcessInstance = HiProcInstManager{NewITSMManager("historic-process-instance", "historic-process-instances", []string{"id", "process_definition_key", "start_activity_id", "end_time", "duration_in_millis", "removal_time", "business_key", "end_activity_id", "process_definition_version", "delete_reason", "process_definition_id", "start_time", "start_user_id", "case_instance_id", "root_process_instance_id", "super_case_instance_id", "state", "process_definition_name", "super_process_instance_id", "tenant_id"}, - []string{}, - ) + []string{})} register(&HistoricProcessInstance) } From cea214030931052437966d6f25b1b59bae3bd358 Mon Sep 17 00:00:00 2001 From: ningyu Date: Wed, 15 May 2019 15:12:23 +0800 Subject: [PATCH 2/3] =?UTF-8?q?fix:=20=E9=80=9A=E8=BF=87JSON=E5=AF=B9?= =?UTF-8?q?=E8=B1=A1=E7=9A=84=E6=96=B9=E5=BC=8F=E4=BC=A0=E9=80=92RPC?= =?UTF-8?q?=E7=9A=84=E5=8F=82=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cmd/climc/shell/itsm_histroic_process_instance.go | 5 ++++- .../modules/mod_itsm_historic_process_instances.go | 8 +++++--- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/cmd/climc/shell/itsm_histroic_process_instance.go b/cmd/climc/shell/itsm_histroic_process_instance.go index ab4746d7db..5c7a54afb7 100644 --- a/cmd/climc/shell/itsm_histroic_process_instance.go +++ b/cmd/climc/shell/itsm_histroic_process_instance.go @@ -69,7 +69,10 @@ func init() { ID string `help:"ID of user"` } R(&HistoricProcessInstanceStaticticsOptions{}, "historic-process-instance-statistics", "Delete all contacts for the user", func(s *mcclient.ClientSession, args *HistoricProcessInstanceStaticticsOptions) error { - rst, err := modules.HistoricProcessInstance.DoGetStatistics(s, args.ID) + params := jsonutils.NewDict() + params.Add(jsonutils.NewString(args.ID), "user_id") + + rst, err := modules.HistoricProcessInstance.DoGetStatistics(s, params) if err != nil { return err diff --git a/pkg/mcclient/modules/mod_itsm_historic_process_instances.go b/pkg/mcclient/modules/mod_itsm_historic_process_instances.go index a5662a6347..3630d8d92e 100644 --- a/pkg/mcclient/modules/mod_itsm_historic_process_instances.go +++ b/pkg/mcclient/modules/mod_itsm_historic_process_instances.go @@ -26,9 +26,11 @@ type HiProcInstManager struct { ResourceManager } -func (this *HiProcInstManager) DoGetStatistics(s *mcclient.ClientSession, user_id string) (jsonutils.JSONObject, error) { - hiProcInstPath := fmt.Sprintf("/historic-process-instances?status=unfinished&user_id=%s", user_id) - procTaskPath := fmt.Sprintf("/process-tasks?user_id=%s", user_id) +func (this *HiProcInstManager) DoGetStatistics(s *mcclient.ClientSession, params jsonutils.JSONObject) (jsonutils.JSONObject, error) { + userId, _ := params.GetString("user_id") + + hiProcInstPath := fmt.Sprintf("/historic-process-instances?status=unfinished&user_id=%s", userId) + procTaskPath := fmt.Sprintf("/process-tasks?user_id=%s", userId) hiProcInstObj, _ := this._list(s, hiProcInstPath, "historic-process-instances") procTaskObj, _ := this._list(s, procTaskPath, "process-tasks") From d8fc97a1273feeaac45bec82db0b5ee0f841a0e8 Mon Sep 17 00:00:00 2001 From: ningyu Date: Wed, 15 May 2019 15:12:23 +0800 Subject: [PATCH 3/3] =?UTF-8?q?fix:=20=E9=80=9A=E8=BF=87JSON=E5=AF=B9?= =?UTF-8?q?=E8=B1=A1=E7=9A=84=E6=96=B9=E5=BC=8F=E4=BC=A0=E9=80=92RPC?= =?UTF-8?q?=E7=9A=84=E5=8F=82=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cmd/climc/shell/itsm_histroic_process_instance.go | 5 ++++- .../modules/mod_itsm_historic_process_instances.go | 8 +++++--- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/cmd/climc/shell/itsm_histroic_process_instance.go b/cmd/climc/shell/itsm_histroic_process_instance.go index ab4746d7db..c1b74438a5 100644 --- a/cmd/climc/shell/itsm_histroic_process_instance.go +++ b/cmd/climc/shell/itsm_histroic_process_instance.go @@ -69,7 +69,10 @@ func init() { ID string `help:"ID of user"` } R(&HistoricProcessInstanceStaticticsOptions{}, "historic-process-instance-statistics", "Delete all contacts for the user", func(s *mcclient.ClientSession, args *HistoricProcessInstanceStaticticsOptions) error { - rst, err := modules.HistoricProcessInstance.DoGetStatistics(s, args.ID) + params := jsonutils.NewDict() + params.Add(jsonutils.NewString(args.ID), "user_id") + + rst, err := modules.HistoricProcessInstance.GetStatistics(s, params) if err != nil { return err diff --git a/pkg/mcclient/modules/mod_itsm_historic_process_instances.go b/pkg/mcclient/modules/mod_itsm_historic_process_instances.go index a5662a6347..d090939c54 100644 --- a/pkg/mcclient/modules/mod_itsm_historic_process_instances.go +++ b/pkg/mcclient/modules/mod_itsm_historic_process_instances.go @@ -26,9 +26,11 @@ type HiProcInstManager struct { ResourceManager } -func (this *HiProcInstManager) DoGetStatistics(s *mcclient.ClientSession, user_id string) (jsonutils.JSONObject, error) { - hiProcInstPath := fmt.Sprintf("/historic-process-instances?status=unfinished&user_id=%s", user_id) - procTaskPath := fmt.Sprintf("/process-tasks?user_id=%s", user_id) +func (this *HiProcInstManager) GetStatistics(s *mcclient.ClientSession, params jsonutils.JSONObject) (jsonutils.JSONObject, error) { + userId, _ := params.GetString("user_id") + + hiProcInstPath := fmt.Sprintf("/historic-process-instances?status=unfinished&user_id=%s", userId) + procTaskPath := fmt.Sprintf("/process-tasks?user_id=%s", userId) hiProcInstObj, _ := this._list(s, hiProcInstPath, "historic-process-instances") procTaskObj, _ := this._list(s, procTaskPath, "process-tasks")