omnata-plugin-runtime 0.4.4__py3-none-any.whl → 0.4.5__py3-none-any.whl

Sign up to get free protection for your applications and to get access to all the features.
@@ -12,7 +12,7 @@ from pydantic import BaseModel, parse_obj_as # pylint: disable=no-name-in-modul
12
12
  import pydantic.json
13
13
  from snowflake.snowpark import Session
14
14
 
15
- from .api import SyncRequestPayload, handle_proc_result
15
+ from .api import PluginMessageStreamProgressUpdate, SyncRequestPayload, handle_proc_result
16
16
  from .configuration import (
17
17
  ConnectionConfigurationParameters,
18
18
  InboundSyncConfigurationParameters,
@@ -218,11 +218,22 @@ class PluginEntrypoint:
218
218
  inbound_sync_request.update_activity("Staging remaining records")
219
219
  logger.info("Calling apply_results_queue")
220
220
  inbound_sync_request.apply_results_queue()
221
- logger.info("Calling apply_rate_limit_state")
222
- inbound_sync_request.apply_rate_limit_state()
223
- logger.info("Calling apply_progress_updates")
224
- # we can't ignore errors here, because the sync engine needs to get the progress updates before we return
225
- inbound_sync_request.apply_progress_updates(ignore_errors=False)
221
+ try:
222
+ # this is not critical, we wouldn't fail the sync over rate limit usage capture
223
+ logger.info("Calling apply_rate_limit_state")
224
+ inbound_sync_request.apply_rate_limit_state()
225
+ except Exception as e:
226
+ logger.error(f"Error applying rate limit state: {str(e)}")
227
+ # here we used to do a final inbound_sync_request.apply_progress_updates(ignore_errors=False)
228
+ # but it was erroring too much since there was usually a lot of DDL activity on the Snowflake side
229
+ # so instead, we'll provide a final progress update via a return value from the proc
230
+ final_progress_update = PluginMessageStreamProgressUpdate(
231
+ stream_total_counts=inbound_sync_request._stream_record_counts,
232
+ completed_streams=inbound_sync_request._completed_streams,
233
+ stream_errors=omnata_log_handler.stream_global_errors,
234
+ total_records_estimate=inbound_sync_request._total_records_estimate
235
+ )
236
+ return_dict["final_progress_update"] = final_progress_update.dict()
226
237
  if inbound_sync_request.deadline_reached:
227
238
  # if we actually hit the deadline, this is flagged by the cancellation checking worker and the cancellation
228
239
  # token is set. We throw it here as an error since that's currently how it flows back to the engine with a DELAYED state
@@ -239,11 +250,6 @@ class PluginEntrypoint:
239
250
  inbound_sync_request._rate_limit_update_task.join() # pylint: disable=protected-access
240
251
  except Exception as e:
241
252
  logger.error(f"Error cleaning up threading: {str(e)}")
242
- return_dict["errored_streams"] = list(
243
- omnata_log_handler.stream_global_errors.keys()
244
- )
245
- # we need to calculate counts for:
246
- # CHANGED_COUNT by counting up the records in INBOUND_STREAM_RECORD_COUNTS
247
253
  logger.info("Finished applying records")
248
254
  return return_dict
249
255
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: omnata-plugin-runtime
3
- Version: 0.4.4
3
+ Version: 0.4.5
4
4
  Summary: Classes and common runtime components for building and running Omnata Plugins
5
5
  Author: James Weakley
6
6
  Author-email: james.weakley@omnata.com
@@ -4,9 +4,9 @@ omnata_plugin_runtime/configuration.py,sha256=7cMekoY8CeZAJHpASU6tCMidF55Hzfr7CD
4
4
  omnata_plugin_runtime/forms.py,sha256=pw_aKVsXSz47EP8PFBI3VDwdSN5IjvZxp8JTjO1V130,18421
5
5
  omnata_plugin_runtime/logging.py,sha256=bn7eKoNWvtuyTk7RTwBS9UARMtqkiICtgMtzq3KA2V0,3272
6
6
  omnata_plugin_runtime/omnata_plugin.py,sha256=UJZNTcG6s5APZ7EIOYc5N4bFiyFEq3ekbSP6EK7tCBY,108065
7
- omnata_plugin_runtime/plugin_entrypoints.py,sha256=GN3JuVFi74TTXICiK2XdWpT7ohJYuxh4R9v_cGdm59A,28549
7
+ omnata_plugin_runtime/plugin_entrypoints.py,sha256=JAGEdVcy9QEXv7TO5zt7co64LTP8nqGusOc0sJG9GtU,29149
8
8
  omnata_plugin_runtime/rate_limiting.py,sha256=29Hjsr0i1rE8jERVdIFGINfQfp_kI3PDft-IM_ZxvCA,21509
9
- omnata_plugin_runtime-0.4.4.dist-info/LICENSE,sha256=IMF9i4xIpgCADf0U-V1cuf9HBmqWQd3qtI3FSuyW4zE,26526
10
- omnata_plugin_runtime-0.4.4.dist-info/METADATA,sha256=-pZbE3iYcMvI-_e_qGS6JzUdzDwXAEVFf5s9NnnxU5g,1638
11
- omnata_plugin_runtime-0.4.4.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
12
- omnata_plugin_runtime-0.4.4.dist-info/RECORD,,
9
+ omnata_plugin_runtime-0.4.5.dist-info/LICENSE,sha256=IMF9i4xIpgCADf0U-V1cuf9HBmqWQd3qtI3FSuyW4zE,26526
10
+ omnata_plugin_runtime-0.4.5.dist-info/METADATA,sha256=0d4xQ6hbq-twZnIkK7UyU_lp1h6lCwFUqldIAyVZDHI,1638
11
+ omnata_plugin_runtime-0.4.5.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
12
+ omnata_plugin_runtime-0.4.5.dist-info/RECORD,,