Пример #1
0
 def _check_drive_from_metadata_xml(self, data):
     desc = metadata.Descriptor()
     dom = FakeDomain.with_metadata(data.metadata_xml)
     desc.load(dom)
     attrs = common.get_drive_conf_identifying_attrs(data.conf)
     with desc.device(**attrs) as dev:
         self.assertEqual(dev, data.conf)
Пример #2
0
 def _check_drive_to_metadata_xml(self, data):
     desc = metadata.Descriptor()
     attrs = common.get_drive_conf_identifying_attrs(data.conf)
     with desc.device(**attrs) as dev:
         dev.update(data.conf)
     dom = FakeDomain()
     desc.dump(dom)
     self.assertXMLEqual(list(dom.xml.values())[0], data.metadata_xml)
Пример #3
0
    def test_deeply_nested_metadata_preserved(self):
        conf = {
            'device': 'cdrom',
            'iface': 'ide',
            'index': '3',
            'path': '',
            'readonly': 'true',
            'specParams': {
                'vmPayload': {
                    'file': {
                        'openstack/content/0000': 'something',
                        'openstack/latest/meta_data.json': 'something',
                        'openstack/latest/user_data': 'something',
                    },
                    'volId': 'config-2',
                }
            },
            'type': 'disk',
        }

        expected_xml = """<?xml version='1.0' encoding='UTF-8'?>
<vm>
<device name="hdd" devtype="disk">
  <device>cdrom</device>
    <iface>ide</iface>
    <index>3</index>
    <path />
    <readonly>true</readonly>
    <type>disk</type>
    <specParams>
      <vmPayload>
        <volId>config-2</volId>
        <file path='openstack/content/0000'>something</file>
        <file path='openstack/latest/meta_data.json'>something</file>
        <file path='openstack/latest/user_data'>something</file>
      </vmPayload>
    </specParams>
    <vm_custom />
  </device>
</vm>"""

        desc = metadata.Descriptor()
        attrs = common.get_drive_conf_identifying_attrs(conf)
        with desc.device(**attrs) as dev:
            dev.update(conf)
        dom = FakeDomain()
        desc.dump(dom)
        # the first dump() used to -wrongly- modify the supplied data
        desc.dump(dom)
        for produced_xml in dom.xml.values():
            self.assertXMLEqual(produced_xml, expected_xml)
Пример #4
0
 def test_drive_identified_by_name(self, dev_conf, name):
     attrs = common.get_drive_conf_identifying_attrs(dev_conf)
     self.assertEqual({'devtype': hwclass.DISK, 'name': name}, attrs)