Blob Blame History Raw
%if 0%{?rhel} == 7
%bcond_with    python3
%bcond_without python2
%else
%bcond_with    python2
%bcond_without python3
%endif

%global library openshift

%if 0%{?rhel} == 7
%global py3 python%{python3_pkgversion}
%global py3dev python%{python3_pkgversion}
%endif
%if 0%{?rhel} == 8
%global py3 python3
%global py3dev python36
%endif
%if 0%{?fedora}
%global py3 python3
%global py3dev python3
%endif

Name:       python-%{library}
Version:    0.11.2
Release:    1%{?dist}
Summary:    Python client for the OpenShift API
License:    ASL 2.0
URL:        https://github.com/openshift/openshift-restclient-python
Source0:    https://github.com/openshift/openshift-restclient-python/archive/v%{version}.tar.gz
BuildArch:  noarch
Epoch:      1

%if 0%{?with_python2}
%package -n python2-%{library}
Summary:    Python client for the OpenShift API
%{?python_provide:%python_provide python2-%{library}}

BuildRequires: python2-devel
%if 0%{?rhel} != 7
BuildRequires: python2-kubernetes
%endif
BuildRequires: python-pytest
BuildRequires: python-setuptools
BuildRequires: git

Requires: python2
Requires: python2-dictdiffer
Requires: python2-kubernetes >= 9.0.0
Requires: python2-string_utils
Requires: python-requests
Requires: python2-ruamel-yaml
Requires: python-six
Requires: python-jinja2

%description -n python2-%{library}
Python client for the kubernetes API.
%endif

%if 0%{?with_python3}
%package -n %{py3}-%{library}
Summary: Python client for the OpenShift API
BuildRequires: %{py3dev}-devel
BuildRequires: %{py3dev}-rpm-macros
%if 0%{?rhel} != 7
BuildRequires: %{py3}-kubernetes >= 8.0.0
%endif
BuildRequires: %{py3}-pytest
BuildRequires: %{py3}-setuptools
BuildRequires: git

Requires: %{py3}
Requires: %{py3}-dictdiffer
Requires: %{py3}-kubernetes
Requires: %{py3}-string_utils
Requires: %{py3}-requests
Requires: %{py3}-ruamel-yaml
Requires: %{py3}-six
Requires: %{py3}-jinja2

%description -n %{py3}-%{library}
Python client for the OpenShift API
%endif

#recommonmark not available for docs in EPEL
%if 0%{?fedora}
%package doc
Summary: Documentation for %{name}.
%if 0%{?with_python3}
BuildRequires: %{py3}-sphinx
BuildRequires: %{py3}-recommonmark
%else
BuildRequires: python2-sphinx
BuildRequires: python2-recommonmark
%endif
%description doc
%{summary}
%endif

%description
Python client for the OpenShift API

%prep
%autosetup -n openshift-restclient-python-%{version} -S git
#there is no include in RHEL7 setuptools find_packages
#the requirements are also done in an non-backwards compatible way
%if 0%{?rhel}
sed -i -e "s/find_packages(include='openshift.*')/['openshift', 'openshift.dynamic', 'openshift.helper']/g" setup.py
sed -i -e "49d" setup.py
%endif

#work around https://bugzilla.redhat.com/show_bug.cgi?id=1759100 in Fedora 31
sed -i 's/~/>/g' requirements.txt

%build
%if 0%{?with_python2}
%py2_build
%endif
%if 0%{?with_python3}
%py3_build
%endif

%if 0%{?fedora} >= 30
sphinx-build-3 doc/source/ html
%{__rm} -rf html/.buildinfo
%{__rm} -rf html/.doctrees
%endif

%if 0%{?fedora} > 28 && 0%{?fedora} < 30
sphinx-build doc/source/ html
%{__rm} -rf html/.buildinfo
%{__rm} -rf html/.doctrees
%endif

%install
%if 0%{?with_python2}
%py2_install
%endif
%if 0%{?with_python3}
%py3_install
%endif

%check
%if 0%{?rhel} != 7
%if 0%{?with_python2}
py.test test/unit -c /dev/null -v -r s --openshift-version=latest
%endif
%if 0%{?with_python3}
pytest-3 test/unit -c /dev/null -v -r s --openshift-version=latest
%endif
%endif

%if 0%{?with_python2}
%files -n python2-%{library}
%license LICENSE
%{python2_sitelib}/%{library}
%{python2_sitelib}/%{library}-*.egg-info
%exclude %{python2_sitelib}/scripts
%exclude /usr/requirements.txt/requirements.txt
%{_bindir}/openshift-ansible-gen
%endif

%if 0%{?with_python3}
%files -n %{py3}-%{library}
%license LICENSE
%{python3_sitelib}/%{library}
%{python3_sitelib}/%{library}-*.egg-info
%exclude %{python3_sitelib}/scripts
%exclude /usr/requirements.txt/requirements.txt
%{_bindir}/openshift-ansible-gen
%endif

%if 0%{?fedora}
%files doc
%license LICENSE
%doc html
%endif

%changelog
* Mon Jun 08 2020 Jason Montleon <jmontleo@redhat.com> - 1:0.11.2.1
- Rebuilt for Python 3.9

* Tue May 26 2020 Miro Hrončok <mhroncok@redhat.com> - 1:0.11.0-4
- Rebuilt for Python 3.9

* Thu Apr 30 2020 Jason Montleon <jmontleo@redhat.com> 1:0.11.0-3
- Add missing changelog entries

* Thu Apr 30 2020 Jason Montleon <jmontleo@redhat.com> 1:0.11.0-2
- Fix el8 builds

* Thu Apr 30 2020 Jason Montleon <jmontleo@redhat.com> 1:0.11.0-1
- Update to 0.11.0

* Fri Mar 13 2020 Jason Montleon <jmontleo@redhat.com> 1:0.10.3-1
- Update to 0.10.3

* Wed Feb 19 2020 Jason Montleon <jmontleo@redhat.com> 1:0.10.2-1
- Update to 0.10.2

* Thu Jan 30 2020 Fedora Release Engineering <releng@fedoraproject.org> - 1:0.10.1-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild

* Tue Dec 17 2019 Jason Montleon <jmontleo@redhat.com> 0.10.1-3
- work around BZ 1759100

* Tue Dec 17 2019 Jason Montleon <jmontleo@redhat.com> 0.10.1-2
- remove exclude possibly causing problems

* Tue Dec 17 2019 Jason Montleon <jmontleo@redhat.com> 0.10.1-1
- Update to upstream 0.10.1

* Fri Nov 08 2019 Jason Montleon <jmontleo@redhat.com> 0.10.0-1
- Update to upstream 0.10.0

* Fri Oct 18 2019 Jason Montleon <jmontleo@redhat.com> 0.9.2-1
- Update to upstream 0.9.2

* Thu Oct 03 2019 Miro Hrončok <mhroncok@redhat.com> - 1:0.8.8-4
- Rebuilt for Python 3.8.0rc1 (#1748018)

* Mon Aug 19 2019 Miro Hrončok <mhroncok@redhat.com> - 1:0.8.8-3
- Rebuilt for Python 3.8

* Fri Jul 26 2019 Fedora Release Engineering <releng@fedoraproject.org> - 1:0.8.8-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild

* Thu Apr 25 2019 Jason Montleon <jmontleo@redhat.com> 0.8.8-1
- Update to upstream 0.8.8

* Wed Apr 24 2019 Jason Montleon <jmontleo@redhat.com> 0.8.7-1
- Update to upstream 0.8.7

* Mon Feb 18 2019 Jason Montleon <jmontleo@redhat.com> 0.8.6-1
- Update to upstream 0.8.6

* Sat Feb 2 2019 Jason Montleon <jmontleo@redhat.com> 0.8.4-3
- Disable checks for EPEL builds
- Remove kubernetes BuildRequire for EPEL builds, requires websocket-client
- websocket-client is in extras, required by EPEL, but not available in buildroot?

* Tue Jan 29 2019 Jason Montleon <jmontleo@redhat.com> 0.8.4-2
- Fix orphaned library directories
- Add unit tets to %%check
- Remove some unnecessary sed statements for EL7

* Tue Jan 29 2019 Jason Montleon <jmontleo@redhat.com> 0.8.4-1
- Update to 0.8.4

* Thu Dec 20 2018 Daniel Mellado <dmellado@redhat.com> 0.8.1-2
- Ensure .doctrees directory is also cleaned up
- Remove unnecessary provides name setting

* Tue Nov 06 2018 Jason Montleon <jmontleo@redhat.com> 0.8.1-1
- Bump version (fabian@fabianism.us)
- [release-0.8] When searching for resources, prefer non-List matches (#232)
  (openshift-cherrypick-robot@redhat.com)
- Version + dependency bump (fabian@fabianism.us)
- Disable python2 builds for Fedora and python3 for EPEL by default

* Tue Nov 06 2018 Jason Montleon <jmontleo@redhat.com> 0.8.0-1
- Fix tag condition (fabian@fabianism.us)
- Add watch to dynamic client (#221) (fabian@fabianism.us)
- Pin flake8 (fabian@fabianism.us)
- Do not decode response data in Python2 (#225)
  (16732494+wallecan@users.noreply.github.com)
- ResourceContainer does not contain delete method (#227)
  (mosonkonrad@gmail.com)
- Add basic documentation for dynamic client verbs to README (#222)
  (fabian@fabianism.us)
- Add support for *List kinds (#213) (fabian@fabianism.us)
- fix deployment conditional (fabian@fabianism.us)
- Bump version + requirements (fabian@fabianism.us)
- Add validate helper function (#199) (will@thames.id.au)
- DynamicApiError: add a summary method (#211) (pierre-louis@libregerbil.fr)
- Allow less strict kubernetes version requirements (#207) (will@thames.id.au)
- Add behavior-based tests for dynamic client (#208) (fabian@fabianism.us)
- Provide 'append_hash' for ConfigMaps and Secrets (#196) (will@thames.id.au)
- Allow creates on subresources properly (#201) (fabian@fabianism.us)
- Rename async to async_req for compatibility with python3 and kubernetes 7
  (#197) (fabian@fabianism.us)
- Update kube_config to support concurrent clusters (#193)
  (tdecacqu@redhat.com)

* Mon Aug 06 2018 David Zager <david.j.zager@gmail.com> 0.6.2-12
- Fix decode issue (#192) (lostonamountain@gmail.com)
- b64encode expects bytes not string (fridolin@redhat.com)
- Update releasers for 3.11 (david.j.zager@gmail.com)

* Mon Jul 23 2018 David Zager <david.j.zager@gmail.com> 0.6.2-11
- include version update script (fabian@fabianism.us)
- Version bump to 0.6.2 (fabian@fabianism.us)

* Thu Jul 05 2018 David Zager <david.j.zager@gmail.com> 0.6.1-10
- Install openshift.dynamic in RPM (#180) (dzager@redhat.com)

* Thu Jul 05 2018 David Zager <david.j.zager@gmail.com> 0.6.1-9
- Call functions on resource fields if they don't exist as name (#179)
  (will@thames.id.au)
- Release 0.6.1 (fabian@fabianism.us)
- Fix typo in argument passing for patch in dynamic client. (#176)
  (fabian@fabianism.us)
- Prevent duplicate keys when creating resource (#178) (dzager@redhat.com)
- Allow content type specification in resource.patch (#174) (will@thames.id.au)
- release 0.6.0 (fabian@fabianism.us)
- Default singular name to name sans last letter (#173) (fabian@fabianism.us)
- Serialize body more thoroughly, won't always be passed as kwarg (#172)
  (fabian@fabianism.us)
- decode response data for python3 compatibility (#171) (fabian@fabianism.us)
- add dynamic client (#167) (fabian@fabianism.us)
- Fixes a bug when running fix_serialization on Kubernetes ExternalName… (#161)
  (zapur1@users.noreply.github.com)

* Tue Feb 27 2018 David Zager <david.j.zager@gmail.com> 0.5.0-8
- Bug 1546843- RuntimeRawExtension objects will now deserialize
  (fabian@fabianism.us)
- Add compatiblity matrix (fabian@fabianism.us)

* Thu Feb 22 2018 David Zager <david.j.zager@gmail.com> 0.5.0-7
- Update client for release k8s-client 5.0 (david.j.zager@gmail.com)
- Lint fix (chousekn@redhat.com)
- Add 'Bearer' to auth header (chousekn@redhat.com)
- All objects will now be instantiated with the proper configuration
  (fabian@fabianism.us)
- Restore API and model matching (chousekn@redhat.com)

* Thu Feb 08 2018 David Zager <david.j.zager@gmail.com> 0.5.0.a1-6
- Allow beta k8s client (david.j.zager@gmail.com)
- Update client to use k8s client 5 (david.j.zager@gmail.com)

* Fri Jan 19 2018 David Zager <david.j.zager@gmail.com> 0.4.0.a1-5
- Add object to primitives, treat as string for now (fabian@fabianism.us)
- update version to match new scheme (fabian@fabianism.us)
- regen modules (fabian@fabianism.us)
- Don't exclude modules that appear in both k8s and openshift from codegen
  (fabian@fabianism.us)
- Prefer openshift models to kubernetes models (fabian@fabianism.us)
- extra escape characters (fabian@fabianism.us)
- Update deployment condition to enforce python versioning standards
  (fabian@fabianism.us)
- Update releasers (david.j.zager@gmail.com)

* Tue Jan 16 2018 David Zager <david.j.zager@gmail.com> 0.4.0-4
- fix linting (fabian@fabianism.us)
- Fix ansible module generation for 1.8/3.8 (fabian@fabianism.us)
- Remove old OpenShift versions (david.j.zager@gmail.com)
- Update watch test (fabian@fabianism.us)
- fix a few nil value errors (fabian@fabianism.us)
- regen modules (fabian@fabianism.us)
- Fixed some errors around object instantiation in the helpers
  (fabian@fabianism.us)
- Generated code (david.j.zager@gmail.com)
- Essentials for updating client-python to 4.0 (david.j.zager@gmail.com)
- Helper base cleanup (#132) (chousekn@redhat.com)

* Mon Dec 04 2017 Jason Montleon <jmontleo@redhat.com> 0.3.4-3
- prefix test names with the cluster type (openshift/k8s) to prevent collision
  (fabian@fabianism.us)
- after the argspec is fully created, go through all aliases and remove any
  collisions (fabian@fabianism.us)
- Add test for build config (fabian@fabianism.us)
- Update _from conversion to handle all python keywords (fabian@fabianism.us)
- Handle _from -> from and vice versa in ansible helper (fabian@fabianism.us)
- add exclude for new file that won't be packaged (#125) (jmontleo@redhat.com)
- Fix k8s_v1beta1_role_binding 404s (#122) (fabian@fabianism.us)
- Pin pytest version due to broken internal API (fabian@fabianism.us)
- Add custom_objects_spec.json to package data
  (ceridwen@users.noreply.github.com)

* Fri Nov 03 2017 Jason Montleon <jmontleo@redhat.com> 0.3.4-2
- Update version

* Fri Nov 03 2017 Jason Montleon <jmontleo@redhat.com> 0.3.3-8
- Bug 1508969 - Add foreground propagation policy (david.j.zager@gmail.com)
- Document how to use the Dockerfile (david.j.zager@gmail.com)
- Add Dockerfile (david.j.zager@gmail.com)
- add unit test for watch (fabian@fabianism.us)
- Bump version (fabian@fabianism.us)
- Support watching openshift resources (fabian@fabianism.us)

* Fri Oct 13 2017 Jason Montleon <jmontleo@redhat.com> 0.3.3-7
- add python-requests rpm dep

* Fri Oct 13 2017 Jason Montleon <jmontleo@redhat.com> 0.3.3-6
- Fix module Python interpreter (chousekn@redhat.com)
- Version bump (fabian@fabianism.us)
- fix version regex and api_version formatting to prevent filtering out valid
  APIs (fabian@fabianism.us)

* Fri Oct 06 2017 Jason Montleon <jmontleo@redhat.com> 0.3.2-5
- ignore requirements.txt in packaging

* Fri Oct 06 2017 Jason Montleon <jmontleo@redhat.com> 0.3.2-4
-

* Fri Oct 06 2017 Jason Montleon <jmontleo@redhat.com> 0.3.2-3
- make source name match package name

* Fri Oct 06 2017 Jason Montleon <jmontleo@redhat.com> 0.3.2-2
- Fix source name

* Fri Oct 06 2017 Jason Montleon <jmontleo@redhat.com> 0.3.2-1
- new package built with tito

* Wed May 10 2017 Jason Montleon <jmontleo@redhat.com> 1.0.0-0.3
- Initial Build