Package Database Infrastructure SOP

From FedoraProject

(Difference between revisions)
Jump to: navigation, search
(Imported from MoinMoin)
 
(redirect page to new infra-docs)
 
(24 intermediate revisions by 4 users not shown)
Line 1: Line 1:
<!-- page was renamed from ToshioKuratomi/SOPTemplate
+
{{header|infra}}
-->
+
{{shortcut|ISOP:PKGDB}}
= Package Database - SOP =
+
  
== Contact Information ==
 
Owner: Fedora Infrastructure Team
 
  
Contact: #fedora-admin
+
This SOP has moved to the fedora Infrastructure SOP git repo. Please see the current document at: http://infrastructure.fedoraproject.org/infra/docs/packagedatabase.txt
  
Persons: abadger1999
+
For changes, questions or comments, please contact anyone in the Fedora Infrastructure team.
  
Location: Phoenix
 
  
Servers: admin.fedoraproject.org -- app3 app4
+
[[Category:Infrastructure SOPs]]
 
+
Purpose: Manage package ownership
+
 
+
== Description ==
+
 
+
The PackageDB is used by Fedora developers to manage package ownership and acls.  It controls who is allowed to commit to a package and who gets notification of changes to packages.
+
 
+
PackageDB project Trac: https://fedorahosted.org/packagedb/
+
 
+
== Troubleshooting and Resolution ==
+
 
+
=== Adding a new Pseudo User as a package owner ===
+
Sometimes you want to have a mailing list own a package so that bugzilla email is assigned to the mailing list.  Doing this requires adding a new pseudo user to the account system and assigning that person as the package maintainer.
+
 
+
{{ Template:notice/| In the following examples, replace ("xen", "kernel-xen-2.6") with the packages you are assigning to the new user and 9902 to the userid you select in step 2
+
}}
+
1. Log into a box that can access db2.
+
1. Log into the db as a user that can make changes
+
<pre>
+
$ psql -U apache -h db2 fedorausers
+
fedorausers>
+
</pre>
+
1. Find the current pseudo-users
+
<pre>
+
fedorausers>  select id, username from person where id < 10000 order by id;
+
id  |    username
+
------+------------------
+
9900 | orphan
+
9901 | anaconda-maint
+
</pre>
+
1. Create a new account with the next available id after 9900
+
<pre>
+
fedorausers> insert into person (id, username, email, human_name, password, creation,
+
approval_status, otrs_orgid) values (9902, 'xen-maint', 'xen-maint@redhat.com',
+
'Xen Maintainers', '', now(), 'approved', 'Fedora');
+
</pre>
+
1. Connect to the pkgdb as a user that can make changes
+
<pre>
+
$ psql -U pkgdbadmin -h db2 pkgdb
+
pkgdb>
+
</pre>
+
1. Add the current package owner as a comaintainer of the package.  If this user is not currently on he acls for the package you can use the following database queries:
+
<pre>
+
insert into personpackagelisting (userid, packagelistingid)
+
select pl.owner, pl.id from packagelisting as pl, package as p
+
where p.id = pl.packageid and p.name in ('xen', 'kernel-xen-2.6');
+
insert into personpackagelistingacl (personpackagelistingid, acl, statuscode)
+
select ppl.id, 'build', 3 from personpackagelisting as ppl, packagelisting as pl, package as p
+
where p.id = pl.packageid and pl.id = ppl.packagelistingid and pl.owner = ppl.userid
+
and p.name in ('xen', 'kernel-xen-2.6');
+
insert into personpackagelistingacl (personpackagelistingid, acl, statuscode)
+
select ppl.id, 'commit', 3 from personpackagelisting as ppl, packagelisting as pl, package as p
+
where p.id = pl.packageid and pl.id = ppl.packagelistingid
+
and pl.owner = ppl.userid
+
and p.name in ('xen', 'kernel-xen-2.6');
+
insert into personpackagelistingacl (personpackagelistingid, acl, statuscode)
+
select ppl.id, 'approveacls', 3 from personpackagelisting as ppl, packagelisting as pl, package as p
+
where p.id = pl.packageid and pl.id = ppl.packagelistingid
+
and pl.owner = ppl.userid
+
and p.name in ('xen', 'kernel-xen-2.6');
+
 
+
</pre>
+
If the owner is in the acls, you will need to figure out which packages already acls and only add the new acls for that one.
+
1. Reassign the pseudo-user to be the new owner
+
<pre>
+
update packagelisting set owner = 9902 from package as p
+
where packagelisting.packageid = p.id and p.name in ('xen', 'kernel-xen-2.6');
+
</pre>
+

Latest revision as of 18:51, 19 December 2011

Infrastructure InfrastructureTeamN1.png
Shortcut:
ISOP:PKGDB


This SOP has moved to the fedora Infrastructure SOP git repo. Please see the current document at: http://infrastructure.fedoraproject.org/infra/docs/packagedatabase.txt

For changes, questions or comments, please contact anyone in the Fedora Infrastructure team.