Ejemplo n.º 1
0
def deserializeNetCfg(serialized_cfg, cls=NetCfg, parent=None):
    _checkSerialVersion(serialized_cfg)

    vlans = set()

    for serialized_vlan in dict2list(serialized_cfg.get('vlans')):
        vlans.add(Vlan.deserialize(serialized_vlan))

    ethernets = set()
    for serialized_ethernet in dict2list(serialized_cfg.get('ethernets')):
        ethernets.add(Ethernet.deserialize(serialized_ethernet))

    bondings = set()
    Bonding.allowDeserialization()
    try:
        for serialized_bonding in dict2list(serialized_cfg.get('bondings')):
            bondings.add(Bonding.deserialize(serialized_bonding, ethernets))
    except:
        Bonding.failedDeserialization()
        raise

    if parent is None:
        return cls(ethernets=ethernets, vlans=vlans, bondings=bondings)
    return cls(ethernets=ethernets, vlans=vlans, bondings=bondings, parent=parent)
Ejemplo n.º 2
0
def deserializeNet(serialized, cls):
    #BEGIN backwards compatibility
    ip_addrs = serialized.get('ip_addrs')
    if ip_addrs is not None:
        #convert existing IPs in service IPs
        ip_addrs = set(dict2list(ip_addrs))
        serialized['service_ip_addrs'] = serializeElement(ip_addrs)
        del serialized['ip_addrs']
    #END backwards compatibility

    label = serialized.pop('label')
    net = IPy.IP(serialized.pop('string_desc'), make_net = True)
    for attr in ('primary_ip_addrs', 'secondary_ip_addrs', 'service_ip_addrs'):
        serialized[attr] = deserializeElement(serialized[attr])

    _keys2unicode(serialized)

    return cls(label, net, **serialized)
Ejemplo n.º 3
0
    def _deserialize(cls, serialized):
        kwargs = {}
        # add a default value for old conf
        if not serialized.has_key('reserved_for_ha'):
            serialized['reserved_for_ha'] = False
        for attr in Interface._STD_ATTRS:
            value = deserializeElement(serialized[attr])
            kwargs[attr] = value
        for class_name, key in {RouteRW: 'routes', NetRW: 'nets'}.iteritems():
            collection = set()
            try:
                for item in dict2list(serialized[key]):
                    collection.add(class_name.deserialize(item,))
            except KeyError:
                pass
            kwargs[key] = collection

        return kwargs
Ejemplo n.º 4
0
 def _deserialize(cls, serialized):
     kwargs = Interface._deserialize(serialized)
     kwargs['vlans'] = dict2list(serialized.get('vlans'))
     return kwargs