mirror of
https://git.launchpad.net/ubuntu-dev-tools
synced 2025-05-06 14:31:30 +00:00
requestsync: refactor 'checkNeedsSponsorship'
This commit is contained in:
parent
5748f9d64f
commit
6d924143c0
28
requestsync
28
requestsync
@ -42,32 +42,6 @@ import ubuntutools.common
|
|||||||
from ubuntutools.requestsync.mail import *
|
from ubuntutools.requestsync.mail import *
|
||||||
from ubuntutools.requestsync.common import *
|
from ubuntutools.requestsync.common import *
|
||||||
|
|
||||||
def checkNeedsSponsorship(srcpkg):
|
|
||||||
"""
|
|
||||||
Check that the user has the appropriate permissions by checking what
|
|
||||||
Launchpad returns when we check if someone can upload a package or not.
|
|
||||||
|
|
||||||
If they are an indirect or direct member of the ~ubuntu-dev team on
|
|
||||||
Launchpad - sponsorship is not required if the package is in the
|
|
||||||
universe / multiverse component.
|
|
||||||
|
|
||||||
If they are in the ~ubuntu-core-dev team, no sponsorship required.
|
|
||||||
"""
|
|
||||||
if not LpApiWrapper.canUploadPackage(srcpkg):
|
|
||||||
|
|
||||||
print "You are not able to upload this package directly to Ubuntu.\n" \
|
|
||||||
"Your sync request shall require an approval by a member of " \
|
|
||||||
"the appropriate sponsorship team, who shall be subscribed to " \
|
|
||||||
"this bug report.\n" \
|
|
||||||
"This must be done before it can be processed by a member of " \
|
|
||||||
"the Ubuntu Archive team."
|
|
||||||
print "If the above is correct please press Enter."
|
|
||||||
raw_input_exit_on_ctrlc() # Abort if necessary.
|
|
||||||
return True # Sponsorship required.
|
|
||||||
|
|
||||||
# Is a team member, no sponsorship required.
|
|
||||||
return False
|
|
||||||
|
|
||||||
def checkExistingReports(package):
|
def checkExistingReports(package):
|
||||||
""" Check existing bug reports on Launchpad for a possible sync request.
|
""" Check existing bug reports on Launchpad for a possible sync request.
|
||||||
|
|
||||||
@ -371,7 +345,7 @@ if __name__ == '__main__':
|
|||||||
sys.exit(1)
|
sys.exit(1)
|
||||||
|
|
||||||
# -s flag not specified - check if we do need sponsorship.
|
# -s flag not specified - check if we do need sponsorship.
|
||||||
if not sponsorship: sponsorship = checkNeedsSponsorship(srcpkg)
|
if not sponsorship: sponsorship = needSponsorship(srcpkg, component)
|
||||||
|
|
||||||
# Check for existing package reports.
|
# Check for existing package reports.
|
||||||
if not newsource and use_lp_bugs: checkExistingReports(srcpkg)
|
if not newsource and use_lp_bugs: checkExistingReports(srcpkg)
|
||||||
|
@ -20,7 +20,8 @@
|
|||||||
# Please see the /usr/share/common-licenses/GPL-2 file for the full text
|
# Please see the /usr/share/common-licenses/GPL-2 file for the full text
|
||||||
# of the GNU General Public License license.
|
# of the GNU General Public License license.
|
||||||
|
|
||||||
from ..lp.lpapiwrapper import Distribution
|
from .common import raw_input_exit_on_ctrlc
|
||||||
|
from ..lp.lpapiwrapper import Distribution, PersonTeam
|
||||||
from ..lp.udtexceptions import *
|
from ..lp.udtexceptions import *
|
||||||
|
|
||||||
def getDebianSrcPkg(name, release):
|
def getDebianSrcPkg(name, release):
|
||||||
@ -38,3 +39,21 @@ def getUbuntuSrcPkg(name, release):
|
|||||||
ubuntu_archive = ubuntu.getArchive()
|
ubuntu_archive = ubuntu.getArchive()
|
||||||
|
|
||||||
return ubuntu_archive.getSourcePackage(name, release)
|
return ubuntu_archive.getSourcePackage(name, release)
|
||||||
|
|
||||||
|
def needSponsorship(name, component):
|
||||||
|
'''
|
||||||
|
Check if the user has upload permissions for either the package
|
||||||
|
itself or the component
|
||||||
|
'''
|
||||||
|
archive = Distribution('ubuntu').getArchive()
|
||||||
|
|
||||||
|
need_sponsor = not PersonTeam.getMe().canUploadPackage(archive, name, component)
|
||||||
|
if need_sponsor:
|
||||||
|
print '''You are not able to upload this package directly to Ubuntu.
|
||||||
|
Your sync request shall require an approval by a member of the appropriate
|
||||||
|
sponsorship team, who shall be subscribed to this bug report.
|
||||||
|
This must be done before it can be processed by a member of the Ubuntu Archive
|
||||||
|
team.'''
|
||||||
|
raw_input_exit_on_ctrlc('If the above is correct please press [Enter]: '
|
||||||
|
|
||||||
|
return need_sponsor
|
||||||
|
@ -22,6 +22,7 @@
|
|||||||
import os
|
import os
|
||||||
import sys
|
import sys
|
||||||
import subprocess
|
import subprocess
|
||||||
|
from .common import raw_input_exit_on_ctrlc
|
||||||
from ..lp.udtexceptions import PackageNotFoundException
|
from ..lp.udtexceptions import PackageNotFoundException
|
||||||
|
|
||||||
__all__ = ['getDebianSrcPkg', 'getUbuntuSrcPkg']
|
__all__ = ['getDebianSrcPkg', 'getUbuntuSrcPkg']
|
||||||
@ -93,3 +94,20 @@ def get_email_address():
|
|||||||
'EMAIL needs to be set to let this script mail the ' \
|
'EMAIL needs to be set to let this script mail the ' \
|
||||||
'sync request.'
|
'sync request.'
|
||||||
return myemailaddr
|
return myemailaddr
|
||||||
|
|
||||||
|
def needSponsorship(name, component):
|
||||||
|
'''
|
||||||
|
Ask the user if he has upload permissions for the package or the
|
||||||
|
component.
|
||||||
|
'''
|
||||||
|
|
||||||
|
while 1:
|
||||||
|
print "Do you have upload permissions for the '%s' component " \
|
||||||
|
"or the package '%s'?" % (component, name)
|
||||||
|
val = raw_input_exit_on_ctrlc("If in doubt answer 'no'. [y/N]? ")
|
||||||
|
if val.lower() in ('y', 'yes'):
|
||||||
|
return False
|
||||||
|
elif val.lower() in ('n', 'no', ''):
|
||||||
|
return True
|
||||||
|
else:
|
||||||
|
print 'Invalid answer'
|
||||||
|
Loading…
x
Reference in New Issue
Block a user