Merge Request #221

Closed
softwarepublico/softwarepublico!221
Created by Luciano Prestes

Colab fix automatic group creation bug

Assignee: Macartur Sousa
Milestone: None

Closed by Matheus Fernandes

Changes were not merged into target branch

Commits (1)
3 participants
src/colab-spb-plugin/src/colab_spb/tasks.py
... ... @@ -25,7 +25,6 @@ def normalize_name(name):
25 25  
26 26 return name.lower()
27 27  
28   -
29 28 def create_group_from_community(noosfero_community):
30 29 """ Create a group into Gitlab from a Noosfero's Community"""
31 30  
... ... @@ -34,7 +33,7 @@ def create_group_from_community(noosfero_community):
34 33 # If project already exist
35 34 group = GitlabGroup.objects.filter(name=group_name)
36 35 if group:
37   - return group[0].id
  36 + return None
38 37  
39 38 app_config = settings.COLAB_APPS.get('colab_gitlab', {})
40 39 private_token = app_config.get('private_token')
... ... @@ -57,14 +56,17 @@ def create_group_from_community(noosfero_community):
57 56 except Exception as excpt:
58 57 reason = 'Request to API failed ({})'.format(excpt)
59 58 logger.error(error_msg, group_name, reason)
60   - return
  59 + return None
61 60  
62 61 if response.status_code != 201:
63 62 if response.status_code is 404:
64 63 pass # TODO: should request the existing group id if error 404
  64 +
65 65 reason = 'Unknown [{}].'.format(response.status_code)
66 66 logger.error(error_msg, group_name, reason)
67   - return
  67 +
  68 + return None
  69 +
68 70 else:
69 71 group_id = response.json().get('id')
70 72 logger.info('Group {0} created'.format(group_name))
... ... @@ -142,6 +144,11 @@ def create_project(project_name, group_id):
142 144 logger.info('Project created')
143 145  
144 146  
  147 +def create_mailing_list_from_community(noosfero_community, admins):
  148 + listname = normalize_name(noosfero_community.name)
  149 + create_list(listname, admins)
  150 +
  151 +
145 152 @app.task(bind=True)
146 153 def list_group_and_repository_creation(self, **kwargs):
147 154 logger.info('Community created: {0}'.format(''.join(kwargs)))
... ... @@ -154,9 +161,11 @@ def list_group_and_repository_creation(self, **kwargs):
154 161 return -1
155 162  
156 163 group_id = create_group_from_community(noosfero_community)
157   - include_members_into_group(admins, group_id)
158   - create_project(noosfero_community.name, group_id)
159   - listname = normalize_name(noosfero_community.name)
160   - create_list(listname, admins[0])
  164 +
  165 + if group_id is not None:
  166 + include_members_into_group(admins, group_id)
  167 + create_project(noosfero_community.name, group_id)
  168 +
  169 + create_mailing_list_from_community(noosfero_community, admins[0])
161 170  
162 171 return 0
... ...