python-apache-libcloud/python-apache-libcloud.spec

96 lines
3.3 KiB
RPMSpec
Raw Normal View History

#
# spec file for package python-apache-libcloud
#
# Copyright (c) 2020 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
%{?!python_module:%define python_module() python-%{**} python3-%{**}}
Name: python-apache-libcloud
Version: 2.8.0
Release: 0
Summary: Abstraction over multiple cloud provider APIs
License: Apache-2.0
Group: System/Monitoring
URL: https://libcloud.apache.org
Source0: https://files.pythonhosted.org/packages/source/a/apache-libcloud/apache-libcloud-%{version}.tar.gz
Patch1: gce_image_projects.patch
Patch2: ec2_create_node.patch
BuildRequires: %{python_module libvirt-python}
BuildRequires: %{python_module lockfile}
BuildRequires: %{python_module lxml}
BuildRequires: %{python_module mock}
BuildRequires: %{python_module paramiko}
BuildRequires: %{python_module pytest-runner}
BuildRequires: %{python_module pytest}
BuildRequires: %{python_module requests-mock}
BuildRequires: %{python_module setuptools}
- update to 2.7.0: - Test code with Python 3.8 and advertise that we also support Python 3.8. - [OpenStack] Fix OpenStack project scoped token authentication. The driver constructors now accept ``ex_tenant_domain_id`` argument which tells authentication service which domain id to use for the scoped authentication token. (GITHUB-1367) - Introduce type annotations for the base compute API methods. This means you can now leverage mypy to type check (with some limitations) your code which utilizes Libcloud compute API standard API methods. - [Azure ARM] Fix ``attach_volume`` method and allow maximum of 64 disks to be added when LUN is not specified. Previously there was a bug and only a maximum of 63 disks could be added. - New ``start_node`` and ``stop_node`` methods have been added to the base Libcloud compute API NodeDriver class. - [GCE] Add new ``ex_set_volume_labels`` method for managing volume labels to the driver. - [EC2] Add support for new ``inf1.*`` instance types. - [S3] Update S3 driver so a single driver class can be used for different regions. - [S3] Add missing ``eu-north-1`` region to the S3 driver. (GITHUB-1370) - [S3] Add missing regions (eu-west-3, ap-northeast-3, me-south-1) to the driver. - [S3] Update the driver to throw more user-friendly error message if user is using driver for a region X, but trying to upload / download object to / from a region Y. OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-apache-libcloud?expand=0&rev=90
2019-12-13 15:27:19 +01:00
BuildRequires: %{python_module typing}
BuildRequires: %{python_module xml}
BuildRequires: fdupes
BuildRequires: python-backports.ssl_match_hostname
BuildRequires: python-rpm-macros
BuildRequires: python2
Requires: python-lxml
Requires: python-requests
- update to 2.7.0: - Test code with Python 3.8 and advertise that we also support Python 3.8. - [OpenStack] Fix OpenStack project scoped token authentication. The driver constructors now accept ``ex_tenant_domain_id`` argument which tells authentication service which domain id to use for the scoped authentication token. (GITHUB-1367) - Introduce type annotations for the base compute API methods. This means you can now leverage mypy to type check (with some limitations) your code which utilizes Libcloud compute API standard API methods. - [Azure ARM] Fix ``attach_volume`` method and allow maximum of 64 disks to be added when LUN is not specified. Previously there was a bug and only a maximum of 63 disks could be added. - New ``start_node`` and ``stop_node`` methods have been added to the base Libcloud compute API NodeDriver class. - [GCE] Add new ``ex_set_volume_labels`` method for managing volume labels to the driver. - [EC2] Add support for new ``inf1.*`` instance types. - [S3] Update S3 driver so a single driver class can be used for different regions. - [S3] Add missing ``eu-north-1`` region to the S3 driver. (GITHUB-1370) - [S3] Add missing regions (eu-west-3, ap-northeast-3, me-south-1) to the driver. - [S3] Update the driver to throw more user-friendly error message if user is using driver for a region X, but trying to upload / download object to / from a region Y. OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-apache-libcloud?expand=0&rev=90
2019-12-13 15:27:19 +01:00
Requires: python-typing
Suggests: python-libvirt-python
Suggests: python-lockfile
Suggests: python-paramiko
Suggests: python-pysphere
BuildArch: noarch
%python_subpackages
%description
Apache Libcloud is a standard Python library that abstracts away
differences among multiple cloud provider APIs.
%prep
%setup -q -n apache-libcloud-%{version}
%patch1 -p1
%patch2 -p1
sed -i '/^#!/d' demos/gce_demo.py
chmod a-x demos/gce_demo.py
# Setup tests
cp libcloud/test/secrets.py-dist libcloud/test/secrets.py
%build
%python_build
%install
%python_install
find %{buildroot} -name '*.DS_Store' -delete
find %{buildroot} -name '*.json' -size 0 -delete
find %{buildroot} -name '*.pem' -size 0 -delete
%python_expand rm -r %{buildroot}%{$python_sitelib}/libcloud/test
%python_expand %fdupes %{buildroot}%{$python_sitelib}
%check
# Skip ShellOutSSHClientTests tests which attempt to ssh to localhost
python2 -m pytest -k 'not ShellOutSSHClientTests and \
not ElasticContainerDriverTestCase'
# Note these two extra py3 failures are undesirable and should be fixed
python3 -m pytest -k \
'not test_consume_stderr_chunk_contains_part_of_multi_byte_utf8_character and \
not test_consume_stdout_chunk_contains_part_of_multi_byte_utf8_character and \
not ShellOutSSHClientTests and \
not ElasticContainerDriverTestCase'
%files %{python_files}
%license LICENSE
%doc CHANGES.rst README.rst demos/ example_*.py
%{python_sitelib}/*
%changelog