15
0

- Add patch no-more-makesuite.patch:

* Do not use unittest.makeSuite()

OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-acitoolkit?expand=0&rev=21
This commit is contained in:
2024-12-16 04:38:09 +00:00
committed by Git OBS Bridge
commit 6e4eea3653
8 changed files with 567 additions and 0 deletions

23
.gitattributes vendored Normal file
View File

@@ -0,0 +1,23 @@
## Default LFS
*.7z filter=lfs diff=lfs merge=lfs -text
*.bsp filter=lfs diff=lfs merge=lfs -text
*.bz2 filter=lfs diff=lfs merge=lfs -text
*.gem filter=lfs diff=lfs merge=lfs -text
*.gz filter=lfs diff=lfs merge=lfs -text
*.jar filter=lfs diff=lfs merge=lfs -text
*.lz filter=lfs diff=lfs merge=lfs -text
*.lzma filter=lfs diff=lfs merge=lfs -text
*.obscpio filter=lfs diff=lfs merge=lfs -text
*.oxt filter=lfs diff=lfs merge=lfs -text
*.pdf filter=lfs diff=lfs merge=lfs -text
*.png filter=lfs diff=lfs merge=lfs -text
*.rpm filter=lfs diff=lfs merge=lfs -text
*.tbz filter=lfs diff=lfs merge=lfs -text
*.tbz2 filter=lfs diff=lfs merge=lfs -text
*.tgz filter=lfs diff=lfs merge=lfs -text
*.ttf filter=lfs diff=lfs merge=lfs -text
*.txz filter=lfs diff=lfs merge=lfs -text
*.whl filter=lfs diff=lfs merge=lfs -text
*.xz filter=lfs diff=lfs merge=lfs -text
*.zip filter=lfs diff=lfs merge=lfs -text
*.zst filter=lfs diff=lfs merge=lfs -text

1
.gitignore vendored Normal file
View File

@@ -0,0 +1 @@
.osc

238
no-more-makesuite.patch Normal file
View File

@@ -0,0 +1,238 @@
Index: acitoolkit-0.4/tests/aciConcreteLib_test.py
===================================================================
--- acitoolkit-0.4.orig/tests/aciConcreteLib_test.py
+++ acitoolkit-0.4/tests/aciConcreteLib_test.py
@@ -1023,6 +1023,6 @@ class TestConcreteCdpAdjEp(unittest.Test
if __name__ == '__main__':
offline = unittest.TestSuite()
- offline.addTest(unittest.makeSuite(TestConcreteArp))
- offline.addTest(unittest.makeSuite(TestConcreteArpDomain))
+ offline.addTest(unittest.defaultTestLoader.loadTestsFromTestCase(TestConcreteArp))
+ offline.addTest(unittest.defaultTestLoader.loadTestsFromTestCase(TestConcreteArpDomain))
unittest.main()
Index: acitoolkit-0.4/tests/aciTable_test.py
===================================================================
--- acitoolkit-0.4.orig/tests/aciTable_test.py
+++ acitoolkit-0.4/tests/aciTable_test.py
@@ -348,6 +348,6 @@ class TestTable(unittest.TestCase):
if __name__ == '__main__':
offline = unittest.TestSuite()
- offline.addTest(unittest.makeSuite(TestTable))
+ offline.addTest(unittest.defaultTestLoader.loadTestsFromTestCase(TestTable))
unittest.main()
Index: acitoolkit-0.4/tests/aciphysobject_test.py
===================================================================
--- acitoolkit-0.4.orig/tests/aciphysobject_test.py
+++ acitoolkit-0.4/tests/aciphysobject_test.py
@@ -1401,23 +1401,23 @@ class TestInterface(unittest.TestCase):
if __name__ == '__main__':
offline = unittest.TestSuite()
- offline.addTest(unittest.makeSuite(TestPod))
- offline.addTest(unittest.makeSuite(TestNode))
- offline.addTest(unittest.makeSuite(TestLink))
- offline.addTest(unittest.makeSuite(TestFan))
- offline.addTest(unittest.makeSuite(TestPowerSupply))
- offline.addTest(unittest.makeSuite(TestLinecard))
- offline.addTest(unittest.makeSuite(TestSupervisor))
- offline.addTest(unittest.makeSuite(TestSystemcontroller))
- offline.addTest(unittest.makeSuite(TestExternalSwitch))
- offline.addTest(unittest.makeSuite(TestFind))
- offline.addTest(unittest.makeSuite(TestInterface))
- offline.addTest(unittest.makeSuite(TestCluster))
+ offline.addTest(unittest.defaultTestLoader.loadTestsFromTestCase(TestPod))
+ offline.addTest(unittest.defaultTestLoader.loadTestsFromTestCase(TestNode))
+ offline.addTest(unittest.defaultTestLoader.loadTestsFromTestCase(TestLink))
+ offline.addTest(unittest.defaultTestLoader.loadTestsFromTestCase(TestFan))
+ offline.addTest(unittest.defaultTestLoader.loadTestsFromTestCase(TestPowerSupply))
+ offline.addTest(unittest.defaultTestLoader.loadTestsFromTestCase(TestLinecard))
+ offline.addTest(unittest.defaultTestLoader.loadTestsFromTestCase(TestSupervisor))
+ offline.addTest(unittest.defaultTestLoader.loadTestsFromTestCase(TestSystemcontroller))
+ offline.addTest(unittest.defaultTestLoader.loadTestsFromTestCase(TestExternalSwitch))
+ offline.addTest(unittest.defaultTestLoader.loadTestsFromTestCase(TestFind))
+ offline.addTest(unittest.defaultTestLoader.loadTestsFromTestCase(TestInterface))
+ offline.addTest(unittest.defaultTestLoader.loadTestsFromTestCase(TestCluster))
live = unittest.TestSuite()
- live.addTest(unittest.makeSuite(TestLiveAPIC))
- live.addTest(unittest.makeSuite(TestLivePod))
- live.addTest(unittest.makeSuite(TestLiveCluster))
+ live.addTest(unittest.defaultTestLoader.loadTestsFromTestCase(TestLiveAPIC))
+ live.addTest(unittest.defaultTestLoader.loadTestsFromTestCase(TestLivePod))
+ live.addTest(unittest.defaultTestLoader.loadTestsFromTestCase(TestLiveCluster))
full = unittest.TestSuite([live, offline])
Index: acitoolkit-0.4/tests/acitoolkit_fakeapic_test.py
===================================================================
--- acitoolkit-0.4.orig/tests/acitoolkit_fakeapic_test.py
+++ acitoolkit-0.4/tests/acitoolkit_fakeapic_test.py
@@ -148,5 +148,5 @@ if __name__ == '__main__':
# Run the tests
fake = unittest.TestSuite()
- fake.addTest(unittest.makeSuite(TestFakeApic))
+ fake.addTest(unittest.defaultTestLoader.loadTestsFromTestCase(TestFakeApic))
unittest.main(defaultTest='fake', argv=sys.argv[:1] + unittest_args)
Index: acitoolkit-0.4/tests/acitoolkit_test.py
===================================================================
--- acitoolkit-0.4.orig/tests/acitoolkit_test.py
+++ acitoolkit-0.4/tests/acitoolkit_test.py
@@ -5480,76 +5480,76 @@ class TestLiveHealthScores(TestLiveAPIC)
if __name__ == '__main__':
live = unittest.TestSuite()
- live.addTest(unittest.makeSuite(TestLiveHealthScores))
- live.addTest(unittest.makeSuite(TestLiveTenant))
- live.addTest(unittest.makeSuite(TestLiveAPIC))
- live.addTest(unittest.makeSuite(TestLiveCertAuth))
- live.addTest(unittest.makeSuite(TestLiveAppcenterSubscription))
- live.addTest(unittest.makeSuite(TestLiveInterface))
- live.addTest(unittest.makeSuite(TestLivePortChannel))
- live.addTest(unittest.makeSuite(TestLiveAppProfile))
- live.addTest(unittest.makeSuite(TestLiveEPG))
- live.addTest(unittest.makeSuite(TestLiveAnyEPG))
- live.addTest(unittest.makeSuite(TestLiveAnyEPGWithTenantCommonContracts))
- live.addTest(unittest.makeSuite(TestLiveL2ExtDomain))
- live.addTest(unittest.makeSuite(TestLiveL3ExtDomain))
- live.addTest(unittest.makeSuite(TestLiveEPGDomain))
- live.addTest(unittest.makeSuite(TestLiveFilter))
- live.addTest(unittest.makeSuite(TestLiveFilterEntry))
- live.addTest(unittest.makeSuite(TestLiveContracts))
- live.addTest(unittest.makeSuite(TestLiveContractSubject))
- live.addTest(unittest.makeSuite(TestLiveEndpoint))
- live.addTest(unittest.makeSuite(TestApic))
- live.addTest(unittest.makeSuite(TestLivePhysDomain))
- live.addTest(unittest.makeSuite(TestLiveVmmDomain))
- live.addTest(unittest.makeSuite(TestLiveVmm))
- live.addTest(unittest.makeSuite(TestLiveSubscription))
- live.addTest(unittest.makeSuite(TestLiveOSPF))
- live.addTest(unittest.makeSuite(TestLiveMonitorPolicy))
- live.addTest(unittest.makeSuite(TestLiveOutsideL3))
- live.addTest(unittest.makeSuite(TestLiveOutsideEPG))
- live.addTest(unittest.makeSuite(TestLiveContractInterface))
- live.addTest(unittest.makeSuite(TestLiveSession))
+ live.addTest(unittest.defaultTestLoader.loadTestsFromTestCase(TestLiveHealthScores))
+ live.addTest(unittest.defaultTestLoader.loadTestsFromTestCase(TestLiveTenant))
+ live.addTest(unittest.defaultTestLoader.loadTestsFromTestCase(TestLiveAPIC))
+ live.addTest(unittest.defaultTestLoader.loadTestsFromTestCase(TestLiveCertAuth))
+ live.addTest(unittest.defaultTestLoader.loadTestsFromTestCase(TestLiveAppcenterSubscription))
+ live.addTest(unittest.defaultTestLoader.loadTestsFromTestCase(TestLiveInterface))
+ live.addTest(unittest.defaultTestLoader.loadTestsFromTestCase(TestLivePortChannel))
+ live.addTest(unittest.defaultTestLoader.loadTestsFromTestCase(TestLiveAppProfile))
+ live.addTest(unittest.defaultTestLoader.loadTestsFromTestCase(TestLiveEPG))
+ live.addTest(unittest.defaultTestLoader.loadTestsFromTestCase(TestLiveAnyEPG))
+ live.addTest(unittest.defaultTestLoader.loadTestsFromTestCase(TestLiveAnyEPGWithTenantCommonContracts))
+ live.addTest(unittest.defaultTestLoader.loadTestsFromTestCase(TestLiveL2ExtDomain))
+ live.addTest(unittest.defaultTestLoader.loadTestsFromTestCase(TestLiveL3ExtDomain))
+ live.addTest(unittest.defaultTestLoader.loadTestsFromTestCase(TestLiveEPGDomain))
+ live.addTest(unittest.defaultTestLoader.loadTestsFromTestCase(TestLiveFilter))
+ live.addTest(unittest.defaultTestLoader.loadTestsFromTestCase(TestLiveFilterEntry))
+ live.addTest(unittest.defaultTestLoader.loadTestsFromTestCase(TestLiveContracts))
+ live.addTest(unittest.defaultTestLoader.loadTestsFromTestCase(TestLiveContractSubject))
+ live.addTest(unittest.defaultTestLoader.loadTestsFromTestCase(TestLiveEndpoint))
+ live.addTest(unittest.defaultTestLoader.loadTestsFromTestCase(TestApic))
+ live.addTest(unittest.defaultTestLoader.loadTestsFromTestCase(TestLivePhysDomain))
+ live.addTest(unittest.defaultTestLoader.loadTestsFromTestCase(TestLiveVmmDomain))
+ live.addTest(unittest.defaultTestLoader.loadTestsFromTestCase(TestLiveVmm))
+ live.addTest(unittest.defaultTestLoader.loadTestsFromTestCase(TestLiveSubscription))
+ live.addTest(unittest.defaultTestLoader.loadTestsFromTestCase(TestLiveOSPF))
+ live.addTest(unittest.defaultTestLoader.loadTestsFromTestCase(TestLiveMonitorPolicy))
+ live.addTest(unittest.defaultTestLoader.loadTestsFromTestCase(TestLiveOutsideL3))
+ live.addTest(unittest.defaultTestLoader.loadTestsFromTestCase(TestLiveOutsideEPG))
+ live.addTest(unittest.defaultTestLoader.loadTestsFromTestCase(TestLiveContractInterface))
+ live.addTest(unittest.defaultTestLoader.loadTestsFromTestCase(TestLiveSession))
offline = unittest.TestSuite()
- offline.addTest(unittest.makeSuite(TestBaseRelation))
- offline.addTest(unittest.makeSuite(TestBaseACIObject))
- offline.addTest(unittest.makeSuite(TestTenant))
- offline.addTest(unittest.makeSuite(TestSession))
- offline.addTest(unittest.makeSuite(TestAppProfile))
- offline.addTest(unittest.makeSuite(TestBridgeDomain))
- offline.addTest(unittest.makeSuite(TestL2Interface))
- offline.addTest(unittest.makeSuite(TestL3Interface))
- offline.addTest(unittest.makeSuite(TestBaseContract))
- offline.addTest(unittest.makeSuite(TestContract))
- offline.addTest(unittest.makeSuite(TestContractInterface))
- offline.addTest(unittest.makeSuite(TestContractSubject))
- offline.addTest(unittest.makeSuite(TestFilter))
- offline.addTest(unittest.makeSuite(TestFilterEntry))
- offline.addTest(unittest.makeSuite(TestTaboo))
- offline.addTest(unittest.makeSuite(TestEPG))
- offline.addTest(unittest.makeSuite(TestOutsideEPG))
- offline.addTest(unittest.makeSuite(TestPhysDomain))
- offline.addTest(unittest.makeSuite(TestJson))
- offline.addTest(unittest.makeSuite(TestEPGDomain))
- offline.addTest(unittest.makeSuite(TestPortChannel))
- offline.addTest(unittest.makeSuite(TestContext))
- offline.addTest(unittest.makeSuite(TestOspf))
- offline.addTest(unittest.makeSuite(TestBGP))
- offline.addTest(unittest.makeSuite(TestEndpoint))
- offline.addTest(unittest.makeSuite(TestMonitorPolicy))
- offline.addTest(unittest.makeSuite(TestAttributeCriterion))
- offline.addTest(unittest.makeSuite(TestOutsideL2))
- offline.addTest(unittest.makeSuite(TestOutsideNetwork))
- offline.addTest(unittest.makeSuite(TestTunnelInterface))
- offline.addTest(unittest.makeSuite(TestFexInterface))
- offline.addTest(unittest.makeSuite(TestInputTerminal))
- offline.addTest(unittest.makeSuite(TestOutputTerminal))
- offline.addTest(unittest.makeSuite(TestAnyEPG))
- offline.addTest(unittest.makeSuite(TestOutsideL2EPG))
+ offline.addTest(unittest.defaultTestLoader.loadTestsFromTestCase(TestBaseRelation))
+ offline.addTest(unittest.defaultTestLoader.loadTestsFromTestCase(TestBaseACIObject))
+ offline.addTest(unittest.defaultTestLoader.loadTestsFromTestCase(TestTenant))
+ offline.addTest(unittest.defaultTestLoader.loadTestsFromTestCase(TestSession))
+ offline.addTest(unittest.defaultTestLoader.loadTestsFromTestCase(TestAppProfile))
+ offline.addTest(unittest.defaultTestLoader.loadTestsFromTestCase(TestBridgeDomain))
+ offline.addTest(unittest.defaultTestLoader.loadTestsFromTestCase(TestL2Interface))
+ offline.addTest(unittest.defaultTestLoader.loadTestsFromTestCase(TestL3Interface))
+ offline.addTest(unittest.defaultTestLoader.loadTestsFromTestCase(TestBaseContract))
+ offline.addTest(unittest.defaultTestLoader.loadTestsFromTestCase(TestContract))
+ offline.addTest(unittest.defaultTestLoader.loadTestsFromTestCase(TestContractInterface))
+ offline.addTest(unittest.defaultTestLoader.loadTestsFromTestCase(TestContractSubject))
+ offline.addTest(unittest.defaultTestLoader.loadTestsFromTestCase(TestFilter))
+ offline.addTest(unittest.defaultTestLoader.loadTestsFromTestCase(TestFilterEntry))
+ offline.addTest(unittest.defaultTestLoader.loadTestsFromTestCase(TestTaboo))
+ offline.addTest(unittest.defaultTestLoader.loadTestsFromTestCase(TestEPG))
+ offline.addTest(unittest.defaultTestLoader.loadTestsFromTestCase(TestOutsideEPG))
+ offline.addTest(unittest.defaultTestLoader.loadTestsFromTestCase(TestPhysDomain))
+ offline.addTest(unittest.defaultTestLoader.loadTestsFromTestCase(TestJson))
+ offline.addTest(unittest.defaultTestLoader.loadTestsFromTestCase(TestEPGDomain))
+ offline.addTest(unittest.defaultTestLoader.loadTestsFromTestCase(TestPortChannel))
+ offline.addTest(unittest.defaultTestLoader.loadTestsFromTestCase(TestContext))
+ offline.addTest(unittest.defaultTestLoader.loadTestsFromTestCase(TestOspf))
+ offline.addTest(unittest.defaultTestLoader.loadTestsFromTestCase(TestBGP))
+ offline.addTest(unittest.defaultTestLoader.loadTestsFromTestCase(TestEndpoint))
+ offline.addTest(unittest.defaultTestLoader.loadTestsFromTestCase(TestMonitorPolicy))
+ offline.addTest(unittest.defaultTestLoader.loadTestsFromTestCase(TestAttributeCriterion))
+ offline.addTest(unittest.defaultTestLoader.loadTestsFromTestCase(TestOutsideL2))
+ offline.addTest(unittest.defaultTestLoader.loadTestsFromTestCase(TestOutsideNetwork))
+ offline.addTest(unittest.defaultTestLoader.loadTestsFromTestCase(TestTunnelInterface))
+ offline.addTest(unittest.defaultTestLoader.loadTestsFromTestCase(TestFexInterface))
+ offline.addTest(unittest.defaultTestLoader.loadTestsFromTestCase(TestInputTerminal))
+ offline.addTest(unittest.defaultTestLoader.loadTestsFromTestCase(TestOutputTerminal))
+ offline.addTest(unittest.defaultTestLoader.loadTestsFromTestCase(TestAnyEPG))
+ offline.addTest(unittest.defaultTestLoader.loadTestsFromTestCase(TestOutsideL2EPG))
graphs = unittest.TestSuite()
- graphs.addTest(unittest.makeSuite(TestAcitoolkitGraphBuilder))
+ graphs.addTest(unittest.defaultTestLoader.loadTestsFromTestCase(TestAcitoolkitGraphBuilder))
full = unittest.TestSuite([live, offline, graphs])
Index: acitoolkit-0.4/tests/acitoolkitlib_test.py
===================================================================
--- acitoolkit-0.4.orig/tests/acitoolkitlib_test.py
+++ acitoolkit-0.4/tests/acitoolkitlib_test.py
@@ -72,6 +72,6 @@ class TestCredentials(unittest.TestCase)
if __name__ == '__main__':
offline = unittest.TestSuite()
- offline.addTest(unittest.makeSuite(TestCredentials))
+ offline.addTest(unittest.defaultTestLoader.loadTestsFromTestCase(TestCredentials))
unittest.main()

View File

@@ -0,0 +1,20 @@
diff --git a/acitoolkit/acitoolkit.py b/acitoolkit/acitoolkit.py
index 3c4b0f61..495bf690 100755
--- a/acitoolkit/acitoolkit.py
+++ b/acitoolkit/acitoolkit.py
@@ -30,7 +30,13 @@
""" Main ACI Toolkit module
This is the main module that comprises the ACI Toolkit.
"""
-from collections import Sequence
+try:
+ # Python <=3.9
+ from collections import Sequence
+except ImportError:
+ # Python > 3.8
+ from collections.abc import Sequence
+
import logging
from operator import attrgetter, itemgetter
import re

115
python-acitoolkit.changes Normal file
View File

@@ -0,0 +1,115 @@
-------------------------------------------------------------------
Mon Dec 16 04:37:22 UTC 2024 - Steve Kowalik <steven.kowalik@suse.com>
- Add patch no-more-makesuite.patch:
* Do not use unittest.makeSuite()
-------------------------------------------------------------------
Fri Oct 13 16:21:03 UTC 2023 - Matej Cepl <mcepl@cepl.eu>
- Clean up the SPEC file
-------------------------------------------------------------------
Wed Jun 21 10:39:27 UTC 2023 - Markéta Machová <mmachova@suse.com>
- Drop unneeded six dependency
-------------------------------------------------------------------
Tue May 3 10:46:59 UTC 2022 - pgajdos@suse.com
- python-mock is not required for build
-------------------------------------------------------------------
Thu Feb 3 14:07:10 UTC 2022 - Dominique Leuenberger <dimstar@opensuse.org>
- Fix install dependencies of -doc-applications and -doc-samples:
make them rely on the primary python interpreter version.
-------------------------------------------------------------------
Tue Feb 1 07:10:38 UTC 2022 - pgajdos@suse.com
- use spec cleaner, remove redundant Provides
-------------------------------------------------------------------
Fri Jan 28 10:10:09 UTC 2022 - pgajdos@suse.com
- fix for python 3.10
- added patches
fix https://github.com/datacenter/acitoolkit/commit/629b84887dd0f0183b81efc8adb16817f985541a
+ python-acitoolkit-python-310.patch
-------------------------------------------------------------------
Thu Mar 28 10:10:24 UTC 2019 - Tomáš Chvátal <tchvatal@suse.com>
- Do not require python-deepdiff, such package does not exist
-------------------------------------------------------------------
Tue Mar 19 15:41:31 UTC 2019 - John Vandenberg <jayvdb@gmail.com>
- Remove runtime dependencies from the library:
* remove-app-dependency.patch
- Add NOTICE to %license
- Create sub-packages -doc, -doc-applications and -doc-samples
-------------------------------------------------------------------
Thu Nov 1 09:09:18 UTC 2018 - Jan Engelhardt <jengelh@inai.de>
- Fix RAS syndrome. Expand "APIC".
-------------------------------------------------------------------
Wed Oct 31 12:19:17 UTC 2018 - Tomáš Chvátal <tchvatal@suse.com>
- Version update to 0.4 release:
* Many various small fixes
* Better python3 compatibility
- Remove merged acitoolkit-urlparse.patch
-------------------------------------------------------------------
Wed Oct 31 12:10:17 UTC 2018 - Tomáš Chvátal <tchvatal@suse.com>
- Add patch to fix import error under py3:
* acitoolkit-urlparse.patch
- Fix permissions on the LICENSE file
- State group properly
-------------------------------------------------------------------
Tue Oct 30 10:55:38 UTC 2018 - Tomáš Chvátal <tchvatal@suse.com>
- Add remaining flask dependencies in order to be acceptable
in Tumbleweed
-------------------------------------------------------------------
Thu Oct 18 08:10:43 UTC 2018 - Tomáš Chvátal <tchvatal@suse.com>
- Respect the package requirements specified in setup.py
* Adds many flask dep/requires
- Run the tests
-------------------------------------------------------------------
Tue Oct 16 15:43:21 UTC 2018 - sma@suse.com
- Changed the spec file to singlespec format. Also removed
duplicates in the RPM. And explicit set the permission of all
files.
-------------------------------------------------------------------
Mon Oct 15 15:03:28 UTC 2018 - sma@suse.com
- Corrected the spelling in .spec file: python-sqlalchemy should
be python-SQLAlchemy.
-------------------------------------------------------------------
Wed Oct 10 15:33:53 UTC 2018 - sma@suse.com
- License should be Apache-2.0 according to the LICENSE file
in the v0.3.2.tar.gz tarball.
-------------------------------------------------------------------
Thu Dec 21 12:02:53 UTC 2017 - mmnelemane@suse.com
- Fix Requires python-oslo.config
-------------------------------------------------------------------
Fri Aug 25 14:01:52 UTC 2017 - mmnelemane@suse.com
- Initial packaging for ACI firmware 2.2.2

142
python-acitoolkit.spec Normal file
View File

@@ -0,0 +1,142 @@
#
# spec file for package python-acitoolkit
#
# Copyright (c) 2024 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/
#
Name: python-acitoolkit
Version: 0.4
Release: 0
Summary: Python library for programming ACI
License: Apache-2.0
URL: https://github.com/datacenter/acitoolkit
Source: https://github.com/datacenter/acitoolkit/archive/v%{version}.tar.gz
Patch0: remove-app-dependency.patch
# https://github.com/datacenter/acitoolkit/commit/629b84887dd0f0183b81efc8adb16817f985541a
Patch1: python-acitoolkit-python-310.patch
Patch2: no-more-makesuite.patch
BuildRequires: %{python_module graphviz}
BuildRequires: %{python_module jsonschema}
BuildRequires: %{python_module pbr}
BuildRequires: %{python_module pip}
BuildRequires: %{python_module requests}
BuildRequires: %{python_module tabulate}
BuildRequires: %{python_module websocket-client > 0.33.0}
BuildRequires: %{python_module wheel}
BuildRequires: dos2unix
BuildRequires: fdupes
BuildRequires: python-rpm-macros
Requires: python-graphviz
Requires: python-jsonschema
Requires: python-requests
Requires: python-tabulate
Requires: python-websocket-client > 0.33.0
BuildArch: noarch
%python_subpackages
%description
Python Library for configuring the Cisco Application Policy
Infrastructure Controller.
%package -n %{name}-doc
Summary: Documentation for the Python acitoolkit library
%description -n %{name}-doc
Python Library for configuring the Cisco Application Policy
Infrastructure Controller.
This package contains the documentation.
%package -n %{name}-doc-applications
Summary: Applications for the Python acitoolkit library
Requires: python-acitoolkit-doc
Requires: python3-Flask
Requires: python3-Flask-Admin
Requires: python3-Flask-Bootstrap
Requires: python3-Flask-Cors
Requires: python3-Flask-HTTPAuth
Requires: python3-Flask-SQLAlchemy
Requires: python3-Flask-WTF
Requires: python3-GitPython
Requires: python3-py-radix
%description -n %{name}-doc-applications
Python applications using acitoolkit for programming ACI.
%package -n %{name}-doc-samples
Summary: Sample code for the Python acitoolkit library
Requires: %{name}-doc
Requires: python3-PyMySQL
%description -n %{name}-doc-samples
Python samples for using acitoolkit for programming ACI.
%prep
%setup -q -n acitoolkit-%{version}
# Remove dependencies of applications/ and samples/ from the library
%autopatch -p1
chmod -x LICENSE NOTICE
sed -i '1{/^#!.*env python/d}' acitoolkit/*.py samples/*.py samples/switch-commands/*.py
# drop unneeded six dependency
sed -i 's/six.moves.queue/queue/' acitoolkit/acisession.py
rm applications/cableplan/.coverage applications/eventfeeds/.gitignore
dos2unix \
samples/aci-add-static-binding-leaves.py \
applications/configpush/json_schema.json \
applications/search/static/*.css applications/search/static/*.js \
applications/connection_search/static/*.js \
applications/reports/static/*.css applications/reports/static/*.js
%build
%pyproject_wheel
%install
%pyproject_install
%python_expand %fdupes %{buildroot}%{$python_sitelib}
# Install docs, samples and applications into a common doc area
install -d %{buildroot}%{_defaultdocdir}/%{name}
cp -rp docs/source/*.rst docs/source/*.png docs/source/stats/ samples/ applications/ %{buildroot}%{_defaultdocdir}/%{name}/
find %{buildroot}%{_defaultdocdir}/%{name}/ -type f -exec chmod a-x \{\} \;
%fdupes %{buildroot}%{_defaultdocdir}/%{name}/
%check
%python_expand PYTHONPATH=%{buildroot}%{$python_sitelib} $python tests/acitoolkit_test.py -v offline
%files -n %{name}-doc
%license LICENSE NOTICE
%dir %{_defaultdocdir}/%{name}
%{_defaultdocdir}/%{name}/*.rst
%{_defaultdocdir}/%{name}/*.png
%{_defaultdocdir}/%{name}/stats/
%files -n %{name}-doc-samples
%{_defaultdocdir}/%{name}/samples/
%files -n %{name}-doc-applications
%{_defaultdocdir}/%{name}/applications/
%files %{python_files}
%doc README.md
%license LICENSE NOTICE
%{python_sitelib}/acitoolkit
%{python_sitelib}/acitoolkit-%{version}.dist-info
%changelog

View File

@@ -0,0 +1,25 @@
--- acitoolkit-0.4/setup.py.orig 2019-03-19 12:54:59.889072645 +0700
+++ acitoolkit-0.4/setup.py 2019-03-19 12:56:35.661890919 +0700
@@ -21,21 +21,10 @@
license=about["__license__"],
install_requires=["requests",
"websocket-client>0.33.0",
- "gitpython",
- "flask-httpauth",
- "flask-sqlalchemy",
- "flask-admin",
- "flask-bootstrap",
- "flask-wtf",
- "flask-cors",
- "flask",
- "pymysql",
"tabulate",
- "py-radix",
"jsonschema",
"graphviz",
- "ipaddress",
- "deepdiff"],
+ ],
tests_requires=["mock"],
description="This library allows basic Cisco ACI APIC configuration.",
)

3
v0.4.tar.gz Normal file
View File

@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:504cdced7b1d334c4d9ced58cdcc3705f93bd04adf4917aae6b918bf06165272
size 4351036