diff --git a/manager/csi/fakes_test.go b/manager/csi/fakes_test.go index 4e434f27ca..69347c220c 100644 --- a/manager/csi/fakes_test.go +++ b/manager/csi/fakes_test.go @@ -3,6 +3,7 @@ package csi import ( "context" "fmt" + "net" "strings" "sync" @@ -209,6 +210,7 @@ func (fpm *fakePluginMaker) newFakePlugin(pa mobyplugin.AddrPlugin, provider Sec p := &fakePlugin{ name: pa.Name(), socket: pa.Addr().String(), + addr: pa.Addr(), swarmToCSI: map[string]string{}, volumesCreated: map[string]*api.Volume{}, volumesDeleted: []string{}, @@ -223,6 +225,7 @@ func (fpm *fakePluginMaker) newFakePlugin(pa mobyplugin.AddrPlugin, provider Sec type fakePlugin struct { name string socket string + addr net.Addr swarmToCSI map[string]string // removedIDs is a set of node IDs for which RemoveNode has been called. removedIDs map[string]struct{} @@ -287,3 +290,7 @@ func (f *fakePlugin) AddNode(swarmID, csiID string) { func (f *fakePlugin) RemoveNode(swarmID string) { f.removedIDs[swarmID] = struct{}{} } + +func (f *fakePlugin) Addr() net.Addr { + return f.addr +} diff --git a/manager/csi/plugin.go b/manager/csi/plugin.go index 77a1f0f4c9..0aacdb33cd 100644 --- a/manager/csi/plugin.go +++ b/manager/csi/plugin.go @@ -4,6 +4,7 @@ import ( "context" "errors" "fmt" + "net" "google.golang.org/grpc" "google.golang.org/grpc/codes" @@ -30,6 +31,7 @@ type Plugin interface { UnpublishVolume(context.Context, *api.Volume, string) error AddNode(swarmID, csiID string) RemoveNode(swarmID string) + Addr() net.Addr } // plugin represents an individual CSI controller plugin @@ -40,6 +42,7 @@ type plugin struct { // socket is the unix socket to connect to this plugin at. socket string + addr net.Addr // provider is the SecretProvider, which allows retrieving secrets for CSI // calls. @@ -80,6 +83,7 @@ func NewPlugin(p mobyplugin.AddrPlugin, provider SecretProvider) Plugin { // TODO(dperny): verify that we do not need to include the Network() // portion of the Addr. socket: fmt.Sprintf("%s://%s", p.Addr().Network(), p.Addr().String()), + addr: p.Addr(), provider: provider, swarmToCSI: map[string]string{}, csiToSwarm: map[string]string{}, @@ -341,3 +345,7 @@ func (p *plugin) makeControllerUnpublishVolumeRequest(v *api.Volume, nodeID stri Secrets: secrets, } } + +func (p *plugin) Addr() net.Addr { + return p.addr +}