Skip to content

Commit 38f0ebc

Browse files
authored
Merge pull request #261 from dineshr93/master
add script for getting total scan size
2 parents 6f240c0 + 6be9333 commit 38f0ebc

File tree

1 file changed

+69
-0
lines changed

1 file changed

+69
-0
lines changed
Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
#!/usr/bin/env python
2+
3+
from blackduck.HubRestApi import HubInstance
4+
5+
import argparse
6+
import json
7+
8+
parser = argparse.ArgumentParser()
9+
parser.add_argument("project_name")
10+
parser.add_argument("version_name")
11+
args = parser.parse_args()
12+
13+
hub = HubInstance()
14+
15+
project = hub.get_project_by_name(args.project_name)
16+
if project:
17+
version = hub.get_version_by_name(project, args.version_name)
18+
19+
if version:
20+
codelocation_url = hub.get_link(version, "codelocations")
21+
codelocation_url += "?limit={}".format(1000000)
22+
response = hub.execute_get(codelocation_url)
23+
if response.status_code == 200:
24+
# codelocation and scan are synonymous
25+
codelocation_info = response.json().get('items', [])
26+
if codelocation_info:
27+
most_recent_scan = max([cl['updatedAt'] for cl in codelocation_info])
28+
oldest_scan = min([cl['createdAt'] for cl in codelocation_info])
29+
number_scans = len(codelocation_info)
30+
else:
31+
number_scans = 0
32+
oldest_scan = most_recent_scan = "Not applicable"
33+
34+
resultString = json.dumps(
35+
{
36+
'scans': codelocation_info,
37+
'number_scans': number_scans,
38+
'most_recent_scan': most_recent_scan,
39+
'oldest_scan': oldest_scan
40+
})
41+
resultArray = json.loads(resultString)
42+
print(f"Number of scan performed {resultArray.get('number_scans')}")
43+
scansArray = resultArray.get('scans')
44+
sizeTrack=0
45+
for i, scan in enumerate(scansArray):
46+
print(f"Scan {i+1} name:{scan['name']}")
47+
sizeinbytes= scan['scanSize']
48+
size=sizeinbytes/1024/1024
49+
sizeTrack=sizeTrack+sizeinbytes
50+
print(f" size:{'{0:.2f}'.format(size)} MB")
51+
52+
totalsize=sizeTrack/1024/1024
53+
print("===============================")
54+
print(f"Project Total size:{'{0:.2f}'.format(totalsize)} MB")
55+
print("===============================")
56+
57+
# print(json.dumps(
58+
# {
59+
# 'scans': codelocation_info,
60+
# 'number_scans': number_scans,
61+
# 'most_recent_scan': most_recent_scan,
62+
# 'oldest_scan': oldest_scan
63+
# }))
64+
else:
65+
print("Failed to retrieve the codelocation (aka scan) info, response code was {}".format(response.status_code))
66+
else:
67+
print("Could not find the version {} in project {}".format(args.version_name, args.project_name))
68+
else:
69+
print("Could not find the project {}".format(args.project_name))

0 commit comments

Comments
 (0)