Stable: Python 3 migration with gradual rollout
I’m here to announce that today we are migrating our codebase to Python 3. Earlier, we announced Python 3 migration for Beta and there are some changes compared with the Beta release, namely, we have decided to keep the former name for the alt-python27-cllib package to provide backward compatibility and proper downgrade.
And now, all packages related to this release are scheduled for gradual rollout from our production repository and will be available for all customers within three weeks.
Rollout slot for CloudLinux 6/ 6 hybrid /7: 1
Rollout slot for CloudLinux 8: 2
Rolled out to: 1%
ETA for 100% rollout: March, 31st
Instruction for installation, update and downgrade
LVE-Manager, LVE-Utils, LVE-Stats, CageFS, Alt-Python27-cllib
Install:
# yum install lvemanager lve-utils lve-stats cagefs alt-python27-cllib cloudlinux-linksafe
Update:
# yum update lvemanager lve-utils lve-stats cagefs alt-python27-cllib cloudlinux-linksafe
Downgrade:
# yum downgrade lvemanager lve-utils lve-stats cagefs alt-python27-cllib cagefs-safebin cloudlinux-linksafe
Immediate installation (via bypass):
- For CloudLinux 6 / 6 hybrid / 7
yum install lvemanager lve-utils lve-stats cagefs alt-python27-cllib cloudlinux-linksafe --enablerepo=cloudlinux-rollout-1-bypass
- For CloudLinux 8
yum install lvemanager lve-utils lve-stats cagefs alt-python27-cllib cloudlinux-linksafe --enablerepo=cloudlinux-rollout-2-bypass
MySQL Governor
Install:
# yum install governor-mysql
Update:
# yum update governor-mysql
Downgrade:
# yum downgrade governor-mysql
Immediate installation (via bypass):
- For CloudLinux 6 / 6 hybrid / 7
yum install governor-mysql --enablerepo=cloudlinux-rollout-1-bypass
Alt-mod-passenger
EasyApache 3 (note EA3 EoL), Plesk, DirectAdmin and no control panel RPM-based platforms:
Install:
# yum install alt-mod-passenger
Update:
# yum update alt-mod-passenger
Downgrade:
# yum downgrade alt-mod-passenger
Immediate installation (via bypass):
- For CloudLinux 6 / 6 hybrid / 7
yum install alt-mod-passenger --enablerepo=cloudlinux-rollout-1-bypass
- For CloudLinux 8
yum install alt-mod-passenger --enablerepo=cloudlinux-rollout-2-bypass
httpd24
Install:
# yum install httpd24-alt-mod-passenger
Update:
# yum update httpd24-alt-mod-passenger
Downgrade:
# yum downgrade httpd24-alt-mod-passenger
Immediate installation (via bypass):
- For CloudLinux 6 / 6 hybrid / 7
yum install httpd24-alt-mod-passenger --enablerepo=cloudlinux-rollout-1-bypass
- For CloudLinux 8
yum install httpd24-alt-mod-passenger --enablerepo=cloudlinux-rollout-2-bypass
Bypass commands (immediate installation):
yum install --enablerepo=cloudlinux-rollout-1-bypass <packageName>
yum install --enablerepo=cloudlinux-rollout-2-bypass <packageName>
Changelog
lve-manager-6.0.4-1
- LVEMAN-1653: Wrong stack trace in PHP Selector
- LU-1500: Create
master-py3
branch - LU-1500: Add commented
pylint --py3k
- LU-1500: Update specifiction file for LVE Manager
- LU-1566: Add
-bb
option to LVE Manager - Fix shebangs with
-s
and-bb
keys for LVE Manager - LVEMAN-1603: Python 2 to 3 migration: LVE Manager: replace with compatible imports + unit tests
- LU-1492: Write errors in case of bad cPanel configs
- LVEMAN-1603: Migrate LVE Manager to Python 3: stabilizing for rpms
- LVEMAN-1603: Fix the
collect_py_files
script to work with Python 3 - LU-1589: Fix Wizard errors on CloudLinux 8
- LU-1591: Fix the
fix-homedirs
command - LVEMAN-1628: Fix an issue with Pylint that does not start in LVE Manager spec
- LVEMAN-1630: Fix LVE Manager unit tests mocks
- LU-1607: LVE Manager: add
interpolation=None
- LVEMAN-1603: Migrate LVE Manager to Python 3: stabilising for rpms
- WEB-1733: Adapt Protractor tests to Python 3
- WEB-1774: Fix traceback when try to create a ticket to Support (Python 3 branch)
- LVEMAN-1623: Python/Node.js Selector: improve integration with LiteSpeed
- LU-1583: Enable Pylint py3k LVE Manager
- PTCLLIB-182: Fix hooks installation on cPanel 84+
- LVEMAN-1586 : Fix cl-quota
- LVEMAN-1637: Make possible
ea-ruby24-mod_passenger
works with CloudLinux Python Selector - LU-1630: (LVE Manager) usage of
os.makedirs
on Python 3 - Move News component to module
- Fix no-panel PHP version bugs
- Remove sourcemap for jQuery
- Remove circular dependencies
- Hide Domains tab for PHP Selector
- WEB-1791: Ignore errors from other plugins in Plesk
- LU-1664:
post_modify_domain
should not crash on Plesk - PTCLLIB-201: Fix wrong obsoletes in
alt-python27-cllib
that breaks yum update - LVEMAN-1626: Selector-ctl breaks PHP if non-existant PHP version is selected
- WEB-1639: Cover Wizard by Protractor tests:
mod_hostinglimits
- WEB-1780: Run Wizard tests on Protractor
lve-utils-4.0.4-1
- LU-1687: Fix traceback of the
cldiag --cron-check
command - LU-1637:
/usr/sbin/lveps
cuts user IDs > 8 - LU-1500: Create
master-py3
branch - LU-1500: Add commented
pylint --py3k
- LU-1486: Build
lve-utils
package for CloudLinux 8 - LU-1500: Version up
- Version change
- LU-1492: Fix a bug with
_parse_lve_lines
- LU-1492: Do not call struct.pack with float argument
- LU-1500: Update spec file for
python_lve
- LU-1566 Add the
-bb
option to the lve-utils - LU-1492: Migrate lve-utils code to use universal Python 2/3 code
- Fix shebangs with
-s
and-bb
keys for lve-utils - LU-1492: Migrate lve-utils code to Python 3 (limits manipulation)
- Fix writing MySQL Governor config file
- LU-1492: Write errors in case of bad cPanel configs
- LU-1492: Use
process.cmdline
as a method because of new psutil version - PTCLLIB-184 : (Py_lve) Fix DirectAdmin CP API tests
- LU-1492: Remove unneeded
encode()
in clcontrollib for Plesk - LU-1492: Fix
cldiaglib
error reporting about user's packages - LU-1492: Fix the
migration_ve1_to_v2.py
script - LU-1492: Enable unit tests for the lve-utils package
- LU-1492: Fix checking users's packages in cldiaglib
- Fix removed variable initialisation
- LU-1589: Fix Wizard errors on CloudLinux 8
- LU-1501: Manually build pyc pyo for CloudLinux 8
- LU-1604: Fix lve-utils CloudLinux 8 and Python 3 tests
- LU-1607: LVE-Utils: add
interpolation=None
- LU-1620 Fix clsummary enabling/disabling error
- LU-1629:
cl-summary get-remote
returns-42
for CageFS parameters - LU-1637:
/usr/sbin/lveps
cuts user IDs > 8 - LU-1630: Usage of
os.makedirs
on Python 3 - PTCLLIB-201: Fix wrong obsoletes in alt-python27-cllib that breaks yum update
- CAG-1029: Fix writing
toprettyxml
to files
lve-stats-3.0.1-1
- LU-1598: Add
Requires: jq
for the lve-stats-itests package - LU-1583: Enable pylint py3k lve-stats
- LVES-987: Make dbmigrator workable
- LU-1500: Create master-py3 branch
- LU-1500: Add commented pylint --py3k
- LU-1500: Version up
- LVES-968: Update dependencies and shebangs for Python 3
- LVES-968: Use corresponding file mode to write bytes and strings
- LVES-968: Update code to use prettytable version
- LVES-968: Update LiteSpeed library
- LVES-968: Update Sentry library
- LVES-968: Update code that uses configparser
- LVES-968: Do not raise StopIteration in
__iter__
- LVES-968: Update typing in statsnotifier
- LVES-968: Update
res_mem_collector
to use bytes during lveps parsing - LVES-968: Fix bytes manipulation in snapshots
- LVES-968: Replace
assertItemsEqual
withassertCountEqual
- LVES-968: Remove unneeded Matplotlib test
- LVES-968: Call tzset after modifying
os.environ['TZ']
- LVES-968: Fix usage of newer psutil
- LVES-968: Avoid comparison of dictionaries as strings
- LVES-968: Replace StringIO module with IO
- LVES-968: Fix invalid imports for Python 3
- LVES-968: Make stderr redirection to the
/dev/null
buffer - LVES-968: Minor fixes in order to make pylint and unit tests work
- Update specification of lve-stats
- Fix lve-stats tests on Python 3 (
psycopq2
andlve_read_snapshot
) - LU-1566: Add
-bb
option to lve-stats - LVES-968: Fix lve-stats unit tests run with
-bb
- LVES-968: Final checks of lve-stats with Python 3 from real repositories
- LU-1598: Add
Requires: jq
for lve-stats-itests package - LU-1583: Enable pylint py3k lve-stats
- LVES-987: Make dbmigrator workable
- LVES-988: Fix traceback in postun section of previous installed lve-stats package
- LVES-990: Fix traceback of LVE-stats server after downgrade
- PTCLLIB-201: Fix wrong obsoletes in the
alt-python27-cllib
that breaks yum update - LVES-947: LVE-stats should not treat admins users as resellers customers
- LVES-992: Fix Unicode characters in email templates
cagefs-7.0.3-1
- LU-1500: Create
master-py3
branch - LU-1500: Add commented
pylint --py3k
- CAG-987: Build
simple_rpm.so
for alt-python37 - LU-1500: Version up
- LVEMAN-1500: Change the spec file and shebangs for Python 3
- LU-1566: Add
-bb
option to CageFS - LU-1501: Manually build pyc pyo for CloudLinux 8
- CAG-988: Migrate CageFS code to the universal Python 2/3 code (stage 1 + Unicode literals)
- CAG-988: Migrate CageFS code to the universal Python 2/3 code(stage 2)
- CAG-988: Migrate CageFS code to the universal Python 2/3 code (fix errors after migration)
- CAG-988: Migrate CageFS code to the universal Python 2/3 code (fix errors after migration)
- CAG-1010: Set
umask
in CageFS - LU-1607: CageFS: add
interpolation=None
- CAG-988: Migrate CageFS code to the universal Python 2/3 code (fix errors #2)
- LU-1583: Enable pylint py3k CageFS
- PTCLLIB-182: Fix hooks installation on cPanel 84+
- CAG-1014: Investigate failed test 958-list-mounted-users on DirectAdmin
- CAG-1020: Add
python3-virtualenv
andpython36
packages to CageFS - LU-1630: CAG: usage of os.makedirs on Python 3
- LU-1625: Rewrite some expensive CageFS tests as unit tests
- CAG-1027: Fix pickle incompatibility between Python 2 and Python 3
- CAG-1023: Improve help for the
cagefsctl --addrpm PACKAGE
command - PTCLLIB-201: Fix wrong obsoletes in alt-python27-cllib that breaks yum update
- CAG-1011:
jail_shell_disable.sh
improvements - CAG-1029: Fix writing LiteSpeed conf
cloudlinux-linksafe-1-1.25
- LVEMAN-1648: Add
--skip-php-reload
to thecagefsctl --setup-cl-selector
called by the/usr/bin/cl-linksafe-reconfigure
alt-python27-cllib-2.0.8-5
- LU-1500: Create
master-py3
branch - LU-1500: Add commented pylint --py3k
- PTCLLIB-175: Build alt-python27-cllib package for CloudLinux 8
- LU-1500: Version up
- PTCLLIB-179: Replace
assert(Not)Eqals
withassert(Not)Equal
- PTCLLIB-179: Replace deprecated
assertItemsEqual
withassertCountEqual
- PTCLLIB-179: Replace
builtin
imports withbuiltins
- PTCLLIB-179: Replace deprecated NoneType
- PTCLLIB-179: Fix the
reload_processes
function - PTCLLIB-179: Use bytes when parsing php_conf config
- PTCLLIB-179: Fix unit tests behaviour
- PTCLLIB-179: (Stage 2) Safe fixes of futurize
- LU-1500: Update spec and shebangs for Python 3
- PTCLLIB-179: (Nobuild) Stage 2 of futurize
- PTCLLIB-179: (Fixes) Stage 2 of futurize
- PTCLLIB-179: Fix
vendors_api
- PTCLLIB-179: Fix cpapi plugins Plesk users encoding
- PTCLLIB-179: Remove multiple imports on single lines
- LU-1566: Add
-bb
option to cllib - PTCLLIB-179: Use
text=True
in all subprocess calls - LU-1492: Remove byteify usage from cpapi plugins
- Minor fixes to cllib to work on Python 3
- LU-1492: Make hooks installation work on Plesk
- LU-1492: Write errors in case of bad cPanel configs
- LU-1492: Use
text=True
for subprocess while installing cPanel hooks - Add
text=True
to theclcaptain
- PTCLLIB-184 Fix DirectAdmin CP AP tests
- PTCLLIB-183: Rewrite pretrans using Lua
- PTCLLIB-185: Fix admins sync when admin does not have system user
- PTCLLIB-186: Make
db_info
optional, as mentioned in documentation - LVES-968: Make it possible to get raw subprocess from the
run_command
- LU-1501: Add manual pyc pyo build for cllib
- PTCLLIB-191: Fix unit tests
- LU-1589: Fix Wizard errors on CloudLinux 8
- LU-1607: Python-cllib: add
interpolation=None
- LU-1583: Enable pylint py3k for cllib
- LVEMAN-1636: Fix sendmail subprocess error
- PTCLLIB-182: Fix hooks installation on cPanel 84+
- CAG-1014: Investigate failed test 958-list-mounted-users on DirectAdmin
- PTCLLIB-193: Fix issues with upgrade and downgrade of the alt-python-cllib package
- PTCLLIB-183: Rewrite pretrans using Lua
- PTCLLIB-195: Fix NoneType Traceback with whmapi call on cPanel 86.0
- LU-1641: Investigate an issues with CloudLinux 8 installation into empty chroot (ISO install)
- LU-1646: Fix cl-wizard on CloudLinux 7 hybrid
- LU-1630: Usage of
os.makedirs
on Python 3 - CAG-1027: Fix pickle incompatibility between Python 2 and Python 3
- PTCLLIB-201: Fix wrong obsoletes in alt-python27-cllib that breaks yum update
alt-mod-passenger-5.3.7-11
httpd24-alt-mod-passenger5.3.7-11
ea-apache24-mod-alt-passenger-5.3.7-11
- ALMODP-144: Migrate to the Python 3 codebase
- ALMODP-147: Fixed module installation on DirectAdmin
governor-mysql 1.2-53
- MYSQLG-452: CloudLinux8 modularity caching during install, mysql:8.0 as auto version
- MYSQLG-458: Codebase is migrated to Python 3.7
- MYSQLG-468: Added
mariadb104
support - MYSQLG-466: Allow duplicates when reading
/etc/my.cnf
Stay in touch
Please, give us feedback on the latest release or share your ideas and feature requests with the product team via feedback@cloudlinux.com.
If you encounter any issues, do not hesitate and reach out to our support team at https://cloudlinux.zendesk.com/.