예제 #1
0
 def get(cls, name):
     with DB() as db:
         try:
             return db['user.%s' % name]
         except KeyError:
             u = cls(name)
             db['user.%s' % name] = u
             return u
예제 #2
0
 def get(cls, id, name=None):
     with DB() as db:
         try:
             return db['controlpoint.%s' % id]
         except KeyError:
             logging.error('new ControlPoint %s %s', id, name)
             cp = cls(id, name)
             db['controlpoint.%s' % id] = cp
             return cp
예제 #3
0
 def __getattr__(self, attr):
     if attr == 'UDN':
         from persist import DB
         with DB() as db:
             try:
                 self.UDN = db['udn.%s' % self._id]
             except KeyError:
                 self.UDN = db['udn.%s' % self._id] = utils.genUUID()
         return self.UDN
     elif attr == 'friendlyName':
         self.friendlyName = self._id
         return self.friendlyName
     return super(BaseDevice, self).__getattr__(attr)
예제 #4
0
파일: ussl.py 프로젝트: enfreeworld/upnpy-1
    def certificate(type):

        with DB() as db:
            try:
                pem = db['certfile.%s' % type]
                cert = crypto.load_certificate(crypto.FILETYPE_PEM, pem)
                key = crypto.load_privatekey(crypto.FILETYPE_PEM, pem)
            except KeyError:
                cert, key = _gen_certificate(type)
                pem = crypto.dump_certificate(crypto.FILETYPE_PEM, cert)\
                    + crypto.dump_privatekey(crypto.FILETYPE_PEM, key)
                db['certfile.%s' % type] = pem

        return (cert, key)
예제 #5
0
파일: ussl.py 프로젝트: enfreeworld/upnpy-1
def certificate_file(type):

    if type in _CERTFILES:
        return _CERTFILES[type].name

    with DB() as db:
        try:
            pem = db['certfile.%s' % type]
        except KeyError:
            cert, key = _gen_certificate(type)
            pem = db['certfile.%s' %
                     type] = cert.as_pem() + key.as_pem(cipher=None)

    from tempfile import NamedTemporaryFile
    temp = _CERTFILES[type] = NamedTemporaryFile('w', bufsize=0, suffix='.pem')
    temp.write(pem)

    return temp.name
예제 #6
0
 def all(cls):
     with DB(False) as db:
         return [db[key] for key in db if key.startswith('controlpoint.')]
예제 #7
0
 def all(cls):
     with DB(False) as db:
         return [db[key] for key in db if key.startswith('user.')]