Ejemplo n.º 1
0
 def UpdateData(_bc_a, _bc_b, catalogname):
   a = bc_a[x]
   b = bc_b[x]
   cmp_result = opencsw.CompareVersions(
       a["version"],
       b["version"])
   if cmp_result < 0:
     direction = "upgrade"
   else:
     direction = "downgrade"
   return {
       "from": a,
       "to": b,
       "type": self.DiffType(a, b),
       "direction": direction,
   }
Ejemplo n.º 2
0
def GetDiffsByCatalogname(catrel_from, catrel_to, include_downgrades):
  rest_client = rest.RestClient()
  diffs_by_catalogname = {}
  for arch in common_constants.PHYSICAL_ARCHITECTURES:
    logging.debug("Architecture: %s", arch)
    for osrel in common_constants.OS_RELS:
      logging.debug("OS release: %s", osrel)
      cat_from = rest_client.GetCatalog(catrel_from, arch, osrel)
      cat_to = rest_client.GetCatalog(catrel_to, arch, osrel)
      # Should use catalog comparator, but the data format is different
      if cat_from is None:
        cat_from = []
      if cat_to is None:
        cat_to = []
      cat_from_by_c = IndexByCatalogname(cat_from)
      cat_to_by_c = IndexByCatalogname(cat_to)
      comparator = catalog.CatalogComparator()
      new_pkgs, removed_pkgs, updated_pkgs = comparator.GetCatalogDiff(
          cat_to_by_c, cat_from_by_c)
      # By passing the catalogs (as arguments) in reverse order, we get
      # packages to be updated in new_pkgs, and so forth.
      for pkg in new_pkgs:
        catalogname_d = diffs_by_catalogname.setdefault(pkg["catalogname"], {})
        catalogname_d.setdefault("new_pkgs", []).append((arch, osrel, pkg))
      for pkg in removed_pkgs:
        catalogname_d = diffs_by_catalogname.setdefault(pkg["catalogname"], {})
        catalogname_d.setdefault("removed_pkgs", []).append((arch, osrel, pkg))
      for pkg_pair in updated_pkgs:
        # Upgrade or downgrade?
        cmp_result = opencsw.CompareVersions(
            pkg_pair["from"]["version"],
            pkg_pair["to"]["version"])
        if cmp_result < 0:
          direction = "upgrade"
        else:
          direction = "downgrade"
        pkg_pair["direction"] = direction
        pkg = pkg_pair["from"]
        if direction == "upgrade" or include_downgrades:
          catalogname_d = diffs_by_catalogname.setdefault(pkg["catalogname"], {})
          catalogname_d.setdefault("updated_pkgs", []).append((arch, osrel, pkg_pair))
  return diffs_by_catalogname
Ejemplo n.º 3
0
 def testNoEqual(self):
     self.assertEqual(0, opencsw.CompareVersions("1.8.1", "1.8.1"))
Ejemplo n.º 4
0
 def testNoRev(self):
     self.assertEqual(-1, opencsw.CompareVersions("1.8.1", "1.8.2"))
Ejemplo n.º 5
0
 def testRevNoRevIgnoreVersion(self):
     self.assertEqual(-1, opencsw.CompareVersions("1.8.2", self.V1))
Ejemplo n.º 6
0
 def testEquals(self):
     self.assertEqual(0, opencsw.CompareVersions(self.V1, self.V1))
Ejemplo n.º 7
0
 def testGreaterThan(self):
     self.assertEqual(1, opencsw.CompareVersions(self.V2, self.V1))
Ejemplo n.º 8
0
 def testLessThan(self):
     self.assertEqual(-1, opencsw.CompareVersions(self.V1, self.V2))