mirror of
https://github.com/docker/compose.git
synced 2025-07-23 13:45:00 +02:00
Move device requests to service_dict to avoid adding another field to config hash
Signed-off-by: aiordache <anca.iordache@docker.com>
This commit is contained in:
parent
8f2dbd9b12
commit
21c07bd76c
@ -128,7 +128,7 @@ class Project:
|
|||||||
config_data.secrets)
|
config_data.secrets)
|
||||||
|
|
||||||
service_dict['scale'] = project.get_service_scale(service_dict)
|
service_dict['scale'] = project.get_service_scale(service_dict)
|
||||||
device_requests = project.get_device_requests(service_dict)
|
service_dict['device_requests'] = project.get_device_requests(service_dict)
|
||||||
service_dict = translate_credential_spec_to_security_opt(service_dict)
|
service_dict = translate_credential_spec_to_security_opt(service_dict)
|
||||||
service_dict, ignored_keys = translate_deploy_keys_to_container_config(
|
service_dict, ignored_keys = translate_deploy_keys_to_container_config(
|
||||||
service_dict
|
service_dict
|
||||||
@ -154,7 +154,6 @@ class Project:
|
|||||||
ipc_mode=ipc_mode,
|
ipc_mode=ipc_mode,
|
||||||
platform=service_dict.pop('platform', None),
|
platform=service_dict.pop('platform', None),
|
||||||
default_platform=default_platform,
|
default_platform=default_platform,
|
||||||
device_requests=device_requests,
|
|
||||||
extra_labels=extra_labels,
|
extra_labels=extra_labels,
|
||||||
**service_dict)
|
**service_dict)
|
||||||
)
|
)
|
||||||
|
@ -181,7 +181,6 @@ class Service:
|
|||||||
pid_mode=None,
|
pid_mode=None,
|
||||||
default_platform=None,
|
default_platform=None,
|
||||||
extra_labels=None,
|
extra_labels=None,
|
||||||
device_requests=None,
|
|
||||||
**options
|
**options
|
||||||
):
|
):
|
||||||
self.name = name
|
self.name = name
|
||||||
@ -197,7 +196,6 @@ class Service:
|
|||||||
self.secrets = secrets or []
|
self.secrets = secrets or []
|
||||||
self.scale_num = scale
|
self.scale_num = scale
|
||||||
self.default_platform = default_platform
|
self.default_platform = default_platform
|
||||||
self.device_requests = device_requests
|
|
||||||
self.options = options
|
self.options = options
|
||||||
self.extra_labels = extra_labels or []
|
self.extra_labels = extra_labels or []
|
||||||
|
|
||||||
@ -709,7 +707,7 @@ class Service:
|
|||||||
except NoSuchImageError:
|
except NoSuchImageError:
|
||||||
return None
|
return None
|
||||||
|
|
||||||
c = {
|
return {
|
||||||
'options': self.options,
|
'options': self.options,
|
||||||
'image_id': image_id(),
|
'image_id': image_id(),
|
||||||
'links': self.get_link_names(),
|
'links': self.get_link_names(),
|
||||||
@ -722,10 +720,6 @@ class Service:
|
|||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
||||||
if self.device_requests:
|
|
||||||
c['devices'] = self.device_requests
|
|
||||||
return c
|
|
||||||
|
|
||||||
def get_dependency_names(self):
|
def get_dependency_names(self):
|
||||||
net_name = self.network_mode.service_name
|
net_name = self.network_mode.service_name
|
||||||
pid_namespace = self.pid_mode.service_name
|
pid_namespace = self.pid_mode.service_name
|
||||||
@ -1023,7 +1017,7 @@ class Service:
|
|||||||
privileged=options.get('privileged', False),
|
privileged=options.get('privileged', False),
|
||||||
network_mode=self.network_mode.mode,
|
network_mode=self.network_mode.mode,
|
||||||
devices=options.get('devices'),
|
devices=options.get('devices'),
|
||||||
device_requests=self.device_requests,
|
device_requests=options.get('device_requests'),
|
||||||
dns=options.get('dns'),
|
dns=options.get('dns'),
|
||||||
dns_opt=options.get('dns_opt'),
|
dns_opt=options.get('dns_opt'),
|
||||||
dns_search=options.get('dns_search'),
|
dns_search=options.get('dns_search'),
|
||||||
|
@ -732,29 +732,6 @@ class ServiceTest(unittest.TestCase):
|
|||||||
}
|
}
|
||||||
assert config_dict == expected
|
assert config_dict == expected
|
||||||
|
|
||||||
def test_config_dict_with_device_requests(self):
|
|
||||||
self.mock_client.inspect_image.return_value = {'Id': 'abcd'}
|
|
||||||
service = Service(
|
|
||||||
'foo',
|
|
||||||
image='example.com/foo',
|
|
||||||
client=self.mock_client,
|
|
||||||
network_mode=ServiceNetworkMode(Service('other')),
|
|
||||||
networks={'default': None},
|
|
||||||
device_requests=[{'driver': 'nvidia', 'device_ids': ['0'], 'capabilities': ['gpu']}])
|
|
||||||
|
|
||||||
config_dict = service.config_dict()
|
|
||||||
expected = {
|
|
||||||
'image_id': 'abcd',
|
|
||||||
'options': {'image': 'example.com/foo'},
|
|
||||||
'links': [],
|
|
||||||
'net': 'other',
|
|
||||||
'secrets': [],
|
|
||||||
'networks': {'default': None},
|
|
||||||
'volumes_from': [],
|
|
||||||
'devices': [{'driver': 'nvidia', 'device_ids': ['0'], 'capabilities': ['gpu']}],
|
|
||||||
}
|
|
||||||
assert config_dict == expected
|
|
||||||
|
|
||||||
def test_config_hash_matches_label(self):
|
def test_config_hash_matches_label(self):
|
||||||
self.mock_client.inspect_image.return_value = {'Id': 'abcd'}
|
self.mock_client.inspect_image.return_value = {'Id': 'abcd'}
|
||||||
service = Service(
|
service = Service(
|
||||||
|
Loading…
x
Reference in New Issue
Block a user