code: func (p *Plugin) Init() (err error) {
  	if p.session != nil {
  		return nil // skip initialization
  	}
  
  	// Retrieve config
  	var cfg Config
  	found, err := p.Cfg.LoadValue(&cfg)
  	// need to be strict about config presence for ETCD
  	if !found {
  		p.Log.Info("cassandra client config not found ", p.Cfg.GetConfigName(),
  			" - skip loading this plugin")
  		return nil
  	}
  	if err != nil {
  		return err
  	}
  
  	// Init session
  	p.clientConfig, err = ConfigToClientConfig(&cfg)
  	if err != nil {
  		return err
  	}
  
  	if p.session == nil && p.clientConfig != nil {
  		session, err := CreateSessionFromConfig(p.clientConfig)
  		if err != nil {
  			return err
  		}
  
  		p.session = gockle.NewSession(session)
  	}
  
  	return nil
  }
docs: // Init is called at plugin startup. The session to Cassandra is established.