(ctx context.Context)
| 478 | }{} |
| 479 | |
| 480 | func (s *composeService) isSwarmEnabled(ctx context.Context) (bool, error) { |
| 481 | swarmEnabled.once.Do(func() { |
| 482 | res, err := s.apiClient().Info(ctx, client.InfoOptions{}) |
| 483 | if err != nil { |
| 484 | swarmEnabled.err = err |
| 485 | } |
| 486 | switch res.Info.Swarm.LocalNodeState { |
| 487 | case swarm.LocalNodeStateInactive, swarm.LocalNodeStateLocked: |
| 488 | swarmEnabled.val = false |
| 489 | default: |
| 490 | swarmEnabled.val = true |
| 491 | } |
| 492 | }) |
| 493 | return swarmEnabled.val, swarmEnabled.err |
| 494 | } |
| 495 | |
| 496 | // runtimeVersionCache caches a version string after a successful lookup. |
| 497 | // Errors (including context cancellation) are not cached so that |
no test coverage detected