mirror of
https://github.com/yunionio/cloudpods.git
synced 2026-09-19 02:37:24 +08:00
huawei import keypair & rebuild root & skus filter fix
This commit is contained in:
@@ -486,11 +486,13 @@ func providerFilter(q *sqlchemy.SQuery, provider string, public_cloud bool) *sql
|
||||
if public_cloud {
|
||||
providerTable := CloudproviderManager.Query().SubQuery()
|
||||
providerRegionTable := CloudproviderRegionManager.Query().SubQuery()
|
||||
q = q.Join(providerRegionTable, sqlchemy.Equals(q.Field("cloudregion_id"), providerRegionTable.Field("cloudregion_id")))
|
||||
q = q.Join(providerTable, sqlchemy.Equals(providerRegionTable.Field("cloudprovider_id"), providerTable.Field("id")))
|
||||
q = q.Filter(sqlchemy.IsTrue(providerTable.Field("enabled")))
|
||||
q = q.Filter(sqlchemy.In(providerTable.Field("status"), api.CLOUD_PROVIDER_VALID_STATUS))
|
||||
q = q.Filter(sqlchemy.Equals(providerTable.Field("health_status"), api.CLOUD_PROVIDER_HEALTH_NORMAL))
|
||||
|
||||
subq := providerRegionTable.Query(sqlchemy.DISTINCT("cloudregion_id", providerRegionTable.Field("cloudregion_id")))
|
||||
subq = subq.Join(providerTable, sqlchemy.Equals(providerRegionTable.Field("cloudprovider_id"), providerTable.Field("id")))
|
||||
subq = subq.Filter(sqlchemy.IsTrue(providerTable.Field("enabled")))
|
||||
subq = subq.Filter(sqlchemy.In(providerTable.Field("status"), api.CLOUD_PROVIDER_VALID_STATUS))
|
||||
subq = subq.Filter(sqlchemy.Equals(providerTable.Field("health_status"), api.CLOUD_PROVIDER_HEALTH_NORMAL))
|
||||
q = q.Filter(sqlchemy.In(q.Field("cloudregion_id"), subq.SubQuery()))
|
||||
}
|
||||
|
||||
// 过滤出network usable的sku
|
||||
|
||||
@@ -1041,9 +1041,9 @@ func (self *SRegion) DeployVM(instanceId string, name string, password string, k
|
||||
serverObj.Add(jsonutils.NewString(name), "name")
|
||||
}
|
||||
|
||||
if len(description) > 0 {
|
||||
serverObj.Add(jsonutils.NewString(description), "description")
|
||||
}
|
||||
// if len(description) > 0 {
|
||||
// serverObj.Add(jsonutils.NewString(description), "description")
|
||||
// }
|
||||
|
||||
if serverObj.Size() > 0 {
|
||||
params := jsonutils.NewDict()
|
||||
|
||||
@@ -72,20 +72,13 @@ func (self *SRegion) lookUpKeypair(publicKey string) (string, error) {
|
||||
|
||||
// https://support.huaweicloud.com/api-ecs/zh-cn_topic_0020212678.html
|
||||
func (self *SRegion) ImportKeypair(name, publicKey string) (*SKeypair, error) {
|
||||
fingerprint, err := self.getFingerprint(publicKey)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
keypair := SKeypair{
|
||||
Name: name,
|
||||
PublicKey: publicKey,
|
||||
Fingerprint: fingerprint,
|
||||
}
|
||||
|
||||
keypairObj := jsonutils.Marshal(keypair)
|
||||
keypairObj := jsonutils.NewDict()
|
||||
keypairObj.Add(jsonutils.NewString(name), "name")
|
||||
keypairObj.Add(jsonutils.NewString(publicKey), "public_key")
|
||||
params := jsonutils.NewDict()
|
||||
params.Set("keypair", keypairObj)
|
||||
ret := SKeypair{}
|
||||
err = DoCreate(self.ecsClient.Keypairs.Create, keypairObj, &ret)
|
||||
err := DoCreate(self.ecsClient.Keypairs.Create, params, &ret)
|
||||
return &ret, err
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user