func (d *Discovery) getDatacenter() error {
	// If the datacenter was not set from clientConf, let's get it from the local Consul agent
	// (Consul default is to use local node's datacenter if one isn't given for a query).
	if d.clientDatacenter != "" {
		return nil
	}

	info, err := d.client.Agent().Self()
	if err != nil {
		level.Error(d.logger).Log("msg", "Error retrieving datacenter name", "err", err)
		rpcFailuresCount.Inc()
		return err
	}

	dc, ok := info["Config"]["Datacenter"].(string)
	if !ok {
		err := errors.Errorf("invalid value '%v' for Config.Datacenter", info["Config"]["Datacenter"])
		level.Error(d.logger).Log("msg", "Error retrieving datacenter name", "err", err)
		return err
	}

	d.clientDatacenter = dc
	return nil
}
func (d *Discovery) getDatacenter() error {
	
	
	if d.clientDatacenter != "" {
		return nil
	}

	info, err := d.client.Agent().Self()
	if err != nil {
		level.Error(d.logger).Log("msg", "Error retrieving datacenter name", "err", err)
		rpcFailuresCount.Inc()
		return err
	}

	dc, ok := info["Config"]["Datacenter"].(string)
	if !ok {
		err := errors.Errorf("invalid value '%v' for Config.Datacenter", info["Config"]["Datacenter"])
		level.Error(d.logger).Log("msg", "Error retrieving datacenter name", "err", err)
		return err
	}

	d.clientDatacenter = dc
	return nil
}
func ( d * Discovery ) getDatacenter ( ) error { // If the datacenter was not set from clientConf, let's get it from the local Consul agent // (Consul default is to use local node's datacenter if one isn't given for a query). if d . clientDatacenter != " " { return nil } info , err := d . client . Agent ( ) . Self ( ) if err != nil { level . Error ( d . logger ) . Log ( " " , " " , " " , err ) rpcFailuresCount . Inc ( ) return err } dc , ok := info [ " " ] [ " " ] . ( string ) if ! ok { err := errors . Errorf ( " " , info [ " " ] [ " " ] ) level . Error ( d . logger ) . Log ( " " , " " , " " , err ) return err } d . clientDatacenter = dc return nil }
// Get the local datacenter if not specified.
Get the local datacenter if not specified .