fix(mcclient,region): add tasks mod, service app options (#24731)

This commit is contained in:
wanyaoqi
2026-04-29 23:47:54 +08:00
committed by GitHub
parent caa1c9e458
commit cc8cb4dbdf
27 changed files with 169 additions and 17 deletions
@@ -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{})
}
+24
View File
@@ -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: &notify.Tasks,
archivedManager: &notify.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]
+4
View File
@@ -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)
+1
View File
@@ -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())
+3 -2
View File
@@ -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)
}
+4
View File
@@ -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{
+4
View File
@@ -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)
+4
View File
@@ -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,
} {
+2
View File
@@ -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)
}
+4
View File
@@ -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)
+5
View File
@@ -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)
+6 -2
View File
@@ -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)
}
+13
View File
@@ -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)
+4
View File
@@ -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{
+1
View File
@@ -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)
+1 -1
View File
@@ -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,
+4
View File
@@ -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)
@@ -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)
}
+27
View File
@@ -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)
}
+4 -9
View File
@@ -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
+3
View File
@@ -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)
+4
View File
@@ -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)
+3
View File
@@ -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)
+4
View File
@@ -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,
+2
View File
@@ -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")
+3
View File
@@ -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/<session-id>/list", server.HandleSftpList)
app.AddHandler("GET", ApiPathPrefix+"sftp/<session-id>/download", server.HandleSftpDownload)
+7 -3
View File
@@ -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")