Created
November 14, 2016 21:18
-
-
Save janisz/e4dcb001f19aa4b466f9112a6dd16853 to your computer and use it in GitHub Desktop.
Generate huge Maintenance Schedule test data for Mesos
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import json | |
import random | |
import string | |
def ip(): | |
return ".".join(map(str, (random.randint(0, 255) | |
for _ in range(4)))) | |
def name(): | |
return ''.join(random.choice(string.ascii_uppercase + string.digits) | |
for _ in range(15)) | |
def machine_id(): | |
if random.choice([True, False]): | |
return {"hostname": name(), "ip": ip()} | |
else: | |
if random.choice([True, False]): | |
return {"ip": ip()} | |
else: | |
return {"hostname": name()} | |
def unavailability(): | |
return { | |
"start": {"nanoseconds": random.randint(14438304, 15438304) * 100000000000}, | |
"duration": {"nanoseconds": random.randint(1, 10) * 3600000000000} | |
} | |
def windows(n): | |
windows = [] | |
for x in range(n): | |
ids = [] | |
for j in range(random.randint(1,10)): | |
ids.append(machine_id()) | |
windows.append({"machine_ids": ids, "unavailability": unavailability()}) | |
return windows | |
print json.dumps({"windows": windows(500)}, sort_keys=True,indent=2, separators=(',', ': ')) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment