diff --git a/cmd/climc/shell/compute/baremetalagents.go b/cmd/climc/shell/compute/baremetalagents.go index 802dd9527a..3fd85e2c19 100644 --- a/cmd/climc/shell/compute/baremetalagents.go +++ b/cmd/climc/shell/compute/baremetalagents.go @@ -103,4 +103,5 @@ func init() { cmd.Perform("enable-image-cache", new(AgentEnableImageCacheOpt)) cmd.Perform("disable-image-cache", new(AgentDisableImageCacheOpt)) cmd.Delete(new(AgentDeleteOpt)) + cmd.Get("app-options", &options.BaseIdOptions{}) } diff --git a/cmd/climc/shell/misc/tasks.go b/cmd/climc/shell/misc/tasks.go index fa84bf02cd..616fd65a81 100644 --- a/cmd/climc/shell/misc/tasks.go +++ b/cmd/climc/shell/misc/tasks.go @@ -23,11 +23,15 @@ import ( "yunion.io/x/onecloud/pkg/apis" "yunion.io/x/onecloud/pkg/mcclient" "yunion.io/x/onecloud/pkg/mcclient/modulebase" + "yunion.io/x/onecloud/pkg/mcclient/modules/cloudevent" + "yunion.io/x/onecloud/pkg/mcclient/modules/cloudid" "yunion.io/x/onecloud/pkg/mcclient/modules/compute" "yunion.io/x/onecloud/pkg/mcclient/modules/devtool" "yunion.io/x/onecloud/pkg/mcclient/modules/identity" "yunion.io/x/onecloud/pkg/mcclient/modules/image" "yunion.io/x/onecloud/pkg/mcclient/modules/k8s" + "yunion.io/x/onecloud/pkg/mcclient/modules/llm" + "yunion.io/x/onecloud/pkg/mcclient/modules/monitor" "yunion.io/x/onecloud/pkg/mcclient/modules/notify" ) @@ -132,6 +136,26 @@ func init() { manager: ¬ify.Tasks, archivedManager: ¬ify.ArchivedTasks, }, + { + service: "monitor", + manager: &monitor.Tasks, + archivedManager: &monitor.ArchivedTasks, + }, + { + service: "cloudid", + manager: &cloudid.Tasks, + archivedManager: &cloudid.ArchivedTasks, + }, + { + service: "cloudevent", + manager: &cloudevent.Tasks, + archivedManager: &cloudevent.ArchivedTasks, + }, + { + service: "llm", + manager: &llm.LLMTasks, + archivedManager: &llm.ArchivedLLMTasks, + }, } for i := range cmds { c := cmds[i] diff --git a/pkg/ansibleserver/service/handlers.go b/pkg/ansibleserver/service/handlers.go index 2ccfb2d0e3..6305b0527d 100644 --- a/pkg/ansibleserver/service/handlers.go +++ b/pkg/ansibleserver/service/handlers.go @@ -30,14 +30,18 @@ package service import ( "yunion.io/x/onecloud/pkg/ansibleserver/models" + "yunion.io/x/onecloud/pkg/ansibleserver/options" "yunion.io/x/onecloud/pkg/appsrv" "yunion.io/x/onecloud/pkg/appsrv/dispatcher" + app_common "yunion.io/x/onecloud/pkg/cloudcommon/app" "yunion.io/x/onecloud/pkg/cloudcommon/db" ) func InitHandlers(app *appsrv.Application, isSlave bool) { db.InitAllManagers() + app_common.ExportOptionsHandler(app, &options.Options) + db.RegisterModelManager(db.OpsLog) db.RegisterModelManager(db.Metadata) db.RegisterModelManager(db.UserCacheManager) diff --git a/pkg/apigateway/service/service.go b/pkg/apigateway/service/service.go index 5796f45d91..a1b19c4e64 100644 --- a/pkg/apigateway/service/service.go +++ b/pkg/apigateway/service/service.go @@ -52,6 +52,7 @@ func StartService() { serviceApp := app.NewApp(app_common.InitApp(baseOpts, false)) serviceApp.InitHandlers().Bind() + app_common.ExportOptionsHandler(serviceApp.Application, options.Options) // mods, jmods := modulebase.GetRegisterdModules() // log.Infof("Modules: %s", jsonutils.Marshal(mods).PrettyString()) diff --git a/pkg/apimap/service/service.go b/pkg/apimap/service/service.go index 96dd1739d7..2ee52fcb8a 100644 --- a/pkg/apimap/service/service.go +++ b/pkg/apimap/service/service.go @@ -24,7 +24,7 @@ import ( "yunion.io/x/onecloud/pkg/apimap/options" compute_api "yunion.io/x/onecloud/pkg/apis/compute" "yunion.io/x/onecloud/pkg/appsrv" - common_app "yunion.io/x/onecloud/pkg/cloudcommon/app" + app_common "yunion.io/x/onecloud/pkg/cloudcommon/app" common_options "yunion.io/x/onecloud/pkg/cloudcommon/options" "yunion.io/x/onecloud/pkg/cloudcommon/policy" "yunion.io/x/onecloud/pkg/compute/models" @@ -43,12 +43,13 @@ func StartService() { service.StartServiceWrapper(&opt.DBOptions, &opt.CommonOptions, func(app *appsrv.Application) error { common_options.StartOptionManager(&opt, opt.ConfigSyncPeriodSeconds, compute_api.SERVICE_TYPE, compute_api.SERVICE_VERSION, options.OnOptionsChange) InitHandlers(app) - common_app.ServeForever(app, &opt.BaseOptions) + app_common.ServeForever(app, &opt.BaseOptions) return nil }) } func InitHandlers(app *appsrv.Application) { + app_common.ExportOptionsHandler(app, options.GetOptions()) app.AddHandler2("GET", "/vpcagent", auth.Authenticate(vpcAgentHandler), nil, "get_vpcagent_topo", nil) } diff --git a/pkg/cloudevent/service/handlers.go b/pkg/cloudevent/service/handlers.go index e20a885342..49010c052c 100644 --- a/pkg/cloudevent/service/handlers.go +++ b/pkg/cloudevent/service/handlers.go @@ -31,10 +31,12 @@ package service import ( "yunion.io/x/onecloud/pkg/appsrv" "yunion.io/x/onecloud/pkg/appsrv/dispatcher" + app_common "yunion.io/x/onecloud/pkg/cloudcommon/app" "yunion.io/x/onecloud/pkg/cloudcommon/db" "yunion.io/x/onecloud/pkg/cloudcommon/db/proxy" "yunion.io/x/onecloud/pkg/cloudcommon/db/taskman" "yunion.io/x/onecloud/pkg/cloudevent/models" + "yunion.io/x/onecloud/pkg/cloudevent/options" ) func InitHandlers(app *appsrv.Application, isSlave bool) { @@ -42,6 +44,8 @@ func InitHandlers(app *appsrv.Application, isSlave bool) { models.InitCloudevent() + app_common.ExportOptionsHandler(app, &options.Options) + taskman.AddTaskHandler("v1", app, isSlave) for _, manager := range []db.IModelManager{ diff --git a/pkg/cloudid/service/handlers.go b/pkg/cloudid/service/handlers.go index 35f9ab9571..099117d0e1 100644 --- a/pkg/cloudid/service/handlers.go +++ b/pkg/cloudid/service/handlers.go @@ -31,15 +31,19 @@ package service import ( "yunion.io/x/onecloud/pkg/appsrv" "yunion.io/x/onecloud/pkg/appsrv/dispatcher" + app_common "yunion.io/x/onecloud/pkg/cloudcommon/app" "yunion.io/x/onecloud/pkg/cloudcommon/db" "yunion.io/x/onecloud/pkg/cloudcommon/db/proxy" "yunion.io/x/onecloud/pkg/cloudcommon/db/taskman" "yunion.io/x/onecloud/pkg/cloudid/models" + "yunion.io/x/onecloud/pkg/cloudid/options" ) func InitHandlers(app *appsrv.Application, isSlave bool) { db.InitAllManagers() + app_common.ExportOptionsHandler(app, &options.Options) + taskman.AddTaskHandler("v1", app, isSlave) db.AddScopeResourceCountHandler("", app) diff --git a/pkg/cloudir/service/handlers.go b/pkg/cloudir/service/handlers.go index 6bf9d1cc48..d818b2fedb 100644 --- a/pkg/cloudir/service/handlers.go +++ b/pkg/cloudir/service/handlers.go @@ -17,12 +17,16 @@ package service import ( "yunion.io/x/onecloud/pkg/appsrv" "yunion.io/x/onecloud/pkg/appsrv/dispatcher" + app_common "yunion.io/x/onecloud/pkg/cloudcommon/app" "yunion.io/x/onecloud/pkg/cloudcommon/etcd/handler" "yunion.io/x/onecloud/pkg/cloudcommon/etcd/models" "yunion.io/x/onecloud/pkg/cloudcommon/etcd/models/base" + "yunion.io/x/onecloud/pkg/cloudir/options" ) func initHandlers(app *appsrv.Application, isSlave bool) { + app_common.ExportOptionsHandler(app, &options.Options) + for _, manager := range []base.IEtcdModelManager{ models.ServiceRegistryManager, } { diff --git a/pkg/cloudmon/service/service.go b/pkg/cloudmon/service/service.go index 50fd0cc29b..2f49b5a2d4 100644 --- a/pkg/cloudmon/service/service.go +++ b/pkg/cloudmon/service/service.go @@ -93,5 +93,7 @@ func StartService() { session := auth.GetAdminSession(ctx, commonOpts.Region) notifyclient.EventNotifyServiceAbnormal(ctx, session.GetToken(), consts.GetServiceType(), method, path, body, err) }) + + app_common.ExportOptionsHandler(app, &options.Options) app_common.ServeForever(app, baseOpts) } diff --git a/pkg/cloudnet/service/handlers.go b/pkg/cloudnet/service/handlers.go index 3ba24dec1c..a2714758f2 100644 --- a/pkg/cloudnet/service/handlers.go +++ b/pkg/cloudnet/service/handlers.go @@ -31,13 +31,17 @@ package service import ( "yunion.io/x/onecloud/pkg/appsrv" "yunion.io/x/onecloud/pkg/appsrv/dispatcher" + app_common "yunion.io/x/onecloud/pkg/cloudcommon/app" "yunion.io/x/onecloud/pkg/cloudcommon/db" "yunion.io/x/onecloud/pkg/cloudnet/models" + "yunion.io/x/onecloud/pkg/cloudnet/options" ) func InitHandlers(app *appsrv.Application, isSlave bool) { db.InitAllManagers() + app_common.ExportOptionsHandler(app, &options.Options) + db.RegisterModelManager(db.OpsLog) db.RegisterModelManager(db.TenantCacheManager) db.RegisterModelManager(db.UserCacheManager) diff --git a/pkg/cloudproxy/service/handlers.go b/pkg/cloudproxy/service/handlers.go index 50620254e2..33d5f038d3 100644 --- a/pkg/cloudproxy/service/handlers.go +++ b/pkg/cloudproxy/service/handlers.go @@ -17,13 +17,18 @@ package service import ( "yunion.io/x/onecloud/pkg/appsrv" "yunion.io/x/onecloud/pkg/appsrv/dispatcher" + app_common "yunion.io/x/onecloud/pkg/cloudcommon/app" "yunion.io/x/onecloud/pkg/cloudcommon/db" "yunion.io/x/onecloud/pkg/cloudproxy/models" + "yunion.io/x/onecloud/pkg/cloudproxy/options" ) func InitHandlers(app *appsrv.Application, isSlave bool) { db.InitAllManagers() + opts := options.Get() + app_common.ExportOptionsHandler(app, opts) + db.RegisterModelManager(db.OpsLog) db.RegisterModelManager(db.Metadata) db.RegisterModelManager(db.TenantCacheManager) diff --git a/pkg/cloutpost/service/handlers.go b/pkg/cloutpost/service/handlers.go index e3dcca47dd..46296dacd3 100644 --- a/pkg/cloutpost/service/handlers.go +++ b/pkg/cloutpost/service/handlers.go @@ -14,8 +14,12 @@ package service -import "yunion.io/x/onecloud/pkg/appsrv" +import ( + "yunion.io/x/onecloud/pkg/appsrv" + app_common "yunion.io/x/onecloud/pkg/cloudcommon/app" + "yunion.io/x/onecloud/pkg/cloutpost/options" +) func initHandlers(app *appsrv.Application) { - + app_common.ExportOptionsHandler(app, &options.Options) } diff --git a/pkg/compute/models/baremetalagents.go b/pkg/compute/models/baremetalagents.go index 1b336ca59f..1e13716860 100644 --- a/pkg/compute/models/baremetalagents.go +++ b/pkg/compute/models/baremetalagents.go @@ -18,10 +18,12 @@ import ( "context" "database/sql" "fmt" + "net/http" "yunion.io/x/jsonutils" "yunion.io/x/log" "yunion.io/x/pkg/errors" + "yunion.io/x/pkg/util/httputils" "yunion.io/x/pkg/util/regutils" "yunion.io/x/sqlchemy" @@ -29,6 +31,7 @@ import ( "yunion.io/x/onecloud/pkg/cloudcommon/db" "yunion.io/x/onecloud/pkg/httperrors" "yunion.io/x/onecloud/pkg/mcclient" + "yunion.io/x/onecloud/pkg/mcclient/auth" "yunion.io/x/onecloud/pkg/util/stringutils2" ) @@ -251,6 +254,16 @@ func (manager *SBaremetalagentManager) GetAgent(agentType api.TAgentType, zoneId return &agents[0] } +func (h *SBaremetalagent) GetDetailsAppOptions(ctx context.Context, userCred mcclient.TokenCredential, query jsonutils.JSONObject) (jsonutils.JSONObject, error) { + return h.Request(ctx, userCred, httputils.GET, "/app-options", nil, nil) +} + +func (self *SBaremetalagent) Request(ctx context.Context, userCred mcclient.TokenCredential, method httputils.THttpMethod, url string, headers http.Header, body jsonutils.JSONObject) (jsonutils.JSONObject, error) { + s := auth.GetSession(ctx, userCred, "") + _, ret, err := s.JSONRequest(self.ManagerUri, "", method, url, headers, body) + return ret, err +} + func (cache *SBaremetalagent) getStorageCache() (*SStoragecache, error) { if len(cache.StoragecacheId) > 0 { cacheObj, err := StoragecacheManager.FetchById(cache.StoragecacheId) diff --git a/pkg/devtool/service/handler.go b/pkg/devtool/service/handler.go index 4b92c8ce6f..bb3ea57ad3 100644 --- a/pkg/devtool/service/handler.go +++ b/pkg/devtool/service/handler.go @@ -17,14 +17,18 @@ package service import ( "yunion.io/x/onecloud/pkg/appsrv" "yunion.io/x/onecloud/pkg/appsrv/dispatcher" + app_common "yunion.io/x/onecloud/pkg/cloudcommon/app" "yunion.io/x/onecloud/pkg/cloudcommon/db" "yunion.io/x/onecloud/pkg/cloudcommon/db/taskman" "yunion.io/x/onecloud/pkg/devtool/models" + "yunion.io/x/onecloud/pkg/devtool/options" ) func InitHandlers(app *appsrv.Application, isSlave bool) { db.InitAllManagers() + app_common.ExportOptionsHandler(app, &options.Options) + taskman.AddTaskHandler("", app, isSlave) for _, manager := range []db.IModelManager{ diff --git a/pkg/esxi/service/esxi_agent_service.go b/pkg/esxi/service/esxi_agent_service.go index 4af8966b40..f90bef669b 100644 --- a/pkg/esxi/service/esxi_agent_service.go +++ b/pkg/esxi/service/esxi_agent_service.go @@ -79,6 +79,7 @@ func (s *SExsiAgentService) StartService() { handler.InitHandlers(app) mcesxi.InitEsxiConfig(options.Options.EsxiOptions) + app_common.ExportOptionsHandler(app, &options.Options) s.startAgent(app) diff --git a/pkg/image/service/handlers.go b/pkg/image/service/handlers.go index 35b57230b6..da9ba00afb 100644 --- a/pkg/image/service/handlers.go +++ b/pkg/image/service/handlers.go @@ -45,7 +45,7 @@ func InitHandlers(app *appsrv.Application, isSlave bool) { taskman.AddTaskHandler(API_VERSION, app, isSlave) - app_common.ExportOptionsHandler(app, &options.Options) + app_common.ExportOptionsHandlerWithPrefix(app, API_VERSION, &options.Options) for _, manager := range []db.IModelManager{ taskman.TaskManager, diff --git a/pkg/llm/service/handler.go b/pkg/llm/service/handler.go index 8c20840537..413a2339e9 100644 --- a/pkg/llm/service/handler.go +++ b/pkg/llm/service/handler.go @@ -11,11 +11,13 @@ import ( api "yunion.io/x/onecloud/pkg/apis/llm" "yunion.io/x/onecloud/pkg/appsrv" "yunion.io/x/onecloud/pkg/appsrv/dispatcher" + app_common "yunion.io/x/onecloud/pkg/cloudcommon/app" "yunion.io/x/onecloud/pkg/cloudcommon/db" "yunion.io/x/onecloud/pkg/cloudcommon/db/taskman" "yunion.io/x/onecloud/pkg/cloudcommon/policy" "yunion.io/x/onecloud/pkg/httperrors" "yunion.io/x/onecloud/pkg/llm/models" + "yunion.io/x/onecloud/pkg/llm/options" "yunion.io/x/onecloud/pkg/mcclient/auth" ) @@ -134,6 +136,8 @@ func InitHandlers(app *appsrv.Application, isSlave bool) { db.InitAllManagers() db.RegistUserCredCacheUpdater() + app_common.ExportOptionsHandler(app, &options.Options) + taskman.AddTaskHandler("", app, isSlave) app.AddHandler("GET", "/ollama-registry.yaml", handleOllamaRegistryYAML) diff --git a/pkg/mcclient/modules/cloudevent/mod_tasks.go b/pkg/mcclient/modules/cloudevent/mod_tasks.go new file mode 100644 index 0000000000..db6542b8f1 --- /dev/null +++ b/pkg/mcclient/modules/cloudevent/mod_tasks.go @@ -0,0 +1,27 @@ +// Copyright 2019 Yunion +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package cloudevent + +import ( + "yunion.io/x/onecloud/pkg/mcclient/modules" + "yunion.io/x/onecloud/pkg/mcclient/modules/tasks" +) + +var Tasks tasks.TasksManager +var ArchivedTasks tasks.TasksManager + +func init() { + Tasks, ArchivedTasks = tasks.NewTaskManagers(modules.NewCloudeventManager) +} diff --git a/pkg/mcclient/modules/cloudid/mod_tasks.go b/pkg/mcclient/modules/cloudid/mod_tasks.go new file mode 100644 index 0000000000..e2d2cca104 --- /dev/null +++ b/pkg/mcclient/modules/cloudid/mod_tasks.go @@ -0,0 +1,27 @@ +// Copyright 2019 Yunion +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package cloudid + +import ( + "yunion.io/x/onecloud/pkg/mcclient/modules" + "yunion.io/x/onecloud/pkg/mcclient/modules/tasks" +) + +var Tasks tasks.TasksManager +var ArchivedTasks tasks.TasksManager + +func init() { + Tasks, ArchivedTasks = tasks.NewTaskManagers(modules.NewCloudIdManager) +} diff --git a/pkg/mcclient/modules/monitor/mod_tasks.go b/pkg/mcclient/modules/monitor/mod_tasks.go index 96914a0ea3..1b0e185e07 100644 --- a/pkg/mcclient/modules/monitor/mod_tasks.go +++ b/pkg/mcclient/modules/monitor/mod_tasks.go @@ -19,14 +19,9 @@ import ( "yunion.io/x/onecloud/pkg/mcclient/modules/tasks" ) -var Tasks tasks.TasksManager - func init() { - Tasks = tasks.TasksManager{ - ResourceManager: modules.NewMonitorV2Manager("task", "tasks", - []string{}, - []string{"Id", "Obj_name", "Obj_Id", "Task_name", "Stage", "Created_at"}, - ), - } - modules.Register(&Tasks) + Tasks, ArchivedTasks = tasks.NewTaskManagers(modules.NewMonitorV2Manager) } + +var Tasks tasks.TasksManager +var ArchivedTasks tasks.TasksManager diff --git a/pkg/monitor/service/handlers.go b/pkg/monitor/service/handlers.go index df2fc99943..6277c64935 100644 --- a/pkg/monitor/service/handlers.go +++ b/pkg/monitor/service/handlers.go @@ -26,6 +26,7 @@ import ( "yunion.io/x/onecloud/pkg/appsrv" "yunion.io/x/onecloud/pkg/appsrv/dispatcher" + app_common "yunion.io/x/onecloud/pkg/cloudcommon/app" "yunion.io/x/onecloud/pkg/cloudcommon/db" "yunion.io/x/onecloud/pkg/cloudcommon/db/taskman" common_options "yunion.io/x/onecloud/pkg/cloudcommon/options" @@ -49,6 +50,8 @@ var ( func InitHandlers(app *appsrv.Application, isSlave bool) { db.InitAllManagers() + app_common.ExportOptionsHandler(app, &options.Options) + db.RegisterModelManager(db.TenantCacheManager) db.RegisterModelManager(db.UserCacheManager) db.RegisterModelManager(db.RoleCacheManager) diff --git a/pkg/notify/service/handlers.go b/pkg/notify/service/handlers.go index f73c5ecbc8..d63856af6e 100644 --- a/pkg/notify/service/handlers.go +++ b/pkg/notify/service/handlers.go @@ -17,9 +17,11 @@ package service import ( "yunion.io/x/onecloud/pkg/appsrv" "yunion.io/x/onecloud/pkg/appsrv/dispatcher" + app_common "yunion.io/x/onecloud/pkg/cloudcommon/app" "yunion.io/x/onecloud/pkg/cloudcommon/db" "yunion.io/x/onecloud/pkg/cloudcommon/db/taskman" "yunion.io/x/onecloud/pkg/notify/models" + "yunion.io/x/onecloud/pkg/notify/options" _ "yunion.io/x/onecloud/pkg/notify/sender" ) @@ -35,6 +37,8 @@ func InitHandlers(app *appsrv.Application, isSlave bool) { db.RegistUserCredCacheUpdater() + app_common.ExportOptionsHandlerWithPrefix(app, API_VERSION, &options.Options) + taskman.AddTaskHandler(API_VERSION, app, isSlave) db.AddScopeResourceCountHandler(API_VERSION, app) diff --git a/pkg/s3gateway/handlers/handlers.go b/pkg/s3gateway/handlers/handlers.go index 1b18214911..6ad1aa21bc 100644 --- a/pkg/s3gateway/handlers/handlers.go +++ b/pkg/s3gateway/handlers/handlers.go @@ -31,6 +31,7 @@ import ( "yunion.io/x/s3cli" "yunion.io/x/onecloud/pkg/appsrv" + app_common "yunion.io/x/onecloud/pkg/cloudcommon/app" "yunion.io/x/onecloud/pkg/httperrors" "yunion.io/x/onecloud/pkg/mcclient" "yunion.io/x/onecloud/pkg/mcclient/auth" @@ -39,6 +40,8 @@ import ( ) func InitHandlers(app *appsrv.Application) { + app_common.ExportOptionsHandler(app, &options.Options) + h := app.AddHandler2("HEAD", "", s3authenticate(headHandler), nil, "head", nil) h.SetProcessTimeoutCallback(s3HandlerTimeoutInfo) h = app.AddHandler2("GET", "", s3authenticate(readHandler), nil, "get", nil) diff --git a/pkg/scheduledtask/service/handlers.go b/pkg/scheduledtask/service/handlers.go index 087755a4a1..585761a44d 100644 --- a/pkg/scheduledtask/service/handlers.go +++ b/pkg/scheduledtask/service/handlers.go @@ -17,8 +17,10 @@ package service import ( "yunion.io/x/onecloud/pkg/appsrv" "yunion.io/x/onecloud/pkg/appsrv/dispatcher" + app_common "yunion.io/x/onecloud/pkg/cloudcommon/app" "yunion.io/x/onecloud/pkg/cloudcommon/db" "yunion.io/x/onecloud/pkg/scheduledtask/models" + "yunion.io/x/onecloud/pkg/scheduledtask/options" ) func InitHandlers(app *appsrv.Application, isSlave bool) { @@ -26,6 +28,8 @@ func InitHandlers(app *appsrv.Application, isSlave bool) { db.RegistUserCredCacheUpdater() db.AddScopeResourceCountHandler("", app) + app_common.ExportOptionsHandler(app, &options.Options) + for _, manager := range []db.IModelManager{ db.UserCacheManager, db.TenantCacheManager, diff --git a/pkg/vpcagent/service/service.go b/pkg/vpcagent/service/service.go index e269d1de69..2706af0081 100644 --- a/pkg/vpcagent/service/service.go +++ b/pkg/vpcagent/service/service.go @@ -72,6 +72,8 @@ func StartService() { notifyclient.EventNotifyServiceAbnormal(ctx, session.GetToken(), consts.GetServiceType(), method, path, body, err) }) + app_common.ExportOptionsHandler(app, opts) + w := worker.NewWorker(opts) if w == nil { log.Fatalf("new worker failed") diff --git a/pkg/webconsole/service/handlers.go b/pkg/webconsole/service/handlers.go index 142e51aca0..58492e78ff 100644 --- a/pkg/webconsole/service/handlers.go +++ b/pkg/webconsole/service/handlers.go @@ -36,6 +36,7 @@ import ( webconsole_api "yunion.io/x/onecloud/pkg/apis/webconsole" "yunion.io/x/onecloud/pkg/appsrv" "yunion.io/x/onecloud/pkg/appsrv/dispatcher" + app_common "yunion.io/x/onecloud/pkg/cloudcommon/app" "yunion.io/x/onecloud/pkg/cloudcommon/db" "yunion.io/x/onecloud/pkg/cloudcommon/policy" "yunion.io/x/onecloud/pkg/httperrors" @@ -60,6 +61,8 @@ const ( ) func initHandlers(app *appsrv.Application, isSlave bool) { + app_common.ExportOptionsHandler(app, &o.Options) + app.AddHandler("GET", ApiPathPrefix+"sftp//list", server.HandleSftpList) app.AddHandler("GET", ApiPathPrefix+"sftp//download", server.HandleSftpDownload) diff --git a/pkg/yunionconf/service/handlers.go b/pkg/yunionconf/service/handlers.go index 6f2bcaddf7..bbad83e8a5 100644 --- a/pkg/yunionconf/service/handlers.go +++ b/pkg/yunionconf/service/handlers.go @@ -25,11 +25,13 @@ import ( "yunion.io/x/onecloud/pkg/appsrv" "yunion.io/x/onecloud/pkg/appsrv/dispatcher" - "yunion.io/x/onecloud/pkg/baremetal/options" + baremetal_options "yunion.io/x/onecloud/pkg/baremetal/options" + app_common "yunion.io/x/onecloud/pkg/cloudcommon/app" "yunion.io/x/onecloud/pkg/cloudcommon/db" "yunion.io/x/onecloud/pkg/mcclient/auth" "yunion.io/x/onecloud/pkg/mcclient/modules/identity" "yunion.io/x/onecloud/pkg/yunionconf/models" + "yunion.io/x/onecloud/pkg/yunionconf/options" ) func InitHandlers(app *appsrv.Application, isSlave bool) { @@ -38,6 +40,8 @@ func InitHandlers(app *appsrv.Application, isSlave bool) { db.AddScopeResourceCountHandler("", app) addBugReportHandler("", app, isSlave) + app_common.ExportOptionsHandler(app, &options.Options) + for _, manager := range []db.IModelManager{ db.UserCacheManager, db.TenantCacheManager, @@ -95,9 +99,9 @@ func sendBugReportHandler(ctx context.Context, w http.ResponseWriter, r *http.Re return } _, _, body := appsrv.FetchEnv(ctx, w, r) - apiServer := options.Options.ApiServer + apiServer := baremetal_options.Options.ApiServer if len(apiServer) == 0 { - s := auth.GetAdminSession(ctx, options.Options.Region) + s := auth.GetAdminSession(ctx, baremetal_options.Options.Region) commonCfg, _ := identity.ServicesV3.GetSpecific(s, "common", "config", nil) if commonCfg != nil { _apiServer, _ := commonCfg.GetString("config", "default", "api_server")