Merge pull request #1964 from pradipd/hotadd
Enable Hotadd support for windows
This commit is contained in:
commit
98fb784130
2 changed files with 29 additions and 14 deletions
|
@ -62,10 +62,17 @@ type EndpointConnectivity struct {
|
|||
}
|
||||
|
||||
type hnsEndpoint struct {
|
||||
id string
|
||||
nid string
|
||||
profileID string
|
||||
Type string
|
||||
id string
|
||||
nid string
|
||||
profileID string
|
||||
Type string
|
||||
//Note: Currently, the sandboxID is the same as the containerID since windows does
|
||||
//not expose the sandboxID.
|
||||
//In the future, windows will support a proper sandboxID that is different
|
||||
//than the containerID.
|
||||
//Therefore, we are using sandboxID now, so that we won't have to change this code
|
||||
//when windows properly supports a sandboxID.
|
||||
sandboxID string
|
||||
macAddress net.HardwareAddr
|
||||
epOption *endpointOption // User specified parameters
|
||||
epConnectivity *EndpointConnectivity // User specified parameters
|
||||
|
@ -730,7 +737,15 @@ func (d *driver) Join(nid, eid string, sboxKey string, jinfo driverapi.JoinInfo,
|
|||
return err
|
||||
}
|
||||
|
||||
// This is just a stub for now
|
||||
endpoint.sandboxID = sboxKey
|
||||
|
||||
err = hcsshim.HotAttachEndpoint(endpoint.sandboxID, endpoint.profileID)
|
||||
if err != nil {
|
||||
// If container doesn't exists in hcs, do not throw error for hot add/remove
|
||||
if err != hcsshim.ErrComputeSystemDoesNotExist {
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
||||
jinfo.DisableGatewayService()
|
||||
return nil
|
||||
|
@ -744,13 +759,18 @@ func (d *driver) Leave(nid, eid string) error {
|
|||
}
|
||||
|
||||
// Ensure that the endpoint exists
|
||||
_, err = network.getEndpoint(eid)
|
||||
endpoint, err := network.getEndpoint(eid)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
// This is just a stub for now
|
||||
|
||||
err = hcsshim.HotDetachEndpoint(endpoint.sandboxID, endpoint.profileID)
|
||||
if err != nil {
|
||||
// If container doesn't exists in hcs, do not throw error for hot add/remove
|
||||
if err != hcsshim.ErrComputeSystemDoesNotExist {
|
||||
return err
|
||||
}
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
|
|
|
@ -5,12 +5,7 @@ import "testing"
|
|||
// GenerateKey generates a sandbox key based on the passed
|
||||
// container id.
|
||||
func GenerateKey(containerID string) string {
|
||||
maxLen := 12
|
||||
if len(containerID) < maxLen {
|
||||
maxLen = len(containerID)
|
||||
}
|
||||
|
||||
return containerID[:maxLen]
|
||||
return containerID
|
||||
}
|
||||
|
||||
// NewSandbox provides a new sandbox instance created in an os specific way
|
||||
|
|
Loading…
Add table
Reference in a new issue