learning_go/rbd_exporter/connection/connection.go
a.pivkin 2e19663a63 puk
2025-12-22 07:57:42 +03:00

40 lines
824 B
Go

package connection
import (
"fmt"
"rbd_exporter/mytypes"
"github.com/ceph/go-ceph/rados"
)
func Connect(params mytypes.Params) (_ mytypes.CephConnection, err error) {
var cephConn mytypes.CephConnection = mytypes.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 mytypes.CephConnection{}, err
}
err = cephConn.Conn.ReadConfigFile(params.Config)
if err != nil {
return mytypes.CephConnection{}, err
}
err = cephConn.Conn.SetConfigOption("keyring", params.Keyring)
if err != nil {
return mytypes.CephConnection{}, err
}
err = cephConn.Conn.Connect()
if err != nil {
return mytypes.CephConnection{}, err
}
return cephConn, nil
}