Exemplo n.º 1
0
    def genOrder(self):
        """Order rpms in orderer.RpmRelations relations.

        Return an ordered list of RpmPackage's on success, None on error."""

        length = len(self)

        order = []

        connected_components = ConnectedComponentsDetector(self).detect(self)

        if connected_components:
            if log.isDebugLoggingHere(log.DEBUG1):
                # debug output the components
                log.debug1("-- STRONGLY CONNECTED COMPONENTS --")
                for i in xrange(len(connected_components)):
                    s = ", ".join([
                        pkg.getNEVRA() for pkg in connected_components[i].pkgs
                    ])
                    log.debug1("  %d: %s", i, s)

#         weights = self.calculateWeights()
#         weight_keys = weights.keys()
#         weight_keys.sort()
#         weight_keys.reverse()

#         for key in weight_keys:
#             if key == -1: continue
#             for pkg in weights[key]:
#                 log.debug2("%s %s", key, pkg.getNEVRA())
#                 self.collect(pkg, order)

        self.processLeafNodes(order)

        if len(order) != length:
            log.error(
                "%d Packages of %d in order list! Number of connected "
                "components: %d ", len(order), length,
                len(connected_components))

        return order
Exemplo n.º 2
0
    def genOrder(self):
        """Order rpms in orderer.RpmRelations relations.

        Return an ordered list of RpmPackage's on success, None on error."""

        length = len(self)

        order = [ ]

        connected_components = ConnectedComponentsDetector(self).detect(self)

        if connected_components:
            if log.isDebugLoggingHere(log.DEBUG1):
                # debug output the components
                log.debug1("-- STRONGLY CONNECTED COMPONENTS --")
                for i in xrange(len(connected_components)):
                    s = ", ".join([pkg.getNEVRA() for pkg in
                                   connected_components[i].pkgs])
                    log.debug1("  %d: %s", i, s)

#         weights = self.calculateWeights()
#         weight_keys = weights.keys()
#         weight_keys.sort()
#         weight_keys.reverse()

#         for key in weight_keys:
#             if key == -1: continue
#             for pkg in weights[key]:
#                 log.debug2("%s %s", key, pkg.getNEVRA())
#                 self.collect(pkg, order)

        self.processLeafNodes(order)

        if len(order) != length:
            log.error("%d Packages of %d in order list! Number of connected "
                      "components: %d ",
                      len(order), length,
                      len(connected_components))

        return order
Exemplo n.º 3
0
 def printRel(self):
     """Print relations."""
     if not log.isDebugLoggingHere(log.DEBUG4):
         return
     log.debug4("\t==== relations (%d) "
                "==== #pre-relations #post-relations "
                "package pre-relation-packages, '*' marks prereq's",
                len(self))
     for pkg in self:
         rel = self[pkg]
         pre = ""
         if len(rel.pre) > 0:
             pre = ": "
             for p in rel.pre:
                 if len(pre) > 2:
                     pre += ", "
                 if rel.pre[p]:
                     pre += "*" # prereq
                 pre += p.getNEVRA()
         log.debug4("\t%d %d %s%s",
                    len(rel.pre), len(rel.post), pkg.getNEVRA(), pre)
     log.debug4("\t==== relations ====")
Exemplo n.º 4
0
 def printRel(self):
     """Print relations."""
     if not log.isDebugLoggingHere(log.DEBUG4):
         return
     log.debug4(
         "\t==== relations (%d) "
         "==== #pre-relations #post-relations "
         "package pre-relation-packages, '*' marks prereq's", len(self))
     for pkg in self:
         rel = self[pkg]
         pre = ""
         if len(rel.pre) > 0:
             pre = ": "
             for p in rel.pre:
                 if len(pre) > 2:
                     pre += ", "
                 if rel.pre[p]:
                     pre += "*"  # prereq
                 pre += p.getNEVRA()
         log.debug4("\t%d %d %s%s", len(rel.pre), len(rel.post),
                    pkg.getNEVRA(), pre)
     log.debug4("\t==== relations ====")