From 7eb81c11858436e8811fa6856e732243971489ec Mon Sep 17 00:00:00 2001 From: Jonathan Davies Date: Tue, 9 Jun 2009 10:19:58 +0100 Subject: [PATCH] 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 --- debian/changelog | 2 + requestsync | 8 +-- ubuntutools/lp/cookie.py | 106 ------------------------------------ ubuntutools/lp/functions.py | 1 - ubuntutools/lp/urlopener.py | 40 -------------- 5 files changed, 3 insertions(+), 154 deletions(-) delete mode 100644 ubuntutools/lp/cookie.py delete mode 100644 ubuntutools/lp/urlopener.py diff --git a/debian/changelog b/debian/changelog index f4f70b1..9ff0bcb 100644 --- a/debian/changelog +++ b/debian/changelog @@ -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 diff --git a/requestsync b/requestsync index 742a39a..a905856 100755 --- a/requestsync +++ b/requestsync @@ -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): diff --git a/ubuntutools/lp/cookie.py b/ubuntutools/lp/cookie.py deleted file mode 100644 index 6c6d552..0000000 --- a/ubuntutools/lp/cookie.py +++ /dev/null @@ -1,106 +0,0 @@ -# -# cookie.py - functions related to the creation of Launchpad cookie files -# and authentication. -# -# Copyright (C) 2008 Jonathan Davies -# Copyright (C) 2008 Siegfried-Angel Gevatter Pujals -# -# 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 diff --git a/ubuntutools/lp/functions.py b/ubuntutools/lp/functions.py index be17a46..5024e94 100644 --- a/ubuntutools/lp/functions.py +++ b/ubuntutools/lp/functions.py @@ -18,7 +18,6 @@ # the GNU General Public License license. # -import cookie import urllib2 import sys from udtexceptions import PackageNotFoundException, SeriesNotFoundException diff --git a/ubuntutools/lp/urlopener.py b/ubuntutools/lp/urlopener.py deleted file mode 100644 index b2cac44..0000000 --- a/ubuntutools/lp/urlopener.py +++ /dev/null @@ -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 -# -# 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