|
package models
|
|
|
|
import (
|
|
"encoding/json"
|
|
"fmt"
|
|
)
|
|
|
|
// EtcdServersModel etcd 服务列表
|
|
type EtcdServersModel struct {
|
|
ID int32 `json:"id" gorm:"column:id;primary_key"`
|
|
Version string `json:"version" gorm:"column:version"`
|
|
Name string `json:"name" gorm:"column:name"`
|
|
Address string `json:"address" gorm:"column:address"`
|
|
TlsEnable string `json:"tls_enable" gorm:"column:tls_enable"`
|
|
CertFile string `json:"cert_file" gorm:"column:cert_file"`
|
|
KeyFile string `json:"key_file" gorm:"column:key_file"`
|
|
CaFile string `json:"ca_file" gorm:"column:ca_file"`
|
|
Username string `json:"username" gorm:"column:username"`
|
|
Password string `json:"password" gorm:"column:password"`
|
|
Desc string `json:"desc" gorm:"column:desc"`
|
|
CreatedAt JSONTime `gorm:"column:created_at" json:"created_at"` // 添加时间
|
|
UpdatedAt JSONTime `gorm:"column:updated_at" json:"updated_at"` // 更新时间
|
|
}
|
|
|
|
// TableName 表名
|
|
func (EtcdServersModel) TableName() string {
|
|
return "etcd_servers"
|
|
}
|
|
|
|
// All 获取全部
|
|
func (m *EtcdServersModel) All(name string, roleId int32) (list []*EtcdServersModel, err error) {
|
|
re := new(RoleEtcdServersModel).TableName()
|
|
err = client.Table(m.TableName()+" as e").Select("DISTINCT e.id, e.*").
|
|
Joins("LEFT JOIN "+re+" as re on re.etcd_server_id = e.id").
|
|
Where("e.name like ? and re.role_id = ?", fmt.Sprintf("%%%s%%", name), roleId).
|
|
Scan(&list).Error
|
|
return
|
|
}
|
|
|
|
// FirstById 根据id查询一个etcd服务
|
|
func (m *EtcdServersModel) FirstById(id int32) (one *EtcdServersModel, err error) {
|
|
one = new(EtcdServersModel)
|
|
err = client.Model(m).Where("id = ?", id).First(one).Error
|
|
return
|
|
}
|
|
|
|
// Insert 添加
|
|
func (m *EtcdServersModel) Insert() (err error) {
|
|
err = client.Create(m).Error
|
|
return
|
|
}
|
|
|
|
// Update 修改
|
|
func (m *EtcdServersModel) Update() (err error) {
|
|
edit := make(map[string]interface{}, 0)
|
|
js, _ := json.Marshal(m)
|
|
json.Unmarshal(js, &edit)
|
|
err = client.Model(new(EtcdServersModel)).Where("id = ?", m.ID).Updates(edit).Error
|
|
return
|
|
}
|
|
|
|
// Del 删除
|
|
func (m *EtcdServersModel) Del(id int32) (err error) {
|
|
err = client.Table(m.TableName()).Where("id = ?", id).Delete(m).Error
|
|
new(RoleEtcdServersModel).DelByEtcdId(id)
|
|
return
|
|
}
|