Ejemplo n.º 1
0
 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"))
Ejemplo n.º 2
0
 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"))
Ejemplo n.º 3
0
 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
Ejemplo n.º 4
0
 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