betagouv / SPPNautSPO

Generator and S3 interface for SPPNaut Startup
European Union Public License 1.2
0 stars 0 forks source link

add retry policy to avoid alert due to file system lag #44

Closed kolok closed 1 year ago

kolok commented 1 year ago

to be tested !

Perhaps it is time to add unit test to this referential-sync part

linked to : https://sentry.incubateur.net/organizations/betagouv/issues/22117/?project=53&query=is%3Aunresolved#breadcrumbs

Tested : the sync failed three times and it finally send only 1 error to sentry:

Log of tests

(referentiel-sync) ➜  referentiel-sync git:(add_retry_library) ✗ python incremental_sync.py ~/Desktop/test sppnaut-referentiel-carting/test 
2023-03-29 12:26:47 - INFO - File watcher launched...
2023-03-29 12:26:53 - INFO - Modified file: /Users/nicolasoudard/Desktop/test/test.eps
2023-03-29 12:26:54 - INFO - AWSCLI: Traceback (most recent call last):
  File "/Users/nicolasoudard/.asdf/installs/python/3.10.9/lib/python3.10/runpy.py", line 196, in _run_module_as_main
    return _run_code(code, main_globals, None,
  File "/Users/nicolasoudard/.asdf/installs/python/3.10.9/lib/python3.10/runpy.py", line 86, in _run_code
    exec(code, run_globals)
  File "/Users/nicolasoudard/workspace/beta.gouv.fr/SPPNautGenerator/referentiel-sync/.venv/lib/python3.10/site-packages/awscli/__main__.py", line 21, in <module>
    sys.exit(main())
  File "/Users/nicolasoudard/workspace/beta.gouv.fr/SPPNautGenerator/referentiel-sync/.venv/lib/python3.10/site-packages/awscli/clidriver.py", line 69, in main
    driver = create_clidriver()
  File "/Users/nicolasoudard/workspace/beta.gouv.fr/SPPNautGenerator/referentiel-sync/.venv/lib/python3.10/site-packages/awscli/clidriver.py", line 78, in create_clidriver
    load_plugins(session.full_config.get('plugins', {}),
  File "/Users/nicolasoudard/workspace/beta.gouv.fr/SPPNautGenerator/referentiel-sync/.venv/lib/python3.10/site-packages/awscli/plugin.py", line 44, in load_plugins
    modules = _import_plugins(plugin_mapping)
  File "/Users/nicolasoudard/workspace/beta.gouv.fr/SPPNautGenerator/referentiel-sync/.venv/lib/python3.10/site-packages/awscli/plugin.py", line 61, in _import_plugins
    module = __import__(path, fromlist=[module])
ModuleNotFoundError: No module named '/Users/nicolasoudard/workspace/beta'

2023-03-29 12:26:55 - INFO - AWSCLI: Traceback (most recent call last):
  File "/Users/nicolasoudard/.asdf/installs/python/3.10.9/lib/python3.10/runpy.py", line 196, in _run_module_as_main
    return _run_code(code, main_globals, None,
  File "/Users/nicolasoudard/.asdf/installs/python/3.10.9/lib/python3.10/runpy.py", line 86, in _run_code
    exec(code, run_globals)
  File "/Users/nicolasoudard/workspace/beta.gouv.fr/SPPNautGenerator/referentiel-sync/.venv/lib/python3.10/site-packages/awscli/__main__.py", line 21, in <module>
    sys.exit(main())
  File "/Users/nicolasoudard/workspace/beta.gouv.fr/SPPNautGenerator/referentiel-sync/.venv/lib/python3.10/site-packages/awscli/clidriver.py", line 69, in main
    driver = create_clidriver()
  File "/Users/nicolasoudard/workspace/beta.gouv.fr/SPPNautGenerator/referentiel-sync/.venv/lib/python3.10/site-packages/awscli/clidriver.py", line 78, in create_clidriver
    load_plugins(session.full_config.get('plugins', {}),
  File "/Users/nicolasoudard/workspace/beta.gouv.fr/SPPNautGenerator/referentiel-sync/.venv/lib/python3.10/site-packages/awscli/plugin.py", line 44, in load_plugins
    modules = _import_plugins(plugin_mapping)
  File "/Users/nicolasoudard/workspace/beta.gouv.fr/SPPNautGenerator/referentiel-sync/.venv/lib/python3.10/site-packages/awscli/plugin.py", line 61, in _import_plugins
    module = __import__(path, fromlist=[module])
ModuleNotFoundError: No module named '/Users/nicolasoudard/workspace/beta'

2023-03-29 12:26:56 - INFO - AWSCLI: Traceback (most recent call last):
  File "/Users/nicolasoudard/.asdf/installs/python/3.10.9/lib/python3.10/runpy.py", line 196, in _run_module_as_main
    return _run_code(code, main_globals, None,
  File "/Users/nicolasoudard/.asdf/installs/python/3.10.9/lib/python3.10/runpy.py", line 86, in _run_code
    exec(code, run_globals)
  File "/Users/nicolasoudard/workspace/beta.gouv.fr/SPPNautGenerator/referentiel-sync/.venv/lib/python3.10/site-packages/awscli/__main__.py", line 21, in <module>
    sys.exit(main())
  File "/Users/nicolasoudard/workspace/beta.gouv.fr/SPPNautGenerator/referentiel-sync/.venv/lib/python3.10/site-packages/awscli/clidriver.py", line 69, in main
    driver = create_clidriver()
  File "/Users/nicolasoudard/workspace/beta.gouv.fr/SPPNautGenerator/referentiel-sync/.venv/lib/python3.10/site-packages/awscli/clidriver.py", line 78, in create_clidriver
    load_plugins(session.full_config.get('plugins', {}),
  File "/Users/nicolasoudard/workspace/beta.gouv.fr/SPPNautGenerator/referentiel-sync/.venv/lib/python3.10/site-packages/awscli/plugin.py", line 44, in load_plugins
    modules = _import_plugins(plugin_mapping)
  File "/Users/nicolasoudard/workspace/beta.gouv.fr/SPPNautGenerator/referentiel-sync/.venv/lib/python3.10/site-packages/awscli/plugin.py", line 61, in _import_plugins
    module = __import__(path, fromlist=[module])
ModuleNotFoundError: No module named '/Users/nicolasoudard/workspace/beta'

2023-03-29 12:26:56 - ERROR - Command '['/Users/nicolasoudard/workspace/beta.gouv.fr/SPPNautGenerator/referentiel-sync/.venv/bin/python', '-m', 'awscli', 's3', 'cp', '--endpoint-url', 'https://cellar-fr-north-hds-c1.services.clever-cloud.com', '/Users/nicolasoudard/Desktop/test/test.eps', 's3://sppnaut-referentiel-carting/test/test.eps']' returned non-zero exit status 1.
Traceback (most recent call last):
  File "/Users/nicolasoudard/workspace/beta.gouv.fr/SPPNautGenerator/referentiel-sync/incremental_sync.py", line 112, in dispatch
    super().dispatch(event)
  File "/Users/nicolasoudard/workspace/beta.gouv.fr/SPPNautGenerator/referentiel-sync/.venv/lib/python3.10/site-packages/watchdog/events.py", line 403, in dispatch
    super().dispatch(event)
  File "/Users/nicolasoudard/workspace/beta.gouv.fr/SPPNautGenerator/referentiel-sync/.venv/lib/python3.10/site-packages/watchdog/events.py", line 272, in dispatch
    {
  File "/Users/nicolasoudard/workspace/beta.gouv.fr/SPPNautGenerator/referentiel-sync/incremental_sync.py", line 120, in on_modified
    self._upload(event.src_path)
  File "/Users/nicolasoudard/workspace/beta.gouv.fr/SPPNautGenerator/referentiel-sync/.venv/lib/python3.10/site-packages/tenacity/__init__.py", line 289, in wrapped_f
    return self(f, *args, **kw)
  File "/Users/nicolasoudard/workspace/beta.gouv.fr/SPPNautGenerator/referentiel-sync/.venv/lib/python3.10/site-packages/tenacity/__init__.py", line 379, in __call__
    do = self.iter(retry_state=retry_state)
  File "/Users/nicolasoudard/workspace/beta.gouv.fr/SPPNautGenerator/referentiel-sync/.venv/lib/python3.10/site-packages/tenacity/__init__.py", line 325, in iter
    raise retry_exc.reraise()
  File "/Users/nicolasoudard/workspace/beta.gouv.fr/SPPNautGenerator/referentiel-sync/.venv/lib/python3.10/site-packages/tenacity/__init__.py", line 158, in reraise
    raise self.last_attempt.result()
  File "/Users/nicolasoudard/.asdf/installs/python/3.10.9/lib/python3.10/concurrent/futures/_base.py", line 451, in result
    return self.__get_result()
  File "/Users/nicolasoudard/.asdf/installs/python/3.10.9/lib/python3.10/concurrent/futures/_base.py", line 403, in __get_result
    raise self._exception
  File "/Users/nicolasoudard/workspace/beta.gouv.fr/SPPNautGenerator/referentiel-sync/.venv/lib/python3.10/site-packages/tenacity/__init__.py", line 382, in __call__
    result = fn(*args, **kwargs)
  File "/Users/nicolasoudard/workspace/beta.gouv.fr/SPPNautGenerator/referentiel-sync/incremental_sync.py", line 91, in _upload
    awscli.check_returncode()
  File "/Users/nicolasoudard/.asdf/installs/python/3.10.9/lib/python3.10/subprocess.py", line 457, in check_returncode
    raise CalledProcessError(self.returncode, self.args, self.stdout,
subprocess.CalledProcessError: Command '['/Users/nicolasoudard/workspace/beta.gouv.fr/SPPNautGenerator/referentiel-sync/.venv/bin/python', '-m', 'awscli', 's3', 'cp', '--endpoint-url', 'https://cellar-fr-north-hds-c1.services.clever-cloud.com', '/Users/nicolasoudard/Desktop/test/test.eps', 's3://sppnaut-referentiel-carting/test/test.eps']' returned non-zero exit status 1.

Issue on Sentry : https://sentry.incubateur.net/organizations/betagouv/issues/31600/?environment=production&project=53&query=is%3Aunresolved