|
12345678910111213141516171819202122232425262728293031323334 |
- package database
-
- import (
- "gitlink.org.cn/JointCloud/pcm-coordinator/api/internal/scheduler/entity"
- "gorm.io/gorm"
- )
-
- type CloudStorage struct {
- dbEngin *gorm.DB
- }
-
- func NewCloudStorage(dbEngin *gorm.DB) *CloudStorage {
- return &CloudStorage{dbEngin: dbEngin}
- }
-
- func (c *CloudStorage) GetProviderParams() ([]entity.ProviderParams, error) {
- var proParams []entity.ProviderParams
- sqlstr := "SELECT SUM(a.disk_avail) as disk_avail,SUM(a.mem_avail) as mem_avail,SUM(a.cpu_total * a.cpu_usable) as cpu_avail,participant_id from (SELECT * from sc_node_avail_info where created_time in (SELECT MAX(created_time) as time from sc_node_avail_info where deleted_flag = 0 GROUP BY participant_id,node_name)) a GROUP BY a.participant_id"
- c.dbEngin.Raw(sqlstr).Scan(&proParams)
- if len(proParams) == 0 {
- return nil, nil
- }
- return proParams, nil
- }
-
- func (c *CloudStorage) FindAvailableParticipants() ([]entity.Participant, error) {
- var parts []entity.Participant
- sqlstr := "select id as participant_id, name as name from sc_participant_phy_info"
- c.dbEngin.Raw(sqlstr).Scan(&parts)
- if len(parts) == 0 {
- return nil, nil
- }
- return parts, nil
- }
|