Exit AWS ECS and EKS Detector container file reads early if container id found (#612)
This commit is contained in:
		
							parent
							
								
									d14d888c71
								
							
						
					
					
						commit
						ebcdbdb660
					
				|  | @ -49,8 +49,10 @@ class AwsEcsResourceDetector(ResourceDetector): | |||
|                 ) as container_info_file: | ||||
|                     for raw_line in container_info_file.readlines(): | ||||
|                         line = raw_line.strip() | ||||
|                         # Subsequent IDs should be the same, exit if found one | ||||
|                         if len(line) > _CONTAINER_ID_LENGTH: | ||||
|                             container_id = line[-_CONTAINER_ID_LENGTH:] | ||||
|                             break | ||||
|             except FileNotFoundError as exception: | ||||
|                 logger.warning( | ||||
|                     "Failed to get container ID on ECS: %s.", exception | ||||
|  |  | |||
|  | @ -94,8 +94,10 @@ def _get_container_id(): | |||
|     with open("/proc/self/cgroup", encoding="utf8") as container_info_file: | ||||
|         for raw_line in container_info_file.readlines(): | ||||
|             line = raw_line.strip() | ||||
|             # Subsequent IDs should be the same, exit if found one | ||||
|             if len(line) > _CONTAINER_ID_LENGTH: | ||||
|                 container_id = line[-_CONTAINER_ID_LENGTH:] | ||||
|                 break | ||||
|     return container_id | ||||
| 
 | ||||
| 
 | ||||
|  |  | |||
|  | @ -44,18 +44,18 @@ class AwsEcsResourceDetectorTest(unittest.TestCase): | |||
|         new_callable=mock_open, | ||||
|         read_data=f"""14:name=systemd:/docker/{MockEcsResourceAttributes[ResourceAttributes.CONTAINER_ID]} | ||||
| 13:rdma:/ | ||||
| 12:pids:/docker/{MockEcsResourceAttributes[ResourceAttributes.CONTAINER_ID]} | ||||
| 11:hugetlb:/docker/{MockEcsResourceAttributes[ResourceAttributes.CONTAINER_ID]} | ||||
| 10:net_prio:/docker/{MockEcsResourceAttributes[ResourceAttributes.CONTAINER_ID]} | ||||
| 9:perf_event:/docker/{MockEcsResourceAttributes[ResourceAttributes.CONTAINER_ID]} | ||||
| 8:net_cls:/docker/{MockEcsResourceAttributes[ResourceAttributes.CONTAINER_ID]} | ||||
| 7:freezer:/docker/{MockEcsResourceAttributes[ResourceAttributes.CONTAINER_ID]} | ||||
| 6:devices:/docker/{MockEcsResourceAttributes[ResourceAttributes.CONTAINER_ID]} | ||||
| 5:memory:/docker/{MockEcsResourceAttributes[ResourceAttributes.CONTAINER_ID]} | ||||
| 4:blkio:/docker/{MockEcsResourceAttributes[ResourceAttributes.CONTAINER_ID]} | ||||
| 3:cpuacct:/docker/{MockEcsResourceAttributes[ResourceAttributes.CONTAINER_ID]} | ||||
| 2:cpu:/docker/{MockEcsResourceAttributes[ResourceAttributes.CONTAINER_ID]} | ||||
| 1:cpuset:/docker/{MockEcsResourceAttributes[ResourceAttributes.CONTAINER_ID]} | ||||
| 12:pids:/docker/bogusContainerIdThatShouldNotBeOneSetBecauseTheFirstOneWasPicked | ||||
| 11:hugetlb:/docker/bogusContainerIdThatShouldNotBeOneSetBecauseTheFirstOneWasPicked | ||||
| 10:net_prio:/docker/bogusContainerIdThatShouldNotBeOneSetBecauseTheFirstOneWasPicked | ||||
| 9:perf_event:/docker/bogusContainerIdThatShouldNotBeOneSetBecauseTheFirstOneWasPicked | ||||
| 8:net_cls:/docker/bogusContainerIdThatShouldNotBeOneSetBecauseTheFirstOneWasPicked | ||||
| 7:freezer:/docker/ | ||||
| 6:devices:/docker/bogusContainerIdThatShouldNotBeOneSetBecauseTheFirstOneWasPicked | ||||
| 5:memory:/docker/bogusContainerIdThatShouldNotBeOneSetBecauseTheFirstOneWasPicked | ||||
| 4:blkio:/docker/bogusContainerIdThatShouldNotBeOneSetBecauseTheFirstOneWasPicked | ||||
| 3:cpuacct:/docker/bogusContainerIdThatShouldNotBeOneSetBecauseTheFirstOneWasPicked | ||||
| 2:cpu:/docker/bogusContainerIdThatShouldNotBeOneSetBecauseTheFirstOneWasPicked | ||||
| 1:cpuset:/docker/bogusContainerIdThatShouldNotBeOneSetBecauseTheFirstOneWasPicked | ||||
| """, | ||||
|     ) | ||||
|     def test_simple_create(self, mock_open_function, mock_socket_gethostname): | ||||
|  |  | |||
|  | @ -68,18 +68,18 @@ class AwsEksResourceDetectorTest(unittest.TestCase): | |||
|         new_callable=mock_open, | ||||
|         read_data=f"""14:name=systemd:/docker/{MockEksResourceAttributes[ResourceAttributes.CONTAINER_ID]} | ||||
| 13:rdma:/ | ||||
| 12:pids:/docker/{MockEksResourceAttributes[ResourceAttributes.CONTAINER_ID]} | ||||
| 11:hugetlb:/docker/{MockEksResourceAttributes[ResourceAttributes.CONTAINER_ID]} | ||||
| 10:net_prio:/docker/{MockEksResourceAttributes[ResourceAttributes.CONTAINER_ID]} | ||||
| 9:perf_event:/docker/{MockEksResourceAttributes[ResourceAttributes.CONTAINER_ID]} | ||||
| 8:net_cls:/docker/{MockEksResourceAttributes[ResourceAttributes.CONTAINER_ID]} | ||||
| 7:freezer:/docker/{MockEksResourceAttributes[ResourceAttributes.CONTAINER_ID]} | ||||
| 6:devices:/docker/{MockEksResourceAttributes[ResourceAttributes.CONTAINER_ID]} | ||||
| 5:memory:/docker/{MockEksResourceAttributes[ResourceAttributes.CONTAINER_ID]} | ||||
| 4:blkio:/docker/{MockEksResourceAttributes[ResourceAttributes.CONTAINER_ID]} | ||||
| 3:cpuacct:/docker/{MockEksResourceAttributes[ResourceAttributes.CONTAINER_ID]} | ||||
| 2:cpu:/docker/{MockEksResourceAttributes[ResourceAttributes.CONTAINER_ID]} | ||||
| 1:cpuset:/docker/{MockEksResourceAttributes[ResourceAttributes.CONTAINER_ID]} | ||||
| 12:pids:/docker/bogusContainerIdThatShouldNotBeOneSetBecauseTheFirstOneWasPicked | ||||
| 11:hugetlb:/docker/bogusContainerIdThatShouldNotBeOneSetBecauseTheFirstOneWasPicked | ||||
| 10:net_prio:/docker/bogusContainerIdThatShouldNotBeOneSetBecauseTheFirstOneWasPicked | ||||
| 9:perf_event:/docker/bogusContainerIdThatShouldNotBeOneSetBecauseTheFirstOneWasPicked | ||||
| 8:net_cls:/docker/bogusContainerIdThatShouldNotBeOneSetBecauseTheFirstOneWasPicked | ||||
| 7:freezer:/docker/ | ||||
| 6:devices:/docker/bogusContainerIdThatShouldNotBeOneSetBecauseTheFirstOneWasPicked | ||||
| 5:memory:/docker/bogusContainerIdThatShouldNotBeOneSetBecauseTheFirstOneWasPicked | ||||
| 4:blkio:/docker/bogusContainerIdThatShouldNotBeOneSetBecauseTheFirstOneWasPicked | ||||
| 3:cpuacct:/docker/bogusContainerIdThatShouldNotBeOneSetBecauseTheFirstOneWasPicked | ||||
| 2:cpu:/docker/bogusContainerIdThatShouldNotBeOneSetBecauseTheFirstOneWasPicked | ||||
| 1:cpuset:/docker/bogusContainerIdThatShouldNotBeOneSetBecauseTheFirstOneWasPicked | ||||
| """, | ||||
|     ) | ||||
|     def test_simple_create( | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue