コード例 #1
0
ファイル: test_rpms.py プロジェクト: jlsherrill/pulp
    def test_remove_old_packages(self):
        feed_url = "http://jmatthews.fedorapeople.org/repo_multiple_versions/"
        repo = mock.Mock(spec=Repository)
        repo.working_dir = self.working_dir
        repo.id = "test_remove_old_packages"
        sync_conduit = importer_mocks.get_sync_conduit(type_id=TYPE_ID_RPM, pkg_dir=self.pkg_dir)
        ###
        # Test that old packages are not in rpmList and are never intended to be downloaded
        # Additionallity verify that already existing packages which are NOT orphaned are also
        # removed with remove_old functionality
        ###
        config = importer_mocks.get_basic_config(feed_url=feed_url, remove_old=False, num_old_packages=0)
        importerRPM = importer_rpm.ImporterRPM()
        status, summary, details = importerRPM.sync(repo, sync_conduit, config)
        self.assertTrue(status)
        self.assertEquals(summary["num_synced_new_rpms"], 12)
        pkgs = self.get_files_in_dir("*.rpm", self.pkg_dir)
        self.assertEquals(len(pkgs), 12)

        yumRepoGrinder = importer_rpm.get_yumRepoGrinder(repo.id, repo.working_dir, config)
        yumRepoGrinder.setup(basepath=repo.working_dir)
        rpm_items = yumRepoGrinder.getRPMItems()
        yumRepoGrinder.stop()
        del yumRepoGrinder
        self.assertEquals(len(rpm_items), 12)

        existing_units = []
        for rpm in rpm_items:
            u = Unit(
                TYPE_ID_RPM,
                importer_rpm.form_rpm_unit_key(rpm),
                importer_rpm.form_rpm_metadata(rpm),
                os.path.join(self.pkg_dir, rpm["pkgpath"], rpm["filename"]),
            )
            existing_units.append(u)
        config = importer_mocks.get_basic_config(feed_url=feed_url, remove_old=True, num_old_packages=6)
        sync_conduit = importer_mocks.get_sync_conduit(
            type_id=TYPE_ID_RPM, existing_units=existing_units, pkg_dir=self.pkg_dir
        )
        importerRPM = importer_rpm.ImporterRPM()
        status, summary, details = importerRPM.sync(repo, sync_conduit, config)
        self.assertTrue(status)
        self.assertEquals(summary["num_rpms"], 7)
        self.assertEquals(summary["num_orphaned_rpms"], 5)
        self.assertEquals(summary["num_synced_new_rpms"], 0)
        self.assertEquals(summary["num_not_synced_rpms"], 0)
        pkgs = self.get_files_in_dir("*.rpm", self.pkg_dir)
        self.assertEquals(len(pkgs), 7)

        config = importer_mocks.get_basic_config(feed_url=feed_url, remove_old=True, num_old_packages=0)
        importerRPM = importer_rpm.ImporterRPM()
        status, summary, details = importerRPM.sync(repo, sync_conduit, config)
        self.assertTrue(status)
        self.assertEquals(summary["num_rpms"], 1)
        self.assertEquals(summary["num_orphaned_rpms"], 11)
        self.assertEquals(summary["num_synced_new_rpms"], 0)
        self.assertEquals(summary["num_not_synced_rpms"], 0)
        pkgs = self.get_files_in_dir("*.rpm", self.pkg_dir)
        self.assertEquals(len(pkgs), 1)
コード例 #2
0
 def test_simple_yum_ops_a(self):
     feed_url = "file://empty"
     repo = mock.Mock(spec=Repository)
     repo.working_dir = self.working_dir
     repo.id = "test_simple_yum_ops"
     config = importer_mocks.get_basic_config(feed_url=feed_url)
     grind = importer_rpm.get_yumRepoGrinder(repo.id, repo.working_dir, config)
     try:
         grind.setup(basepath=repo.working_dir, num_retries=0, retry_delay=0)
     except:
         pass
     self.assertFalse(os.path.exists(os.path.join("./", repo.id)))
コード例 #3
0
ファイル: test_rpms.py プロジェクト: jlsherrill/pulp
    def test_grinder_config(self):
        repo_label = "test_grinder_config"
        feed_url = "http://repos.fedorapeople.org/repos/pulp/pulp/demo_repos/pulp_unittest/"
        num_threads = 25
        max_speed = 1
        proxy_url = "http://example.com"
        proxy_port = "3128"
        proxy_user = "******"
        proxy_pass = "******"
        ssl_verify = True
        ssl_ca_cert = "ca_cert_data"
        ssl_client_cert = "client_cert_data"
        ssl_client_key = "client_key_data"
        newest = True
        remove_old = True
        num_old_packages = 99
        tmp_path = "/tmp"

        config = importer_mocks.get_basic_config(
            feed_url=feed_url,
            num_threads=num_threads,
            max_speed=max_speed,
            proxy_url=proxy_url,
            proxy_port=proxy_port,
            proxy_user=proxy_user,
            proxy_pass=proxy_pass,
            ssl_verify=ssl_verify,
            ssl_ca_cert=ssl_ca_cert,
            ssl_client_cert=ssl_client_cert,
            ssl_client_key=ssl_client_key,
            newest=newest,
            remove_old=remove_old,
            num_old_packages=num_old_packages,
        )
        yumRepoGrinder = importer_rpm.get_yumRepoGrinder(repo_label, tmp_path, config)
        self.assertEquals(yumRepoGrinder.repo_label, repo_label)
        self.assertEquals(yumRepoGrinder.repo_url, feed_url)
        self.assertEquals(yumRepoGrinder.numThreads, num_threads)
        self.assertEquals(yumRepoGrinder.max_speed, max_speed)
        self.assertEquals(yumRepoGrinder.proxy_url, proxy_url)
        self.assertEquals(yumRepoGrinder.proxy_port, proxy_port)
        self.assertEquals(yumRepoGrinder.proxy_user, proxy_user)
        self.assertEquals(yumRepoGrinder.proxy_pass, proxy_pass)
        self.assertEquals(yumRepoGrinder.sslverify, ssl_verify)
        self.assertEquals(yumRepoGrinder.newest, newest)
        self.assertEquals(yumRepoGrinder.remove_old, remove_old)
        self.assertEquals(yumRepoGrinder.numOldPackages, num_old_packages)
        self.assertEquals(yumRepoGrinder.tmp_path, tmp_path)
        # Verify that the pkgpath is set to "./", hardcoded in importer_rpm to
        # force the package dir to be a relative path with the checksum components in the path
        self.assertEquals(yumRepoGrinder.pkgpath, "./")