def set(self, **kw):
"""
Set this object by setting one of its known formats.
This method only allows one to set one format at a time.
Subsequent calls will clear the object first. The point of all
this is to let the object's internal converters handle mustering
the object into whatever format you need at the moment.
"""
if len(kw) == 1:
name = kw.keys()[0]
if name in self.formats:
self.clear()
setattr(self, name, kw[name])
return
if name == "PEM":
self.clear()
self._set_PEM(kw[name])
return
if name == "Base64":
self.clear()
self.DER = base64.b64decode(kw[name])
return
if name == "Auto_update":
self.filename = kw[name]
self.check_auto_update()
return
if name in ("PEM_file", "DER_file", "Auto_file"):
f = open(kw[name], "rb")
value = f.read()
f.close()
self.clear()
if name == "PEM_file" or (name == "Auto_file" and looks_like_PEM(value)):
self._set_PEM(value)
else:
self.DER = value
return
raise rpki.exceptions.DERObjectConversionError("Can't honor conversion request %r" % (kw,))
评论列表
文章目录