mirror of
https://github.com/moby/moby.git
synced 2022-11-09 12:21:53 -05:00
duplicate endpoint error handling
Signed-off-by: Madhu Venugopal <madhu@docker.com>
This commit is contained in:
parent
cad0f33910
commit
031e09d888
2 changed files with 49 additions and 0 deletions
|
@ -627,6 +627,50 @@ func TestNetworkEndpointsWalkers(t *testing.T) {
|
|||
}
|
||||
}
|
||||
|
||||
func TestDuplicateEndpoint(t *testing.T) {
|
||||
if !netutils.IsRunningInContainer() {
|
||||
defer netutils.SetupTestNetNS(t)()
|
||||
}
|
||||
|
||||
n, err := controller.NewNetwork(bridgeNetType, "testnetwork", nil)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
defer func() {
|
||||
if err := n.Delete(); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
}()
|
||||
|
||||
ep, err := n.CreateEndpoint("ep1")
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
defer func() {
|
||||
if err := ep.Delete(); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
}()
|
||||
|
||||
ep2, err := n.CreateEndpoint("ep1")
|
||||
defer func() {
|
||||
// Cleanup ep2 as well, else network cleanup might fail for failure cases
|
||||
if ep2 != nil {
|
||||
if err := ep2.Delete(); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
}
|
||||
}()
|
||||
|
||||
if err == nil {
|
||||
t.Fatal("Expected to fail. But instead succeeded")
|
||||
}
|
||||
|
||||
if _, ok := err.(types.ForbiddenError); !ok {
|
||||
t.Fatalf("Did not fail with expected error. Actual error: %v", err)
|
||||
}
|
||||
}
|
||||
|
||||
func TestControllerQuery(t *testing.T) {
|
||||
if !netutils.IsRunningInContainer() {
|
||||
defer netutils.SetupTestNetNS(t)()
|
||||
|
|
|
@ -195,6 +195,11 @@ func (n *network) CreateEndpoint(name string, options ...EndpointOption) (Endpoi
|
|||
if name == "" {
|
||||
return nil, ErrInvalidName(name)
|
||||
}
|
||||
|
||||
if _, err := n.EndpointByName(name); err == nil {
|
||||
return nil, types.ForbiddenErrorf("service endpoint with name %s already exists", name)
|
||||
}
|
||||
|
||||
ep := &endpoint{name: name, iFaces: []*endpointInterface{}, generic: make(map[string]interface{})}
|
||||
ep.id = types.UUID(stringid.GenerateRandomID())
|
||||
ep.network = n
|
||||
|
|
Loading…
Add table
Reference in a new issue