def test_remove_extension_cgroups_should_log_a_warning_when_the_cgroup_contains_active_tasks(self): api = FileSystemCgroupsApi() api.create_extension_cgroups_root() api.create_extension_cgroups("Microsoft.Compute.TestExtension-1.2.3") with patch("azurelinuxagent.common.cgroupapi.logger.warn") as mock_logger_warn: with patch("azurelinuxagent.common.cgroupapi.os.rmdir", side_effect=OSError(16, "Device or resource busy")): api.remove_extension_cgroups("Microsoft.Compute.TestExtension-1.2.3") args, kwargs = mock_logger_warn.call_args message = args[0] self.assertIn("still has active tasks", message)
def test_remove_extension_cgroups_should_remove_all_cgroups(self): api = FileSystemCgroupsApi() api.create_extension_cgroups_root() extension_cgroups = api.create_extension_cgroups("Microsoft.Compute.TestExtension-1.2.3") api.remove_extension_cgroups("Microsoft.Compute.TestExtension-1.2.3") for cgroup in extension_cgroups: self.assertFalse(os.path.exists(cgroup.path))
def test_get_extension_cgroups_should_return_all_cgroups(self): api = FileSystemCgroupsApi() api.create_extension_cgroups_root() created = api.create_extension_cgroups("Microsoft.Compute.TestExtension-1.2.3") retrieved = api.get_extension_cgroups("Microsoft.Compute.TestExtension-1.2.3") self.assertEqual(len(retrieved), len(created)) for cgroup in created: self.assertTrue(any(retrieved_cgroup.path == cgroup.path for retrieved_cgroup in retrieved))
def test_create_extension_cgroups_should_create_cgroups_on_all_controllers(self): api = FileSystemCgroupsApi() api.create_extension_cgroups_root() extension_cgroups = api.create_extension_cgroups("Microsoft.Compute.TestExtension-1.2.3") def assert_cgroup_created(controller): cgroup_path = os.path.join(self.cgroups_file_system_root, controller, "walinuxagent.extensions", "Microsoft.Compute.TestExtension_1.2.3") self.assertTrue(any(cgroups.path == cgroup_path for cgroups in extension_cgroups)) self.assertTrue(os.path.exists(cgroup_path)) assert_cgroup_created("cpu") assert_cgroup_created("memory")