Ejemplo n.º 1
0
 def setUp(self):
     self.model = SampleModel()
     self.elem = etree.Element('name', lang='english')
     self.target_value = 'some name'
     self.alternate_value = 'some other name'
     self.elem.text = self.target_value
     self.desc = mp.ROOT.name['lang': 'english'] % mp.Custom(xh.load_text,
                                                             xh.dump_text)
Ejemplo n.º 2
0
def _from_dict():
    def _loads(elem):
        return dict(elem.attrib)

    def _dumps(val, elem):
        elem.attrib.clear()
        elem.attrib.update(val)
        return elem

    return mp.Custom(_loads, _dumps)
Ejemplo n.º 3
0
class Filesystem(mp.Model):
    ROOT_ELEM = 'filesystem'

    fs_type = mp.ROOT['type']
    access_mode = mp.ROOT['accessmode']

    source_dir = mp.ROOT.source['dir']
    target_name = mp.ROOT.target['dir']

    read_only = mp.ROOT.readonly % mp.Custom(xh.load_presence,
                                             xh.dump_presence)
Ejemplo n.º 4
0
class Disk(mp.Model):
    ROOT_ELEM = 'disk'

    device_type = mp.ROOT % _split_loader('type', 'device')

    driver = mp.ROOT.driver % _split_loader('name', 'type')
    source_file = mp.ROOT.source['file']
    source_vol = mp.ROOT.source % _split_loader('pool', 'volume')
    target = mp.ROOT.target % _split_loader('bus', 'dev')
    read_only = mp.ROOT.readonly % mp.Custom(xh.load_presence,
                                             xh.dump_presence)
Ejemplo n.º 5
0
def _split_loader(*parts):
    def _loads(elem):
        return ':'.join(elem.attrib[part] for part in parts)

    def _dumps(val, elem):
        vals = val.split(':')
        for i, part in enumerate(parts):
            elem.attrib[part] = vals[i]

        return elem

    return mp.Custom(_loads, _dumps)
Ejemplo n.º 6
0
def _optional_tag_with_attr(attr):
    def _loads(elem):
        return elem.get(attr)

    def _dumps(val, elem):
        if val is None:
            return None
        else:
            elem.set(attr, val)
            return elem

    return mp.Custom(_loads, _dumps)
Ejemplo n.º 7
0
def _unit_loader():
    def _loads(elem):
        return "%s %s" % (elem.text, elem.attrib['unit'])

    def _dumps(v, elem):
        parts = v.split(" ")
        elem.text = parts[0]
        if len(parts) > 1:
            elem.attrib['unit'] = parts[1]

        return elem

    return mp.Custom(_loads, _dumps)