44 lines
747 B
Go
44 lines
747 B
Go
package main
|
|
|
|
import (
|
|
"log"
|
|
"os"
|
|
"path/filepath"
|
|
"strconv"
|
|
|
|
// Vendors
|
|
"iscsi"
|
|
"github.com/Sirupsen/logrus"
|
|
"github.com/docker/go-plugins-helpers/volume"
|
|
)
|
|
|
|
// Main
|
|
func main() {
|
|
debug := os.Getenv("DEBUG")
|
|
if ok, _ := strconv.ParseBool(debug); ok {
|
|
logrus.SetLevel(logrus.DebugLevel)
|
|
}
|
|
|
|
iSCSI = iscsi.NewISCSIPlugin()
|
|
|
|
path := "/var/lib/docker"
|
|
|
|
d, err := newiscsiDriver(path)
|
|
if err != nil {
|
|
log.Fatal(err)
|
|
}
|
|
|
|
socketPath := "/run/docker/plugins"
|
|
|
|
if err := os.MkdirAll(socketPath, 0755); err != nil {
|
|
logrus.Error(err.Error())
|
|
}
|
|
|
|
socketAddress := filepath.Join(socketPath, "volume-iscsi.sock")
|
|
|
|
h := volume.NewHandler(d)
|
|
logrus.Infof("listening on %s", socketAddress)
|
|
logrus.Error(h.ServeUnix(socketAddress, 0))
|
|
}
|
|
|