コード例 #1
0
    def appendMetadata(self):
        """
        Add the namespaced qos metadata element to the domain

        <domain xmlns:ovirt="http://ovirt.org/vm/tune/1.0">
        ...
           <metadata>
              <ovirt:qos xmlns:ovirt=>
           </metadata>
        ...
        </domain>
        """

        metadata_elem = vmxml.Element('metadata')
        vmxml.append_child(
            metadata_elem,
            etree_child=metadata.create(
                xmlconstants.METADATA_VM_TUNE_ELEMENT,
                namespace=xmlconstants.METADATA_VM_TUNE_PREFIX,
                namespace_uri=xmlconstants.METADATA_VM_TUNE_URI))
        vmxml.append_child(
            metadata_elem,
            etree_child=metadata.create(
                xmlconstants.METADATA_VM_VDSM_ELEMENT,
                namespace=xmlconstants.METADATA_VM_VDSM_PREFIX,
                namespace_uri=xmlconstants.METADATA_VM_VDSM_URI))

        self.dom.appendChild(metadata_elem)
コード例 #2
0
    def _appendMetadataContainer(self, metadata_elem):
        custom = self.conf.get('custom', {})
        # container{Type,Image} are mandatory: if either
        # one is missing, no container-related extradata
        # should be present at all.
        container_type = custom.get('containerType')
        container_image = custom.get('containerImage')
        if not container_type or not container_image:
            return

        vmxml.append_child(
            metadata_elem,
            etree_child=metadata.create(
                xmlconstants.METADATA_CONTAINERS_ELEMENT,
                namespace=xmlconstants.METADATA_CONTAINERS_PREFIX,
                namespace_uri=xmlconstants.METADATA_CONTAINERS_URI,
                runtime=container_type,
                image=container_image))

        # drive mapping is optional. It is totally fine for a container
        # not to use any drive, this just means it will not have any
        # form of persistency.
        drive_map = parse_drive_mapping(self.conf.get('custom', {}))
        if drive_map:
            vmxml.append_child(
                metadata_elem,
                etree_child=metadata.create(
                    xmlconstants.METADATA_VM_DRIVE_MAP_ELEMENT,
                    namespace=xmlconstants.METADATA_VM_DRIVE_MAP_PREFIX,
                    namespace_uri=xmlconstants.METADATA_VM_DRIVE_MAP_URI,
                    **drive_map))
コード例 #3
0
 def test_create(self, custom):
     namespace = 'ovirt-vm'
     namespace_uri = 'http://ovirt.org/vm/1.0'
     elem = metadata.create(
         'vm', namespace, namespace_uri,
         **custom
     )
     metadata_obj = metadata.Metadata(namespace, namespace_uri)
     self.assertEqual(metadata_obj.load(elem), custom)
コード例 #4
0
ファイル: metadata_test.py プロジェクト: EdDev/vdsm
 def test_create(self, custom):
     namespace = 'ovirt-vm'
     namespace_uri = 'http://ovirt.org/vm/1.0'
     elem = metadata.create(
         'vm', namespace, namespace_uri,
         **custom
     )
     metadata_obj = metadata.Metadata(namespace, namespace_uri)
     self.assertEqual(metadata_obj.load(elem), custom)