Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package python-softlayer for openSUSE:Factory checked in at 2022-10-25 11:20:07 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/python-softlayer (Old) and /work/SRC/openSUSE:Factory/.python-softlayer.new.2275 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-softlayer" Tue Oct 25 11:20:07 2022 rev:17 rq:1030941 version:6.1.2 Changes: -------- --- /work/SRC/openSUSE:Factory/python-softlayer/python-softlayer.changes 2022-10-16 16:09:20.726772946 +0200 +++ /work/SRC/openSUSE:Factory/.python-softlayer.new.2275/python-softlayer.changes 2022-10-25 11:20:34.174211404 +0200 @@ -1,0 +2,6 @@ +Mon Oct 17 18:04:18 UTC 2022 - Matej Cepl <mc...@suse.com> + +- Add fix-maint-issue.patch (fixes bsc#1203311). +- No, we actually don't need python-six at all. + +------------------------------------------------------------------- New: ---- fix-maint-issue.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python-softlayer.spec ++++++ --- /var/tmp/diff_new_pack.gTciNh/_old 2022-10-25 11:20:34.982213195 +0200 +++ /var/tmp/diff_new_pack.gTciNh/_new 2022-10-25 11:20:34.986213205 +0200 @@ -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 @@ 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 mc...@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 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-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 @@ 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 ++++++ fix-maint-issue.patch ++++++ >From 392c38718c172a8f76c1f53fbe23ba2659cf320c Mon Sep 17 00:00:00 2001 From: Christopher Gallo <chrisaga...@gmail.com> 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': '/',