|
1 | 1 | package swarm |
2 | 2 |
|
3 | 3 | import ( |
| 4 | + "fmt" |
| 5 | + "io/ioutil" |
4 | 6 | "strconv" |
5 | 7 | "strings" |
6 | 8 | "time" |
@@ -37,11 +39,36 @@ func (h *HatcherySwarm) killAndRemove(dockerClient *dockerClient, ID string) err |
37 | 39 | log.Error("hatchery> swarm> killAndRemove> unable to get model from registering container %s", container.Name) |
38 | 40 | } else { |
39 | 41 | if err := hatchery.CheckWorkerModelRegister(h, modelID); err != nil { |
| 42 | + ctx, cancel := context.WithTimeout(context.Background(), time.Minute*2) |
| 43 | + defer cancel() |
| 44 | + logsOpts := types.ContainerLogsOptions{ |
| 45 | + Details: true, |
| 46 | + ShowStderr: true, |
| 47 | + ShowStdout: true, |
| 48 | + Timestamps: true, |
| 49 | + Since: "10s", |
| 50 | + } |
40 | 51 | var spawnErr = sdk.SpawnErrorForm{ |
41 | 52 | Error: err.Error(), |
42 | 53 | } |
| 54 | + |
| 55 | + logsReader, errL := dockerClient.ContainerLogs(ctx, container.ID, logsOpts) |
| 56 | + if errL != nil { |
| 57 | + log.Error("hatchery> swarm> killAndRemove> cannot get logs from docker for containers service %s %v : %v", container.ID, container.Name, errL) |
| 58 | + spawnErr.Logs = []byte(fmt.Sprintf("unable to get container logs: %v", errL)) |
| 59 | + |
| 60 | + } else if logsReader != nil { |
| 61 | + defer logsReader.Close() |
| 62 | + logs, errR := ioutil.ReadAll(logsReader) |
| 63 | + if errR != nil { |
| 64 | + log.Error("hatchery> swarm> killAndRemove> cannot read logs for containers service %s %v : %v", container.ID, container.Name, errR) |
| 65 | + } else if logs != nil { |
| 66 | + spawnErr.Logs = logs |
| 67 | + } |
| 68 | + } |
| 69 | + |
43 | 70 | if err := h.CDSClient().WorkerModelSpawnError(modelID, spawnErr); err != nil { |
44 | | - log.Error("CheckWorkerModelRegister> error on call client.WorkerModelSpawnError on worker model %d for register: %s", modelID, err) |
| 71 | + log.Error("hatchery> swarm> killAndRemove> error on call client.WorkerModelSpawnError on worker model %d for register: %s", modelID, err) |
45 | 72 | } |
46 | 73 | } |
47 | 74 | } |
|
0 commit comments