X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=tools%2Fdistchanges%2Fdistcompare.py;h=8efbd17d0ba0d33fab6e24ee7b428333b9628067;hb=6d45e41ed14c1a1480f016c27c3bdf580b3a0ede;hp=ce363fa082c8595880b404b76cbcf15c8306b2ce;hpb=45d7283ae262a170710c0213618b8d3bd8a90161;p=integration%2Ftest.git diff --git a/tools/distchanges/distcompare.py b/tools/distchanges/distcompare.py index ce363fa082..8efbd17d0b 100644 --- a/tools/distchanges/distcompare.py +++ b/tools/distchanges/distcompare.py @@ -1,3 +1,4 @@ +import argparse from changes import Changes # assumes that the new/current and older distributions are unzipped in /tmp/distro_new and @@ -5,13 +6,15 @@ from changes import Changes class DistCompare(object): + def __init__(self, remote_url): + + self.remote_url = remote_url @staticmethod def get_project_names(): # TODO: when autorelease starts publishing the dependencies.log artifact, this function (or the consumer # of this tool) can take the latest dependencies.log from jenkins lastSuccessfulArtifacts and put it # in /tmp/ For now the functionality to read the projects from that file are commented. - """ projects = [] with open("/tmp/dependencies.log") as dep_file: @@ -21,46 +24,110 @@ class DistCompare(object): return projects """ - - # this hard coded list of projects was taken from a Carbon dependencies.log - late January 2017 - return ['eman', 'integration/distribution', 'snbi', 'mdsal', 'alto', 'sfc', 'sdninterfaceapp', 'topoprocessing', - 'usc', 'ovsdb', 'lispflowmapping', 'groupbasedpolicy', 'usecplugin', 'snmp4sdn', 'capwap', 'aaa', - 'honeycomb/vbd', 'atrium', 'next', 'nic', 'vtn', 'lacp', 'openflowplugin', 'faas', 'ttp', 'of-config', - 'packetcable', 'genius', 'yangtools', 'natapp', 'didm', 'infrautils', 'netide', 'netvirt', 'neutron', - 'cardinal', 'snmp', 'bgpcep', 'nemo', 'netconf', 'yang-push', 'iotdm', 'tsdr', 'sxp', 'centinel', - 'odlparent', 'l2switch', 'unimgr', 'openflowjava', 'ocpplugin', 'dlux', 'controller'] + # this hard coded list of projects was taken from Oxygen dependencies.log - late January 2018 + return [ + "integration/distribution", + "mdsal", + "alto", + "bier", + "serviceutils", + "usc", + "ovsdb", + "lispflowmapping", + "snmp4sdn", + "aaa", + "honeycomb/vbd", + "openflowplugin", + "of-config", + "daexim", + "dluxapps", + "coe", + "packetcable", + "yangtools", + "infrautils", + "neutron", + "snmp", + "bgpcep", + "nemo", + "netconf", + "tsdr", + "sxp", + "jsonrpc", + "p4plugin", + "odlparent", + "l2switch", + "dlux", + "controller", + ] def run_cmd(self): query_limit = 100 num_to_display = 50 - branch = 'master' + branch = "master" project_names = self.get_project_names() - extracted_distro_locations = {'new': '/tmp/distro_new', 'old': '/tmp/distro_old'} + extracted_distro_locations = { + "new": "/tmp/distro_new", + "old": "/tmp/distro_old", + } + + new_changes = Changes( + branch, + extracted_distro_locations["new"], + num_to_display, + query_limit, + project_names, + self.remote_url, + ) - new_changes = Changes(branch, extracted_distro_locations['new'], num_to_display, - query_limit, project_names) new_projects = new_changes.run_cmd() new_changes.pretty_print_projects(new_projects) - old_changes = Changes(branch, extracted_distro_locations['old'], num_to_display, - query_limit, project_names) + old_changes = Changes( + branch, + extracted_distro_locations["old"], + num_to_display, + query_limit, + project_names, + self.remote_url, + ) + old_projects = old_changes.run_cmd() old_changes.pretty_print_projects(old_projects) patchset_diff = [] print("\nPatch differences:\n------------------") for project_name, values in new_projects.items(): - new_gerrits = values['includes'] + new_gerrits = values["includes"] for gerrit in new_gerrits: - if gerrit not in old_projects[project_name]['includes']: + if gerrit not in old_projects[project_name]["includes"]: patchset_diff.append(gerrit) - print('{:<20}{}\t{}'.format(project_name, gerrit['url'], gerrit['subject'])) + print( + "{:<20}{}\t{}".format( + project_name, gerrit["url"], gerrit["subject"] + ) + ) print("\n%s different patches between the two distros." % len(patchset_diff)) def main(): - distc = DistCompare() + + parser = argparse.ArgumentParser( + description="Returns the list of patches found in the unzipped distribution at " + "/tmp/distro_new that are not found in the distribution at " + "/tmp/distro_old. This should result in a listing of what new changes " + "were made between the two distributions." + ) + parser.add_argument( + "-r", + "--remote", + dest="remote_url", + default=Changes.REMOTE_URL, + help="git remote url to use for gerrit", + ) + options = parser.parse_args() + + distc = DistCompare(options.remote_url) distc.run_cmd()