Ejemplo n.º 1
0
def main():
    items = 100000
    cluster = Cluster(['127.0.0.1'])
    session = cluster.connect()
    session.execute('DROP KEYSPACE queue_test;')
    session.execute("CREATE KEYSPACE queue_test WITH REPLICATION = { 'class': 'SimpleStrategy', 'replication_factor': 1 };")
    session.execute("USE queue_test;")
    session.execute("CREATE TABLE queue (id text, event_at timeuuid, payload text, PRIMARY KEY(id, event_at));")

    timeuuid = TimeUUID.with_utcnow()

    for i in range(0, items - 1):
        timeuuid = TimeUUID.with_utcnow()
        query = "INSERT INTO queue (id, event_at, payload) VALUES ('queue_1', " + str(timeuuid) + ", 'payload" + str(i) + "');"
        session.execute(query)
        session.execute("DELETE FROM queue WHERE id = 'queue_1' AND event_at = " + str(timeuuid) + ";")

    query = "INSERT INTO queue (id, event_at, payload) VALUES ('queue_1', " + str(TimeUUID.with_utcnow()) + ", 'payload100000');"
    session.execute(query)

    before = time.time()
    result = session.execute("SELECT * FROM queue WHERE id = 'queue_1' LIMIT 1;")
    print 'Not enqueued executed in %s ms' % str(time.time() - before)
    print 'Result: %s' % str(result[0])

    before = time.time()
    result = session.execute("SELECT * FROM queue WHERE id = 'queue_1' AND event_at > " + str(timeuuid) + " LIMIT 1;")
    print 'Enqueued executed in %s ms' % str(time.time() - before)
    print 'Result: %s' % str(result[0])

    session.execute("TRUNCATE queue;")
    session.execute('DROP KEYSPACE queue_test;')
Ejemplo n.º 2
0
    def test_with_utc(self):
        time = datetime.datetime.utcnow()
        res = TimeUUID.with_utc(time, randomize=True)

        self.assertIsInstance(res, uuid.UUID)
        self.assertIsInstance(res, TimeUUID)

        res1 = TimeUUID.with_utc(time, randomize=False)
        res2 = TimeUUID.with_utc(time, randomize=False)

        self.assertEqual(res1, res2)
Ejemplo n.º 3
0
    def test_upgrade(self):
        self.assertIsNone(TimeUUID.upgrade(None))

        origin = TimeUUID(int=random.randrange(1e7))
        upgraded = TimeUUID.upgrade(origin)
        self.assertIsInstance(upgraded, uuid.UUID)
        self.assertIsInstance(upgraded, TimeUUID)
        self.assertEqual(str(upgraded), str(origin))

        origin = uuid.uuid1()
        upgraded = TimeUUID.upgrade(origin)
        self.assertIsInstance(upgraded, uuid.UUID)
        self.assertIsInstance(upgraded, TimeUUID)
        self.assertEqual(str(upgraded), str(origin))

        self.assertRaises(TypeError, TimeUUID.upgrade, 'coucou')
Ejemplo n.º 4
0
	def generate_uri(host, structure, dataset_type, uuid=None):
		"""
		Builds a URI from the structure and host defined in config file.

		:param str host: Host value for the URI
		:param str structure: Structure used to form the final URL
		:param Model dataset_type: For which element the URI will be generated
		:param str or None uuid: ID in case that already exists. Default: None
		:return: Tuple with well formatted URI and UUID
		:rtype: (str, str)
		"""
		Validators.is_informed(const.URI_HOST, host)

		if not uuid:
			uuid = str(TimeUUID.with_utcnow())

		if dataset_type is Model.CATALOGUE:
			return 'http://{host}/'.format(host=host), uuid

		Validators.is_expected_value(const.URI_STRUCTURE, '{host}', structure)
		if structure[-1] is not '/':
			structure += '/'
		structure += '{type}/'

		return structure.format(host=host, type=dataset_type.value) + uuid, uuid
Ejemplo n.º 5
0
def get_ts_for_timeuuid(timeuuid, cassandra=False, iso=False):
    '''
    Extracts timestamp from TimeUUID.
    By default, returns datetime.datetime.
    Returns iso 8166 timestamp string if iso == True
    '''
    try:
        if cassandra == True:
            timeuuid = TimeUUID.convert(timeuuid)
        ts = TimeUUID.get_datetime(timeuuid)
    except:
        e = "get_ts_for_timeuuid: %r is not a time_uuid.TimeUUID, is %r." % \
         (timeuuid, type(timeuuid))
        raise ValueError(e)
    if iso:
        return ts.isoformat()
    else:     
        return ts
Ejemplo n.º 6
0
	def get_issued_date(dataset_id):
		"""
		Cleans the value provided to get the issued date of the dataset.

		:param str dataset_id: Dataset's stored identifier.
		:return: The issued date in UTC ISO 8601 format.
		:rtype: str
		"""
		time_uuid = TimeUUID.convert(uuid.UUID('{%s}' % dataset_id))
		return Helpers.format_datetime(time_uuid.get_datetime())
Ejemplo n.º 7
0
def generate_token(username):
    if username is None:
        raise InvalidRequestData('Invalid username.')
    conn = get_connection()
    cursor = conn.cursor()
    new_token = str(uuid.with_timestamp(utctime()))
    cursor.execute('UPDATE auth SET token = ? WHERE user = ?',
                   (new_token, username))
    conn.commit()
    conn.close()
    return new_token
Ejemplo n.º 8
0
    def get_tuuid(self,
                  hex: Optional[str] = None,
                  timestamp: Optional[float] = None) -> TimeUUID:
        """
        Get a TimeUUID.

        Args:
            hex: The optional TimeUUID as hex.
            timestamp: The optional timestamp to use in the TimeUUID
        Returns:
            The TimeUUID.
        """
        if hex:
            tuuid = TimeUUID(hex=hex)
        elif timestamp:
            tuuid = TimeUUID.with_timestamp(timestamp)
        else:
            tuuid = TimeUUID.with_utcnow()

        return tuuid
Ejemplo n.º 9
0
    def extract_datetime(self, tuuid: TimeUUID) -> datetime:
        """
        Extract the datetime from a TimeUUID.

        Args:
            tuuid: A TimeUUID.
        Returns:
            The timezone-aware UTC datetime.
        """
        dt = tuuid.get_datetime().replace(tzinfo=timezone.utc)
        return cast(datetime, dt)
Ejemplo n.º 10
0
    def _has_valid_request_id(self, request_id):
        # Extract the timestamp from the UUID1
        timestamp = TimeUUID(request_id).get_timestamp()

        # Check to see if this request has expired
        has_valid_timestamp = time() - timestamp < self.expiry

        # Check to see if this request has been attempted before
        # (prevent replay)
        is_unused = self._has_unused_id(request_id)

        # Both checks are required to pass in order to validate the request id
        return has_valid_timestamp and is_unused
Ejemplo n.º 11
0
def make_timeuuid(event_time):
    '''
    Creates a randomized time_uuid.TimeUUID for a given datetime.datetime

    :param event_time: datetime.datetime to get timeuuid for
    :retuens: time_uuid.TimeUUID

    '''
    try:        
        return TimeUUID.with_timestamp(
            mktime(event_time.timetuple()), randomize=True)
    except:
        e = "get_event_id: %r is not a datetime.datetime, is %r." % \
         (event_time, type(event_time))
        raise ValueError(e)
Ejemplo n.º 12
0
 def __init__(self, pool, column_family, key, **kwargs):
     self.pool = pool
     if isinstance(column_family, ColumnFamily):
         self.column_family = column_family
     else:
         cf_kwargs = {k: kwargs.get(k) for k in _cf_args if k in kwargs}
         self.column_family = ColumnFamily(self.pool, column_family, **cf_kwargs)
     self.key = key
     self.consistency_level = kwargs.get('consistency_level', ConsistencyLevel.LOCAL_QUORUM)
     self.prefix = kwargs.get('prefix', '_lock_')
     self.lock_id = kwargs.get('lock_id', str(TimeUUID.with_utcnow()))
     self.fail_on_stale_lock = kwargs.get('fail_on_stale_lock', False)
     self.timeout = kwargs.get('timeout', 60.0)  # seconds
     self.ttl = kwargs.get('ttl', None)
     self.backoff_policy = kwargs.get('backoff_policy', getUtility(IRetryPolicy, 'run_once'))
     self.allow_retry = kwargs.get('allow_retry', True)
     self.locks_to_delete = set()
     self.lock_column = None
Ejemplo n.º 13
0
 def __init__(self, pool, column_family, key, **kwargs):
     self.pool = pool
     if isinstance(column_family, ColumnFamily):
         self.column_family = column_family
     else:
         cf_kwargs = {k: kwargs.get(k) for k in _cf_args if k in kwargs}
         self.column_family = ColumnFamily(self.pool, column_family,
                                           **cf_kwargs)
     self.key = key
     self.consistency_level = kwargs.get('consistency_level',
                                         ConsistencyLevel.LOCAL_QUORUM)
     self.prefix = kwargs.get('prefix', '_lock_')
     self.lock_id = kwargs.get('lock_id', str(TimeUUID.with_utcnow()))
     self.fail_on_stale_lock = kwargs.get('fail_on_stale_lock', False)
     self.timeout = kwargs.get('timeout', 60.0)  # seconds
     self.ttl = kwargs.get('ttl', None)
     self.backoff_policy = kwargs.get('backoff_policy',
                                      getUtility(IRetryPolicy, 'run_once'))
     self.allow_retry = kwargs.get('allow_retry', True)
     self.locks_to_delete = set()
     self.lock_column = None
    def test_get_time(self):
        utc_time = datetime.utcnow()
        log_entry = CassandraLogEntry(time_uuid=TimeUUID.convert(utc_time))

        assert log_entry.time == utc_time
Ejemplo n.º 15
0
 def time_uuid(self, value):
     if value is not None:
         self._time_uuid = TimeUUID.convert(value)
     else:
         self._time_uuid = None
 def _create_time_uuid(date_time_string):
     return TimeUUID.convert(arrow.get(date_time_string).datetime)
 def _create_time_uuid(date_time_string):
     return TimeUUID.convert(arrow.get(date_time_string).datetime)
Ejemplo n.º 18
0
 def time(self):
     if self.time_uuid is None:
         return None
     else:
         return TimeUUID.upgrade(self.time_uuid).get_datetime()
Ejemplo n.º 19
0
def make_identifier() -> str:
    return TimeUUID.with_timestamp(utctime())
Ejemplo n.º 20
0
 def time(self):
     if self.time_uuid is None:
         return None
     else:
         return TimeUUID.upgrade(self.time_uuid).get_datetime()
Ejemplo n.º 21
0
    def test_get_time(self):
        utc_time = datetime.utcnow()
        log_entry = CassandraLogEntry(time_uuid=TimeUUID.convert(utc_time))

        assert log_entry.time == utc_time
Ejemplo n.º 22
0
        # |--ServerID :string
        # |
        # +ReadingListNonSync
        # |--AddedLocally :bool
        # |
        # |WebBookmarkType :string
        # |WebBookmarkUUID :string
        # |URLString :string
        # |
        # +ReadingList
        # |--DateAdded :date
        #

        #print("%s\n%s\n%s\n%s\n" % (title, time_added, href, tags))

        WebBookmarkUUID = TimeUUID.convert(long(time_added), randomize=False).get_urn()[9:]

        have = False
        for sub_item in sub_items:
            if sub_item['WebBookmarkUUID'] == WebBookmarkUUID:
                have = True
                break

        if have:
            continue

        DateAdded = dt.utcfromtimestamp(long(time_added))

        entry = dict()
        URIDictionary = dict()
        Sync = dict()
Ejemplo n.º 23
0
    def test_with_utcnow(self):
        res = TimeUUID.with_utcnow()

        self.assertIsInstance(res, uuid.UUID)
        self.assertIsInstance(res, TimeUUID)
 def time_uuid(self, value):
     if value is not None:
         self._time_uuid = TimeUUID.convert(value)
     else:
         self._time_uuid = None
Ejemplo n.º 25
0
def grpc_totimeUUID(uuid):
    return TimeUUID(uuid.value)