Optionally rotate old data
Introduces a 'rotation' parameter in config.js that will remove entries older than n days from the datasets, resulting in a rolling view of bug activity.
This commit is contained in:
parent
3e1bc6b24a
commit
0a2dfc1032
@ -35,3 +35,7 @@ to generate data for. "height" is an optional parameter detailing
|
|||||||
the size of the graph (230 pixels is the default value). "title"
|
the size of the graph (230 pixels is the default value). "title"
|
||||||
is an optional parameter for the name of the project in the index
|
is an optional parameter for the name of the project in the index
|
||||||
page.
|
page.
|
||||||
|
|
||||||
|
You can also optionally specify a 'rotation' parameter. Entries older
|
||||||
|
than the value (in days) will be removed from the dataset, resulting
|
||||||
|
in a rolling view of bug activity.
|
||||||
|
@ -41,7 +41,7 @@ def create_files(templatepath, outputpath, projects):
|
|||||||
template.stream(project=project).dump(projectfile)
|
template.stream(project=project).dump(projectfile)
|
||||||
|
|
||||||
|
|
||||||
def update_stats(outputpath, project_name):
|
def update_stats(outputpath, project_name, rotation):
|
||||||
|
|
||||||
now = int(time.time())
|
now = int(time.time())
|
||||||
records = []
|
records = []
|
||||||
@ -55,6 +55,10 @@ def update_stats(outputpath, project_name):
|
|||||||
json_data = json.load(data_file)
|
json_data = json.load(data_file)
|
||||||
data_file.close()
|
data_file.close()
|
||||||
for record in json_data['records']:
|
for record in json_data['records']:
|
||||||
|
if rotation:
|
||||||
|
if (now - record['date']) > (rotation * 24 * 60 * 60):
|
||||||
|
print "skip"
|
||||||
|
continue
|
||||||
records.append(record)
|
records.append(record)
|
||||||
except IOError:
|
except IOError:
|
||||||
pass
|
pass
|
||||||
@ -157,6 +161,7 @@ if __name__ == '__main__':
|
|||||||
with open(configpath, 'r') as configfile:
|
with open(configpath, 'r') as configfile:
|
||||||
config = json.load(configfile)
|
config = json.load(configfile)
|
||||||
projects = config['projects']
|
projects = config['projects']
|
||||||
|
rotation = config.get('rotation')
|
||||||
|
|
||||||
# Create files in output directory, if needed
|
# Create files in output directory, if needed
|
||||||
create_files(templatepath, outputpath, projects)
|
create_files(templatepath, outputpath, projects)
|
||||||
@ -166,4 +171,4 @@ if __name__ == '__main__':
|
|||||||
cachedir)
|
cachedir)
|
||||||
|
|
||||||
for p in projects:
|
for p in projects:
|
||||||
update_stats(outputpath, p['project'])
|
update_stats(outputpath, p['project'], rotation)
|
||||||
|
@ -9,5 +9,6 @@
|
|||||||
{ "project": "swift" },
|
{ "project": "swift" },
|
||||||
{ "project": "openstack-manuals", "title": "Manuals" },
|
{ "project": "openstack-manuals", "title": "Manuals" },
|
||||||
{ "project": "tempest" }
|
{ "project": "tempest" }
|
||||||
]
|
],
|
||||||
|
"rotation": 2
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user