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 <pouulet@gmail.com>
This commit is contained in:
Lucas BEE
2019-08-14 15:10:10 +02:00
committed by Nick Ethier
parent e7ff3e855d
commit dfd673f3c6
2 changed files with 30 additions and 0 deletions

View File

@@ -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:

View File

@@ -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)
}