123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126 |
- package main
- import (
- "fmt"
- "gorm.io/driver/mysql"
- "gorm.io/gorm"
- "gorm.io/gorm/logger"
- "time"
- )
- // 定义 User 模型
- type User struct {
- gorm.Model
- Name string
- Email string
- Test Test
- }
- type Test struct {
- gorm.Model
- Name string
- UserID *uint
- }
- func main() {
- user := User{
- Name: "John Doe",
- Email: "john.doe@example.com",
- Test: Test{
- Name: "test",
- },
- }
- Created(&user)
- // 打印成功创建的消息
- fmt.Printf("User created with ID: %d\n", user.ID)
- }
- func Created(u *User) {
- dsn := "root:lxz664278@tcp(106.54.33.152:33369)/hstack?charset=utf8mb4&parseTime=True&loc=Local"
- db, err := gorm.Open(mysql.Open(dsn), &gorm.Config{
- Logger: logger.Default.LogMode(logger.Info),
- })
- if err != nil {
- panic("failed to connect database")
- }
- info, _ := GetNodePartInfo(&Node{Model: Model{ID: 2}}, *db)
- fmt.Println(info)
- }
- func GetNodePartInfo(node *Node, DBConn gorm.DB) (*Node, error) {
- var result = new(Node)
- tx := DBConn.Model(Node{}).Select([]string{
- "id", "node_tag",
- "max_v_cpu", "use_v_cpu",
- "max_mem", "use_mem",
- "max_gpu", "use_gpu",
- "max_vpc", "use_vpc",
- "stat"}).Where("id=?", node.ID).Find(result)
- if tx.Error != nil {
- return nil, tx.Error
- }
- if result.ID <= 0 {
- result = nil
- }
- return result, nil
- }
- // Node 节点信息
- type Node struct {
- Model
- NodeName string `json:"node_name" gorm:"node_name" ` // 节点名称
- ZoneId int `json:"zone_id" gorm:"zone_id" ` // 所属资源区ID
- ZoneName string `json:"zone_name" gorm:"zone_name" ` // 所属资源区名
- BmcIP string `json:"bmc_ip" gorm:"bmc_ip" ` // BMC IP
- BmcUser string `json:"bmc_user" gorm:"bmc_user" ` // BMC 用户名
- BmcPass string `json:"bmc_pass" gorm:"bmc_pass" ` // BMC 密码
- MgrIp string `json:"mgr_ip" gorm:"mgr_ip" ` // 管理IP
- NodeIp string `json:"node_ip" gorm:"node_ip" ` // 节点IP
- ListenPort int `json:"listen_port" gorm:"listen_port" ` // 监听端口
- SSHPort int `json:"ssh_port" gorm:"ssh_port" ` // SSH端口号
- RootUser string `json:"root_user" gorm:"root_user" ` // root用户
- RootPass string `json:"root_pass" gorm:"root_pass" ` // root密码
- RootSecretKey string `json:"root_secret_key" gorm:"root_secret_key" ` // Root账号密钥
- SecretKeyPass string `json:"secret_key_pass" gorm:"secret_key_pass" ` // 密钥密码
- NodeMode int `json:"node_mode" gorm:"node_mode" ` // 节点模式
- NodeTag string `json:"node_tag" gorm:"node_tag" ` // 节点标记
- MaxVCpu int `json:"max_v_cpu" gorm:"max_v_cpu" ` // 最大可虚拟化CPU数量
- UseVCpu int `json:"use_v_cpu" gorm:"use_v_cpu" ` // 已使用虚拟化CPU数量
- Cpu int `json:"cpu" gorm:"cpu" ` // CPU数量
- CpuType int `json:"cpu_type" gorm:"cpu_type" ` // CPU类型 (x86_64:1;amd64:2;arm:3;other:4)
- MaxMem int64 `json:"max_mem" gorm:"max_mem" ` // 最大内存
- UseMem int64 `json:"use_mem" gorm:"use_mem" ` // 已使用内存
- MaxGpu int `json:"max_gpu" gorm:"max_gpu" ` // 最大GPU数
- UseGpu int `json:"use_gpu" gorm:"use_gpu" ` // 已使用GPU数
- NodeWidget int `json:"node_widget" gorm:"node_widget" ` // 节点权重
- NodeLoadStat int `json:"node_load_stat" gorm:"node_load_stat" ` // 节点负载状态
- MaxVPC int `json:"max_vpc" gorm:"column:max_vpc;default:5" ` // 节点创建的最大VPC数量
- UseVPC int `json:"use_vpc" gorm:"column:use_vpc;default:0" ` // 节点已创建的VPC
- RunStat int `json:"run_stat" gorm:"run_stat" ` // 节点运行状态
- AutoSyncNodeStat int `json:"auto_sync_node_stat" gorm:"auto_sync_node_stat" ` // 自动同步节点状态
- PcieIdList []int `json:"pcie_id_list" gorm:"-" ` // PCIE设备ID列表
- HPCInitCommandIdList []int `json:"hpc_init_command_id_list" gorm:"-" ` // hpc命令ID数组
- CloudInitCommandIdList []int `json:"cloud_init_command_id_list" gorm:"-" ` // 云命令ID数组
- }
- type Model struct {
- ID int `json:"id" gorm:"column:id;primarykey" ` // 主键ID
- CreatedAt *time.Time `json:"created_at" gorm:"column:created_at;autoCreateTime:nano" swaggerignore:"true" ` // 创建时间
- UpdatedAt *time.Time `json:"updated_at" gorm:"column:updated_at;autoUpdateTime:nano" swaggerignore:"true"` // 更新时间
- DeletedAt gorm.DeletedAt `json:"deleted_at" gorm:"column:deleted_at;index" swaggerignore:"true"` // 删除时间
- CreateUser string `json:"create_user" gorm:"create_user" swaggerignore:"true"` // 创建用户
- CreateUserId int `json:"create_user_id" gorm:"create_user_id" swaggerignore:"true"` // 创建用户ID
- UpdateUser string `json:"update_user" gorm:"update_user" swaggerignore:"true"` // 更新用户
- UpdateUserId int `json:"update_user_id" gorm:"update_user_id" swaggerignore:"true"` // 更新用户ID
- DeleteUser string `json:"delete_user" gorm:"delete_user" swaggerignore:"true" ` // 删除用户
- DeleteUserId int `json:"delete_user_id" gorm:"delete_user_id" swaggerignore:"true"` // 删除用户ID
- Remark string `json:"remark" gorm:"remark" swaggerignore:"true"` // 备注
- Stat int `json:"stat" gorm:"stat" swaggerignore:"true"` // 状态
- ExpireAt *time.Time `json:"expire_at" gorm:"expire_at" swaggerignore:"true"` // 过期时间
- }
- func (Node) TableName() string {
- return "node"
- }
|