From f36a1728022e679f84a257e322121ea3de55a0ac Mon Sep 17 00:00:00 2001 From: Zexi Date: Tue, 16 Jul 2019 16:07:37 +0800 Subject: [PATCH] region: server order by account and remove models stale comments --- pkg/compute/models/guests.go | 156 +++++---------------------------- pkg/compute/models/hosts.go | 68 -------------- pkg/compute/models/storages.go | 74 ---------------- pkg/compute/models/zones.go | 40 --------- 4 files changed, 22 insertions(+), 316 deletions(-) diff --git a/pkg/compute/models/guests.go b/pkg/compute/models/guests.go index 517f0b9399..c315a53703 100644 --- a/pkg/compute/models/guests.go +++ b/pkg/compute/models/guests.go @@ -64,140 +64,6 @@ import ( "yunion.io/x/onecloud/pkg/util/stringutils2" ) -/* -const ( - VM_INIT = api.VM_INIT - VM_UNKNOWN = api.VM_UNKNOWN - VM_SCHEDULE = api.VM_SCHEDULE - VM_SCHEDULE_FAILED = api.VM_SCHEDULE_FAILED - VM_CREATE_NETWORK = api.VM_CREATE_NETWORK - VM_NETWORK_FAILED = api.VM_NETWORK_FAILED - VM_DEVICE_FAILED = api.VM_DEVICE_FAILED - VM_CREATE_FAILED = api.VM_CREATE_FAILED - VM_CREATE_DISK = api.VM_CREATE_DISK - VM_DISK_FAILED = api.VM_DISK_FAILED - VM_START_DEPLOY = api.VM_START_DEPLOY - VM_DEPLOYING = api.VM_DEPLOYING - VM_DEPLOY_FAILED = api.VM_DEPLOY_FAILED - VM_READY = api.VM_READY - VM_START_START = api.VM_START_START - VM_STARTING = api.VM_STARTING - VM_START_FAILED = api.VM_START_FAILED // # = ready - VM_RUNNING = api.VM_RUNNING - VM_START_STOP = api.VM_START_STOP - VM_STOPPING = api.VM_STOPPING - VM_STOP_FAILED = api.VM_STOP_FAILED // # = running - VM_RENEWING = api.VM_RENEWING - VM_RENEW_FAILED = api.VM_RENEW_FAILED - - VM_BACKUP_STARTING = api.VM_BACKUP_STARTING - VM_BACKUP_CREATING = api.VM_BACKUP_CREATING - VM_BACKUP_CREATE_FAILED = api.VM_BACKUP_CREATE_FAILED - VM_DEPLOYING_BACKUP = api.VM_DEPLOYING_BACKUP - VM_DEPLOYING_BACKUP_FAILED = api.VM_DEPLOYING_BACKUP_FAILED - VM_DELETING_BACKUP = api.VM_DELETING_BACKUP - VM_BACKUP_DELETE_FAILED = api.VM_BACKUP_DELETE_FAILED - VM_SWITCH_TO_BACKUP = api.VM_SWITCH_TO_BACKUP - VM_SWITCH_TO_BACKUP_FAILED = api.VM_SWITCH_TO_BACKUP_FAILED - - VM_ATTACH_DISK_FAILED = api.VM_ATTACH_DISK_FAILED - VM_DETACH_DISK_FAILED = api.VM_DETACH_DISK_FAILED - - VM_START_SUSPEND = api.VM_START_SUSPEND - VM_SUSPENDING = api.VM_SUSPENDING - VM_SUSPEND = api.VM_SUSPEND - VM_SUSPEND_FAILED = api.VM_SUSPEND_FAILED - - VM_START_DELETE = api.VM_START_DELETE - VM_DELETE_FAIL = api.VM_DELETE_FAIL - VM_DELETING = api.VM_DELETING - - VM_DEALLOCATED = api.VM_DEALLOCATED - - VM_START_MIGRATE = api.VM_START_MIGRATE - VM_MIGRATING = api.VM_MIGRATING - VM_MIGRATE_FAILED = api.VM_MIGRATE_FAILED - - VM_CHANGE_FLAVOR = api.VM_CHANGE_FLAVOR - VM_CHANGE_FLAVOR_FAIL = api.VM_CHANGE_FLAVOR_FAIL - VM_REBUILD_ROOT = api.VM_REBUILD_ROOT - VM_REBUILD_ROOT_FAIL = api.VM_REBUILD_ROOT_FAIL - - VM_START_SNAPSHOT = api.VM_START_SNAPSHOT - VM_SNAPSHOT = api.VM_SNAPSHOT - VM_SNAPSHOT_DELETE = api.VM_SNAPSHOT_DELETE - VM_BLOCK_STREAM = api.VM_BLOCK_STREAM - VM_MIRROR_FAIL = api.VM_MIRROR_FAIL - VM_SNAPSHOT_SUCC = api.VM_SNAPSHOT_SUCC - VM_SNAPSHOT_FAILED = api.VM_SNAPSHOT_FAILED - - VM_SYNCING_STATUS = api.VM_SYNCING_STATUS - VM_SYNC_CONFIG = api.VM_SYNC_CONFIG - VM_SYNC_FAIL = api.VM_SYNC_FAIL - - VM_RESIZE_DISK = api.VM_RESIZE_DISK - VM_RESIZE_DISK_FAILED = api.VM_RESIZE_DISK_FAILED - VM_START_SAVE_DISK = api.VM_START_SAVE_DISK - VM_SAVE_DISK = api.VM_SAVE_DISK - VM_SAVE_DISK_FAILED = api.VM_SAVE_DISK_FAILED - - VM_RESTORING_SNAPSHOT = api.VM_RESTORING_SNAPSHOT - VM_RESTORE_DISK = api.VM_RESTORE_DISK - VM_RESTORE_STATE = api.VM_RESTORE_STATE - VM_RESTORE_FAILED = api.VM_RESTORE_FAILED - - VM_ASSOCIATE_EIP = api.VM_ASSOCIATE_EIP - VM_ASSOCIATE_EIP_FAILED = api.VM_ASSOCIATE_EIP_FAILED - VM_DISSOCIATE_EIP = api.VM_DISSOCIATE_EIP - VM_DISSOCIATE_EIP_FAILED = api.VM_DISSOCIATE_EIP_FAILED - - VM_REMOVE_STATEFILE = api.VM_REMOVE_STATEFILE - - VM_ADMIN = api.VM_ADMIN - - SHUTDOWN_STOP = api.SHUTDOWN_STOP - SHUTDOWN_TERMINATE = api.SHUTDOWN_TERMINATE - - HYPERVISOR_KVM = api.HYPERVISOR_KVM - HYPERVISOR_CONTAINER = api.HYPERVISOR_CONTAINER - HYPERVISOR_BAREMETAL = api.HYPERVISOR_BAREMETAL - HYPERVISOR_ESXI = api.HYPERVISOR_ESXI - HYPERVISOR_HYPERV = api.HYPERVISOR_HYPERV - HYPERVISOR_XEN = api.HYPERVISOR_XEN - - HYPERVISOR_ALIYUN = api.HYPERVISOR_ALIYUN - HYPERVISOR_QCLOUD = api.HYPERVISOR_QCLOUD - HYPERVISOR_AZURE = api.HYPERVISOR_AZURE - HYPERVISOR_AWS = api.HYPERVISOR_AWS - HYPERVISOR_HUAWEI = api.HYPERVISOR_HUAWEI - HYPERVISOR_OPENSTACK = api.HYPERVISOR_OPENSTACK - HYPERVISOR_UCLOUD = api.HYPERVISOR_UCLOUD - - // HYPERVISOR_DEFAULT = HYPERVISOR_KVM - HYPERVISOR_DEFAULT = HYPERVISOR_KVM -) - -const ( - VM_AWS_DEFAULT_LOGIN_USER = "ec2user" - - VM_METADATA_APP_TAGS = "app_tags" - VM_METADATA_CREATE_PARAMS = "create_params" -) - -var VM_RUNNING_STATUS = api.VM_RUNNING_STATUS -var VM_CREATING_STATUS = api.VM_CREATING_STATUS - -var HYPERVISORS = api.HYPERVISORS - -var PUBLIC_CLOUD_HYPERVISORS = api.PUBLIC_CLOUD_HYPERVISORS - -// var HYPERVISORS = []string{HYPERVISOR_ALIYUN} - -var HYPERVISOR_HOSTTYPE = api.HYPERVISOR_HOSTTYPE - -var HOSTTYPE_HYPERVISOR = api.HOSTTYPE_HYPERVISOR -*/ - type SGuestManager struct { db.SVirtualResourceBaseManager } @@ -589,6 +455,28 @@ func (manager *SGuestManager) ExtraSearchConditions(ctx context.Context, q *sqlc return nil } +func (manager *SGuestManager) OrderByExtraFields(ctx context.Context, q *sqlchemy.SQuery, userCred mcclient.TokenCredential, query jsonutils.JSONObject) (*sqlchemy.SQuery, error) { + q, err := manager.SVirtualResourceBaseManager.OrderByExtraFields(ctx, q, userCred, query) + if err != nil { + return nil, err + } + orderByAccount, _ := query.GetString("order_by_account") + if sqlchemy.SQL_ORDER_ASC.Equals(orderByAccount) || sqlchemy.SQL_ORDER_DESC.Equals(orderByAccount) { + hosts := HostManager.Query().SubQuery() + cloudproviders := CloudproviderManager.Query().SubQuery() + cloudaccounts := CloudaccountManager.Query().SubQuery() + q = q.Join(hosts, sqlchemy.Equals(q.Field("host_id"), hosts.Field("id"))) + q = q.Join(cloudproviders, sqlchemy.Equals(hosts.Field("manager_id"), cloudproviders.Field("id"))) + q = q.Join(cloudaccounts, sqlchemy.Equals(cloudproviders.Field("cloudaccount_id"), cloudaccounts.Field("id"))) + if sqlchemy.SQL_ORDER_ASC.Equals(orderByAccount) { + q = q.Asc(cloudaccounts.Field("name")) + } else { + q = q.Desc(cloudaccounts.Field("name")) + } + } + return q, nil +} + func (guest *SGuest) GetHypervisor() string { if len(guest.Hypervisor) == 0 { return api.HYPERVISOR_DEFAULT diff --git a/pkg/compute/models/hosts.go b/pkg/compute/models/hosts.go index 1db4a1ca48..e8c4bcc973 100644 --- a/pkg/compute/models/hosts.go +++ b/pkg/compute/models/hosts.go @@ -53,74 +53,6 @@ import ( "yunion.io/x/onecloud/pkg/util/seclib2" ) -/* -const ( - HOST_TYPE_BAREMETAL = api.HOST_TYPE_BAREMETAL - HOST_TYPE_HYPERVISOR = api.HOST_TYPE_HYPERVISOR // KVM - HOST_TYPE_KVM = api.HOST_TYPE_KVM - HOST_TYPE_ESXI = api.HOST_TYPE_ESXI // # VMWare vSphere ESXi - HOST_TYPE_KUBELET = api.HOST_TYPE_KUBELET // # Kubernetes Kubelet - HOST_TYPE_HYPERV = api.HOST_TYPE_HYPERV // # Microsoft Hyper-V - HOST_TYPE_XEN = api.HOST_TYPE_XEN // # XenServer - - HOST_TYPE_ALIYUN = api.HOST_TYPE_ALIYUN - HOST_TYPE_AWS = api.HOST_TYPE_AWS - HOST_TYPE_QCLOUD = api.HOST_TYPE_QCLOUD - HOST_TYPE_AZURE = api.HOST_TYPE_AZURE - HOST_TYPE_HUAWEI = api.HOST_TYPE_HUAWEI - HOST_TYPE_OPENSTACK = api.HOST_TYPE_OPENSTACK - HOST_TYPE_UCLOUD = api.HOST_TYPE_UCLOUD - HOST_TYPE_ZSTACK = api.HOST_TYPE_ZSTACK - - HOST_TYPE_DEFAULT = HOST_TYPE_HYPERVISOR - - // # possible status - HOST_ONLINE = api.HOST_ONLINE - HOST_ENABLED = api.HOST_ENABLED - HOST_OFFLINE = api.HOST_OFFLINE - HOST_DISABLED = api.HOST_DISABLED - - NIC_TYPE_IPMI = api.NIC_TYPE_IPMI - NIC_TYPE_ADMIN = api.NIC_TYPE_ADMIN - // #NIC_TYPE_NORMAL = 'normal' - - BAREMETAL_INIT = api.BAREMETAL_INIT - BAREMETAL_PREPARE = api.BAREMETAL_PREPARE - BAREMETAL_PREPARE_FAIL = api.BAREMETAL_PREPARE_FAIL - BAREMETAL_READY = api.BAREMETAL_READY - BAREMETAL_RUNNING = api.BAREMETAL_RUNNING - BAREMETAL_MAINTAINING = api.BAREMETAL_MAINTAINING - BAREMETAL_START_MAINTAIN = api.BAREMETAL_START_MAINTAIN - BAREMETAL_DELETING = api.BAREMETAL_DELETING - BAREMETAL_DELETE = api.BAREMETAL_DELETE - BAREMETAL_DELETE_FAIL = api.BAREMETAL_DELETE_FAIL - BAREMETAL_UNKNOWN = api.BAREMETAL_UNKNOWN - BAREMETAL_SYNCING_STATUS = api.BAREMETAL_SYNCING_STATUS - BAREMETAL_SYNC = api.BAREMETAL_SYNC - BAREMETAL_SYNC_FAIL = api.BAREMETAL_SYNC_FAIL - BAREMETAL_START_CONVERT = api.BAREMETAL_START_CONVERT - BAREMETAL_CONVERTING = api.BAREMETAL_CONVERTING - BAREMETAL_START_FAIL = api.BAREMETAL_START_FAIL - BAREMETAL_STOP_FAIL = api.BAREMETAL_STOP_FAIL - - HOST_STATUS_RUNNING = api.BAREMETAL_RUNNING - HOST_STATUS_READY = api.BAREMETAL_READY - HOST_STATUS_UNKNOWN = api.BAREMETAL_UNKNOWN -) - -const ( - HostResourceTypeShared = api.HostResourceTypeShared - HostResourceTypeDefault = api.HostResourceTypeShared - HostResourceTypePrepaidRecycle = api.HostResourceTypePrepaidRecycle - HostResourceTypeDedicated = api.HostResourceTypeDedicated -) - -var HOST_TYPES = api.HOST_TYPES - -var NIC_TYPES = api.NIC_TYPES - -*/ - type SHostManager struct { db.SEnabledStatusStandaloneResourceBaseManager } diff --git a/pkg/compute/models/storages.go b/pkg/compute/models/storages.go index 5b9550304e..4ceff046d1 100644 --- a/pkg/compute/models/storages.go +++ b/pkg/compute/models/storages.go @@ -37,80 +37,6 @@ import ( "yunion.io/x/onecloud/pkg/util/rbacutils" ) -/* -const ( - STORAGE_LOCAL = api.STORAGE_LOCAL - STORAGE_BAREMETAL = api.STORAGE_BAREMETAL - STORAGE_SHEEPDOG = api.STORAGE_SHEEPDOG - STORAGE_RBD = api.STORAGE_RBD - STORAGE_DOCKER = api.STORAGE_DOCKER - STORAGE_NAS = api.STORAGE_NAS - STORAGE_VSAN = api.STORAGE_VSAN - STORAGE_NFS = api.STORAGE_NFS - - STORAGE_PUBLIC_CLOUD = api.STORAGE_PUBLIC_CLOUD - STORAGE_CLOUD_EFFICIENCY = api.STORAGE_CLOUD_EFFICIENCY - STORAGE_CLOUD_SSD = api.STORAGE_CLOUD_SSD - STORAGE_CLOUD_ESSD = api.STORAGE_CLOUD_ESSD //增强型(Enhanced)SSD 云盘 - STORAGE_EPHEMERAL_SSD = api.STORAGE_EPHEMERAL_SSD //单块本地SSD盘, 容量最大不能超过800 GiB - - //Azure hdd and ssd storagetype - STORAGE_STANDARD_LRS = api.STORAGE_STANDARD_LRS - STORAGE_STANDARDSSD_LRS = api.STORAGE_STANDARDSSD_LRS - STORAGE_PREMIUM_LRS = api.STORAGE_PREMIUM_LRS - - // aws storage type - STORAGE_GP2_SSD = api.STORAGE_GP2_SSD // aws general purpose ssd - STORAGE_IO1_SSD = api.STORAGE_IO1_SSD // aws Provisioned IOPS SSD - STORAGE_ST1_HDD = api.STORAGE_ST1_HDD // aws Throughput Optimized HDD - STORAGE_SC1_HDD = api.STORAGE_SC1_HDD // aws Cold HDD - STORAGE_STANDARD_HDD = api.STORAGE_STANDARD_HDD // aws Magnetic volumes - - // qcloud storage type - // STORAGE_CLOUD_SSD ="cloud_ssd" - STORAGE_LOCAL_BASIC = api.STORAGE_LOCAL_BASIC - STORAGE_LOCAL_SSD = api.STORAGE_LOCAL_SSD - STORAGE_CLOUD_BASIC = api.STORAGE_CLOUD_BASIC - STORAGE_CLOUD_PREMIUM = api.STORAGE_CLOUD_PREMIUM - - // huawei storage type - STORAGE_HUAWEI_SSD = api.STORAGE_HUAWEI_SSD // 超高IO云硬盘 - STORAGE_HUAWEI_SAS = api.STORAGE_HUAWEI_SAS // 高IO云硬盘 - STORAGE_HUAWEI_SATA = api.STORAGE_HUAWEI_SATA // 普通IO云硬盘 - - // openstack - STORAGE_OPENSTACK_ISCSI = api.STORAGE_OPENSTACK_ISCSI - - // Ucloud storage type - STORAGE_UCLOUD_CLOUD_NORMAL = api.STORAGE_UCLOUD_CLOUD_NORMAL - STORAGE_UCLOUD_CLOUD_SSD = api.STORAGE_UCLOUD_CLOUD_SSD - STORAGE_UCLOUD_LOCAL_NORMAL = api.STORAGE_UCLOUD_LOCAL_NORMAL - STORAGE_UCLOUD_LOCAL_SSD = api.STORAGE_UCLOUD_LOCAL_SSD - STORAGE_UCLOUD_EXCLUSIVE_LOCAL_DISK = api.STORAGE_UCLOUD_EXCLUSIVE_LOCAL_DISK -) - -const ( - STORAGE_ENABLED = api.STORAGE_ENABLED - // STORAGE_DISABLED = "disabled" - STORAGE_OFFLINE = api.STORAGE_OFFLINE - STORAGE_ONLINE = api.STORAGE_ONLINE - - DISK_TYPE_ROTATE = api.DISK_TYPE_ROTATE - DISK_TYPE_SSD = api.DISK_TYPE_SSD - DISK_TYPE_HYBRID = api.DISK_TYPE_HYBRID -) - -var ( - DISK_TYPES = api.DISK_TYPES - STORAGE_LOCAL_TYPES = api.STORAGE_LOCAL_TYPES - STORAGE_SUPPORT_TYPES = STORAGE_LOCAL_TYPES - STORAGE_ALL_TYPES = api.STORAGE_ALL_TYPES - STORAGE_TYPES = api.STORAGE_TYPES - - STORAGE_LIMITED_TYPES = api.STORAGE_LIMITED_TYPES -) -*/ - type SStorageManager struct { db.SStandaloneResourceBaseManager } diff --git a/pkg/compute/models/zones.go b/pkg/compute/models/zones.go index 97b6b135f7..e9fdd8d8b0 100644 --- a/pkg/compute/models/zones.go +++ b/pkg/compute/models/zones.go @@ -99,46 +99,6 @@ func (zone *SZone) ValidateDeleteCondition(ctx context.Context) error { return zone.SStandaloneResourceBase.ValidateDeleteCondition(ctx) } -/* -@classmethod -def tenant_id_hash(cls, tenant_id, mod): -intval = 0 -for i in range(len(tenant_id)): -intval += ord(tenant_id[i]) -return intval % mod - -@classmethod -def get_hashed_zone_id(cls, tenant_id, excludes=None): -from clouds.models.hosts import Hosts -q = Hosts.query(Hosts.zone_id, func.count('*')) \ -.filter(Hosts.enabled==True) \ -.filter(Hosts.host_status==Hosts.HOST_ONLINE) -if excludes is not None and len(excludes) > 0: -q = q.filter(not_(Hosts.zone_id.in_(excludes))) -q = q.group_by(Hosts.zone_id).all() -zones = [] -weights = {} -for (zone_id, weight) in q: -zones.append(zone_id) -weights[zone_id] = weight -ring = HashRing(zones, weights) -return ring.get_node(tenant_id) - - -def is_zone_manageable(self): -if self.manager_uri is not None and len(self.manager_uri) > 0: -return True -else: -return False - -def request(self, url, on_succ, on_fail, user_cred, **kwargs): -headers = {} -headers['X-Auth-Token'] = user_cred.token -zoneclient.get_client().request(self, 'GET', url, headers, \ -on_succ, on_fail, **kwargs) - -*/ - func (manager *SZoneManager) Count() (int, error) { return manager.Query().CountWithError() }