[Owner-change] Fedora packages ownership change
by Pierre-Yves Chibon
Change in ownership over the last 168 hours
===========================================
4 packages were orphaned
------------------------
asm2 [devel] was orphaned by orion
A code manipulation tool to implement adaptable systems
https://admin.fedoraproject.org/pkgdb/acls/name/asm2
php-redis [devel,f19] was orphaned by remi
Extension for communicating with the Redis key-value store
https://admin.fedoraproject.org/pkgdb/acls/name/php-redis
pymongo [devel,f18,f19] was orphaned by toshio
Python driver for MongoDB
https://admin.fedoraproject.org/pkgdb/acls/name/pymongo
tex-simplecv [devel,f19] was orphaned by jamatos
A simple latex class for writing curricula vitae
https://admin.fedoraproject.org/pkgdb/acls/name/tex-simplecv
15 packages unorphaned
----------------------
ppisar unorphaned : perl-AnyEvent-BDB [f19]
limb unorphaned : cellwriter [EL-6]
lbazan unorphaned : transifex-client [EL-5]
lbazan unorphaned : python-django-south [f18]
lbazan unorphaned : django-addons [EL-5]
lbazan unorphaned : python-django-threadedcomments [f19]
ankursinha unorphaned : lifeograph [devel]
lbazan unorphaned : python-django-addons [f18]
lbazan unorphaned : python-django-ajax-selects [f18]
ppisar unorphaned : perl-Event-RPC [f19]
ppisar unorphaned : perl-CPANPLUS-Dist-Build [devel]
sundaram unorphaned : e_dbus [devel]
lbazan unorphaned : transifex [EL-6]
ppisar unorphaned : perl-XML-Writer [f17]
lbazan unorphaned : python-django-staticfiles [f18]
17 packages changed owner
-------------------------
limb gave to mcpierce : perl-qpid [EL-5,EL-6]
limb gave to cicku : libserf [EL-6]
limb gave to lbazan : python-django-staticfiles [EL-6]
limb gave to rlandmann : overpass-fonts [EL-6]
limb gave to lbazan : python-django-south [EL-6]
limb gave to lbazan : python-django-addons [EL-6]
limb gave to lbazan : python-django-threadedcomments [EL-6]
limb gave to ankursinha : lifeograph [f18,f19]
limb gave to ppisar : perl-CPANPLUS-Dist-Build [f19]
limb gave to lbazan : python-django-ajax-selects [EL-6]
limb gave to isimluk : ruby-ncurses [EL-6]
limb gave to aalvarez : libmetalink [EL-5,EL-6,devel,f17,f18,f19]
limb gave to besser82 : checksec [EL-5]
limb gave to mcpierce : python-qpid [EL-5,EL-6]
limb gave to fab : pysnmp [EL-6]
limb gave to brouhaha : libbsd [EL-5]
kevin gave to slaanesh : dkms [EL-5,EL-6,devel,f17,f18,f19]
9 years, 9 months
[Owner-change] Fedora packages ownership change
by Pierre-Yves Chibon
Change in ownership over the last 168 hours
===========================================
4 packages were orphaned
------------------------
asm2 [devel] was orphaned by orion
A code manipulation tool to implement adaptable systems
https://admin.fedoraproject.org/pkgdb/acls/name/asm2
php-redis [devel,f19] was orphaned by remi
Extension for communicating with the Redis key-value store
https://admin.fedoraproject.org/pkgdb/acls/name/php-redis
pymongo [devel,f18,f19] was orphaned by toshio
Python driver for MongoDB
https://admin.fedoraproject.org/pkgdb/acls/name/pymongo
tex-simplecv [devel,f19] was orphaned by jamatos
A simple latex class for writing curricula vitae
https://admin.fedoraproject.org/pkgdb/acls/name/tex-simplecv
15 packages unorphaned
----------------------
ppisar unorphaned : perl-AnyEvent-BDB [f19]
limb unorphaned : cellwriter [EL-6]
lbazan unorphaned : transifex-client [EL-5]
lbazan unorphaned : python-django-south [f18]
lbazan unorphaned : django-addons [EL-5]
lbazan unorphaned : python-django-threadedcomments [f19]
ankursinha unorphaned : lifeograph [devel]
lbazan unorphaned : python-django-addons [f18]
lbazan unorphaned : python-django-ajax-selects [f18]
ppisar unorphaned : perl-Event-RPC [f19]
ppisar unorphaned : perl-CPANPLUS-Dist-Build [devel]
lbazan unorphaned : transifex [EL-6]
ppisar unorphaned : perl-XML-Writer [f17]
lbazan unorphaned : python-django-staticfiles [f18]
tmraz unorphaned : cracklib [f18]
12 packages changed owner
-------------------------
limb gave to mcpierce : perl-qpid [EL-5,EL-6]
limb gave to cicku : libserf [EL-6]
limb gave to rlandmann : overpass-fonts [EL-6]
limb gave to ankursinha : lifeograph [f18,f19]
limb gave to ppisar : perl-CPANPLUS-Dist-Build [f19]
limb gave to isimluk : ruby-ncurses [EL-6]
limb gave to aalvarez : libmetalink [EL-5,EL-6,devel,f17,f18,f19]
limb gave to besser82 : checksec [EL-5]
limb gave to mcpierce : python-qpid [EL-5,EL-6]
limb gave to fab : pysnmp [EL-6]
limb gave to brouhaha : libbsd [EL-5]
kevin gave to slaanesh : dkms [EL-5,EL-6,devel,f17,f18,f19]
9 years, 9 months
[Owner-change] Fedora packages ownership change
by Pierre-Yves Chibon
Change in ownership over the last 168 hours
===========================================
4 packages were orphaned
------------------------
asm2 [devel] was orphaned by orion
A code manipulation tool to implement adaptable systems
https://admin.fedoraproject.org/pkgdb/acls/name/asm2
php-redis [devel,f19] was orphaned by remi
Extension for communicating with the Redis key-value store
https://admin.fedoraproject.org/pkgdb/acls/name/php-redis
pymongo [devel,f18,f19] was orphaned by toshio
Python driver for MongoDB
https://admin.fedoraproject.org/pkgdb/acls/name/pymongo
tex-simplecv [devel,f19] was orphaned by jamatos
A simple latex class for writing curricula vitae
https://admin.fedoraproject.org/pkgdb/acls/name/tex-simplecv
14 packages unorphaned
----------------------
perl-AnyEvent-BDB [f19] was unorphaned by ppisar
cellwriter [EL-6] was unorphaned by limb
transifex-client [EL-5] was unorphaned by lbazan
python-django-south [f18] was unorphaned by lbazan
django-addons [EL-5] was unorphaned by lbazan
python-django-threadedcomments [f19] was unorphaned by lbazan
lifeograph [devel] was unorphaned by ankursinha
python-django-addons [f18] was unorphaned by lbazan
python-django-ajax-selects [f18] was unorphaned by lbazan
perl-CPANPLUS-Dist-Build [devel] was unorphaned by ppisar
transifex [EL-6] was unorphaned by lbazan
perl-XML-Writer [f17] was unorphaned by ppisar
python-django-staticfiles [f18] was unorphaned by lbazan
cracklib [f18] was unorphaned by tmraz
11 packages changed owner
-------------------------
perl-qpid [EL-5,EL-6] was changed to "mcpierce" by limb
libserf [EL-6] was changed to "cicku" by limb
overpass-fonts [EL-6] was changed to "rlandmann" by limb
perl-CPANPLUS-Dist-Build [f19] was changed to "ppisar" by limb
ruby-ncurses [EL-6] was changed to "isimluk" by limb
libmetalink [EL-5,EL-6,f17,f18,f19] was changed to "aalvarez" by limb
checksec [EL-5] was changed to "besser82" by limb
python-qpid [EL-5,EL-6] was changed to "mcpierce" by limb
pysnmp [EL-6] was changed to "fab" by limb
libbsd [EL-5] was changed to "brouhaha" by limb
dkms [EL-5,EL-6,devel,f17,f18,f19] was changed to "slaanesh" by kevin
9 years, 9 months
[PATCH] Import the owner_changes module
by Pierre-Yves Chibon
---
.../nodes/datagrepper01.phx2.fedoraproject.org.pp | 2 +
modules/owner_changes/files/fedora-owner-change.py | 232 ++++++++++++++++++++
modules/owner_changes/manifests/init.pp | 23 ++
3 files changed, 257 insertions(+), 0 deletions(-)
create mode 100644 modules/owner_changes/files/fedora-owner-change.py
create mode 100644 modules/owner_changes/manifests/init.pp
diff --git a/manifests/nodes/datagrepper01.phx2.fedoraproject.org.pp b/manifests/nodes/datagrepper01.phx2.fedoraproject.org.pp
index 41eba4c..63fea5d 100644
--- a/manifests/nodes/datagrepper01.phx2.fedoraproject.org.pp
+++ b/manifests/nodes/datagrepper01.phx2.fedoraproject.org.pp
@@ -10,6 +10,8 @@ node "datagrepper01.phx2.fedoraproject.org" {
include datagrepper::app
include openvpn::client
+ include owner_changes
+
iptables::firewall { 'ipv4':
tcpPorts => [ 80, 443 ],
custom => [ "-A INPUT -p tcp -m tcp -s 10.5.126.29 --dport 873 -j ACCEPT",
diff --git a/modules/owner_changes/files/fedora-owner-change.py b/modules/owner_changes/files/fedora-owner-change.py
new file mode 100644
index 0000000..662ed6c
--- /dev/null
+++ b/modules/owner_changes/files/fedora-owner-change.py
@@ -0,0 +1,232 @@
+#!/usr/bin/python -tt
+#-*- coding: utf-8 -*-
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License along
+# with this program; if not, write to the Free Software Foundation, Inc.,
+# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+"""
+This program checks and reports the packages owner change in pkgdb using
+its messages catched by datanommer and available via datagrepper.
+
+Dependencies:
+* python-requests
+* python-argparse
+"""
+
+import argparse
+import json
+import logging
+import requests
+import smtplib
+import sys
+
+from email.mime.text import MIMEText
+
+
+DATAGREPPER_URL = 'https://apps.fedoraproject.org/datagrepper/raw/'
+DELTA = 1 * 24 * 60 * 60 # 1 day
+TOPIC = 'org.fedoraproject.prod.pkgdb.owner.update'
+EMAIL_TO = ''
+EMAIL_FROM = ''
+SMTP_SERVER = 'localhost'
+
+# Initial simple logging stuff
+logging.basicConfig()
+LOG = logging.getLogger("owner-change")
+
+
+class PkgChange(object):
+
+ def __init__(self, name, summary, branch, new_owner, user):
+ """ Constructor, fills in the basic information.
+ """
+ self.name = name
+ self.summary = summary
+ self.branch = [branch]
+ self.new_owner = new_owner
+ self.user = user
+
+ def add_branch(self, branch):
+ """ Add a branch to the current ones. """
+ self.branch.append(branch)
+
+ def unorphaned(self):
+ """ Returns a boolean specifying if the package has been
+ unorphaned or not.
+ """
+ return self.new_owner == self.user
+
+ def to_string(self):
+ """ String representation of the object adjusted for the
+ ownership change.
+ """
+ if self.new_owner == self.user:
+ output = u'%s [%s] was unorphaned by %s' % (
+ self.name, ','.join(sorted(self.branch)),
+ self.user)
+ elif self.new_owner == 'orphan':
+ output = u'%s [%s] was orphaned by %s' % (
+ self.name, ','.join(sorted(self.branch)),
+ self.user)
+ else:
+ output = u'%s [%s] was changed to "%s" by %s' % (
+ self.name, ','.join(sorted(self.branch)),
+ self.new_owner, self.user)
+ return output
+
+
+def send_report(report):
+ """ This function sends the actual report.
+ :arg report: the content to send by email
+ """
+ msg = MIMEText(report)
+ msg['Subject'] = '[Owner-change] Fedora packages ownership change'
+ msg['From'] = EMAIL_FROM
+ msg['To'] = EMAIL_TO
+
+ # Send the message via our own SMTP server, but don't include the
+ # envelope header.
+ s = smtplib.SMTP(SMTP_SERVER)
+ s.sendmail(EMAIL_FROM,
+ EMAIL_TO,
+ msg.as_string())
+ s.quit()
+
+
+def retrieve_pkgdb_change():
+ """ Query datagrepper to retrieve the list of change in ownership
+ on packages of pkgdb over the DELTA period of time.
+ """
+ messages = []
+ page = 1
+ pages = 2
+ while page <= pages:
+ LOG.debug('Retrieving page %s of %s' % (page, pages))
+ data = {'delta': DELTA,
+ 'topic': TOPIC,
+ 'rows_per_page': 100,
+ 'page': page,
+ }
+ output = requests.get(DATAGREPPER_URL, params=data)
+ json_output = json.loads(output.text)
+ pages = json_output['pages']
+ page += 1
+ messages.extend(json_output['raw_messages'])
+
+ LOG.debug('Should have retrieved %s' % json_output['total'])
+ return messages
+
+
+def setup_parser():
+ """
+ Set the command line arguments.
+ """
+ parser = argparse.ArgumentParser(
+ prog="fedora-owner-change")
+ parser.add_argument(
+ '--nomail', action='store_true',
+ help="Prints the report instead of sending it by email")
+ parser.add_argument(
+ '--debug', action='store_true',
+ help="Outputs debugging info")
+ return parser
+
+
+def main():
+ """ Retrieve all the change in ownership from pkgdb via datagrepper
+ and report the changes either as packages have been orphaned or
+ packages changed owner.
+ """
+ parser = setup_parser()
+ args = parser.parse_args()
+
+ global LOG
+ if args.debug:
+ LOG.setLevel(logging.DEBUG)
+
+ changes = retrieve_pkgdb_change()
+ LOG.debug('%s changes retrieved' % len(changes))
+ orphaned = {}
+ unorphaned = {}
+ changed = {}
+ for change in changes:
+ pkg_name = change['msg']['package_listing']['package']['name']
+ owner = change['msg']['package_listing']['owner']
+ branch = change['msg']['package_listing']['collection']['branchname']
+ user = change['msg']['agent']
+ LOG.debug('%s changed to %s by %s on %s' % (
+ pkg_name, owner, user, branch))
+ pkg = PkgChange(
+ name=pkg_name,
+ summary=change['msg']['package_listing']['package']['summary'],
+ branch=branch,
+ new_owner=owner,
+ user=user,
+ )
+
+ if owner == 'orphan':
+ if pkg_name in orphaned:
+ orphaned[pkg_name].add_branch(branch)
+ else:
+ orphaned[pkg_name] = pkg
+ elif owner == user:
+ if pkg_name in orphaned:
+ del(orphaned[pkg_name])
+
+ if pkg_name in changed:
+ unorphaned[pkg_name].add_branch(branch)
+ else:
+ unorphaned[pkg_name] = pkg
+ else:
+ if pkg_name in orphaned:
+ del(orphaned[pkg_name])
+
+ if pkg_name in changed:
+ changed[pkg_name].add_branch(branch)
+ else:
+ changed[pkg_name] = pkg
+
+ hours = int(DELTA) / 3600
+ report = 'Change in ownership over the last %s hours\n' % hours
+ report += '=' * (40 + len(str(hours))) + '\n'
+
+ report += '\n%s packages were orphaned\n' % len(orphaned)
+ report += '-' * (len(str(len(orphaned))) + 23) + '\n'
+ for pkg in orphaned:
+ report += orphaned[pkg].to_string() + '\n'
+ report += ' ' * 5 + orphaned[pkg].summary + '\n'
+ report += ' ' * 5 + 'https://admin.fedoraproject.org/pkgdb/'\
+ 'acls/name/%s\n' % orphaned[pkg].name
+
+ report += '\n%s packages unorphaned\n' % len(unorphaned)
+ report += '-' * (len(str(len(unorphaned))) + 20) + '\n'
+ for pkg in unorphaned:
+ if unorphaned[pkg].unorphaned():
+ report += unorphaned[pkg].to_string() + '\n'
+
+ report += '\n%s packages changed owner\n' % len(changed)
+ report += '-' * (len(str(len(changed))) + 23) + '\n'
+ for pkg in changed:
+ if not changed[pkg].unorphaned():
+ report += changed[pkg].to_string() + '\n'
+
+ if args.nomail:
+ print report
+ else:
+ send_report(report)
+
+
+if __name__ == '__main__':
+ import sys
+ sys.exit(main())
diff --git a/modules/owner_changes/manifests/init.pp b/modules/owner_changes/manifests/init.pp
new file mode 100644
index 0000000..e507cc5
--- /dev/null
+++ b/modules/owner_changes/manifests/init.pp
@@ -0,0 +1,23 @@
+class owner_changes {
+
+ package { "python-requests":
+ ensure => installed,
+ }
+
+ file { "/usr/local/bin/fedora-owner-change.py":
+ owner => "root",
+ group => "root",
+ mode => 0755,
+ source => "puppet:///owner_changes/fedora-owner-change.py",
+ }
+
+ cron { "gather-easyfix":
+ command => "/usr/bin/python /usr/local/bin/fedora-owner-change.py",
+ user => "pingou",
+ minute => 0,
+ hour => 12,
+ weekday => 1,
+ ensure => "present",
+ }
+
+}
--
1.7.2.1
9 years, 9 months
Plan for tomorrow's Fedora Infrastructure meeting (2013-06-06)
by Kevin Fenzi
The infrastructure team will be having it's weekly meeting tomorrow,
2013-06-06 at 19:00 UTC in #fedora-meeting on the freenode network.
Suggested topics:
#topic New folks introductions and Apprentice tasks.
If any new folks want to give a quick one line bio or any apprentices
would like to ask general questions, they can do so in this part of the
meeting. Don't be shy!
#topic Applications status / discussion
Check in on status of our applications: pkgdb, fas, bodhi, koji,
community, voting, tagger, packager, dpsearch, etc.
If there's new releases, bugs we need to work around or things to note.
#topic Sysadmin status / discussion
Here we talk about sysadmin related happenings from the previous week,
or things that are upcoming.
#topic Private Cloud status update / discussion
#topic Upcoming Tasks/Items
https://apps.fedoraproject.org/calendar/list/infrastructure/
#topic Open Floor
Submit your agenda items, as tickets in the trac instance and send a
note replying to this thread.
More info here:
https://fedoraproject.org/wiki/Infrastructure/Meetings#Meetings
Thanks
kevin
9 years, 9 months
Plan for tomorrow's Fedora Infrastructure meeting (2013-06-13)
by Kevin Fenzi
The infrastructure team will be having it's weekly meeting tomorrow,
2013-06-13 at 19:00 UTC in #fedora-meeting on the freenode network.
Suggested topics:
#topic New folks introductions and Apprentice tasks.
If any new folks want to give a quick one line bio or any apprentices
would like to ask general questions, they can do so in this part of the
meeting. Don't be shy!
#topic Fedora 19 final freeze next week
We enter final freeze for f19 next week. Lets discuss anything we want
to land before that freeze starts.
#topic Applications status / discussion
Check in on status of our applications: pkgdb, fas, bodhi, koji,
community, voting, tagger, packager, dpsearch, etc.
If there's new releases, bugs we need to work around or things to note.
#topic Sysadmin status / discussion
Here we talk about sysadmin related happenings from the previous week,
or things that are upcoming.
#topic Private Cloud status update / discussion
News about anything related to our private cloud.
#topic Flock
Lets talk about anything related to the upcoming Flock conference.
#topic Upcoming Tasks/Items
https://apps.fedoraproject.org/calendar/list/infrastructure/
#topic Open Floor
Submit your agenda items, as tickets in the trac instance and send a
note replying to this thread.
More info here:
https://fedoraproject.org/wiki/Infrastructure/Meetings#Meetings
Thanks
kevin
9 years, 9 months
fedmsg notifications
by Ralph Bean
I started brainstorming some ideas for a general end-user
notification system driven by fedmsg and wrote up my notes here:
https://github.com/fedora-infra/fedmsg-notifications#fedmsg-notifications
I got down to the part about how to specify a users profile when I had
to stop and begin considering all the different notification scenarios
we might want. I kind of roadblocked on it and I thought I'd write
the list to see what kind of notification capabilities we might want
to have.
Let's just use "email" as our example here: what kinds of "emails"
might users want to receive?
- Emails when your koji build finishes.
- Emails when a koji build for a certain package finishes.
- Emails when any package that you own in pkgdb has a change made to
it.
... hopefully you get the idea. It would be a help if you could write
the list (or me) with "scenarios" that are important to you. That
will help me figure out what kind of representation I would need in
the database to handle all these cases.
9 years, 9 months
mirrorlist boxes
by Seth Vidal
To mdomsch in particular but in general to the list so folks know what
we're doing:
Matt,
I grabbed your induce-stress script (which rocks btw) and I tested out
how mirrorlist-osuosl runs under a load of 200 wgets with 2 cpus.
While the %cpu scaled up - the response time stayed pretty reasonable. It
did okay - much more performant than before - but still in the 3-4s
range in terms of responses.
So we bumped all systems to 4 cpus, 4gb of ram, x86_64. None of the
systems are on overcommitted vhosts. They seem to be handling a much
heavier load now. We can increase specs in a variety of ways, add
servers and even switch back to i686 relatively quickly, if you see
problems.
I've disabled the app servers from the mirrorlist responses in haproxy.
I only commented them out - so putting them back is simpler.
I also modified mm_sync_out so it does each host and waits 60s for the
mirrorlist_server process to come back before going onto the next
mirrorlist box.
I've left bapp02 syncing the mirrorlist files to the app servers for
now until we are positive we can decom that service from them.
i've been watching it for a while the numbers are hovering around:
112ms for osuosl
140ms for ibiblio
10ms for phx2
Thanks,
-sv
9 years, 9 months