From 797ab35c030054d7d56320a513e85f1be747b6e2 Mon Sep 17 00:00:00 2001 From: David Moreau Simard Date: Sep 11 2018 17:35:49 +0000 Subject: Switch default to python3 and ship logging configuration ansible defaults to python3 now, let's do the same. Instead of poorly supporting both py2 and py3 simultaneously, let's have good support for py3 instead. --- diff --git a/ara.cfg b/ara.cfg index 64c454f..9901032 100644 --- a/ara.cfg +++ b/ara.cfg @@ -6,6 +6,6 @@ local_tmp = /var/lib/ara/.ansible/tmp # ARA-specific configuration # http://ara.readthedocs.io/en/latest/configuration.html database = sqlite:////var/lib/ara/ansible.sqlite -logfile = /var/log/ara/ara.log +logconfig = /etc/ara/logging-config.yaml host = 127.0.0.1 port = 9191 diff --git a/ara.spec b/ara.spec index a65ef6e..5160aee 100644 --- a/ara.spec +++ b/ara.spec @@ -1,6 +1,3 @@ -%if 0%{?fedora} -%global with_python3 1 -%endif %global package_name ara %global common_desc \ @@ -17,103 +14,20 @@ URL: https://git.openstack.org/cgit/openstack/ara Source0: https://pypi.io/packages/source/a/%{package_name}/%{package_name}-%{version}.tar.gz Source1: ara-server.service Source2: ara.cfg -Source3: ara.logrotate +Source3: logging-config.yaml +Source4: ara.logrotate BuildArch: noarch %{?systemd_requires} BuildRequires: systemd BuildRequires: git -Requires: python2-%{package_name} = %{version}-%{release} -Requires: %{package_name}-common = %{version}-%{release} - -%description -%{common_desc} - -%if 0%{?with_python3} -%package -n %{package_name}-python3 -Summary: %{summary} - Requires: python3-%{package_name} = %{version}-%{release} Requires: %{package_name}-common = %{version}-%{release} -%description -n %{package_name}-python3 -%{common_desc} -%endif - -%package -n python2-%{package_name} -Summary: %{summary} - -BuildRequires: python2-devel -BuildRequires: python2-pbr -BuildRequires: python2-setuptools -# Test dependencies for check macro -BuildRequires: ansible >= 2.4.0.0 -BuildRequires: python2-flask >= 0.12.4 -BuildRequires: python2-flask-migrate -BuildRequires: python2-jinja2 >= 2.9 -BuildRequires: python2-junit_xml -BuildRequires: python2-lxml -BuildRequires: python2-oslo-serialization -BuildRequires: python2-oslo-utils -BuildRequires: python2-mock -BuildRequires: python2-pyfakefs -BuildRequires: python2-pygments >= 1.6 -BuildRequires: python2-pytest -BuildRequires: python2-six -BuildRequires: python2-sqlalchemy -BuildRequires: python2-subunit -BuildRequires: python2-XStatic -BuildRequires: python2-XStatic-Bootstrap-SCSS -BuildRequires: python2-XStatic-DataTables -BuildRequires: python2-XStatic-jQuery -BuildRequires: python2-XStatic-Patternfly -BuildRequires: python2-XStatic-Patternfly-Bootstrap-Treeview -BuildRequires: python-cliff -BuildRequires: python-flask-script -BuildRequires: python-frozen-flask - -Requires: ansible >= 2.4.0.0 -Requires: python2-flask >= 0.12.4 -Requires: python2-flask-migrate -Requires: python2-jinja2 >= 2.9 -Requires: python2-junit_xml -Requires: python2-oslo-serialization -Requires: python2-oslo-utils -Requires: python2-pyfakefs -Requires: python2-pygments >= 1.6 -Requires: python2-six -Requires: python2-sqlalchemy -Requires: python2-subunit -Requires: python2-XStatic -Requires: python2-XStatic-Bootstrap-SCSS -Requires: python2-XStatic-DataTables -Requires: python2-XStatic-jQuery -Requires: python2-XStatic-Patternfly -Requires: python2-XStatic-Patternfly-Bootstrap-Treeview -Requires: python-cliff -Requires: python-flask-script -Requires: python-frozen-flask - -%{?python_provide:%python_provide python2-%{package_name}} - -%description -n python2-%{package_name} -%{common_desc} - -%package -n python2-%{package_name}-tests -Summary: Tests for %{package_name} - -Requires: python2-%{package_name} = %{version}-%{release} -Requires: python2-lxml -Requires: python2-mock -Requires: python2-pytest - -%description -n python2-%{package_name}-tests +%description %{common_desc} -This package contains the test files. - -%if 0%{?with_python3} %package -n python3-%{package_name} Summary: %{summary} @@ -121,7 +35,7 @@ BuildRequires: python3-devel BuildRequires: python3-pbr BuildRequires: python3-setuptools # Test dependencies for check macro -BuildRequires: ansible-python3 >= 2.4.0.0 +BuildRequires: ansible >= 2.4.0.0 BuildRequires: python3-cliff BuildRequires: python3-flask >= 0.12.4 BuildRequires: python3-flask-migrate @@ -146,7 +60,7 @@ BuildRequires: python3-XStatic-jQuery BuildRequires: python3-XStatic-Patternfly BuildRequires: python3-XStatic-Patternfly-Bootstrap-Treeview -Requires: ansible-python3 >= 2.4.0.0 +Requires: ansible >= 2.4.0.0 Requires: python3-cliff Requires: python3-flask >= 0.12.4 Requires: python3-flask-migrate @@ -185,7 +99,6 @@ Requires: python3-pytest %{common_desc} This package contains the test files. -%endif %package common Summary: Common files for %{package_name} @@ -200,8 +113,8 @@ This package contains the common files. %package doc Summary: Documentation for %{package_name} -BuildRequires: python2-sphinx -BuildRequires: python2-sphinx_rtd_theme +BuildRequires: python3-sphinx +BuildRequires: python3-sphinx_rtd_theme %description doc %{common_desc} @@ -211,38 +124,17 @@ This package contains the documentation. %prep %autosetup -n %{package_name}-%{version} -S git -%if 0%{?with_python3} -rm -rf %{py3dir} -cp -a . %{py3dir} -%endif - # Let RPM handle the requirements rm -f {,test-}requirements.txt %build -%py2_build -%if 0%{?with_python3} %py3_build -%endif # Disable warning detection as failures: https://review.openstack.org/#/c/491202/ # sphinx-build -W -b html doc/source doc/build/html sphinx-build -b html doc/source doc/build/html %install -%if 0%{?with_python3} %py3_install -for f in %{buildroot}%{_bindir}/ara*; do - mv $f $f-%{python3_version} - ln -s %{_bindir}/$(basename $f)-%{python3_version} $f-3 -done -%endif - -%py2_install -for f in %{buildroot}%{_bindir}/{ara,ara-manage,ara-wsgi}; do - mv $f $f-%{python2_version} - ln -s %{_bindir}/$(basename $f)-%{python2_version} $f - ln -s %{_bindir}/$(basename $f)-%{python2_version} $f-2 -done # Setup directories install -d -m 755 %{buildroot}%{_sysconfdir}/%{package_name} @@ -254,14 +146,12 @@ install -p -D -m 644 %{SOURCE1} %{buildroot}%{_unitdir}/%{package_name}-server.s # Setup default config install -p -D -m 640 %{SOURCE2} %{buildroot}%{_sysconfdir}/%{package_name}/%{package_name}.cfg +install -p -D -m 644 %{SOURCE3} %{buildroot}%{_sysconfdir}/%{package_name}/logging-config.yaml # Setup logrotate -install -p -D -m 644 %{SOURCE3} %{buildroot}%{_sysconfdir}/logrotate.d/%{package_name} +install -p -D -m 644 %{SOURCE4} %{buildroot}%{_sysconfdir}/logrotate.d/%{package_name} %check -# It doesn't look like it's possible to have ansible installed in both python2 -# and python3 concurrently in >=f29 so python2 unit tests won't be able to run. -# %{__python2} -m py.test -v # Run unit tests %{__python3} -m pytest -v @@ -285,32 +175,8 @@ exit 0 %doc README.rst %license LICENSE %{_bindir}/ara* -%if 0%{?with_python3} -%exclude %{_bindir}/ara*-3* -%endif -%{_unitdir}/%{package_name}-server.service - -%if 0%{?with_python3} -%files -n %{package_name}-python3 -%doc README.rst -%license LICENSE -%{_bindir}/ara*-3* %{_unitdir}/%{package_name}-server.service -%endif - -%files -n python2-%{package_name} -%doc README.rst -%license LICENSE -%{python2_sitelib}/%{package_name} -%{python2_sitelib}/%{package_name}-*.egg-info -%exclude %{python2_sitelib}/%{package_name}/tests - -%files -n python2-%{package_name}-tests -%doc README.rst -%license LICENSE -%{python2_sitelib}/%{package_name}/tests -%if 0%{?with_python3} %files -n python3-%{package_name} %doc README.rst %license LICENSE @@ -322,13 +188,13 @@ exit 0 %doc README.rst %license LICENSE %{python3_sitelib}/%{package_name}/tests -%endif %files common %doc README.rst %license LICENSE %dir %{_sysconfdir}/%{package_name} %config(noreplace) %attr(0640, root, %{package_name}) %{_sysconfdir}/%{package_name}/%{package_name}.cfg +%config(noreplace) %attr(0644, root, %{package_name}) %{_sysconfdir}/%{package_name}/logging-config.yaml %config(noreplace) %{_sysconfdir}/logrotate.d/%{package_name} %dir %attr(0750, %{package_name}, %{package_name}) %{_localstatedir}/log/%{package_name} %dir %attr(0750, %{package_name}, %{package_name}) %{_sharedstatedir}/%{package_name} @@ -340,6 +206,7 @@ exit 0 %changelog * Mon Sep 10 2018 David Moreau Simard - 0.16.1 - Update to latest upstream release +- Default to python3 * Thu Jul 12 2018 Fedora Release Engineering - 0.14.6-3 - Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild diff --git a/logging-config.yaml b/logging-config.yaml new file mode 100644 index 0000000..e865d8e --- /dev/null +++ b/logging-config.yaml @@ -0,0 +1,43 @@ +--- +version: 1 +disable_existing_loggers: false +formatters: + ara_standard: + format: '%(asctime)s %(levelname)s %(name)s: %(message)s' +handlers: + ara_console: + class: logging.StreamHandler + formatter: ara_standard + level: INFO + stream: ext://sys.stdout + ara_file: + class: logging.handlers.TimedRotatingFileHandler + formatter: ara_standard + level: INFO + filename: '/var/log/ara/ara.log' + when: 'midnight' + interval: 1 + backupCount: 30 +loggers: + ara: + handlers: + - ara_file + level: INFO + propagate: 0 + alembic: + handlers: + - ara_console + - ara_file + level: WARN + propagate: 0 + sqlalchemy.engine: + handlers: + - ara_file + level: WARN + propagate: 0 + werkzeug: + handlers: + - ara_console + - ara_file + level: INFO + propagate: 0