def _register_preallocated_ips(self, conf):
for dom_name, dom_spec in list(conf.get('<STR_LIT>', {}).items()):<EOL><INDENT>for idx, nic in enumerate(dom_spec.get('<STR_LIT>', [])):<EOL><INDENT>if '<STR_LIT>' not in nic:<EOL><INDENT>continue<EOL><DEDENT>net = conf['<STR_LIT>'][nic['<STR_LIT>']]<EOL>if self._subnet_store.is_leasable_subnet(net['<STR_LIT>']):<EOL><INDENT>nic['<STR_LIT>'] = _create_ip(<EOL>net['<STR_LIT>'], int(nic['<STR_LIT>'].split('<STR_LIT:.>')[-<NUM_LIT:1>])<EOL>)<EOL><DEDENT>dom_name = dom_spec['<STR_LIT:name>']<EOL>if not _ip_in_subnet(net['<STR_LIT>'], nic['<STR_LIT>']):<EOL><INDENT>raise RuntimeError(<EOL>"<STR_LIT>" % (<EOL>dom_name,<EOL>dom_spec['<STR_LIT>'].index(nic),<EOL>nic['<STR_LIT>'],<EOL>net['<STR_LIT>'],<EOL>),<EOL>)<EOL><DEDENT>if nic['<STR_LIT>'] in list(net['<STR_LIT>'].values()):<EOL><INDENT>conflict_list = [<EOL>name for name, ip in list(net['<STR_LIT>'].items())<EOL>if ip == net['<STR_LIT>']<EOL>]<EOL>raise RuntimeError(<EOL>'<STR_LIT>' % (<EOL>nic['<STR_LIT>'],<EOL>dom_name,<EOL>'<STR_LIT:U+0020>'.join(conflict_list),<EOL>),<EOL>)<EOL><DEDENT>self._add_nic_to_mapping(net, dom_spec, nic)<EOL><DEDENT><DEDENT>
Parse all the domains in the given conf and preallocate all their ips
into the networks mappings, raising exception on duplicated ips or ips
out of the allowed ranges

See Also:
    :mod:`lago.subnet_lease`

Args:
    conf (dict): Configuration spec to parse

Returns:
    None

Raises:
    RuntimeError: if there are any duplicated ips or any ip out of the
        allowed range