Skip to content
This repository was archived by the owner on Jun 23, 2020. It is now read-only.

Commit fc9d00b

Browse files
author
Harvey Lowndes
committed
Remove mutex and mutable driver map
1 parent 19346b2 commit fc9d00b

File tree

2 files changed

+14
-27
lines changed

2 files changed

+14
-27
lines changed

cmd/oci/main.go

Lines changed: 13 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@ import (
2020
"os"
2121
"path"
2222
"strings"
23-
"sync"
2423

2524
"github.com/oracle/oci-flexvolume-driver/pkg/flexvolume"
2625
"github.com/oracle/oci-flexvolume-driver/pkg/oci/driver"
@@ -30,10 +29,8 @@ import (
3029
var version string
3130
var build string
3231

33-
// All registered drivers.
3432
var (
35-
driversMutex sync.Mutex
36-
drivers = make(map[string]flexvolume.Driver)
33+
drivers = make(map[string]flexvolume.Driver)
3734
)
3835

3936
// GetLogPath returns the default path to the driver log file.
@@ -45,7 +42,7 @@ func GetLogPath() string {
4542
return path + "/oci_flexvolume_driver.log"
4643
}
4744

48-
func loadRegisteredDrivers() {
45+
func registerDrivers() {
4946
registerDriver("oci-bvs", &driver.OCIFlexvolumeDriver{})
5047
}
5148

@@ -64,7 +61,7 @@ func main() {
6461

6562
log.Printf("OCI FlexVolume Driver version: %s (%s)", version, build)
6663

67-
loadRegisteredDrivers()
64+
registerDrivers()
6865

6966
driver, err := getDriverFromArgs()
7067
if err != nil {
@@ -75,7 +72,7 @@ func main() {
7572
}
7673

7774
func getDriverFromArgs() (flexvolume.Driver, error) {
78-
driver, err := getRegisteredDriver(flexvolume.DefaultSymlinkDirectory) //Block volume is default
75+
driver, err := getDriver(flexvolume.DefaultSymlinkDirectory) //Block volume is default
7976
if err != nil {
8077
return nil, err
8178
}
@@ -84,7 +81,7 @@ func getDriverFromArgs() (flexvolume.Driver, error) {
8481
dir = string(strings.TrimPrefix(dir, "oracle~"))
8582

8683
if dir != "oci" && dir != flexvolume.DefaultSymlinkDirectory {
87-
driver, err = getRegisteredDriver(dir)
84+
driver, err = getDriver(dir)
8885
if err != nil {
8986
return nil, err
9087
}
@@ -95,26 +92,16 @@ func getDriverFromArgs() (flexvolume.Driver, error) {
9592
return driver, nil
9693
}
9794

98-
// getRegisteredDriver returns an instance of the named driver, or nil if
99-
// the name is unknown. An error is thrown if the named driver is not found.
100-
func getRegisteredDriver(name string) (flexvolume.Driver, error) {
101-
driversMutex.Lock()
102-
defer driversMutex.Unlock()
103-
f, found := drivers[name]
104-
if !found {
105-
return nil, fmt.Errorf("No driver found for %s", name)
95+
func registerDriver(name string, driver flexvolume.Driver) {
96+
if drivers[name] == nil {
97+
drivers[name] = driver
10698
}
107-
return f, nil
10899
}
109100

110-
// registerDriver registers a flexvolume.Driver by name. This
111-
// is expected to happen during app startup.
112-
func registerDriver(name string, driver flexvolume.Driver) {
113-
driversMutex.Lock()
114-
defer driversMutex.Unlock()
115-
if _, found := drivers[name]; found {
116-
log.Fatalf("Driver %q was registered twice", name)
101+
func getDriver(name string) (flexvolume.Driver, error) {
102+
driver := drivers[name]
103+
if driver == nil {
104+
return nil, fmt.Errorf("could not find a registered driver for %s", name)
117105
}
118-
log.Printf("Registered driver %q", name)
119-
drivers[name] = driver
106+
return driver, nil
120107
}

pkg/flexvolume/flexvolume.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -185,7 +185,7 @@ func ExecDriver(driver Driver, args []string) DriverStatus {
185185
// <driver executable> attach <json options> <node name>
186186
case "attach":
187187
if len(args) != 4 {
188-
Failf("attach expected exactly 4 arguments; got ", args)
188+
Failf("attach expected exactly 4 arguments; got %d ", len(args))
189189
}
190190

191191
opts, err := processOpts(args[2])

0 commit comments

Comments
 (0)