OBS submit request top

There was a discussion on submit requests. Adrian Schröter and Jos Poortvliet suggested to use OBS api to generate some kind of reports on pending times. Here is a test (I will publish this python script on github or something like that). I've filtered out all "home:" projects and built following table. To my surprise, there are only a little stalled requests.


Generated at: 2013-04-13 05:27:41.044818
RequestPending timeProjectPackage
1317 1680 dayssystem:managementpuppet
25359 1227 daysYaST:Web:STABLEwebyast-vendor_en
31953 1158 daysMoblin:Factorygnome-session
33643 1138 daysMoblin:Factorygnome-settings-daemon
33644 1138 daysMoblin:Factorydalston
33868 1136 daysMoblin:Factoryicon-theme-dmz-cursors
38905 1081 daysMoblin:2.0dalston
55428 855 dayssecurity:CASACASA-kwallet
55429 855 dayssecurity:CASACASA_auth_token_client
55431 855 dayssecurity:CASACASA_auth_token_server
69864 705 dayssystem:wicdwicd
72401 681 daysisv:dell:communitypython-ctypes-rhel
74258 661 daysnet-snmp
74259 661 daysnet-snmp
74260 661 daysnet-snmp
75895 644 daysnetwork:ifolder:server_stable
110363 387 daysMaemo:Mer:Extras:Importopengfx
123245 315 daysisv:microsoftRHEL6
131196 236 daysopenSUSE:11.0:Update:Test
134952 206 daysBanshee:Legacyipod-sharp
134958 206 daysBanshee:Legacypodsleuth
134959 206 daysBanshee:Legacyndesk-dbus-glib
134960 206 daysBanshee:Legacyndesk-dbus
136458 195 daysGNOME:Evolution:mapievolution-mapi
137714 184 daysMaemo:Mer:Extras:Import
138490 177 daysdevel:languages:lualuaexpat
145153 121 daysgames:WorldForgewfmath
145154 121 daysgames:WorldForgeskstream
145155 121 daysgames:WorldForgelibwfut
145156 121 daysgames:WorldForgelibdevil
145162 119 daysdevel:languages:luatolua++
145501 119 daysNovell:NTSsupportutils-plugin-susecloud
145520 119 daysisv:ownCloud:communitypatchinfo
147640 94 daysdevel:languages:lualua-lgi
147641 94 daysdevel:languages:lualua51-lgi
151409 66 daysArch:Extra
151535 65 daysArch:Core
153990 64 daysMono:Beta
154756 64 daysVirtualization:openSUSE11.4
154759 64 daysspins:open-pc:kde
155682 54 daysApache:Modulesapache2-mod_authz_unixgroup
155683 54 daysApache:Modulespwauth
158065 35 daysApache:Modulesapache2-mod_authn_sasl
158089 34 daysopenSUSE:Evergreen:11.4drbd.64
158089 34 daysopenSUSE:Evergreen:11.4drbd.64
158089 34 daysopenSUSE:Evergreen:11.4drbd.64
158089 34 daysopenSUSE:Evergreen:11.4drbd.64
158089 34 daysopenSUSE:Evergreen:11.4drbd.64
158089 34 daysopenSUSE:Evergreen:11.4drbd.64
158089 34 daysopenSUSE:Evergreen:11.4drbd.64
158089 34 daysopenSUSE:Evergreen:11.4drbd.64
158089 34 daysopenSUSE:Evergreen:11.4drbd.64
158089 34 daysopenSUSE:Evergreen:11.4drbd.64
158089 34 daysopenSUSE:Evergreen:11.4drbd.64
158089 34 daysopenSUSE:Evergreen:11.4drbd.64
158089 34 daysopenSUSE:Evergreen:11.4drbd.64
158089 34 daysopenSUSE:Evergreen:11.4drbd.64
158089 34 daysopenSUSE:Evergreen:11.4drbd.64
158089 34 daysopenSUSE:Evergreen:11.4drbd.64
158089 34 daysopenSUSE:Evergreen:11.4drbd.64
158089 34 daysopenSUSE:Evergreen:11.4drbd.64
158089 34 daysopenSUSE:Evergreen:11.4drbd.64
158089 34 daysopenSUSE:Evergreen:11.4drbd.64
158089 34 daysopenSUSE:Evergreen:11.4drbd.64
158556 32 dayswindows:mingw:win32mingw32-cross-nsis
158558 32 dayswindows:mingw:win32mingw32-cross-nsis-plugin-zipdll
159540 28 daysJava:baseclojure
159797 25 dayssecurity:netfilterSuSEfirewall2
159894 25 daysdrivers:nicr8168
160430 22 daysnetwork:ha-clustering:Factorycorosync
160446 22 dayssecurity:passwordmanagementpassword-store
160510 22 daysnetwork:telephony:asterisk-11
160725 20 daysisv:ownCloud:community
160726 20 daysisv:ownCloud:communityowncloud
160727 20 daysisv:ownCloud:communityqtkeychain
160794 19 daysnetwork:storagebcache-tools
160846 19 daysX11:wxWidgetswxWidgets
160961 18 daysArchiving:Backuprsync
160962 18 daysArchiving:Backuplibrsync
161043 18 daysArchiving:Backupdkopp
160885 17 daysKDE:Qt50libqt5-qtwebkit
161474 16 daysX11:Cinnamon:Factorycinnamon-screensaver
161616 15 dayssecurity:passwordmanagement
162321 10 daysApache:Modulesapache2-mod_authn_otp
162491 9 daysutilitiesbyobu
162528 9 daysfilesystemslibvshadow
162537 9 daysopenSUSE:Toolsobs-service-verify_file
162581 8 daysvdr
162074 7 days, 22 hoursdevel:openSUSE:Factory:legal-queuewhich
162691 7 days, 21 hoursopenSUSE:12.3:Updatepesign-obs-integration.1510
162691 7 days, 21 hoursopenSUSE:12.3:Updatepesign-obs-integration.1510
162691 7 days, 21 hoursopenSUSE:12.3:Updatepesign-obs-integration.1510
162691 7 days, 21 hoursopenSUSE:12.3:Updatepesign-obs-integration.1510
158276 7 days, 16 hoursdevel:openSUSE:Factory:legal-queuesazanami-fonts
162931 7 days, 6 hoursfilesystemslibsmdev
162932 7 days, 6 hoursfilesystemslibsmraw
162933 7 days, 6 hoursfilesystemslibodraw

shadow-utils vs. pwdutils

Существуют два пакета утилит: shadow-utils и pwdutils (применяется в SUSE). Служат они для одной цели — редактирования групп и пользователей, но при этом значения набора параметров отличаются. Среди шестерки утилит user{add,mod,del} и group{add,mod,del}, к счастью, наблюдается некоторая систематика.

В shadow-utils следующие параметры имеют всегда одинаковое значение (в pwdutils отсутствуют, если явно не указано обратное):
КлючЗначение
-Dизменяет значения по умолчанию
-Kkey=value для значений по умолчанию
-Rзапускать в chroot
-Zпользователь SELinux

При этом ключи pwdutils другое (в shadow-utils отсутствуют, если явно не указано обратное):
КлючЗначение
-DDN для LDAP
-Pпуть к /etc/passwd и /etc/shadow

Кроме этого, для каждой команды присутствуют индивидуальные особенности. Их условно можно поделить на три группы: ключ означает разные вещи; ключ отсутствует в одной из реализаций; ключ присутствует, значение совпадает, но это не отражено в документации.

С проблемами первой условной группы можно было бы бороться используя явные длинные названия. Это делает скрипт более длинным, но и более явным. Однако, для -e длинные варианты отличаются: --expiredate и --expire.

useradd

КлючShadowPwd
-Mне создавать /homeнет
-Nне создавать группу пользователюнет
-Uсоздать пользователю одноименную группумаска umask для домашней директории
-bбазовый каталог, вместо /homeнет
-lне добавлять в lastlogнет

usermod

КлючShadowPwd
-Aнетдобавить в группу (аналог -a -G)
-Rзапускать в chrootудалить из группы
-a(вместе с -G) добавить в группунедокументированный

groupadd

КлючShadowPwd
-fне ругаться, если группа уже естьнедокументированный

groupmod

КлючShadowPwd
-Aнетдобавить пользователя в группу
-Rзапускать в chrootудалить пользователя из группы
-nпереименоватьнедокументированный