def accept_roles(self, copy_config, logger, failures): try: users = self.get_users_of_roles() except TerminateError: raise TerminateError("Terminate Signaled") except (CCTError, Exception) as e: if type(e) is not CCTError and type(e) is not SkipSignal: logger.error("Problematic Error") logger.debug(traceback.format_exc()) if type(e) is SkipSignal: logger.warn("User skipped creating workgroup.") logger.error(e.msg) logger.error("Not accepting roles") return for user in users: logger.info("Accepting roles for %s" % user) parameters = "?" for id in self.get_pending_roles_request_ids(copy_config, user, logger): parameters += "ids%3Alist=" + id + "&" parameters += 'agree=&accept= + Accept + ' # rest of form auth = tuple(user.split(':')) response = http.http_get_request("%s/updateCollaborations%s" % (copy_config.destination_server, parameters), auth=auth) # yes, it is a GET request if not http.verify(response, logger): logger.error("Failure accepting pending requests for %s %s %s" % (auth[0], response.status_code, response.reason)) failures.append((auth[0], " accepting pending role requests"))
def accept_roles(self, copy_config, logger, failures): try: users = self.get_users_of_roles() except TerminateError: raise TerminateError("Terminate Signaled") except (CCTError, Exception) as e: if type(e) is not CCTError and type(e) is not SkipSignal: logger.error("Problematic Error") logger.debug(traceback.format_exc()) if type(e) is SkipSignal: logger.warn("User skipped creating workgroup.") logger.error(e.msg) logger.error("Not accepting roles") return for user in users: logger.info("Accepting roles for %s" % user) parameters = "?" for id in self.get_pending_roles_request_ids( copy_config, user, logger): parameters += "ids%3Alist=" + id + "&" parameters += 'agree=&accept= + Accept + ' # rest of form auth = tuple(user.split(':')) response = http.http_get_request( "%s/updateCollaborations%s" % (copy_config.destination_server, parameters), auth=auth) # yes, it is a GET request if not http.verify(response, logger): logger.error( "Failure accepting pending requests for %s %s %s" % (auth[0], response.status_code, response.reason)) failures.append((auth[0], " accepting pending role requests"))
def get_pending_roles_request_ids(self, copy_config, credentials, logger): ids = [] auth = tuple(credentials.split(':')) response1 = http.http_get_request("%s/collaborations" % copy_config.destination_server, auth=auth) if not http.verify(response1, logger): raise CCTError("FAILURE getting pending role requests: %s %s" % (response1.status_code, response1.reason)) else: html = response1.text pattern = regex.compile('name="ids:list" value=".*"') matching_items = regex.finditer(pattern, html) for match in matching_items: string = match.group(0) ids.append(string[string.find('value="') + 7:-1]) return ids