1515
1616``` go
1717type DeployService interface {
18- ExecuteDeployment (params *DeployParams) (*OperationResult, error )
18+ DeployNewService (params *DeployNewServiceParams) (*OperationResult, error )
19+ DeployNewVersion (params *DeployNewVersionParams) (*OperationResult, error )
1920 ExecuteRollback (params *RollbackParams) (*OperationResult, error )
2021}
2122```
2223
23- ### 2.2 ExecuteDeployment方法
24+ ### 2.2 结构体定义
2425
25- ** 方法描述** : 触发指定服务版本的发布操作
26-
27- ** 方法签名** :
26+ ** DeployNewServiceParams结构体** :
2827``` go
29- ExecuteDeployment (params *DeployParams) (*OperationResult, error )
28+ type DeployNewServiceParams struct {
29+ Service string ` json:"service"` // 必填,服务名称
30+ Version string ` json:"version"` // 必填,目标版本号
31+ totalNum int ` json:"totalNum"` // 必填,新建实例数量
32+ PackageURL string ` json:"package_url"` // 必填,包下载URL
33+ }
3034```
3135
32- ** 输入参数 ** :
36+ ** DeployNewVersionParams结构体 ** :
3337``` go
34- type DeployParams struct {
38+ type DeployNewVersionParams struct {
3539 Service string ` json:"service"` // 必填,服务名称
3640 Version string ` json:"version"` // 必填,目标版本号
3741 Instances []string ` json:"instances"` // 必填,实例ID列表
3842 PackageURL string ` json:"package_url"` // 必填,包下载URL
3943}
4044```
4145
42- ** 返回结果** :
46+ ** RollbackParams结构体** :
47+ ``` go
48+ type RollbackParams struct {
49+ Service string ` json:"service"` // 必填,服务名称
50+ TargetVersion string ` json:"target_version"` // 必填,目标版本号
51+ Instances []string ` json:"instances"` // 必填,实例ID列表
52+ PackageURL string ` json:"package_url"` // 必填,包下载URL
53+ }
54+ ```
55+
56+ ** OperationResult结构体** :
4357``` go
4458type OperationResult struct {
4559 Service string ` json:"service"` // 服务名称
@@ -49,26 +63,44 @@ type OperationResult struct {
4963}
5064```
5165
52- ### 2.3 ExecuteRollback方法
66+ ### 2.3 DeployNewService方法
5367
54- ** 方法描述** : 对指定实例执行回滚操作,支持单实例或批量实例回滚
68+ ** 方法描述** : 部署新服务并创建指定数量的实例
5569
5670** 方法签名** :
5771``` go
58- ExecuteRollback (params *RollbackParams ) (*OperationResult, error )
72+ DeployNewService (params *DeployNewServiceParams ) (*OperationResult, error )
5973```
6074
61- ** 输入参数** :
75+ ** 输入参数** : ` *DeployNewServiceParams ` - 新服务部署参数
76+
77+ ** 返回结果** : ` *OperationResult ` - 操作结果
78+
79+ ### 2.4 DeployNewVersion方法
80+
81+ ** 方法描述** : 触发指定服务版本的发布操作
82+
83+ ** 方法签名** :
6284``` go
63- type RollbackParams struct {
64- Service string ` json:"service"` // 必填,服务名称
65- TargetVersion string ` json:"target_version"` // 必填,目标版本号
66- Instances []string ` json:"instances"` // 必填,实例ID列表
67- PackageURL string ` json:"package_url"` // 必填,包下载URL
68- }
85+ DeployNewVersion (params *DeployNewVersionParams) (*OperationResult, error )
6986```
7087
71- ** 返回结果** : ` *OperationResult ` - 使用通用的操作结果结构体
88+ ** 输入参数** : ` *DeployNewVersionParams ` - 版本发布参数
89+
90+ ** 返回结果** : ` *OperationResult ` - 操作结果
91+
92+ ### 2.5 ExecuteRollback方法
93+
94+ ** 方法描述** : 对指定实例执行回滚操作,支持单实例或批量实例回滚
95+
96+ ** 方法签名** :
97+ ``` go
98+ ExecuteRollback (params *RollbackParams) (*OperationResult, error )
99+ ```
100+
101+ ** 输入参数** : ` *RollbackParams ` - 回滚参数
102+
103+ ** 返回结果** : ` *OperationResult ` - 操作结果
72104
73105## 3. InstanceManager接口
74106
@@ -83,7 +115,7 @@ type InstanceManager interface {
83115}
84116```
85117
86- ### 3.2 数据结构定义
118+ ### 3.2 结构体定义
87119
88120** InstanceInfo结构体** :
89121``` go
@@ -136,6 +168,7 @@ instanceID string // 必填,实例ID
136168
137169** 返回结果** : ` []*VersionInfo ` - 版本历史数组
138170
171+
139172## 4. 内部工具函数
140173
141174### 4.1 ValidatePackageURL函数
@@ -171,13 +204,13 @@ version ...string // 选填,指定版本号进行过滤,未输入则默
171204
172205**返回结果**: `[]string` - 实例ID数组
173206
174- ### 4.3 GetInstanceHost函数
207+ ### 4.3 GetInstanceIP函数
175208
176209**函数描述**: 根据实例ID获取实例的IP地址
177210
178211**函数签名**:
179212```go
180- func GetInstanceHost (instanceID string) (string, error)
213+ func GetInstanceIP (instanceID string) (string, error)
181214```
182215
183216**输入参数**:
@@ -218,3 +251,112 @@ instanceID string // 必填,实例ID
218251```
219252
220253**返回结果**: `bool` - 健康检查结果,true表示实例有响应,false表示无响应
254+
255+ ### 4.6 GetAvailableHosts函数
256+
257+ **函数描述**: 获取所有可用的主机列表
258+
259+ **函数签名**:
260+ ```go
261+ func GetAvailableHosts() ([]string, error)
262+ ```
263+
264+ **输入参数**: 无
265+
266+ **返回结果**: `[]string` - 可用主机列表,获取失败时返回错误信息
267+
268+ ### 4.7 GetHostIp函数
269+
270+ **函数描述**: 根据主机名获取主机IP地址
271+
272+ **函数签名**:
273+ ```go
274+ func GetHostIp(hostName string) (string, error)
275+ ```
276+
277+ **输入参数**:
278+ ```go
279+ hostName string // 必填,主机名称
280+ ```
281+
282+ **返回结果**: `string` - 主机的IP地址,获取失败时返回错误信息
283+
284+ ### 4.8 CheckHostHealth函数
285+
286+ **函数描述**: 判断主机运行状态,用于发布前验证目标主机的可用性
287+
288+ **函数签名**:
289+ ```go
290+ func CheckHostHealth(hostIpAddress string) (bool, error)
291+ ```
292+
293+ **输入参数**:
294+ ```go
295+ hostIpAddress string // 必填,主机IP地址
296+ ```
297+
298+ **返回结果**: `bool` - 健康检查结果,true表示主机有响应,false表示无响应
299+
300+ ### 4.9 SelectHostForNewInstance函数
301+
302+ **函数描述**: 为新实例选择合适的主机
303+
304+ **函数签名**:
305+ ```go
306+ func SelectHostForNewInstance(availableHosts []string, service string, version string) (string, error)
307+ ```
308+
309+ **输入参数**:
310+ ```go
311+ availableHosts []string // 必填,可用主机列表
312+ service string // 必填,服务名称
313+ version string // 必填,版本号
314+ ```
315+
316+ **返回结果**: `string` - 选择的主机名,选择失败时返回错误信息
317+
318+ ### 4.10 GenerateInstanceID函数
319+
320+ **函数描述**: 根据服务名生成实例ID
321+
322+ **函数签名**:
323+ ```go
324+ func GenerateInstanceID(serviceName string) (string, error)
325+ ```
326+
327+ **输入参数**:
328+ ```go
329+ serviceName string // 必填,服务名称
330+ ```
331+
332+ **返回结果**: `string` - 生成的实例ID,生成失败时返回错误信息
333+
334+ ### 4.11 GenerateInstanceIP函数
335+
336+ **函数描述**: 生成实例IP地址
337+
338+ **函数签名**:
339+ ```go
340+ func GenerateInstanceIP() (string, error)
341+ ```
342+
343+ **输入参数**: 无
344+
345+ **返回结果**: `string` - 生成的实例IP地址,生成失败时返回错误信息
346+
347+ ### 4.12 GenerateInstance函数
348+
349+ **函数描述**: 创建实例
350+
351+ **函数签名**:
352+ ```go
353+ func GenerateInstance(instanceID string, instanceIP string) error
354+ ```
355+
356+ **输入参数**:
357+ ```go
358+ instanceID string // 必填,实例ID
359+ instanceIP string // 必填,实例IP地址
360+ ```
361+
362+ **返回结果**: `error` - 创建失败时返回错误信息
0 commit comments