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) {
|
func TestControllerQuery(t *testing.T) {
|
||||||
if !netutils.IsRunningInContainer() {
|
if !netutils.IsRunningInContainer() {
|
||||||
defer netutils.SetupTestNetNS(t)()
|
defer netutils.SetupTestNetNS(t)()
|
||||||
|
|
|
@ -195,6 +195,11 @@ func (n *network) CreateEndpoint(name string, options ...EndpointOption) (Endpoi
|
||||||
if name == "" {
|
if name == "" {
|
||||||
return nil, ErrInvalidName(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 := &endpoint{name: name, iFaces: []*endpointInterface{}, generic: make(map[string]interface{})}
|
||||||
ep.id = types.UUID(stringid.GenerateRandomID())
|
ep.id = types.UUID(stringid.GenerateRandomID())
|
||||||
ep.network = n
|
ep.network = n
|
||||||
|
|
Loading…
Add table
Reference in a new issue