예제 #1
0
 def setUp(self):
     yum_metadata_obj = YumMetadataObj(repo_label=self.repo_label,
                                       repo_url=self.repo_url,
                                       mirrorlist=self.mirrors,
                                       cacert=self.sslcacert,
                                       clicert=self.sslclientcert,
                                       clikey=self.sslclientkey,
                                       proxy_url=self.proxy_url,
                                       proxy_port=self.proxy_port,
                                       proxy_user=self.proxy_user,
                                       proxy_pass=self.proxy_pass,
                                       sslverify=self.sslverify,
                                       tmp_path=self.tmp_path,
                                       filter=self.filter,
                                       num_retries=self.num_retries,
                                       retry_delay=self.retry_delay)
     yumAO = None
     try:
         yumAO = ActiveObject(yum_metadata_obj)
         download_items = yumAO.getDownloadItems(
             repo_dir=self.repo_dir,
             packages_location=self.pkgpath,
             newest=self.newest,
             remove_old=self.remove_old,
             numOldPackages=self.numOldPackages,
             skip=self.skip)
         if download_items.has_key("rpms"):
             if download_items["rpms"]:
                 self.rpms.extend(download_items["rpms"])
         if download_items.has_key("drpms"):
             if download_items["drpms"]:
                 self.drpms.extend(download_items["drpms"])
     finally:
         # Force __del__ to be called on ActiveObject
         del yumAO
예제 #2
0
 def prepareTrees(self, fetcher):
     fetcherAO = ActiveObject(fetcher)
     try:
         LOG.info("Checking if distribution info exists in repository: %s" %
                  (self.repo_url))
         tree_manifest = self.get_tree_manifest(fetcherAO)
         if not tree_manifest:
             LOG.info("No distribution tree manifest found.")
             return []
         return self.__prepareTrees(tree_manifest)
     finally:
         #Note: We want to explicitly kill the child activeobject
         # so will use abort() on activeobject's Method class
         fetcherAO.dummy_method.abort()
         # We were seeing the invocation of __del__() on activeobject
         # being delayed, hence child processes weren't dying when they should.
         # therefore we added the explicit abort()
         del fetcherAO
         fetchAO = None