def setup_new_conf(self):
        super(Arbiter, self).setup_new_conf()
        with self.conf_lock:
            logger.info("I received a new configuration from my master")
            self.cur_conf = self.new_conf
            self_conf = self.cur_conf.get('self_conf', None)
            if not self_conf:
                self_conf = self.conf
            whole_conf = self.cur_conf['whole_conf']
            logger.debug("Received a new configuration, containing:")
            for key in self.cur_conf:
                logger.debug("- %s: %s", key, self.cur_conf[key])
            logger.debug("satellite self configuration part: %s", self_conf)
            self.alignak_name = self.cur_conf['alignak_name']
            logger.info("My Alignak instance: %s", self.alignak_name)
            self.new_conf = {}
            t00 = time.time()
            try:
                received_conf_part = unserialize(whole_conf)
            except AlignakClassLookupException as exp:
                self.new_conf = {
                    "_status": "Cannot un-serialize configuration received from arbiter"
                }
                logger.error(self.new_conf['_status'])
                logger.error("Back trace of the error:\n%s", traceback.format_exc())
                return
            except Exception as exp:
                self.new_conf = {
                    "_status": "Cannot un-serialize configuration received from arbiter"
                }
                logger.error(self.new_conf['_status'])
                logger.error(self.new_conf)
                self.exit_on_exception(exp, self.new_conf)
            logger.info("Monitored configuration %s received at %d. Un-serialized in %d secs",
                        received_conf_part, t00, time.time() - t00)
            my_satellites = getattr(self, 'arbiters', {})
            received_satellites = self.cur_conf['arbiters']
            for link_uuid in received_satellites:
                rs_conf = received_satellites[link_uuid]
                logger.debug("- received %s - %s: %s", rs_conf['instance_id'],
                             rs_conf['type'], rs_conf['name'])
                already_got = rs_conf['instance_id'] in my_satellites
                broks = []
                actions = {}
                wait_homerun = {}
                external_commands = {}
                running_id = 0
                if already_got:
                    logger.warning("I already got: %s", rs_conf['instance_id'])
                    running_id = my_satellites[link_uuid].running_id
                    (broks, actions,
                     wait_homerun, external_commands) = \
                        my_satellites[link_uuid].get_and_clear_context()
                    del my_satellites[link_uuid]
                new_link = SatelliteLink.get_a_satellite_link('arbiter', rs_conf)
                my_satellites[new_link.uuid] = new_link
                logger.info("I got a new arbiter satellite: %s", new_link)
                new_link.running_id = running_id
                new_link.external_commands = external_commands
                new_link.broks = broks
                new_link.wait_homerun = wait_homerun
                new_link.actions = actions
        self.have_conf = True