From 517e47082a32d254aca2d55fb5891f7a8f9a98b1 Mon Sep 17 00:00:00 2001 From: TangBin Date: Wed, 10 Jul 2019 16:04:26 +0800 Subject: [PATCH] add rpc-global-settings-dictionary --- pkg/mcclient/modules/mod_parameters.go | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/pkg/mcclient/modules/mod_parameters.go b/pkg/mcclient/modules/mod_parameters.go index ccbdb236b3..792ed18275 100644 --- a/pkg/mcclient/modules/mod_parameters.go +++ b/pkg/mcclient/modules/mod_parameters.go @@ -14,6 +14,15 @@ package modules +import ( + "context" + + "yunion.io/x/jsonutils" + "yunion.io/x/onecloud/pkg/mcclient" + "yunion.io/x/onecloud/pkg/mcclient/auth" + "yunion.io/x/onecloud/pkg/httperrors" +) + type ParametersManager struct { ResourceManager } @@ -29,3 +38,20 @@ func init() { )} register(&Parameters) } + +func (this *ParametersManager) GetGlobalSettings(s *mcclient.ClientSession, params jsonutils.JSONObject) (jsonutils.JSONObject, error) { + adminSession := auth.GetAdminSession(context.Background(), "", "") + p := jsonutils.NewDict() + p.Add(jsonutils.NewString("system"), "scope") + p.Add(jsonutils.NewString("name"), "global-settings") + parameters, err := this.ListInContext(adminSession, p, &ServicesV3, "yunionagent") + if err != nil { + return nil, err + } + + if parameters.Total == 0 { + return nil, httperrors.NewNotFoundError("global-settings not found") + } + + return parameters.Data[0], nil +} \ No newline at end of file