Skip to content

Commit b7d13dd

Browse files
author
Glenn Snyder
committed
fixing issues stemming from BOM components with unknown versions
1 parent e926a14 commit b7d13dd

File tree

1 file changed

+19
-5
lines changed

1 file changed

+19
-5
lines changed

examples/get_inuse_licenses_internal_apis.py

Lines changed: 19 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -98,14 +98,28 @@ def write_to_sheet(sheet, data):
9898
usages = response.json().get('items', [])
9999
logging.debug("Found {} usages for license {}".format(len(usages), license['name']))
100100
for usage in usages:
101+
component_version = usage.get('componentVersionName', 'Unknown')
102+
component_name_str = f"{usage['componentName']}:{component_version}"
101103
# usage === component that referenced the license
102104
logging.debug("Retrieving project-versions that use component {}:{} (license={}".format(
103-
usage['componentName'], usage['componentVersionName'], license['name']))
104-
component_url = hub.get_link(usage, "componentVersion")
105+
usage['componentName'], component_version, license['name']))
106+
component_url = hub.get_link(usage, "componentVersion") or hub.get_link(usage, 'component')
107+
#TODO Figure out how to handle the case where the component version is not known
108+
logging.debug(f"component_url: {component_url}")
109+
if not component_url:
110+
logging.warning(f"Component {component_name_str} had no URL, skipping...")
111+
continue
112+
else:
113+
logging.debug(f"Retrieving component info for {component_name_str}")
105114
response = hub.execute_get(component_url)
106115
component = response.json()
107116
usage['component_details'] = component
108117
project_version_references_url = hub.get_link(component, "references")
118+
if not project_version_references_url:
119+
logging.warning(f"Component {component_name_str} has no 'references' link, skipping...")
120+
continue
121+
else:
122+
logging.debug(f"Retrieving project references for {component_name_str}")
109123
project_version_references_url = project_version_references_url + "?limit=1000"
110124
response = hub.execute_get(project_version_references_url)
111125
project_references = response.json().get('items', [])
@@ -116,11 +130,11 @@ def write_to_sheet(sheet, data):
116130
for i, project_ref in enumerate(project_references):
117131
row = offset + i + 1
118132
logging.debug("Adding license {}, used in component {}:{}, and project-version {}:{} to row {}".format(
119-
license['name'], usage['componentName'], usage['componentVersionName'], project_ref['projectName'], project_ref['versionName'], row))
133+
license['name'], usage['componentName'], component_version, project_ref['projectName'], project_ref['versionName'], row))
120134
data_to_write.extend([
121135
(row, 0, license['name']),
122136
(row, 1, usage['componentName']),
123-
(row, 2, usage['componentVersionName']),
137+
(row, 2, component_version),
124138
(row, 3, project_ref['projectName']),
125139
(row, 4, project_ref['versionName']),
126140
(row, 5, project_ref['projectUrl']),
@@ -133,7 +147,7 @@ def write_to_sheet(sheet, data):
133147
data_to_write.extend([
134148
(row, 0, license['name']),
135149
(row, 1, usage['componentName']),
136-
(row, 2, usage['componentVersionName']),
150+
(row, 2, component_version),
137151
(row, 3, "None"),
138152
(row, 4, "None"),
139153
(row, 5, "NA"),

0 commit comments

Comments
 (0)