예제 #1
0
 def setUpClass(cls):
     super(ConsumerAgentPulpTest, cls).setUpClass()
     cls.ROLES = ROLES
     cls.PROFILE = PROFILE
     from . import ROLES as inventory_roles
     cls.repo, cls.importer, cls.distributor = create_yum_repo(cls.pulp, **[repo for repo in inventory_roles.repos if repo.type == 'rpm'][0])
     cls.consumer = Consumer.register(cls.pulp, cls.__name__ + '_consumer')
     cls.binding_data = {'repo_id': cls.repo.id, 'distributor_id': cls.distributor.id}
     cls.log.info('instantiating agent')
     cls.agent = Agent(pulp_auto.handler, PROFILE=pulp_auto.handler.profile.PROFILE)
     cls.log.info('instantiating qpid handle')
     cls.qpid_handle = QpidHandle(ROLES.qpid.url, cls.consumer.id)
    def setUpClass(cls):
        super(RegRepoFeedTest, cls).setUpClass()

        repo_role = [repo for repo in ROLES.repos
                     if repo.type == 'rpm'][0].copy()
        repo_role.id = cls.__name__ + '_repo'
        # create repo
        cls.repo, cls.importer, [
            cls.distributor
        ] = YumRepoFacade.from_role(repo_role).create(cls.pulp)

        # create consumer
        cls.consumer = Consumer(ROLES.consumers[0])
        setattr(cls.consumer, 'cli', Cli.ready_instance(**ROLES.consumers[0]))
    def setUpClass(cls):
        super(RegRepoNoFeedTest, cls).setUpClass()

        # create repo
        cls.repo, cls.importer, [cls.distributor] = YumRepoFacade(
            id=cls.__name__ + "_repo",
            importer=YumImporter(feed=None),
            distributors=[YumDistributor(relative_url='foo')]).create(cls.pulp)

        # create consumer
        cls.consumer = Consumer(ROLES.consumers[0])
        setattr(cls.consumer, 'cli', Cli.ready_instance(**ROLES.consumers[0]))

        # rpm
        cls.rpm_url_pike = 'https://repos.fedorapeople.org/repos/pulp/pulp/demo_repos/zoo/pike-2.2-1.noarch.rpm'
예제 #4
0
    def setUpClass(cls):
        super(RegRepoCopyTest, cls).setUpClass()

        # create repo
        cls.repo1, cls.importer1, cls.distributor1 = create_yum_repo(
            cls.pulp,
            cls.__name__ + "_repo1",
            feed='http://repos.fedorapeople.org/repos/pulp/pulp/demo_repos/zoo/'
        )
        cls.repo2, cls.importer2, cls.distributor2 = create_yum_repo(
            cls.pulp, cls.__name__ + "_repo2", feed=None)

        # create consumer
        cls.consumer = Consumer(ROLES.consumers[0])
        setattr(cls.consumer, 'cli', Cli.ready_instance(**ROLES.consumers[0]))
 def setUpClass(cls):
     super(ConsumerAuthTest, cls).setUpClass()
     cls.ROLES = ROLES
     cls.PROFILE = PROFILE
     cls.rsa_primary = RSA.load_key('/usr/share/pulp_auto/tests/data/fake-consumer.pem')
     cls.rsa_secondary = RSA.load_key('/usr/share/pulp_auto/tests/data/fake-consumer-secondary.pem')
     bio_fd = BIO.MemoryBuffer()
     cls.rsa_primary.save_pub_key_bio(bio_fd)
     cls.pub_pem_primary = bio_fd.getvalue()
     bio_fd = BIO.MemoryBuffer()
     cls.rsa_secondary.save_pub_key_bio(bio_fd)
     cls.pub_pem_secondary = bio_fd.getvalue()
     cls.repo, cls.importer, cls.distributor = create_yum_repo(cls.pulp, **[repo for repo in cls.ROLES.repos if repo.type == 'rpm'][0])
     cls.consumer = Consumer.register(cls.pulp, cls.__name__ + '_consumer', rsa_pub=cls.pub_pem_primary)
     cls.agent = Agent(pulp_auto.handler, PROFILE=pulp_auto.handler.profile.PROFILE)
     cls.qpid_handle = QpidHandle(cls.ROLES.qpid.url, cls.consumer.id, auth=Authenticator(signing_key=cls.rsa_primary, verifying_key=cls.pulp.pubkey))
예제 #6
0
 def setUpClass(cls):
     super(ConsumerAgentPulpTest, cls).setUpClass()
     cls.ROLES = ROLES
     cls.PROFILE = PROFILE
     from . import ROLES as inventory_roles
     cls.repo, cls.importer, cls.distributor = create_yum_repo(cls.pulp, **[repo for repo in inventory_roles.repos if repo.type == 'rpm'][0])
     cls.rsa = RSA.load_key('./tests/data/fake-consumer.pem')
     bio_fd = BIO.MemoryBuffer()
     cls.rsa.save_pub_key_bio(bio_fd)
     cls.rsa_pub_pem = bio_fd.getvalue()
     cls.consumer = Consumer.register(cls.pulp, cls.__name__ + '_consumer', rsa_pub=cls.rsa_pub_pem)
     #cls.binding_data = {'repo_id': cls.repo.id, 'distributor_id': cls.distributor.id}
     cls.log.info('instantiating agent')
     cls.agent = Agent(pulp_auto.handler, PROFILE=pulp_auto.handler.profile.PROFILE)
     cls.log.info('instantiating qpid handle')
     cls.qpid_handle = QpidHandle(ROLES.qpid.url, cls.consumer.id, auth=Authenticator(signing_key=cls.rsa, verifying_key=cls.pulp.pubkey))
예제 #7
0
    def setUpClass(cls):
        super(RegRepoCopyTest, cls).setUpClass()

        # create repo
        repo_role = [repo for repo in ROLES.repos
                     if repo.type == 'rpm'][0].copy()
        repo_role.id = cls.__name__ + '_repo1'
        cls.repo1, cls.importer1, [
            cls.distributor1
        ] = YumRepoFacade.from_role(repo_role).create(cls.pulp)
        cls.repo2, cls.importer2, [cls.distributor2] = YumRepoFacade(
            id=cls.__name__ + '_repo2',
            importer=YumImporter(feed=None),
            distributors=[YumDistributor(relative_url='xyz')]).create(cls.pulp)

        # create consumer
        cls.consumer = Consumer(ROLES.consumers[0])
        setattr(cls.consumer, 'cli', Cli.ready_instance(**ROLES.consumers[0]))
예제 #8
0
def run(url, consumer_name, reporting, polling_frequency, key_file, pulp_url, register):
    from gevent import monkey
    monkey.patch_all(select=False, thread=False)

    if not pulp_url:
        # use http://admin:admin@<host part from amqp url>/"
        amqp_url = urllib3.util.parse_url(url)
        pulp_url = 'https://*****:*****@' + amqp_url.host + '/'

    rsa = None
    pem = ""
    if key_file:
        # load rsa and set-up authentication
        rsa = RSA.load_key(key_file)
        bio_fd = BIO.MemoryBuffer()
        rsa.save_pub_key_bio(bio_fd)
        pem = bio_fd.getvalue()

    pulp = Pulp(pulp_url)
    consumer = None
    if register:
        consumer = Consumer.register(pulp, consumer_name, rsa_pub=pem)
        log.info("registered: " + str(consumer))
    qh = QpidHandle(url, consumer_name, authenticator=Authenticator(signing_key=rsa, verifying_key=pulp.pubkey))

    a = Agent(pulp_auto.handler, PROFILE=PROFILE)
    ###
    try:
        with a.catching(reporting), a.running(qh):
            while True:
                try:
                    time.sleep(1.0/polling_frequency)
                except KeyboardInterrupt:
                    if consumer:
                        log.info("unregistered: " + str(consumer.delete(pulp)))
                    break
    except Exception as e:
        pass
 def test_01_api_registered_consumer(self):
     # assert the cli registration worked in API
     Consumer.get(self.pulp, self.consumer_cli.consumer_id)
     self.assertPulpOK()
 def test_04_check_binding_removed_1080626(self):
     #https://bugzilla.redhat.com/show_bug.cgi?id=1080626
     # Consumers are not unbounded when repository is deleted
     consumer = Consumer.get(self.pulp, self.consumer.id, params={"bindings": True})
     self.assertEqual(consumer.data["bindings"], [])
예제 #11
0
 def test_01_api_registered_consumer(self):
     # assert the cli registration worked in API
     with self.pulp.asserting(True):
         for consumer in self.consumers:
             Consumer.get(self.pulp, consumer.cli.consumer_id)
 def test_03_api_registered_consumer(self):
     # assert the cli registration worked in API
     with self.pulp.asserting(True):
         Consumer.get(self.pulp, self.consumer.cli.consumer_id)
 def test_04_check_binding_removed_1081030(self):
     #https://bugzilla.redhat.com/show_bug.cgi?id=1081030
     # Consumers are not unbounded from distributor in case of distributor's removal
     consumer = Consumer.get(self.pulp, self.consumer.id, params={"bindings": True})
     self.assertEqual(consumer.data["bindings"], [])