Review pagure SOP

Signed-off-by: Michal Konečný <mkonecny@redhat.com>
This commit is contained in:
Michal Konečný 2021-09-09 14:45:27 +02:00
parent c3476ee160
commit f10ecdac2b
2 changed files with 25 additions and 30 deletions

View file

@ -85,7 +85,7 @@
** xref:openvpn.adoc[OpenVPN - SOP] ** xref:openvpn.adoc[OpenVPN - SOP]
** xref:outage.adoc[Outage Infrastructure - SOP] ** xref:outage.adoc[Outage Infrastructure - SOP]
** xref:packagereview.adoc[Package Review - SOP] ** xref:packagereview.adoc[Package Review - SOP]
** xref:pagure.adoc[pagure - SOP in review ] ** xref:pagure.adoc[Pagure Infrastructure - SOP]
** xref:pdc.adoc[pdc - SOP in review ] ** xref:pdc.adoc[pdc - SOP in review ]
** xref:pesign-upgrade.adoc[pesign-upgrade - SOP in review ] ** xref:pesign-upgrade.adoc[pesign-upgrade - SOP in review ]
** xref:planetsubgroup.adoc[planetsubgroup - SOP in review ] ** xref:planetsubgroup.adoc[planetsubgroup - SOP in review ]

View file

@ -4,12 +4,11 @@ Pagure is a code hosting and management site.
== Contents == Contents
[arabic] * <<_contact_information>>
. Contact Information * <<_description>>
. Description * <<_when_unresponsive>>
. When unresponsive * <<_git_repo_locations>>
. Git repo locations * <<_services_and_what_they_do>>
. Services and what they do
== Contact Information == Contact Information
@ -38,24 +37,24 @@ running again.
== Git repo locations == Git repo locations
* Main repos are in /srv/git/repositories/<projectname> * Main repos are in `/srv/git/repositories/<projectname>`
* issue/ticket repos are under * issue/ticket repos are under
/srv/git/repositories/tickets/<projectname> `/srv/git/repositories/tickets/<projectname>`
* Docs are under /srv/git/repositories/docs/<projectname> * Docs are under `/srv/git/repositories/docs/<projectname>`
* Releases (not a git repo) are under /var/www/releases/ * Releases (not a git repo) are under `/var/www/releases/`
== Services and what they do == Services and what they do
* pagure service is the main flask application, it runs from httpd wsgi. * `pagure` service is the main flask application, it runs from httpd wsgi.
* pagure_ci service talks to jenkins or other CI for testing PR's * `pagure_ci` service talks to jenkins or other CI for testing PR's
* pagure_ev service talks to websockets and updates issues and comments * `pagure_ev` service talks to websockets and updates issues and comments
live for users. live for users.
* pagure_loadjson service takes issues loads from pagure-importer and * `pagure_loadjson` service takes issues loads from pagure-importer and
processes them. processes them.
* pagure_logcom service handles logging. * `pagure_logcom` service handles logging.
* pagure_milter processes email actions. * `pagure_milter` processes email actions.
* pagure_webhook service processes webhooks to notify about changes. * `pagure_webhook` service processes webhooks to notify about changes.
* pagure worker service updates git repos with changes. * `pagure worker` service updates git repos with changes.
== Useful commands == Useful commands
@ -77,9 +76,7 @@ where it expects these to be unique.
The following two SQL commands allows finding out which projects are in The following two SQL commands allows finding out which projects are in
this situation: this situation:
____ ....
:
select user_id, name, namespace, is_fork from projects where is_fork = select user_id, name, namespace, is_fork from projects where is_fork =
FALSE group by namespace, name, is_fork, user_id having count(user_id) > FALSE group by namespace, name, is_fork, user_id having count(user_id) >
1; 1;
@ -87,23 +84,21 @@ FALSE group by namespace, name, is_fork, user_id having count(user_id) >
select user_id, name, namespace, is_fork from projects where is_fork = select user_id, name, namespace, is_fork from projects where is_fork =
TRUE group by namespace, name, is_fork, user_id having count(user_id) > TRUE group by namespace, name, is_fork, user_id having count(user_id) >
1; 1;
____ ....
This will return you the namespace/name as well as the user_id of the This will return you the _namespace_/_name_ as well as the _user_id_ of the
user who duplicated the projects in the database. user who duplicated the projects in the database.
You can then do: You can then do:
____ ....
:
select id, user_id, name, namespace, is_fork from projects where name = select id, user_id, name, namespace, is_fork from projects where name =
'<the name of the project>' order by user_id; '<the name of the project>' order by user_id;
____ ....
In that query you will see the project id, user_id, name and namespace In that query you will see the project _id_, _user_id_, _name_ and _namespace_
of the project. You will see in this one of the projects is listed twice of the project. You will see in this one of the projects is listed twice
with the same user_id (the one returned in the previous query). with the same _user_id_ (the one returned in the previous query).
From there, you will have to delete the duplicates (potentially the one From there, you will have to delete the duplicates (potentially the one
with the highest project id). with the highest project id).