rbd: move driver component into the rbd/driver package

The rbd package contains several functions that can be used by
CSI-Addons Service implmentations. Unfortunately it is not possible to
do this, as the rbd-driver needs to import the csi-addons/rbd package to
provide the CSI-Addons server. This causes a circular import when
services use the rbd package:

 - rbd/driver.go import csi-addons/rbd
 - csi-addons/rbd import rbd (including the driver)

By moving rbd/driver.go into its own package, the circular import can be
prevented.

Signed-off-by: Niels de Vos <ndevos@redhat.com>
This commit is contained in:
Niels de Vos
2021-12-09 09:18:39 +01:00
committed by mergify[bot]
parent 44d69502bc
commit 203920d8f4
3 changed files with 29 additions and 60 deletions

View File

@ -0,0 +1,51 @@
/*
Copyright 2021 The Ceph-CSI Authors.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
package rbddriver
import (
"os"
"testing"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
"github.com/ceph/ceph-csi/internal/util"
)
func TestSetupCSIAddonsServer(t *testing.T) {
t.Parallel()
// endpoint in a temporary directory
tmpDir := t.TempDir()
endpoint := "unix://" + tmpDir + "/csi-addons.sock"
config := &util.Config{
CSIAddonsEndpoint: endpoint,
}
drv := &Driver{}
err := drv.setupCSIAddonsServer(config)
require.NoError(t, err)
require.NotNil(t, drv.cas)
// verify the socket file has been created
_, err = os.Stat(tmpDir + "/csi-addons.sock")
assert.NoError(t, err)
// stop the gRPC server
drv.cas.Stop()
}