mirror of
				https://github.com/docker/compose.git
				synced 2025-10-31 19:24:21 +01: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) | ||||
| 
 | ||||
|             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, ignored_keys = translate_deploy_keys_to_container_config( | ||||
|                 service_dict | ||||
| @ -154,7 +154,6 @@ class Project: | ||||
|                     ipc_mode=ipc_mode, | ||||
|                     platform=service_dict.pop('platform', None), | ||||
|                     default_platform=default_platform, | ||||
|                     device_requests=device_requests, | ||||
|                     extra_labels=extra_labels, | ||||
|                     **service_dict) | ||||
|             ) | ||||
|  | ||||
| @ -181,7 +181,6 @@ class Service: | ||||
|             pid_mode=None, | ||||
|             default_platform=None, | ||||
|             extra_labels=None, | ||||
|             device_requests=None, | ||||
|             **options | ||||
|     ): | ||||
|         self.name = name | ||||
| @ -197,7 +196,6 @@ class Service: | ||||
|         self.secrets = secrets or [] | ||||
|         self.scale_num = scale | ||||
|         self.default_platform = default_platform | ||||
|         self.device_requests = device_requests | ||||
|         self.options = options | ||||
|         self.extra_labels = extra_labels or [] | ||||
| 
 | ||||
| @ -709,7 +707,7 @@ class Service: | ||||
|             except NoSuchImageError: | ||||
|                 return None | ||||
| 
 | ||||
|         c = { | ||||
|         return { | ||||
|             'options': self.options, | ||||
|             'image_id': image_id(), | ||||
|             '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): | ||||
|         net_name = self.network_mode.service_name | ||||
|         pid_namespace = self.pid_mode.service_name | ||||
| @ -1023,7 +1017,7 @@ class Service: | ||||
|             privileged=options.get('privileged', False), | ||||
|             network_mode=self.network_mode.mode, | ||||
|             devices=options.get('devices'), | ||||
|             device_requests=self.device_requests, | ||||
|             device_requests=options.get('device_requests'), | ||||
|             dns=options.get('dns'), | ||||
|             dns_opt=options.get('dns_opt'), | ||||
|             dns_search=options.get('dns_search'), | ||||
|  | ||||
| @ -732,29 +732,6 @@ class ServiceTest(unittest.TestCase): | ||||
|         } | ||||
|         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): | ||||
|         self.mock_client.inspect_image.return_value = {'Id': 'abcd'} | ||||
|         service = Service( | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user