@@ -108,29 +108,31 @@ def __init__(
108108 offline_mode_enabled: bool = False,
109109 shard_id: Optional[str] = None,
110110 ):
111- self._data_manager_runner = DataManagerRunner(
112- data_manager_url=sidecar_config.DATA_MANAGER_SERVICE_URL,
113- data_manager_binary_path=sidecar_config.DATA_MANAGER_BINARY_PATH,
114- data_manager_token=opal_client_config.CLIENT_TOKEN,
115- data_manager_remote_backup_url=sidecar_config.DATA_MANAGER_REMOTE_BACKUP_URL,
116- engine_token=sidecar_config.API_KEY,
117- piped_logs_format=EngineLogFormat.FULL,
118- )
119- policy_store = policy_store or DataManagerPolicyStoreClient(
120- data_manager_client=lambda: self._data_manager_runner.client,
121- opa_server_url=opal_client_config.POLICY_STORE_URL,
122- opa_auth_token=opal_client_config.POLICY_STORE_AUTH_TOKEN,
123- auth_type=opal_client_config.POLICY_STORE_AUTH_TYPE,
124- oauth_client_id=opal_client_config.POLICY_STORE_AUTH_OAUTH_CLIENT_ID,
125- oauth_client_secret=opal_client_config.POLICY_STORE_AUTH_OAUTH_CLIENT_SECRET,
126- oauth_server=opal_client_config.POLICY_STORE_AUTH_OAUTH_SERVER,
127- data_updater_enabled=opal_client_config.DATA_UPDATER_ENABLED,
128- policy_updater_enabled=opal_client_config.POLICY_UPDATER_ENABLED,
129- cache_policy_data=opal_client_config.OFFLINE_MODE_ENABLED,
130- tls_client_cert=opal_client_config.POLICY_STORE_TLS_CLIENT_CERT,
131- tls_client_key=opal_client_config.POLICY_STORE_TLS_CLIENT_KEY,
132- tls_ca=opal_client_config.POLICY_STORE_TLS_CA,
133- )
111+ self._enable_external_data_manager = sidecar_config.ENABLE_EXTERNAL_DATA_MANAGER
112+ if self._enable_external_data_manager:
113+ self._data_manager_runner = DataManagerRunner(
114+ data_manager_url=sidecar_config.DATA_MANAGER_SERVICE_URL,
115+ data_manager_binary_path=sidecar_config.DATA_MANAGER_BINARY_PATH,
116+ data_manager_token=opal_client_config.CLIENT_TOKEN,
117+ data_manager_remote_backup_url=sidecar_config.DATA_MANAGER_REMOTE_BACKUP_URL,
118+ engine_token=sidecar_config.API_KEY,
119+ piped_logs_format=EngineLogFormat.FULL,
120+ )
121+ policy_store = policy_store or DataManagerPolicyStoreClient(
122+ data_manager_client=lambda: self._data_manager_runner.client,
123+ opa_server_url=opal_client_config.POLICY_STORE_URL,
124+ opa_auth_token=opal_client_config.POLICY_STORE_AUTH_TOKEN,
125+ auth_type=opal_client_config.POLICY_STORE_AUTH_TYPE,
126+ oauth_client_id=opal_client_config.POLICY_STORE_AUTH_OAUTH_CLIENT_ID,
127+ oauth_client_secret=opal_client_config.POLICY_STORE_AUTH_OAUTH_CLIENT_SECRET,
128+ oauth_server=opal_client_config.POLICY_STORE_AUTH_OAUTH_SERVER,
129+ data_updater_enabled=opal_client_config.DATA_UPDATER_ENABLED,
130+ policy_updater_enabled=opal_client_config.POLICY_UPDATER_ENABLED,
131+ cache_policy_data=opal_client_config.OFFLINE_MODE_ENABLED,
132+ tls_client_cert=opal_client_config.POLICY_STORE_TLS_CLIENT_CERT,
133+ tls_client_key=opal_client_config.POLICY_STORE_TLS_CLIENT_KEY,
134+ tls_ca=opal_client_config.POLICY_STORE_TLS_CA,
135+ )
134136 super().__init__(
135137 policy_store_type=policy_store_type,
136138 policy_store=policy_store,
@@ -168,29 +170,40 @@ async def stop_data_manager_runner(self):
168170 await self._data_manager_runner.stop()
169171
170172 async def check_healthy(self) -> bool:
171- opal_health = await super().check_healthy()
172- if not opal_health:
173+ try:
174+ opal_health = await super().check_healthy()
175+ if not opal_health:
176+ return False
177+ if self._enable_external_data_manager:
178+ return await self._data_manager_runner.is_healthy()
179+ except Exception as e:
180+ logger.exception("Error checking health: {e}", e=e)
173181 return False
174- return await self._data_manager_runner.is_healthy()
182+ else:
183+ return True
175184
176185 async def check_ready(self) -> bool:
177- opal_ready = await super().check_ready()
178- if not opal_ready:
186+ try:
187+ opal_ready = await super().check_ready()
188+ if not opal_ready:
189+ return False
190+ if self._enable_external_data_manager:
191+ return await self._data_manager_runner.is_ready()
192+ except Exception as e:
193+ logger.exception("Error checking ready: {e}", e=e)
179194 return False
180- return await self._data_manager_runner.is_ready()
195+ else:
196+ return True
181197
182- async def start_client_background_tasks(
183- self,
184- *,
185- data_manager_runner_enabled: bool = sidecar_config.ENABLE_EXTERNAL_DATA_MANAGER
186- ):
198+ async def start_client_background_tasks(self):
187199 tasks = [super().start_client_background_tasks()]
188- if data_manager_runner_enabled :
200+ if self._enable_external_data_manager :
189201 logger.info("Starting Data Manager runner")
190202 tasks.append(self.start_data_manager_runner())
191203 await asyncio.gather(*tasks)
192204
193205 async def stop_client_background_tasks(self):
194206 """stops all background tasks (called on shutdown event)"""
195207 await super().stop_client_background_tasks()
196- await self.stop_data_manager_runner()
208+ if self._enable_external_data_manager:
209+ await self.stop_data_manager_runner()
0 commit comments