def getXML(self): """ <rng model='virtio'> <rate period="2000" bytes="1234"/> <backend model='random'>/dev/random</backend> </rng> """ # TODO: we can simplify both schema and code getting rid # of either VmRngDeviceType or VmRngDeviceModel. # libvirt supports only one device type, 'virtio'. # To do so, we need # 1. to ensure complete test coverage # 2. cleanup attribute access and names: # we use the 'model' attribute here, does it map # to VmRngDeviceModel? Why we need VmRngDeviceType. rng = self.createXmlElem('rng', None, ['model']) # <rate... /> element if 'bytes' in self.specParams: rateAttrs = {'bytes': self.specParams['bytes']} if 'period' in self.specParams: rateAttrs['period'] = self.specParams['period'] rng.appendChildWithArgs('rate', None, **rateAttrs) # <backend... /> element rng_dev = rngsources.get_device(self.specParams['source']) rng.appendChildWithArgs('backend', rng_dev, model='random') return rng
def uses_source(self, source): return rngsources.get_device(self.specParams['source']) == source
def matching_source(conf, source): return rngsources.get_device(conf['specParams']['source']) == source