From 68bb75b41523b116b1f897543264a82139829856 Mon Sep 17 00:00:00 2001 From: Qu Xuan Date: Tue, 17 Aug 2021 17:27:38 +0800 Subject: [PATCH] fix(region): azure sqlserver dtu --- pkg/multicloud/azure/rds_sqlserver.go | 31 ++++++++++++++++++- .../azure/rds_sqlserver_database.go | 20 +++++++++++- 2 files changed, 49 insertions(+), 2 deletions(-) diff --git a/pkg/multicloud/azure/rds_sqlserver.go b/pkg/multicloud/azure/rds_sqlserver.go index 698aeb3db5..a5dde9452d 100644 --- a/pkg/multicloud/azure/rds_sqlserver.go +++ b/pkg/multicloud/azure/rds_sqlserver.go @@ -15,6 +15,7 @@ package azure import ( + "fmt" "net/url" "strings" @@ -162,7 +163,35 @@ func (self *SSQLServer) GetVcpuCount() int { } func (self *SSQLServer) GetVmemSizeMB() int { - return self.GetVcpuCount() * 3 * 1023 + dbs, err := self.fetchDatabase() + if err != nil { + return 0 + } + mem := 0 + for _, db := range dbs { + mem += db.GetVmemSizeMb() + } + return mem +} + +func (self *SSQLServer) GetSysTags() map[string]string { + dtu := self.GetDTU() + if dtu > 0 { + return map[string]string{"DTU": fmt.Sprintf("%d", dtu)} + } + return nil +} + +func (self *SSQLServer) GetDTU() int { + dbs, err := self.fetchDatabase() + if err != nil { + return 0 + } + dtu := 0 + for _, db := range dbs { + dtu += db.GetDTU() + } + return dtu } func (self *SSQLServer) GetZone1Id() string { diff --git a/pkg/multicloud/azure/rds_sqlserver_database.go b/pkg/multicloud/azure/rds_sqlserver_database.go index 5cca325fa0..74f7bb8a0c 100644 --- a/pkg/multicloud/azure/rds_sqlserver_database.go +++ b/pkg/multicloud/azure/rds_sqlserver_database.go @@ -56,6 +56,7 @@ type SSQLServerDatabase struct { Name string `json:"name"` Tier string `json:"tier"` Capacity int `json:"capacity"` + Family string `json:"family"` } `json:"currentSku"` } `json:"properties"` Location string `json:"location"` @@ -88,7 +89,24 @@ func (self *SSQLServerDatabase) GetDiskSizeMb() int { } func (self *SSQLServerDatabase) GetVcpuCount() int { - return self.Properties.Currentsku.Capacity + if len(self.Properties.Currentsku.Family) > 0 { + return self.Properties.Currentsku.Capacity + } + return 0 +} + +func (self *SSQLServerDatabase) GetVmemSizeMb() int { + if len(self.Properties.Currentsku.Family) > 0 { + return int(5.2 * 1024 * float32(self.Properties.Currentsku.Capacity)) + } + return 0 +} + +func (self *SSQLServerDatabase) GetDTU() int { + if len(self.Properties.Currentsku.Family) == 0 { + return self.Properties.Currentsku.Capacity + } + return 0 } func (self *SSQLServerDatabase) GetGlobalId() string {