(ctx context.Context, ctr containerType.Summary, service *types.ServiceConfig, timeout *time.Duration, volumes bool)
| 344 | } |
| 345 | |
| 346 | func (s *composeService) stopAndRemoveContainer(ctx context.Context, ctr containerType.Summary, service *types.ServiceConfig, timeout *time.Duration, volumes bool) error { |
| 347 | eventName := getContainerProgressName(ctr) |
| 348 | err := s.stopContainer(ctx, service, ctr, timeout, nil) |
| 349 | if errdefs.IsNotFound(err) { |
| 350 | s.events.On(removedEvent(eventName)) |
| 351 | return nil |
| 352 | } |
| 353 | if err != nil { |
| 354 | return err |
| 355 | } |
| 356 | s.events.On(removingEvent(eventName)) |
| 357 | _, err = s.apiClient().ContainerRemove(ctx, ctr.ID, client.ContainerRemoveOptions{ |
| 358 | Force: true, |
| 359 | RemoveVolumes: volumes, |
| 360 | }) |
| 361 | if err != nil && !errdefs.IsNotFound(err) && !errdefs.IsConflict(err) { |
| 362 | s.events.On(errorEvent(eventName, "Error while Removing")) |
| 363 | return err |
| 364 | } |
| 365 | s.events.On(removedEvent(eventName)) |
| 366 | return nil |
| 367 | } |
| 368 | |
| 369 | func (s *composeService) getProjectWithResources(ctx context.Context, containers Containers, projectName string) (*types.Project, error) { |
| 370 | containers = containers.filter(isNotOneOff) |
no test coverage detected