def HandleRebalancePerform(self):
    reb = rdf_data_server.DataServerRebalance(self.post_data)
    if not rebalance.MoveFiles(reb, self.MASTER):
      logging.critical("Failed to perform transaction %s", reb.id)
      self._EmptyResponse(constants.RESPONSE_FILES_NOT_MOVED)
      return
    # Update range of servers.
    # But only for regular data servers since the master is responsible for
    # starting the operation.
    if self.DATA_SERVER:
      for i, serv in enumerate(list(reb.mapping.servers)):
        self.MAPPING.servers[i].interval.start = serv.interval.start
        self.MAPPING.servers[i].interval.end = serv.interval.end
      self.DATA_SERVER.SetMapping(self.MAPPING)
    # Send back server state.
    stat = self.GetStatistics()
    body = stat.SerializeToString()
    self._Response(constants.RESPONSE_OK, body)
service-profile-list -P.
dataset/ETHPy150Open google/grr/grr/server/data_server/data_server.py/DataServerHandler.HandleRebalancePerform--crossover with--dataset/ETHPy150Open openstack/python-group-based-policy-client/gbpclient/tests/unit/test_cli20_service_profile.py/CLITestV20ServiceProfileJSON.test_list_service_profiles_limit