huawei import keypair & rebuild root & skus filter fix

This commit is contained in:
TangBin
2019-04-25 11:26:31 +08:00
parent b6e71c47a7
commit e7db13d99a
3 changed files with 16 additions and 21 deletions
+7 -5
View File
@@ -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
+3 -3
View File
@@ -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()
+6 -13
View File
@@ -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
}