Skip to content

Commit ab60a92

Browse files
Fixed issues when there are >10 projects. Extended categories and formats. Add function delete_user_group_from_project
1 parent 58f05cd commit ab60a92

File tree

1 file changed

+21
-7
lines changed

1 file changed

+21
-7
lines changed

blackduck/HubRestApi.py

100644100755
Lines changed: 21 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -243,8 +243,8 @@ def _get_role_url(self):
243243
def get_roles(self, parameters={}):
244244
url = self._get_role_url() + self._get_parameter_string(parameters)
245245
response = self.execute_get(url)
246-
return response.json()
247-
246+
return response.json()
247+
248248
def get_roles_url_from_user_or_group(self, user_or_group):
249249
# Given a user or user group object, return the 'roles' url
250250
roles_url = None
@@ -374,8 +374,8 @@ def get_user_groups(self, parameters={}):
374374
return response.json()
375375

376376
def get_user_group_by_name(self, group_name):
377-
groups = self.get_user_groups()
378-
for group in groups['items']:
377+
group_list = self.get_user_groups({"q": f"name:{group_name}"})
378+
for group in group_list['items']:
379379
if group['name'] == group_name:
380380
return group
381381

@@ -535,8 +535,8 @@ def find_component_info_for_protex_component(self, protex_component_id, protex_c
535535
#
536536
##
537537

538-
valid_categories = ['VERSION','CODE_LOCATIONS','COMPONENTS','SECURITY','FILES']
539-
valid_report_formats = ["CSV"]
538+
valid_categories = ['VERSION','CODE_LOCATIONS','COMPONENTS','SECURITY','FILES', 'ATTACHMENTS', 'CRYPTO_ALGORITHMS', 'PROJECT_VERSION_CUSTOM_FIELDS', 'BOM_COMPONENT_CUSTOM_FIELDS', 'LICENSE_TERM_FULFILLMENT']
539+
valid_report_formats = ["CSV", "JSON"]
540540
def create_version_reports(self, version, report_list, format="CSV"):
541541
assert all(list(map(lambda k: k in HubInstance.valid_categories, report_list))), "One or more selected report categories in {} are not valid ({})".format(
542542
report_list, HubInstance.valid_categories)
@@ -1028,7 +1028,7 @@ def assign_user_group_to_project(self, project_name, user_group_name, project_ro
10281028
project_url = project['_meta']['href']
10291029
assignable_user_groups_link = self.get_link(project, 'assignable-usergroups')
10301030
if assignable_user_groups_link:
1031-
assignable_user_groups_response = self.execute_get(assignable_user_groups_link)
1031+
assignable_user_groups_response = self.execute_get(f"{assignable_user_groups_link}?q=name:{user_group_name}")
10321032
assignable_user_groups = assignable_user_groups_response.json()
10331033

10341034
# TODO: What to do if the user group is already assigned to the project, and therefore
@@ -1072,6 +1072,20 @@ def assign_user_group_to_project(self, project_name, user_group_name, project_ro
10721072
else:
10731073
logger.warning("Did not find a project by the name {}".format(project_name))
10741074

1075+
def delete_user_group_from_project(self, project_name, user_group_name):
1076+
project = self.get_project_by_name(project_name)
1077+
1078+
if project:
1079+
project_url = project['_meta']['href']
1080+
1081+
user_group = self.get_user_group_by_name(user_group_name)
1082+
if user_group:
1083+
user_group_url = user_group['_meta']['href']
1084+
user_group_id = user_group_url.rsplit('/', 1)[-1]
1085+
1086+
project_user_group_url = f"{project_url}/usergroups/{user_group_id}"
1087+
self.execute_delete(project_user_group_url)
1088+
10751089
def assign_user_to_project(self, user_name, project_name, project_roles, limit=1000):
10761090
# Assign users to projects
10771091
project = self.get_project_by_name(project_name)

0 commit comments

Comments
 (0)