mirror of
https://github.com/yunionio/cloudpods.git
synced 2026-09-19 02:37:24 +08:00
use deprecated-by tag to describe deprecated fields
This commit is contained in:
@@ -44,43 +44,52 @@ type CloudproviderDetails struct {
|
||||
}
|
||||
|
||||
type ManagedResourceListInput struct {
|
||||
// List objects belonging to the cloud provider
|
||||
// 列出关联指定云订阅(ID或Name)的资源
|
||||
Cloudprovider string `json:"cloudprovider"`
|
||||
// List objects belonging to the cloud provider
|
||||
// swagger:ignore
|
||||
// Deprecated
|
||||
// description: this param will be deprecate at 3.0
|
||||
Manager string `json:"manager"`
|
||||
Manager string `json:"manager" deprecated-by:"cloudprovider"`
|
||||
// swagger:ignore
|
||||
// Deprecated
|
||||
// description: this param will be deprecate at 3.0
|
||||
ManagerId string `json:"manager_id"`
|
||||
ManagerId string `json:"manager_id" deprecated-by:"cloudprovider"`
|
||||
// swagger:ignore
|
||||
// Deprecated
|
||||
// description: this param will be deprecate at 3.0
|
||||
CloudproviderId string `json:"cloudprovider_id"`
|
||||
CloudproviderId string `json:"cloudprovider_id" deprecated-by:"cloudprovider"`
|
||||
|
||||
// List objects belonging to the cloud account
|
||||
// 列出关联指定云账号(ID或Name)的资源
|
||||
Cloudaccount string `json:"cloudaccount"`
|
||||
// swagger:ignore
|
||||
// Deprecated
|
||||
// description: this param will be deprecate at 3.0
|
||||
CloudaccountId string `json:"cloudaccount_id"`
|
||||
CloudaccountId string `json:"cloudaccount_id" deprecated-by:"cloudaccount"`
|
||||
// swagger:ignore
|
||||
// Deprecated
|
||||
// description: this param will be deprecate at 3.0
|
||||
Account string `json:"account"`
|
||||
Account string `json:"account" deprecated-by:"cloudaccount"`
|
||||
// swagger:ignore
|
||||
// Deprecated
|
||||
// description: this param will be deprecate at 3.0
|
||||
AccountId string `json:"account_id"`
|
||||
AccountId string `json:"account_id" deprecated-by:"cloudaccount"`
|
||||
|
||||
// List objects from the providers, choices:"OneCloud|VMware|Aliyun|Qcloud|Azure|Aws|Huawei|OpenStack|Ucloud|ZStack|Google"
|
||||
// 列出指定云平台的资源,支持的云平台如下
|
||||
// enum: OneCloud,VMware,Aliyun,Qcloud,Azure,Aws,Huawei,OpenStack,Ucloud,ZStack,Google,Ctyun,S3,Ceph,Xsky"
|
||||
Providers []string `json:"provider"`
|
||||
|
||||
// List objects belonging to brands
|
||||
// 列出指定云平台品牌的资源
|
||||
Brands []string `json:"brand"`
|
||||
|
||||
// 列出指定云环境的资源,支持云环境如下:
|
||||
//
|
||||
// | CloudEnv | 说明 |
|
||||
// |-----------|--------|
|
||||
// | public | 公有云 |
|
||||
// | private | 私有云 |
|
||||
// | onpremise | 本地IDC |
|
||||
//
|
||||
// enum: public,private,onpremise
|
||||
CloudEnv string `json:"cloud_env"`
|
||||
|
||||
@@ -107,61 +116,26 @@ type ManagedResourceListInput struct {
|
||||
// description: this param will be deprecate at 3.0
|
||||
IsOnPremise bool `json:"is_on_premise"`
|
||||
|
||||
// List objects managed by external providers
|
||||
// 过滤资源,是否为非OneCloud内置私有云管理的资源
|
||||
// default: false
|
||||
IsManaged bool `json:"is_managed"`
|
||||
}
|
||||
|
||||
func (input ManagedResourceListInput) CloudaccountStr() string {
|
||||
if len(input.Cloudaccount) > 0 {
|
||||
return input.Cloudaccount
|
||||
}
|
||||
if len(input.CloudaccountId) > 0 {
|
||||
return input.CloudaccountId
|
||||
}
|
||||
if len(input.Account) > 0 {
|
||||
return input.Account
|
||||
}
|
||||
if len(input.AccountId) > 0 {
|
||||
return input.AccountId
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
||||
func (input ManagedResourceListInput) CloudproviderStr() string {
|
||||
if len(input.Cloudprovider) > 0 {
|
||||
return input.Cloudprovider
|
||||
}
|
||||
if len(input.CloudproviderId) > 0 {
|
||||
return input.CloudproviderId
|
||||
}
|
||||
if len(input.Manager) > 0 {
|
||||
return input.Manager
|
||||
}
|
||||
if len(input.ManagerId) > 0 {
|
||||
return input.ManagerId
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
||||
func (input ManagedResourceListInput) CloudEnvStr() string {
|
||||
func (input *ManagedResourceListInput) AfterUnmarshal() {
|
||||
if len(input.CloudEnv) > 0 {
|
||||
return input.CloudEnv
|
||||
return
|
||||
}
|
||||
if input.PublicCloud || input.IsPublic {
|
||||
return CLOUD_ENV_PUBLIC_CLOUD
|
||||
input.CloudEnv = CLOUD_ENV_PUBLIC_CLOUD
|
||||
} else if input.PrivateCloud || input.IsPrivate {
|
||||
input.CloudEnv = CLOUD_ENV_PRIVATE_CLOUD
|
||||
} else if input.IsOnPremise {
|
||||
input.CloudEnv = CLOUD_ENV_ON_PREMISE
|
||||
}
|
||||
if input.PrivateCloud || input.IsPrivate {
|
||||
return CLOUD_ENV_PRIVATE_CLOUD
|
||||
}
|
||||
if input.IsOnPremise {
|
||||
return CLOUD_ENV_ON_PREMISE
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
||||
type CapabilityListInput struct {
|
||||
// filter by cloudprovider capability
|
||||
// 根据该云平台的功能对云账号或云订阅进行过滤
|
||||
Capability []string `json:"capability"`
|
||||
// swagger:ignore
|
||||
// Deprecated
|
||||
@@ -179,9 +153,8 @@ type CloudproviderListInput struct {
|
||||
CapabilityListInput
|
||||
}
|
||||
|
||||
func (input CapabilityListInput) CapabilityList() []string {
|
||||
func (input *CapabilityListInput) AfterUnmarshal() {
|
||||
if input.HasObjectStorage != nil && *input.HasObjectStorage && !utils.IsInStringArray(cloudprovider.CLOUD_CAPABILITY_OBJECTSTORE, input.Capability) {
|
||||
input.Capability = append(input.Capability, cloudprovider.CLOUD_CAPABILITY_OBJECTSTORE)
|
||||
}
|
||||
return input.Capability
|
||||
}
|
||||
|
||||
@@ -159,7 +159,7 @@ type SDBInstanceRecoveryConfigInput struct {
|
||||
|
||||
DBInstancebackup string
|
||||
DBInstancebackupId string `json:"dbinstancebackup_id"`
|
||||
Databases map[string]string `json:"allowempty"`
|
||||
Databases map[string]string `json:"databases,allowempty"`
|
||||
}
|
||||
|
||||
type DBInstanceListInput struct {
|
||||
@@ -212,15 +212,5 @@ type DbinstanceFilterListInput struct {
|
||||
// swagger:ignore
|
||||
// Deprecated
|
||||
// filter by dbinstance_id
|
||||
DbinstanceId string `json:"dbinstance_id"`
|
||||
}
|
||||
|
||||
func (input DbinstanceFilterListInput) DbinstanceStr() string {
|
||||
if len(input.Dbinstance) > 0 {
|
||||
return input.Dbinstance
|
||||
}
|
||||
if len(input.DbinstanceId) > 0 {
|
||||
return input.DbinstanceId
|
||||
}
|
||||
return ""
|
||||
DbinstanceId string `json:"dbinstance_id" deprecated-by:"dbinstance"`
|
||||
}
|
||||
|
||||
+13
-35
@@ -87,17 +87,7 @@ type SnapshotPolicyFilterListInput struct {
|
||||
// swagger:ignore
|
||||
// Deprecated
|
||||
// filter disk by snapshotpolicy_id
|
||||
SnapshotpolicyId string `json:"snapshotpolicy_id"`
|
||||
}
|
||||
|
||||
func (input SnapshotPolicyFilterListInput) SnapshotpolicyStr() string {
|
||||
if len(input.Snapshotpolicy) > 0 {
|
||||
return input.Snapshotpolicy
|
||||
}
|
||||
if len(input.SnapshotpolicyId) > 0 {
|
||||
return input.SnapshotpolicyId
|
||||
}
|
||||
return ""
|
||||
SnapshotpolicyId string `json:"snapshotpolicy_id" deprecated-by:"snapshotpolicy"`
|
||||
}
|
||||
|
||||
type DiskListInput struct {
|
||||
@@ -117,36 +107,24 @@ type DiskListInput struct {
|
||||
// swagger:ignore
|
||||
// Deprecated
|
||||
// filter by disk type
|
||||
Type string `json:"type"`
|
||||
// filter by disk type
|
||||
Type string `json:"type" deprecated-by:"disk_type"`
|
||||
// 过滤指定disk_type的磁盘列表,可能的值为:sys, data, swap. volume
|
||||
//
|
||||
// | disk_type值 | 说明 |
|
||||
// |-------------|----------|
|
||||
// | sys | 虚拟机系统盘 |
|
||||
// | data | 虚拟机数据盘 |
|
||||
// | swap | 虚拟机内存交换盘 |
|
||||
// | volume | 容器volumn盘 |
|
||||
//
|
||||
DiskType string `json:"disk_type"`
|
||||
}
|
||||
|
||||
func (input DiskListInput) DiskTypeStr() string {
|
||||
if len(input.DiskType) > 0 {
|
||||
return input.DiskType
|
||||
}
|
||||
if len(input.Type) > 0 {
|
||||
return input.Type
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
||||
type DiskFilterListInput struct {
|
||||
// filter by disk, id or name
|
||||
// 以指定虚拟磁盘(ID或Name)过滤列表结果
|
||||
Disk string `json:"disk"`
|
||||
// swagger:ignore
|
||||
// Deprecated
|
||||
// filter by disk_id
|
||||
DiskId string `json:"disk_id"`
|
||||
}
|
||||
|
||||
func (input DiskFilterListInput) DiskStr() string {
|
||||
if len(input.Disk) > 0 {
|
||||
return input.Disk
|
||||
}
|
||||
if len(input.DiskId) > 0 {
|
||||
return input.DiskId
|
||||
}
|
||||
return ""
|
||||
DiskId string `json:"disk_id" deprecated-by:"disk"`
|
||||
}
|
||||
|
||||
@@ -19,66 +19,40 @@ import (
|
||||
)
|
||||
|
||||
type RegionalFilterListInput struct {
|
||||
// filter by city
|
||||
// 过滤位于指定城市区域的资源
|
||||
City string `json:"city"`
|
||||
|
||||
// filter by cloudregion
|
||||
// 过滤处于指定区域内的资源
|
||||
Cloudregion string `json:"cloudregion"`
|
||||
// swagger:ignore
|
||||
// Deprecated
|
||||
// description: this param will be deprecate at 3.0
|
||||
CloudregionId string `json:"cloudregion_id"`
|
||||
CloudregionId string `json:"cloudregion_id" deprecated-by:"cloudregion"`
|
||||
// swagger:ignore
|
||||
// Deprecated
|
||||
// description: this param will be deprecate at 3.0
|
||||
Region string `json:"region"`
|
||||
Region string `json:"region" deprecated-by:"cloudregion"`
|
||||
// swagger:ignore
|
||||
// Deprecated
|
||||
// description: this param will be deprecate at 3.0
|
||||
RegionId string `json:"region_id"`
|
||||
}
|
||||
|
||||
func (input RegionalFilterListInput) CloudregionStr() string {
|
||||
if len(input.Cloudregion) > 0 {
|
||||
return input.Cloudregion
|
||||
}
|
||||
if len(input.CloudregionId) > 0 {
|
||||
return input.CloudregionId
|
||||
}
|
||||
if len(input.Region) > 0 {
|
||||
return input.Region
|
||||
}
|
||||
if len(input.RegionId) > 0 {
|
||||
return input.RegionId
|
||||
}
|
||||
return ""
|
||||
RegionId string `json:"region_id" deprecated-by:"cloudregion"`
|
||||
}
|
||||
|
||||
type ZonalFilterListInput struct {
|
||||
RegionalFilterListInput
|
||||
|
||||
// filter by zone
|
||||
// 过滤处于指定可用区内的资源
|
||||
Zone string `json:"zone"`
|
||||
// swagger:ignore
|
||||
// Deprecated
|
||||
// filter by zone_id
|
||||
ZoneId string `json:"zone_id"`
|
||||
// filter by an array of zone
|
||||
ZoneId string `json:"zone_id" deprecated-by:"zone"`
|
||||
// 过滤处于多个指定可用区内的资源
|
||||
Zones []string `json:"zones"`
|
||||
}
|
||||
|
||||
func (input ZonalFilterListInput) ZoneStr() string {
|
||||
if len(input.Zone) > 0 {
|
||||
return input.Zone
|
||||
}
|
||||
if len(input.ZoneId) > 0 {
|
||||
return input.ZoneId
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
||||
func (input ZonalFilterListInput) ZoneList() []string {
|
||||
zoneStr := input.ZoneStr()
|
||||
zoneStr := input.Zone
|
||||
if len(zoneStr) > 0 {
|
||||
input.Zones = append(input.Zones, zoneStr)
|
||||
}
|
||||
@@ -88,22 +62,12 @@ func (input ZonalFilterListInput) ZoneList() []string {
|
||||
type HostFilterListInput struct {
|
||||
ZonalFilterListInput
|
||||
|
||||
// filter by host
|
||||
// 过滤关联指定宿主机(ID或Name)的列表结果
|
||||
Host string `json:"host"`
|
||||
// swagger:ignore
|
||||
// Deprecated
|
||||
// filter by host_id
|
||||
HostId string `json:"host_id"`
|
||||
}
|
||||
|
||||
func (input HostFilterListInput) HostStr() string {
|
||||
if len(input.Host) > 0 {
|
||||
return input.Host
|
||||
}
|
||||
if len(input.HostId) > 0 {
|
||||
return input.HostId
|
||||
}
|
||||
return ""
|
||||
HostId string `json:"host_id" deprecated-by:"host"`
|
||||
}
|
||||
|
||||
type CloudregionListInput struct {
|
||||
@@ -114,9 +78,9 @@ type CloudregionListInput struct {
|
||||
UsableResourceListInput
|
||||
UsableVpcResourceListInput
|
||||
|
||||
// filter by city
|
||||
// 过滤位于指定城市的区域
|
||||
City string `json:"city"`
|
||||
// filter by service???
|
||||
// 过滤提供特定服务的区域
|
||||
Service string `json:"service"`
|
||||
}
|
||||
|
||||
@@ -131,6 +95,6 @@ type ZoneListInput struct {
|
||||
UsableResourceListInput
|
||||
UsableVpcResourceListInput
|
||||
|
||||
// filter by service
|
||||
// 过滤提供特定服务的可用区
|
||||
Service string `json:"service"`
|
||||
}
|
||||
|
||||
@@ -24,31 +24,15 @@ type ServerFilterListInput struct {
|
||||
// swagger:ignore
|
||||
// Deprecated
|
||||
// Filter by guest Id
|
||||
ServerId string `json:"server_id"`
|
||||
ServerId string `json:"server_id" deprecated-by:"server"`
|
||||
// swagger:ignore
|
||||
// Deprecated
|
||||
// Filter by guest Id
|
||||
Guest string `json:"guest"`
|
||||
Guest string `json:"guest" deprecated-by:"server"`
|
||||
// swagger:ignore
|
||||
// Deprecated
|
||||
// Filter by guest Id
|
||||
GuestId string `json:"guest_id"`
|
||||
}
|
||||
|
||||
func (input ServerFilterListInput) ServerStr() string {
|
||||
if len(input.Server) > 0 {
|
||||
return input.Server
|
||||
}
|
||||
if len(input.ServerId) > 0 {
|
||||
return input.ServerId
|
||||
}
|
||||
if len(input.Guest) > 0 {
|
||||
return input.Guest
|
||||
}
|
||||
if len(input.GuestId) > 0 {
|
||||
return input.GuestId
|
||||
}
|
||||
return ""
|
||||
GuestId string `json:"guest_id" deprecated-by:"server"`
|
||||
}
|
||||
|
||||
type ServerListInput struct {
|
||||
@@ -91,15 +75,10 @@ type ServerListInput struct {
|
||||
GetBackupGuestsOnHost *bool `json:"get_backup_guests_on_host"`
|
||||
}
|
||||
|
||||
func (input ServerListInput) HypervisorList() []string {
|
||||
ret := make([]string, 0)
|
||||
func (input *ServerListInput) AfterUnmarshal() {
|
||||
if input.Baremetal != nil && *input.Baremetal {
|
||||
ret = append(ret, HYPERVISOR_BAREMETAL)
|
||||
input.Hypervisor = append(input.Hypervisor, HYPERVISOR_BAREMETAL)
|
||||
}
|
||||
if len(input.Hypervisor) > 0 {
|
||||
ret = append(ret, input.Hypervisor...)
|
||||
}
|
||||
return ret
|
||||
}
|
||||
|
||||
type ServerRebuildRootInput struct {
|
||||
|
||||
@@ -21,9 +21,9 @@ type InstanceGroupListInput struct {
|
||||
ZonalFilterListInput
|
||||
ServerFilterListInput
|
||||
|
||||
// Filter by service type
|
||||
// 以service_type过滤列表结果
|
||||
ServiceType string `json:"service_type"`
|
||||
// Filter by parent id
|
||||
// 以parent_id过滤列表结果
|
||||
ParentId string `json:"parent_id"`
|
||||
}
|
||||
|
||||
@@ -34,20 +34,10 @@ type InstanceGroupDetail struct {
|
||||
}
|
||||
|
||||
type GroupFilterListInput struct {
|
||||
// Instance Group ID or Name
|
||||
// 以指定实例组(ID或Name)过滤列表结果
|
||||
Group string `json:"group"`
|
||||
// swagger:ignore
|
||||
// deprecated: true
|
||||
// Filter by instance group Id
|
||||
GroupId string `json:"group_id"`
|
||||
}
|
||||
|
||||
func (input GroupFilterListInput) GroupStr() string {
|
||||
if len(input.Group) > 0 {
|
||||
return input.Group
|
||||
}
|
||||
if len(input.GroupId) > 0 {
|
||||
return input.GroupId
|
||||
}
|
||||
return ""
|
||||
GroupId string `json:"group_id" deprecated-by:"group"`
|
||||
}
|
||||
|
||||
@@ -19,66 +19,34 @@ import (
|
||||
)
|
||||
|
||||
type VpcFilterListInput struct {
|
||||
// filter by vpc
|
||||
// 过滤关联此Vpc的资源
|
||||
// 过滤关联此VPC(ID或Name)的资源
|
||||
Vpc string `json:"vpc"`
|
||||
// swagger:ignore
|
||||
// Deprecated
|
||||
// filter by vpc Id
|
||||
VpcId string `json:"vpc_id"`
|
||||
}
|
||||
|
||||
func (input VpcFilterListInput) VpcStr() string {
|
||||
if len(input.Vpc) > 0 {
|
||||
return input.Vpc
|
||||
}
|
||||
if len(input.VpcId) > 0 {
|
||||
return input.VpcId
|
||||
}
|
||||
return ""
|
||||
VpcId string `json:"vpc_id" deprecated-by:"vpc"`
|
||||
}
|
||||
|
||||
type WireFilterListInput struct {
|
||||
VpcFilterListInput
|
||||
// filter by wire
|
||||
// 过滤连接此二层网络的资源
|
||||
|
||||
// 过滤连接此二层网络(ID或Name)的资源
|
||||
Wire string `json:"wire"`
|
||||
// swagger:ignore
|
||||
// Deprecated
|
||||
// fitler by wire id
|
||||
WireId string `json:"wire_id"`
|
||||
}
|
||||
|
||||
func (input WireFilterListInput) WireStr() string {
|
||||
if len(input.Wire) > 0 {
|
||||
return input.Wire
|
||||
}
|
||||
if len(input.WireId) > 0 {
|
||||
return input.WireId
|
||||
}
|
||||
return ""
|
||||
WireId string `json:"wire_id" deprecated-by:"wire"`
|
||||
}
|
||||
|
||||
type NetworkFilterListInput struct {
|
||||
WireFilterListInput
|
||||
|
||||
// filter by network
|
||||
// 过滤关联此网络的资源
|
||||
// 过滤关联此网络(ID或Name)的资源
|
||||
Network string `json:"network"`
|
||||
// swagger:ignore
|
||||
// Deprecated
|
||||
// filter by networkId
|
||||
NetworkId string `json:"network"`
|
||||
}
|
||||
|
||||
func (input NetworkFilterListInput) NetworkStr() string {
|
||||
if len(input.Network) > 0 {
|
||||
return input.Network
|
||||
}
|
||||
if len(input.NetworkId) > 0 {
|
||||
return input.NetworkId
|
||||
}
|
||||
return ""
|
||||
NetworkId string `json:"network_id" deprecated-by:"network"`
|
||||
}
|
||||
|
||||
type NetworkListInput struct {
|
||||
|
||||
@@ -40,22 +40,12 @@ type SchedtagCreateInput struct {
|
||||
}
|
||||
|
||||
type SchedtagFilterListInput struct {
|
||||
// filter by schedtag
|
||||
// 以关联的调度标签(ID或Name)过滤列表
|
||||
Schedtag string `json:"schedtag"`
|
||||
// swagger:ignore
|
||||
// Deprecated
|
||||
// filter by schedtag_id
|
||||
SchedtagId string `json:"schedtag_id"`
|
||||
}
|
||||
|
||||
func (input SchedtagFilterListInput) SchedtagStr() string {
|
||||
if len(input.Schedtag) > 0 {
|
||||
return input.Schedtag
|
||||
}
|
||||
if len(input.SchedtagId) > 0 {
|
||||
return input.SchedtagId
|
||||
}
|
||||
return ""
|
||||
SchedtagId string `json:"schedtag_id" deprecated-by:"schedtag"`
|
||||
}
|
||||
|
||||
type SchedtagListInput struct {
|
||||
@@ -66,15 +56,5 @@ type SchedtagListInput struct {
|
||||
// swagger:ignore
|
||||
// Deprecated
|
||||
// filter by type, alias for resource_type
|
||||
Type string `json:"type"`
|
||||
}
|
||||
|
||||
func (input SchedtagListInput) ResourceTypeStr() string {
|
||||
if len(input.ResourceType) > 0 {
|
||||
return input.ResourceType
|
||||
}
|
||||
if len(input.Type) > 0 {
|
||||
return input.Type
|
||||
}
|
||||
return ""
|
||||
Type string `json:"type" deprecated-by:"resource_type"`
|
||||
}
|
||||
|
||||
@@ -148,29 +148,19 @@ type SecurityGroupRuleListInput struct {
|
||||
apis.ResourceBaseListInput
|
||||
SecgroupFilterListInput
|
||||
|
||||
// filter by direction
|
||||
// 以direction字段过滤安全组规则
|
||||
Direction string `json:"direction"`
|
||||
// filter by action
|
||||
// 以action字段过滤安全组规则
|
||||
Action string `json:"action"`
|
||||
// filter by protocol
|
||||
// 以protocol字段过滤安全组规则
|
||||
Protocol string `json:"protocol"`
|
||||
}
|
||||
|
||||
type SecgroupFilterListInput struct {
|
||||
// filter by Security group
|
||||
// 过滤关联指定安全组(ID或Name)的列表结果
|
||||
Secgroup string `json:"secgroup"`
|
||||
// swagger:ignore
|
||||
// Deprecated
|
||||
// filter by secgroup_id
|
||||
SecgroupId string `json:"secgroup_id"`
|
||||
}
|
||||
|
||||
func (input SecgroupFilterListInput) SecgroupStr() string {
|
||||
if len(input.Secgroup) > 0 {
|
||||
return input.Secgroup
|
||||
}
|
||||
if len(input.SecgroupId) > 0 {
|
||||
return input.SecgroupId
|
||||
}
|
||||
return ""
|
||||
SecgroupId string `json:"secgroup_id" deprecated-by:"secgroup"`
|
||||
}
|
||||
|
||||
@@ -139,22 +139,12 @@ var (
|
||||
)
|
||||
|
||||
type StorageFilterListInput struct {
|
||||
// filter by storage
|
||||
// 过滤关联此存储(ID或Name)的列表结果
|
||||
Storage string `json:"storage"`
|
||||
// swagger:ignore
|
||||
// Deprecated
|
||||
// filter by storage_id
|
||||
StorageId string `json:"storage_id"`
|
||||
}
|
||||
|
||||
func (input StorageFilterListInput) StorageStr() string {
|
||||
if len(input.Storage) > 0 {
|
||||
return input.Storage
|
||||
}
|
||||
if len(input.StorageId) > 0 {
|
||||
return input.StorageId
|
||||
}
|
||||
return ""
|
||||
StorageId string `json:"storage_id" deprecated-by:"storage"`
|
||||
}
|
||||
|
||||
type StorageShareFilterListInput struct {
|
||||
|
||||
+29
-64
@@ -43,36 +43,20 @@ type EnabledIdentityBaseResourceListInput struct {
|
||||
}
|
||||
|
||||
type ProjectFilterListInput struct {
|
||||
// filter by project
|
||||
// 以项目(ID或Name)过滤列表结果
|
||||
Project string `json:"project"`
|
||||
// swagger:ignore
|
||||
// Deprecated
|
||||
// filter by project_id
|
||||
ProjectId string `json:"project_id"`
|
||||
ProjectId string `json:"project_id" deprecated-by:"project"`
|
||||
// swagger:ignore
|
||||
// Deprecated
|
||||
// filter by tenant
|
||||
Tenant string `json:"tenant"`
|
||||
Tenant string `json:"tenant" deprecated-by:"project"`
|
||||
// swagger:ignore
|
||||
// Deprecated
|
||||
// filter by tenant_id
|
||||
TenantId string `json:"tenant_id"`
|
||||
}
|
||||
|
||||
func (input ProjectFilterListInput) ProjectStr() string {
|
||||
if len(input.Project) > 0 {
|
||||
return input.Project
|
||||
}
|
||||
if len(input.ProjectId) > 0 {
|
||||
return input.ProjectId
|
||||
}
|
||||
if len(input.Tenant) > 0 {
|
||||
return input.Tenant
|
||||
}
|
||||
if len(input.TenantId) > 0 {
|
||||
return input.TenantId
|
||||
}
|
||||
return ""
|
||||
TenantId string `json:"tenant_id" deprecated-by:"project"`
|
||||
}
|
||||
|
||||
type UserFilterListInput struct {
|
||||
@@ -81,17 +65,7 @@ type UserFilterListInput struct {
|
||||
// swagger:ignore
|
||||
// Deprecated
|
||||
// filter by user_id
|
||||
UserId string `json:"user_id"`
|
||||
}
|
||||
|
||||
func (input UserFilterListInput) UserStr() string {
|
||||
if len(input.User) > 0 {
|
||||
return input.User
|
||||
}
|
||||
if len(input.UserId) > 0 {
|
||||
return input.UserId
|
||||
}
|
||||
return ""
|
||||
UserId string `json:"user_id" deprecated-by:"user"`
|
||||
}
|
||||
|
||||
type GroupFilterListInput struct {
|
||||
@@ -100,17 +74,7 @@ type GroupFilterListInput struct {
|
||||
// swagger:ignore
|
||||
// Deprecated
|
||||
// filter by group_id
|
||||
GroupId string `json:"group_id"`
|
||||
}
|
||||
|
||||
func (input GroupFilterListInput) GroupStr() string {
|
||||
if len(input.Group) > 0 {
|
||||
return input.Group
|
||||
}
|
||||
if len(input.GroupId) > 0 {
|
||||
return input.GroupId
|
||||
}
|
||||
return ""
|
||||
GroupId string `json:"group_id" deprecated-by:"group"`
|
||||
}
|
||||
|
||||
type RoleFilterListInput struct {
|
||||
@@ -119,17 +83,7 @@ type RoleFilterListInput struct {
|
||||
// swagger:ignore
|
||||
// Deprecated
|
||||
// filter by role_id
|
||||
RoleId string `json:"role_id"`
|
||||
}
|
||||
|
||||
func (input RoleFilterListInput) RoleStr() string {
|
||||
if len(input.Role) > 0 {
|
||||
return input.Role
|
||||
}
|
||||
if len(input.RoleId) > 0 {
|
||||
return input.RoleId
|
||||
}
|
||||
return ""
|
||||
RoleId string `json:"role_id" deprecated-by:"role"`
|
||||
}
|
||||
|
||||
type ServiceFilterListInput struct {
|
||||
@@ -138,17 +92,7 @@ type ServiceFilterListInput struct {
|
||||
// swagger:ignore
|
||||
// Deprecated
|
||||
// filter by service_id
|
||||
ServiceId string `json:"service_id"`
|
||||
}
|
||||
|
||||
func (input ServiceFilterListInput) ServiceStr() string {
|
||||
if len(input.Service) > 0 {
|
||||
return input.Service
|
||||
}
|
||||
if len(input.ServiceId) > 0 {
|
||||
return input.ServiceId
|
||||
}
|
||||
return ""
|
||||
ServiceId string `json:"service_id" deprecated-by:"service"`
|
||||
}
|
||||
|
||||
type RoleListInput struct {
|
||||
@@ -281,3 +225,24 @@ func (input SProjectRemoveUserGroupInput) Validate() error {
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
type IdentityProviderListInput struct {
|
||||
apis.EnabledStatusStandaloneResourceListInput
|
||||
}
|
||||
|
||||
type CredentialListInput struct {
|
||||
apis.StandaloneResourceListInput
|
||||
}
|
||||
|
||||
type PolicyListInput struct {
|
||||
EnabledIdentityBaseResourceListInput
|
||||
apis.SharableResourceListInput
|
||||
}
|
||||
|
||||
type RegionListInput struct {
|
||||
apis.StandaloneResourceListInput
|
||||
}
|
||||
|
||||
type ServiceListInput struct {
|
||||
apis.StandaloneResourceListInput
|
||||
}
|
||||
|
||||
@@ -21,8 +21,12 @@ import (
|
||||
type ImageListInput struct {
|
||||
apis.SharableVirtualResourceListInput
|
||||
|
||||
// filter by disk_formats
|
||||
// 以镜像的格式过滤,可能值为:qcow2, iso, vmdk, vhd, raw等
|
||||
DiskFormats []string `json:"disk_formats"`
|
||||
// filter by uefi
|
||||
// 列出是否支持UEFI启动的镜像
|
||||
Uefi *bool `json:"uefi"`
|
||||
}
|
||||
|
||||
type GuestImageListInput struct {
|
||||
apis.SharableVirtualResourceListInput
|
||||
}
|
||||
|
||||
+9
-40
@@ -20,34 +20,19 @@ type DomainizedResourceListInput struct {
|
||||
// Deprecated
|
||||
Admin *bool `json:"admin"`
|
||||
|
||||
// Specify query scope, either project, domain or system
|
||||
// 指定查询的权限范围,可能值为project, domain or system
|
||||
Scope string `json:"scope"`
|
||||
|
||||
// Project domain filter, either by Id or Name
|
||||
// 指定查询的项目,ID or Name
|
||||
// 查询指定的域(ID或名称)拥有的资源
|
||||
ProjectDomain string `json:"project_domain"`
|
||||
// swagger:ignore
|
||||
// Deprecated
|
||||
// Project domain Id filter, alias for project_domain
|
||||
ProjectDomainId string `json:"project_domain_id"`
|
||||
ProjectDomainId string `json:"project_domain_id" deprecated-by:"project_domain"`
|
||||
// swagger:ignore
|
||||
// Deprecated
|
||||
// Domain Id filter, alias for project_domain
|
||||
DomainId string `json:"domain_id"`
|
||||
}
|
||||
|
||||
func (input DomainizedResourceListInput) DomainStr() string {
|
||||
if len(input.ProjectDomain) > 0 {
|
||||
return input.ProjectDomain
|
||||
}
|
||||
if len(input.ProjectDomainId) > 0 {
|
||||
return input.ProjectDomainId
|
||||
}
|
||||
if len(input.DomainId) > 0 {
|
||||
return input.DomainId
|
||||
}
|
||||
return ""
|
||||
DomainId string `json:"domain_id" deprecated-by:"project_domain"`
|
||||
}
|
||||
|
||||
type DomainizedResourceCreateInput struct {
|
||||
@@ -63,36 +48,20 @@ type DomainizedResourceCreateInput struct {
|
||||
type ProjectizedResourceListInput struct {
|
||||
DomainizedResourceListInput
|
||||
|
||||
// Filter by project, either ID or Name
|
||||
// 查询指定的项目(ID或名称)拥有的资源
|
||||
Project string `json:"project"`
|
||||
// swagger:ignore
|
||||
// Deprecated
|
||||
// Filter by project_id, alias for project
|
||||
ProjectId string `json:"project_id"`
|
||||
ProjectId string `json:"project_id" deprecated-by:"project"`
|
||||
// swagger:ignore
|
||||
// Deprecated
|
||||
// Filter by tenant ID or Name, alias for project
|
||||
Tenant string `json:"tenant"`
|
||||
Tenant string `json:"tenant" deprecated-by:"project"`
|
||||
// swagger:ignore
|
||||
// Deprecated
|
||||
// Filter by tenant_id, alias for project
|
||||
TenantId string `json:"tenant_id"`
|
||||
}
|
||||
|
||||
func (input ProjectizedResourceListInput) ProjectStr() string {
|
||||
if len(input.Project) > 0 {
|
||||
return input.Project
|
||||
}
|
||||
if len(input.ProjectId) > 0 {
|
||||
return input.ProjectId
|
||||
}
|
||||
if len(input.Tenant) > 0 {
|
||||
return input.Tenant
|
||||
}
|
||||
if len(input.TenantId) > 0 {
|
||||
return input.TenantId
|
||||
}
|
||||
return ""
|
||||
TenantId string `json:"tenant_id" deprecated-by:"project"`
|
||||
}
|
||||
|
||||
type ProjectizedResourceCreateInput struct {
|
||||
@@ -108,12 +77,12 @@ type ProjectizedResourceCreateInput struct {
|
||||
}
|
||||
|
||||
type UserResourceListInput struct {
|
||||
// User ID or Name
|
||||
// 查询指定的用户(ID或名称)拥有的资源
|
||||
User string `json:"user"`
|
||||
// swagger:ignore
|
||||
// Deprecated
|
||||
// Filter by userId
|
||||
UserId string `json:"user_id"`
|
||||
UserId string `json:"user_id" deprecated-by:"user"`
|
||||
}
|
||||
|
||||
func (input UserResourceListInput) UserStr() string {
|
||||
|
||||
+39
-11
@@ -34,29 +34,57 @@ type ModelBaseListInput struct {
|
||||
// 查询偏移量
|
||||
// default: 0
|
||||
Offset *int `json:"offset"`
|
||||
// Name of the field to be ordered by
|
||||
// 列表排序时,用于排序的字段的名称,该字段不提供时,则按默认字段排序。一般时按照资源的新建时间逆序排序。
|
||||
OrderBy []string `json:"order_by"`
|
||||
// List Order
|
||||
// 列表排序时的顺序,desc为从高到低,asc为从低到高。默认是按照资源的创建时间desc排序。
|
||||
// example: desc|asc
|
||||
Order string `json:"order"`
|
||||
// Show more details
|
||||
// 列表返回资源的更多详细信息。默认只显示基本字段,该字段为true则返回扩展字段信息。
|
||||
Details *bool `json:"details"`
|
||||
// Filter results by a simple keyword search
|
||||
// 模糊搜索所有字段
|
||||
Search string `json:"search"`
|
||||
// Filters
|
||||
// 指定过滤条件,允许指定多个,每个条件的格式为"字段名称.操作符(匹配信息)",例如name字段等于test的过滤器为:name.equals('test')
|
||||
// 支持的操作符如下:
|
||||
//
|
||||
// | 操作符 | 参数个数 | 举例 | 说明 |
|
||||
// |---------------|---------|------------------------------------------------|-----------------------|
|
||||
// | in | > 0 | name.in("test", "good") | 在给定数组中 |
|
||||
// | notin | > 0 | name.notin('test') | 不在给定数组中 |
|
||||
// | between | 2 | created_at.between('2019-12-10', '2020-01-02') | 在两个值之间 |
|
||||
// | ge | 1 | created_at.ge('2020-01-01') | 大于或等于给定值 |
|
||||
// | gt | 1 | created_at.gt('2020-01-01') | 严格大于给定值 |
|
||||
// | le | 1 | created_at.le('2020-01-01') | 小于或等于给定值 |
|
||||
// | lt | 1 | sync_seconds.lt(900) | 严格大于给定值 |
|
||||
// | like | 1 | name.like('%test%') | sql字符串匹配 |
|
||||
// | contains | 1 | name.contains('test') | 包含给定字符串 |
|
||||
// | startswith | 1 | name.startswith('test') | 以给定字符串开头 |
|
||||
// | endswith | 1 | name.endswith('test') | 以给定字符串结尾 |
|
||||
// | equals | 1 | name.equals('test') | 等于给定值 |
|
||||
// | notequals | 1 | name.notequals('test') | 不等于给定值 |
|
||||
// | isnull | 0 | name.isnull() | 值为SQL的NULL |
|
||||
// | isnotnull | 0 | name.isnotnull() | 值不为SQL的NULL |
|
||||
// | isempty | 0 | name.isempty('test') | 值为空字符串 |
|
||||
// | isnotempty | 0 | name.isnotempty('test') | 值不是空字符串 |
|
||||
// | isnullorempty | 0 | name.isnullorempty('test') | 值为SQL的NULL或者空字符串 |
|
||||
//
|
||||
Filter []string `json:"filter"`
|
||||
// Filters with joint table col; joint_tbl.related_key(origin_key).filter_col.filter_cond(filters)
|
||||
// 指定关联过滤条件,允许指定多个,后端将根据关联过滤条件和其他表关联查询,支持的查询语法和filter相同,
|
||||
// 和其他表关联的语法如下:
|
||||
// joint_tbl.related_key(origin_key).filter_col.filter_ops(values)
|
||||
// 其中,joint_tbl为要关联的表,related_key为关联表column,origin_key为当前表column, filter_col为
|
||||
// 关联表用于查询匹配的field名称,field_ops为filter支持的操作,values为匹配的值
|
||||
// 举例:
|
||||
// guestnetworks_tbl.guest_id(id).ip_addr.equals('10.168.21.222')
|
||||
JointFilter []string `json:"joint_filter"`
|
||||
// If true, match if any of the filters matches; otherwise, match if all of the filters match
|
||||
// 如果filter_any为true,则查询所有filter的并集,否则为交集
|
||||
FilterAny *bool `json:"filter_any"`
|
||||
// Show only specified fields
|
||||
// 返回结果只包含指定的字段
|
||||
Field []string `json:"field"`
|
||||
// Export field keys
|
||||
// 用于数据导出,指定导出的数据字段
|
||||
ExportKeys string `json:"export_keys"`
|
||||
}
|
||||
|
||||
type IncrementalListInput struct {
|
||||
// 增量加载的标记
|
||||
// Marker for streamed pagination
|
||||
// 用于指定增量加载的标记
|
||||
PagingMarker string `json:"paging_marker"`
|
||||
}
|
||||
|
||||
@@ -24,13 +24,15 @@ type SharableVirtualResourceDetails struct {
|
||||
VirtualResourceDetails
|
||||
}
|
||||
|
||||
type SharableResourceListInput struct {
|
||||
// 根据资源是否共享过滤列表
|
||||
IsPublic *bool `json:"is_public"`
|
||||
}
|
||||
|
||||
type SharableVirtualResourceListInput struct {
|
||||
VirtualResourceListInput
|
||||
|
||||
// filter by is_public status
|
||||
IsPublic *bool `json:"is_public"`
|
||||
// filter by public_scope
|
||||
// possible value is system, domain, project
|
||||
// 根据资源的共享范围过滤列表,可能值为:system, domain, project
|
||||
PublicScope string `json:"public_scope"`
|
||||
}
|
||||
|
||||
|
||||
@@ -22,38 +22,40 @@ type StandaloneResourceShortDescDetail struct {
|
||||
}
|
||||
|
||||
type STag struct {
|
||||
Key string
|
||||
// 标签key
|
||||
Key string
|
||||
// 标签Value
|
||||
Value string
|
||||
}
|
||||
|
||||
type StandaloneResourceListInput struct {
|
||||
ResourceBaseListInput
|
||||
|
||||
// filter by tags
|
||||
// 通过标签过滤
|
||||
Tags []STag `json:"tags"`
|
||||
// Piggyback user metadata information
|
||||
// 返回资源的标签不包含特定的用户标签
|
||||
WithoutUserMeta bool `json:"without_user_meta"`
|
||||
// Piggyback metadata information
|
||||
// 返回列表数据中包含资源的标签数据(Metadata)
|
||||
WithMeta *bool `json:"with_meta"`
|
||||
// Show all resources including the emulated resources
|
||||
// 显示所有的资源,包括模拟的资源
|
||||
ShowEmulated *bool `json:"show_emulated"`
|
||||
|
||||
// filter by resource name
|
||||
// 以资源名称过滤列表
|
||||
Names []string `json:"name"`
|
||||
// filter by resource ID
|
||||
// 以资源ID过滤列表
|
||||
Ids []string `json:"id"`
|
||||
}
|
||||
|
||||
type StatusStandaloneResourceListInput struct {
|
||||
StandaloneResourceListInput
|
||||
|
||||
// filter by resource status
|
||||
// 以资源的状态过滤列表
|
||||
Status []string `json:"status"`
|
||||
}
|
||||
|
||||
type EnabledStatusStandaloneResourceListInput struct {
|
||||
StatusStandaloneResourceListInput
|
||||
|
||||
// filter by enable/disabled status
|
||||
// 以资源是否启用/禁用过滤列表
|
||||
Enabled *bool `json:"enabled"`
|
||||
}
|
||||
|
||||
@@ -23,11 +23,11 @@ type VirtualResourceListInput struct {
|
||||
|
||||
ProjectizedResourceListInput
|
||||
|
||||
// Show system resource
|
||||
// 列表中包含标记为"系统资源"的资源
|
||||
System *bool `json:"system"`
|
||||
// Show only pending deleted resource
|
||||
// 是否显示回收站内的资源,默认不显示(对实现了回收站的资源有效,例如主机,磁盘,镜像)
|
||||
PendingDelete *bool `json:"pending_delete"`
|
||||
// Show all resources including pending deleted
|
||||
// 是否显示所有资源,包括回收站和不再回收站的资源
|
||||
// TODO: fix this???
|
||||
PendingDeleteAll *bool `json:"-"`
|
||||
}
|
||||
|
||||
@@ -1140,7 +1140,7 @@ func (self *SCloudaccount) PerformChangeProject(ctx context.Context, userCred mc
|
||||
}
|
||||
|
||||
func (manager *SCloudaccountManager) ListItemFilter(ctx context.Context, q *sqlchemy.SQuery, userCred mcclient.TokenCredential, query api.CloudaccountListInput) (*sqlchemy.SQuery, error) {
|
||||
accountStr := query.CloudaccountStr()
|
||||
accountStr := query.Cloudaccount
|
||||
if len(accountStr) > 0 {
|
||||
accountObj, err := manager.FetchByIdOrName(userCred, accountStr)
|
||||
if err != nil {
|
||||
@@ -1157,7 +1157,7 @@ func (manager *SCloudaccountManager) ListItemFilter(ctx context.Context, q *sqlc
|
||||
if err != nil {
|
||||
return nil, errors.Wrap(err, "SEnabledStatusStandaloneResourceBaseManager")
|
||||
}
|
||||
managerStr := query.CloudproviderStr()
|
||||
managerStr := query.Cloudprovider
|
||||
if len(managerStr) > 0 {
|
||||
providerObj, err := CloudproviderManager.FetchByIdOrName(userCred, managerStr)
|
||||
if err != nil {
|
||||
@@ -1171,7 +1171,7 @@ func (manager *SCloudaccountManager) ListItemFilter(ctx context.Context, q *sqlc
|
||||
q = q.Equals("id", provider.CloudaccountId)
|
||||
}
|
||||
|
||||
cloudEnvStr := query.CloudEnvStr()
|
||||
cloudEnvStr := query.CloudEnv
|
||||
if cloudEnvStr == api.CLOUD_ENV_PUBLIC_CLOUD {
|
||||
q = q.IsTrue("is_public_cloud").IsFalse("is_on_premise")
|
||||
}
|
||||
@@ -1184,7 +1184,7 @@ func (manager *SCloudaccountManager) ListItemFilter(ctx context.Context, q *sqlc
|
||||
q = q.IsTrue("is_on_premise").IsFalse("is_public_cloud")
|
||||
}
|
||||
|
||||
capabilities := query.CapabilityList()
|
||||
capabilities := query.Capability
|
||||
if len(capabilities) > 0 {
|
||||
cloudproviders := CloudproviderManager.Query().SubQuery()
|
||||
cloudprovidercapabilities := CloudproviderCapabilityManager.Query().SubQuery()
|
||||
|
||||
@@ -972,7 +972,7 @@ func (manager *SCloudproviderManager) migrateVCenterInfo(vc *SVCenter) error {
|
||||
}
|
||||
|
||||
func (manager *SCloudproviderManager) ListItemFilter(ctx context.Context, q *sqlchemy.SQuery, userCred mcclient.TokenCredential, query api.CloudproviderListInput) (*sqlchemy.SQuery, error) {
|
||||
accountStr := query.CloudaccountStr()
|
||||
accountStr := query.Cloudaccount
|
||||
if len(accountStr) > 0 {
|
||||
accountObj, err := CloudaccountManager.FetchByIdOrName(userCred, accountStr)
|
||||
if err != nil {
|
||||
@@ -1019,7 +1019,7 @@ func (manager *SCloudproviderManager) ListItemFilter(ctx context.Context, q *sql
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
managerStr := query.CloudproviderStr()
|
||||
managerStr := query.Cloudprovider
|
||||
if len(managerStr) > 0 {
|
||||
providerObj, err := manager.FetchByIdOrName(userCred, managerStr)
|
||||
if err != nil {
|
||||
@@ -1032,7 +1032,7 @@ func (manager *SCloudproviderManager) ListItemFilter(ctx context.Context, q *sql
|
||||
q = q.Equals("id", providerObj.GetId())
|
||||
}
|
||||
|
||||
cloudEnvStr := query.CloudEnvStr()
|
||||
cloudEnvStr := query.CloudEnv
|
||||
if cloudEnvStr == api.CLOUD_ENV_PUBLIC_CLOUD {
|
||||
cloudaccounts := CloudaccountManager.Query().SubQuery()
|
||||
q = q.Join(cloudaccounts, sqlchemy.Equals(cloudaccounts.Field("id"), q.Field("cloudaccount_id")))
|
||||
@@ -1054,7 +1054,7 @@ func (manager *SCloudproviderManager) ListItemFilter(ctx context.Context, q *sql
|
||||
q = q.Filter(sqlchemy.IsTrue(cloudaccounts.Field("is_on_premise")))
|
||||
}
|
||||
|
||||
capabilities := query.CapabilityList()
|
||||
capabilities := query.Capability
|
||||
if len(capabilities) > 0 {
|
||||
subq := CloudproviderCapabilityManager.Query("cloudprovider_id").In("capability", capabilities).Distinct().SubQuery()
|
||||
q = q.In("id", subq)
|
||||
|
||||
@@ -597,7 +597,7 @@ func (manager *SCloudregionManager) ListItemFilter(ctx context.Context, q *sqlch
|
||||
return nil, errors.Wrap(err, "SEnabledStatusStandaloneResourceBaseManager.ListItemFilter")
|
||||
}
|
||||
|
||||
cloudEnvStr := query.CloudEnvStr()
|
||||
cloudEnvStr := query.CloudEnv
|
||||
if cloudEnvStr == api.CLOUD_ENV_PUBLIC_CLOUD {
|
||||
q = q.In("provider", cloudprovider.GetPublicProviders())
|
||||
}
|
||||
@@ -625,12 +625,12 @@ func (manager *SCloudregionManager) ListItemFilter(ctx context.Context, q *sqlch
|
||||
q = q.IsNotEmpty("external_id")
|
||||
}
|
||||
|
||||
managerStr := query.CloudproviderStr()
|
||||
managerStr := query.Cloudprovider
|
||||
if len(managerStr) > 0 {
|
||||
subq := CloudproviderRegionManager.QueryRelatedRegionIds("", managerStr)
|
||||
q = q.In("id", subq)
|
||||
}
|
||||
accountStr := query.CloudaccountStr()
|
||||
accountStr := query.Cloudaccount
|
||||
if len(accountStr) > 0 {
|
||||
subq := CloudproviderRegionManager.QueryRelatedRegionIds(accountStr)
|
||||
q = q.In("id", subq)
|
||||
|
||||
@@ -162,7 +162,7 @@ func (manager *SDiskManager) ListItemFilter(ctx context.Context, q *sqlchemy.SQu
|
||||
q = q.Filter(sqlchemy.In(q.Field("storage_id"), sq))
|
||||
}
|
||||
|
||||
guestId := query.ServerStr()
|
||||
guestId := query.Server
|
||||
if len(guestId) > 0 {
|
||||
iGuest, err := GuestManager.FetchByIdOrName(userCred, guestId)
|
||||
if err == sql.ErrNoRows {
|
||||
@@ -178,7 +178,7 @@ func (manager *SDiskManager) ListItemFilter(ctx context.Context, q *sqlchemy.SQu
|
||||
))
|
||||
}
|
||||
|
||||
storageStr := query.StorageStr()
|
||||
storageStr := query.Storage
|
||||
if len(storageStr) > 0 {
|
||||
storageObj, err := StorageManager.FetchByIdOrName(userCred, storageStr)
|
||||
if err != nil {
|
||||
@@ -187,12 +187,12 @@ func (manager *SDiskManager) ListItemFilter(ctx context.Context, q *sqlchemy.SQu
|
||||
q = q.Filter(sqlchemy.Equals(q.Field("storage_id"), storageObj.GetId()))
|
||||
}
|
||||
|
||||
if diskType := query.DiskTypeStr(); diskType != "" {
|
||||
if diskType := query.DiskType; diskType != "" {
|
||||
q = q.Filter(sqlchemy.Equals(q.Field("disk_type"), diskType))
|
||||
}
|
||||
|
||||
// for snapshotpolicy_id
|
||||
snapshotpolicyStr := query.SnapshotpolicyStr()
|
||||
snapshotpolicyStr := query.Snapshotpolicy
|
||||
if len(snapshotpolicyStr) > 0 {
|
||||
snapshotpolicyObj, err := SnapshotPolicyManager.FetchByIdOrName(userCred, snapshotpolicyStr)
|
||||
if err != nil {
|
||||
|
||||
@@ -75,7 +75,7 @@ type SGroup struct {
|
||||
|
||||
func (sm *SGroupManager) ListItemFilter(ctx context.Context, q *sqlchemy.SQuery, userCred mcclient.TokenCredential,
|
||||
input api.InstanceGroupListInput) (*sqlchemy.SQuery, error) {
|
||||
guestFilter := input.ServerStr()
|
||||
guestFilter := input.Server
|
||||
if len(guestFilter) != 0 {
|
||||
guestObj, err := GuestManager.FetchByIdOrName(userCred, guestFilter)
|
||||
if err != nil {
|
||||
|
||||
@@ -160,7 +160,8 @@ func (manager *SGuestManager) ListItemFilter(ctx context.Context, q *sqlchemy.SQ
|
||||
if err != nil {
|
||||
return nil, errors.Wrap(err, "SVirtualResourceBaseManager.ListItemFilter")
|
||||
}
|
||||
hypervisorList := query.HypervisorList()
|
||||
|
||||
hypervisorList := query.Hypervisor
|
||||
if len(hypervisorList) > 0 {
|
||||
q = q.In("hypervisor", hypervisorList)
|
||||
}
|
||||
@@ -184,7 +185,7 @@ func (manager *SGuestManager) ListItemFilter(ctx context.Context, q *sqlchemy.SQ
|
||||
q = q.In("host_id", subq.SubQuery())
|
||||
}
|
||||
|
||||
hostFilter := query.HostStr()
|
||||
hostFilter := query.Host
|
||||
if len(hostFilter) > 0 {
|
||||
host, _ := HostManager.FetchByIdOrName(nil, hostFilter)
|
||||
if host == nil {
|
||||
@@ -198,7 +199,7 @@ func (manager *SGuestManager) ListItemFilter(ctx context.Context, q *sqlchemy.SQ
|
||||
}
|
||||
}
|
||||
|
||||
secgrpFilter := query.SecgroupStr()
|
||||
secgrpFilter := query.Secgroup
|
||||
if len(secgrpFilter) > 0 {
|
||||
var notIn = false
|
||||
// HACK FOR NOT IN SECGROUP
|
||||
@@ -284,20 +285,26 @@ func (manager *SGuestManager) ListItemFilter(ctx context.Context, q *sqlchemy.SQ
|
||||
}
|
||||
}
|
||||
|
||||
zoneFilter := query.ZoneStr()
|
||||
if len(zoneFilter) > 0 {
|
||||
zone, _ := ZoneManager.FetchByIdOrName(nil, zoneFilter)
|
||||
if zone == nil {
|
||||
return nil, httperrors.NewResourceNotFoundError("zone %s not found", zoneFilter)
|
||||
}
|
||||
q, err = managedResourceFilterByRegion(q, query.RegionalFilterListInput, "host_id", func() *sqlchemy.SQuery {
|
||||
hostTable := HostManager.Query().SubQuery()
|
||||
zoneTable := ZoneManager.Query().SubQuery()
|
||||
sq := hostTable.Query(hostTable.Field("id")).Join(zoneTable,
|
||||
sqlchemy.Equals(zoneTable.Field("id"), hostTable.Field("zone_id"))).Filter(sqlchemy.Equals(zoneTable.Field("id"), zone.GetId())).SubQuery()
|
||||
q = q.In("host_id", sq)
|
||||
sq := hostTable.Query(hostTable.Field("id"))
|
||||
sq = sq.Join(zoneTable, sqlchemy.Equals(zoneTable.Field("id"), hostTable.Field("zone_id")))
|
||||
return sq
|
||||
})
|
||||
if err != nil {
|
||||
return nil, errors.Wrap(err, "managedResourceFilterByRegion")
|
||||
}
|
||||
|
||||
wireFilter := query.WireStr()
|
||||
q, err = managedResourceFilterByZone(q, query.ZonalFilterListInput, "host_id", func() *sqlchemy.SQuery {
|
||||
hostTable := HostManager.Query().SubQuery()
|
||||
return hostTable.Query(hostTable.Field("id"))
|
||||
})
|
||||
if err != nil {
|
||||
return nil, errors.Wrap(err, "managedResourceFilterByZone")
|
||||
}
|
||||
|
||||
wireFilter := query.Wire
|
||||
if len(wireFilter) > 0 {
|
||||
wire, _ := WireManager.FetchByIdOrName(nil, wireFilter)
|
||||
if wire == nil {
|
||||
@@ -309,7 +316,7 @@ func (manager *SGuestManager) ListItemFilter(ctx context.Context, q *sqlchemy.SQ
|
||||
q = q.In("host_id", sq)
|
||||
}
|
||||
|
||||
networkFilter := query.NetworkStr()
|
||||
networkFilter := query.Network
|
||||
if len(networkFilter) > 0 {
|
||||
netI, _ := NetworkManager.FetchByIdOrName(userCred, networkFilter)
|
||||
if netI == nil {
|
||||
@@ -323,7 +330,7 @@ func (manager *SGuestManager) ListItemFilter(ctx context.Context, q *sqlchemy.SQ
|
||||
q = q.In("host_id", sq)
|
||||
}
|
||||
|
||||
vpcFilter := query.VpcStr()
|
||||
vpcFilter := query.Vpc
|
||||
if len(vpcFilter) > 0 {
|
||||
IVpc, err := VpcManager.FetchByIdOrName(userCred, vpcFilter)
|
||||
if err != nil {
|
||||
@@ -340,7 +347,7 @@ func (manager *SGuestManager) ListItemFilter(ctx context.Context, q *sqlchemy.SQ
|
||||
q = q.In("id", sq)
|
||||
}
|
||||
|
||||
diskFilter := query.DiskStr()
|
||||
diskFilter := query.Disk
|
||||
if len(diskFilter) > 0 {
|
||||
diskI, _ := DiskManager.FetchByIdOrName(userCred, diskFilter)
|
||||
if diskI == nil {
|
||||
@@ -367,24 +374,6 @@ func (manager *SGuestManager) ListItemFilter(ctx context.Context, q *sqlchemy.SQ
|
||||
}
|
||||
}
|
||||
|
||||
regionFilter := query.CloudregionStr()
|
||||
if len(regionFilter) > 0 {
|
||||
regionObj, err := CloudregionManager.FetchByIdOrName(userCred, regionFilter)
|
||||
if err != nil {
|
||||
if err == sql.ErrNoRows {
|
||||
return nil, httperrors.NewResourceNotFoundError("cloud region %s not found", regionFilter)
|
||||
} else {
|
||||
return nil, httperrors.NewGeneralError(err)
|
||||
}
|
||||
}
|
||||
hosts := HostManager.Query().SubQuery()
|
||||
zones := ZoneManager.Query().SubQuery()
|
||||
sq := hosts.Query(hosts.Field("id"))
|
||||
sq = sq.Join(zones, sqlchemy.Equals(hosts.Field("zone_id"), zones.Field("id")))
|
||||
sq = sq.Filter(sqlchemy.Equals(zones.Field("cloudregion_id"), regionObj.GetId()))
|
||||
q = q.In("host_id", sq)
|
||||
}
|
||||
|
||||
withEip := (query.WithEip != nil && *query.WithEip)
|
||||
withoutEip := (query.WithoutEip != nil && *query.WithoutEip)
|
||||
if withEip || withoutEip {
|
||||
@@ -412,7 +401,7 @@ func (manager *SGuestManager) ListItemFilter(ctx context.Context, q *sqlchemy.SQ
|
||||
q = q.Filter(cond(q.Field("id"), sgq))
|
||||
}
|
||||
|
||||
groupFilter := query.GroupStr()
|
||||
groupFilter := query.Group
|
||||
if len(groupFilter) != 0 {
|
||||
groupObj, err := GroupManager.FetchByIdOrName(userCred, groupFilter)
|
||||
if err != nil {
|
||||
|
||||
@@ -217,7 +217,7 @@ func (manager *SHostManager) ListItemFilter(ctx context.Context, q *sqlchemy.SQu
|
||||
}
|
||||
// var scopeQuery *sqlchemy.SSubQuery
|
||||
|
||||
schedTagStr := query.SchedtagStr()
|
||||
schedTagStr := query.Schedtag
|
||||
if len(schedTagStr) > 0 {
|
||||
schedTag, _ := SchedtagManager.FetchByIdOrName(nil, schedTagStr)
|
||||
if schedTag == nil {
|
||||
@@ -228,7 +228,7 @@ func (manager *SHostManager) ListItemFilter(ctx context.Context, q *sqlchemy.SQu
|
||||
q = q.In("id", scopeQuery)
|
||||
}
|
||||
|
||||
wireStr := query.WireStr()
|
||||
wireStr := query.Wire
|
||||
if len(wireStr) > 0 {
|
||||
wire, _ := WireManager.FetchByIdOrName(nil, wireStr)
|
||||
if wire == nil {
|
||||
@@ -239,7 +239,7 @@ func (manager *SHostManager) ListItemFilter(ctx context.Context, q *sqlchemy.SQu
|
||||
q = q.In("id", scopeQuery)
|
||||
}
|
||||
|
||||
storageStr := query.StorageStr()
|
||||
storageStr := query.Storage
|
||||
if len(storageStr) > 0 {
|
||||
storage, _ := StorageManager.FetchByIdOrName(nil, storageStr)
|
||||
if storage == nil {
|
||||
|
||||
@@ -77,7 +77,7 @@ func (manager *SInstanceSnapshotManager) ListItemFilter(ctx context.Context, q *
|
||||
return nil, errors.Wrap(err, "SVirtualResourceBaseManager.ListItemFilter")
|
||||
}
|
||||
|
||||
guestStr := query.ServerStr()
|
||||
guestStr := query.Server
|
||||
if len(guestStr) > 0 {
|
||||
guestObj, err := GuestManager.FetchByIdOrName(userCred, guestStr)
|
||||
if err != nil {
|
||||
|
||||
@@ -155,7 +155,7 @@ func (manager *SIsolatedDeviceManager) ListItemFilter(ctx context.Context, q *sq
|
||||
if query.Usb != nil && *query.Usb {
|
||||
q = q.Equals("dev_type", "USB")
|
||||
}
|
||||
hostStr := query.HostStr()
|
||||
hostStr := query.Host
|
||||
var sq *sqlchemy.SSubQuery
|
||||
if len(hostStr) > 0 {
|
||||
hosts := HostManager.Query().SubQuery()
|
||||
|
||||
@@ -227,8 +227,8 @@ func (man *SLoadbalancerCertificateManager) ListItemFilter(ctx context.Context,
|
||||
}
|
||||
|
||||
if query.Usable != nil && *query.Usable {
|
||||
region := query.CloudregionStr()
|
||||
manager := query.CloudproviderStr()
|
||||
region := query.Cloudregion
|
||||
manager := query.Cloudprovider
|
||||
|
||||
// 证书可用包含两类:1.本地证书内容不为空 2.公有云中已经存在,但是证书内容不完整的证书
|
||||
if len(region) > 0 || len(manager) > 0 {
|
||||
|
||||
@@ -147,7 +147,7 @@ func (self *SManagedResourceBase) IsManaged() bool {
|
||||
}
|
||||
|
||||
func managedResourceFilterByDomain(q *sqlchemy.SQuery, query apis.DomainizedResourceListInput, filterField string, subqFunc func() *sqlchemy.SQuery) (*sqlchemy.SQuery, error) {
|
||||
domainStr := query.DomainStr()
|
||||
domainStr := query.ProjectDomain
|
||||
if len(domainStr) > 0 {
|
||||
domain, err := db.TenantCacheManager.FetchDomainByIdOrName(context.Background(), domainStr)
|
||||
if err != nil {
|
||||
@@ -232,8 +232,8 @@ func filterByProviderStrs(q *sqlchemy.SQuery, filterField string, subqFunc func(
|
||||
}
|
||||
|
||||
func managedResourceFilterByAccount(q *sqlchemy.SQuery, input api.ManagedResourceListInput, filterField string, subqFunc func() *sqlchemy.SQuery) (*sqlchemy.SQuery, error) {
|
||||
cloudproviderStr := input.CloudproviderStr()
|
||||
if len(input.CloudproviderStr()) > 0 {
|
||||
cloudproviderStr := input.Cloudprovider
|
||||
if len(cloudproviderStr) > 0 {
|
||||
provider, err := CloudproviderManager.FetchByIdOrName(nil, cloudproviderStr)
|
||||
if err != nil {
|
||||
if err == sql.ErrNoRows {
|
||||
@@ -250,7 +250,7 @@ func managedResourceFilterByAccount(q *sqlchemy.SQuery, input api.ManagedResourc
|
||||
}
|
||||
}
|
||||
|
||||
cloudaccountStr := input.CloudaccountStr()
|
||||
cloudaccountStr := input.Cloudaccount
|
||||
if len(cloudaccountStr) > 0 {
|
||||
account, err := CloudaccountManager.FetchByIdOrName(nil, cloudaccountStr)
|
||||
if err != nil {
|
||||
@@ -283,7 +283,7 @@ func managedResourceFilterByAccount(q *sqlchemy.SQuery, input api.ManagedResourc
|
||||
}
|
||||
|
||||
func managedResourceFilterByZone(q *sqlchemy.SQuery, query api.ZonalFilterListInput, filterField string, subqFunc func() *sqlchemy.SQuery) (*sqlchemy.SQuery, error) {
|
||||
zoneStr := query.ZoneStr()
|
||||
zoneStr := query.Zone
|
||||
if len(zoneStr) > 0 {
|
||||
zoneObj, err := ZoneManager.FetchByIdOrName(nil, zoneStr)
|
||||
if err != nil {
|
||||
@@ -306,7 +306,7 @@ func managedResourceFilterByZone(q *sqlchemy.SQuery, query api.ZonalFilterListIn
|
||||
}
|
||||
|
||||
func managedResourceFilterByRegion(q *sqlchemy.SQuery, query api.RegionalFilterListInput, filterField string, subqFunc func() *sqlchemy.SQuery) (*sqlchemy.SQuery, error) {
|
||||
regionStr := query.CloudregionStr()
|
||||
regionStr := query.Cloudregion
|
||||
if len(regionStr) > 0 {
|
||||
regionObj, err := CloudregionManager.FetchByIdOrName(nil, regionStr)
|
||||
if err != nil {
|
||||
@@ -338,7 +338,7 @@ func managedResourceFilterByRegion(q *sqlchemy.SQuery, query api.RegionalFilterL
|
||||
}
|
||||
|
||||
func filterByCloudType(q *sqlchemy.SQuery, input api.ManagedResourceListInput, filterField string, subqFunc func() *sqlchemy.SQuery) *sqlchemy.SQuery {
|
||||
cloudEnvStr := input.CloudEnvStr()
|
||||
cloudEnvStr := input.CloudEnv
|
||||
|
||||
switch cloudEnvStr {
|
||||
case api.CLOUD_ENV_PUBLIC_CLOUD:
|
||||
|
||||
@@ -1800,7 +1800,7 @@ func (manager *SNetworkManager) ListItemFilter(ctx context.Context, q *sqlchemy.
|
||||
q = q.In("wire_id", sq.SubQuery())
|
||||
}
|
||||
|
||||
vpcStr := input.VpcStr()
|
||||
vpcStr := input.Vpc
|
||||
if len(vpcStr) > 0 {
|
||||
vpcObj, err := VpcManager.FetchByIdOrName(userCred, vpcStr)
|
||||
if err != nil {
|
||||
@@ -1848,7 +1848,7 @@ func (manager *SNetworkManager) ListItemFilter(ctx context.Context, q *sqlchemy.
|
||||
q = q.In("wire_id", sq.SubQuery()).Equals("status", api.NETWORK_STATUS_AVAILABLE)
|
||||
}
|
||||
|
||||
hostStr := input.HostStr()
|
||||
hostStr := input.Host
|
||||
if len(hostStr) > 0 {
|
||||
hostObj, err := HostManager.FetchByIdOrName(userCred, hostStr)
|
||||
if err != nil {
|
||||
|
||||
@@ -191,7 +191,7 @@ func (manager *SReservedipManager) ListItemFilter(ctx context.Context, q *sqlche
|
||||
sqlchemy.GT(q.Field("expired_at"), time.Now().UTC()),
|
||||
))
|
||||
}
|
||||
network := query.NetworkStr()
|
||||
network := query.Network
|
||||
if len(network) > 0 {
|
||||
netObj, _ := NetworkManager.FetchByIdOrName(userCred, network)
|
||||
if netObj == nil {
|
||||
|
||||
@@ -133,7 +133,7 @@ func (manager *SSchedtagManager) AllowListItems(ctx context.Context, userCred mc
|
||||
}
|
||||
|
||||
func (manager *SSchedtagManager) ListItemFilter(ctx context.Context, q *sqlchemy.SQuery, userCred mcclient.TokenCredential, query api.SchedtagListInput) (*sqlchemy.SQuery, error) {
|
||||
if resType := query.ResourceTypeStr(); resType != "" {
|
||||
if resType := query.ResourceType; resType != "" {
|
||||
q = q.Equals("resource_type", resType)
|
||||
}
|
||||
return manager.SStandaloneResourceBaseManager.ListItemFilter(ctx, q, userCred, query.StandaloneResourceListInput)
|
||||
|
||||
@@ -79,7 +79,7 @@ func (manager *SSecurityGroupCacheManager) ListItemFilter(ctx context.Context, q
|
||||
if err != nil {
|
||||
return nil, errors.Wrap(err, "SStatusStandaloneResourceBaseManager.ListItemFilter")
|
||||
}
|
||||
if defsecgroup := query.SecgroupStr(); len(defsecgroup) > 0 {
|
||||
if defsecgroup := query.Secgroup; len(defsecgroup) > 0 {
|
||||
secgroup, err := SecurityGroupManager.FetchByIdOrName(userCred, defsecgroup)
|
||||
if err != nil {
|
||||
if err == sql.ErrNoRows {
|
||||
|
||||
@@ -162,7 +162,7 @@ func (manager *SSecurityGroupRuleManager) ListItemFilter(ctx context.Context, q
|
||||
if err != nil {
|
||||
return nil, errors.Wrap(err, "SResourceBaseManager.ListItemFilter")
|
||||
}
|
||||
if defsecgroup := query.SecgroupStr(); len(defsecgroup) > 0 {
|
||||
if defsecgroup := query.Secgroup; len(defsecgroup) > 0 {
|
||||
if secgroup, _ := SecurityGroupManager.FetchByIdOrName(userCred, defsecgroup); secgroup != nil {
|
||||
sql = sql.Equals("secgroup_id", secgroup.GetId())
|
||||
} else {
|
||||
|
||||
@@ -103,7 +103,7 @@ func (manager *SSecurityGroupManager) ListItemFilter(ctx context.Context, q *sql
|
||||
}
|
||||
q = q.In("id", secgroupIds)
|
||||
}
|
||||
serverStr := input.ServerStr()
|
||||
serverStr := input.Server
|
||||
if len(serverStr) > 0 {
|
||||
guest, err := GuestManager.FetchByIdOrName(userCred, serverStr)
|
||||
if err != nil {
|
||||
|
||||
@@ -720,7 +720,7 @@ func listItemDomainFilter(q *sqlchemy.SQuery, data *jsonutils.JSONDict) *sqlchem
|
||||
func (manager *SServerSkuManager) ListItemFilter(ctx context.Context, q *sqlchemy.SQuery, userCred mcclient.TokenCredential, query api.ServerSkuListInput) (*sqlchemy.SQuery, error) {
|
||||
publicCloud := false
|
||||
|
||||
cloudEnvStr := query.CloudEnvStr()
|
||||
cloudEnvStr := query.CloudEnv
|
||||
if cloudEnvStr == api.CLOUD_ENV_PUBLIC_CLOUD {
|
||||
publicCloud = true
|
||||
q = q.Filter(sqlchemy.In(q.Field("provider"), CloudproviderManager.GetPublicProviderProvidersQuery()))
|
||||
@@ -771,8 +771,8 @@ func (manager *SServerSkuManager) ListItemFilter(ctx context.Context, q *sqlchem
|
||||
q = q.IsTrue("enabled")
|
||||
}
|
||||
|
||||
zoneStr := query.ZoneStr()
|
||||
regionStr := query.CloudregionStr()
|
||||
zoneStr := query.Zone
|
||||
regionStr := query.Cloudregion
|
||||
if len(zoneStr) > 0 {
|
||||
_zone, err := ZoneManager.FetchByIdOrName(userCred, zoneStr)
|
||||
if err != nil {
|
||||
|
||||
@@ -852,7 +852,7 @@ func (manager *SWireManager) ListItemFilter(ctx context.Context, q *sqlchemy.SQu
|
||||
return nil, errors.Wrap(err, "SStandaloneResourceBaseManager.ListItemFilter")
|
||||
}
|
||||
|
||||
vpcStr := query.VpcStr()
|
||||
vpcStr := query.Vpc
|
||||
if len(vpcStr) > 0 {
|
||||
vpc, err := VpcManager.FetchByIdOrName(userCred, vpcStr)
|
||||
if err != nil {
|
||||
@@ -877,7 +877,7 @@ func (manager *SWireManager) ListItemFilter(ctx context.Context, q *sqlchemy.SQu
|
||||
return nil, errors.Wrap(err, "managedResourceFilterByZone")
|
||||
}
|
||||
|
||||
hostStr := query.HostStr()
|
||||
hostStr := query.Host
|
||||
if len(hostStr) > 0 {
|
||||
hostObj, err := HostManager.FetchByIdOrName(userCred, hostStr)
|
||||
if err != nil {
|
||||
|
||||
@@ -529,7 +529,7 @@ func (manager *SZoneManager) ListItemFilter(ctx context.Context, q *sqlchemy.SQu
|
||||
return nil, errors.Wrap(err, "SStatusStandaloneResourceBaseManager.ListItemFilter")
|
||||
}
|
||||
|
||||
cloudEnvStr := query.CloudEnvStr()
|
||||
cloudEnvStr := query.CloudEnv
|
||||
if cloudEnvStr == api.CLOUD_ENV_PRIVATE_CLOUD {
|
||||
regions := CloudregionManager.Query().SubQuery()
|
||||
subq := regions.Query(regions.Field("id"))
|
||||
@@ -590,12 +590,12 @@ func (manager *SZoneManager) ListItemFilter(ctx context.Context, q *sqlchemy.SQu
|
||||
}
|
||||
}
|
||||
|
||||
managerStr := query.CloudproviderStr()
|
||||
managerStr := query.Cloudprovider
|
||||
if len(managerStr) > 0 {
|
||||
subq := CloudproviderRegionManager.QueryRelatedRegionIds("", managerStr)
|
||||
q = q.In("cloudregion_id", subq)
|
||||
}
|
||||
accountStr := query.CloudaccountStr()
|
||||
accountStr := query.Cloudaccount
|
||||
if len(accountStr) > 0 {
|
||||
subq := CloudproviderRegionManager.QueryRelatedRegionIds(accountStr)
|
||||
q = q.In("cloudregion_id", subq)
|
||||
|
||||
@@ -539,3 +539,11 @@ func (self *SGuestImage) PerformPrivate(ctx context.Context, userCred mcclient.T
|
||||
}
|
||||
return self.SSharableVirtualResourceBase.PerformPrivate(ctx, userCred, query, data)
|
||||
}
|
||||
|
||||
func (manager *SGuestImageManager) ListItemFilter(ctx context.Context, q *sqlchemy.SQuery, userCred mcclient.TokenCredential, query api.GuestImageListInput) (*sqlchemy.SQuery, error) {
|
||||
q, err := manager.SSharableVirtualResourceBaseManager.ListItemFilter(ctx, q, userCred, query.SharableVirtualResourceListInput)
|
||||
if err != nil {
|
||||
return nil, errors.Wrap(err, "SSharableVirtualResourceBaseManager.ListItemFilter")
|
||||
}
|
||||
return q, nil
|
||||
}
|
||||
|
||||
@@ -260,3 +260,7 @@ func (manager *SCredentialManager) FetchOwnerId(ctx context.Context, data jsonut
|
||||
}
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
func (manager *SCredentialManager) ListItemFilter(ctx context.Context, q *sqlchemy.SQuery, userCred mcclient.TokenCredential, query api.CredentialListInput) (*sqlchemy.SQuery, error) {
|
||||
return manager.SStandaloneResourceBaseManager.ListItemFilter(ctx, q, userCred, query.StandaloneResourceListInput)
|
||||
}
|
||||
|
||||
@@ -341,7 +341,7 @@ func (manager *SEndpointManager) ListItemFilter(ctx context.Context, q *sqlchemy
|
||||
if err != nil {
|
||||
return nil, errors.Wrap(err, "SStandaloneResourceBaseManager.ListItemFilter")
|
||||
}
|
||||
svcStr := query.ServiceStr()
|
||||
svcStr := query.Service
|
||||
if len(svcStr) > 0 {
|
||||
svcObj, err := ServiceManager.FetchByIdOrName(userCred, svcStr)
|
||||
if err != nil {
|
||||
|
||||
@@ -81,7 +81,7 @@ func (manager *SGroupManager) ListItemFilter(ctx context.Context, q *sqlchemy.SQ
|
||||
return nil, err
|
||||
}
|
||||
|
||||
userIdStr := query.UserStr()
|
||||
userIdStr := query.User
|
||||
if len(userIdStr) > 0 {
|
||||
user, err := UserManager.FetchById(userIdStr)
|
||||
if err != nil {
|
||||
@@ -95,7 +95,7 @@ func (manager *SGroupManager) ListItemFilter(ctx context.Context, q *sqlchemy.SQ
|
||||
q = q.In("id", subq.SubQuery())
|
||||
}
|
||||
|
||||
projIdStr := query.ProjectStr()
|
||||
projIdStr := query.Project
|
||||
if len(projIdStr) > 0 {
|
||||
proj, err := ProjectManager.FetchProjectById(projIdStr)
|
||||
if err != nil {
|
||||
|
||||
@@ -807,3 +807,7 @@ func (manager *SIdentityProviderManager) FetchPasswordProtectedIdpIdsQuery() *sq
|
||||
q := manager.Query("id").In("driver", api.PASSWORD_PROTECTED_IDPS)
|
||||
return q.SubQuery()
|
||||
}
|
||||
|
||||
func (manager *SIdentityProviderManager) ListItemFilter(ctx context.Context, q *sqlchemy.SQuery, userCred mcclient.TokenCredential, query api.IdentityProviderListInput) (*sqlchemy.SQuery, error) {
|
||||
return manager.SEnabledStatusStandaloneResourceBaseManager.ListItemFilter(ctx, q, userCred, query.EnabledStatusStandaloneResourceListInput)
|
||||
}
|
||||
|
||||
@@ -19,6 +19,8 @@ import (
|
||||
"database/sql"
|
||||
|
||||
"yunion.io/x/jsonutils"
|
||||
"yunion.io/x/pkg/errors"
|
||||
"yunion.io/x/sqlchemy"
|
||||
|
||||
api "yunion.io/x/onecloud/pkg/apis/identity"
|
||||
"yunion.io/x/onecloud/pkg/cloudcommon/db"
|
||||
@@ -203,3 +205,35 @@ func (policy *SPolicy) ValidateDeleteCondition(ctx context.Context) error {
|
||||
}
|
||||
return policy.SEnabledIdentityBaseResource.ValidateDeleteCondition(ctx)
|
||||
}
|
||||
|
||||
func (manager *SPolicyManager) ListItemFilter(ctx context.Context, q *sqlchemy.SQuery, userCred mcclient.TokenCredential, query api.PolicyListInput) (*sqlchemy.SQuery, error) {
|
||||
q, err := manager.SEnabledIdentityBaseResourceManager.ListItemFilter(ctx, q, userCred, query.EnabledIdentityBaseResourceListInput)
|
||||
if err != nil {
|
||||
return nil, errors.Wrap(err, "SEnabledIdentityBaseResourceManager.ListItemFilter")
|
||||
}
|
||||
if query.IsPublic != nil {
|
||||
if *query.IsPublic {
|
||||
q = q.IsTrue("is_public")
|
||||
} else {
|
||||
q = q.IsFalse("is_public")
|
||||
}
|
||||
}
|
||||
return q, nil
|
||||
}
|
||||
|
||||
func (policy *SPolicy) GetCustomizeColumns(ctx context.Context, userCred mcclient.TokenCredential, query jsonutils.JSONObject) *jsonutils.JSONDict {
|
||||
extra := policy.SEnabledIdentityBaseResource.GetCustomizeColumns(ctx, userCred, query)
|
||||
return policyExtra(policy, extra)
|
||||
}
|
||||
|
||||
func (policy *SPolicy) GetExtraDetails(ctx context.Context, userCred mcclient.TokenCredential, query jsonutils.JSONObject) (*jsonutils.JSONDict, error) {
|
||||
extra, err := policy.SEnabledIdentityBaseResource.GetExtraDetails(ctx, userCred, query)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return policyExtra(policy, extra), nil
|
||||
}
|
||||
|
||||
func policyExtra(policy *SPolicy, extra *jsonutils.JSONDict) *jsonutils.JSONDict {
|
||||
return extra
|
||||
}
|
||||
|
||||
@@ -209,7 +209,7 @@ func (manager *SProjectManager) ListItemFilter(ctx context.Context, q *sqlchemy.
|
||||
return nil, err
|
||||
}
|
||||
|
||||
userStr := query.UserStr()
|
||||
userStr := query.User
|
||||
if len(userStr) > 0 {
|
||||
userObj, err := UserManager.FetchById(userStr)
|
||||
if err != nil {
|
||||
@@ -223,7 +223,7 @@ func (manager *SProjectManager) ListItemFilter(ctx context.Context, q *sqlchemy.
|
||||
q = q.In("id", subq.SubQuery())
|
||||
}
|
||||
|
||||
groupStr := query.GroupStr()
|
||||
groupStr := query.Group
|
||||
if len(groupStr) > 0 {
|
||||
groupObj, err := GroupManager.FetchById(groupStr)
|
||||
if err != nil {
|
||||
|
||||
@@ -18,11 +18,14 @@ import (
|
||||
"context"
|
||||
|
||||
"yunion.io/x/jsonutils"
|
||||
"yunion.io/x/sqlchemy"
|
||||
|
||||
"yunion.io/x/onecloud/pkg/apis"
|
||||
api "yunion.io/x/onecloud/pkg/apis/identity"
|
||||
"yunion.io/x/onecloud/pkg/cloudcommon/db"
|
||||
"yunion.io/x/onecloud/pkg/httperrors"
|
||||
"yunion.io/x/onecloud/pkg/mcclient"
|
||||
"yunion.io/x/pkg/errors"
|
||||
)
|
||||
|
||||
type SRegionManager struct {
|
||||
@@ -146,3 +149,11 @@ func (region *SRegion) CustomizeCreate(ctx context.Context, userCred mcclient.To
|
||||
region.Id = idStr
|
||||
return nil
|
||||
}
|
||||
|
||||
func (manager *SRegionManager) ListItemFilter(ctx context.Context, q *sqlchemy.SQuery, userCred mcclient.TokenCredential, query api.RegionListInput) (*sqlchemy.SQuery, error) {
|
||||
q, err := manager.SStandaloneResourceBaseManager.ListItemFilter(ctx, q, userCred, query.StandaloneResourceListInput)
|
||||
if err != nil {
|
||||
return nil, errors.Wrap(err, "SStandaloneResourceBaseManager.ListItemFilter")
|
||||
}
|
||||
return q, nil
|
||||
}
|
||||
|
||||
@@ -229,7 +229,7 @@ func (manager *SRoleManager) ListItemFilter(ctx context.Context, q *sqlchemy.SQu
|
||||
}
|
||||
|
||||
var projectId string
|
||||
projectStr := query.ProjectStr()
|
||||
projectStr := query.Project
|
||||
if len(projectStr) > 0 {
|
||||
project, err := ProjectManager.FetchProjectById(projectStr)
|
||||
if err != nil {
|
||||
@@ -242,7 +242,7 @@ func (manager *SRoleManager) ListItemFilter(ctx context.Context, q *sqlchemy.SQu
|
||||
projectId = project.Id
|
||||
}
|
||||
|
||||
userStr := query.UserStr()
|
||||
userStr := query.User
|
||||
if len(projectId) > 0 && len(userStr) > 0 {
|
||||
userObj, err := UserManager.FetchById(userStr)
|
||||
if err != nil {
|
||||
@@ -256,7 +256,7 @@ func (manager *SRoleManager) ListItemFilter(ctx context.Context, q *sqlchemy.SQu
|
||||
q = q.In("id", subq.SubQuery())
|
||||
}
|
||||
|
||||
groupStr := query.GroupStr()
|
||||
groupStr := query.Group
|
||||
if len(projectId) > 0 && len(groupStr) > 0 {
|
||||
groupObj, err := GroupManager.FetchById(groupStr)
|
||||
if err != nil {
|
||||
|
||||
@@ -207,3 +207,11 @@ func (manager *SServiceManager) fetchServiceByType(typeStr string) (*SService, e
|
||||
}
|
||||
return srvObj.(*SService), nil
|
||||
}
|
||||
|
||||
func (manager *SServiceManager) ListItemFilter(ctx context.Context, q *sqlchemy.SQuery, userCred mcclient.TokenCredential, query api.RegionListInput) (*sqlchemy.SQuery, error) {
|
||||
q, err := manager.SStandaloneResourceBaseManager.ListItemFilter(ctx, q, userCred, query.StandaloneResourceListInput)
|
||||
if err != nil {
|
||||
return nil, errors.Wrap(err, "SStandaloneResourceBaseManager.ListItemFilter")
|
||||
}
|
||||
return q, nil
|
||||
}
|
||||
|
||||
@@ -318,7 +318,7 @@ func (manager *SUserManager) ListItemFilter(ctx context.Context, q *sqlchemy.SQu
|
||||
return nil, err
|
||||
}
|
||||
|
||||
groupStr := query.GroupStr()
|
||||
groupStr := query.Group
|
||||
if len(groupStr) > 0 {
|
||||
groupObj, err := GroupManager.FetchByIdOrName(userCred, groupStr)
|
||||
if err != nil {
|
||||
@@ -332,7 +332,7 @@ func (manager *SUserManager) ListItemFilter(ctx context.Context, q *sqlchemy.SQu
|
||||
q = q.In("id", subq.SubQuery())
|
||||
}
|
||||
|
||||
projectStr := query.ProjectStr()
|
||||
projectStr := query.Project
|
||||
if len(projectStr) > 0 {
|
||||
project, err := ProjectManager.FetchByIdOrName(userCred, projectStr)
|
||||
if err != nil {
|
||||
@@ -346,7 +346,7 @@ func (manager *SUserManager) ListItemFilter(ctx context.Context, q *sqlchemy.SQu
|
||||
q = q.In("id", subq.SubQuery())
|
||||
}
|
||||
|
||||
roleStr := query.RoleStr()
|
||||
roleStr := query.Role
|
||||
if len(roleStr) > 0 {
|
||||
role, err := RoleManager.FetchByIdOrName(userCred, roleStr)
|
||||
if err != nil {
|
||||
|
||||
Reference in New Issue
Block a user