Example #1
0
 def testGetRecordWorksWhenMultipleVDIsAreExposed(self):
     hostname, network, vdi1 = testsetup.setup_host_and_network(templates=1,
                                                                vdi_mb=10)
     vdi2 = transferclient.create_vdi(hostname, 'Second Test VDI',
                                      12 * 1024 * 1024)
     vdi3 = transferclient.create_vdi(hostname, 'Third Test VDI',
                                      14 * 1024 * 1024)
     vdi4 = transferclient.create_vdi(hostname, 'Fourth Test VDI',
                                      16 * 1024 * 1024)
     transferclient.expose(hostname,
                           vdi_uuid=vdi2,
                           network_uuid=network,
                           transfer_mode='http')
     transferclient.expose(hostname,
                           vdi_uuid=vdi3,
                           network_uuid=network,
                           transfer_mode='http')
     record1 = transferclient.get_record(hostname, vdi_uuid=vdi1)
     record2 = transferclient.get_record(hostname, vdi_uuid=vdi2)
     record3 = transferclient.get_record(hostname, vdi_uuid=vdi3)
     record4 = transferclient.get_record(hostname, vdi_uuid=vdi4)
     self.assertVdiStatus(record1, vdi1, 'unused')
     self.assertVdiStatus(record2, vdi2, 'exposed')
     self.assertVdiStatus(record3, vdi3, 'exposed')
     self.assertVdiStatus(record4, vdi4, 'unused')
     clean_up()
Example #2
0
 def testGetRecordWorksWhenMultipleVDIsAreExposed(self):
     hostname, network, vdi1 = testsetup.setup_host_and_network(templates=1, vdi_mb=10)
     vdi2 = transferclient.create_vdi(hostname, 'Second Test VDI', 12 * 1024 * 1024)
     vdi3 = transferclient.create_vdi(hostname, 'Third Test VDI', 14 * 1024 * 1024)
     vdi4 = transferclient.create_vdi(hostname, 'Fourth Test VDI', 16 * 1024 * 1024)
     transferclient.expose(hostname, vdi_uuid=vdi2, network_uuid=network, transfer_mode='http')
     transferclient.expose(hostname, vdi_uuid=vdi3, network_uuid=network, transfer_mode='http')
     record1 = transferclient.get_record(hostname, vdi_uuid=vdi1)
     record2 = transferclient.get_record(hostname, vdi_uuid=vdi2)
     record3 = transferclient.get_record(hostname, vdi_uuid=vdi3)
     record4 = transferclient.get_record(hostname, vdi_uuid=vdi4)
     self.assertVdiStatus(record1, vdi1, 'unused')
     self.assertVdiStatus(record2, vdi2, 'exposed')
     self.assertVdiStatus(record3, vdi3, 'exposed')
     self.assertVdiStatus(record4, vdi4, 'unused')
     clean_up()
Example #3
0
    def testParallelExposes(self):
        parallelism = 3
        hostname, network, firstvdi = testsetup.setup_host_and_network(templates=1, vdi_mb=10)

        vdis = [firstvdi] + [transferclient.create_vdi(hostname, 'Test VDI', 10*M) for i in xrange(parallelism - 1)]
        threads = [ExposeThread(hostname, network, vdi) for vdi in vdis]
        for t in threads:
            t.start()
        for t in threads:
            t.join()
        records = [transferclient.get_record(hostname, vdi_uuid=vdi) for vdi in vdis]
        for record in records:
            moreasserts.assertVdiIsZeroUsingHttpGet(self, record, 10)
Example #4
0
def setup_host_and_network(templates=1, vdi_mb=None, dangerous_test=False, vdi_raw=False):
    """Sets up the test host with Transfer utility VM templates.
    If vdi_mb is given, a VDI is created as well.

    The host is wiped of all VMs, VDIs and other XenDB data:
    * every 10 setup calls,
    * when a different number of templates is requested,
    * before and after a dangerous_test,
    * when no VDI is requested, but some VDIs have been created already.

    Returns the hostname, a virtual network uuid, and if created, a vdi uuid.
    """
    global VM_TEMPLATES_INSTALLED
    global VDIS_CREATED
    global TIMES_CALLED
    global LAST_TEST_WAS_DANGEROUS

    hostname = HOST

    if templates != 1 and not VMTEMPLATE:
        skipTest("Non-standard configuration")

    if (dangerous_test or
            LAST_TEST_WAS_DANGEROUS or
            TIMES_CALLED >= 10 or
            VM_TEMPLATES_INSTALLED != templates or
            (not vdi_mb and VDIS_CREATED)):
        TIMES_CALLED = 0
        VDIS_CREATED = False
        if WIPE_HOST:
            wipe_host(hostname)
        else:
            clean_vms(hostname)
        deploy_plugin(hostname)
        for i in xrange(templates):
            deploy_vm_template(hostname)

    TIMES_CALLED += 1
    VM_TEMPLATES_INSTALLED = templates
    LAST_TEST_WAS_DANGEROUS = dangerous_test

    if vdi_mb:
        sm_config = {}
        if vdi_raw:
            sm_config["type"] = "raw"
        vdi_uuid = transferclient.create_vdi(hostname, 'ABCDEF Test VDI', vdi_mb * 1024 * 1024, sm_config)
        VDIS_CREATED = True
        return hostname, transferclient.network_by_name(hostname, '0'), vdi_uuid
    else:
        return hostname, transferclient.network_by_name(hostname, '0')