diff --git a/pkg/apis/compute/cloudaccount.go b/pkg/apis/compute/cloudaccount.go index ed98317929..eed438db8e 100644 --- a/pkg/apis/compute/cloudaccount.go +++ b/pkg/apis/compute/cloudaccount.go @@ -136,7 +136,7 @@ type CloudaccountCreateInput struct { // 指定云平台 // Qcloud: 腾讯云 // Ctyun: 天翼云 - // enum: VMware, Aliyun, Qcloud, Azure, Aws, Huawei, OpenStack, Ucloud, ZStack, Google, Ctyun + // enum: VMware, Aliyun, Qcloud, Azure, Aws, Huawei, OpenStack, Ucloud, ZStack, Google, Ctyun, JDcloud Provider string `json:"provider"` // swagger:ignore AccountId string diff --git a/pkg/apis/compute/cloudaccount_const.go b/pkg/apis/compute/cloudaccount_const.go index 035a785b4b..f45c19583d 100644 --- a/pkg/apis/compute/cloudaccount_const.go +++ b/pkg/apis/compute/cloudaccount_const.go @@ -50,6 +50,7 @@ const ( CLOUD_PROVIDER_GOOGLE = "Google" CLOUD_PROVIDER_CTYUN = "Ctyun" CLOUD_PROVIDER_ECLOUD = "Ecloud" + CLOUD_PROVIDER_JDCLOUD = "JDcloud" CLOUD_PROVIDER_GENERICS3 = "S3" CLOUD_PROVIDER_CEPH = "Ceph" @@ -89,6 +90,7 @@ const ( CLOUD_ACCESS_ENV_ALIYUN_FINANCE = CLOUD_PROVIDER_ALIYUN + "-fin" CLOUD_ACCESS_ENV_CTYUN_CHINA = CLOUD_PROVIDER_CTYUN CLOUD_ACCESS_ENV_ECLOUD_CHINA = CLOUD_PROVIDER_ECLOUD + CLOUD_ACCESS_ENV_JDCLOUD_CHINA = CLOUD_PROVIDER_JDCLOUD ) var ( @@ -111,6 +113,7 @@ var ( CLOUD_PROVIDER_GOOGLE, CLOUD_PROVIDER_CTYUN, CLOUD_PROVIDER_ECLOUD, + CLOUD_PROVIDER_JDCLOUD, } CLOUD_PROVIDER_HOST_TYPE_MAP = map[string][]string{ @@ -158,6 +161,9 @@ var ( CLOUD_PROVIDER_ECLOUD: { HOST_TYPE_ECLOUD, }, + CLOUD_PROVIDER_JDCLOUD: { + HOST_TYPE_JDCLOUD, + }, } ) diff --git a/pkg/apis/compute/guest_const.go b/pkg/apis/compute/guest_const.go index 44f878054e..58cb81092a 100644 --- a/pkg/apis/compute/guest_const.go +++ b/pkg/apis/compute/guest_const.go @@ -165,6 +165,7 @@ const ( HYPERVISOR_GOOGLE = "google" HYPERVISOR_CTYUN = "ctyun" HYPERVISOR_ECLOUD = "ecloud" + HYPERVISOR_JDCLOUD = "jdcloud" // HYPERVISOR_DEFAULT = HYPERVISOR_KVM HYPERVISOR_DEFAULT = HYPERVISOR_KVM @@ -195,6 +196,7 @@ var HYPERVISORS = []string{ HYPERVISOR_GOOGLE, HYPERVISOR_CTYUN, HYPERVISOR_ECLOUD, + HYPERVISOR_JDCLOUD, } var ONECLOUD_HYPERVISORS = []string{ @@ -213,6 +215,7 @@ var PUBLIC_CLOUD_HYPERVISORS = []string{ HYPERVISOR_GOOGLE, HYPERVISOR_CTYUN, HYPERVISOR_ECLOUD, + HYPERVISOR_JDCLOUD, } var PRIVATE_CLOUD_HYPERVISORS = []string{ @@ -240,6 +243,7 @@ var HYPERVISOR_HOSTTYPE = map[string]string{ HYPERVISOR_GOOGLE: HOST_TYPE_GOOGLE, HYPERVISOR_CTYUN: HOST_TYPE_CTYUN, HYPERVISOR_ECLOUD: HOST_TYPE_ECLOUD, + HYPERVISOR_JDCLOUD: HOST_TYPE_JDCLOUD, } var HOSTTYPE_HYPERVISOR = map[string]string{ @@ -259,6 +263,7 @@ var HOSTTYPE_HYPERVISOR = map[string]string{ HOST_TYPE_GOOGLE: HYPERVISOR_GOOGLE, HOST_TYPE_CTYUN: HYPERVISOR_CTYUN, HOST_TYPE_ECLOUD: HYPERVISOR_ECLOUD, + HOST_TYPE_JDCLOUD: HYPERVISOR_JDCLOUD, } const ( diff --git a/pkg/apis/compute/host_const.go b/pkg/apis/compute/host_const.go index 753e46f2a3..a021d50144 100644 --- a/pkg/apis/compute/host_const.go +++ b/pkg/apis/compute/host_const.go @@ -35,6 +35,7 @@ const ( HOST_TYPE_GOOGLE = "google" HOST_TYPE_CTYUN = "ctyun" HOST_TYPE_ECLOUD = "ecloud" + HOST_TYPE_JDCLOUD = "jdcloud" HOST_TYPE_DEFAULT = HOST_TYPE_HYPERVISOR @@ -114,6 +115,7 @@ var HOST_TYPES = []string{ HOST_TYPE_ZSTACK, HOST_TYPE_CTYUN, HOST_TYPE_GOOGLE, + HOST_TYPE_JDCLOUD, } var NIC_TYPES = []string{NIC_TYPE_IPMI, NIC_TYPE_ADMIN} diff --git a/pkg/apis/compute/network_const.go b/pkg/apis/compute/network_const.go index fe74d47a4c..be39e5cfdb 100644 --- a/pkg/apis/compute/network_const.go +++ b/pkg/apis/compute/network_const.go @@ -63,6 +63,7 @@ var ( CLOUD_PROVIDER_UCLOUD, CLOUD_PROVIDER_GOOGLE, CLOUD_PROVIDER_OPENSTACK, + CLOUD_PROVIDER_JDCLOUD, } ) diff --git a/pkg/apis/compute/storage_const.go b/pkg/apis/compute/storage_const.go index 1324b8e477..e9c61354b6 100644 --- a/pkg/apis/compute/storage_const.go +++ b/pkg/apis/compute/storage_const.go @@ -95,6 +95,11 @@ const ( STORAGE_CTYUN_SAS = "SAS" // 高IO云硬盘 STORAGE_CTYUN_SATA = "SATA" // 普通IO云硬盘 + // jd cloud storage type + STORAGE_JDCLOUD_GP1 = "ssd.gp1" // 通用型SSD云硬盘 + STORAGE_JDCLOUD_IO1 = "ssd.io1" // 性能型SSD云硬盘 + STORAGE_JDCLOUD_STD = "hdd.std1" // 容量型HDD云硬盘 + STORAGE_ECLOUD_CAPEBS = "capebs" // 容量盘 STORAGE_ECLOUD_EBS = "ebs" // 性能盘 STORAGE_ECLOUD_SSD = "ssd" // 高性能盘 diff --git a/pkg/compute/hostdrivers/jdcloud.go b/pkg/compute/hostdrivers/jdcloud.go new file mode 100644 index 0000000000..27b37307dd --- /dev/null +++ b/pkg/compute/hostdrivers/jdcloud.go @@ -0,0 +1,23 @@ +package hostdrivers + +import ( + api "yunion.io/x/onecloud/pkg/apis/compute" + "yunion.io/x/onecloud/pkg/compute/models" +) + +type SJDcloudHostDriver struct { + SManagedVirtualizationHostDriver +} + +func init() { + driver := SJDcloudHostDriver{} + models.RegisterHostDriver(&driver) +} + +func (self *SJDcloudHostDriver) GetHostType() string { + return api.HOST_TYPE_JDCLOUD +} + +func (self *SJDcloudHostDriver) GetHypervisor() string { + return api.HYPERVISOR_JDCLOUD +}