MCPcopy Index your code
hub / github.com/docker/docker-py / ServiceMode

Class ServiceMode

docker/types/services.py:595–660  ·  view source on GitHub ↗

Indicate whether a service or a job should be deployed as a replicated or global service, and associated parameters Args: mode (string): Can be either ``replicated``, ``global``, ``replicated-job`` or ``global-job`` replicas (int): Numb

Source from the content-addressed store, hash-verified

593
594
595class ServiceMode(dict):
596 """
597 Indicate whether a service or a job should be deployed as a replicated
598 or global service, and associated parameters
599
600 Args:
601 mode (string): Can be either ``replicated``, ``global``,
602 ``replicated-job`` or ``global-job``
603 replicas (int): Number of replicas. For replicated services only.
604 concurrency (int): Number of concurrent jobs. For replicated job
605 services only.
606 """
607
608 def __init__(self, mode, replicas=None, concurrency=None):
609 replicated_modes = ('replicated', 'replicated-job')
610 supported_modes = replicated_modes + ('global', 'global-job')
611
612 if mode not in supported_modes:
613 raise errors.InvalidArgument(
614 'mode must be either "replicated", "global", "replicated-job"'
615 ' or "global-job"'
616 )
617
618 if mode not in replicated_modes:
619 if replicas is not None:
620 raise errors.InvalidArgument(
621 'replicas can only be used for "replicated" or'
622 ' "replicated-job" mode'
623 )
624
625 if concurrency is not None:
626 raise errors.InvalidArgument(
627 'concurrency can only be used for "replicated-job" mode'
628 )
629
630 service_mode = self._convert_mode(mode)
631 self.mode = service_mode
632 self[service_mode] = {}
633
634 if replicas is not None:
635 if mode == 'replicated':
636 self[service_mode]['Replicas'] = replicas
637
638 if mode == 'replicated-job':
639 self[service_mode]['MaxConcurrent'] = concurrency or 1
640 self[service_mode]['TotalCompletions'] = replicas
641
642 @staticmethod
643 def _convert_mode(original_mode):
644 if original_mode == 'global-job':
645 return 'GlobalJob'
646
647 if original_mode == 'replicated-job':
648 return 'ReplicatedJob'
649
650 return original_mode
651
652 @property

Callers 13

test_global_simpleMethod · 0.90
test_invalid_modeMethod · 0.90
scaleMethod · 0.90
create_serviceMethod · 0.85

Calls

no outgoing calls