82
83
// newCQLClient returns a new instance of CQLClient
84
>
func newCQLClient(cfg *CQLClientConfig, logger log.Logger) (*cqlClient, error) {
cqlclient.go
85
>
var err error
86
>
87
>
cassandraConfig := cfg.toCassandraConfig()
88
>
89
>
logger.Info("Validating connection to cassandra cluster.")
90
>
session, err := commongocql.NewSession(
91
>
func() (*gocql.ClusterConfig, error) {
92
>
return commongocql.NewCassandraCluster(*cassandraConfig, resolver.NewNoopResolver())
93
>
},
94
logger,
95
metrics.NoopMetricsHandler,
96
)
98
logger.Error("Connection validation failed.", tag.Error(err))
99
return nil, err
100
}
101
>
logger.Info("Connection validation succeeded.")
cqlclient.go
102
>
103
>
return &cqlClient{
104
>
keyspace: cfg.Keyspace,
105
>
nReplicas: cfg.numReplicas,
106
>
datacenter: cfg.Datacenter,
107
>
timeout: time.Duration(cfg.Timeout) * time.Second,
108
>
session: session,
109
>
logger: logger,
110
>
}, nil
111
}
112
113
>
func (cfg *CQLClientConfig) toCassandraConfig() *config.Cassandra {
cqlclient.go
114
>
cassandraConfig := config.Cassandra{
115
>
Hosts: cfg.Hosts,
116
>
Port: cfg.Port,
117
>
User: cfg.User,
118
>
Password: cfg.Password,
119
>
AllowedAuthenticators: cfg.AllowedAuthenticators,
120
>
Keyspace: cfg.Keyspace,
121
>
TLS: cfg.TLS,
122
>
Datacenter: cfg.Datacenter,
123
>
DisableInitialHostLookup: cfg.DisableInitialHostLookup,
124
>
Consistency: &config.CassandraStoreConsistency{
125
>
Default: &config.CassandraConsistencySettings{
126
>
Consistency: cfg.Consistency,
127
>
},
128
>
},
129
>
AddressTranslator: cfg.AddressTranslator,
130
>
ConnectTimeout: time.Duration(cfg.Timeout) * time.Second,
131
>
}
132
>
133
>
return &cassandraConfig
134
>
}
135
136
func (client *cqlClient) CreateDatabase(name string) error {