Hello community, here is the log from the commit of package openSUSE-release-tools for openSUSE:Factory checked in at 2017-10-17 01:51:43 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/openSUSE-release-tools (Old) and /work/SRC/openSUSE:Factory/.openSUSE-release-tools.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "openSUSE-release-tools" Tue Oct 17 01:51:43 2017 rev:6 rq:533857 version:20171013.b00a8f5 Changes: -------- --- /work/SRC/openSUSE:Factory/openSUSE-release-tools/openSUSE-release-tools.changes 2017-10-11 23:01:52.771519119 +0200 +++ /work/SRC/openSUSE:Factory/.openSUSE-release-tools.new/openSUSE-release-tools.changes 2017-10-17 01:51:46.276533315 +0200 @@ -1,0 +2,50 @@ +Fri Oct 13 09:12:23 UTC 2017 - opensuse-releaset...@opensuse.org + +- Update to version 20171013.b00a8f5: + * osclib/stagingapi: get_staging_projects(): provide include_dvd option. + * check_source: print message if checking devel project. + * check_source: move all relevant flags to config to work properly without flags. + * ttm: update for Leap 15.0 + * osclib: provide ConfigCommand and expose via osc-staging. + * repo_checker: utilize staging configuration for whitelist additions. + * repo_checker: filter empty whitelist entries. + * osclib/stagingapi: set_prj_pseudometa(): only change if different. + * osclib/freeze: clear staging config during freeze as well. + +------------------------------------------------------------------- +Tue Oct 10 16:26:17 UTC 2017 - opensuse-releaset...@opensuse.org + +- Update to version 20171010.a2ba667: + * dist: provide check-source subpackage. + +------------------------------------------------------------------- +Tue Oct 10 16:18:11 UTC 2017 - opensuse-releaset...@opensuse.org + +- Update to version 20171010.73cec11: + * dist: provide maintenance subpackage. + +------------------------------------------------------------------- +Tue Oct 10 16:09:46 UTC 2017 - opensuse-releaset...@opensuse.org + +- Update to version 20171010.3ed4156: + * dist: rework totest-manager subpackage to provide new style service. + * dist/spec: add python-openqa_client as Requires for totest-manager. + * dist/spec: totest-manager: reword to avoid dollar sign. + +------------------------------------------------------------------- +Tue Oct 10 15:55:26 UTC 2017 - opensuse-releaset...@opensuse.org + +- Update to version 20171010.f50ea95: + * dist: provide leaper services and related configuration. + +------------------------------------------------------------------- +Tue Oct 10 15:35:17 UTC 2017 - opensuse-releaset...@opensuse.org + +- Update to version 20171010.de533a2: + * dist: provide staging-bot subpackage for related services. + * dist/spec: include project_only repo-checker service in pre/post. + * dist: provide staging-bot-devel-list service (changed from leaper). + * dist: include suppkg_rebuild in staging-bot subpackage. + * dist: include supersede service in staging-bot subpackage. + +------------------------------------------------------------------- Old: ---- openSUSE-release-tools-20171010.02e5000.obscpio New: ---- openSUSE-release-tools-20171013.b00a8f5.obscpio ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ openSUSE-release-tools.spec ++++++ --- /var/tmp/diff_new_pack.OfiIRC/_old 2017-10-17 01:51:48.344436445 +0200 +++ /var/tmp/diff_new_pack.OfiIRC/_new 2017-10-17 01:51:48.348436258 +0200 @@ -20,7 +20,7 @@ %define source_dir osc-plugin-factory %define announcer_filename factory-package-news Name: openSUSE-release-tools -Version: 20171010.02e5000 +Version: 20171013.b00a8f5 Release: 0 Summary: Tools to aid in staging and release work for openSUSE/SUSE License: GPL-2.0+ and MIT @@ -109,6 +109,39 @@ %description announcer OBS product release announcer for generating email diffs summaries. +%package check-source +Summary: Check source review bot +Group: Development/Tools/Other +BuildArch: noarch +# TODO Update requirements. +Requires: osclib = %{version} +Requires(pre): shadow + +%description check-source +Check source review bot that performs basic source analysis and assigns reviews. + +%package leaper +Summary: Leap-style services +Group: Development/Tools/Other +BuildArch: noarch +Requires: %{name} = %{version} +Requires: osclib = %{version} +Requires(pre): shadow + +%description leaper +Leap-style services for non-Factory projects. + +%package maintenance +Summary: Maintenance related services +Group: Development/Tools/Other +BuildArch: noarch +# TODO Update requirements. +Requires: osclib = %{version} +Requires(pre): shadow + +%description maintenance +Maintenance related services like incident check. + %package metrics Summary: Ingest relevant data to generate insightful metrics Group: Development/Tools/Other @@ -134,15 +167,30 @@ %description repo-checker Repository checker service that inspects built RPMs from stagings. +%package staging-bot +Summary: Staging bot services +Group: Development/Tools/Other +BuildArch: noarch +# devel-project.py +Requires: %{name} = %{version} +Requires: osc-plugin-staging = %{version} +# For supersede service. +Requires: osc-plugin-check_dups = %{version} +Requires(pre): shadow + +%description staging-bot +Staging bot services and system user. + %package totest-manager -Summary: Manages \$product:ToTest repository +Summary: Manages product ToTest repository Group: Development/Tools/Other BuildArch: noarch # TODO Update requirements. Requires: osclib = %{version} +Requires: python-openqa_client %description totest-manager -Manages \$product:ToTest repository workflow and openQA interaction +Manages product ToTest repository workflow and openQA interaction %package -n osclib Summary: Supplemental osc libraries @@ -214,34 +262,129 @@ %postun announcer %service_del_postun %{announcer_filename}.service +%pre check-source +%service_add_pre osrt-check-source.service +getent passwd osrt-check-source > /dev/null || \ + useradd -r -m -s /sbin/nologin -c "user for openSUSE-release-tools-check-source" osrt-check-source +exit 0 + +%post check-source +%service_add_post osrt-check-source.service + +%preun check-source +%service_del_preun osrt-check-source.service + +%postun check-source +%service_del_postun osrt-check-source.service + +%pre leaper +%service_add_pre osrt-leaper-crawler@.service +%service_add_pre osrt-leaper-manager@.service +%service_add_pre osrt-leaper-review.service +getent passwd osrt-leaper > /dev/null || \ + useradd -r -m -s /sbin/nologin -c "user for openSUSE-release-tools-leaper" osrt-leaper +exit 0 + +%post leaper +%service_add_post osrt-leaper-crawler@.service +%service_add_post osrt-leaper-manager@.service +%service_add_post osrt-leaper-review.service + +%preun leaper +%service_del_preun osrt-leaper-crawler@.service +%service_del_preun osrt-leaper-manager@.service +%service_del_preun osrt-leaper-review.service + +%postun leaper +%service_del_postun osrt-leaper-crawler@.service +%service_del_postun osrt-leaper-manager@.service +%service_del_postun osrt-leaper-review.service + +%pre maintenance +%service_add_pre osrt-maintenance-incidents.service +getent passwd osrt-maintenance > /dev/null || \ + useradd -r -m -s /sbin/nologin -c "user for openSUSE-release-tools-maintenance" osrt-maintenance +exit 0 + +%post maintenance +%service_add_post osrt-maintenance-incidents.service + +%preun maintenance +%service_del_preun osrt-maintenance-incidents.service + +%postun maintenance +%service_del_postun osrt-maintenance-incidents.service + # TODO Provide metrics service once #1006 is resolved. %pre repo-checker %service_add_pre osrt-repo-checker.service +%service_add_pre osrt-repo-checker-project_only@.service getent passwd osrt-repo-checker > /dev/null || \ useradd -r -m -s /sbin/nologin -c "user for openSUSE-release-tools-repo-checker" osrt-repo-checker exit 0 %post repo-checker %service_add_post osrt-repo-checker.service +%service_add_post osrt-repo-checker-project_only@.service %preun repo-checker %service_del_preun osrt-repo-checker.service +%service_del_preun osrt-repo-checker-project_only@.service %postun repo-checker %service_del_postun osrt-repo-checker.service +%service_del_postun osrt-repo-checker-project_only@.service + +%pre staging-bot +%service_add_pre osrt-staging-bot-daily@.service +%service_add_pre osrt-staging-bot-devel-list.service +%service_add_pre osrt-staging-bot-regular@.service +%service_add_pre osrt-staging-bot-reminder.service +%service_add_pre osrt-staging-bot-supersede@.service +%service_add_pre osrt-staging-bot-support-rebuild@.service +getent passwd osrt-staging-bot > /dev/null || \ + useradd -r -m -s /sbin/nologin -c "user for openSUSE-release-tools-staging-bot" osrt-staging-bot +exit 0 + +%post staging-bot +%service_add_post osrt-staging-bot-daily@.service +%service_add_post osrt-staging-bot-devel-list.service +%service_add_post osrt-staging-bot-regular@.service +%service_add_post osrt-staging-bot-reminder.service +%service_add_post osrt-staging-bot-supersede@.service +%service_add_post osrt-staging-bot-support-rebuild@.service + +%preun staging-bot +%service_del_preun osrt-staging-bot-daily@.service +%service_del_preun osrt-staging-bot-devel-list.service +%service_del_preun osrt-staging-bot-regular@.service +%service_del_preun osrt-staging-bot-reminder.service +%service_del_preun osrt-staging-bot-supersede@.service +%service_del_preun osrt-staging-bot-support-rebuild@.service + +%postun staging-bot +%service_del_postun osrt-staging-bot-daily@.service +%service_del_postun osrt-staging-bot-devel-list.service +%service_del_postun osrt-staging-bot-regular@.service +%service_del_postun osrt-staging-bot-reminder.service +%service_del_postun osrt-staging-bot-supersede@.service +%service_del_postun osrt-staging-bot-support-rebuild@.service %pre totest-manager -%service_add_pre opensuse-totest-manager.service +%service_add_pre osrt-totest-manager@.service +getent passwd osrt-totest-manager > /dev/null || \ + useradd -r -m -s /sbin/nologin -c "user for openSUSE-release-tools-totest-manager" osrt-totest-manager +exit 0 %post totest-manager -%service_add_post opensuse-totest-manager.service +%service_add_post osrt-totest-manager@.service %preun totest-manager -%service_del_preun opensuse-totest-manager.service +%service_del_preun osrt-totest-manager@.service %postun totest-manager -%service_del_postun opensuse-totest-manager.service +%service_del_postun osrt-totest-manager@.service %files %defattr(-,root,root,-) @@ -249,15 +392,24 @@ %{_datadir}/%{source_dir} %exclude %{_datadir}/%{source_dir}/abichecker %exclude %{_datadir}/%{source_dir}/%{announcer_filename} +%exclude %{_datadir}/%{source_dir}/check_maintenance_incidents.py +%exclude %{_datadir}/%{source_dir}/check_source.pl +%exclude %{_datadir}/%{source_dir}/check_source.py +%exclude %{_datadir}/%{source_dir}/devel-project.py +%exclude %{_datadir}/%{source_dir}/leaper.py +%exclude %{_datadir}/%{source_dir}/manager_42.py %exclude %{_datadir}/%{source_dir}/metrics %exclude %{_datadir}/%{source_dir}/metrics.py %exclude %{_datadir}/%{source_dir}/repo_checker.pl %exclude %{_datadir}/%{source_dir}/repo_checker.py +%exclude %{_datadir}/%{source_dir}/suppkg_rebuild.py %exclude %{_datadir}/%{source_dir}/totest-manager.py %exclude %{_datadir}/%{source_dir}/osclib %exclude %{_datadir}/%{source_dir}/osc-check_dups.py %exclude %{_datadir}/%{source_dir}/osc-cycle.py %exclude %{_datadir}/%{source_dir}/osc-staging.py +%exclude %{_datadir}/%{source_dir}/update_crawler.py +%dir %{_sysconfdir}/openSUSE-release-tools %files devel %defattr(-,root,root,-) @@ -280,6 +432,38 @@ %{_unitdir}/%{announcer_filename}.service %{_unitdir}/%{announcer_filename}.timer +%files check-source +%defattr(-,root,root,-) +%{_bindir}/osrt-check_source +%{_datadir}/%{source_dir}/check_source.pl +%{_datadir}/%{source_dir}/check_source.py +%{_unitdir}/osrt-check-source.service +%{_unitdir}/osrt-check-source.timer + +%files leaper +%defattr(-,root,root,-) +%{_bindir}/osrt-leaper +%{_bindir}/osrt-leaper-crawler-* +%{_bindir}/osrt-manager_42 +%{_bindir}/osrt-update_crawler +%{_datadir}/%{source_dir}/leaper.py +%{_datadir}/%{source_dir}/manager_42.py +%{_datadir}/%{source_dir}/update_crawler.py +%{_unitdir}/osrt-leaper-crawler@.service +%{_unitdir}/osrt-leaper-crawler@.timer +%{_unitdir}/osrt-leaper-manager@.service +%{_unitdir}/osrt-leaper-manager@.timer +%{_unitdir}/osrt-leaper-review.service +%{_unitdir}/osrt-leaper-review.timer +%{_sysconfdir}/openSUSE-release-tools/manager_42 + +%files maintenance +%defattr(-,root,root,-) +%{_bindir}/osrt-check_maintenance_incidents +%{_datadir}/%{source_dir}/check_maintenance_incidents.py +%{_unitdir}/osrt-maintenance-incidents.service +%{_unitdir}/osrt-maintenance-incidents.timer + %files metrics %defattr(-,root,root,-) %{_datadir}/%{source_dir}/metrics @@ -295,10 +479,30 @@ %{_unitdir}/osrt-repo-checker-project_only@.service %{_unitdir}/osrt-repo-checker-project_only@.timer +%files staging-bot +%defattr(-,root,root,-) +%{_bindir}/osrt-devel-project +%{_bindir}/osrt-suppkg_rebuild +%{_datadir}/%{source_dir}/devel-project.py +%{_datadir}/%{source_dir}/suppkg_rebuild.py +%{_unitdir}/osrt-staging-bot-daily@.service +%{_unitdir}/osrt-staging-bot-daily@.timer +%{_unitdir}/osrt-staging-bot-devel-list.service +%{_unitdir}/osrt-staging-bot-devel-list.timer +%{_unitdir}/osrt-staging-bot-regular@.service +%{_unitdir}/osrt-staging-bot-regular@.timer +%{_unitdir}/osrt-staging-bot-reminder.service +%{_unitdir}/osrt-staging-bot-reminder.timer +%{_unitdir}/osrt-staging-bot-supersede@.service +%{_unitdir}/osrt-staging-bot-supersede@.timer +%{_unitdir}/osrt-staging-bot-support-rebuild@.service +%{_unitdir}/osrt-staging-bot-support-rebuild@.timer + %files totest-manager %defattr(-,root,root,-) -%{_unitdir}/opensuse-totest-manager.service +%{_bindir}/osrt-totest-manager %{_datadir}/%{source_dir}/totest-manager.py +%{_unitdir}/osrt-totest-manager@.service %files -n osclib %defattr(-,root,root,-) ++++++ _servicedata ++++++ --- /var/tmp/diff_new_pack.OfiIRC/_old 2017-10-17 01:51:48.392434196 +0200 +++ /var/tmp/diff_new_pack.OfiIRC/_new 2017-10-17 01:51:48.392434196 +0200 @@ -1,6 +1,6 @@ <servicedata> <service name="tar_scm"> <param name="url">https://github.com/openSUSE/osc-plugin-factory.git</param> - <param name="changesrevision">239c6314c7a8b0192c85181e7f64ab274e74cc31</param> + <param name="changesrevision">b00a8f5ed667e32a4cec71523bddbcefb1ca20fd</param> </service> </servicedata> ++++++ openSUSE-release-tools-20171010.02e5000.obscpio -> openSUSE-release-tools-20171013.b00a8f5.obscpio ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openSUSE-release-tools-20171010.02e5000/Makefile new/openSUSE-release-tools-20171013.b00a8f5/Makefile --- old/openSUSE-release-tools-20171010.02e5000/Makefile 2017-10-10 13:31:25.000000000 +0200 +++ new/openSUSE-release-tools-20171013.b00a8f5/Makefile 2017-10-13 11:12:22.000000000 +0200 @@ -2,7 +2,7 @@ include Makefile.common -pkgdata_BINS=repo_checker +pkgdata_BINS=check_maintenance_incidents check_source devel-project leaper manager_42 repo_checker suppkg_rebuild totest-manager update_crawler pkgdata_SCRIPTS=$(wildcard *.py *.pl *.sh) pkgdata_SCRIPTS+=bs_mirrorfull findfileconflicts pkgdata_DATA+=bs_copy metrics osclib $(wildcard *.pm *.testcase) @@ -12,7 +12,7 @@ all: install: - install -d -m 755 $(DESTDIR)$(bindir) $(DESTDIR)$(pkgdatadir) $(DESTDIR)$(unitdir) $(DESTDIR)$(oscplugindir) + install -d -m 755 $(DESTDIR)$(bindir) $(DESTDIR)$(pkgdatadir) $(DESTDIR)$(unitdir) $(DESTDIR)$(oscplugindir) $(DESTDIR)$(sysconfdir)/$(package_name) for i in $(pkgdata_SCRIPTS); do install -m 755 $$i $(DESTDIR)$(pkgdatadir); done chmod 644 $(DESTDIR)$(pkgdatadir)/osc-*.py for i in $(pkgdata_DATA); do cp -a $$i $(DESTDIR)$(pkgdatadir); done @@ -22,6 +22,8 @@ sed -i "s/OSC_STAGING_VERSION = '.*'/OSC_STAGING_VERSION = '$(VERSION)'/" \ $(DESTDIR)$(pkgdatadir)/osc-staging.py for i in $(pkgdata_BINS); do ln -s $(pkgdatadir)/$$i.py $(DESTDIR)$(bindir)/osrt-$$i; done + install -m 755 script/* $(DESTDIR)$(bindir) + cp -R config/* $(DESTDIR)$(sysconfdir)/$(package_name) check: test diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openSUSE-release-tools-20171010.02e5000/check_source.py new/openSUSE-release-tools-20171013.b00a8f5/check_source.py --- old/openSUSE-release-tools-20171010.02e5000/check_source.py 2017-10-10 13:31:25.000000000 +0200 +++ new/openSUSE-release-tools-20171013.b00a8f5/check_source.py 2017-10-13 11:12:22.000000000 +0200 @@ -10,6 +10,7 @@ except ImportError: import cElementTree as ET +import osc.conf import osc.core import urllib2 import ReviewBot @@ -27,16 +28,24 @@ self.maintbot = MaintenanceChecker(*args, **kwargs) - self.ignore_devel = False - self.review_team = 'opensuse-review-team' - self.repo_checker = 'repo-checker' self.skip_add_reviews = False + def target_project_config(self, project): + # Load project config and allow for remote entries. + self.staging_api(project) + config = self.staging_config[project] + + self.ignore_devel = not bool(config.get('devel-project-enforce', False)) + self.review_team = config.get('review-team') + self.repo_checker = config.get('repo-checker') + self.devel_whitelist = config.get('devel-whitelist', '').split() + def check_source_submission(self, source_project, source_package, source_revision, target_project, target_package): super(CheckSource, self).check_source_submission(source_project, source_package, source_revision, target_project, target_package) + self.target_project_config(target_project) if not self.ignore_devel: - # Check if target package exists and has devel project. + self.logger.info('checking if target package exists and has devel project') devel_project, devel_package = self.get_devel_project(target_project, target_package) if devel_project: if (source_project != devel_project or source_package != devel_package) and \ @@ -137,10 +146,7 @@ return None def is_devel_project(self, source_project, target_project): - # Load project config and allow for remote entries. - self.staging_api(target_project) - devel_whitelist = self.staging_config[target_project].get('devel-whitelist', '').split() - if source_project in devel_whitelist: + if source_project in self.devel_whitelist: return True # Allow any projects already used as devel projects for other packages. @@ -252,9 +258,6 @@ def get_optparser(self): parser = ReviewBot.CommandLineInterface.get_optparser(self) - parser.add_option('--ignore-devel', action='store_true', default=False, help='ignore devel projects for target package') - parser.add_option('--review-team', metavar='GROUP', help='review team group added to requests') - parser.add_option('--repo-checker', metavar='USER', help='repo checker user added after accepted review') parser.add_option('--skip-add-reviews', action='store_true', default=False, help='skip adding review after completing checks') return parser @@ -262,16 +265,6 @@ def setup_checker(self): bot = ReviewBot.CommandLineInterface.setup_checker(self) - if self.options.ignore_devel: - bot.ignore_devel = self.options.ignore_devel - if self.options.review_team: - if self.options.review_team == 'None': - self.options.review_team = None - bot.review_team = self.options.review_team - if self.options.repo_checker: - if self.options.repo_checker == 'None': - self.options.repo_checker = None - bot.repo_checker = self.options.repo_checker bot.skip_add_reviews = self.options.skip_add_reviews return bot diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openSUSE-release-tools-20171010.02e5000/config/manager_42/openSUSE:Leap:15.0.yml new/openSUSE-release-tools-20171013.b00a8f5/config/manager_42/openSUSE:Leap:15.0.yml --- old/openSUSE-release-tools-20171010.02e5000/config/manager_42/openSUSE:Leap:15.0.yml 1970-01-01 01:00:00.000000000 +0100 +++ new/openSUSE-release-tools-20171013.b00a8f5/config/manager_42/openSUSE:Leap:15.0.yml 2017-10-13 11:12:22.000000000 +0200 @@ -0,0 +1,9 @@ +--- +project_preference_order: +- SUSE:SLE-15:Update +- SUSE:SLE-15:GA +- openSUSE:Factory +- openSUSE:Factory:NonFree +- openSUSE:Leap:15.0:SLE-workarounds +- openSUSE:Leap:15.0:SLE-workarounds + diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openSUSE-release-tools-20171010.02e5000/config/manager_42/openSUSE:Leap:42.3.yml new/openSUSE-release-tools-20171013.b00a8f5/config/manager_42/openSUSE:Leap:42.3.yml --- old/openSUSE-release-tools-20171010.02e5000/config/manager_42/openSUSE:Leap:42.3.yml 1970-01-01 01:00:00.000000000 +0100 +++ new/openSUSE-release-tools-20171013.b00a8f5/config/manager_42/openSUSE:Leap:42.3.yml 2017-10-13 11:12:22.000000000 +0200 @@ -0,0 +1,22 @@ +--- +project_preference_order: +- SUSE:SLE-12-SP3:GA +- SUSE:SLE-12-SP2:Update +- SUSE:SLE-12-SP2:GA +- SUSE:SLE-12-SP1:Update +- SUSE:SLE-12-SP1:GA +- SUSE:SLE-12:Update +- SUSE:SLE-12:GA +- openSUSE:Leap:42.2:Update +- openSUSE:Leap:42.2 +- openSUSE:Leap:42.2:NonFree:Update +- openSUSE:Leap:42.2:NonFree +- openSUSE:Leap:42.1:Update +- openSUSE:Leap:42.1 +- openSUSE:Leap:42.1:NonFree:Update +- openSUSE:Leap:42.1:NonFree +- openSUSE:Factory +- openSUSE:Factory:NonFree +- openSUSE:Leap:42.3:SLE-workarounds +- openSUSE:Leap:42.2:SLE-workarounds + diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openSUSE-release-tools-20171010.02e5000/dist/package/openSUSE-release-tools.spec new/openSUSE-release-tools-20171013.b00a8f5/dist/package/openSUSE-release-tools.spec --- old/openSUSE-release-tools-20171010.02e5000/dist/package/openSUSE-release-tools.spec 2017-10-10 13:31:25.000000000 +0200 +++ new/openSUSE-release-tools-20171013.b00a8f5/dist/package/openSUSE-release-tools.spec 2017-10-13 11:12:22.000000000 +0200 @@ -109,6 +109,39 @@ %description announcer OBS product release announcer for generating email diffs summaries. +%package check-source +Summary: Check source review bot +Group: Development/Tools/Other +BuildArch: noarch +# TODO Update requirements. +Requires: osclib = %{version} +Requires(pre): shadow + +%description check-source +Check source review bot that performs basic source analysis and assigns reviews. + +%package leaper +Summary: Leap-style services +Group: Development/Tools/Other +BuildArch: noarch +Requires: %{name} = %{version} +Requires: osclib = %{version} +Requires(pre): shadow + +%description leaper +Leap-style services for non-Factory projects. + +%package maintenance +Summary: Maintenance related services +Group: Development/Tools/Other +BuildArch: noarch +# TODO Update requirements. +Requires: osclib = %{version} +Requires(pre): shadow + +%description maintenance +Maintenance related services like incident check. + %package metrics Summary: Ingest relevant data to generate insightful metrics Group: Development/Tools/Other @@ -134,15 +167,30 @@ %description repo-checker Repository checker service that inspects built RPMs from stagings. +%package staging-bot +Summary: Staging bot services +Group: Development/Tools/Other +BuildArch: noarch +# devel-project.py +Requires: %{name} = %{version} +Requires: osc-plugin-staging = %{version} +# For supersede service. +Requires: osc-plugin-check_dups = %{version} +Requires(pre): shadow + +%description staging-bot +Staging bot services and system user. + %package totest-manager -Summary: Manages \$product:ToTest repository +Summary: Manages product ToTest repository Group: Development/Tools/Other BuildArch: noarch # TODO Update requirements. Requires: osclib = %{version} +Requires: python-openqa_client %description totest-manager -Manages \$product:ToTest repository workflow and openQA interaction +Manages product ToTest repository workflow and openQA interaction %package -n osclib Summary: Supplemental osc libraries @@ -214,34 +262,129 @@ %postun announcer %service_del_postun %{announcer_filename}.service +%pre check-source +%service_add_pre osrt-check-source.service +getent passwd osrt-check-source > /dev/null || \ + useradd -r -m -s /sbin/nologin -c "user for openSUSE-release-tools-check-source" osrt-check-source +exit 0 + +%post check-source +%service_add_post osrt-check-source.service + +%preun check-source +%service_del_preun osrt-check-source.service + +%postun check-source +%service_del_postun osrt-check-source.service + +%pre leaper +%service_add_pre osrt-leaper-crawler@.service +%service_add_pre osrt-leaper-manager@.service +%service_add_pre osrt-leaper-review.service +getent passwd osrt-leaper > /dev/null || \ + useradd -r -m -s /sbin/nologin -c "user for openSUSE-release-tools-leaper" osrt-leaper +exit 0 + +%post leaper +%service_add_post osrt-leaper-crawler@.service +%service_add_post osrt-leaper-manager@.service +%service_add_post osrt-leaper-review.service + +%preun leaper +%service_del_preun osrt-leaper-crawler@.service +%service_del_preun osrt-leaper-manager@.service +%service_del_preun osrt-leaper-review.service + +%postun leaper +%service_del_postun osrt-leaper-crawler@.service +%service_del_postun osrt-leaper-manager@.service +%service_del_postun osrt-leaper-review.service + +%pre maintenance +%service_add_pre osrt-maintenance-incidents.service +getent passwd osrt-maintenance > /dev/null || \ + useradd -r -m -s /sbin/nologin -c "user for openSUSE-release-tools-maintenance" osrt-maintenance +exit 0 + +%post maintenance +%service_add_post osrt-maintenance-incidents.service + +%preun maintenance +%service_del_preun osrt-maintenance-incidents.service + +%postun maintenance +%service_del_postun osrt-maintenance-incidents.service + # TODO Provide metrics service once #1006 is resolved. %pre repo-checker %service_add_pre osrt-repo-checker.service +%service_add_pre osrt-repo-checker-project_only@.service getent passwd osrt-repo-checker > /dev/null || \ useradd -r -m -s /sbin/nologin -c "user for openSUSE-release-tools-repo-checker" osrt-repo-checker exit 0 %post repo-checker %service_add_post osrt-repo-checker.service +%service_add_post osrt-repo-checker-project_only@.service %preun repo-checker %service_del_preun osrt-repo-checker.service +%service_del_preun osrt-repo-checker-project_only@.service %postun repo-checker %service_del_postun osrt-repo-checker.service +%service_del_postun osrt-repo-checker-project_only@.service + +%pre staging-bot +%service_add_pre osrt-staging-bot-daily@.service +%service_add_pre osrt-staging-bot-devel-list.service +%service_add_pre osrt-staging-bot-regular@.service +%service_add_pre osrt-staging-bot-reminder.service +%service_add_pre osrt-staging-bot-supersede@.service +%service_add_pre osrt-staging-bot-support-rebuild@.service +getent passwd osrt-staging-bot > /dev/null || \ + useradd -r -m -s /sbin/nologin -c "user for openSUSE-release-tools-staging-bot" osrt-staging-bot +exit 0 + +%post staging-bot +%service_add_post osrt-staging-bot-daily@.service +%service_add_post osrt-staging-bot-devel-list.service +%service_add_post osrt-staging-bot-regular@.service +%service_add_post osrt-staging-bot-reminder.service +%service_add_post osrt-staging-bot-supersede@.service +%service_add_post osrt-staging-bot-support-rebuild@.service + +%preun staging-bot +%service_del_preun osrt-staging-bot-daily@.service +%service_del_preun osrt-staging-bot-devel-list.service +%service_del_preun osrt-staging-bot-regular@.service +%service_del_preun osrt-staging-bot-reminder.service +%service_del_preun osrt-staging-bot-supersede@.service +%service_del_preun osrt-staging-bot-support-rebuild@.service + +%postun staging-bot +%service_del_postun osrt-staging-bot-daily@.service +%service_del_postun osrt-staging-bot-devel-list.service +%service_del_postun osrt-staging-bot-regular@.service +%service_del_postun osrt-staging-bot-reminder.service +%service_del_postun osrt-staging-bot-supersede@.service +%service_del_postun osrt-staging-bot-support-rebuild@.service %pre totest-manager -%service_add_pre opensuse-totest-manager.service +%service_add_pre osrt-totest-manager@.service +getent passwd osrt-totest-manager > /dev/null || \ + useradd -r -m -s /sbin/nologin -c "user for openSUSE-release-tools-totest-manager" osrt-totest-manager +exit 0 %post totest-manager -%service_add_post opensuse-totest-manager.service +%service_add_post osrt-totest-manager@.service %preun totest-manager -%service_del_preun opensuse-totest-manager.service +%service_del_preun osrt-totest-manager@.service %postun totest-manager -%service_del_postun opensuse-totest-manager.service +%service_del_postun osrt-totest-manager@.service %files %defattr(-,root,root,-) @@ -249,15 +392,24 @@ %{_datadir}/%{source_dir} %exclude %{_datadir}/%{source_dir}/abichecker %exclude %{_datadir}/%{source_dir}/%{announcer_filename} +%exclude %{_datadir}/%{source_dir}/check_maintenance_incidents.py +%exclude %{_datadir}/%{source_dir}/check_source.pl +%exclude %{_datadir}/%{source_dir}/check_source.py +%exclude %{_datadir}/%{source_dir}/devel-project.py +%exclude %{_datadir}/%{source_dir}/leaper.py +%exclude %{_datadir}/%{source_dir}/manager_42.py %exclude %{_datadir}/%{source_dir}/metrics %exclude %{_datadir}/%{source_dir}/metrics.py %exclude %{_datadir}/%{source_dir}/repo_checker.pl %exclude %{_datadir}/%{source_dir}/repo_checker.py +%exclude %{_datadir}/%{source_dir}/suppkg_rebuild.py %exclude %{_datadir}/%{source_dir}/totest-manager.py %exclude %{_datadir}/%{source_dir}/osclib %exclude %{_datadir}/%{source_dir}/osc-check_dups.py %exclude %{_datadir}/%{source_dir}/osc-cycle.py %exclude %{_datadir}/%{source_dir}/osc-staging.py +%exclude %{_datadir}/%{source_dir}/update_crawler.py +%dir %{_sysconfdir}/openSUSE-release-tools %files devel %defattr(-,root,root,-) @@ -280,6 +432,38 @@ %{_unitdir}/%{announcer_filename}.service %{_unitdir}/%{announcer_filename}.timer +%files check-source +%defattr(-,root,root,-) +%{_bindir}/osrt-check_source +%{_datadir}/%{source_dir}/check_source.pl +%{_datadir}/%{source_dir}/check_source.py +%{_unitdir}/osrt-check-source.service +%{_unitdir}/osrt-check-source.timer + +%files leaper +%defattr(-,root,root,-) +%{_bindir}/osrt-leaper +%{_bindir}/osrt-leaper-crawler-* +%{_bindir}/osrt-manager_42 +%{_bindir}/osrt-update_crawler +%{_datadir}/%{source_dir}/leaper.py +%{_datadir}/%{source_dir}/manager_42.py +%{_datadir}/%{source_dir}/update_crawler.py +%{_unitdir}/osrt-leaper-crawler@.service +%{_unitdir}/osrt-leaper-crawler@.timer +%{_unitdir}/osrt-leaper-manager@.service +%{_unitdir}/osrt-leaper-manager@.timer +%{_unitdir}/osrt-leaper-review.service +%{_unitdir}/osrt-leaper-review.timer +%{_sysconfdir}/openSUSE-release-tools/manager_42 + +%files maintenance +%defattr(-,root,root,-) +%{_bindir}/osrt-check_maintenance_incidents +%{_datadir}/%{source_dir}/check_maintenance_incidents.py +%{_unitdir}/osrt-maintenance-incidents.service +%{_unitdir}/osrt-maintenance-incidents.timer + %files metrics %defattr(-,root,root,-) %{_datadir}/%{source_dir}/metrics @@ -295,10 +479,30 @@ %{_unitdir}/osrt-repo-checker-project_only@.service %{_unitdir}/osrt-repo-checker-project_only@.timer +%files staging-bot +%defattr(-,root,root,-) +%{_bindir}/osrt-devel-project +%{_bindir}/osrt-suppkg_rebuild +%{_datadir}/%{source_dir}/devel-project.py +%{_datadir}/%{source_dir}/suppkg_rebuild.py +%{_unitdir}/osrt-staging-bot-daily@.service +%{_unitdir}/osrt-staging-bot-daily@.timer +%{_unitdir}/osrt-staging-bot-devel-list.service +%{_unitdir}/osrt-staging-bot-devel-list.timer +%{_unitdir}/osrt-staging-bot-regular@.service +%{_unitdir}/osrt-staging-bot-regular@.timer +%{_unitdir}/osrt-staging-bot-reminder.service +%{_unitdir}/osrt-staging-bot-reminder.timer +%{_unitdir}/osrt-staging-bot-supersede@.service +%{_unitdir}/osrt-staging-bot-supersede@.timer +%{_unitdir}/osrt-staging-bot-support-rebuild@.service +%{_unitdir}/osrt-staging-bot-support-rebuild@.timer + %files totest-manager %defattr(-,root,root,-) -%{_unitdir}/opensuse-totest-manager.service +%{_bindir}/osrt-totest-manager %{_datadir}/%{source_dir}/totest-manager.py +%{_unitdir}/osrt-totest-manager@.service %files -n osclib %defattr(-,root,root,-) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openSUSE-release-tools-20171010.02e5000/manager_42-leap423.yml new/openSUSE-release-tools-20171013.b00a8f5/manager_42-leap423.yml --- old/openSUSE-release-tools-20171010.02e5000/manager_42-leap423.yml 2017-10-10 13:31:25.000000000 +0200 +++ new/openSUSE-release-tools-20171013.b00a8f5/manager_42-leap423.yml 1970-01-01 01:00:00.000000000 +0100 @@ -1,22 +0,0 @@ ---- -project_preference_order: -- SUSE:SLE-12-SP3:GA -- SUSE:SLE-12-SP2:Update -- SUSE:SLE-12-SP2:GA -- SUSE:SLE-12-SP1:Update -- SUSE:SLE-12-SP1:GA -- SUSE:SLE-12:Update -- SUSE:SLE-12:GA -- openSUSE:Leap:42.2:Update -- openSUSE:Leap:42.2 -- openSUSE:Leap:42.2:NonFree:Update -- openSUSE:Leap:42.2:NonFree -- openSUSE:Leap:42.1:Update -- openSUSE:Leap:42.1 -- openSUSE:Leap:42.1:NonFree:Update -- openSUSE:Leap:42.1:NonFree -- openSUSE:Factory -- openSUSE:Factory:NonFree -- openSUSE:Leap:42.3:SLE-workarounds -- openSUSE:Leap:42.2:SLE-workarounds - diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openSUSE-release-tools-20171010.02e5000/openqa-comments.py new/openSUSE-release-tools-20171013.b00a8f5/openqa-comments.py --- old/openSUSE-release-tools-20171010.02e5000/openqa-comments.py 2017-10-10 13:31:25.000000000 +0200 +++ new/openSUSE-release-tools-20171013.b00a8f5/openqa-comments.py 2017-10-13 11:12:22.000000000 +0200 @@ -231,6 +231,5 @@ if args.staging: openQA.report(api.prj_from_letter(args.staging)) else: - for staging in api.get_staging_projects(): - if not staging.endswith(':DVD'): - openQA.report(staging) + for staging in api.get_staging_projects(include_dvd=False): + openQA.report(staging) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openSUSE-release-tools-20171010.02e5000/osc-staging.py new/openSUSE-release-tools-20171013.b00a8f5/osc-staging.py --- old/openSUSE-release-tools-20171010.02e5000/osc-staging.py 2017-10-10 13:31:25.000000000 +0200 +++ new/openSUSE-release-tools-20171013.b00a8f5/osc-staging.py 2017-10-13 11:12:22.000000000 +0200 @@ -38,6 +38,7 @@ from osclib.check_duplicate_binaries_command import CheckDuplicateBinariesCommand from osclib.cleanup_rings import CleanupRings from osclib.conf import Config +from osclib.config_command import ConfigCommand from osclib.freeze_command import FreezeCommand from osclib.ignore_command import IgnoreCommand from osclib.unignore_command import UnignoreCommand @@ -136,6 +137,8 @@ @cmdln.option('--strategy', help='apply a specific strategy') @cmdln.option('--no-color', action='store_true', help='strip colors from output (or add staging.color = 0 to the .oscrc general section') @cmdln.option('--save', action='store_true', help='save the result to the dashboard container') +@cmdln.option('--append', action='store_true', help='append to existing value') +@cmdln.option('--clear', action='store_true', help='clear value') def do_staging(self, subcmd, opts, *args): """${cmd_name}: Commands to work with staging projects @@ -161,6 +164,34 @@ "check_duplicate_binaries" list binaries provided by multiple packages + "config" will modify or view staging specific configuration + + Target project level configuration that applies to all stagings can be + found in the $PROJECT:Staging/dashboard container in file "config". Both + configuration locations follow the .oscrc format (space separated list). + + config + Print all staging configuration. + config key + Print the value of key for stagings. + conf key value... + Set the value of key for stagings. + config --clear + Clear all staging configuration. + config --clear key + Clear (unset) a single key from staging configuration + config --append key value... + Append value to existing value or set if no existing value. + + All of the above may be restricted to a set of stagings. + + The staging configuration is automatically cleared anytime staging + psuedometa is cleared (accept, or unstage all requests). + + The keys that may be set in staging configuration are: + + - repo_checker-binary-whitelist[-arch]: appended to target project list + "cleanup_rings" will try to cleanup rings content and print out problems @@ -288,6 +319,7 @@ osc staging adi [--move] [--by-develproject] [--split] [REQUEST...] osc staging check [--old] [STAGING...] osc staging check_duplicate_binaries + osc staging config [--append] [--clear] [STAGING...] [key] [value] osc staging cleanup_rings osc staging freeze [--no-bootstrap] STAGING... osc staging frozenage [STAGING...] @@ -320,6 +352,7 @@ 'accept', 'adi', 'check', + 'config', 'frozenage', 'unignore', 'select', @@ -393,6 +426,25 @@ print() elif cmd == 'check_duplicate_binaries': CheckDuplicateBinariesCommand(api).perform(opts.save) + elif cmd == 'config': + projects = set() + key = value = None + stagings = api.get_staging_projects_short(None) + \ + api.get_staging_projects(include_dvd=False) + for arg in args[1:]: + if arg in stagings: + projects.add(api.prj_from_short(arg)) + elif key is None: + key = arg + elif value is None: + value = arg + else: + value += ' ' + arg + + if not len(projects): + projects = api.get_staging_projects(include_dvd=False) + + ConfigCommand(api).perform(projects, key, value, opts.append, opts.clear) elif cmd == 'freeze': for prj in args[1:]: prj = api.prj_from_short(prj) @@ -454,7 +506,7 @@ elif cmd == 'select': # Include list of all stagings in short-hand and by full name. existing_stagings = api.get_staging_projects_short(None) - existing_stagings += [p for p in api.get_staging_projects() if not p.endswith(':DVD')] + existing_stagings += api.get_staging_projects(include_dvd=False) stagings = [] requests = [] for arg in args[1:]: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openSUSE-release-tools-20171010.02e5000/osclib/conf.py new/openSUSE-release-tools-20171013.b00a8f5/osclib/conf.py --- old/openSUSE-release-tools-20171010.02e5000/osclib/conf.py 2017-10-10 13:31:25.000000000 +0200 +++ new/openSUSE-release-tools-20171013.b00a8f5/osclib/conf.py 2017-10-13 11:12:22.000000000 +0200 @@ -46,6 +46,10 @@ 'lock-ns': 'openSUSE', 'delreq-review': 'factory-maintainers', 'main-repo': 'standard', + # check_source.py + 'devel-project-enforce': 'True', + 'review-team': 'opensuse-review-team', + 'repo-checker': 'repo-checker', }, r'openSUSE:(?P<project>Leap:[\d.]+)': { 'staging': 'openSUSE:%(project)s:Staging', @@ -62,6 +66,9 @@ 'lock-ns': 'openSUSE', 'delreq-review': None, 'main-repo': 'standard', + # check_source.py + # review-team optionally added by leaper.py. + 'repo-checker': 'repo-checker', }, r'SUSE:(?P<project>SLE-15.*$)': { 'staging': 'SUSE:%(project)s:Staging', @@ -77,6 +84,8 @@ 'lock-ns': 'SUSE', 'delreq-review': None, 'main-repo': 'standard', + # check_source.py + 'repo-checker': 'repo-checker', }, r'SUSE:(?P<project>.*$)': { 'staging': 'SUSE:%(project)s:Staging', diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openSUSE-release-tools-20171010.02e5000/osclib/config_command.py new/openSUSE-release-tools-20171013.b00a8f5/osclib/config_command.py --- old/openSUSE-release-tools-20171010.02e5000/osclib/config_command.py 1970-01-01 01:00:00.000000000 +0100 +++ new/openSUSE-release-tools-20171013.b00a8f5/osclib/config_command.py 2017-10-13 11:12:22.000000000 +0200 @@ -0,0 +1,28 @@ +class ConfigCommand(object): + def __init__(self, api): + self.api = api + + def perform(self, projects, key=None, value=None, append=False, clear=False): + project_max_format = '{:<' + str(len(max(projects, key=len))) + '} {}' + for project in projects: + meta = self.api.get_prj_pseudometa(project) + meta.setdefault('config', {}) + + if clear: + if key: + meta['config'].pop(key, None) + else: + meta.pop('config', None) + self.api.set_prj_pseudometa(project, meta) + elif value: + value_project = value + if append: + value_project = ' '.join([meta['config'].get(key, ''), value_project.strip()]) + meta['config'][key] = value_project.strip() + self.api.set_prj_pseudometa(project, meta) + + keys = [key] if key else meta.get('config', {}).keys() + for key_print in keys: + print('{} = {}'.format( + project_max_format.format(project, key_print) if len(projects) > 1 else key_print, + meta['config'].get(key_print))) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openSUSE-release-tools-20171010.02e5000/osclib/freeze_command.py new/openSUSE-release-tools-20171013.b00a8f5/osclib/freeze_command.py --- old/openSUSE-release-tools-20171010.02e5000/osclib/freeze_command.py 2017-10-10 13:31:25.000000000 +0200 +++ new/openSUSE-release-tools-20171013.b00a8f5/osclib/freeze_command.py 2017-10-13 11:12:22.000000000 +0200 @@ -14,6 +14,7 @@ # with this program; if not, write to the Free Software Foundation, Inc., # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. +from osclib.config_command import ConfigCommand import time import re from xml.etree import cElementTree as ET @@ -119,6 +120,9 @@ def perform(self, prj, copy_bootstrap=True): self.prj = prj + # Depending on what eventually lives in config this may need to change. + ConfigCommand(self.api).perform([prj], clear=True) + if self.api.is_adi_project(prj): src_prj = self.api.find_devel_project_from_adi_frozenlinks(self.prj) if src_prj is None: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openSUSE-release-tools-20171010.02e5000/osclib/stagingapi.py new/openSUSE-release-tools-20171013.b00a8f5/osclib/stagingapi.py --- old/openSUSE-release-tools-20171010.02e5000/osclib/stagingapi.py 2017-10-10 13:31:25.000000000 +0200 +++ new/openSUSE-release-tools-20171013.b00a8f5/osclib/stagingapi.py 2017-10-13 11:12:22.000000000 +0200 @@ -325,7 +325,7 @@ return True - def get_staging_projects(self): + def get_staging_projects(self, include_dvd=True): """ Get all current running staging projects :return list of known staging projects @@ -338,7 +338,10 @@ projxml = http_GET(url) root = ET.parse(projxml).getroot() for val in root.findall('project'): - projects.append(val.get('name')) + project = val.get('name') + if not include_dvd and project.endswith(':DVD'): + continue + projects.append(project) return projects def extract_staging_short(self, p): @@ -361,9 +364,8 @@ and None for both. """ projects = [] - for project in self.get_staging_projects(): - if project.endswith(':DVD') or \ - (adi is not None and self.is_adi_project(project) != adi): + for project in self.get_staging_projects(include_dvd=False): + if adi is not None and self.is_adi_project(project) != adi: continue short = self.extract_staging_short(project) if adi is False and len(short) > 1: @@ -736,7 +738,10 @@ description = root.find('description') # Order the requests and replace it with yaml meta['requests'] = sorted(meta.get('requests', []), key=lambda x: x['id']) - description.text = yaml.dump(meta) + yaml_new = yaml.dump(meta) + if yaml_new == description.text: + return + description.text = yaml_new # Find title title = root.find('title') # Put something nice into title as well diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openSUSE-release-tools-20171010.02e5000/repo_checker.py new/openSUSE-release-tools-20171013.b00a8f5/repo_checker.py --- old/openSUSE-release-tools-20171010.02e5000/repo_checker.py 2017-10-10 13:31:25.000000000 +0200 +++ new/openSUSE-release-tools-20171013.b00a8f5/repo_checker.py 2017-10-13 11:12:22.000000000 +0200 @@ -170,7 +170,7 @@ # Only bother if staging can match arch, but layered first. directories.insert(0, self.mirror(project, arch)) - whitelist = self.binary_whitelist(project, arch) + whitelist = self.binary_whitelist(project, arch, group) # Perform checks on group. results = { @@ -240,11 +240,14 @@ if binary.package in packages: yield binary.name - def binary_whitelist(self, project, arch): + def binary_whitelist(self, project, arch, group): + additions = self.staging_api(project).get_prj_pseudometa(group).get('config', {}) prefix = 'repo_checker-binary-whitelist' whitelist = set() for key in [prefix, '-'.join([prefix, arch])]: whitelist.update(self.staging_config[project].get(key, '').split(' ')) + whitelist.update(additions.get(key, '').split(' ')) + whitelist = filter(None, whitelist) return whitelist def install_check(self, project, directories, arch, ignore=[], whitelist=[], parse=False): diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openSUSE-release-tools-20171010.02e5000/script/osrt-leaper-crawler-openSUSE:Leap:15.0 new/openSUSE-release-tools-20171013.b00a8f5/script/osrt-leaper-crawler-openSUSE:Leap:15.0 --- old/openSUSE-release-tools-20171010.02e5000/script/osrt-leaper-crawler-openSUSE:Leap:15.0 1970-01-01 01:00:00.000000000 +0100 +++ new/openSUSE-release-tools-20171013.b00a8f5/script/osrt-leaper-crawler-openSUSE:Leap:15.0 2017-10-13 11:12:22.000000000 +0200 @@ -0,0 +1,14 @@ +#!/bin/bash + +TO=openSUSE:Leap:15.0 + +osrt-update_crawler --to $TO \ + --from SUSE:SLE-15:GA \ + --only-from SUSE:SLE-15:GA \ + --only-from SUSE:SLE-15:Update \ + "$@" + +osrt-update_crawler --to $TO \ + --from openSUSE:Factory \ + --only-from openSUSE:Factory \ + "$@" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openSUSE-release-tools-20171010.02e5000/script/osrt-leaper-crawler-openSUSE:Leap:42.3 new/openSUSE-release-tools-20171013.b00a8f5/script/osrt-leaper-crawler-openSUSE:Leap:42.3 --- old/openSUSE-release-tools-20171010.02e5000/script/osrt-leaper-crawler-openSUSE:Leap:42.3 1970-01-01 01:00:00.000000000 +0100 +++ new/openSUSE-release-tools-20171013.b00a8f5/script/osrt-leaper-crawler-openSUSE:Leap:42.3 2017-10-13 11:12:22.000000000 +0200 @@ -0,0 +1,40 @@ +#!/bin/bash + +TO=openSUSE:Leap:42.3 + +osrt-update_crawler --to $TO \ + --from SUSE:SLE-12-SP3:GA \ + --only-from SUSE:SLE-12:GA \ + --only-from SUSE:SLE-12:Update \ + --only-from SUSE:SLE-12-SP1:GA \ + --only-from SUSE:SLE-12-SP1:Update \ + --only-from SUSE:SLE-12-SP2:GA \ + --only-from SUSE:SLE-12-SP2:Update \ + --only-from SUSE:SLE-12-SP3:GA \ + --only-from SUSE:SLE-12-SP3:Update \ + "$@" + +osrt-update_crawler --to $TO \ + --from openSUSE:Leap:42.3:Update \ + --only-from openSUSE:Leap:42.1 \ + --only-from openSUSE:Leap:42.1:Update \ + --only-from openSUSE:Leap:42.2 \ + --only-from openSUSE:Leap:42.2:Update \ + --only-from openSUSE:Leap:42.3 \ + --only-from openSUSE:Leap:42.3:Update \ + "$@" + +osrt-update_crawler --to $TO \ + --from openSUSE:Leap:42.3:NonFree:Update \ + --only-from openSUSE:Leap:42.1:NonFree \ + --only-from openSUSE:Leap:42.1:NonFree:Update \ + --only-from openSUSE:Leap:42.2:NonFree \ + --only-from openSUSE:Leap:42.2:NonFree:Update \ + --only-from openSUSE:Leap:42.3:NonFree \ + --only-from openSUSE:Leap:42.3:NonFree:Update \ + "$@" + +osrt-update_crawler --to $TO \ + --from openSUSE:Factory \ + --only-from openSUSE:Factory \ + "$@" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openSUSE-release-tools-20171010.02e5000/systemd/opensuse-totest-manager.service new/openSUSE-release-tools-20171013.b00a8f5/systemd/opensuse-totest-manager.service --- old/openSUSE-release-tools-20171010.02e5000/systemd/opensuse-totest-manager.service 2017-10-10 13:31:25.000000000 +0200 +++ new/openSUSE-release-tools-20171013.b00a8f5/systemd/opensuse-totest-manager.service 1970-01-01 01:00:00.000000000 +0100 @@ -1,9 +0,0 @@ -[Unit] -Description=openSUSE Factory ToTest Manager - -[Service] -Type=simple -ExecStart=/usr/bin/screen -DmS totest-manager /usr/share/osc-plugin-factory/totest-manager.py run --verbose --interval 15 -ExecStop=/usr/bin/screen -S totest-manager -X quit -WorkingDirectory=/usr/share/osc-plugin-factory -User=_opensuse.org-totest-manager diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openSUSE-release-tools-20171010.02e5000/systemd/osrt-check-source.service new/openSUSE-release-tools-20171013.b00a8f5/systemd/osrt-check-source.service --- old/openSUSE-release-tools-20171010.02e5000/systemd/osrt-check-source.service 1970-01-01 01:00:00.000000000 +0100 +++ new/openSUSE-release-tools-20171013.b00a8f5/systemd/osrt-check-source.service 2017-10-13 11:12:22.000000000 +0200 @@ -0,0 +1,12 @@ +[Unit] +Description=openSUSE Release Tools: check-source + +[Service] +Type=simple +User=osrt-check-source +SyslogIdentifier=osrt-check-source +# TODO Drop group flag once #1181 is resolved. +ExecStart=/usr/bin/osrt-check_source --verbose --group factory-auto review + +[Install] +WantedBy=multi-user.target diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openSUSE-release-tools-20171010.02e5000/systemd/osrt-check-source.timer new/openSUSE-release-tools-20171013.b00a8f5/systemd/osrt-check-source.timer --- old/openSUSE-release-tools-20171010.02e5000/systemd/osrt-check-source.timer 1970-01-01 01:00:00.000000000 +0100 +++ new/openSUSE-release-tools-20171013.b00a8f5/systemd/osrt-check-source.timer 2017-10-13 11:12:22.000000000 +0200 @@ -0,0 +1,10 @@ +[Unit] +Description=openSUSE Release Tools: check-source + +[Timer] +OnBootSec=120 +OnUnitInactiveSec=3 min +Unit=osrt-check-source.service + +[Install] +WantedBy=timers.target diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openSUSE-release-tools-20171010.02e5000/systemd/osrt-leaper-crawler@.service new/openSUSE-release-tools-20171013.b00a8f5/systemd/osrt-leaper-crawler@.service --- old/openSUSE-release-tools-20171010.02e5000/systemd/osrt-leaper-crawler@.service 1970-01-01 01:00:00.000000000 +0100 +++ new/openSUSE-release-tools-20171013.b00a8f5/systemd/osrt-leaper-crawler@.service 2017-10-13 11:12:22.000000000 +0200 @@ -0,0 +1,10 @@ +[Unit] +Description=openSUSE Release Tools: leaper crawler for %i (creates SRs from upstream projects) + +[Service] +Type=simple +User=osrt-leaper +ExecStart=/usr/bin/osrt-leaper-crawler-%i + +[Install] +WantedBy=multi-user.target diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openSUSE-release-tools-20171010.02e5000/systemd/osrt-leaper-crawler@.timer new/openSUSE-release-tools-20171013.b00a8f5/systemd/osrt-leaper-crawler@.timer --- old/openSUSE-release-tools-20171010.02e5000/systemd/osrt-leaper-crawler@.timer 1970-01-01 01:00:00.000000000 +0100 +++ new/openSUSE-release-tools-20171013.b00a8f5/systemd/osrt-leaper-crawler@.timer 2017-10-13 11:12:22.000000000 +0200 @@ -0,0 +1,10 @@ +[Unit] +Description=openSUSE Release Tools: leaper crawler for %i (creates SRs from upstream projects) + +[Timer] +OnBootSec=120 +OnUnitInactiveSec=4 hour +Unit=osrt-leaper-crawler@%i.service + +[Install] +WantedBy=timers.target diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openSUSE-release-tools-20171010.02e5000/systemd/osrt-leaper-manager@.service new/openSUSE-release-tools-20171013.b00a8f5/systemd/osrt-leaper-manager@.service --- old/openSUSE-release-tools-20171010.02e5000/systemd/osrt-leaper-manager@.service 1970-01-01 01:00:00.000000000 +0100 +++ new/openSUSE-release-tools-20171013.b00a8f5/systemd/osrt-leaper-manager@.service 2017-10-13 11:12:22.000000000 +0200 @@ -0,0 +1,10 @@ +[Unit] +Description=openSUSE Release Tools: leaper manager for %i (set source projects) + +[Service] +Type=simple +User=osrt-leaper +ExecStart=/usr/bin/osrt-manager_42 -c /etc/openSUSE-release-tools/manager_42/%i.yml + +[Install] +WantedBy=multi-user.target diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openSUSE-release-tools-20171010.02e5000/systemd/osrt-leaper-manager@.timer new/openSUSE-release-tools-20171013.b00a8f5/systemd/osrt-leaper-manager@.timer --- old/openSUSE-release-tools-20171010.02e5000/systemd/osrt-leaper-manager@.timer 1970-01-01 01:00:00.000000000 +0100 +++ new/openSUSE-release-tools-20171013.b00a8f5/systemd/osrt-leaper-manager@.timer 2017-10-13 11:12:22.000000000 +0200 @@ -0,0 +1,10 @@ +[Unit] +Description=openSUSE Release Tools: leaper manager for %i + +[Timer] +OnBootSec=120 +OnUnitInactiveSec=3 min +Unit=osrt-leaper-manager@%i.service + +[Install] +WantedBy=timers.target diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openSUSE-release-tools-20171010.02e5000/systemd/osrt-leaper-review.service new/openSUSE-release-tools-20171013.b00a8f5/systemd/osrt-leaper-review.service --- old/openSUSE-release-tools-20171010.02e5000/systemd/osrt-leaper-review.service 1970-01-01 01:00:00.000000000 +0100 +++ new/openSUSE-release-tools-20171013.b00a8f5/systemd/osrt-leaper-review.service 2017-10-13 11:12:22.000000000 +0200 @@ -0,0 +1,10 @@ +[Unit] +Description=openSUSE Release Tools: leaper review + +[Service] +Type=oneshot +User=osrt-leaper +ExecStart=/usr/bin/osrt-leaper --verbose --manual-version-updates --manual-maintenance-updates review + +[Install] +WantedBy=multi-user.target diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openSUSE-release-tools-20171010.02e5000/systemd/osrt-leaper-review.timer new/openSUSE-release-tools-20171013.b00a8f5/systemd/osrt-leaper-review.timer --- old/openSUSE-release-tools-20171010.02e5000/systemd/osrt-leaper-review.timer 1970-01-01 01:00:00.000000000 +0100 +++ new/openSUSE-release-tools-20171013.b00a8f5/systemd/osrt-leaper-review.timer 2017-10-13 11:12:22.000000000 +0200 @@ -0,0 +1,10 @@ +[Unit] +Description=openSUSE Release Tools: leaper review + +[Timer] +OnBootSec=120 +OnUnitInactiveSec=3 min +Unit=osrt-leaper-review.service + +[Install] +WantedBy=timers.target diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openSUSE-release-tools-20171010.02e5000/systemd/osrt-maintenance-incidents.service new/openSUSE-release-tools-20171013.b00a8f5/systemd/osrt-maintenance-incidents.service --- old/openSUSE-release-tools-20171010.02e5000/systemd/osrt-maintenance-incidents.service 1970-01-01 01:00:00.000000000 +0100 +++ new/openSUSE-release-tools-20171013.b00a8f5/systemd/osrt-maintenance-incidents.service 2017-10-13 11:12:22.000000000 +0200 @@ -0,0 +1,10 @@ +[Unit] +Description=openSUSE Release Tools: maintenance incidents + +[Service] +Type=simple +User=osrt-maintenance +ExecStart=/usr/bin/osrt-check_maintenance_incidents --verbose review + +[Install] +WantedBy=multi-user.target diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openSUSE-release-tools-20171010.02e5000/systemd/osrt-maintenance-incidents.timer new/openSUSE-release-tools-20171013.b00a8f5/systemd/osrt-maintenance-incidents.timer --- old/openSUSE-release-tools-20171010.02e5000/systemd/osrt-maintenance-incidents.timer 1970-01-01 01:00:00.000000000 +0100 +++ new/openSUSE-release-tools-20171013.b00a8f5/systemd/osrt-maintenance-incidents.timer 2017-10-13 11:12:22.000000000 +0200 @@ -0,0 +1,10 @@ +[Unit] +Description=openSUSE Release Tools: maintenance incidents + +[Timer] +OnBootSec=120 +OnUnitInactiveSec=30 min +Unit=osrt-maintenance-incidents.service + +[Install] +WantedBy=timers.target diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openSUSE-release-tools-20171010.02e5000/systemd/osrt-staging-bot-daily@.service new/openSUSE-release-tools-20171013.b00a8f5/systemd/osrt-staging-bot-daily@.service --- old/openSUSE-release-tools-20171010.02e5000/systemd/osrt-staging-bot-daily@.service 1970-01-01 01:00:00.000000000 +0100 +++ new/openSUSE-release-tools-20171013.b00a8f5/systemd/osrt-staging-bot-daily@.service 2017-10-13 11:12:22.000000000 +0200 @@ -0,0 +1,14 @@ +[Unit] +Description=openSUSE Release Tools: staging-bot daily for %i + +[Service] +Type=oneshot +User=osrt-staging-bot +SyslogIdentifier=osrt-staging-bot +ExecStart=/usr/bin/env bash -c ' \ + osc staging -p "%i" unignore --cleanup \ + ' +TimeoutStartSec=3 hour + +[Install] +WantedBy=multi-user.target diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openSUSE-release-tools-20171010.02e5000/systemd/osrt-staging-bot-daily@.timer new/openSUSE-release-tools-20171013.b00a8f5/systemd/osrt-staging-bot-daily@.timer --- old/openSUSE-release-tools-20171010.02e5000/systemd/osrt-staging-bot-daily@.timer 1970-01-01 01:00:00.000000000 +0100 +++ new/openSUSE-release-tools-20171013.b00a8f5/systemd/osrt-staging-bot-daily@.timer 2017-10-13 11:12:22.000000000 +0200 @@ -0,0 +1,9 @@ +[Unit] +Description=openSUSE Release Tools: staging-bot daily for %i + +[Timer] +OnCalendar=daily +Unit=osrt-staging-bot-daily@%i.service + +[Install] +WantedBy=timers.target diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openSUSE-release-tools-20171010.02e5000/systemd/osrt-staging-bot-devel-list.service new/openSUSE-release-tools-20171013.b00a8f5/systemd/osrt-staging-bot-devel-list.service --- old/openSUSE-release-tools-20171010.02e5000/systemd/osrt-staging-bot-devel-list.service 1970-01-01 01:00:00.000000000 +0100 +++ new/openSUSE-release-tools-20171013.b00a8f5/systemd/osrt-staging-bot-devel-list.service 2017-10-13 11:12:22.000000000 +0200 @@ -0,0 +1,11 @@ +[Unit] +Description=openSUSE Release Tools: staging-bot devel list (stored in dashboard) + +[Service] +Type=simple +User=osrt-staging-bot +SyslogIdentifier=osrt-staging-bot +ExecStart=/usr/bin/osrt-devel-project list -w + +[Install] +WantedBy=multi-user.target diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openSUSE-release-tools-20171010.02e5000/systemd/osrt-staging-bot-devel-list.timer new/openSUSE-release-tools-20171013.b00a8f5/systemd/osrt-staging-bot-devel-list.timer --- old/openSUSE-release-tools-20171010.02e5000/systemd/osrt-staging-bot-devel-list.timer 1970-01-01 01:00:00.000000000 +0100 +++ new/openSUSE-release-tools-20171013.b00a8f5/systemd/osrt-staging-bot-devel-list.timer 2017-10-13 11:12:22.000000000 +0200 @@ -0,0 +1,10 @@ +[Unit] +Description=openSUSE Release Tools: staging-bot devel list (stored in dashboard) + +[Timer] +OnBootSec=120 +OnCalendar=daily +Unit=osrt-staging-bot-devel-list.service + +[Install] +WantedBy=timers.target diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openSUSE-release-tools-20171010.02e5000/systemd/osrt-staging-bot-regular@.service new/openSUSE-release-tools-20171013.b00a8f5/systemd/osrt-staging-bot-regular@.service --- old/openSUSE-release-tools-20171010.02e5000/systemd/osrt-staging-bot-regular@.service 1970-01-01 01:00:00.000000000 +0100 +++ new/openSUSE-release-tools-20171013.b00a8f5/systemd/osrt-staging-bot-regular@.service 2017-10-13 11:12:22.000000000 +0200 @@ -0,0 +1,19 @@ +[Unit] +Description=openSUSE Release Tools: staging-bot regular for %i + +[Service] +Type=oneshot +User=osrt-staging-bot +SyslogIdentifier=osrt-staging-bot +ExecStart=/usr/bin/env bash -c ' \ + osc staging -p "%i" rebuild && \ + osc staging -p "%i" list --supersede && \ + osc staging -p "%i" adi --by-develproject && \ + osc staging -p "%i" select --non-interactive --merge --try-strategies && \ + osc staging -p "%i" unselect --cleanup && \ + osc staging -p "%i" repair --cleanup \ + ' +TimeoutStartSec=5 hour + +[Install] +WantedBy=multi-user.target diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openSUSE-release-tools-20171010.02e5000/systemd/osrt-staging-bot-regular@.timer new/openSUSE-release-tools-20171013.b00a8f5/systemd/osrt-staging-bot-regular@.timer --- old/openSUSE-release-tools-20171010.02e5000/systemd/osrt-staging-bot-regular@.timer 1970-01-01 01:00:00.000000000 +0100 +++ new/openSUSE-release-tools-20171013.b00a8f5/systemd/osrt-staging-bot-regular@.timer 2017-10-13 11:12:22.000000000 +0200 @@ -0,0 +1,10 @@ +[Unit] +Description=openSUSE Release Tools: staging-bot regular for %i + +[Timer] +OnBootSec=120 +OnUnitInactiveSec=60 min +Unit=osrt-staging-bot-regular@%i.service + +[Install] +WantedBy=timers.target diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openSUSE-release-tools-20171010.02e5000/systemd/osrt-staging-bot-reminder.service new/openSUSE-release-tools-20171013.b00a8f5/systemd/osrt-staging-bot-reminder.service --- old/openSUSE-release-tools-20171010.02e5000/systemd/osrt-staging-bot-reminder.service 1970-01-01 01:00:00.000000000 +0100 +++ new/openSUSE-release-tools-20171013.b00a8f5/systemd/osrt-staging-bot-reminder.service 2017-10-13 11:12:22.000000000 +0200 @@ -0,0 +1,15 @@ +[Unit] +Description=openSUSE Release Tools: staging-bot reminder + +[Service] +Type=oneshot +User=osrt-staging-bot +SyslogIdentifier=osrt-staging-bot +ExecStart=/usr/bin/env bash -c ' \ + /usr/bin/osrt-devel-project reviews --min-age 3 --remind && \ + /usr/bin/osrt-devel-project requests --min-age 3 --remind \ + ' +TimeoutStartSec=3 hour + +[Install] +WantedBy=multi-user.target diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openSUSE-release-tools-20171010.02e5000/systemd/osrt-staging-bot-reminder.timer new/openSUSE-release-tools-20171013.b00a8f5/systemd/osrt-staging-bot-reminder.timer --- old/openSUSE-release-tools-20171010.02e5000/systemd/osrt-staging-bot-reminder.timer 1970-01-01 01:00:00.000000000 +0100 +++ new/openSUSE-release-tools-20171013.b00a8f5/systemd/osrt-staging-bot-reminder.timer 2017-10-13 11:12:22.000000000 +0200 @@ -0,0 +1,9 @@ +[Unit] +Description=openSUSE Release Tools: staging-bot reminder + +[Timer] +OnCalendar=daily +Unit=osrt-staging-bot-reminder.service + +[Install] +WantedBy=timers.target diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openSUSE-release-tools-20171010.02e5000/systemd/osrt-staging-bot-supersede@.service new/openSUSE-release-tools-20171013.b00a8f5/systemd/osrt-staging-bot-supersede@.service --- old/openSUSE-release-tools-20171010.02e5000/systemd/osrt-staging-bot-supersede@.service 1970-01-01 01:00:00.000000000 +0100 +++ new/openSUSE-release-tools-20171013.b00a8f5/systemd/osrt-staging-bot-supersede@.service 2017-10-13 11:12:22.000000000 +0200 @@ -0,0 +1,11 @@ +[Unit] +Description=openSUSE Release Tools: supersede duplicate submissions for %i + +[Service] +Type=simple +User=osrt-staging-bot +SyslogIdentifier=osrt-staging-bot +ExecStart=/usr/bin/osc check_dups "%i" + +[Install] +WantedBy=multi-user.target diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openSUSE-release-tools-20171010.02e5000/systemd/osrt-staging-bot-supersede@.timer new/openSUSE-release-tools-20171013.b00a8f5/systemd/osrt-staging-bot-supersede@.timer --- old/openSUSE-release-tools-20171010.02e5000/systemd/osrt-staging-bot-supersede@.timer 1970-01-01 01:00:00.000000000 +0100 +++ new/openSUSE-release-tools-20171013.b00a8f5/systemd/osrt-staging-bot-supersede@.timer 2017-10-13 11:12:22.000000000 +0200 @@ -0,0 +1,10 @@ +[Unit] +Description=openSUSE Release Tools: supersede duplicate submissions for %i + +[Timer] +OnBootSec=120 +OnUnitInactiveSec=4 min +Unit=osrt-staging-bot-supersede@%i.service + +[Install] +WantedBy=timers.target diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openSUSE-release-tools-20171010.02e5000/systemd/osrt-staging-bot-support-rebuild@.service new/openSUSE-release-tools-20171013.b00a8f5/systemd/osrt-staging-bot-support-rebuild@.service --- old/openSUSE-release-tools-20171010.02e5000/systemd/osrt-staging-bot-support-rebuild@.service 1970-01-01 01:00:00.000000000 +0100 +++ new/openSUSE-release-tools-20171013.b00a8f5/systemd/osrt-staging-bot-support-rebuild@.service 2017-10-13 11:12:22.000000000 +0200 @@ -0,0 +1,11 @@ +[Unit] +Description=openSUSE Release Tools: staging-bot regular for %i (rebuild staging project if support package staged) + +[Service] +Type=oneshot +User=osrt-staging-bot +SyslogIdentifier=osrt-staging-bot +ExecStart=/usr/bin/osrt-suppkg_rebuild -p "%i" + +[Install] +WantedBy=multi-user.target diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openSUSE-release-tools-20171010.02e5000/systemd/osrt-staging-bot-support-rebuild@.timer new/openSUSE-release-tools-20171013.b00a8f5/systemd/osrt-staging-bot-support-rebuild@.timer --- old/openSUSE-release-tools-20171010.02e5000/systemd/osrt-staging-bot-support-rebuild@.timer 1970-01-01 01:00:00.000000000 +0100 +++ new/openSUSE-release-tools-20171013.b00a8f5/systemd/osrt-staging-bot-support-rebuild@.timer 2017-10-13 11:12:22.000000000 +0200 @@ -0,0 +1,10 @@ +[Unit] +Description=openSUSE Release Tools: staging-bot regular for %i (rebuild staging project if support package staged) + +[Timer] +OnBootSec=120 +OnUnitInactiveSec=60 min +Unit=osrt-staging-bot-support-rebuild@%i.service + +[Install] +WantedBy=timers.target diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openSUSE-release-tools-20171010.02e5000/systemd/osrt-totest-manager@.service new/openSUSE-release-tools-20171013.b00a8f5/systemd/osrt-totest-manager@.service --- old/openSUSE-release-tools-20171010.02e5000/systemd/osrt-totest-manager@.service 1970-01-01 01:00:00.000000000 +0100 +++ new/openSUSE-release-tools-20171013.b00a8f5/systemd/osrt-totest-manager@.service 2017-10-13 11:12:22.000000000 +0200 @@ -0,0 +1,8 @@ +[Unit] +Description=openSUSE Release Tools: ToTest Manager for %i + +[Service] +Type=simple +User=osrt-totest-manager +WorkingDirectory=~ +ExecStart=/usr/bin/osrt-totest-manager --verbose run --interval 5 "%i" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/openSUSE-release-tools-20171010.02e5000/totest-manager.py new/openSUSE-release-tools-20171013.b00a8f5/totest-manager.py --- old/openSUSE-release-tools-20171010.02e5000/totest-manager.py 2017-10-10 13:31:25.000000000 +0200 +++ new/openSUSE-release-tools-20171013.b00a8f5/totest-manager.py 2017-10-13 11:12:22.000000000 +0200 @@ -24,12 +24,12 @@ import osc -logger = logging.getLogger() - from osclib.conf import Config from osclib.stagingapi import StagingAPI from osc.core import makeurl +logger = logging.getLogger() + ISSUE_FILE = 'issues_to_ignore' # QA Results @@ -38,6 +38,10 @@ QA_PASSED = 3 +class NotFoundException(Exception): + pass + + class ToTestBase(object): """Base class to store the basic interface""" @@ -98,14 +102,14 @@ result = re.match(r'openSUSE.*Build(.*)-Media1.report', binary) if result: return result.group(1) - raise Exception("can't find %s version" % self.project) + raise NotFoundException("can't find %s ftp version" % project) def iso_build_version(self, project, tree): for binary in self.binaries_of_product('openSUSE:%s' % project, tree): result = re.match(r'openSUSE.*Build(.*)-Media.iso', binary) if result: return result.group(1) - raise Exception("can't find %s version" % self.project) + raise NotFoundException("can't find %s iso version" % project) def release_version(self): url = self.api.makeurl(['build', 'openSUSE:%s' % self.project, 'standard', self.arch(), @@ -118,7 +122,7 @@ if result: return result.group(1) - raise Exception("can't find %s version" % self.project) + raise NotFoundException("can't find %s version" % self.project) def find_openqa_results(self, snapshot): """Return the openqa jobs of a given snapshot and filter out the @@ -215,7 +219,6 @@ f = self.api.retried_GET(url) comments = json.load(f) refs = set() - #pprint(comments) labeled = 0 to_ignore = False for comment in comments: @@ -322,10 +325,10 @@ if re.match(r'.*-dvd9-dvd-.*', package): return 8539996159 - if package.startswith('_product:openSUSE-ftp-ftp-'): + if ':openSUSE-ftp-ftp-' in package: return None - if package.startswith('_product:openSUSE-Addon-NonOss-ftp-ftp'): + if ':openSUSE-Addon-NonOss-ftp-ftp' in package: return None raise Exception('No maxsize for {}'.format(package)) @@ -389,7 +392,7 @@ return True - def release_package(self, project, package, set_release=None): + def _release_package(self, project, package, set_release=None): query = {'cmd': 'release'} if set_release: @@ -408,6 +411,18 @@ else: self.api.retried_POST(url) + def _release(self, set_release=None): + for product in self.ftp_products: + self._release_package('openSUSE:%s' % self.project, product) + + for cd in self.livecd_products: + self._release_package('openSUSE:%s:Live' % + self.project, cd, set_release=release) + + for cd in self.main_products: + self._release_package('openSUSE:%s' % + self.project, cd, set_release=release) + def update_totest(self, snapshot=None): release = 'Snapshot%s' % snapshot if snapshot else None logger.info('Updating snapshot %s' % snapshot) @@ -415,16 +430,7 @@ self.api.switch_flag_in_prj( 'openSUSE:%s:ToTest' % self.project, flag='publish', state='disable') - for product in self.ftp_products: - self.release_package('openSUSE:%s' % self.project, product) - - for cd in self.livecd_products: - self.release_package('openSUSE:%s:Live' % - self.project, cd, set_release=release) - - for cd in self.main_products: - self.release_package( - 'openSUSE:%s' % self.project, cd, set_release=release) + self._release(set_release=snapshot) def publish_factory_totest(self): logger.info('Publish ToTest') @@ -450,7 +456,12 @@ return False def totest(self): - current_snapshot = self.get_current_snapshot() + try: + current_snapshot = self.get_current_snapshot() + except NotFoundException, e: + # nothing in :ToTest (yet) + logger.warn(e) + current_snapshot = None new_snapshot = self.current_version() current_result = self.overall_result(current_snapshot) @@ -509,6 +520,45 @@ osc.core.http_PUT(url + '?comment=Update+version', data=version) +class ToTestBaseNew(ToTestBase): + + """Base class for new product builder""" + def _release(self, set_release=None): + query = {'cmd': 'release'} + + package = '000product' + project = 'openSUSE:{}'.format(self.project) + + if set_release: + query['setrelease'] = set_release + + baseurl = ['source', project, package] + + url = self.api.makeurl(baseurl, query=query) + if self.dryrun: + logger.info("release %s/%s (%s)" % (project, package, set_release)) + else: + self.api.retried_POST(url) + + # XXX still legacy + for cd in self.livecd_products: + self._release_package('openSUSE:%s:Live' % + self.project, cd, set_release=release) + + def release_version(self): + url = self.api.makeurl(['build', 'openSUSE:%s' % self.project, 'standard', self.arch(), + '000product:openSUSE-release']) + f = self.api.retried_GET(url) + root = ET.parse(f).getroot() + for binary in root.findall('binary'): + binary = binary.get('filename', '') + result = re.match(r'.*-([^-]*)-[^-]*.src.rpm', binary) + if result: + return result.group(1) + + raise NotFoundException("can't find %s release version" % self.project) + + class ToTestFactory(ToTestBase): main_products = ['_product:openSUSE-dvd5-dvd-i586', '_product:openSUSE-dvd5-dvd-x86_64', @@ -607,19 +657,20 @@ return 2 -class ToTest423(ToTestBase): +class ToTest150(ToTestBaseNew): main_products = [ - '_product:openSUSE-cd-mini-x86_64', - '_product:openSUSE-dvd5-dvd-x86_64', + '000product:openSUSE-cd-mini-x86_64', + '000product:openSUSE-dvd5-dvd-x86_64', ] - ftp_products = ['_product:openSUSE-ftp-ftp-x86_64', - '_product:openSUSE-Addon-NonOss-ftp-ftp-x86_64'] + ftp_products = ['000product:openSUSE-ftp-ftp-x86_64', + # TODO '000product:openSUSE-Addon-NonOss-ftp-ftp-x86_64' + ] livecd_products = [] def openqa_group(self): - return 'openSUSE Leap 42.3' + return 'openSUSE Leap 15.0' def current_version(self): return self.iso_build_version(self.project, self.main_products[0]) @@ -628,7 +679,7 @@ return self.iso_build_version(self.project + ':ToTest', self.main_products[0]) def is_snapshottable(self): - ret = super(ToTest423, self).is_snapshottable() + ret = super(ToTest150, self).is_snapshottable() if ret: # make sure all medias have the same build number builds = set() @@ -646,7 +697,7 @@ def update_totest(self, snapshot): # omit snapshot, we don't want to rename on release - super(ToTest423, self).update_totest() + super(ToTest150, self).update_totest() class CommandlineInterface(cmdln.Cmdln): @@ -659,7 +710,7 @@ 'Factory:PowerPC': ToTestFactoryPowerPC, 'Factory:ARM': ToTestFactoryARM, 'Factory:zSystems': ToTestFactoryzSystems, - 'Leap:42.3': ToTest423, + 'Leap:15.0': ToTest150, } def get_optparser(self): ++++++ openSUSE-release-tools.obsinfo ++++++ --- /var/tmp/diff_new_pack.OfiIRC/_old 2017-10-17 01:51:49.128399720 +0200 +++ /var/tmp/diff_new_pack.OfiIRC/_new 2017-10-17 01:51:49.128399720 +0200 @@ -1,5 +1,5 @@ name: openSUSE-release-tools -version: 20171010.02e5000 -mtime: 1507634868 -commit: 02e50005b16b70a269ad15b97099c0a1b3035b32 +version: 20171013.b00a8f5 +mtime: 1507885185 +commit: b00a8f5ed667e32a4cec71523bddbcefb1ca20fd