learning_go/go_exporter/connection.go
2025-12-15 20:20:11 +03:00

40 lines
718 B
Go

package main
import (
"fmt"
"github.com/ceph/go-ceph/rados"
)
func connect() (_ CephConnection, err error) {
var cephConn CephConnection = CephConnection{}
defer func() {
if err != nil {
err = fmt.Errorf("Error in func connect() %w", err)
}
}()
cephConn.conn, err = rados.NewConnWithClusterAndUser("ceph", "client.admin")
if err != nil {
return CephConnection{}, err
}
err = cephConn.conn.ReadConfigFile(params.config)
if err != nil {
return CephConnection{}, err
}
err = cephConn.conn.SetConfigOption("keyring", params.keyring)
if err != nil {
return CephConnection{}, err
}
err = cephConn.conn.Connect()
if err != nil {
return CephConnection{}, err
}
return cephConn, nil
}