Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

notigen
=======

OpenStack-like notification generator.

It works like this: In OpenStack an operation is a series of notifications
connected by a common request_id. For example, to create an instance we would
have the following events:

compute.run_instance.start
scheduler.run_instance.start
scheduler.run_instance.scheduled
scheduler.run_instance.end
compute.instance.update
compute.instance.update
compute.instance.update
compute.instance.update
compute.instance.update
compute.instance.update
compute.run_instance.end

But, since this is a large system, we could have lots of these operations
going on currently. Each operation takes time to perform. So the
notifications generated by these operations are interleaved.

This library simulates these many concurrent operations. You tell
the EventGenerator how many new operations to start per minute
and it will. Note that you'll get a lot more notificationis than
the operations/second (since the operations persist over time in the
future).

The library tries to avoid bad sequences (like doing an update on
a deleted instance), but it can happen in some race conditions.

You can generate in real-time by passing in a real datetime or
you can generate the events as fast as possible by incrementing
a starting time by the tick amount. See the examples below.

To generate events in real-time ...

g = notigen.EventGenerator(100) # Number of operations per minute
now = datetime.datetime.utcnow()
start = now
nevents = 0
while nevents < 10000:
e = g.generate(now)
if e:
nevents += len(e)

now = datetime.datetime.utcnow()

To generate events as fast as possible ...

g = notigen.EventGenerator(100) # Not really relevant
now = datetime.datetime.utcnow()
start = now
nevents = 0
while nevents < 10000:
e = g.generate(now)
if e:
nevents += len(e)

now = g.move_to_next_tick(now)

Datetimes are returned as strings as OpenStack would.

Release files for notigen 0.3.dev36

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for notigen 0.3.dev36
File Size Uploaded
notigen-0.3.dev36.tar.gz 56.7 kB Details

Release files / notigen-0.3.dev36.tar.gz

Download URL notigen-0.3.dev36.tar.gz
Size 56.7 kB
Tags Source
SHA-256 checksum
How to use checksums
c6bb660728b4670a29bf97c938039980b2139d45a2d3b8f94e07afc094a057af
BLAKE2b-256 checksum
How to use checksums
b4ba620fffe8a5ab9bced160af8584744f3a1a34c4eca7e07c5bc9c928bce694
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release history Release notifications | RSS feed

This release

0.3.dev36 This release

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page