While the Bugzilla command line tool does a lot of useful things, one feature it is missing is the ability to link a bug to an upstream bug in a remote tracker. Working with the Web UI can be slow. Martin Kozek, of FreeIPA fame, wrote a simple Python program to link them together for me using direct XML-API calls. Thanks Martin:
#!/usr/bin/python # # Authors: # Martin Kosek: mkosek@redhat.com # # Copyright (C) 2013 Red Hat # # 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. # # You should have received a copy of the GNU General Public License # along with this program. If not, see http://www.gnu.org/licenses/. import bugzilla import sys import xmlrpclib URL = 'https://bugzilla.redhat.com/xmlrpc.cgi' USER = 'user@redhat.com' PASSWORD = 'bar' try: bz_id = int(sys.argv[1]) launchpad_id = int(sys.argv[2]) except Exception: sys.exit("Usage: bz_lp_link bz_id lp_id") proxy = bugzilla.RHBugzilla3(url=URL, user=USER, password=PASSWORD) proxy.connect(URL) LAUNCHPAD_TRACKER_ID = 29 try: proxy._proxy.ExternalBugs.add_external_bug( {'bug_ids':[bz_id], 'external_bugs': [{'ext_type_id': LAUNCHPAD_TRACKER_ID, 'ext_bz_bug_id': launchpad_id}] }) except xmlrpclib.Fault, e: sys.exit(e.faultString)
#!/usr/bin/python
should be
#!/usr/bin/env python
remember that python is usually not in /usr/bin
Bob,
Python is *always* in /usr/bin for me. It just might not be the Python you want for a specific application, but for a Fedora based system, running standard libraries, you want the system version.
But I appreciate the input. I suspect that what you say is correct for many people out there.