Skip to content

Commit 4658451

Browse files
committed
fix client not checking if data manager is enabled in relevant places
1 parent 013a010 commit 4658451

File tree

1 file changed

+49
-36
lines changed

1 file changed

+49
-36
lines changed

horizon/data_manager/client.py

Lines changed: 49 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)