Remove remnants of sfc project
[integration/test.git] / tools / distchanges / distcompare.py
index ce363fa082c8595880b404b76cbcf15c8306b2ce..8efbd17d0ba0d33fab6e24ee7b428333b9628067 100644 (file)
@@ -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()