Skip to content

Commit 09ab4af

Browse files
committed
Updated logic
1 parent 29ccbc0 commit 09ab4af

File tree

1 file changed

+42
-17
lines changed

1 file changed

+42
-17
lines changed

examples/client/update_project_with_component_licenses.py

Lines changed: 42 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -26,16 +26,47 @@
2626

2727
from pprint import pprint
2828
from blackduck import Client
29-
from collections import defaultdict
3029

31-
def getlicensesfromprojectversion(subproject):
32-
subprojecturl=subproject['_meta']['href']
33-
x = subprojecturl.split("/")
30+
def getprojects(project_name):
31+
params = {
32+
'q': [f"name:{project_name}"]
33+
}
34+
projects = [p for p in bd.get_resource('projects', params=params) if p['name'] == project_name]
35+
return projects
36+
37+
def getversions(project, version_name):
38+
params = {
39+
'q': [f"versionName:{version_name}"]
40+
}
41+
versions = [v for v in bd.get_resource('versions', project, params=params) if v['versionName'] == version_name]
42+
return versions
43+
44+
def returnsubprojecturl(x):
45+
xurl=x['_meta']['href']
46+
x = xurl.split("/")
3447
del x[5]
3548
del x[5]
3649
del x[5]
3750
del x[5]
38-
subprojecturl = "/".join(x)
51+
xurl = "/".join(x)
52+
return xurl
53+
54+
def getsubprojects(version):
55+
subcomponents = [ subcomponents for subcomponents in bd.get_resource('components',version) if subcomponents['componentType'] == "SUB_PROJECT" ]
56+
return subcomponents
57+
58+
def checkforsubprojects(subproject):
59+
subprojecturl = returnsubprojecturl(subproject)
60+
version = bd.session.get(subprojecturl).json()
61+
subcomponents = [ subcomponents for subcomponents in bd.get_resource('components',version) if subcomponents['componentType'] == "SUB_PROJECT" ]
62+
if len(subcomponents)>0:
63+
check = True
64+
else:
65+
check= False
66+
return check
67+
68+
def getlicensesfromprojectversion(subproject):
69+
subprojecturl = returnsubprojecturl(subproject)
3970
version = bd.session.get(subprojecturl).json()
4071
components = bd.get_resource('components',version)
4172
licenselist = []
@@ -66,30 +97,24 @@ def main():
6697
bd = Client(base_url=args.base_url, token=access_token, verify=args.no_verify, timeout=60.0, retries=4)
6798
process_project_version(args.project_name, args.version_name, args)
6899

100+
def process_children(children):
101+
sys.exit()
102+
69103
def process_project_version(project_name, version_name, args):
70104
#Validating only 1 Project
71-
params = {
72-
'q': [f"name:{args.project_name}"]
73-
}
74-
projects = [p for p in bd.get_resource('projects', params=params) if p['name'] == args.project_name]
105+
projects = getprojects(args.project_name)
75106
assert len(projects) == 1, f"There should be one, and only one project named {args.project_name}. We found {len(projects)}"
76107
project = projects[0]
77108

78109
#Validates only 1 Version
79-
params = {
80-
'q': [f"versionName:{args.version_name}"]
81-
}
82-
versions = [v for v in bd.get_resource('versions', project, params=params) if v['versionName'] == args.version_name]
110+
versions = getversions(project, args.version_name)
83111
assert len(versions) == 1, f"There should be one, and only one version named {args.version_name}. We found {len(versions)}"
84112
version = versions[0]
85113

86114
#Return only sub-projects, not components
87-
components = [
88-
c for c in bd.get_resource('components',version) if c['componentType'] == "SUB_PROJECT"
89-
]
115+
components = getsubprojects(version)
90116

91117
for subproject in components:
92-
93118
url = subproject['_meta']['href']
94119
subprojectlicenses = getlicensesfromprojectversion(subproject)
95120
licenseblock = [

0 commit comments

Comments
 (0)