mirror of
				https://github.com/docker/compose.git
				synced 2025-10-30 18:53:51 +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) |                 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