Skip to content
Projeler
Gruplar
Parçacıklar
Yardım
Yükleniyor...
Oturum aç / Kaydol
Gezinmeyi değiştir
D
docker-py
Proje
Proje
Ayrıntılar
Etkinlik
Cycle Analytics
Depo (repository)
Depo (repository)
Dosyalar
Kayıtlar (commit)
Dallar (branch)
Etiketler
Katkıda bulunanlar
Grafik
Karşılaştır
Grafikler
Konular (issue)
0
Konular (issue)
0
Liste
Pano
Etiketler
Kilometre Taşları
Birleştirme (merge) Talepleri
0
Birleştirme (merge) Talepleri
0
CI / CD
CI / CD
İş akışları (pipeline)
İşler
Zamanlamalar
Grafikler
Paketler
Paketler
Wiki
Wiki
Parçacıklar
Parçacıklar
Üyeler
Üyeler
Collapse sidebar
Close sidebar
Etkinlik
Grafik
Grafikler
Yeni bir konu (issue) oluştur
İşler
Kayıtlar (commit)
Konu (issue) Panoları
Kenar çubuğunu aç
Batuhan Osman TASKAYA
docker-py
Commits
e15db4cb
Kaydet (Commit)
e15db4cb
authored
Ara 08, 2018
tarafından
Joffrey F
Dosyalara gözat
Seçenekler
Dosyalara Gözat
İndir
Eposta Yamaları
Sade Fark
Improve handling of placement preferences; improve docs
Signed-off-by:
Joffrey F
<
joffrey@docker.com
>
üst
92236550
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
44 additions
and
13 deletions
+44
-13
services.py
docker/models/services.py
+6
-4
__init__.py
docker/types/__init__.py
+3
-2
services.py
docker/types/services.py
+34
-7
api.rst
docs/api.rst
+1
-0
No files found.
docker/models/services.py
Dosyayı görüntüle @
e15db4cb
...
...
@@ -153,10 +153,12 @@ class ServiceCollection(Collection):
image (str): The image name to use for the containers.
command (list of str or str): Command to run.
args (list of str): Arguments to the command.
constraints (list of str): Placement constraints.
preferences (list of str): Placement preferences.
platforms (list of tuple): A list of platforms constraints
expressed as ``(arch, os)`` tuples
constraints (list of str): :py:class:`~docker.types.Placement`
constraints.
preferences (list of tuple): :py:class:`~docker.types.Placement`
preferences.
platforms (list of tuple): A list of platform constraints
expressed as ``(arch, os)`` tuples.
container_labels (dict): Labels to apply to the container.
endpoint_spec (EndpointSpec): Properties that can be configured to
access and load balance a service. Default: ``None``.
...
...
docker/types/__init__.py
Dosyayı görüntüle @
e15db4cb
...
...
@@ -5,7 +5,8 @@ from .healthcheck import Healthcheck
from
.networks
import
EndpointConfig
,
IPAMConfig
,
IPAMPool
,
NetworkingConfig
from
.services
import
(
ConfigReference
,
ContainerSpec
,
DNSConfig
,
DriverConfig
,
EndpointSpec
,
Mount
,
Placement
,
Privileges
,
Resources
,
RestartPolicy
,
RollbackConfig
,
SecretReference
,
ServiceMode
,
TaskTemplate
,
UpdateConfig
Mount
,
Placement
,
PlacementPreference
,
Privileges
,
Resources
,
RestartPolicy
,
RollbackConfig
,
SecretReference
,
ServiceMode
,
TaskTemplate
,
UpdateConfig
)
from
.swarm
import
SwarmSpec
,
SwarmExternalCA
docker/types/services.py
Dosyayı görüntüle @
e15db4cb
...
...
@@ -648,18 +648,24 @@ class Placement(dict):
Placement constraints to be used as part of a :py:class:`TaskTemplate`
Args:
constraints (:py:class:`list`): A list of constraints
preferences (:py:class:`list`): Preferences provide a way to make
the scheduler aware of factors such as topology. They are
provided in order from highest to lowest precedence.
platforms (:py:class:`list`): A list of platforms expressed as
``(arch, os)`` tuples
constraints (:py:class:`list` of str): A list of constraints
preferences (:py:class:`list` of tuple): Preferences provide a way
to make the scheduler aware of factors such as topology. They
are provided in order from highest to lowest precedence and
are expressed as ``(strategy, descriptor)`` tuples. See
:py:class:`PlacementPreference` for details.
platforms (:py:class:`list` of tuple): A list of platforms
expressed as ``(arch, os)`` tuples
"""
def
__init__
(
self
,
constraints
=
None
,
preferences
=
None
,
platforms
=
None
):
if
constraints
is
not
None
:
self
[
'Constraints'
]
=
constraints
if
preferences
is
not
None
:
self
[
'Preferences'
]
=
preferences
self
[
'Preferences'
]
=
[]
for
pref
in
preferences
:
if
isinstance
(
pref
,
tuple
):
pref
=
PlacementPreference
(
*
pref
)
self
[
'Preferences'
]
.
append
(
pref
)
if
platforms
:
self
[
'Platforms'
]
=
[]
for
plat
in
platforms
:
...
...
@@ -668,6 +674,27 @@ class Placement(dict):
})
class
PlacementPreference
(
dict
):
"""
Placement preference to be used as an element in the list of
preferences for :py:class:`Placement` objects.
Args:
strategy (string): The placement strategy to implement. Currently,
the only supported strategy is ``spread``.
descriptor (string): A label descriptor. For the spread strategy,
the scheduler will try to spread tasks evenly over groups of
nodes identified by this label.
"""
def
__init__
(
self
,
strategy
,
descriptor
):
if
strategy
!=
'spread'
:
raise
errors
.
InvalidArgument
(
'PlacementPreference strategy value is invalid ({}):'
' must be "spread".'
.
format
(
strategy
)
)
self
[
'SpreadOver'
]
=
descriptor
class
DNSConfig
(
dict
):
"""
Specification for DNS related configurations in resolver configuration
...
...
docs/api.rst
Dosyayı görüntüle @
e15db4cb
...
...
@@ -143,6 +143,7 @@ Configuration types
.. autoclass:: LogConfig
.. autoclass:: Mount
.. autoclass:: Placement
.. autoclass:: PlacementPreference
.. autoclass:: Privileges
.. autoclass:: Resources
.. autoclass:: RestartPolicy
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment