@@ -165,40 +165,42 @@ const (
165165type TreeCloudResource struct {
166166 Model
167167
168- Name string `json:"name" gorm:"type:varchar(100);not null;comment:资源名称"`
169- ResourceType CloudResourceType `json:"resource_type" gorm:"type:tinyint(1);not null;comment:资源类型;default:1"`
170- Status CloudResourceStatus `json:"status" gorm:"type:tinyint(1);not null;comment:资源状态;default:1"`
171- Environment string `json:"environment" gorm:"type:varchar(50);comment:环境标识(dev/test/prod)"`
172- Description string `json:"description" gorm:"type:text;comment:资源描述"`
173- Tags KeyValueList `json:"tags" gorm:"type:text;serializer:json;comment:资源标签集合"`
174- CreateUserID int `json:"create_user_id" gorm:"comment:创建者ID;default:0"`
175- CreateUserName string `json:"create_user_name" gorm:"type:varchar(100);comment:创建者姓名"`
176- CloudAccountID int `json:"cloud_account_id" gorm:"not null;comment:云账户ID"`
177- CloudAccount * CloudAccount `json:"cloud_account,omitempty" gorm:"foreignKey:CloudAccountID"`
178- Region string `json:"region" gorm:"type:varchar(50);comment:区域,如cn-hangzhou"`
179- InstanceID string `json:"instance_id" gorm:"type:varchar(100);comment:云资源实例ID"`
180- InstanceType string `json:"instance_type" gorm:"type:varchar(100);comment:实例规格(如ecs.g6.large)"`
181- Cpu int `json:"cpu" gorm:"comment:CPU核数;default:0"`
182- Memory int `json:"memory" gorm:"comment:内存大小(GiB);default:0"`
183- Disk int `json:"disk" gorm:"comment:磁盘大小(GiB);default:0"`
184- PublicIP string `json:"public_ip" gorm:"type:varchar(45);comment:公网IP"`
185- PrivateIP string `json:"private_ip" gorm:"type:varchar(45);comment:私网IP"`
186- VpcID string `json:"vpc_id" gorm:"type:varchar(100);comment:VPC ID"`
187- ZoneID string `json:"zone_id" gorm:"type:varchar(50);comment:可用区ID"`
188- ChargeType ChargeType `json:"charge_type" gorm:"type:varchar(50);comment:计费方式(PostPaid/PrePaid)"`
189- ExpireTime * time.Time `json:"expire_time" gorm:"type:datetime;comment:到期时间"`
190- MonthlyCost float64 `json:"monthly_cost" gorm:"type:decimal(10,2);comment:月度成本;default:0"`
191- Currency Currency `json:"currency" gorm:"type:varchar(10);not null;comment:货币单位;default:'CNY'"`
192- OSType string `json:"os_type" gorm:"type:varchar(50);comment:操作系统类型(linux/windows)"`
193- OSName string `json:"os_name" gorm:"type:varchar(100);comment:操作系统名称"`
194- ImageID string `json:"image_id" gorm:"type:varchar(100);comment:镜像ID"`
195- ImageName string `json:"image_name" gorm:"type:varchar(100);comment:镜像名称"`
196- Port int `json:"port" gorm:"comment:SSH端口号;default:22"`
197- Username string `json:"username" gorm:"type:varchar(100);comment:SSH用户名"`
198- Password string `json:"-" gorm:"type:varchar(500);comment:SSH密码(加密存储)"`
199- Key string `json:"-" gorm:"type:text;comment:SSH密钥"`
200- AuthMode AuthMode `json:"auth_mode" gorm:"type:tinyint(1);comment:SSH认证方式(1:密码,2:密钥);default:1"`
201- TreeNodes []* TreeNode `json:"tree_nodes" gorm:"many2many:cl_tree_node_cloud"`
168+ Name string `json:"name" gorm:"type:varchar(100);not null;comment:资源名称"`
169+ ResourceType CloudResourceType `json:"resource_type" gorm:"type:tinyint(1);not null;comment:资源类型;default:1"`
170+ Status CloudResourceStatus `json:"status" gorm:"type:tinyint(1);not null;comment:资源状态;default:1"`
171+ Environment string `json:"environment" gorm:"type:varchar(50);comment:环境标识(dev/test/prod)"`
172+ Description string `json:"description" gorm:"type:text;comment:资源描述"`
173+ Tags KeyValueList `json:"tags" gorm:"type:text;serializer:json;comment:资源标签集合"`
174+ CreateUserID int `json:"create_user_id" gorm:"comment:创建者ID;default:0"`
175+ CreateUserName string `json:"create_user_name" gorm:"type:varchar(100);comment:创建者姓名"`
176+ CloudAccountID int `json:"cloud_account_id" gorm:"not null;comment:云账户ID"`
177+ CloudAccount * CloudAccount `json:"cloud_account,omitempty" gorm:"foreignKey:CloudAccountID"`
178+ CloudAccountRegionID int `json:"cloud_account_region_id" gorm:"not null;comment:云账户区域ID"`
179+ CloudAccountRegion * CloudAccountRegion `json:"cloud_account_region,omitempty" gorm:"foreignKey:CloudAccountRegionID"`
180+ Region string `json:"region" gorm:"type:varchar(50);comment:区域,如cn-hangzhou(冗余字段,便于查询)"`
181+ InstanceID string `json:"instance_id" gorm:"type:varchar(100);comment:云资源实例ID"`
182+ InstanceType string `json:"instance_type" gorm:"type:varchar(100);comment:实例规格(如ecs.g6.large)"`
183+ Cpu int `json:"cpu" gorm:"comment:CPU核数;default:0"`
184+ Memory int `json:"memory" gorm:"comment:内存大小(GiB);default:0"`
185+ Disk int `json:"disk" gorm:"comment:磁盘大小(GiB);default:0"`
186+ PublicIP string `json:"public_ip" gorm:"type:varchar(45);comment:公网IP"`
187+ PrivateIP string `json:"private_ip" gorm:"type:varchar(45);comment:私网IP"`
188+ VpcID string `json:"vpc_id" gorm:"type:varchar(100);comment:VPC ID"`
189+ ZoneID string `json:"zone_id" gorm:"type:varchar(50);comment:可用区ID"`
190+ ChargeType ChargeType `json:"charge_type" gorm:"type:varchar(50);comment:计费方式(PostPaid/PrePaid)"`
191+ ExpireTime * time.Time `json:"expire_time" gorm:"type:datetime;comment:到期时间"`
192+ MonthlyCost float64 `json:"monthly_cost" gorm:"type:decimal(10,2);comment:月度成本;default:0"`
193+ Currency Currency `json:"currency" gorm:"type:varchar(10);not null;comment:货币单位;default:'CNY'"`
194+ OSType string `json:"os_type" gorm:"type:varchar(50);comment:操作系统类型(linux/windows)"`
195+ OSName string `json:"os_name" gorm:"type:varchar(100);comment:操作系统名称"`
196+ ImageID string `json:"image_id" gorm:"type:varchar(100);comment:镜像ID"`
197+ ImageName string `json:"image_name" gorm:"type:varchar(100);comment:镜像名称"`
198+ Port int `json:"port" gorm:"comment:SSH端口号;default:22"`
199+ Username string `json:"username" gorm:"type:varchar(100);comment:SSH用户名"`
200+ Password string `json:"-" gorm:"type:varchar(500);comment:SSH密码(加密存储)"`
201+ Key string `json:"-" gorm:"type:text;comment:SSH密钥"`
202+ AuthMode AuthMode `json:"auth_mode" gorm:"type:tinyint(1);comment:SSH认证方式(1:密码,2:密钥);default:1"`
203+ TreeNodes []* TreeNode `json:"tree_nodes" gorm:"many2many:cl_tree_node_cloud"`
202204}
203205
204206func (t * TreeCloudResource ) TableName () string {
@@ -243,15 +245,15 @@ type DeleteTreeCloudResourceReq struct {
243245
244246// SyncTreeCloudResourceReq 从云厂商同步资源请求
245247type SyncTreeCloudResourceReq struct {
246- CloudAccountID int `json:"cloud_account_id" binding:"required,gt=0"`
247- ResourceTypes [] CloudResourceType `json:"resource_types" binding:"omitempty" ` // 同步的资源类型列表,为空则同步所有
248- Regions [] string `json:"regions" ` // 指定同步的区域列表,为空则同步账号配置的区域
249- InstanceIDs []string `json:"instance_ids"` // 指定同步的实例ID列表,为空则同步所有
250- SyncMode SyncMode `json:"sync_mode" binding:"omitempty,oneof=full incremental"` // 同步模式: full-全量, incremental-增量
251- AutoBind bool `json:"auto_bind"` // 是否自动绑定到服务树节点
252- BindNodeID int `json:"bind_node_id" binding:"omitempty,gt=0"` // 自动绑定的目标节点ID
253- OperatorID int `json:"-"` // 操作人ID (不通过JSON传递)
254- OperatorName string `json:"-"` // 操作人姓名 (不通过JSON传递)
248+ CloudAccountID int `json:"cloud_account_id" binding:"required,gt=0"`
249+ CloudAccountRegionIDs [] int `json:"cloud_account_region_ids" ` // 指定同步的账号区域ID列表,为空则同步账号的所有区域
250+ ResourceTypes [] CloudResourceType `json:"resource_types" binding:"omitempty" ` // 同步的资源类型列表,为空则同步所有
251+ InstanceIDs []string `json:"instance_ids"` // 指定同步的实例ID列表,为空则同步所有
252+ SyncMode SyncMode `json:"sync_mode" binding:"omitempty,oneof=full incremental"` // 同步模式: full-全量, incremental-增量
253+ AutoBind bool `json:"auto_bind"` // 是否自动绑定到服务树节点
254+ BindNodeID int `json:"bind_node_id" binding:"omitempty,gt=0"` // 自动绑定的目标节点ID
255+ OperatorID int `json:"-"` // 操作人ID (不通过JSON传递)
256+ OperatorName string `json:"-"` // 操作人姓名 (不通过JSON传递)
255257}
256258
257259// SyncCloudResourceResp 同步云资源响应
0 commit comments