diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 9571e312cc..1d72ca549a 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -13,7 +13,6 @@ exclude: | ^storage_backend/| ^storage_backend_ftp/| ^storage_backend_s3/| - ^storage_backend_sftp/| ^storage_file/| ^storage_image/| ^storage_image_product/| diff --git a/requirements.txt b/requirements.txt index 081b1db7b2..275c9dfb40 100644 --- a/requirements.txt +++ b/requirements.txt @@ -2,4 +2,5 @@ fsspec>=2024.5.0 fsspec>=2025.3.0 fsspec[s3] +paramiko python_slugify diff --git a/storage_backend_sftp/__manifest__.py b/storage_backend_sftp/__manifest__.py index e17dc41f82..cc2b5479a8 100644 --- a/storage_backend_sftp/__manifest__.py +++ b/storage_backend_sftp/__manifest__.py @@ -5,12 +5,12 @@ { "name": "Storage Backend SFTP", "summary": "Implement SFTP Storage", - "version": "18.0.1.0.0", + "version": "19.0.1.0.0", "category": "Storage", "website": "https://github.com/OCA/storage", "author": " Akretion,Odoo Community Association (OCA)", "license": "LGPL-3", - "installable": False, + "installable": True, "external_dependencies": {"python": ["paramiko"]}, "depends": ["storage_backend"], "data": ["views/backend_storage_view.xml"], diff --git a/storage_backend_sftp/components/sftp_adapter.py b/storage_backend_sftp/components/sftp_adapter.py index f54acd123b..7c676fe10b 100644 --- a/storage_backend_sftp/components/sftp_adapter.py +++ b/storage_backend_sftp/components/sftp_adapter.py @@ -29,12 +29,10 @@ def sftp_mkdirs(client, path, mode=511): def load_ssh_key(ssh_key_buffer): - for pkey_class in ( - paramiko.RSAKey, - paramiko.DSSKey, - paramiko.ECDSAKey, - paramiko.Ed25519Key, - ): + pkey_classes = [paramiko.RSAKey, paramiko.ECDSAKey, paramiko.Ed25519Key] + if hasattr(paramiko, "DSSKey"): + pkey_classes.append(paramiko.DSSKey) + for pkey_class in pkey_classes: try: return pkey_class.from_private_key(ssh_key_buffer) except paramiko.SSHException: diff --git a/storage_backend_sftp/tests/test_sftp.py b/storage_backend_sftp/tests/test_sftp.py index fd05382c07..aa09858307 100644 --- a/storage_backend_sftp/tests/test_sftp.py +++ b/storage_backend_sftp/tests/test_sftp.py @@ -4,9 +4,6 @@ # @author Simone Orsi # License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl). -# pylint: disable=missing-manifest-dependency -# disable warning on 'vcr' missing in manifest: this is only a dependency for -# dev/tests import errno import logging @@ -84,8 +81,8 @@ def test_list(self, mocked_paramiko): self.assertEqual(self.backend.list_files(), []) def test_find_files(self): - good_filepaths = ["somepath/file%d.good" % x for x in range(1, 10)] - bad_filepaths = ["somepath/file%d.bad" % x for x in range(1, 10)] + good_filepaths = [f"somepath/file{x}.good" for x in range(1, 10)] + bad_filepaths = [f"somepath/file{x}.bad" for x in range(1, 10)] mocked_filepaths = bad_filepaths + good_filepaths backend = self.backend.sudo() expected = good_filepaths[:]