Exemplo n.º 1
0
    def setUp(self):
        super(NWFilterTestCase, self).setUp()

        self.useFixture(fakelibvirt.FakeLibvirtFixture())

        self.fw = firewall.NWFilterFirewall(FakeVirtAPI(),
                                            host=host.Host("qemu:///system"))
Exemplo n.º 2
0
    def setUp(self):
        super(ServersTestBase, self).setUp()

        # Replace libvirt with fakelibvirt
        self.useFixture(fake_imagebackend.ImageBackendFixture())
        self.useFixture(fixtures.MonkeyPatch(
            'nova.virt.libvirt.driver.libvirt_utils',
            fake_libvirt_utils))
        self.useFixture(fixtures.MonkeyPatch(
            'nova.virt.libvirt.driver.libvirt',
            fakelibvirt))
        self.useFixture(fixtures.MonkeyPatch(
            'nova.virt.libvirt.host.libvirt',
            fakelibvirt))
        self.useFixture(fixtures.MonkeyPatch(
            'nova.virt.libvirt.guest.libvirt',
            fakelibvirt))
        self.useFixture(fakelibvirt.FakeLibvirtFixture())
        self.useFixture(nova_fixtures.PlacementFixture())

        # Mock the 'get_connection' function, as we're going to need to provide
        # custom capabilities for each test
        _p = mock.patch('nova.virt.libvirt.host.Host.get_connection')
        self.mock_conn = _p.start()
        self.addCleanup(_p.stop)
Exemplo n.º 3
0
    def setUp(self):

        white_list = [
            '{"vendor_id":"8086","product_id":"1528"}',
            '{"vendor_id":"8086","product_id":"1515"}'
        ]
        self.flags(passthrough_whitelist=white_list, group='pci')

        # PFs will be removed from pools, unless these has been specifically
        # requested. This is especially needed in cases where PFs and VFs have
        # the same vendor/product id
        pci_alias = [
            '{"vendor_id":"8086", "product_id":"1528", "name":"%s",'
            ' "device_type":"%s"}' %
            (self.pfs_alias_name, fields.PciDeviceType.SRIOV_PF),
            '{"vendor_id":"8086", "product_id":"1515", "name":"%s"}' %
            self.vfs_alias_name
        ]
        self.flags(alias=pci_alias, group='pci')
        super(SRIOVServersTest, self).setUp()

        # Replace libvirt with fakelibvirt
        self.useFixture(
            fixtures.MonkeyPatch('nova.virt.libvirt.driver.libvirt_utils',
                                 fake_libvirt_utils))
        self.useFixture(
            fixtures.MonkeyPatch('nova.virt.libvirt.driver.libvirt',
                                 fakelibvirt))
        self.useFixture(
            fixtures.MonkeyPatch('nova.virt.libvirt.host.libvirt',
                                 fakelibvirt))
        self.useFixture(
            fixtures.MonkeyPatch('nova.virt.libvirt.guest.libvirt',
                                 fakelibvirt))
        self.useFixture(fakelibvirt.FakeLibvirtFixture())
Exemplo n.º 4
0
    def setUp(self):
        super(LibvirtVolumeBaseTestCase, self).setUp()
        self.executes = []

        def fake_execute(*cmd, **kwargs):
            self.executes.append(cmd)
            return None, None

        self.stub_out('nova.utils.execute', fake_execute)

        self.useFixture(fakelibvirt.FakeLibvirtFixture())

        self.fake_host = host.Host("qemu:///system")

        self.connr = {
            'ip': '127.0.0.1',
            'initiator': 'fake_initiator',
            'host': 'fake_host'
        }
        self.disk_info = {
            "bus": "virtio",
            "dev": "vde",
            "type": "disk",
        }
        self.name = 'volume-00000001'
        self.location = '10.0.2.15:3260'
        self.iqn = 'iqn.2010-10.org.openstack:%s' % self.name
        self.vol = {'id': 1, 'name': self.name}
        self.uuid = '875a8070-d0b9-4949-8b31-104d125c9a64'
        self.user = '******'
Exemplo n.º 5
0
    def setUp(self):
        super(_LibvirtEvacuateTest, self).setUp()

        self.useFixture(nova_fixtures.NeutronFixture(self))
        fake_network.set_stub_network_methods(self)
        self.useFixture(nova_fixtures.PlacementFixture())

        api_fixture = self.useFixture(
            nova_fixtures.OSAPIFixture(api_version='v2.1'))

        self.api = api_fixture.admin_api
        # force_down and evacuate without onSharedStorage
        self.api.microversion = '2.14'

        fake_image.stub_out_image_service(self)
        self.addCleanup(fake_image.FakeImageService_reset)

        fake_notifier.stub_notifier(self)
        self.addCleanup(fake_notifier.reset)

        self.useFixture(fakelibvirt.FakeLibvirtFixture())

        self.start_service('conductor')
        self.start_service('scheduler')

        self.flags(compute_driver='libvirt.LibvirtDriver')
        self.compute0 = self._start_compute('compute0')

        # Choice of image id and flavor are arbitrary. Fixed for consistency.
        self.image_id = fake_image.AUTO_DISK_CONFIG_ENABLED_IMAGE_UUID
        self.flavor_id = next(flavor for flavor in self.api.get_flavors()
                              if flavor['name'] == 'm1.tiny')['id']
Exemplo n.º 6
0
    def setUp(self):
        self.flags(instances_path=self.useFixture(fixtures.TempDir()).path)

        self.computes = {}
        self.compute_rp_uuids = {}

        super(ServersTestBase, self).setUp()

        self.useFixture(fake_imagebackend.ImageBackendFixture())
        self.useFixture(fakelibvirt.FakeLibvirtFixture())

        self.useFixture(fixtures.MockPatch(
            'nova.virt.libvirt.LibvirtDriver._create_image',
            return_value=(False, False)))
        self.useFixture(fixtures.MockPatch(
            'nova.virt.libvirt.LibvirtDriver._get_local_gb_info',
            return_value={'total': 128, 'used': 44, 'free': 84}))
        self.useFixture(fixtures.MockPatch(
            'nova.virt.libvirt.driver.libvirt_utils.is_valid_hostname',
            return_value=True))
        self.useFixture(fixtures.MockPatch(
            'nova.virt.libvirt.driver.libvirt_utils.file_open',
            side_effect=lambda *a, **k: io.BytesIO(b'')))
        self.useFixture(fixtures.MockPatch(
            'nova.privsep.utils.supports_direct_io',
            return_value=True))
        self.useFixture(fixtures.MockPatch(
            'nova.virt.libvirt.host.Host.get_online_cpus',
            return_value=set(range(16))))

        # Mock the 'get_connection' function, as we're going to need to provide
        # custom capabilities for each test
        _p = mock.patch('nova.virt.libvirt.host.Host.get_connection')
        self.mock_conn = _p.start()
        self.addCleanup(_p.stop)
Exemplo n.º 7
0
    def setUp(self):
        super(IptablesFirewallTestCase, self).setUp()
        self.useFixture(lock_fixture.ExternalLockFixture())
        self.useFixture(fakelibvirt.FakeLibvirtFixture())

        self.fw = firewall.IptablesFirewallDriver(
            host=host.Host("qemu:///system"))
Exemplo n.º 8
0
    def setUp(self):
        super(ServersTestBase, self).setUp()

        # Replace libvirt with fakelibvirt
        self.useFixture(fake_imagebackend.ImageBackendFixture())
        self.useFixture(fixtures.MonkeyPatch(
            'nova.virt.libvirt.driver.libvirt',
            fakelibvirt))
        self.useFixture(fixtures.MonkeyPatch(
            'nova.virt.libvirt.host.libvirt',
            fakelibvirt))
        self.useFixture(fixtures.MonkeyPatch(
            'nova.virt.libvirt.guest.libvirt',
            fakelibvirt))
        self.useFixture(fakelibvirt.FakeLibvirtFixture())
        self.useFixture(func_fixtures.PlacementFixture())

        self.stub_out('nova.privsep.utils.supports_direct_io', lambda _: True)

        # Mock the 'get_connection' function, as we're going to need to provide
        # custom capabilities for each test
        _p = mock.patch('nova.virt.libvirt.host.Host.get_connection')
        self.mock_conn = _p.start()
        self.addCleanup(_p.stop)
        # As above, mock the 'get_arch' function as we may need to provide
        # different host architectures during some tests.
        _a = mock.patch('nova.virt.libvirt.utils.get_arch')
        self.mock_arch = _a.start()
        # Default to X86_64
        self.mock_arch.return_value = obj_fields.Architecture.X86_64
        self.addCleanup(_a.stop)
Exemplo n.º 9
0
    def _get_base_class(self):
        # We do this because it has the side-effect of loading all the
        # volume drivers
        self.useFixture(fakelibvirt.FakeLibvirtFixture())
        driver.LibvirtDriver(fake.FakeVirtAPI(), False)

        return volume.LibvirtBaseVolumeDriver
Exemplo n.º 10
0
 def setUp(self):
     super(LibvirtProviderUsageBaseTestCase, self).setUp()
     self.useFixture(fakelibvirt.FakeLibvirtFixture(stub_os_vif=False))
     if self.STUB_INIT_HOST:
         self.useFixture(
             fixtures.MockPatch(
                 'nova.virt.libvirt.driver.LibvirtDriver.init_host'))
     self.useFixture(
         fixtures.MockPatch('nova.virt.libvirt.driver.LibvirtDriver.spawn'))
Exemplo n.º 11
0
    def setUp(self):
        super(GuestTestCase, self).setUp()

        self.useFixture(fakelibvirt.FakeLibvirtFixture())
        self.host = host.Host("qemu:///system")
        self.context = context.get_admin_context()

        self.domain = mock.Mock(spec=fakelibvirt.virDomain)
        self.guest = libvirt_guest.Guest(self.domain)
Exemplo n.º 12
0
    def setUp(self):
        super(MigrationMonitorTestCase, self).setUp()

        self.useFixture(fakelibvirt.FakeLibvirtFixture())

        flavor = objects.Flavor(memory_mb=2048,
                                swap=0,
                                vcpu_weight=None,
                                root_gb=1,
                                id=2,
                                name=u'm1.small',
                                ephemeral_gb=0,
                                rxtx_factor=1.0,
                                flavorid=u'1',
                                vcpus=1,
                                extra_specs={})

        instance = {
            'id': 1,
            'uuid': '32dfcb37-5af1-552b-357c-be8c3aa38310',
            'memory_kb': '1024000',
            'basepath': '/some/path',
            'bridge_name': 'br100',
            'display_name': "Acme webserver",
            'vcpus': 2,
            'project_id': 'fake',
            'bridge': 'br101',
            'image_ref': '155d900f-4e14-4e4c-a73d-069cbf4541e6',
            'root_gb': 10,
            'ephemeral_gb': 20,
            'instance_type_id': '5',  # m1.small
            'extra_specs': {},
            'system_metadata': {
                'image_disk_format': 'raw',
            },
            'flavor': flavor,
            'new_flavor': None,
            'old_flavor': None,
            'pci_devices': objects.PciDeviceList(),
            'numa_topology': None,
            'config_drive': None,
            'vm_mode': None,
            'kernel_id': None,
            'ramdisk_id': None,
            'os_type': 'linux',
            'user_id': '838a72b0-0d54-4827-8fd6-fb1227633ceb',
            'ephemeral_key_uuid': None,
            'vcpu_model': None,
            'host': 'fake-host',
            'task_state': None,
        }
        self.instance = objects.Instance(**instance)
        self.conn = fakelibvirt.Connection("qemu:///system")
        self.dom = fakelibvirt.Domain(self.conn, "<domain/>", True)
        self.host = host.Host("qemu:///system")
        self.guest = libvirt_guest.Guest(self.dom)
Exemplo n.º 13
0
 def setUp(self):
     super(LibvirtReportTraitsTests, self).setUp()
     self.useFixture(fakelibvirt.FakeLibvirtFixture(stub_os_vif=False))
     self.useFixture(
         fixtures.MockPatch(
             'nova.virt.libvirt.driver.LibvirtDriver.init_host'))
     self.assertEqual([], self._get_all_providers())
     self.compute = self._start_compute(CONF.host)
     nodename = self.compute.manager._get_nodename(None)
     self.host_uuid = self._get_provider_uuid_by_host(nodename)
Exemplo n.º 14
0
    def setUp(self):
        super(DomainJobInfoTestCase, self).setUp()

        self.useFixture(fakelibvirt.FakeLibvirtFixture())

        self.conn = fakelibvirt.openAuth("qemu:///system", [[], lambda: True])
        xml = ("<domain type='kvm'>"
               "  <name>instance-0000000a</name>"
               "</domain>")
        self.dom = self.conn.createXML(xml, 0)
        host.DomainJobInfo._have_job_stats = True
 def setUp(self):
     super(SharedStorageProviderUsageTestCase, self).setUp()
     self.useFixture(fakelibvirt.FakeLibvirtFixture(stub_os_vif=False))
     self.useFixture(
         fixtures.MockPatch(
             'nova.virt.libvirt.driver.LibvirtDriver.init_host'))
     self.useFixture(
         fixtures.MockPatch('nova.virt.libvirt.driver.LibvirtDriver.spawn'))
     self.compute = self._start_compute(CONF.host)
     nodename = self.compute.manager._get_nodename(None)
     self.host_uuid = self._get_provider_uuid_by_host(nodename)
Exemplo n.º 16
0
    def setUp(self):
        super(ServersTestBase, self).setUp()

        # Replace libvirt with fakelibvirt
        self.useFixture(fake_imagebackend.ImageBackendFixture())
        self.useFixture(
            fixtures.MonkeyPatch('nova.virt.libvirt.driver.libvirt',
                                 fakelibvirt))
        self.useFixture(
            fixtures.MonkeyPatch('nova.virt.libvirt.host.libvirt',
                                 fakelibvirt))
        self.useFixture(
            fixtures.MonkeyPatch('nova.virt.libvirt.guest.libvirt',
                                 fakelibvirt))
        self.useFixture(fakelibvirt.FakeLibvirtFixture())

        self.useFixture(
            fixtures.MockPatch('nova.virt.libvirt.LibvirtDriver._create_image',
                               return_value=(False, False)))
        self.useFixture(
            fixtures.MockPatch(
                'nova.virt.libvirt.LibvirtDriver._get_local_gb_info',
                return_value={
                    'total': 128,
                    'used': 44,
                    'free': 84
                }))
        self.useFixture(
            fixtures.MockPatch(
                'nova.virt.libvirt.driver.libvirt_utils.is_valid_hostname',
                return_value=True))
        self.useFixture(
            fixtures.MockPatch(
                'nova.virt.libvirt.driver.libvirt_utils.file_open',
                side_effect=lambda *a, **k: io.BytesIO(b'')))
        self.useFixture(
            fixtures.MockPatch('nova.privsep.utils.supports_direct_io',
                               return_value=True))
        self.useFixture(
            fixtures.MockPatch('nova.virt.libvirt.host.Host.get_online_cpus',
                               return_value=set(range(16))))

        # Mock the 'get_connection' function, as we're going to need to provide
        # custom capabilities for each test
        _p = mock.patch('nova.virt.libvirt.host.Host.get_connection')
        self.mock_conn = _p.start()
        self.addCleanup(_p.stop)

        # Mock the 'get_arch' function as we may need to provide different host
        # architectures during some tests. We default to x86_64
        _a = mock.patch('nova.virt.libvirt.utils.get_arch')
        self.mock_arch = _a.start()
        self.mock_arch.return_value = obj_fields.Architecture.X86_64
        self.addCleanup(_a.stop)
Exemplo n.º 17
0
    def setUp(self):
        super(GuestTestCase, self).setUp()

        self.useFixture(fakelibvirt.FakeLibvirtFixture())
        self.host = host.Host("qemu:///system")
        self.context = context.get_admin_context()

        self.domain = mock.Mock(spec=fakelibvirt.virDomain)
        self.guest = libvirt_guest.Guest(self.domain)

        # Make RetryDecorator not actually sleep on retries
        self.useFixture(service_fixture.SleepFixture())
Exemplo n.º 18
0
    def setUp(self):
        super(NUMAServersTest, self).setUp()

        # Replace libvirt with fakelibvirt
        self.useFixture(fixtures.MonkeyPatch(
           'nova.virt.libvirt.driver.libvirt_utils',
           fake_libvirt_utils))
        self.useFixture(fixtures.MonkeyPatch(
           'nova.virt.libvirt.driver.libvirt',
           fakelibvirt))
        self.useFixture(fixtures.MonkeyPatch(
           'nova.virt.libvirt.host.libvirt',
           fakelibvirt))
        self.useFixture(fakelibvirt.FakeLibvirtFixture())
Exemplo n.º 19
0
    def setUp(self):
        super(TestSerialConsoleLiveMigrate, self).setUp()
        self.useFixture(policy_fixture.RealPolicyFixture())
        self.useFixture(nova_fixtures.NeutronFixture(self))
        self.useFixture(nova_fixtures.PlacementFixture())
        api_fixture = self.useFixture(
            nova_fixtures.OSAPIFixture(api_version='v2.1'))
        # Replace libvirt with fakelibvirt
        self.useFixture(
            fixtures.MonkeyPatch('nova.virt.libvirt.driver.libvirt_utils',
                                 fake_libvirt_utils))
        self.useFixture(
            fixtures.MonkeyPatch('nova.virt.libvirt.driver.libvirt',
                                 fakelibvirt))
        self.useFixture(
            fixtures.MonkeyPatch('nova.virt.libvirt.host.libvirt',
                                 fakelibvirt))
        self.useFixture(
            fixtures.MonkeyPatch('nova.virt.libvirt.guest.libvirt',
                                 fakelibvirt))
        self.useFixture(fakelibvirt.FakeLibvirtFixture())

        self.admin_api = api_fixture.admin_api
        self.api = api_fixture.api

        # the image fake backend needed for image discovery
        nova.tests.unit.image.fake.stub_out_image_service(self)
        nova.tests.unit.fake_network.set_stub_network_methods(self)

        self.flags(compute_driver='libvirt.LibvirtDriver')
        self.flags(enabled=True, group="serial_console")
        self.flags(enabled=False, group="vnc")
        self.flags(enabled=False, group="spice")
        self.flags(use_usb_tablet=False, group="libvirt")
        self.flags(host="test_compute1")

        self.start_service('conductor')
        self.flags(driver='chance_scheduler', group='scheduler')
        self.start_service('scheduler')
        self.compute = self.start_service('compute', host='test_compute1')
        self.consoleauth = self.start_service('consoleauth')

        self.useFixture(cast_as_call.CastAsCall(self))
        self.addCleanup(nova.tests.unit.image.fake.FakeImageService_reset)

        self.image_id = self.api.get_images()[0]['id']
        self.flavor_id = self.api.get_flavors()[0]['id']
Exemplo n.º 20
0
    def setUp(self):
        super(RealTimeServersTest, self).setUp()

        # Replace libvirt with fakelibvirt
        self.useFixture(
            fixtures.MonkeyPatch('nova.virt.libvirt.driver.libvirt_utils',
                                 fake_libvirt_utils))
        self.useFixture(
            fixtures.MonkeyPatch('nova.virt.libvirt.driver.libvirt',
                                 fakelibvirt))
        self.useFixture(
            fixtures.MonkeyPatch('nova.virt.libvirt.host.libvirt',
                                 fakelibvirt))
        self.useFixture(
            fixtures.MonkeyPatch('nova.virt.libvirt.guest.libvirt',
                                 fakelibvirt))
        self.useFixture(fakelibvirt.FakeLibvirtFixture())
        self.flags(sysinfo_serial='none', group='libvirt')
Exemplo n.º 21
0
    def setUp(self):
        super(NUMAServersTest, self).setUp()

        # Replace libvirt with fakelibvirt
        self.useFixture(fake_imagebackend.ImageBackendFixture())
        self.useFixture(fixtures.MonkeyPatch(
           'nova.virt.libvirt.driver.libvirt_utils',
           fake_libvirt_utils))
        self.useFixture(fixtures.MonkeyPatch(
           'nova.virt.libvirt.driver.libvirt',
           fakelibvirt))
        self.useFixture(fixtures.MonkeyPatch(
           'nova.virt.libvirt.host.libvirt',
           fakelibvirt))
        self.useFixture(fixtures.MonkeyPatch(
           'nova.virt.libvirt.guest.libvirt',
           fakelibvirt))
        self.useFixture(fakelibvirt.FakeLibvirtFixture())
        self.useFixture(nova_fixtures.PlacementFixture())
Exemplo n.º 22
0
 def test_find_disk_lxc(self):
     self.useFixture(fakelibvirt.FakeLibvirtFixture())
     xml = """
       <domain type='lxc'>
         <os>
           <type>exe</type>
         </os>
         <devices>
           <filesystem type="mount">
             <source dir="/myhome/rootfs"/>
             <target dir="/"/>
           </filesystem>
         </devices>
       </domain>
     """
     virt_dom = mock.Mock(XMLDesc=mock.Mock(return_value=xml))
     guest = libvirt_guest.Guest(virt_dom)
     disk_path, format = libvirt_utils.find_disk(guest)
     self.assertEqual('/myhome/disk', disk_path)
     self.assertIsNone(format)
Exemplo n.º 23
0
 def test_find_disk_parallels(self):
     self.useFixture(fakelibvirt.FakeLibvirtFixture())
     xml = """
       <domain type='parallels'>
         <os>
           <type>exe</type>
         </os>
         <devices>
           <filesystem type='file'>"
             <driver format='ploop' type='ploop'/>"
             <source file='/test/disk'/>"
             <target dir='/'/>
           </filesystem>"
         </devices>
       </domain>
     """
     virt_dom = mock.Mock(XMLDesc=mock.Mock(return_value=xml))
     guest = libvirt_guest.Guest(virt_dom)
     disk_path, format = libvirt_utils.find_disk(guest)
     self.assertEqual('/test/disk', disk_path)
     self.assertEqual('ploop', format)
Exemplo n.º 24
0
 def test_find_disk_block_device(self):
     self.useFixture(fakelibvirt.FakeLibvirtFixture())
     xml = """
       <domain type='kvm'>
         <os>
           <type>linux</type>
         </os>
         <devices>
           <disk type="block" device="disk">
             <driver name="qemu" type="raw"/>
             <source dev="/dev/nova-vg/hello"/>
             <target bus="ide" dev="/dev/hda"/>
           </disk>
         </devices>
       </domain>
     """
     virt_dom = mock.Mock(XMLDesc=mock.Mock(return_value=xml))
     guest = libvirt_guest.Guest(virt_dom)
     disk_path, format = libvirt_utils.find_disk(guest)
     self.assertEqual('/dev/nova-vg/hello', disk_path)
     self.assertEqual('raw', format)
Exemplo n.º 25
0
 def test_find_disk_file_device(self):
     self.useFixture(fakelibvirt.FakeLibvirtFixture())
     xml = """
       <domain type='kvm'>
         <os>
           <type>linux</type>
         </os>
         <devices>
           <disk type="file" device="disk">
             <driver name="qemu" type="qcow2" cache="none" io="native"/>
             <source file="/tmp/hello"/>
             <target bus="ide" dev="/dev/hda"/>
           </disk>
         </devices>
       </domain>
     """
     virt_dom = mock.Mock(XMLDesc=mock.Mock(return_value=xml))
     guest = libvirt_guest.Guest(virt_dom)
     disk_path, format = libvirt_utils.find_disk(guest)
     self.assertEqual('/tmp/hello', disk_path)
     self.assertEqual('qcow2', format)
Exemplo n.º 26
0
 def test_find_disk_rbd(self):
     self.useFixture(fakelibvirt.FakeLibvirtFixture())
     xml = """
       <domain type='kvm'>
         <os>
           <type>linux</type>
         </os>
         <devices>
           <disk type="network" device="disk">
             <driver name="qemu" type="raw"/>
             <source name="pool/image" protocol="rbd">
               <host name="1.2.3.4" port="456"/>
             </source>
             <target bus="virtio" dev="/dev/vda"/>
           </disk>
         </devices>
       </domain>
     """
     virt_dom = mock.Mock(XMLDesc=mock.Mock(return_value=xml))
     guest = libvirt_guest.Guest(virt_dom)
     disk_path, format = libvirt_utils.find_disk(guest)
     self.assertEqual('rbd:pool/image', disk_path)
     self.assertEqual('raw', format)
Exemplo n.º 27
0
    def setUp(self):
        super(TestSerialConsoleLiveMigrate, self).setUp()
        self.useFixture(policy_fixture.RealPolicyFixture())
        self.useFixture(nova_fixtures.NeutronFixture(self))
        self.useFixture(nova_fixtures.GlanceFixture(self))
        self.useFixture(func_fixtures.PlacementFixture())
        api_fixture = self.useFixture(
            nova_fixtures.OSAPIFixture(api_version='v2.1'))
        # Replace libvirt with fakelibvirt
        self.useFixture(
            fixtures.MonkeyPatch('nova.virt.libvirt.driver.libvirt',
                                 fakelibvirt))
        self.useFixture(
            fixtures.MonkeyPatch('nova.virt.libvirt.host.libvirt',
                                 fakelibvirt))
        self.useFixture(
            fixtures.MonkeyPatch('nova.virt.libvirt.guest.libvirt',
                                 fakelibvirt))
        self.useFixture(fakelibvirt.FakeLibvirtFixture())

        self.admin_api = api_fixture.admin_api
        self.api = api_fixture.api

        self.flags(compute_driver='libvirt.LibvirtDriver')
        self.flags(enabled=True, group="serial_console")
        self.flags(enabled=False, group="vnc")
        self.flags(enabled=False, group="spice")
        self.flags(use_usb_tablet=False, group="libvirt")

        self.start_service('conductor')
        self.start_service('scheduler')
        self.compute = self.start_service('compute', host='test_compute1')

        self.useFixture(cast_as_call.CastAsCall(self))

        self.image_id = self.api.get_images()[0]['id']
        self.flavor_id = self.api.get_flavors()[0]['id']
Exemplo n.º 28
0
    def _setup_fakelibvirt(self):
        # So that the _supports_direct_io does the test based
        # on the current working directory, instead of the
        # default instances_path which doesn't exist
        self.flags(instances_path=self.useFixture(fixtures.TempDir()).path)

        # Put fakelibvirt in place
        if 'libvirt' in sys.modules:
            self.saved_libvirt = sys.modules['libvirt']
        else:
            self.saved_libvirt = None

        from nova.tests.unit.virt.libvirt import fake_imagebackend
        from nova.tests.unit.virt.libvirt import fakelibvirt

        from nova.tests.unit.virt.libvirt import fake_os_brick_connector

        self.useFixture(fake_imagebackend.ImageBackendFixture())
        self.useFixture(fakelibvirt.FakeLibvirtFixture())

        self.useFixture(
            fixtures.MonkeyPatch('nova.virt.libvirt.driver.connector',
                                 fake_os_brick_connector))

        self.useFixture(
            fixtures.MonkeyPatch(
                'nova.virt.libvirt.host.Host._conn_event_thread',
                lambda *args: None))

        self.flags(rescue_image_id="2",
                   rescue_kernel_id="3",
                   rescue_ramdisk_id=None,
                   snapshots_directory='./',
                   sysinfo_serial='none',
                   group='libvirt')

        def fake_wait():
            pass

        def fake_detach_device_with_retry(_self, get_device_conf_func, device,
                                          live, *args, **kwargs):
            # Still calling detach, but instead of returning function
            # that actually checks if device is gone from XML, just continue
            # because XML never gets updated in these tests
            _self.detach_device(get_device_conf_func(device), live=live)
            return fake_wait

        self.stub_out(
            'nova.virt.libvirt.driver.LibvirtDriver.'
            '_get_instance_disk_info_from_config',
            lambda self, guest_config, block_device_info: [])
        self.stub_out('nova.virt.disk.api.extend', lambda image, size: None)
        self.stub_out(
            'nova.virt.libvirt.driver.LibvirtDriver.'
            'delete_instance_files', lambda self, instance: None)
        self.stub_out('nova.virt.libvirt.guest.Guest.detach_device_with_retry',
                      fake_detach_device_with_retry)
        self.stub_out('nova.virt.libvirt.guest.Guest.migrate',
                      lambda self, destination, migrate_uri=None, migrate_disks
                      =None, destination_xml=None, flags=0, bandwidth=0: None)
        # We can't actually make a config drive v2 because ensure_tree has
        # been faked out
        self.stub_out('nova.virt.configdrive.ConfigDriveBuilder.make_drive',
                      lambda self, path: None)
Exemplo n.º 29
0
    def _setup_fakelibvirt(self):
        # So that the _supports_direct_io does the test based
        # on the current working directory, instead of the
        # default instances_path which doesn't exist
        self.flags(instances_path=self.useFixture(fixtures.TempDir()).path)

        # Put fakelibvirt in place
        if 'libvirt' in sys.modules:
            self.saved_libvirt = sys.modules['libvirt']
        else:
            self.saved_libvirt = None

        import nova.tests.unit.virt.libvirt.fake_imagebackend as \
            fake_imagebackend
        import nova.tests.unit.virt.libvirt.fake_libvirt_utils as \
            fake_libvirt_utils
        import nova.tests.unit.virt.libvirt.fakelibvirt as fakelibvirt

        import nova.tests.unit.virt.libvirt.fake_os_brick_connector as \
            fake_os_brick_connector

        self.useFixture(fake_imagebackend.ImageBackendFixture())
        self.useFixture(fakelibvirt.FakeLibvirtFixture())
        self.useFixture(
            fixtures.MonkeyPatch('nova.virt.libvirt.driver.libvirt_utils',
                                 fake_libvirt_utils))
        self.useFixture(
            fixtures.MonkeyPatch(
                'nova.virt.libvirt.imagebackend.libvirt_utils',
                fake_libvirt_utils))

        self.useFixture(
            fixtures.MonkeyPatch('nova.virt.libvirt.driver.connector',
                                 fake_os_brick_connector))

        self.useFixture(
            fixtures.MonkeyPatch(
                'nova.virt.libvirt.host.Host._conn_event_thread',
                lambda *args: None))

        self.flags(rescue_image_id="2",
                   rescue_kernel_id="3",
                   rescue_ramdisk_id=None,
                   snapshots_directory='./',
                   sysinfo_serial='none',
                   group='libvirt')

        def fake_extend(image, size):
            pass

        def fake_migrate(_self,
                         destination,
                         migrate_uri=None,
                         params=None,
                         flags=0,
                         domain_xml=None,
                         bandwidth=0):
            pass

        def fake_make_drive(_self, _path):
            pass

        def fake_get_instance_disk_info(_self,
                                        instance,
                                        xml=None,
                                        block_device_info=None):
            return '[]'

        def fake_delete_instance_files(_self, _instance):
            pass

        def fake_wait():
            pass

        def fake_detach_device_with_retry(_self,
                                          get_device_conf_func,
                                          device,
                                          persistent,
                                          live,
                                          max_retry_count=7,
                                          inc_sleep_time=2,
                                          max_sleep_time=30):
            # Still calling detach, but instead of returning function
            # that actually checks if device is gone from XML, just continue
            # because XML never gets updated in these tests
            _self.detach_device(get_device_conf_func(device),
                                persistent=persistent,
                                live=live)
            return fake_wait

        import nova.virt.libvirt.driver

        self.stubs.Set(nova.virt.libvirt.driver.LibvirtDriver,
                       '_get_instance_disk_info', fake_get_instance_disk_info)

        self.stubs.Set(nova.virt.libvirt.driver.disk_api, 'extend',
                       fake_extend)

        self.stubs.Set(nova.virt.libvirt.driver.LibvirtDriver,
                       'delete_instance_files', fake_delete_instance_files)

        self.stubs.Set(nova.virt.libvirt.guest.Guest,
                       'detach_device_with_retry',
                       fake_detach_device_with_retry)

        self.stubs.Set(nova.virt.libvirt.guest.Guest, 'migrate', fake_migrate)

        # We can't actually make a config drive v2 because ensure_tree has
        # been faked out
        self.stubs.Set(nova.virt.configdrive.ConfigDriveBuilder, 'make_drive',
                       fake_make_drive)
Exemplo n.º 30
0
 def setUp(self):
     self.flags(compute_driver='libvirt.LibvirtDriver')
     self.useFixture(fakelibvirt.FakeLibvirtFixture())
     self.useFixture(fixtures.MockPatchObject(host.Host, 'initialize'))
     super(TestLibvirtErrorNotificationSample, self).setUp()