Skip to content

packaging: align mysql connector with Marvin - #13840

Open
andrijapanicsb wants to merge 1 commit into
apache:4.22from
andrijapanicsb:agent/align-marvin-mysql-connector
Open

packaging: align mysql connector with Marvin#13840
andrijapanicsb wants to merge 1 commit into
apache:4.22from
andrijapanicsb:agent/align-marvin-mysql-connector

Conversation

@andrijapanicsb

@andrijapanicsb andrijapanicsb commented Aug 10, 2026

Copy link
Copy Markdown
Contributor

Description

This is a small follow-up for #13482.

In #13482 the Marvin dependency was changed to mysql-connector-python >= 8.4.0. The older 8.0.31 connector was installed on the Marvin node and caused smoke test failures when testing against OL10, Debian 12 and SUSE15 management environments.

However, the RPM specs were not updated at the same time. Current situation is:

  • Marvin %post still explicitly installs 8.0.31 before it installs Marvin, while Marvin asks for 8.4.0 or newer;
  • management package installs 8.3.0 on the newer Python path;
  • this path is selected from Python 3.7, while connector 8.4.0 requires Python 3.8 or newer.

Management and Marvin are normally installed on different machines, so this is not a clash between two packages on the same server. Still, each RPM package should install a connector version which matches the component inside that package.

This PR changes both EL and SUSE RPM specs:

  • management installs exact 8.4.0 on Python 3.8 or newer;
  • old Python path keeps 8.0.31;
  • Python version check is corrected from 3.7 to 3.8;
  • Marvin %post installs exact 8.4.0 before installing Marvin.

I checked the current 4.23 RC branches and main, and the same old blocks are still present there. This PR targets 4.22, so it can be merged forward after that.

Types of changes

  • Breaking change (fix or feature that would cause existing functionality to change)
  • New feature (non-breaking change which adds functionality)
  • Bug fix (non-breaking change which fixes an issue)
  • Enhancement (improves an existing feature and functionality)
  • Cleanup (Code refactoring and cleanup, that may add test cases)
  • Build/CI
  • Test (unit or integration test code)

Feature/Enhancement Scale or Bug Severity

Feature/Enhancement Scale

  • Major
  • Minor

Bug Severity

  • BLOCKER
  • Critical
  • Major
  • Minor
  • Trivial

How Has This Been Tested?

Tests done locally:

  • both changed specs parsed with native rpmspec -P on Oracle Linux 8.10;
  • official 8.4.0 wheel SHA-256 was verified;
  • 8.0.31 was installed and imported on Python 3.6, with clean pip check;
  • 8.4.0 was installed and imported on Python 3.12, its Requires-Python: >=3.8 metadata was verified, with clean pip check;
  • both management and Marvin installation commands were tested starting from installed 9.4.0, and both correctly finished with exact 8.4.0;
  • EL and SUSE connector blocks were checked to stay identical.

The upstream multi-distribution package build was also requested on this PR.

@andrijapanicsb

Copy link
Copy Markdown
Contributor Author

@blueorangutan package

@blueorangutan

Copy link
Copy Markdown

@andrijapanicsb a [SL] Jenkins job has been kicked to build packages. It will be bundled with KVM, XenServer and VMware SystemVM templates. I'll keep you posted as I make progress.

@codecov

codecov Bot commented Aug 10, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 17.69%. Comparing base (5328528) to head (f082734).

Additional details and impacted files
@@             Coverage Diff              @@
##               4.22   #13840      +/-   ##
============================================
- Coverage     17.69%   17.69%   -0.01%     
+ Complexity    15835    15834       -1     
============================================
  Files          5925     5925              
  Lines        533539   533539              
  Branches      65274    65274              
============================================
- Hits          94427    94421       -6     
- Misses       428435   428442       +7     
+ Partials      10677    10676       -1     
Flag Coverage Δ
uitests 3.69% <ø> (ø)
unittests 18.77% <ø> (-0.01%) ⬇️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@blueorangutan

Copy link
Copy Markdown

Packaging result [SF]: ✔️ el8 ✔️ el9 ✔️ el10 ✔️ debian ✔️ suse15. SL-JID 18814

@andrijapanicsb

Copy link
Copy Markdown
Contributor Author

@blueorangutan test ol10 kvm-ol10

@DaanHoogland

Copy link
Copy Markdown
Contributor

@blueorangutan test debian12 kvm-debian12

@blueorangutan

Copy link
Copy Markdown

@DaanHoogland a [SL] Trillian-Jenkins test job (debian12 mgmt + kvm-debian12) has been kicked to run smoke tests

@DaanHoogland

DaanHoogland commented Aug 10, 2026

Copy link
Copy Markdown
Contributor

.
@blueorangutan test ol10 kvm-ol10

@andrijapanicsb

Copy link
Copy Markdown
Contributor Author

@ACSHomeBot package kvm el

@andrijapanicsb

Copy link
Copy Markdown
Contributor Author

@ACSHomeBot package el

@ACSHomeBot

ACSHomeBot commented Aug 10, 2026

Copy link
Copy Markdown

Packaging results (commit f082734)

Result Artifact Platform
PASS RPM EL (EL8/9/10)

Test packages are available at:

@apache apache deleted a comment from ACSHomeBot Aug 10, 2026
@apache apache deleted a comment from ACSHomeBot Aug 10, 2026
@andrijapanicsb
andrijapanicsb marked this pull request as ready for review August 10, 2026 16:03
@apache apache deleted a comment from ACSHomeBot Aug 10, 2026
@blueorangutan

Copy link
Copy Markdown

[SF] Trillian test result (tid-16727)
Environment: kvm-debian12 (x2), zone: Advanced Networking with Mgmt server d12
Total time taken: 52950 seconds
Marvin logs: https://github.com/blueorangutan/acs-prs/releases/download/trillian/pr13840-t16727-kvm-debian12.zip
Smoke tests completed. 149 look OK, 0 have errors, 0 did not run
Only failed and skipped tests results shown below:

Test Result Time (s) Test File

@DaanHoogland

Copy link
Copy Markdown
Contributor

@blueorangutan test ol10 kvm-ol10

@blueorangutan

Copy link
Copy Markdown

@DaanHoogland a [SL] Trillian-Jenkins test job (ol10 mgmt + kvm-ol10) has been kicked to run smoke tests

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR updates the EL8 and SUSE15 RPM specs to align the bundled/installed mysql-connector-python versioning with Marvin’s >= 8.4.0 requirement, fixing packaging-driven connector/Python mismatches seen in smoke tests on newer distros.

Changes:

  • Update the bundled management wheel from mysql-connector-python 8.3.0 to 8.4.0.
  • Correct the Python version gate for installing the newer connector from >= 3.7 to >= 3.8.
  • Update the Marvin %post connector install to use 8.4.0 instead of 8.0.31.

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated 6 comments.

File Description
packaging/suse15/cloud.spec Bumps bundled connector wheel to 8.4.0, adjusts Python version check to 3.8+, and updates Marvin %post to install 8.4.0.
packaging/el8/cloud.spec Same connector wheel/version-check/Marvin %post alignment as SUSE15 spec.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment on lines 339 to +343
# Package mysql-connector-python (bundled to avoid dependency on external community repo)
# Version 8.0.31 is the last version supporting Python 3.6 (EL8)
wget -P ${RPM_BUILD_ROOT}%{_datadir}/%{name}-management/setup/wheel https://files.pythonhosted.org/packages/08/1f/42d74bae9dd6dcfec67c9ed0f3fa482b1ae5ac5f117ca82ab589ecb3ca19/mysql_connector_python-8.0.31-py2.py3-none-any.whl
# Version 8.3.0 supports Python 3.8 to 3.12 (EL9, EL10)
wget -P ${RPM_BUILD_ROOT}%{_datadir}/%{name}-management/setup/wheel https://files.pythonhosted.org/packages/53/ed/26a4b8cacb8852c6fd97d2d58a7f2591c41989807ea82bd8d9725a4e6937/mysql_connector_python-8.3.0-py2.py3-none-any.whl
# Version 8.4.0 supports Python 3.8 to 3.12 (EL9, EL10)
wget -P ${RPM_BUILD_ROOT}%{_datadir}/%{name}-management/setup/wheel https://files.pythonhosted.org/packages/d3/fb/c28d1cd952da61f8f27173ce5172f89a65d55b430961a0104b7b294a9bfa/mysql_connector_python-8.4.0-py2.py3-none-any.whl
Comment on lines +462 to 466
if python3 -c 'import sys; sys.exit(0 if sys.version_info >= (3, 8) else 1)'; then
pip3 install %{_datadir}/%{name}-management/setup/wheel/mysql_connector_python-8.4.0-py2.py3-none-any.whl
else
pip3 install %{_datadir}/%{name}-management/setup/wheel/mysql_connector_python-8.0.31-py2.py3-none-any.whl
fi
Comment on lines 600 to 602
%post marvin
pip3 install --upgrade https://files.pythonhosted.org/packages/08/1f/42d74bae9dd6dcfec67c9ed0f3fa482b1ae5ac5f117ca82ab589ecb3ca19/mysql_connector_python-8.0.31-py2.py3-none-any.whl
pip3 install --upgrade https://files.pythonhosted.org/packages/d3/fb/c28d1cd952da61f8f27173ce5172f89a65d55b430961a0104b7b294a9bfa/mysql_connector_python-8.4.0-py2.py3-none-any.whl
pip3 install --upgrade /usr/share/cloudstack-marvin/Marvin-*.tar.gz
Comment thread packaging/el8/cloud.spec
Comment on lines 339 to +343
# Package mysql-connector-python (bundled to avoid dependency on external community repo)
# Version 8.0.31 is the last version supporting Python 3.6 (EL8)
wget -P ${RPM_BUILD_ROOT}%{_datadir}/%{name}-management/setup/wheel https://files.pythonhosted.org/packages/08/1f/42d74bae9dd6dcfec67c9ed0f3fa482b1ae5ac5f117ca82ab589ecb3ca19/mysql_connector_python-8.0.31-py2.py3-none-any.whl
# Version 8.3.0 supports Python 3.8 to 3.12 (EL9, EL10)
wget -P ${RPM_BUILD_ROOT}%{_datadir}/%{name}-management/setup/wheel https://files.pythonhosted.org/packages/53/ed/26a4b8cacb8852c6fd97d2d58a7f2591c41989807ea82bd8d9725a4e6937/mysql_connector_python-8.3.0-py2.py3-none-any.whl
# Version 8.4.0 supports Python 3.8 to 3.12 (EL9, EL10)
wget -P ${RPM_BUILD_ROOT}%{_datadir}/%{name}-management/setup/wheel https://files.pythonhosted.org/packages/d3/fb/c28d1cd952da61f8f27173ce5172f89a65d55b430961a0104b7b294a9bfa/mysql_connector_python-8.4.0-py2.py3-none-any.whl
Comment thread packaging/el8/cloud.spec
Comment on lines +462 to 466
if python3 -c 'import sys; sys.exit(0 if sys.version_info >= (3, 8) else 1)'; then
pip3 install %{_datadir}/%{name}-management/setup/wheel/mysql_connector_python-8.4.0-py2.py3-none-any.whl
else
pip3 install %{_datadir}/%{name}-management/setup/wheel/mysql_connector_python-8.0.31-py2.py3-none-any.whl
fi
Comment thread packaging/el8/cloud.spec
Comment on lines 600 to 602
%post marvin
pip3 install --upgrade https://files.pythonhosted.org/packages/08/1f/42d74bae9dd6dcfec67c9ed0f3fa482b1ae5ac5f117ca82ab589ecb3ca19/mysql_connector_python-8.0.31-py2.py3-none-any.whl
pip3 install --upgrade https://files.pythonhosted.org/packages/d3/fb/c28d1cd952da61f8f27173ce5172f89a65d55b430961a0104b7b294a9bfa/mysql_connector_python-8.4.0-py2.py3-none-any.whl
pip3 install --upgrade /usr/share/cloudstack-marvin/Marvin-*.tar.gz
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants