From 447a1321e8a15b588821fd95993ec09c130b9067e0d4d13cf30c8556c101a39c Mon Sep 17 00:00:00 2001 From: Matej Cepl Date: Mon, 17 Oct 2022 18:04:56 +0000 Subject: [PATCH] - Add fix-maint-issue.patch (fixes bsc#1203311). - No, we actually don't need python-six at all. OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-softlayer?expand=0&rev=31 --- fix-maint-issue.patch | 192 +++++++++++++++++++++++++++++++++++++++ python-softlayer.changes | 6 ++ python-softlayer.spec | 8 +- 3 files changed, 202 insertions(+), 4 deletions(-) create mode 100644 fix-maint-issue.patch diff --git a/fix-maint-issue.patch b/fix-maint-issue.patch new file mode 100644 index 0000000..7b3a464 --- /dev/null +++ b/fix-maint-issue.patch @@ -0,0 +1,192 @@ +From 392c38718c172a8f76c1f53fbe23ba2659cf320c Mon Sep 17 00:00:00 2001 +From: Christopher Gallo +Date: Fri, 23 Sep 2022 13:31:01 -0500 +Subject: [PATCH 1/4] updated release workflow for the correct url + +--- + .github/workflows/release.yml | 2 + SoftLayer/CLI/cdn/detail.py | 2 + SoftLayer/fixtures/SoftLayer_Network_CdnMarketplace_Configuration_Mapping.py | 6 +- + SoftLayer/fixtures/SoftLayer_Network_CdnMarketplace_Metrics.py | 6 +- + tests/CLI/modules/cdn_tests.py | 29 ++++------ + tests/managers/cdn_tests.py | 19 +++++- + 6 files changed, 37 insertions(+), 27 deletions(-) + +--- a/.github/workflows/release.yml ++++ b/.github/workflows/release.yml +@@ -48,5 +48,5 @@ jobs: + with: + user: __token__ + password: ${{ secrets.CGALLO_PYPI }} +- repository_url: https://pypi.org/legacy/ ++ repository_url: https://upload.pypi.org/legacy/ + +--- a/SoftLayer/CLI/cdn/detail.py ++++ b/SoftLayer/CLI/cdn/detail.py +@@ -41,6 +41,6 @@ def cli(env, unique_id, history): + table.add_row(['status', cdn_mapping['status']]) + table.add_row(['total_bandwidth', total_bandwidth]) + table.add_row(['total_hits', total_hits]) +- table.add_row(['hit_radio', hit_ratio]) ++ table.add_row(['hit_ratio', hit_ratio]) + + env.fout(table) +--- a/SoftLayer/fixtures/SoftLayer_Network_CdnMarketplace_Configuration_Mapping.py ++++ b/SoftLayer/fixtures/SoftLayer_Network_CdnMarketplace_Configuration_Mapping.py +@@ -11,7 +11,7 @@ listDomainMappings = [ + "path": "/", + "protocol": "HTTP", + "status": "CNAME_CONFIGURATION", +- "uniqueId": "9934111111111", ++ "uniqueId": "11223344", + "vendorName": "akamai" + } + ] +@@ -28,7 +28,7 @@ listDomainMappingByUniqueId = [ + "path": "/", + "protocol": "HTTP", + "status": "CNAME_CONFIGURATION", +- "uniqueId": "9934111111111", ++ "uniqueId": "11223344", + "vendorName": "akamai" + } + ] +@@ -41,7 +41,7 @@ updateDomainMapping = [ + "performanceConfiguration": "Large file optimization", + "protocol": "HTTP", + "respectHeaders": True, +- "uniqueId": "424406419091111", ++ "uniqueId": "11223344", + "vendorName": "akamai", + "header": "www.test.com", + "httpPort": 83, +--- a/SoftLayer/fixtures/SoftLayer_Network_CdnMarketplace_Metrics.py ++++ b/SoftLayer/fixtures/SoftLayer_Network_CdnMarketplace_Metrics.py +@@ -6,9 +6,9 @@ getMappingUsageMetrics = [ + "HitRatio" + ], + "totals": [ +- "0.0", +- "0", +- "0.0" ++ 1.0, ++ 3, ++ 2.0 + ], + "type": "TOTALS" + } +--- a/tests/CLI/modules/cdn_tests.py ++++ b/tests/CLI/modules/cdn_tests.py +@@ -4,7 +4,9 @@ + + :license: MIT, see LICENSE for more details. + """ ++import datetime + import json ++from unittest import mock as mock + + from SoftLayer.CLI import exceptions + from SoftLayer import testing +@@ -21,27 +23,22 @@ class CdnTests(testing.TestCase): + 'domain': 'test.example.com', + 'origin': '1.1.1.1', + 'status': 'CNAME_CONFIGURATION', +- 'unique_id': '9934111111111', ++ 'unique_id': '11223344', + 'vendor': 'akamai'}] + ) + +- def test_detail_account(self): ++ @mock.patch('SoftLayer.utils.days_to_datetime') ++ def test_detail_account(self, mock_now): ++ mock_now.return_value = datetime.datetime(2020, 1, 1) + result = self.run_command(['cdn', 'detail', '--history=30', '1245']) + + self.assert_no_fail(result) +- self.assertEqual(json.loads(result.output), +- {'hit_radio': '0.0 %', +- 'hostname': 'test.example.com', +- 'origin': '1.1.1.1', +- 'origin_type': 'HOST_SERVER', +- 'path': '/', +- 'protocol': 'HTTP', +- 'provider': 'akamai', +- 'status': 'CNAME_CONFIGURATION', +- 'total_bandwidth': '0.0 GB', +- 'total_hits': '0', +- 'unique_id': '9934111111111'} +- ) ++ api_results = json.loads(result.output) ++ self.assertEqual(api_results['hit_ratio'], '2.0 %') ++ self.assertEqual(api_results['total_bandwidth'], '1.0 GB') ++ self.assertEqual(api_results['total_hits'], 3) ++ self.assertEqual(api_results['hostname'], 'test.example.com') ++ self.assertEqual(api_results['protocol'], 'HTTP') + + def test_purge_content(self): + result = self.run_command(['cdn', 'purge', '1234', +@@ -122,7 +119,7 @@ class CdnTests(testing.TestCase): + self.assertEqual('include: test', header_result['Cache key optimization']) + + def test_edit_cache_by_uniqueId(self): +- result = self.run_command(['cdn', 'edit', '9934111111111', '--cache', 'include-specified', '--cache', 'test']) ++ result = self.run_command(['cdn', 'edit', '11223344', '--cache', 'include-specified', '--cache', 'test']) + self.assert_no_fail(result) + header_result = json.loads(result.output) + self.assertEqual('include: test', header_result['Cache key optimization']) +--- a/tests/managers/cdn_tests.py ++++ b/tests/managers/cdn_tests.py +@@ -4,6 +4,8 @@ + + :license: MIT, see LICENSE for more details. + """ ++import datetime ++from unittest import mock as mock + + from SoftLayer import fixtures + from SoftLayer.managers import cdn +@@ -28,7 +30,9 @@ class CDNTests(testing.TestCase): + 'listDomainMappingByUniqueId', + args=args) + +- def test_detail_usage_metric(self): ++ @mock.patch('SoftLayer.utils.days_to_datetime') ++ def test_detail_usage_metric(self, mock_now): ++ mock_now.return_value = datetime.datetime(2020, 1, 1) + self.cdn_client.get_usage_metrics(12345, history=30, frequency="aggregate") + + args = (12345, +@@ -39,6 +43,15 @@ class CDNTests(testing.TestCase): + 'getMappingUsageMetrics', + args=args) + ++ # Does this still work in 2038 ? https://github.com/softlayer/softlayer-python/issues/1764 for context ++ @mock.patch('SoftLayer.utils.days_to_datetime') ++ def test_detail_usage_metric_future(self, mock_now): ++ mock_now.return_value = datetime.datetime(2040, 1, 1) ++ self.assertRaises( ++ OverflowError, ++ self.cdn_client.get_usage_metrics, 12345, history=30, frequency="aggregate" ++ ) ++ + def test_get_origins(self): + self.cdn_client.get_origins("12345") + self.assert_called_with('SoftLayer_Network_CdnMarketplace_Configuration_Mapping_Path', +@@ -105,7 +118,7 @@ class CDNTests(testing.TestCase): + args=args) + + def test_cdn_edit(self): +- identifier = '9934111111111' ++ identifier = '11223344' + header = 'www.test.com' + result = self.cdn_client.edit(identifier, header=header) + +@@ -116,7 +129,7 @@ class CDNTests(testing.TestCase): + 'SoftLayer_Network_CdnMarketplace_Configuration_Mapping', + 'updateDomainMapping', + args=({ +- 'uniqueId': '9934111111111', ++ 'uniqueId': '11223344', + 'originType': 'HOST_SERVER', + 'protocol': 'HTTP', + 'path': '/', diff --git a/python-softlayer.changes b/python-softlayer.changes index 5aa410d..1b83182 100644 --- a/python-softlayer.changes +++ b/python-softlayer.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Mon Oct 17 18:04:18 UTC 2022 - Matej Cepl + +- Add fix-maint-issue.patch (fixes bsc#1203311). +- No, we actually don't need python-six at all. + ------------------------------------------------------------------- Thu Oct 6 06:15:44 UTC 2022 - Matej Cepl diff --git a/python-softlayer.spec b/python-softlayer.spec index b05c806..989ee5f 100644 --- a/python-softlayer.spec +++ b/python-softlayer.spec @@ -16,7 +16,6 @@ # -%{?!python_module:%define python_module() python-%{**} python3-%{**}} %define skip_python2 1 Name: python-softlayer Version: 6.1.2 @@ -25,6 +24,9 @@ Summary: A set of Python libraries that assist in calling the SoftLayer A License: MIT URL: https://github.com/softlayer/softlayer-python Source: https://github.com/softlayer/softlayer-python/archive/v%{version}.tar.gz +# PATCH-FIX-UPSTREAM fix-maint-issue.patch bsc#1203311 mcepl@suse.com +# xmlrpc y2038 problem +Patch0: fix-maint-issue.patch BuildRequires: %{python_module click >= 8.0.4} BuildRequires: %{python_module prettytable >= 2.5.0} BuildRequires: %{python_module prompt_toolkit >= 2} @@ -33,7 +35,6 @@ BuildRequires: %{python_module pytest} BuildRequires: %{python_module requests >= 2.20.0} BuildRequires: %{python_module rich >= 12.5.1} BuildRequires: %{python_module setuptools} -BuildRequires: %{python_module six >= 1.7.0} BuildRequires: %{python_module softlayer-zeep >= 5.0.0} BuildRequires: %{python_module testtools} BuildRequires: %{python_module typing_extensions} @@ -47,7 +48,6 @@ Requires: python-pygments >= 2.0.0 Requires: python-requests >= 2.20.0 Requires: python-rich >= 12.5.1 Requires: python-setuptools -Requires: python-six >= 1.7.0 Requires: python-softlayer-zeep >= 5.0.0 Requires: python-typing_extensions Requires: python-urllib3 >= 1.24 @@ -60,7 +60,7 @@ Requires(postun):update-alternatives This library provides a simple Python client to interact with SoftLayer's XML-RPC API. %prep -%setup -q -n softlayer-python-%{version} +%autosetup -p1 -n softlayer-python-%{version} %build %python_build