def __init__(self, element): ParserHelper.__init__(self) self.name = element.getAttribute('name').encode() self.machine = Machine(self.name) for attr in ['parent', 'diskconfig', 'kernel', 'profile']: setattr(self, attr, None) if element.hasAttribute(attr): setattr(self, attr, element.getAttribute(attr).encode()) setattr(self.machine, attr, getattr(self, attr)) mods = element.getElementsByTagName('module') fams = element.getElementsByTagName('family') scripts = element.getElementsByTagName('script') vars_ = element.getElementsByTagName('machine_variable') for f in fams: family = get_child(f) self.machine.append_family(family) for s in scripts: name = s.getAttribute('name').encode() self.machine.append_script(name) for v in vars_: trait = v.getAttribute('trait').encode() name = v.getAttribute('name').encode() value = get_child(v) self.machine.append_variable(trait, name, value)
def parse_machine(element): name = get_child(element) mtype = get_attribute('machine_type', element) filesystem = get_attribute('filesystem', element) kernel = get_attribute('kernel', element) profile = get_attribute('profile', element) return Machine(name, mtype, filesystem, kernel, profile)