Ejemplo n.º 1
0
 def set_range(self, cursor, start, newstart, newend, sip, owner, date_changed, sig):
     ns = int(newstart)
     ne = int(newend)
     self.log.debug('set full %s => %s %s',start,newstart,newend)
     date_changed = utils.parse_datetime_iso(date_changed)
     assert ns <= ne
     assert isinstance(date_changed, datetime)
     cursor.execute('''update numbex_ranges
             set start = ?, end = ?, _s = ?, _e = ?, sip = ?,
             owner = ?, date_changed = ?, signature = ?
             where start = ?''',
             [newstart, newend, ns, ne, sip, owner, date_changed, sig, start])
     return True
Ejemplo n.º 2
0
 def insert_range(self, cursor, start, end, sip, owner, date_changed, sig,
             safe=True):
     ns = int(start)
     ne = int(end)
     date_changed = utils.parse_datetime_iso(date_changed)
     ovl = self.overlapping_ranges(start, end)
     if safe and ovl:
         raise ValueError("cannot insert range %s-%s: overlaps with %s"%
             (start, end, str(ovl)))
     self.log.debug('insert %s %s',start,end)
     assert ns <= ne
     assert isinstance(date_changed, datetime)
     cursor.execute('''insert into numbex_ranges
             (start, end, _s, _e, sip, owner, date_changed, signature)
             values (?, ?, ?, ?, ?, ?, ?, ?)''',
             [start, end, ns, ne, sip, owner, date_changed, sig])
     return True
Ejemplo n.º 3
0
    def parse_record(self, txtrec):
        '''returned data format:
[rangestart, rangeend, sip, owner, date_modified, rsa_signature]'''
        d = {}
        #assert '\0' not in txtrec
        # dziki bug w git 1.6?!?
        txtrec = txtrec.replace('\0', '')
        for line in txtrec.splitlines():
            pre, post = line.split(':', 1)
            pre = pre.lower().strip()
            d[pre] = post.strip()
        try:
            ret = [d[x] for x in ('range-start', 'range-end', 'sip-address',
                    'owner', 'date-modified', 'signature')]
            ret[4] = utils.parse_datetime_iso(ret[4])
            return ret
        except KeyError:
            raise NumbexDBError('key not found: '+x)