From dfd673f3c6cf6a03777df864e05b6ed12a413763 Mon Sep 17 00:00:00 2001 From: Lucas BEE Date: Wed, 14 Aug 2019 15:10:10 +0200 Subject: [PATCH] Fix missing plugin driver capabilities (#6128) NetIsolationModes and MustInitiateNetwork were left out of the driver Capabilities when using an external task driver plugin Signed-off-by: Lucas BEE --- plugins/drivers/client.go | 5 +++++ plugins/drivers/testutils/testing_test.go | 25 +++++++++++++++++++++++ 2 files changed, 30 insertions(+) diff --git a/plugins/drivers/client.go b/plugins/drivers/client.go index 3be38e57c..357d5cd25 100644 --- a/plugins/drivers/client.go +++ b/plugins/drivers/client.go @@ -55,6 +55,11 @@ func (d *driverPluginClient) Capabilities() (*Capabilities, error) { if resp.Capabilities != nil { caps.SendSignals = resp.Capabilities.SendSignals caps.Exec = resp.Capabilities.Exec + caps.MustInitiateNetwork = resp.Capabilities.MustCreateNetwork + + for _, mode := range resp.Capabilities.NetworkIsolationModes { + caps.NetIsolationModes = append(caps.NetIsolationModes, netIsolationModeFromProto(mode)) + } switch resp.Capabilities.FsIsolation { case proto.DriverCapabilities_NONE: diff --git a/plugins/drivers/testutils/testing_test.go b/plugins/drivers/testutils/testing_test.go index 3e4a8c33d..778a88d3b 100644 --- a/plugins/drivers/testutils/testing_test.go +++ b/plugins/drivers/testutils/testing_test.go @@ -259,3 +259,28 @@ func TestBaseDriver_TaskEvents(t *testing.T) { } } + +func TestBaseDriver_Capabilities(t *testing.T) { + capabilities := &drivers.Capabilities{ + NetIsolationModes: []drivers.NetIsolationMode{ + drivers.NetIsolationModeHost, + drivers.NetIsolationModeGroup, + }, + MustInitiateNetwork: true, + SendSignals: true, + Exec: true, + FSIsolation: drivers.FSIsolationNone, + } + d := &MockDriver{ + CapabilitiesF: func() (*drivers.Capabilities, error) { + return capabilities, nil + }, + } + + harness := NewDriverHarness(t, d) + defer harness.Kill() + + caps, err := harness.Capabilities() + require.NoError(t, err) + require.Equal(t, capabilities, caps) +}