Removed (superseded by Launchpad API support)

* ubuntutools/lp/cookie.py
 * ubuntutools/lp/urlopener.py

And removed references from these files as necessary:
 * requestsync
 * ubuntutools/lp/functions.py
This commit is contained in:
Jonathan Davies 2009-06-09 10:19:58 +01:00
parent a58f36a5db
commit 7eb81c1185
5 changed files with 3 additions and 154 deletions

2
debian/changelog vendored
View File

@ -25,6 +25,8 @@ ubuntu-dev-tools (0.75) UNRELEASED; urgency=low
* ubuntutools/lp/libsupport.py: Fail if we're unable to import launchpadlib
(we need it to run stuff).
* ubuntutools/lp/urlopener.py: Removed - module no longer needed.
* ubuntutools/lp/cookie.py: Removed - module no longer needed - we use
Launchpad API support now.
* buildd:
- Use launchpadlib to check the Ubuntu release is valid.
- Moved Launchpad module imports here - speed up usage parsing to improve

View File

@ -36,7 +36,6 @@ from optparse import OptionParser
from time import sleep
# ubuntu-dev-tools modules.
import ubuntutools.lp.cookie as lp_cookie
import ubuntutools.lp.functions as lp_functions
import ubuntutools.lp.libsupport as lp_libsupport
import ubuntutools.lp.udtexceptions as udtexceptions
@ -44,21 +43,16 @@ import ubuntutools.lp.udtexceptions as udtexceptions
import ubuntutools.common
import ubuntutools.packages
launchpad_cookiefile = lp_cookie.prepareLaunchpadCookie()
def checkNeedsSponsorship(srcpkg):
"""
Check that the user has the appropriate permissions by checking what
Launchpad returns while authenticating with their cookie.
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.
The prepareLaunchpadCookie function above shall ensure that a cookie
file exists first.
"""
if not lp_functions.canUploadPackage(srcpkg):

View File

@ -1,106 +0,0 @@
#
# cookie.py - functions related to the creation of Launchpad cookie files
# and authentication.
#
# Copyright (C) 2008 Jonathan Davies <jpds@ubuntu.com>
# Copyright (C) 2008 Siegfried-Angel Gevatter Pujals <rainct@ubuntu.com>
#
# 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 3
# 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.
#
# Please see the /usr/share/common-licenses/GPL file for the full text of
# the GNU General Public License license.
#
# Modules.
import glob
import os
import sys
def prepareLaunchpadCookie():
"""
Search for a cookie file in the places as defined by try_globs.
We shall use this cookie for authentication with Launchpad.
"""
# We do not have our cookie.
launchpad_cookiefile = None
# Look in common locations.
try_globs = ('~/.lpcookie.txt', '~/.mozilla/*/*/cookies.sqlite',
'~/.mozilla/*/*/cookies.txt')
cookie_file_list = []
if launchpad_cookiefile == None:
for try_glob in try_globs:
try:
cookie_file_list += glob.glob(os.path.expanduser(try_glob))
except:
pass
for cookie_file in cookie_file_list:
launchpad_cookiefile = _check_for_launchpad_cookie(cookie_file)
if launchpad_cookiefile != None:
break
# Unable to find a correct file.
if launchpad_cookiefile == None:
print >> sys.stderr, "Could not find cookie file for Launchpad. "
print >> sys.stderr, "Looked in: %s" % ", ".join(try_globs)
print >> sys.stderr, "You should be able to create a valid file by " \
"logging into Launchpad with Firefox."
sys.exit(1)
return launchpad_cookiefile
def _check_for_launchpad_cookie(cookie_file):
# Found SQLite file? Parse information from it.
if 'cookies.sqlite' in cookie_file:
import sqlite3 as sqlite
con = sqlite.connect(cookie_file)
cur = con.cursor()
try:
cur.execute("select host, path, isSecure, expiry, name, value from moz_cookies where host like ?", ['%%launchpad%%'])
except sqlite.OperationalError:
print 'Warning: Database "%s" is locked; ignoring it.' % cookie_file
return None
# No matching cookies? Abort.
items = cur.fetchall()
if len(items) == 0:
return None
ftstr = ["FALSE", "TRUE"]
# This shall be where our new cookie file lives - at ~/.lpcookie.txt
newLPCookieLocation = os.path.expanduser("~/.lpcookie.txt")
# Open file for writing.
try:
newLPCookie = open(newLPCookieLocation, 'w')
# For security reasons, change file mode to write and read
# only by owner.
os.chmod(newLPCookieLocation, 0600)
newLPCookie.write("# HTTP Cookie File for Launchpad.\n") # Header.
for item in items:
# Write entries.
newLPCookie.write("%s\t%s\t%s\t%s\t%s\t%s\t%s\n" % (
item[0], ftstr[item[0].startswith('.')], item[1],
ftstr[item[2]], item[3], item[4], item[5]))
finally:
newLPCookie.close() # And close file.
return newLPCookieLocation
else:
if open(cookie_file).read().find('launchpad.net') != -1:
return cookie_file
return None

View File

@ -18,7 +18,6 @@
# the GNU General Public License license.
#
import cookie
import urllib2
import sys
from udtexceptions import PackageNotFoundException, SeriesNotFoundException

View File

@ -1,40 +0,0 @@
#
# urlopener.py - set up a special URL opener which uses a Launchpad cookie
# file for authentication.
#
# Copyright (C) 2008 Jonathan Davies <jpds@ubuntu.com>
#
# 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 3
# 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.
#
# Please see the /usr/share/common-licenses/GPL file for the full text of
# the GNU General Public License license.
#
# Modules.
import cookielib
import urllib2
def setupLaunchpadUrlOpener(cookie):
""" Build HTML opener with cookie file. """
# Attempt to load our cookie file.
try:
cj = cookielib.MozillaCookieJar()
cj.load(cookie)
except cookielib.LoadError, error:
print "Unable to load cookie file: %s (%s)" % (cookie, error)
sys.exit(1)
# Add cookie to our URL opener.
urlopener = urllib2.build_opener()
urlopener.add_handler(urllib2.HTTPCookieProcessor(cj))
return urlopener