mirror of
https://github.com/yunionio/cloudpods.git
synced 2026-09-21 14:19:49 +08:00
Merge pull request #9960 from zhaoxiangchun/bugfix/zxc-alert-domain-list
fix(monitor): domain view can list scope is domain or project alertrecords; fix nodata alert return info
This commit is contained in:
@@ -121,6 +121,9 @@ func (man *SCommonAlertManager) ValidateCreateData(
|
||||
return data, merrors.NewArgIsEmptyErr("metric_query")
|
||||
} else {
|
||||
for _, query := range data.CommonMetricInputQuery.MetricQuery {
|
||||
if query.ConditionType == monitor.METRIC_QUERY_TYPE_NO_DATA {
|
||||
query.Comparator = "=="
|
||||
}
|
||||
if !utils.IsInStringArray(getQueryEvalType(query.Comparator), validators.EvaluatorDefaultTypes) {
|
||||
return data, httperrors.NewInputParameterError("the Comparator is illegal: %s", query.Comparator)
|
||||
}
|
||||
@@ -226,6 +229,10 @@ func (alert *SCommonAlert) CustomizeCreate(
|
||||
query jsonutils.JSONObject,
|
||||
data jsonutils.JSONObject,
|
||||
) error {
|
||||
err := alert.SMonitorScopedResource.CustomizeCreate(ctx, userCred, ownerId, query, data)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
alert.State = string(monitor.AlertStateUnknown)
|
||||
input := new(monitor.CommonAlertCreateInput)
|
||||
if err := data.Unmarshal(input); err != nil {
|
||||
@@ -554,6 +561,7 @@ func getCommonAlertMetricDetailsFromCondition(cond *monitor.AlertCondition,
|
||||
metricDetails.ConditionType = cond.Type
|
||||
if metricDetails.ConditionType == monitor.METRIC_QUERY_TYPE_NO_DATA {
|
||||
metricDetails.ThresholdStr = monitor.METRIC_QUERY_NO_DATA_THESHOLD
|
||||
metricDetails.Comparator = monitor.METRIC_QUERY_NO_DATA_THESHOLD
|
||||
}
|
||||
|
||||
q := cond.Query
|
||||
@@ -748,6 +756,9 @@ func (alert *SCommonAlert) ValidateUpdateData(
|
||||
if err != nil {
|
||||
return data, errors.Wrap(err, "metric_query Unmarshal error")
|
||||
}
|
||||
if query.ConditionType == monitor.METRIC_QUERY_TYPE_NO_DATA {
|
||||
query.Comparator = "=="
|
||||
}
|
||||
if !utils.IsInStringArray(getQueryEvalType(query.Comparator), validators.EvaluatorDefaultTypes) {
|
||||
return data, httperrors.NewInputParameterError("the Comparator is illegal: %s", query.Comparator)
|
||||
}
|
||||
|
||||
@@ -33,6 +33,22 @@ func (m *SMonitorScopedResourceManager) FilterByOwner(q *sqlchemy.SQuery, userCr
|
||||
return q
|
||||
}
|
||||
|
||||
func (s *SMonitorScopedResource) CustomizeCreate(ctx context.Context, userCred mcclient.TokenCredential, ownerId mcclient.IIdentityProvider, query jsonutils.JSONObject, data jsonutils.JSONObject) error {
|
||||
scope, _ := data.GetString("scope")
|
||||
switch rbacutils.TRbacScope(scope) {
|
||||
case rbacutils.ScopeSystem:
|
||||
s.DomainId = ""
|
||||
s.ProjectId = ""
|
||||
case rbacutils.ScopeDomain:
|
||||
s.DomainId = ownerId.GetProjectDomainId()
|
||||
s.ProjectId = ""
|
||||
case rbacutils.ScopeProject:
|
||||
s.DomainId = ownerId.GetProjectDomainId()
|
||||
s.ProjectId = ownerId.GetProjectId()
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (manager *SMonitorScopedResourceManager) ResourceScope() rbacutils.TRbacScope {
|
||||
return manager.SScopedResourceBaseManager.ResourceScope()
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user