pvl/hosts/config.py
changeset 690 517527835381
parent 663 8a9de457bb59
child 692 34f25380d0e7
equal deleted inserted replaced
689:c258e3ff6d32 690:517527835381
   116 
   116 
   117         if extension:
   117         if extension:
   118             f = extensions.setdefault(extension, {})
   118             f = extensions.setdefault(extension, {})
   119         else:
   119         else:
   120             f = fields
   120             f = fields
       
   121 
       
   122         log.debug("%s@%s: %s:%s.%s = %r", name, domain, extension, field, instance, value)
   121 
   123 
   122         if instance:
   124         if instance:
   123             if field not in f:
   125             if field not in f:
   124                 f[field] = { }
   126                 f[field] = { }
   125             elif not isinstance(f[field], dict):
   127             elif not isinstance(f[field], dict):
   126                 # convert to dict
   128                 # convert to dict
   127                 f[field] = {None: f[field]}
   129                 f[field] = {None: f[field]}
   128             
   130             
   129             f[field][instance] = value
   131             f[field][instance] = value
       
   132         elif field in f:
       
   133             f[field][None] = value
   130         else:
   134         else:
   131             f[field] = value
   135             f[field] = value
   132     
   136     
   133     return Host.build(name, domain, **fields)
   137     return Host.build(name, domain, **fields)
   134 
   138