Skip to content

Commit 96b4589

Browse files
author
Glenn Snyder
authored
Merge pull request #117 from blackducksoftware/containers
Reimplemented
2 parents d303578 + 01acb58 commit 96b4589

File tree

1 file changed

+24
-24
lines changed

1 file changed

+24
-24
lines changed

blackduck/HubRestApi.py

Lines changed: 24 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1259,42 +1259,42 @@ def get_version_scan_info(self, version_obj):
12591259
#
12601260
# Add project version as a component to another project
12611261
#
1262-
# WARNING: Uses internal API
1263-
###
1264-
1265-
# TODO: Refactor this code to use the (newly released, v2019.4.0) public endpoint for adding sub-projects (POST /api/projects/{projectId}/versions/{projectVersionId}/components)
1266-
# ref: https://jira.dc1.lan/browse/HUB-16972
1262+
#
12671263

12681264
def add_version_as_component(self, main_project_release, sub_project_release):
12691265
headers = self.get_headers()
12701266
main_data = main_project_release['_meta']['href'].split('/')
12711267
sub_data = sub_project_release['_meta']['href'].split('/')
1272-
url = self.get_apibase() + "/v1/releases/" + main_data[7] + "/component-bom-entries"
1273-
logger.debug(url)
1268+
main_project_release_links = main_project_release['_meta']['links']
1269+
main_project_release_component_links = [x for x in main_project_release_links if x['rel'] == 'components']
1270+
main_project_release_component_link = main_project_release_component_links[0]['href']
1271+
logger.debug(main_project_release_component_link)
1272+
sub_project_release_as_custom_component_url = self.get_apibase() + "/components/" + sub_data[5] + "/versions/" + sub_data[7]
1273+
logger.debug(sub_project_release_as_custom_component_url)
12741274
payload = {}
1275-
payload['producerProject'] = {}
1276-
payload['producerProject']['id'] = sub_data[5]
1277-
payload['producerRelease'] = {}
1278-
payload['producerRelease']['id'] = sub_data[7]
1275+
payload['component'] = sub_project_release_as_custom_component_url
12791276
logger.debug(json.dumps(payload))
1280-
response = requests.post(url, headers=headers, verify = not self.config['insecure'], json=payload)
1281-
jsondata = response.json()
1282-
return jsondata
1277+
response = requests.post(main_project_release_component_link, headers=headers, verify = not self.config['insecure'], json=payload)
1278+
logger.debug(response)
1279+
return response
1280+
1281+
###
1282+
#
1283+
# Remove a project version as a component from another project
1284+
#
1285+
#
12831286

12841287
def remove_version_as_component(self, main_project_release, sub_project_release):
12851288
headers = self.get_headers()
12861289
main_data = main_project_release['_meta']['href'].split('/')
12871290
sub_data = sub_project_release['_meta']['href'].split('/')
1288-
url = self.get_apibase() + "/v1/releases/" + main_data[7] + "/component-bom-entries"
1289-
logger.debug(url)
1290-
payload = []
1291-
entity = {}
1292-
entity['entityKey'] = {}
1293-
entity['entityKey']['entityId'] = sub_data[7]
1294-
entity['entityKey']['entityType'] = 'RL'
1295-
payload.append(entity)
1296-
logger.debug(json.dumps(payload))
1297-
response = requests.delete(url, headers=headers, verify = not self.config['insecure'], json=payload)
1291+
main_project_release_links = main_project_release['_meta']['links']
1292+
main_project_release_component_links = [x for x in main_project_release_links if x['rel'] == 'components']
1293+
main_project_release_component_link = main_project_release_component_links[0]['href']
1294+
logger.debug(main_project_release_component_link)
1295+
subcomponent_url = main_project_release_component_link + "/" + sub_data[5] + "/versions/" + sub_data[7]
1296+
logger.debug(subcomponent_url)
1297+
response = requests.delete(subcomponent_url, headers=headers, verify = not self.config['insecure'])
12981298
return response
12991299

13001300
###

0 commit comments

Comments
 (0)