fix(cloudproxy): ssh proxy endpoint&match query

This commit is contained in:
TangBin
2021-04-23 19:38:34 +08:00
parent 66587cfb6e
commit 62f9243ba2
4 changed files with 45 additions and 1 deletions
+1 -1
View File
@@ -45,7 +45,7 @@ type ProxyEndpointUpdateInput struct {
}
type ProxyEndpointListInput struct {
apis.VirtualResourceBaseUpdateInput
apis.VirtualResourceListInput
VpcId string
NetworkId string
+14
View File
@@ -0,0 +1,14 @@
package cloudproxy
import "yunion.io/x/onecloud/pkg/apis"
type ProxyMatchListInput struct {
apis.VirtualResourceListInput
// 代理节点(ID或Name)
ProxyEndpointId string `json:"proxy_endpoint_id"`
// swagger:ignore
// Deprecated
// Filter by proxy endpoint Id
ProxyEndpoint string `json:"proxy_endpoint" yunion-deprecated-by:"proxy_endpoint_id"`
}
+5
View File
@@ -252,6 +252,11 @@ func (man *SProxyEndpointManager) ListItemFilter(
userCred mcclient.TokenCredential,
input cloudproxy_api.ProxyEndpointListInput,
) (*sqlchemy.SQuery, error) {
q, err := man.SVirtualResourceBaseManager.ListItemFilter(ctx, q, userCred, input.VirtualResourceListInput)
if err != nil {
return nil, errors.Wrap(err, "SVirtualResourceBaseManager.ListItemFilter")
}
filters := [][2]string{
[2]string{cloudproxy_api.PM_SCOPE_VPC, input.VpcId},
[2]string{cloudproxy_api.PM_SCOPE_NETWORK, input.NetworkId},
+25
View File
@@ -18,9 +18,11 @@ import (
"context"
"yunion.io/x/jsonutils"
"yunion.io/x/pkg/errors"
"yunion.io/x/sqlchemy"
api "yunion.io/x/onecloud/pkg/apis/cloudproxy"
cloudproxy_api "yunion.io/x/onecloud/pkg/apis/cloudproxy"
"yunion.io/x/onecloud/pkg/cloudcommon/db"
"yunion.io/x/onecloud/pkg/cloudcommon/validators"
"yunion.io/x/onecloud/pkg/mcclient"
@@ -111,3 +113,26 @@ func (man *SProxyMatchManager) findMatch(ctx context.Context, networkId, vpcId s
}
return r
}
func (man *SProxyMatchManager) ListItemFilter(
ctx context.Context,
q *sqlchemy.SQuery,
userCred mcclient.TokenCredential,
input cloudproxy_api.ProxyMatchListInput,
) (*sqlchemy.SQuery, error) {
q, err := man.SVirtualResourceBaseManager.ListItemFilter(ctx, q, userCred, input.VirtualResourceListInput)
if err != nil {
return nil, errors.Wrap(err, "SVirtualResourceBaseManager.ListItemFilter")
}
if len(input.ProxyEndpointId) > 0 {
_, err := validators.ValidateModel(userCred, ProxyEndpointManager, &input.ProxyEndpointId)
if err != nil {
return nil, err
}
q = q.Equals("proxy_endpoint_id", input.ProxyEndpointId)
}
return q, nil
}