code: def _update_bird_conf_file(self, operation):
          conf_updated = False
          prefixes = []
          ip_version = operation.ip_version
          config_file = self.bird_configuration[ip_version]['config_file']
          variable_name = self.bird_configuration[ip_version]['variable_name']
          changes_counter =\
              self.bird_configuration[ip_version]['changes_counter']
          dummy_ip_prefix =\
              self.bird_configuration[ip_version]['dummy_ip_prefix']
          try:
              prefixes = get_ip_prefixes_from_bird(config_file)
          except OSError as error:
              self.log.error("failed to open Bird configuration %s, this is a "
                             "FATAL error, thus exiting main program", error)
              sys.exit(1)
          if not prefixes:
              self.log.error("found empty bird configuration %s, this is a FATAL"
                             " error, thus exiting main program", config_file)
              sys.exit(1)
          if dummy_ip_prefix not in prefixes:
              self.log.warning("dummy IP prefix %s wasn't found in bird "
                               "configuration, adding it. This shouldn't have "
                               "happened!", dummy_ip_prefix)
              prefixes.insert(0, dummy_ip_prefix)
              conf_updated = True
          ip_prefixes_without_check = set(prefixes).difference(
              self.ip_prefixes[ip_version])
          if ip_prefixes_without_check:
              self.log.warning("found %s IP prefixes in Bird configuration but "
                               "we aren't configured to run health checks on "
                               "them. Either someone modified the configuration "
                               "manually or something went horrible wrong. We "
                               "remove them from Bird configuration",
                               ','.join(ip_prefixes_without_check))
              prefixes[:] = (ip for ip in prefixes
                             if ip not in ip_prefixes_without_check)
              conf_updated = True
          if operation.update(prefixes):
              conf_updated = True
          if not conf_updated:
              self.log.info('no updates for bird configuration')
              return conf_updated
          if self.bird_configuration[ip_version]['keep_changes']:
              archive_bird_conf(config_file, changes_counter)
          tempname = write_temp_bird_conf(
              dummy_ip_prefix,
              config_file,
              variable_name,
              prefixes
          )
          try:
              os.rename(tempname, config_file)
          except OSError as error:
              self.log.critical("failed to create Bird configuration %s, this "
                                "is a FATAL error, thus exiting main program",
                                error)
              sys.exit(1)
          else:
              self.log.info("Bird configuration for IPv%s is updated",
                            ip_version)
          if len(prefixes) == 1:
              self.log.warning("Bird configuration doesn't have IP prefixes for "
                               "any of the services we monitor! It means local "
                               "node doesn't receive any traffic")
          return conf_updated