| skipped 166 lines |
167 | 167 | | LastProbeTime: time.Now().Unix(), |
168 | 168 | | Status: constant.TaskLogStatusRunning, |
169 | 169 | | } |
| 170 | + | |
170 | 171 | | if err := c.taskLogService.StartDetail(&task); err != nil { |
171 | 172 | | c.errHandlerComponent(component, constant.StatusDisabled, err) |
172 | 173 | | return fmt.Errorf("save tasklog failed, err: %v", err) |
173 | 174 | | } |
174 | 175 | | |
175 | | - | go c.docreate(&cluster, task, component, creation.Vars) |
| 176 | + | writer, err := ansible.CreateAnsibleLogWriterWithId(cluster.Name, fmt.Sprintf("%s (%s)", component.ID, constant.StatusDisabled)) |
| 177 | + | if err != nil { |
| 178 | + | _ = c.taskLogService.EndDetail(&task, component.Name, "component", constant.TaskLogStatusFailed, err.Error()) |
| 179 | + | return fmt.Errorf("create ansible log writer failed, err: %v", err) |
| 180 | + | } |
| 181 | + | |
| 182 | + | if err := db.DB.Model(&model.ClusterSpecComponent{}).Where("id = ?", component.ID). |
| 183 | + | Updates(map[string]interface{}{"status": constant.StatusInitializing, "message": ""}).Error; err != nil { |
| 184 | + | _ = c.taskLogService.EndDetail(&task, component.Name, "component", constant.TaskLogStatusFailed, err.Error()) |
| 185 | + | return err |
| 186 | + | } |
| 187 | + | |
| 188 | + | go c.docreate(&cluster, task, component, creation.Vars, writer) |
176 | 189 | | return nil |
177 | 190 | | } |
178 | 191 | | |
179 | | - | func (c componentService) docreate(cluster *model.Cluster, task model.TaskLogDetail, component model.ClusterSpecComponent, vars map[string]interface{}) { |
180 | | - | admCluster, writer, err := c.loadAdmCluster(*cluster, component, vars, constant.StatusEnabled) |
| 192 | + | func (c componentService) docreate(cluster *model.Cluster, task model.TaskLogDetail, component model.ClusterSpecComponent, vars map[string]interface{}, writer io.Writer) { |
| 193 | + | admCluster, err := c.loadAdmCluster(*cluster, component, vars, constant.StatusEnabled) |
181 | 194 | | if err != nil { |
182 | 195 | | _ = c.taskLogService.EndDetail(&task, component.Name, "component", constant.TaskLogStatusFailed, err.Error()) |
183 | 196 | | c.errHandlerComponent(component, constant.StatusDisabled, err) |
| skipped 46 lines |
230 | 243 | | return fmt.Errorf("save tasklog failed, err: %v", err) |
231 | 244 | | } |
232 | 245 | | |
| 246 | + | writer, err := ansible.CreateAnsibleLogWriterWithId(cluster.Name, fmt.Sprintf("%s (%s)", component.ID, constant.StatusDisabled)) |
| 247 | + | if err != nil { |
| 248 | + | _ = c.taskLogService.EndDetail(&task, component.Name, "component", constant.TaskLogStatusFailed, err.Error()) |
| 249 | + | return fmt.Errorf("create ansible log writer failed, err: %v", err) |
| 250 | + | } |
| 251 | + | |
233 | 252 | | if err := db.DB.Model(&model.ClusterSpecComponent{}).Where("id = ?", component.ID). |
234 | 253 | | Updates(map[string]interface{}{"status": constant.StatusTerminating, "message": ""}).Error; err != nil { |
| 254 | + | _ = c.taskLogService.EndDetail(&task, component.Name, "component", constant.TaskLogStatusFailed, err.Error()) |
235 | 255 | | return err |
236 | 256 | | } |
237 | 257 | | |
238 | | - | go c.dodelete(&cluster, task, component) |
| 258 | + | go c.dodelete(&cluster, task, component, writer) |
239 | 259 | | |
240 | 260 | | return nil |
241 | 261 | | } |
242 | 262 | | |
243 | | - | func (c componentService) dodelete(cluster *model.Cluster, task model.TaskLogDetail, component model.ClusterSpecComponent) { |
244 | | - | admCluster, writer, err := c.loadAdmCluster(*cluster, component, map[string]interface{}{}, constant.StatusDisabled) |
| 263 | + | func (c componentService) dodelete(cluster *model.Cluster, task model.TaskLogDetail, component model.ClusterSpecComponent, writer io.Writer) { |
| 264 | + | admCluster, err := c.loadAdmCluster(*cluster, component, map[string]interface{}{}, constant.StatusDisabled) |
245 | 265 | | if err != nil { |
246 | 266 | | _ = c.taskLogService.EndDetail(&task, component.Name, "component", constant.TaskLogStatusFailed, err.Error()) |
247 | 267 | | c.errHandlerComponent(component, constant.StatusFailed, err) |
| skipped 159 lines |
407 | 427 | | } |
408 | 428 | | } |
409 | 429 | | |
410 | | - | func (c componentService) loadAdmCluster(cluster model.Cluster, component model.ClusterSpecComponent, vars map[string]interface{}, operation string) (*adm.AnsibleHelper, io.Writer, error) { |
| 430 | + | func (c componentService) loadAdmCluster(cluster model.Cluster, component model.ClusterSpecComponent, vars map[string]interface{}, operation string) (*adm.AnsibleHelper, error) { |
411 | 431 | | admCluster := adm.NewAnsibleHelper(cluster) |
412 | 432 | | |
413 | 433 | | if len(vars) != 0 { |
| skipped 2 lines |
416 | 436 | | admCluster.Kobe.SetVar(k, fmt.Sprintf("%v", v)) |
417 | 437 | | } |
418 | 438 | | } |
419 | | - | } |
420 | | - | |
421 | | - | writer, err := ansible.CreateAnsibleLogWriterWithId(cluster.Name, fmt.Sprintf("%s (%s)", component.ID, operation)) |
422 | | - | if err != nil { |
423 | | - | return admCluster, writer, err |
424 | 439 | | } |
425 | 440 | | |
426 | 441 | | switch component.Name { |
| skipped 14 lines |
441 | 456 | | case "istio": |
442 | 457 | | admCluster.Kobe.SetVar(facts.EnableIstioFactName, operation) |
443 | 458 | | } |
444 | | - | return admCluster, writer, err |
| 459 | + | return admCluster, nil |
445 | 460 | | } |
446 | 461 | | |
447 | 462 | | func (c componentService) loadPlayBookName(name string) string { |
| skipped 17 lines |